分享程式代碼相關筆記
目前文章總數:242 篇
最後更新:2026年 07月 25日
I2V 由圖片生成影片有以下 3 個核心缺點,圍繞著不可控制性,若需要影片內容具有合理性,勢必要一一克服這些問題:
| 項目 | 目的 |
|---|---|
| 1. 嚴重的「劇情走向失控」(缺乏終點引導) | 因為 AI 只有起點,沒有終點,它只能憑空「盲猜」接下來的畫面。 |
| 隨著影片時間推移(通常超過 2~3 秒後),畫面會迅速偏離主題,出現荒謬的變形、主體消失或不合邏輯的崩壞。 | |
| 2. 動作「不夠精準」且難以量化 | 單靠 Prompt 很難精確控制複雜的物理運動 |
| 3. 無法實現「倒敘」或「精準轉折」 | I2V 是單向時間軸的預測。如果你希望影片的結局是某個「特定的畫面」 |
| I2V 幾乎無法做到。因為它無法逆向推算,也無法保證在最後一幀剛好停在你想要的畫面上。 |
簡言之,引入 FLF2V 會加入 起始的圖片 + 結束的圖片 ,我們為 I2V 的生成影片建立了起訖
FLF2V 通過引入第二個控制點(尾幀,Last Frame),將原本的「單向盲猜問題」,
轉變為「雙向約束的插值問題(Bi-directional Constrained Interpolation)」。
| 比較維度 | I2V (Image-to-Video) | FLF2V (First-Last Frame to Video) |
|---|---|---|
| 控制力 | 低(僅能控制起點,其他都是 AI 依照提示詞猜想) | 極高(起點與終點皆在創作者提供的圖片) |
| 畫面一致性 | 隨著時間推移快速衰減,容易崩壞 | 極高(首尾特徵強行約束,中間不易跑偏) |
| 動態物理合理性 | AI 盲猜軌跡,常出現違反物理規律的變形 | 有明確的「起迄路徑」,動態軌跡通常更符合常理 |
| 適用場景 | 隨機性強的動態(如煙霧、流水、純運鏡) | 敘事性強、有明確結果的動態(如變形、起跳、日夜交替) |
簡要的應用場景對應:
I2V:讓一張照片動起來、背景物件會移動
FLF2V: 精準的鏡頭設計、分鏡腳本製作、精準鎖定起點與終點
若硬體設備遠高於此,基本上 VRAM 不足的問題應不容易發生,可不用檢閱此篇內容
| 項目 | 規格 |
|---|---|
| GPU | 名稱 NVIDIA GeForce RTX 5070 (12G VRAM) |
| CPU | Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz,3192 Mhz,6 個核心,12 個邏輯處理器 |
| RAM | 48 GB |
| OS | Microsoft Windows 10 專業版 |
本篇文章的工作流是依照上篇文章工作流進行擴展
因此本篇只會著重在 FLF2V 的節點異動與 FLF2V 專用的 GGUF 模型替換。
※上篇文章的第二部分 Step 3: 完整工作流 - 大綱參考
工作主要節點分成 6 個區塊
本篇會著重在 Step1 , Step3 , Step 5異動的部分(與上偏差異的調整)
| 項目 | 說明 |
|---|---|
| Markdown Note | 補充下載模型、存放位置、教學說明 |
| Step1 - Load models | 載入模型,VAE (編碼/解碼器),CLIP (文字特徵向量模型),類型使用 Wan |
| Step2 - Load LoRA - High noise | 載入 LoRA 模型,處理高噪音 High Noise、K採樣器參數調整 |
| Step3 - Upload start_image | 上傳圖片,FLF2V 引用 Resize Image 的節點,因為起始與結束影片要一樣長寬 |
| Step4 - Prompt | 文字提示詞,正面、負面 |
| Step5 - Video size | 影像的長寬,預設 512 * 512 ,引用 Wan首尾偵視頻節點 |
| Step6 - Load LoRA - Low Noise | 載入 LoRA 模型,處理低噪音 Low Noise、K採樣器參數調整 |
完整的工作流與節點間的連接可參考完整圖:
※此篇工作流載點:點擊下載
檔案下載的模型都記錄於 Markdown Note 中,對應載點跟出處也可以參考,要能正確運行 FLF2V 必須下載對應的 GGUF: wan2.1-flf2v-14b-720p-Q5_K_M.gguf
| 模型名稱 | 載點 |
|---|---|
| umt5_xxl_fp8_e4m3fn_scaled.safetensors | huggingface載點 |
| clip_vision_h.safetensors | huggingface載點 |
| wan2.1-flf2v-14b-720p-Q5_K_M.gguf | huggingface載點 |
| high_noise_model_rank64.safetensors | huggingface載點 |
| low_noise_model_rank64.safetensors | huggingface載點 |
| wan_2.1_vae.safetensors | huggingface載點 |
所有模型的存放位置也需放到正確位置下:
📂 ComfyUI/
├── 📂 models/
│ ├── 📂 text_encoders/
│ │ └── umt5_xxl_fp8_e4m3fn_scaled.safetensors
│ ├── 📂 clip_vision/
│ │ └── clip_vision_h.safetensors
│ ├── 📂 diffusion_models/
│ │ └── wan2.1-flf2v-14b-720p-Q5_K_M.gguf
│ ├── 📂 loras/
│ │ └── high_noise_model_rank64.safetensors
│ │ └── low_noise_model_rank64.safetensors
│ └── 📂 vae/
│ └── wan_2.1_vae.safetensors
主模型使用 GGUF (wan2.1-flf2v-14b-720p-Q5_K_M.gguf ),首尾偵視頻必須要更換此模型
此節點連結如下:
UNET 加載器 (GGUF)
└─ 模型 ──→ 加載LoRA (高噪音 模型 輸入)
加載CLIP
└─ CLIP ──→ 加載LoRA (高噪音 CLIP 輸入)
└─→ 加載LoRA (低噪音 CLIP 輸入)
加載VAE
└─ VAE ──→ VAE解碼 (vae 輸入)
└────→ 圖像到視頻(Wan) (vae 輸入)
加載CLIP視覺
└─ CLIP視覺 ──→ CLIP視覺編碼 (CLIP視覺 輸入)
可以參考 Step 6:工作流 Step2 - Load LoRA - High noise
※上篇文章內容
上傳圖片節點,我們必須增加對應的節點,本篇範例使用 山湖環繞的白天 與 山湖環繞的夜晚 當起訖
此區節點連結如下:
起始圖片
└─ 圖像 ──→ Resize Image v2 (image 輸入)
Resize Image v2
└─ 圖像 ──→ Wan 首尾偵視頻 (起始圖像 輸入)
└──→ 預覽圖像 (圖像 輸入) => 此節點可以忽略,但可以觀察到調整後的圖像預覽
└──→ CLIP視覺編碼 (CLIP視覺 輸入)
結束圖片
└─ 圖像 ──→ Resize Image v2 (image 輸入)
Resize Image v2
└─ 圖像 ──→ Wan 首尾偵視頻 (結束圖像 輸入)
└──→ 預覽圖像 (圖像 輸入) => 此節點可以忽略,但可以觀察到調整後的圖像預覽
└──→ CLIP視覺編碼 (CLIP視覺 輸入)
CLIP視覺編碼 (對應起始圖像)
└─ CLIP視覺輸出 ──→ Wan 首尾偵視頻 (Clip 視覺起始圖像 輸入)
CLIP視覺編碼 (對應結束圖像)
└─ CLIP視覺輸出 ──→ Wan 首尾偵視頻 (Clip 視覺結束圖像 輸入)
補充: 加載圖片、Resize Image v2 的新增節點操作如下:
要使用 Resize Image V2 節點,必須安裝 KJNodes 開發的 ComfyUI-KJNodes 節點包,除了調整圖片尺寸外,還有其他功能:
keep_proportion:保持比例的方式(crop 裁切、pad 補邊等)
divisible_by:讓輸出尺寸能被指定數字整除(對某些模型如影片生成很重要)
crop_position:裁切對齊位置(center、top、bottom 等)
搜尋欄輸入 KJNodes ,會出現對應的 ComfyUI-KJNodes 安裝包,安裝完成後,也需要重新啟動整個容器
可以參考 Step 8:工作流 Step4 - Prompt
※上篇文章內容
這裡需要新增一個 Wan首尾帧视频 節點 (取代上一篇原本的 Wan 图像到视频(Wan))
圖像到視頻
└─ 正向 ──→ K採樣器 (高噪音的 正面條件 輸入)
└──→ K採樣器 (低噪音的 正面條件 輸入)
└─ 負向 ──→ K採樣器 (高噪音的 負面條件 輸入)
└──→ K採樣器 (低噪音的 負面條件 輸入)
└─ Latent → K採樣器 (高噪音的 Latent圖像)
└──→ K採樣器 (低噪音的 Latent圖像)
可以參考 Step 10:工作流 Step6 - Load LoRA - Low Noise
※上篇文章內容
我們範例使用了以下 2 張圖片,作為起始與結束,白天:
夜晚:
正面提示詞,必須要符合起訖的變化
從白天到晚上的景色變化,微風吹動
最關鍵的是所有的圖片、影片 Width , Height 必須保持一致,避免影片變形
Wan + FLFV2 平均耗時約 240 秒左右(生成約 50次影片,平均秒數 212 ~ 268 間),完成生成 5 秒影片
影片的結果始終會趨向於結束的圖片(也就是山湖環繞的夜景),但中間過程中可能會出現不太符合物理邏輯的轉場
但我們的目的已經達到:
FLF2V 模型只負責「腦補中間的過渡過程」,但讓使用者鎖定了起點和終點。大幅降低非預期的結果。
山湖環繞日夜變化 - 範例影片:
在動畫領域中,如果已經有漫畫出來了,那麼就更容易導入 FLFV2 實現動畫化
※要注意 不能隨意找漫畫片段生成動畫,這將會侵犯商標權 ,因此要使用已列入 公共領域 (Public Domain) 的漫畫
根據美國版權法,1929 年發表的作品,其 95 年的版權保護期已於 2025 年 1 月 1 日正式屆滿。
這張大力水手首次發表於 1929 年 1 月 17 日的漫畫《Thimble Theatre》,是大力水手卜派(Popeye)在歷史上的第一次登場。已列入公共領域
因此很適合做為漫畫動畫化的演示 ※Wiki來源
我們挑出第 1 格分鏡當起始圖片:
第 2 格分鏡當結束圖片:

正面提示詞,必須要符合人類看漫畫的時候腦補的意境變化:
※因為是 2D 動漫人物,因此需要提示詞中強調是 2D 漫畫
左邊的人提著皮箱往右邊跑過去,坐著的人始終坐著盯著走過去的人
flat 2D comic strip style, simple thick black outlines,
solid flat colors, minimal shading
開始進行生成:
Wan + FLFV2 平均耗時也約 240 秒左右(基本上相近,圖片不太影響平均耗時),完成生成 5 秒影片
影片的結果始終雖然會趨向於漫畫中 卡斯特提著皮箱跑去找船員,朋友坐著看著卡斯特
但能生一個較正常的影片是十分困難的,畢竟 每個漫畫家的角色、畫風都不相同 ,
因此 FLF2V 的幻想過程會出現大量讀者覺得異常的影片
※此外也與 Wan 模型的訓練過程有關係:
Wan 這類影片模型的訓練資料以真實影片為主,對「粗線條、平塗色塊」的漫畫風格掌握度低很多。
生成約 50 次影片,約 5 次比較好的輸出結果 - 以下提供較不錯的生成影片:
FLF2V 的本質是「用首尾兩個基準點換取比 T2V / I2V 更高的可控性」,但始終屬於生成模型,能更接近,但並不能完全精準
我們將缺點分成 4 類(控制力、一致性、素材要求、技術成本)點出:
1. 控制力
| 缺點 | 說明 | 應對方案 |
|---|---|---|
| 1. 結束幀只是引導 | 結束圖僅作為條件注入,整段影片是重新生成,結尾只會「接近」而非「等於」結束圖 | 提高 CFG、prompt 與結束圖對齊、縮短影片長度 |
| 2. 中間過程不可控 | 首尾之間全靠模型腦補,無法指定中間動作;指令太多會趕戲或被忽略 | 拆成多段生成、每段只做一個動作 |
| 3. 成功率靠抽卡 | 同參數不同 seed 結果差異大,需多次生成挑選 | 多換 seed、固定可行參數後批次生成 |
2. 一致性
| 缺點 | 說明 | 應對方案 |
|---|---|---|
| 1. 人物身分漂移 | 影像條件是語意層級而非像素級,轉頭或動作後五官容易變 | 角色 LoRA、臉部佔比放大、prompt 明確描述特徵、後製換臉 |
| 2. 顏色漂移 | 逐幀生成累積色調偏移,越後段越明顯 | ColorMatch 校正、縮短單段長度 |
| 3. 風格漂移 | 對 2D 卡通、漫畫等非寫實風格掌握差,易往半寫實靠攏 | 風格 LoRA、prompt 鎖定風格描述、負面詞排除 3D/寫實 |
3. 素材要求
| 缺點 | 說明 | 應對方案 | |
|---|---|---|---|
| 1. 首尾圖限制多 | 長寬比需一致、主體位置視角要相近、尺寸需被 16 整除、低解析度輸入效果差 | Resize 節點統一尺寸、先 upscale、素材階段就設計好構圖 | |
| 2. 只適合連續變化題材 | 不同人物、物件憑空增減、場景切換等無合理過渡路徑,只能硬 morph | 換題材、生成中間過渡圖拆小步、改用剪輯轉場 | |
| 技術成本 | 1. 單段長度短 | 一次僅數秒,長影片須多段串接,漂移會逐段累積 | 尾幀串接法、每段用同一參考圖做色彩校正 |
| 2. 品質與速度取捨疊加 | GGUF 量化 + 加速 LoRA 損失會累積,人臉與細節最先犧牲 | 提高量化等級(Q8)、關 LoRA 對照排查、視需求取捨 | |
| 3. 生態版本混亂 | 2.1/2.2、單模型/雙模型、LoRA 版本需嚴格對應,配錯不報錯但效果變差 | 下載前確認模型世代與 LoRA 對應關係 |
4. 技術成本
| 缺點 | 說明 | 應對方案 |
|---|---|---|
| 1. 單段長度短 | 一次僅數秒,長影片須多段串接,漂移會逐段累積 | 尾幀串接法、每段用同一參考圖做色彩校正 |
| 2. 品質與速度取捨疊加 | GGUF 量化 + 加速 LoRA 損失會累積,人臉與細節最先犧牲 | 提高量化等級(Q8)、關 LoRA 對照排查、視需求取捨 |
| 3. 生態版本混亂 | 2.1/2.2、單模型/雙模型、LoRA 版本需嚴格對應,配錯不報錯但效果變差 | 下載前確認模型世代與 LoRA 對應關係 |
既然知道缺點實際上就有應對的解法了,始終圍繞在成本上是否值得花費更多時間投入。
「穩定」可拆成幾個面向:**動作穩定、主體一致、風格/顏色穩定、長影片連貫**。不同方法各自解決不同面向,實務上是分層疊加使用。
一覽表:
| 類別 | 方法 | 原理 | 解決的問題 | 備註 |
|---|---|---|---|---|
| 關鍵幀錨定 | FLF2V / 首尾幀 | 用首尾圖鎖定起點終點 | 結局不可控、段落串接 | 基礎錨定手法 |
| 結構控制 | VACE | 用參考影片的骨架、深度、邊緣逐幀約束生成 | 動作亂跑、構圖不穩 | V2V 最強方案 |
| 結構控制 | Fun-Control 系列模型 | Wan 的 ControlNet 式變體,支援姿態/深度/軌跡控制 | 動作與鏡頭控制 | 與 VACE 功能重疊,擇一即可 |
| 運動控制 | 軌跡/運鏡控制(軌跡繪製、相機控制節點) | 手繪軌跡或指定相機參數約束物體與鏡頭移動 | 運鏡隨機、物體亂飄 | 生態較新,版本相容需確認 |
| 主體一致 | 主體參考類模型(Phantom、S2V 類) | 輸入主體參考圖,讓角色整段保持同一身分 | 人物身分漂移 | 與 FLF2V 是不同的條件方式 |
| 主體一致 | 角色 LoRA | 訓練特定角色權重,每幀往正確長相收斂 | 人物身分漂移 | 治本但需訓練成本 |
| 風格穩定 | 風格 LoRA + prompt 鎖定風格 | 固定畫風的先驗 | 風格漂移(如卡通變寫實) | 非寫實風格必備 |
| 取樣策略 | 提高步數 / 適當 CFG / 關閉加速 LoRA | 減少取樣誤差累積 | 細節崩壞、動作趕戲 | 用品質換時間 |
| 取樣策略 | 縮短單段幀數 | 減少逐幀誤差累積 | 顏色漂移、後段崩壞 | 搭配串接補長度 |
| 長片連貫 | 尾幀串接 + 統一參考圖 | 每段用上段尾幀起始、同一張圖做色彩對齊 | 多段接縫、色調越接越歪 | 長影片主流手法 |
| 長片連貫 | Context / 滑動視窗長影片方案 | 生成時讓相鄰片段共享上下文視窗 | 長影片斷層 | 依模型支援度而定 |
| 後製修復 | ColorMatch 色彩校正 | 統計對齊參考圖色調 | 顏色漂移 | 注意會壓掉刻意的色彩變化 |
| 後製修復 | 臉部修復 / 換臉(ReActor 類) | 逐幀把臉換回正確身分 | 臉部不像、糊掉 | 補救型手段 |
| 後製修復 | 低 denoise V2V 重繪(refine pass) | 以原片為基底輕度重繪提升質感 | 細節粗糙、輕微瑕疵 | denoise 約 0.2~0.4 |
| 後製修復 | 補幀(RIFE / FILM)+ 放大(upscale) | 提升幀率與解析度 | 卡頓感、畫質低 | 不改內容,純觀感提升 |