COMFYUI 基礎 · 第 14 課

MiniMax H3:看懂同步音畫的官方圖生影片流程

從官方 MiniMax H3 圖生影片模板辨認 base20 與 turbo 分支,沿著同一份取樣結果找到影片、聲音兩個解碼器,再合成 MP4。附四張原創示意、攤平練習 JSON 與音畫觀察單。

  • 入門進階導讀與選做實作
  • 讀圖約 35–50 分鐘;選做生成的模型下載與等待另計 · 閱讀與練習
  • 發布

開始前,準備這些

  • 會開啟 ComfyUI JSON、選模型及上傳圖片
  • 願意先核對模型授權適用地域、用途與執行環境
  • 選做生成者有一張有權使用的正方形圖片,以及能承受本課模型的設備

這一課,你會學會

  • 分清官方原版與移除 turbo 的 base20 練習流程
  • 追蹤 video 與 audio 兩條解碼路徑及 CreateVideo 接線
  • 分開記錄有無聲軌、實際聽感與畫面變化,不把官方示範當自己的結果
本課目錄

這次要找的,是取樣之後的兩條路

第十課讓一張圖動起來。這堂往前走一步:MiniMax H3 在生成過程中一起處理畫面與聲音,再用兩個解碼器取出 IMAGE、AUDIO,交給 CreateVideo 合成影片。 我們要能沿線解釋聲音從哪裡來、為什麼有一個獨立的 audio VAE,以及有 MP4 為何不等於聲音已經做對。

你可以只完成模板導讀,不必下載模型或購買服務。選做生成之前,先通過下面的授權、設備及素材檢查。

本課驗證到哪裡: 下載 JSON 經過來源與靜態連線檢查,沒有匯入 ComfyUI GUI,也沒有 GPU 實跑。四張圖都是本站原創資訊/接線示意,不是軟體截圖或生成結果。文中的「應該看到」是依官方模板及源碼推導的預期,不是本站錄製的操作證據。你實際跑出的檔案與錯誤,請自行記錄。

第 0 步:先決定停在閱讀,還是繼續執行

MiniMax H3 使用自己的 Community License。查核時版本日期為 2026 年 8 月 2 日;請於使用前再讀模型原始 LICENSE及 Comfy 授權問答。

  • Community License 的適用地域排除美國、英國、歐盟與韓國;相關地域限制也涉及 outputs 的使用與展示,不能只加上「非商用」就忽略
  • 原文商用條款包含年營收超過 2,000 萬美元須另取事前書面授權,以及其他標示、使用限制與 AUP 條件;不能簡化為「本機商用一律付費」或「低於門檻完全無限制」
  • 模型授權不替你取得輸入圖片、人物、商標、聲音或音樂的第三方權利。公開分享 AI 內容也要遵守條款中的揭露要求

以上只是閱讀入口,沒有替任何人的地區、業務或發布方式作法律判斷。如果你的情況不符合條款,或尚未確認,停在閱讀與接線辨識,不下載執行、不公開輸出,也不要嘗試繞過限制。

設備方面,本課四個主線模型檔合計約 40.07 GB/37.32 GiB。這是下載檔案量,不是 VRAM 需求。另留軟體、快取及輸出空間;本站沒有最低顯存、耗時或任何 GPU/Mac 可跑保證。官方模型頁對 int8_convrot 的 PyTorch/CUDA 組合另有說明,環境不相符先處理相容性,別直接套用不明加速教學。

第 1 步:拿到兩份 JSON,先不要按 Run

下載第十四課練習包,解壓縮到新資料夾,先保存目前的 ComfyUI 畫布。

  • official-minimax-h3-i2v.json:固定版本官方原始模板,保留子工作流、說明及 turbo 分支
  • lesson-14-base20.json:本站改寫的18節點、22條線練習版;攤平子圖,移除 turbo、LoRA 與未接主線的浮支線,保留20步同步音畫主線
  • observations.csv:A/B 兩列預填 not_run,不要在執行前填成功
  • README.txt、LICENSE-Comfy-Org.txt、sources.json:操作及修改說明、完整 MIT 聲明、版本與雜湊

