🚀 FLUX.1-dev 模型轉換項目
本項目將 black-forest-labs 的 FLUX.1-dev 模型轉換為幾種實驗性的自定義格式,在 Q8_0、fp16 和 fp32 中混合張量。這一轉換基於 black-forest-labs 原始的 bf16 權重,旨在探索不同格式對模型質量的影響。
✨ 主要特性
- 多格式混合:採用 Q8_0、fp16 和 fp32 混合的張量格式,從原始的 bf16 權重轉換而來。
- 實驗性探索:嘗試不同的張量格式組合,以評估其對模型質量的影響。
- 量化處理:由 mo137 進行量化處理,提供多種量化版本的模型文件。
📦 安裝指南
模型文件可與 ComfyUI-GGUF 自定義節點配合使用。將模型文件放置在 ComfyUI/models/unet
目錄下,更多安裝說明請參考 GitHub 上的 README 文件。
🔧 技術細節
動機
Flux 的權重最初以 bf16 格式發佈。轉換為 fp16 會有輕微損失,而轉換為 fp32 則無損失。本項目嘗試混合張量格式,以觀察是否能提高模型質量。
評估
通過比較不同格式模型的輸出,目前尚不能確定這些混合格式模型是否明顯優於純 Q8_0 模型。一般來說,使用 Q8_0 格式可能是更好的選擇,但仍將這些實驗性格式分享出來,或許對某些用戶有幫助。
更高的每權重比特數(bpw)會導致計算速度變慢,以下是不同格式的計算時間對比:
20 s Q8_0
23 s 11.024bpw-txt16.gguf
30 s fp16
37 s 16.422bpw-txt32.gguf
310 s fp32
2024-08-26 更新
新增兩個文件,此次僅將部分或全部以下層量化為 Q8_0:
double_blocks.*.img_mlp.0.weight
double_blocks.*.img_mlp.2.weight
double_blocks.*.txt_mlp.0.weight
double_blocks.*.txt_mlp.2.weight
double_blocks.*.img_mod.lin.weight
double_blocks.*.txt_mod.lin.weight
single_blocks.*.linear1.weight
single_blocks.*.linear2.weight
single_blocks.*.modulation.lin.weight
flux1-dev-Q8_0-fp32-11.763bpw.gguf
:該版本將上述所有層量化為 Q8_0。
flux1-dev-Q8_0-fp32-13.962bpw.gguf
:該版本保留前 2 種類型的所有層以及前 4 個 MLP 層為 fp32。
flux1-dev-Q8_0-fp32-16.161bpw.gguf
:該版本保留前 4 種類型的所有層以及前 8 個 MLP 層為 fp32。
在 txt16/32 文件中,僅將以下非一維層量化為 Q8_0:
img_mlp.0
img_mlp.2
img_mod.lin
linear1
linear2
modulation.lin
而將以下層分別保留為 fp16 或 fp32:
txt_mlp.0
txt_mlp.2
txt_mod.lin
最終的 bpw 數值僅為根據文件大小的近似值。
📄 許可證
本項目採用 flux-1-dev-non-commercial-license 許可證。
屬性 |
詳情 |
基礎模型 |
black-forest-labs/FLUX.1-dev |
庫名稱 |
gguf |
許可證 |
other |
許可證名稱 |
flux-1-dev-non-commercial-license |
許可證鏈接 |
LICENSE.md |
量化者 |
mo137 |
標籤 |
text-to-image、image-generation、flux |
⚠️ 重要提示
這是一個量化模型,而非微調模型,因此所有原始的限制和許可條款仍然適用。
💡 使用建議
請參考 此圖表 以獲取量化類型的基本概述。
本模型卡大部分內容借鑑自 city96/FLUX.1-dev-gguf,該項目包含常規且實用的 GGUF 文件。