generated at
🦊画像のリサイズ


単に画像のサイズを大きくしたり小さくしたりするタスクですが、画像生成AIにおいては少し重要な操作です
512px × 512pxで生成するのはなぜ?でも触れていますが、計算処理的にも望む結果を得るためにも、適切な解像度にリサイズするという場面は頻繁に現れます


🟩指定した解像度にします
元の画像とアスペクト比が異なった場合、画像が歪んでしまいます
🟪 crop center にすると、画像が歪まないようにはみ出た部分をクロップします


倍率でどれだけ拡大(縮小)するかを指定します
Hires.fixでよく使う


画像の一部分を矩形で切り抜きます


カスタムノードを使う
基本的には上記のノードのみで事足りますが、アスペクト比を保ったまま長辺を1024pxにする… のようなことをしようとすると、計算をしなければならなかったりして少々面倒です
それらの計算を内部で済ましてくれる便利なノードがあるので活用しましょう
🚨これ系の基本的な処理をするカスタムノードは無限に存在し、みんな好きなものを使っているため、人のworkflowを読み込むと大抵赤くなります
諦めましょう


このノードの特徴としてwidth / heightという概念がなく、代わりにsmaller_side(短辺) / larger_side(長辺)でサイズを指定します
縦長/横長の画像関係ないのでとても気に入っているnomadoor
基本smallerかlargerのどちらかにしか数値を入力しない
🚨注意点として、8の倍数でしか入力を受け付けません
action - resize only
アスペクト比を維持しながら画像をリサイズしたりしなかったりします
resize_mode
reduce size only
larger_sideの値が、画像の長辺がより大きい場合、画像を縮小します
increase size only
smaller_sideの値が、画像の短辺より小さい場合、画像を拡大します
any
関係なくリサイズします
action - crop to ratio / pad to ratio
side_ration に指定したアスペクト比になるようにクロップ、もしくはパディングします
🟨 pad to radio にした場合、paddingの部分をマスクとして出力できます
アスペクト比を固定したoutpaintingで便利
crop_pad_position
Upscale Imageノードと違い、中央でなく上端でクロップするなど、クロップ・paddingする基準をパーセンテージで指定できます


method
🟩 stretch
Upscale Imageノードと同様の動作
🟪 keep proportion
アスペクト比を保ったままリサイズします
辺が何pxになるかは次の condition によります
🟨 fill / crop
Upscale Imageノード crop center にしたときと同じ動作です
🟦 pad
クロップとは逆に、できた隙間を黒で埋めます
余談ですが、🔧 Mask From Colorノード等で黒い部分をマスクとすることでoutpaintingに使えたりもします

condition
downscale if bigger
画像が指定されたサイズより"大きい"場合に、画像を縮小します
downscale if bigger
画像のどちらかの辺が指定されたサイズより"小さい"場合に、画像を拡大します
if bigger area
画像の面積が指定されたサイズより"大きい"場合に、画像を縮小します
if smaller area
画像の面積が指定されたサイズより"小さい"場合に、画像を拡大します

multiple_of
画像の各辺を設定された数で割り切れる値に自動で変更します
e.g. width : 1000, multiple_of : 16 だった場合、出力される画像のwidthは 992 (16 * 62)になります
これにより余ってしまった部分はクロップされます
8や16の倍数でしか入力を受け付けないノードがいくつかあるので使用頻度は高いです
widthとheightを0にしておけば、この機能だけを使うこともできる