🦊画像のリサイズ
単に画像のサイズを大きくしたり小さくしたりするタスクですが、画像生成AIにおいては少し重要な操作です
https://gyazo.com/ffb4198e8a30a7ae7c4d0add0c851966
🟩指定した解像度にします
元の画像とアスペクト比が異なった場合、画像が歪んでしまいます
🟪cropをcenterにすると、画像が歪まないようにはみ出た部分をクロップします
https://gyazo.com/adcb853e458db1583e11fbcb4a8b0f87
倍率でどれだけ拡大(縮小)するかを指定します
Hires.fixでよく使う
https://gyazo.com/1c996b2fa8f7213f05c524b16468181e
画像の一部分を矩形で切り抜きます
カスタムノードを使う
基本的には上記のノードのみで事足りますが、アスペクト比を保ったまま長辺を1024pxにする… のようなことをしようとすると、計算をしなければならなかったりして少々面倒です
それらの計算を内部で済ましてくれる便利なノードがあるので活用しましょう
🚨これ系の基本的な処理をするカスタムノードは無限に存在し、みんな好きなものを使っているため、人のworkflowを読み込むと大抵赤くなります
諦めましょう
https://gyazo.com/cedea95bb80518aa2cc103bd43fa059f
このノードの特徴としてwidth / heightという概念がなく、代わりにsmaller_side(短辺) / larger_side(長辺)でサイズを指定します
縦長/横長の画像関係ないのでとても気に入っているnomadoor.icon
基本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に指定したアスペクト比になるようにクロップ、もしくはパディングします
https://gyazo.com/e1195d0a480ef81011bb26c99f6e2730
🟨pad to radioにした場合、paddingの部分をマスクとして出力できます
アスペクト比を固定したoutpaintingで便利
crop_pad_position
method
https://gyazo.com/d6a2c85f093ac7c7124a370e234af310
🟩stretch
🟪keep proportion
アスペクト比を保ったままリサイズします
辺が何pxになるかは次のconditionによります
🟨fill / crop
🟦pad
クロップとは逆に、できた隙間を黒で埋めます
condition
downscale if bigger
https://gyazo.com/e475c88426040b50de68709f173fff5b
画像が指定されたサイズより"大きい"場合に、画像を縮小します
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にしておけば、この機能だけを使うこともできる