你替一張杯子照片換色,再加杯墊、湯匙與小卡。每輪都只動一點,到了第十輪,杯把卻變細、桌紋被磨平,原本正確的字也悄悄換了形。這篇 TailSteer 教學要處理的,就是這種「越改越不像原圖」的累積漂移。
本文寫給第一次接觸公開權重改圖的讀者。前半用白話說明原理;後半帶你準備十輪練習、官方推論入口與逐輪驗收紀錄。你不必先懂模型訓練;若要執行指令,則需要已備妥的相容 Python、CUDA 與模型存取權。完成目標是一份可回查的改圖鏈,而不是只挑一張漂亮的最後圖。
以下依 2026 年 11 月 9 日查閱的論文、官方推論指南、模型卡與授權整理。本次 Apple Silicon 環境未執行官方 CUDA 權重推論;下文的杯子案例是練習設計,品質觀察明確歸屬原作者,沒有預填你的成績。
先說結論:改對、保住、可回退,要一起成立
可靠的多輪改圖=每輪改對+累積保留+版本可回退。把模型想成反覆接手同一張畫的修圖師:每交一次稿,就把那份稿當成下一輪底稿。第一次的小誤差,可能成為第二次的新起點。
- TailSteer 是模型最後一段訓練方法;下載的是經過它訓練的權重,不是往提示詞加一個神奇開關。
- 先固定同一原圖、十輪指令與設定,原模型和 TailSteer 各走自己的鏈。
- 修改成功、背景保留、繁中文字及授權,各自驗收;任何一欄過關都不能代替其他欄。
一、TailSteer 教學先懂原理:「收尾校正」不是最後才換模型
TailSteer 原始論文於 2026 年 11 月 4 日提交。它研究的是多輪圖像編輯:前一輪的輸出再次當輸入,細節、物件身分與背景可能逐步偏移。這和「同時放入多張參考圖」是不同問題;後者是輸入數量,前者是修改的時間順序。
擴散/流模型會經過一串去噪步驟,把帶噪的狀態逐漸推向圖片。TailSteer 的訓練思路是:早期盡量保留原模型的生成動態,後段再加強對應保留內容的修正。像修圖師先沿用熟練的構圖能力,再練習收尾時不要把桌紋一起磨掉。
關鍵在「訓練」二字。官方推論指南將 tailsteer 政策定義為每個去噪步驟都使用訓練後模型;可選的 transition 是另一種政策。本文用預設的原模型/TailSteer 對照,不把訓練的起始步數寫成推論時手動換模型的時機。