包內沒有模型、官方輸入圖片、官方示範 MP4 或其抽幀圖。工作流的 MIT 授權不代表模型或影片輸出也只有 MIT 限制。

先用 Open 開官方原版,找 MiniMax H3 的子工作流。在其中辨識 Enable Lightning LoRA/turbo_mode:

  1. false 時,模型走原底模、步數走 20
  2. true 時,模型走附加 turbo LoRA 的分支,T2V/I2V 的外層 turbo_steps 預設 8
  3. 讀取真正接到節點的線:內層有殘留的4步、6步 widget 值,但它們被上游連線覆蓋,不能拿來當實際步數

應該看到(來源預期): 原版是少數外層節點包住大量內層操作;不是少幾個方塊就少幾個模型。原版說明要求 model scan 使用的 LoRA,連同主線約 42.03 GB。若跟本課 base20 練習版,則沒有 LoRA 節點,也不用下載那個約1.96 GB的檔案。

原創模型分支示意:base20練習版四檔約40.07GB;官方原版另含turbo LoRA約42.03GB,false走20步而true走LoRA與8步
本站原創資訊圖。只比較本課兩份JSON,不把 FastH3 或其他加速方法混入。不是 ComfyUI 截圖。

接下來另開 lesson-14-base20.json,以它完成剩餘步驟。不要在原版上憑感覺刪兩條線,就宣稱已移除模型需求。

第 2 步:四檔主線模型,分別負責什麼

只核對以下四個完整檔名。若已有相同來源與檔名的有效檔案,不必重複下載;不要下載整個模型倉庫,也不要混用 ref2va 權重。

檔案與官方檔案頁ComfyUI/models/ 下的資料夾精確 bytes
minimax_h3_fl2va_pruned_int8_convrot.safetensorsdiffusion_models/20,970,379,616
qwen3vl_32b_minimax_h3_nvfp4_awq.safetensorstext_encoders/15,687,142,551
minimax_h3_video_vae_int8_convrot.safetensorsvae/2,811,065,184
minimax_h3_audio_vae_fp32.safetensorsvae/605,254,808

精確檔案量來自 Hugging Face 的 Git LFS pointer,合計 40,073,842,159 bytes。上文容量摘要採十進位 GB,並另列二進位 GiB,避免把模板註解的單位混在一起。這個四檔集合是 base-only 接線所需,不是實跑後量得的最高記憶體。

模型檔放好後,重新整理模型清單;必要時先保存畫布再重啟 ComfyUI。核對:

  1. Load Diffusion Model/UNETLoader 選 fl2va 底模,weight_dtype 保留 default
  2. Load CLIP/CLIPLoader 選指定 encoder,type 保留 minimax,device 保留 default
  3. 兩個 Load VAE 分開選 video 與 audio,不能交換
  4. BasicScheduler 是 simple、steps=20、denoise=1;KSamplerSelect 是 res_multistep

本課不需要 embeddings、ref2va、FastH3、Sage Attention 或 KJNodes。官方概覽提到基礎支援版本,但本課固定JSON的節點metadata記為0.33.0、前端記為1.49.6;這些是來源記錄,不能當你目前軟體的最低相容保證。缺節點時先保存錯誤與版本,查看官方更新說明,別安裝同名陌生套件。

第 3 步:上傳自己的正方形參考圖

準備一張你有權使用、主體清楚、沒有敏感資訊的正方形 PNG/JPG,例如自己拍的桌面物品。先回想第七課的等比例縮放與裁切:長方形圖應先處理成你要的構圖。

  1. 在 Load Image 的上傳按鈕選圖;your-reference.png 只是提示用檔名,包內沒有這張圖
  2. 如果服務替上傳檔改名,在下拉選單選剛才的檔案
  3. 確認 Load Image 的 IMAGE → MiniMaxH3ImageToVideo.first_frame;last_frame 留空
  4. ResolutionSelector 保持 1:1、0.4 MP、multiple=32。這組設定的預期畫布是 640×640

