概要
画像を「選ぶ部分」と「選ばない部分」の白黒マスクに変換するノードです。明るい部分だけ、透明でない部分だけ、赤みが強い部分だけ、というような抜き出しに使います。
threshold を上げるほど白になる範囲は狭くなり、下げるほど広くなります。
使い方のポイント
- マスク作りの最短ルート:
noise_generate → thresholdでランダムな斑点マスク、元画像 → threshold(Alpha)でシルエットマスク - 作ったマスクは
blend_by_mask/erase_by_mask/mask系ノードの マスク入力へつなぐのが定番 - 「明るい部分」を選ぶ基準は既定の
OKLCH-L(見た目の明るさ)でまず問題ない。 特定の色成分を抜きたいときだけ RGB/HSV 系に切り替える。赤をまたぐような 循環する色相範囲は単純なしきい値に向かないため、color_select_replace等を使う alpha_from_maskをONにすると、マスクを作ると同時に黒側を透明化できる が、出力RGBは白黒マスクのままで元画像の色は保持しないignore_fully_transparentは完全透明ピクセルのhidden RGBが白判定になるのを防ぐ。 v1から読み込んだgraphだけは互換性のためfalseを維持する- 写真・スキャンに照明ムラがある時は
method=LocalMeanへ切り替える。まずlocal_radius=8、local_bias=0.05から始め、暗い線を抜くならinvert=ONにする local_radiusは「照明ムラを見る広さ」。細線そのものより大きく、影の変化幅より 小さい値にする。細線が周囲へにじむ時は下げ、広い影を拾う時は16〜32へ上げるlocal_biasは周辺平均から引く値。反転前は上げるほど白側が増える。暗い線をinvert=ONで抜く場合は効果が逆になり、上げるほど薄い汚れを捨てて濃い線だけ残す- タイル素材は
boundary=Wrapにする。端の平均が反対側を含むため、並べた境界だけ 判定が変わる事故を防げる。普通の写真はClampのままでよい
よくある失敗
- 境界がジリジリと不安定: しきい値付近の値が揺れている。
thresholdを±0.1動かして 安定する値を探すか、前段に軽いgaussian_blurを入れて値の分布を滑らかにする - 写真の左半分だけ白黒が逆になる: 全体しきい値が照明ムラを形として拾っている。
LocalMeanへ切り替え、半径8〜16・バイアス0.03〜0.10から調整する - LocalMeanで細い線が消える: 暗い線+反転なら
local_biasを下げる。線の周囲まで 太く拾う時はlocal_radiusも少し下げる - 中間調が全部消える: 仕様(2値化ノード)。段階を残したいなら
posterizeやgradient_map(Steps)を使う - 白黒が逆:
invertをONにするだけでよい(前段をいじる必要はない)
使用例
Alphaで、不透明なドットだけを白にしたマスクを作る。OKLCH-Lで、光っている部分だけを抜き出す。invertをオンにして、影や暗い部分だけを選ぶ。- 照明ムラのある紙面を
LocalMean(radius:8, bias:0.05, invert:ON)で二値化し、 紙の影を除いて濃い線だけを白マスクにする。
関連ノード
blend_by_mask/erase_by_mask— 作ったマスクの主な使い先noise_generate— ランダムマスクの元posterize— 2値ではなく多段階に落としたい場合color_select_replace— 「特定の色を選んで置き換える」ならこちら