このシリーズの記事一覧 (クリックで開閉)
【 ComfyUI基礎シリーズ 】
この記事はComfyUIを初めて触る人向けの記事の第一回。
ただ1枚画像を生成するまでのノードを1個ずつ解説するシンプルな記事だ。
またComfyUIの基本操作についても書いていく。
「ComfyUIが初めて触る画像生成AIです」という人はautomatic1111氏のwebuiでAI画像生成に少し慣れてからこちらにシフトしてくることをおすすめする。
覚えることが多すぎてついていけなくなると予想されるため。
よって、この記事では次の知識は有るものとする。
この記事ではノードをはじめから組むので、ComfyUIを起動したら一度画面上のノードは全削除する。
右下のパネルからClear
ボタンで削除。
今現在のノード類を保存しておきたい場合はSave
しておこう。
まずはチェックポイントを読み込まねばAI生成ははじまらない。
右クリック > Add Node > loders > Load Checkpoint
あとは画像の矢印のところから使いたいチェックポイントを選ぶ
ここでは右のピンは特に気にせずで良い。
ここでいきなりTipsだがComfyUIのノードは非常にたくさんあるためこの方法で出していると面倒だ。
なにもないところをダブルクリックするとノード検索画面が出るのでそこから出すのをおすすめする。
上の例ではLoad Checkpoint
と検索名CheckpointLoader
で違う表記になっているが、同じものだ。
この方法のデメリットとしてComfyUIはまだ発展段階なので検索ノード名が表示ノード名と違うことが多々ある。
残念ながら一個ずつ覚えていくしかないが、出したノードを右クリック > Propaties
から確認できる。
AI画像生成といえばプロンプトだ。この入力欄を作成する。
こちらを2つ出してLoad Checkpoint
のCLIP
と接続する
2つ作ったのはPositive
とNegative
に分けるためだ。
あとから接続先を分けるので今は上下どちらでも良い
実際に画像を生成するコアのノードを作成する。
ここにpositive
とnegative
のピンがあるのでこちらへそれぞれ接続する。
またmodel
が繋がっていないと画像は生成できないのでLoad Checkpoint
のMODEL
と繋げる。
ここではなぜわざわざCLIPというピンから出したものにテキストを加え(Encode)てKSampler
に繋いでいるのだろうか。
私も詳しく理解していないが、人間の言語をAI用の言語に変換しているとでも覚えておく程度で良いのではないだろうか(厳密には全然違うが)
CLIPって何?と思ったら次のサイトがわかりやすい
webui
に慣れているともうすでにこれで画像が作れそうな気がする。
しかしながらAIはAI専用のキャンバス的なものを作ってやらないと絵を書いてくれない。
それがKSampler
についているlatent_image
だ。
ここに入れるキャンバス的なものは次のノード
Emptyという名前がついているので何も書かれていない真っ白な紙だと考えれば良い。
この時、このノードに画像サイズを入力できる。
ドヤ顔でかいているが、このlatent imageの解釈が正しいかどうかはよくわかっていない。
最後にもう少しノードが必要になる。
KSampler
のアウトプットピンはLATENT
になっている。
つまりこれはAIが認識するための画像であり、人間にはこのままでは意味の分からないデータ。
そこでこれを人間が分かるように復元(デコード)してやる必要がある。
ただ、このノードもただ通すだけで良いわけではない。
音楽のmp3,wma,aiffそれぞれのデコーダがあるようにAI画像のデコードもこの情報が必要である。
ひとまずこれはLoad Checkpointからでているのでそれをつなげると
ここでようやく人間が分かるIMAGE
データが取れるのだが、そもそもそれを画面に表示してやらねばならないので次のノードをつなぐ。
あとは右下のパネルからQueue Promptを押せば画像が出てくるはずだ。
ふざけたプロンプトしか入れてないのに次の画像が出力された。
最後にノード全画面
ここまでできればあとはプロンプトで求める画像の方向性を考えるもよし画像サイズ変更やKSamplerの設定でさらなる変化を考えるもよし。
こうやって1個ずつ役割を覚えていけばComfyUIの自由度が格段に上がっていくはず。
長くなったが引き続きシリーズを読んでもらえたらと思う。
ComfyUIで使用するノードはUnreal Engineのような大規模ソフトと比較するとまだ全然少ない(ゲーム開発用の全然違うソフトだが)
しかし、小難しいノードが多く挫折しそうになる。
この先の記事ではできるだけ小さい単位で絞って理解していけるような記事を書こうと思う。
そりゃ日本語プロンプトじゃめでしょうね