應該看到(來源預期): Load Image 顯示你的原圖,first_frame 有接線。Load Image 的 MASK 沒有連線是正常的,這堂沒有遮罩編輯。

為什麼先用正方形?H3 目前核心會把 first_frame 直接縮放到目標寬高,這條路不是自動等比保留加留白。若拿長方形原圖配正方形畫布,主體可能被拉扁。原版裡另有縮放和 GetImageSize 節點,但它們沒有接進主輸出,不能當成正在修正比例。

若想看官方素材,可自行由官方原始滑鼠圖來源按適用條款取用;本站不重新托管。檔名的 transparent 指滑鼠透明外殼:檔案是1024×1024、RGBA,但 alpha 全255,背景並不透明。圖片也帶有另一套工作流metadata。請用 Load Image 按鈕上傳,不要把PNG拖進畫布恢復它的舊流程。

第 4 步:沿線找到聲音,別把它漏掉

在練習版沿著 SamplerCustomAdvanced 的 output 找兩條線:

  1. 一條到 VAEDecode.samples,搭配 video VAE,得到 IMAGE
  2. 另一條到 VAEDecodeAudio.samples,搭配 audio VAE,得到 AUDIO
  3. IMAGE 接 CreateVideo.images;AUDIO 接 CreateVideo.audio
  4. CreateVideo 的 VIDEO → SaveVideo.video

H3 的取樣結果含有影片與聲音 latent。這個核心版本的兩個解碼器各自取相應部分,因此練習版直接分成兩條解碼線。不要另外插入只因名稱看起來相關的音畫拆分節點,也別把 SaveVideo 接到 IMAGE。

原創音畫接線圖:同一個Sampler output分給VAEDecode與VAEDecodeAudio,各自使用video與audio VAE,再以IMAGE和AUDIO接CreateVideo並儲存
本站原創分組示意。下載JSON保留完整18個節點、22條接線;這張圖聚焦於取樣後的兩個解碼器。

應該看到(來源預期): CreateVideo 的 images 與 audio 都有接線,fps=24。剛載入 JSON 時播放器仍可能沒有結果,必須等流程真的成功執行;不要把空預覽當作已經沒有聲音。

第 5 步:把秒數、影格數和 fps 分開讀

練習版的 PrimitiveFloat=5 是輸入秒數。Math Expression 將它換算成 H3 支援的影格格點,再從 INT 輸出接入 length。

  • 5×24=120,但120不在17k+5的格點上
  • 對齊後是 124=17×7+5 個影格
  • 124÷24≈5.17秒,最後一格索引是123
原創時間換算示意:輸入5秒乘24等於120,依17k加5格點對齊為124影格,以24fps播放約5.1667秒,末影格索引123
本站原創算例,對應下載JSON的公式。不是實際生成耗時;聲音編碼與容器可能有極小長度差。

應該看到(來源預期): duration 為5,CreateVideo 為24fps,length 由公式接線供應。不要為了「生成快一點」只改播放 fps;那會改時間尺度,不能替代模型效能優化,還可能影響你對音畫時間關係的判斷。

第 6 步:第一輪只生成一段,再做音訊單變因

先讀練習版的原創提示詞:以輸入圖為視覺參考、主體靜止、一段緩慢推近、不切鏡,聲音只要求安靜室內環境,沒有語音或音樂。這種簡單目標比多鏡頭故事容易判斷。

  1. 保存一份 A.json,確認 seed=757358688076805、control_after_generate=fixed
  2. 確認20步、640×640、duration5、24fps及兩條解碼線不變
  3. 只有在授權、設備、圖片均確認後,才按 Run/Queue
  4. 遇到錯誤先存訊息。模型、顯存、節點問題都不能用「再按幾次」保證解決
  5. 成功取得檔案才在觀察單填 success;保存原圖、實際JSON、MP4及版本資料

