このシリーズの記事一覧 (クリックで開閉)
【 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倍にして生成したデータが次。
いくらか書き込みが向上した。
