前回の SDXL 編で、やっと Comfy UI で SDXL のモデルを使って画像を生成するワークフローは一応、完成を見ました。
しかしながら、直接、リアル系の SDXL のモデルを使って生成すると、衣装にそこはかとない B 級感を感じることを禁じ得ず、やはり Stable Diffusion web UI でお絵かきしていたときのように、アニメ系のモデルで下絵を生成し、それを Img2Img でリアル系モデルに置き換えると言うことをやってみるためのワークフローを作成することにしました。
普通の Img2Img と違うところ
ですので、ここでまとめる img2img というのは、普通の Img2Img ではありません。普通の…というのは、ComfyUI Examples で公開されている Img2Img Examples のことで、普通の Img2Img は、画像を生成する際のプロンプトに加え、あらかじめ用意した画像を入力することで、入力した絵に似た絵を生成するものです。
しかし、ここでやりたいことはアニメ系モデルからリアル系モデルへの置き換えであって、類似した絵を生成することではありません。
入力する絵は、もともとその絵を生成したときのプロンプトを持っており、このプロンプトはモデルを置き換えて生成した絵にも引き継いでほしいのです。
これは実は Stable Diffusion web UI でなら簡単にできます。
「PNG Info」タブで画像を読み込んでから、それを「Send to img2img」で「img2img」タブに送れば、プロンプトも送ってくれますし、後は好きなモデルを選んでパラメータを調整すれば、モデルを置き換えて酷似した画像を生成してくれます。
これを Comfy UI でやろうとするとまぁ大変 w
どうやって画像のプロンプトを読み込むか?
まずここです。
標準のノードでは解決できませんので、SD Prompt Reader Node という拡張ノードを使って解決しました。これはスタンドアロンで動く SD Prompt Reader の画像に埋め込まれたデータを読み取る部分をノード化したもので、これでネガティブも含めてプロンプトが読み取れる、画像そのものも出力できるので、Img2Img Examples をベースに、プロンプトを各「CLIP Text Encoder」ノードに、画像を「VAE Encode」ノードに入力するワークフローを作ってあげれば解決! (^^)b
…ってそんな簡単なはずないんだな。これが…ここから結構な深みにはまりました w
次回、SD Prompt Reader Node 編でその苦労が明らかに!乞うご期待! ww