Blog

SDXLの画像生成ワークフローを再構築する

増えてきたワークフローを整理して使いやすくしたい

ワークフローの違いが気になる

 私がSDXLで使っているワークフローは,ComfyUIのデフォルトのワークフローにLoRA,ClipSkip,FaceRestore,VAE読み込みのノードを自分で組み込んだものです。WebUI Forgeで設定して使っていた機能を参考にしています。

ss1.jpg

先日,Comfy-WaveSpeedをテストするときに配付されているワークフローを使ったのですが,私が使っているものとは異なる部分がありました。

ss2.jpg

ワークフローが異なると生成される画像が変わるのか気になったので,まずは高速化や後処理のノードを外して検証してみました。

若干変わるけど…

 設定を揃えることができる部分は同じにして2つのワークフローで画像を生成してみました。今回はモデルにPinkiePie pony mix v36を使用し,画像サイズは832×1216に設定しました。今までより一回り小さいので,生成が速くなるかなと思います。
生成時間はどちらのワークフローを使っても13秒台後半でほぼ同じでした。生成された画像はサンプルの通りで,若干変わっていますが構図や雰囲気はほぼ同じ感じです。

a1.jpg
Comfy-WaveSpeedのワークフロー
a2.jpg
自作のワークフロー

拡大して比べるとComfy-WaveSpeedのワークフローの方が高精細な印象でしたので,こちらのワークフローを基本に他の機能を組み込むことにしました。

ClipSkipとVAEは変化なし

 次に,ClipSkipとVAE読み込みのノードについて,それぞれを組み込んで画像を生成して比較してみました。結果はどちらも生成される画像に変化はない感じだったので,これらのノードは組み込まないことにしました。
(追記)VAE読み込みのノードは使用するモデルによっては必要でした。
FaceRestoreは組み込むと生成が1秒弱ほど長くなりますが,顔や肌の質感を整えてくれます。もともとのモデルの顔と若干変わるので必要に応じて切り替えできるようにしました。

ss3.jpg

今回,切り替え機能の実装にはrerouteノードが大活躍しています。

画像生成の高速化

 こちらはComfy-WaveSpeedをメインで使うことにし,LCM LoRAのノードは切り替え可能な状態にしました。通常はBypassして利用しないようにしています。

ss4.jpg

また,LCM LoRAのノードとは別にLoRA用のノードを組み込みました。高速化以外でLoRAを使うことはほとんどありませんが,いざというときには便利かなと思います。

プロンプト生成系をまとめる

 プロンプト生成系はLLMと連携して画像から生成する,テキストから生成する,Joycaptionを使って画像から生成するワークフローをそれぞれ作っていました。
今回は,それらを1つにまとめて,切り替え可能にしてワークフローに組み込みました。これだけだと自分でプロンプトを入力することができないので,LLMを使わずに直接プロンプトを入力できるノードを追加しました。JoyCaption関連のノードは使わないときはBypassしないとエラーになるので,グループにしてまとめてBypassできるようにしています。

ss5.jpg

この部分だけを取り出してプロンプトを生成するためのワークフローを別につくりました。

画像生成してみました

 実装したい機能を組み込んだところで画像を生成してみました。Comfy-WaveSpeedの効果が大きく,2倍速の1枚あたり5秒台で生成できたので驚いています。
しかし,最初にComfy-WaveSpeedをテストしているときに設定したRDT0.35では生成が不十分な画像(顔の部分が赤くなるなど)が出るので現在はRDTを0.3にして,max_consecutive_cache_hitsを5に設定して使っています。Dynamic Cachingの設定は使いながら最適値を見つけたいですね。

b1.jpg
b2.jpg

ちなみに,LCM LoRAで画像生成すると1枚あたり6秒前後で生成できました。前回のテストのときはLCM LoRAの方が明らかに速かったのですが,逆転しています。
ワークフローを再構築したことで使いたい機能が統合され,たくさんあったワークフローもまとめることができました。

ss6.jpg

FLUX.1用のワークフローもたくさんあるので,今後同じように再構築したいです。

この記事へのコメント

コメントはまだありません。

コメントを送る

必須
必須  
※ メールアドレスは公開されません
任意
必須
Loading...  画像の文字を入力してください
1
2
3
4
5
6
7
8