🚀 FLUX.1-mini-GGUF
FLUX.1-mini-GGUFは、テキストから画像生成を効率的に行うために開発されたモデルです。大規模なモデルを軽量化し、消費者レベルのデバイスでも利用可能にすることを目指しています。
🚀 クイックスタート
このモデルは、gpustack/llama-box v0.0.86+でのみ実験的にサポートされています。
✨ 主な機能
- 軽量化: 12Bの
Flux-dev
モデルを3.2BのFlux-mini
モデルに蒸留し、計算リソースを削減します。
- 多様な量子化オプション: FP16、Q8_0、Q4_1、Q4_0などの量子化オプションが用意されています。
- NPU対応: NPU上での学習と推論が可能なコードベースを提供します。
📦 インストール
インストールに関する具体的な手順は、原READMEに記載されていません。
💻 使用例
使用例に関する具体的なコードは、原READMEに記載されていません。
📚 ドキュメント
🔥 Flux-Mini
現在、テキストから画像生成(T2I)モデルは強力になる一方で大規模化しており、特に消費者レベルのデバイスでの実用性が制限されています。このギャップを埋めるために、私たちは12BのFlux-dev
モデルを3.2BのFlux-mini
モデルに蒸留し、強力な画像生成能力を維持しようとしています。具体的には、元のFlux-dev
をブロック数を19 + 38
(ダブルブロックとシングルブロックの数)から5 + 10
に削減することでプルーニングします。プルーニングされたモデルは、選りすぐりの画像テキストデータセット上でノイズ除去と特徴量のアライメントを目的としてさらに微調整されます。
🔥🔥 しかし、限られた計算リソースとデータリソースのため、私たちのFlux-miniの能力は特定の領域で依然として制限されています。Fluxベースのモデルの開発を促進するために、私たちはこのフォルダにFluxを蒸留するコードをオープンソース化しました。このプロジェクトに興味がある方には、より実用的で強力なテキストから画像生成モデルを構築するために一緒に協力していただけることをお願いします!
⏰ タイムライン
[2024.11.26] Flux-Miniの最初のバージョンをリリースしました!
⚡️ 効率比較
BF16
精度で単一のH20 GPU
上で、batch-size=1
、deepspeed stage=2
、gradient_checkpoint=True
の条件で、Flux-MiniとFlux-Devを比較しました。推論にはnum_steps=50
を採用しました。T5、CLIP、VAEのコストを含んでいます。OOM
はメモリ不足を意味します。
解像度 |
学習戦略 |
モデル |
学習速度 (s/img) |
学習メモリ (GB) |
推論速度 (s/img) |
推論メモリ (GB) |
512 |
LoRA(r=16) |
Flux-dev |
1.10 |
35.91 |
11.11 |
35.11 |
512 |
LoRA(r=16) |
Flux-Mini |
0.33 |
19.06 |
3.07 |
18.49 |
512 |
完全微調整 |
Flux-dev |
OOM |
OOM |
11.11 |
35.11 |
512 |
完全微調整 |
Flux-Mini |
0.57 |
83.7 |
3.07 |
18.49 |
1024 |
LoRA(r=16) |
Flux-dev |
2.93 |
38.03 |
38.26 |
42.24 |
1024 |
LoRA(r=16) |
Flux-Mini |
1.05 |
22.21 |
10.31 |
25.61 |
1024 |
完全微調整 |
Flux-dev |
OOM |
OOM |
38.26 |
42.24 |
1024 |
完全微調整 |
Flux-Mini |
1.30 |
83.71 |
10.31 |
25.61 |
⛅ 制限事項
高度なテキストから画像生成モデルと比較して、私たちのモデルは限られた計算リソースと中程度の品質の合成データで学習されています。したがって、私たちのモデルの生成能力は特定のカテゴリで依然として制限されています。
現在のモデルは、人や動物の顔、風景、ファンタジーや抽象的なシーンなどの一般的な画像の生成には適しています。残念ながら、多くのシナリオでまだ不十分です。これには以下が含まれますが、これらに限定されません。
- 細かい詳細、例えば人や動物の構造
- 排版
- パースペクティブと幾何学的構造
- ダイナミクスとモーション
- 常識的な知識、例えばブランドロゴ
- 物理的な妥当性
- 文化的な多様性
私たちのモデルはJourneyDBのプロンプトで学習されているため、ユーザーには類似したプロンプト形式(名詞と形容詞の組み合わせ)を使用してモデルを適用することをお勧めします。例えば、"profile of sad Socrates, full body, high detail, dramatic scene, Epic dynamic action, wide angle, cinematic, hyper-realistic, concept art, warm muted tones as painted by Bernie Wrightson, Frank Frazetta."
私たちは、このモデルに関するコミュニティの皆さんからの協力とPRを歓迎します。
💻 Flux-NPU
NPUの普及により、モデルの学習と推論に追加のデバイスオプションが提供されています。Fluxの使用を容易にするために、NPU上でFLUXの学習と推論コードを実行できるコードベースを提供しています。詳細はこのフォルダを参照してください。
⚡️ NPUでの効率比較
BF16
精度で単一のAscend 910B NPU
上で、batch-size=1
、deepspeed stage=2
、gradient_checkpoint=True
の条件で、Flux-MiniとFlux-Devを比較しました。推論にはnum_steps=50
を採用しました。T5、CLIP、VAEのコストを含んでいます。OOM
はメモリ不足を意味します。
解像度 |
学習戦略 |
モデル |
学習速度 (s/img) |
学習メモリ (GB) |
推論速度 (s/img) |
推論メモリ (GB) |
512 |
LoRA(r=16) |
Flux-dev |
1.07 |
38.45 |
11.00 |
58.62 |
512 |
LoRA(r=16) |
Flux-Mini |
0.37 |
20.64 |
3.26 |
19.48 |
512 |
完全微調整 |
Flux-dev |
OOM |
OOM |
11.00 |
58.62 |
512 |
完全微調整 |
Flux-Mini |
OOM |
OOM |
3.26 |
19.48 |
1024 |
LoRA(r=16) |
Flux-dev |
3.01 |
44.69 |
OOM |
OOM |
1024 |
LoRA(r=16) |
Flux-Mini |
1.06 |
25.84 |
10.60 |
27.76 |
1024 |
完全微調整 |
Flux-dev |
OOM |
OOM |
OOM |
OOM |
1024 |
完全微調整 |
Flux-Mini |
OOM |
OOM |
10.60 |
27.76 |
📄 ライセンス
私たちのFlux-miniモデルの重みは、Flux-Dev非商用ライセンスに従います。その他のコードはApache-2.0ライセンスに従います。
🐾 免責事項
ユーザーは、私たちのモデルとツールを使用して画像を作成する自由が与えられていますが、地元の法律に準拠し、責任を持って利用することが求められます。開発者は、ユーザーによる潜在的な誤用について一切の責任を負いません。
👍 謝辞
以下のリポジトリの著者たちに、素晴らしい貢献に感謝します!