想先理解另一種影像路徑,可以讀 Pixel-Space Diffusion 與 VAE 教學。TailSteer 改善既有模型的訓練動態,與更換整個影像表示方式不是同一件事。
二、下載前先看三張卡:權重、授權、硬體
①「領對工具」:核對 backbone。截至查核日,官方列出 FLUX.2 [klein] Base 9B、Qwen-Image-2.1 與 SenseNova-U1.5-8B-MoT 的完整 TailSteer 權重入口。這裡的 backbone 是底層模型家族;名字裡都有 Klein,也不代表能拿本站另一篇 FLUX 3 Klein 配方直接替換。請從 官方權重對照入口逐一進入模型卡。
②「看誰准你怎麼用」:程式碼和權重分開。TailSteer 程式碼採 Apache 2.0;FLUX.2 9B TailSteer 的模型卡標示 FLUX Non-Commercial License,Qwen 版本標示 Qwen Research License。SenseNova 版本標示 Apache 2.0。選用哪一組,就保存該權重的 LICENSE、NOTICE、基底條款與版本,不要把程式碼授權當作全部素材與模型的授權。
本文後面的 FLUX 指令用於非生產環境的研究/評估練習。FLUX 條款分開規定模型用途與輸出用途:其中允許輸出用於商業目的,不等於模型的商業生產使用也自動獲准。若要接客戶改圖工作,先取得適用的模型使用授權,再把這套驗收方法搬過去。Qwen 版本條款也把商業模型使用另列授權。
③「算整張工作桌」:不是只看參數量。官方 環境準備指南要求依 backbone 安裝依賴,CUDA/PyTorch 與驅動需相容;Qwen 使用獨立環境。GPU 還要容納文字編碼、影像處理與中間狀態。本文不把某個參數量換算成你的最低顯存,也不把 --gpus 1 解讀成任何單卡都能跑。
有合適設備的人,先跑一張小練習,記錄實際輸出尺寸、峰值顯存與耗時,再安排十輪。尚未備妥的人,今天可以先完成下一節的素材和修改單;不必為了理解原理,立刻下載大型權重。
三、先寫十輪修改單:每輪都帶一份「保留清單」
準備自己拍攝或有權修改的無品牌白杯照片,放在有清楚木紋的桌面,後方留一個可辨識的小物。另存原圖為 source.png,原始設計檔保留文字圖層。這是商品視覺的評估素材,不是正在營運的廣告案。
先在紙上圈出杯口、把手、杯底、桌面木紋及背景物件。每輪寫「這次要改」與「截至這輪應保留」兩欄;後一欄包含先前已成功加入的東西。以下十輪是一份可改用自己素材的練習腳本:
- 第1輪:杯身換成藍色。前面已通過的物件與未指定背景都列入保留欄。
- 第2輪:杯下加米色杯墊。前面已通過的物件與未指定背景都列入保留欄。
- 第3輪:杯右加小湯匙。前面已通過的物件與未指定背景都列入保留欄。
- 第4輪:杯墊換圓形。前面已通過的物件與未指定背景都列入保留欄。
- 第5輪:左側加空白卡。前面已通過的物件與未指定背景都列入保留欄。
- 第6輪:杯身改深藍色。前面已通過的物件與未指定背景都列入保留欄。
- 第7輪:湯匙改銀色。前面已通過的物件與未指定背景都列入保留欄。
- 第8輪:空白卡改淡黃色。前面已通過的物件與未指定背景都列入保留欄。
- 第9輪:杯墊改深米色。前面已通過的物件與未指定背景都列入保留欄。
- 第10輪:卡片向左移一點。前面已通過的物件與未指定背景都列入保留欄。
原圖到第一輪先測「能否改色」,第四輪則檢查「改杯墊時是否連杯底也變了」。第十輪還要回看原圖的杯把和木紋。這樣可以同時抓到單輪出錯與慢慢累積的漂移。若指令本身要求大改背景,就應事先調整保留範圍,不能改完才移動評分標準。
四、TailSteer 教學上手:先跑官方例,再換自己的十輪
①「先固定配方」:取得程式與環境。以下以已備妥 Python 3.10、CUDA 和相容驅動的主機為前提。依序執行,每行都是獨立命令;先閱讀固定版本的安裝腳本,因為它會安裝依賴與上游程式。
git clone https://github.com/Lyricccco/tailsteer.git
cd tailsteer
git checkout 18d83648299a9cde9c6fdb5681091afc6b4c584e
python3.10 -m venv .venv
source .venv/bin/activate
python -m pip install PyYAML
python scripts/setup.py flux2-klein-base-9b
hf auth login
登入只在自己的終端機完成;需要接受模型條款時,到對應 Hub 頁面處理,不把 token 寫進任務 JSON。這份 checkout 是本文查閱快照;權重還要另存 Hub revision,因為程式版本與權重版本是兩個指標。
②「先確認會出圖」:跑官方單一路線。以下命令來自官方推論入口,使用完整 TailSteer checkpoint。它會執行咖啡場景的二十輪示範;這不是把你的商品圖跑十次的捷徑。只想準備十輪評估的人,可先讀輸入格式,等自己的素材與環境都就緒再執行。
tailsteer infer --backbone flux2-klein-base-9b --checkpoint Lyricccco/FLUX.2-klein-base-9B-TailSteer --policies tailsteer --inference-suite cafe-20turn --gpus 1
③「換成自己的考卷」:建立 tasks.json。在你自己的工作目錄放一個 images/source.png,另存下方單行 JSON 為 tasks.json。它只有一個任務、十輪,chain_rounds:true 表示逐輪接續;每輪 seed 固定,方便下次核對。提示裡的保留要求是文字指令,不是強制鎖住像素的遮罩。
{"tasks":[{"id":"mug-10turn","image":"source.png","chain_rounds":true,"rounds":[{"prompt":"Change only the mug body to blue. Keep the handle, shape, lighting and background unchanged.","seed":42},{"prompt":"Add a beige coaster under the mug. Preserve the blue mug and the rest of the scene.","seed":43},{"prompt":"Add a small spoon to the right of the mug. Keep all existing objects and the background unchanged.","seed":44},{"prompt":"Change only the coaster to a round shape. Preserve its beige color and all other details.","seed":45},{"prompt":"Add a small blank card to the left of the mug. Preserve all existing objects.","seed":46},{"prompt":"Change only the mug body to dark blue. Preserve its geometry and all other objects.","seed":47},{"prompt":"Change only the spoon to silver. Preserve its position and everything else.","seed":48},{"prompt":"Change only the blank card to pale yellow. Keep it blank and preserve everything else.","seed":49},{"prompt":"Change only the coaster color to dark beige. Preserve all other details.","seed":50},{"prompt":"Move only the blank card slightly to the left. Preserve all other objects and the background.","seed":51}]}]}
再複製官方 configs/inference/suites/cafe_20turn.yaml 成 configs/inference/suites/my_edits.yaml。把 name 改成 mug-10turn;tasks 改成你剛保存 JSON 的完整絕對路徑;image_root 改成 images 資料夾的完整絕對路徑。保留 policies: [base, tailsteer] 的兩種政策,以及 FLUX 的影像回餵設定;YAML 原本分成多行的清單也可原樣保留。官方 custom suite 範例提供完整結構。
④「兩條鏈各走各的」:準備原模型並對照。先下載具有存取權的基底,再執行自己的 suite;下面省略 --policies tailsteer,採用原模型與 TailSteer 的預設雙政策。
tailsteer prepare model --backbone flux2-klein-base-9b
tailsteer infer --backbone flux2-klein-base-9b --checkpoint Lyricccco/FLUX.2-klein-base-9B-TailSteer --inference-suite configs/inference/suites/my_edits.yaml --output-dir outputs/mug-10turn --gpus 1
原模型第二輪吃原模型第一輪,TailSteer 第二輪吃 TailSteer 第一輪;不要挑兩者最漂亮的輸出互相接續。官方指南記載輸出含 tasks/<id>/base/round-XX.png、tailsteer/round-XX.png、任務 metadata 與比較圖。先確認每條鏈都有完整十輪,再看哪張漂亮。
⑤「把版本一併交出」:保存設定。另存 git rev-parse HEAD、兩組權重的 revision、python -m pip freeze、tasks、suite、原圖與全部輸出。若使用 --checkpoint-revision,填入你已核對的 Hub commit。seed 相同仍需保存套件、精度與硬體;PyTorch 的重現性文件說明跨版本或平台不保證完全一致。
五、怎麼批改十輪:先改對,再保住,最後看文字
第一把尺是修改成功。每輪按修改單回答:藍色對嗎?湯匙有出現嗎?卡片真的左移嗎?若模型幾乎原封不動,背景分數再漂亮,也不算完成編輯。把結果記成通過/失敗,附上觀察理由。
第二把尺是內容保留。每輪同時比上一輪與原圖。前者抓新傷,後者抓慢性漂移。以同尺寸、同色彩模式圖片對照杯把厚度、杯口橢圓、木紋與背景小物;若構圖或尺寸被改動,先記錄這個失敗,別偷偷對齊裁切後當作原始結果。
接觸表就是「把每輪縮圖排在一起的總覽」。從官方比較圖開始,另排出原圖及兩條鏈的第 1、5、10 輪;疑點再打開原尺寸。每列註明模型與輪次,不要只憑檔名猜測。可用已安裝的 ImageMagick 排版,例如 magick montage source.png base-01.png base-05.png base-10.png tail-01.png tail-05.png tail-10.png -tile 4x -geometry 240x240+12+12 contact.png;先把這些示例檔名換成自己實際匯出的七張圖。這是排圖命令,不會計算模型品質。
第三把尺是繁中文字。「清楚」與「正確」分開看,品名、容量、價格逐字核對。建議先把模型當照片修圖工具,價格和品名最後用文字圖層排版;若要測文字保留,另開含繁中標籤的任務,不和前面的無字杯子結果混算。可延伸 局部改圖與繁中海報交付的文字圖層方法。
紀錄一輪至少包含:模型/revision、輪次、輸入與輸出檔、prompt、seed、修改是否成功、保留是否合格、文字錯誤、耗時與回退原因。首次失敗時先保留檔案。評估鏈繼續跑完整十輪用來觀察退化;挑交付稿時則回到最後一個合格版本,另開分支修正。兩者不要覆寫在同一資料夾。
六、官方證據怎麼讀:保留分數不是商品交件率
作者的 Add & Preserve把新增物件和框外保留分開量。官方公布的本機模型比較使用同一組 100 張圖、十輪編輯;COA 看要求物件是否存在,PSNR、SSIM 與 LPIPS 則看框外影像差異。可以把它理解成「有沒有做事」與「有沒有弄壞別處」兩張考卷。
這些是作者公開配置的觀察,不是本文跑出的杯子成績,也不是繁中包裝的交付率。PSNR、SSIM 偏向像素/結構相似,LPIPS 衡量學得的感知差異;不同尺度的尺不能相加成一個萬用分數。本文以逐輪可回查的人工規格作為你的第一份答案本。
同樣地,「大致保留單輪能力」不等於每項分數都上升。官方模型卡也呈現部分任務下降;挑模型應按自己的改色、加物件、細字保留三類工作驗收。不要拿官方精選示範推算你的成功率,也不要把其他 backbone 的數字搬到 FLUX 上。
常見問題:TailSteer 教學八個先講答案的判斷
1. TailSteer 是提示詞技巧嗎?
不是。它是最後階段的訓練方法;使用者通常載入經過這段訓練的公開 checkpoint。提示詞仍要把修改範圍講清楚。
2. 要自己訓練才能開始嗎?
可先用已發布完整權重。官方模型卡提供原生 pipeline 載入方式;本文走 suite 是為了保留兩條鏈和逐輪紀錄。
3. 「尾端」代表推論最後幾步才開它嗎?
本文的 tailsteer 政策不是。訓練後模型用於整條去噪軌跡;別與可選的 transition 政策混淆。
4. 十輪後背景一定完全一樣嗎?
不作這個保證。研究展示的是在其配置下減少累積漂移;你的不可變區域仍要逐輪核對。
5. 直接套 FLUX 3 Klein 的檔案可以嗎?
請按本篇 FLUX.2 Base 9B 的官方配方配對。FLUX 3 Klein 本機教學服務另一套模型與工作流,名字接近不足以證明相容。
6. 公開權重等於可拿來經營商業服務嗎?
不等於。FLUX 與 Qwen 這兩份權重有用途限制;先分開閱讀模型使用、輸出與素材權利,再決定能否進入生產。
7. 第一輪好看,就值得換模型嗎?
先完成整條修改鏈。尤其分開記修改成功與保留,才看得出模型是否只是少改東西。
8. 沒有合適 GPU,今天可以完成什麼?
可以完成原圖、十輪修改單、保留區域與評分空表。不要預填數字;有相容環境後再接上輸出與耗時。
給新手的三個重點
- 先認清權重與授權,再決定是研究練習還是生產工作。
- 每輪改對與累積保留分開評分,兩個模型各回餵自己的輸出。
- 保留原圖、每輪圖片與設定;最後一張合格,不代表中間沒有失敗。
接著閱讀
左右滑動查看更多推薦
下一步:先留下第一輪,也留下回去的路
今天先挑一張無品牌杯子照片,寫下杯把、木紋與背景三項保留條件,再完成十輪修改單。設備就緒後從第一輪開始,逐輪保存、逐輪批改。可靠的多輪改圖,始終是每輪改對+累積保留+版本可回退。
想接著建立更完整的創作流程,可以到 AI 文章專區選下一個練習,或透過 AlphaLab 課程安排系統化學習。先交出一條能回查的修改鏈,再把它擴成自己的工作方法。
