このシリーズの記事一覧 (クリックで開閉)
【 ComfyUI基礎シリーズ 】
Stable Diffusion WebUIならタブを切り替えで出来るi2i(画像を入力してAI画像を出力)
何気にComfyUIでi2iのやり方を調べてもなかなかヒットしない。
というわけで今回は極めてシンプルなi2iのやり方を解説する。
前回解説した最もシンプルに画像を生成するワークフローをベースに改造していく。
【ComfyUI基礎シリーズ #1 】初めてのComfyUI!画像を1枚生成するまで! | 謎の技術研究部
前回の記事ではKSampler
に入力しているlatent image
がAIのキャンバスだと解説した。
実はめちゃくちゃシンプルな話でここに元画像を入力してやればi2iを行ってくれる
右クリックのメニューか何もないところをダブルクリックでノード検索からノードを追加する。
choose file to upload
を押すか、上のimage
と書いてある設定欄をクリックすると過去に使った画像の履歴からでも元画像を読み込める。
image
の出力ピンは人間が認識できる画像データそのままでありAIには渡せないことは前回解説した。
したがってこれをlatent image
に変換して渡してやる必要がある。
まず前回のおさらい。
KSamplerから出る画像はLatent Image
なので、これを人間が認識できるようにデコードした。
このときに使ったのがVAE Decode
ノード
今回のi2iではこの逆を行えば良い。
デコードの逆はエンコードなので
コレで良いのだが、一つ足りないのにお気づきだろうか。
エンコードするためのvae
が必要だ。
これは前回と同様Load Checkpoint
から出ているものを使おう
たったこれだけで最小構成は完成した。
入力画像 | 出力画像 |
---|---|
i2iを行うときはKSampler
のdenoise
値を下げよう。
これを1.0のままで生成すると全く関係ない画像が生成されるが、下げていくほど元画像に忠実な絵になっていく。
0.6以下がおすすめ。0.3ぐらいまで下げる人もいるので参考まで。
denoise 1.0 | denoise 0.6 |
---|---|
気づいた人もいるかもしれないが、これだと元画像が大きいと処理時間がとてつもないことになってしまう(元画像と同じサイズの画像が生成されるため)
倍率でサイズを変更したい場合は次のノードを使う。
小数点以下でも使用可能。
もしくは絶対値で画像サイズを指定したい場合のノードも紹介する。
このノードをVAE Encode
との間に挟もう。
このノードではアップスケールのアルゴリズムを変えられる。
この設定は非常に細かい違いなのでここをこだわってもあまり変化はないと思われる。
一般的にlanczos
が良く使われていると思うので気になったらコレに変えてみるのもよいかもしれない。
本日使っている元画像は横768pxめ比較的小さい画像だ。
そこでこれをUpscale Image By
で2倍にして生成したデータが次。
いくらか書き込みが向上した。