背景
Black Forest Labs 是 FLUX 系列圖像生成模型的開發團隊,其開源權重長期被視為圖像生成領域的重要參考基準。Hugging Face 官方部落格在 2026 年 10 月 15 日發表文章,說明 FLUX.3 Image Klein 已經整合進 Diffusers,這個被廣泛使用的開源擴散模型工具庫,模型從發布第一天就能直接載入使用。與前代最大的差別在於,FLUX.3 把三種能力收斂在同一個模型裡:文字生成圖像、多參考圖像的圖生圖,以及全新的版面控制。版面控制指的是使用者可以在提示詞裡直接寫入邊界框,指定畫面中每個元素應該出現的位置,或是在編輯時指定參考圖的哪個區塊要被移到哪裡。這讓「構圖」不再只是文字描述的附屬品,也不必依賴額外的控制網路,而成為提示詞本身的一部分。
開源部分提供兩個權重。flux-3-image-klein 是時間步蒸餾版本,也就是把多步推論的行為壓縮進較少步驟的版本,預設 16 步、不啟用分類器自由引導(一種在推論時拉開條件與非條件預測差距、提高提示詞遵循度的技巧),適合快速推論;flux-3-image-klein-base 是基礎模型,預設 50 步並啟用引導,也是進行微調的起點。文章指出蒸餾版本在 H100 上生成一張 1024×1024 影像約需 2 秒。
核心內容:三種工作流
文字生成圖像的用法是寫一段完整的場景描述,涵蓋主體、環境、光線、構圖與風格。圖生圖則透過 image 參數傳入參考圖,提示詞要寫成「你想要的最終影像的描述,並把改變寫進去」。若同時傳入多張參考圖,提示詞可用 <ref_image_0>、<ref_image_1> 依序指稱它們,模型會把不同參考圖中的元素組合到同一張輸出裡。
版面控制的語法是在描述後附加一串 JSON 區域清單,每個區域包含 id、bbox 與 desc 三個欄位,提示詞中以 <id> 引用。bbox 採用 0 到 1000 的正規化座標,順序為 [y_min, x_min, y_max, x_max],也就是 y 座標在前;因為座標已經正規化,同一組框可以直接套用在任何尺寸的輸出上,desc 則描述該區域要畫什麼,模型會把描述畫進指定的框內。編輯場景更進一步:每個區域除了 tgt_bbox(輸出中的目標位置)還標示 src_bbox(參考圖中的來源位置),兩者相同代表原地保留,不同就代表移動。文章的示範把一隻鉤織騎士沿著「毛線懸崖」往左上移動,其餘背景、龍與火焰等區域則用相同框固定住,達成局部位移而不破壞畫面其他部分。
技術脈絡:架構怎麼設計
FLUX.3 是一個潛空間的流匹配(flow matching)模型,去噪器的輸入與輸出都是潛表示,最後由 VAE(變分自編碼器,負責把影像壓縮成較小的表示再解碼回像素)還原。它沿用 FLUX.2 的 VAE,在每個方向壓縮 8 倍成為 32 通道,再把 2×2 的潛區塊打包成單一 token,因此一個 token 對應 16×16 的像素範圍,一張 1024×1024 影像就是 64×64 共 4,096 個 token;參考圖走同樣的編碼流程並保留自己的尺寸。
文字編碼器選用 Qwen3-VL,一個能同時理解文字與影像的視覺語言模型,負責把提示詞轉成向量。FLUX.3 不只取最後一層,而是讀出 36 層中的 8 層隱狀態(第 4、8 層一直到第 32 層)疊加,讓每個文字 token 先變成 20,480 維,再投影到 3072 維的轉換器寬度,使模型同時取得語言模型不同深度的特徵。
轉換器分兩個階段運作。第一階段是各流獨立:文字、雜訊影像、參考圖各自經過 5 個帶有獨立權重的區塊,只能注意到自己;第二階段是 28 個共享權重的聯合區塊,三種 token 拼成一條序列後互相注意。這與 FLUX.2 的雙流設計不同,後者從一開始就讓文字與影像互相注意,FLUX.3 則是先完全分開、再合流。每個區塊內部,注意力與 MLP 平行運算後加回殘差流;LayerNorm 沒有可學習的縮放與偏移,縮放、偏移與閘門都來自時間步嵌入的調變(modulation)。
一個關鍵差異是每個 token 有各自的時間步:雜訊影像使用當前時間步,文字與參考 token 則恆定以時間步 0 調變,代表「乾淨、不需要去噪」,所以即使參考圖與輸出幾乎一樣,也被標記為既有上下文而非待生成內容。位置編碼採用 RoPE(旋轉位置嵌入,藉由依位置旋轉查詢與鍵向量讓注意力感知順序),切成四條座標軸 (t, h, w, l),各占 128 維注意力頭中的 32 維:文字沿序列長度排列,影像與參考圖則是二維網格。參考圖與輸出共用相同的 (h, w) 座標,這正是 src_bbox 與 tgt_bbox 編輯能精確對應位置的基礎。排程器使用 6.93 的大幅時間位移,50 步中有 44 步落在噪聲水平 0.5 以上,也就是大部分步數都在處理高噪聲狀態。
影響與限制
執行成本方面,文章列出的峰值記憶體是:nvfp4 在 RTX6000 上載入後 13.4 GiB、推論後 15.3 GiB;fp8r 在 H100 上為 14.35 與 16.27 GiB;bf16 則是 18.80 與 20.72 GiB。速度測試在單張 H100 80GB 上進行,蒸餾版本文生圖 1024×1024 平均 1.93 秒,單參考圖生圖 3.87 秒,版面編輯(1360×768 參考圖)4.10 秒,峰值記憶體約 23.8 GiB。參考圖讓時間大約翻倍,原因是參考 token 會與文字、生成中的影像拼進同一條序列,一張 1024×1024 參考圖每次轉換器呼叫就多出 4,096 個 token。記憶體不足時有幾條路:載入量化後的單檔權重(fp8r 需運算能力 8.9 以上,nvfp4 需 Blackwell 架構搭配特定版本的 flashinfer)、把文字編碼器單獨跑完就釋放(它每張圖只執行一次)、或啟用自動 CPU 卸載。要注意量化只降低記憶體,每一步都要反量化,並不會帶來速度提升。
FLUX.3 也以 Modular Diffusers 管線發布,流程被拆成可觀測、可替換的區塊:可以列出工作流與其子區塊、把文字編碼器拔出來只編碼一次再重複生成,甚至在去噪迴圈中插入自訂步驟。文章示範了在迴圈裡記錄模型每一步對乾淨影像的推測,藉此呈現影像成形過程——狐狸的姿態與光線在第 10 步就已成形,毛髮與積雪枝條則到最後幾步才浮現。微調方面,Diffusers 內建文字生圖與圖生圖的 DreamBooth LoRA 腳本,後者以(參考圖、目標圖、指令)三元組訓練,適合做指令式編輯,並提供漸度檢查點、潛表示快取與 8 位元優化器等降低顯存的選項。
整體而言,FLUX.3 的價值在於把構圖資訊直接寫進提示詞,讓局部編輯不再需要額外的控制模型,同時以開放權重與量化格式降低硬體門檻。限制也很清楚:記憶體需求仍偏高,參考圖會直接拖慢生成速度,量化只省記憶體不省時間,而版面控制的準確度取決於座標與描述寫得是否精確。
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。