
【Flux.1】Flux.1時代のローカルAI画像生成④【SD1.5】
- 割引あり
下記事の続きです。
はじめに
Flux.1の最大の弱点は遅い・重いなので、今回もSD1.5を利用した工夫を紹介したいと思います。
Flux.1用LoRA学習環境も整いつつあり、16GBや12GBのGPUでもなんとか学習できるようになっていますが、(ミドルクラスの)GPUでは、現実問題としてまだまだ難しいです。そこで、軽くて品質も高いSD1.5のLoRAを工夫してFlux.1に適用させる方法を考えてみました。
工学の数値計算手法には、連成解析という手法があります。複数の物理現象やプロセスを相互に結び付けて解析する手法のことです。
たとえば熱伝導と構造解析、流体と構造解析です。そのなかでも簡単に利用できる弱連成解析(Weak Coupling)の手法は単純で、例えば、熱伝導解析を個別に実行し、その結果を構造解析の境界値として利用します。その結果を再度熱伝導解析の初期値→構造解析→熱伝導解析→…と最終的に収束するまでループさせます。
AI画像生成も数値解析の一つに過ぎません。生成される画像も数値データです。つまり、生成画像を次の生成の入力として弱連成解析させて擬似的にFlux.1にSD1.5のLoRAを適用させます。
Flux.1→SD1.5(LoRA)→Flux.1→SD1.5(LoRA)の順でimg2img生成します。
連成例

左から順に、
Flux.1(dev)で生成
その生成物をSD1.5+LoRA(制服)のimg2img
その生成物をFlux.1のimg2img
その生成物をSD1.5+LoRA(制服)のimg2img
として作成したものです。無理やり収束させるために、3,4のdenoising strengthとLoRA強度は小さくしています。
1反復だけですが、それなりの結果は得られるようです。




ComfyUIのノード
あまり洗練したものではありませんが、ComfyUIでの例です。1反復程度であれば、webUIなどで手動生成しても良いかもしれません。
① Flux.1生成
通常のFlux.1(dev)での生成です。

② Ollama LLMでSD1.5用のプロンプトを生成
Flux.1用のプロンプトをそのまま利用すると、LoRAの効果が悪くなるため、LLMで短くしています。

③ SD1.5でimg2img

LLMで短くしたプロンプトと共に、例としてSD1.5用のセーラ服LoRAを利用します。LoRAの効果を強く適用させるため、Denoising strengthは0.75にしています。
大きく形状が変わらないように、ControlNet+Depthも利用しています。
④ 再度Flux.1でimg2img
LoRAによって画像が変更を受けるため、最初のプロンプトを利用せず、プロンプトはLLM Visionモデル(llava-llama3)で新たに再生成します。


⑤ 再度SD1.5でアップスケール生成
4x_NMKD-Superscaleアップスケーラモデルで1.5倍にした後、LoRAとDenoising Strengthを下げた値でSD1.5再生成。

まとめ
Flux.1を二度生成する事になるので生成時間は必要になりますが、Flux.1用のLoRAを再度作り直す事に比べれば圧倒的に短い時間になりますし、SD1.5の資産もそのまま活用できます。
付録
連成テストのために強引に繋げただけのもので、あまり洗練されていませんが、上記ComfyUIのjsonファイルを付録としてダウンロードできます。参考程度にご利用ください。記事ご支援をいただける場合はよろしくお願いします。
※ ComyUIのExtension Managerで足りないノードはダウンロードできますが、LoRAやFlux.1等のモデルは別途ダウンロードが必要です。またollama(ローカルLLM)を利用しているため、ComfyUIカスタムノード以外にollama本体とLLMモデルの導入も必要です。