つい最近Flux.1というオープンソース画像生成モデルが公開されたようなので、ComfyUIで試してみようと思います。
Flux.1について
Flux.1の概要
BlackForestLabによって開発された新しい画像生成モデルです。以下にソースコードが公開されていますが、論文などは現状出されていないようです(20240817現在)
学習済モデルは以下の3種類です。
- pro: 一番性能が高いモデル。重みは公開されていない。
- dev: Guidance Distillationを用いてProモデルから蒸留したもの。重みが公開されている。
- schnell: Guidance DistillationとStep Distillationを用いて蒸留したもの。少ないステップ数で生成可能なDevモデル。重みが公開されている。
※Guidance Distillationとは、性能が良いモデルの出力を模倣するように訓練することです。今回ではProの出力を正解としてそれに近づけるように訓練します。
※Step Distillationとは、学習データの複雑さを徐々に増やしながら学習することです。どのような段階を踏んで学習したのかについては論文がないので具体的な部分はわかりません。
Flux.1のアーキテクチャ
Stable Diffusionをベースとして書くと、StableDiffusionのTextEncoderをT5+CLIP(SD3と同様)に変更し、逆拡散部分を独自のDiT(Diffusion Transformer)に変更したものです。
redditにソースコードを図に起こしてくれている方がいたのでリンクを貼っておきます。論文が出ていないため、具体的な思想はわかりませんが、SD3のような一種類の単純なブロックを積み重ねる構造とは異なり、複数種類のブロックを組み合わせて積み上げる構造になっていそうです。
https://www.reddit.com/r/LocalLLaMA/comments/1ekr7ji/fluxs_architecture_diagram_dont_think_theres_a/
ComfyUIで試す手順
↓にあるComfyUI公式exampleを試します。
Flux Examples | ComfyUI_examples
1. ComfyUIの導入
以下のどちらかの方法でComfyUIを導入します。導入済の方もComfyUIを最新版にアップデートしてください。
方法1:ComfyUIを直接導入する
初めての方はこちらで良いと思います。 otama-playground.com
方法2:StabilityMatrix(統合環境)経由でインストールする
2. ワークフローのインポート
↓のページにある画像をComfyUIのウェブアプリケーションにドラッグアンドドロップしてください。ワークフローが読み込まれます。
Flux Examples | ComfyUI_examples
画像が4枚ありますが、上から
- Flux Dev(fp16)
- Flux Flux Schnell(fp16)
- Flux Dev(fp8)
- Flux Schnell(fp8)
のワークフローになっています。
fp8は8bit, fp16は16bitの空間で処理するのでfp8の方が計算コストが低く、モデルのサイズも小さくなります。逸般のご家庭ならfp16(モデルサイズ驚異の24GB)も行けるかもしれませんが、そこまでスペック高くない方はfp8(こっちも16GBある)にしときましょう。
3. モデルのダウンロード
必要なモデルをダウンロードし、それぞれをComfyUIのディレクトリに配置します。
- Flux Dev(fp16)
- Flux Schnell(fp16)
- Flux Dev(fp8)
- Flux Schnell(fp8)
- text encoder
- vae
4. 生成する
モデルを選択して生成します。
生成結果
生成結果1 - Flux Schnell(fp8)
プロンプト
Two anime-style schoolgirls standing together in a school setting. The first girl has her hair tied in a high ponytail with a red ribbon and is wearing a sailor uniform. She is holding a piece of paper with the text 'Flux.1' written on it. The second girl has her hair in a side tail and is dressed in a sweater. She is holding a signboard with the text 'Future of Diffusion Model'. The background features a typical Japanese school with classrooms and hallways, filled with natural light. The atmosphere is lively and full of school spirit.
Schnellでも十分な生成能力がありそうです。
生成結果2 - Flux Dev(fp8)
プロンプト(先ほどと同じ)
Two anime-style schoolgirls standing together in a school setting. The first girl has her hair tied in a high ponytail with a red ribbon and is wearing a sailor uniform. She is holding a piece of paper with the text 'Flux.1' written on it. The second girl has her hair in a side tail and is dressed in a sweater. She is holding a signboard with the text 'Future of Diffusion Model'. The background features a typical Japanese school with classrooms and hallways, filled with natural light. The atmosphere is lively and full of school spirit.
Devの方はステップ数が多い分時間がかかりますが、完璧に文字生成できています。
生成結果3 - Flux Dev(fp8)
プロンプト
Two photorealistic schoolgirls standing together in a Japanese school setting. The first girl has her hair tied in a high ponytail with a red ribbon, wearing a sailor uniform. She is holding a piece of paper with the text 'Photorealistic' written on it. The second girl has her hair styled in a side tail and is dressed in a cozy sweater. She is holding a signboard with the text 'Future of Diffusion Model'. The background showcases a modern Japanese school with detailed classrooms, polished floors, and bright natural light streaming through large windows. The scene captures a realistic and vibrant school atmosphere.
これは失敗ケース。てかなんて書いてあるん...
生成結果4 - Flux Dev(fp8)
プロンプト
A grand, ethereal landscape bathed in the golden light of a setting sun. Towering, ancient mountains draped in snow loom in the background, their peaks touching the clouds. In the foreground, a crystal-clear river winds through a lush, verdant valley, reflecting the vibrant colors of the sky. Majestic trees with twisted, ancient trunks and branches full of colorful autumn leaves line the riverbank. A solitary figure stands on a large rock in the river, wearing flowing, ornate robes that ripple in the gentle breeze. The figure holds a staff crowned with a glowing gemstone, casting a soft light. The sky above is filled with swirling clouds and distant stars beginning to twinkle as dusk approaches. The overall atmosphere is serene, yet awe-inspiring, with intricate details in every element, from the texture of the rocks and trees to the shimmering reflections in the water.
生成結果5 - Flux Dev(fp8)
プロンプト
A highly detailed and realistic portrait of a stunningly beautiful woman with long, flowing hair, soft and flawless skin, and captivating eyes. She is looking slightly to the side, with a gentle smile on her lips. The background is soft and blurred, focusing all attention on her. A speech bubble is placed near her mouth, with the text "spare me a 4090 plz" in a playful and stylish font.
生成結果6 - Flux Dev(fp8)
プロンプト
A sleek and modern logo with the text "Flux.1" prominently displayed in bold, futuristic font. The text "Flux.1" should be the main focus, large and centered. In the corner or along the edge, include the text "4090 exclusive" in a smaller, subtle font. The overall style should be minimalistic, with a high-tech, cutting-edge design.
ロゴもそれっぽく作れる
最後に
fp16のモデルサイズ24GBは完全に4090使えって言ってる気がしますね...。
fp8(16GB)であれば自分の環境(VRAM8GB + RAM16GB)で試せたので、同じようなスペックの方はfp16の必要スペックに落胆せずfp8モデルを試してみてください。