應該看到(來源預期): 成功跑完後 SaveVideo 有可播放結果並寫入輸出位置;音訊是否存在、是否符合要求,仍須下一步檢查。SaveVideo 的格式和codec保留官方 auto,實際副檔名與容器依你的版本輸出確認,不能只因預期MP4就把其他檔案強改副檔名。

選做 B:複製 A,不換圖、不換 seed,只把提示詞最後的音訊句改為:

Audio: quiet indoor room tone with one soft electronic chime near the middle, no speech, no music.

改 SaveVideo 前綴為 lesson14/B-base20 以免混淆,另存 B.json。聽聽是否真的出現提示的聲音、時間是否接近片段中間。聲音與影片共同生成,因此只改音訊文字,也可能改變畫面;固定 seed 不保證畫面完全相同。 這正是觀察項目,不要事先把「只有聲音變了」填成結論。

第 7 步:先確認檔案,再聽,再看全片

原創三層驗收表:先檢查影片與音訊stream及長度,再自行聽聲音內容和時機,最後查看首中尾與完整影片,避免用官方25步示範冒充20步成果
本站原創觀察表。檔案解碼成功、有 audio stream、聽起來正確是三件不同的事,請分開記錄。

依序檢查自己的輸出:

  1. 檔案層: 用可顯示媒體資訊的播放器查看尺寸、fps、長度及音訊資訊;若你的工具不提供某項,就填「未檢查」,不要猜
  2. 聽感層: 先確認播放器、系統和裝置未靜音,以舒服音量完整聽一次。有沒有聲音、爆音、突然中斷?B要求的聲音是否出現、何時出現?
  3. 畫面層: 看主體形狀、背景、鏡頭是否突然切換,再與輸入圖比對。可用第十一課做首中尾抽查,但一定再看全片
  4. 比較層: 把A、B的音訊與畫面變化分兩欄寫。失敗、未聽、未檢查都保留,不把空欄當成功

本練習沒有要求人物說話,不需要用嘴形一致性當驗收目標。也不要拿一段有環境聲的影片,就推論模型可在所有語音任務達到同步要求。

官方示範應該怎麼看

到Comfy 官方 MiniMax H3 原生流程頁看 I2V 滑鼠產品展示及 T2V 屋頂追逐示範。本站查核的是官方MP4原始位元組:兩片有124影格、24fps、約5.167秒影片及32kHz雙聲道音訊stream;I2V為640×640,T2V為864×480。

關鍵差異:官方兩片內嵌metadata記錄的是25步、int8文字encoder與fp16影片VAE,不是本課20步、nvfp4 encoder與int8影片VAE的結果。 本站只解碼、查看抽樣影格與音訊stream,沒有聽辨或驗收同步品質;官方示範不能當作本站已跑通這份練習JSON的證據。我們提供官方展示連結,不複製完整影片或其抽幀到本課素材包。

卡住時,先查哪裡

現象先檢查先不要做
找不到模型完整檔名、資料夾、模型清單刷新下載整個倉庫或任意換精度
base20仍要求LoRA是否誤開官方原版JSON只關turbo就認定掃描不會要求
模型有載入但形狀不對原圖比例及ResolutionSelector在未接主線的浮節點改尺寸
有影片但沒聲音CreateVideo.audio連線、audio VAE、播放器靜音及stream資訊直接斷言模型不支援音訊
5秒變成約5.17秒124影格/24fps的格點對齊任意裁音軌掩飾差異
顯存或量化錯誤完整錯誤、版本及官方模型相容說明加裝未核對的attention套件

完成標準與來源

只讀導讀的完成標準:能指出4個主線模型、base20分支、兩個decoder、CreateVideo的IMAGE/AUDIO輸入,以及5秒如何變124格。不需有生成結果也能完成這部分。

選做實作的完成標準:保留自己的輸入圖、A(及選做B)JSON、實際輸出、版本與觀察單。資料夾中沒有輸出時,就誠實標 not_run 或 failed;分享前再檢查授權、圖片權利及metadata,並揭露AI生成。

查核日期:2026-10-12(UTC+8)。官方模板會更新;本課下載包固定原版版本,來源不同時不要混看其預設值。