Comfy Director 是做什麼的?
故事優先,畫面其次。多鏡頭 AI 影片的失敗在於剪輯,而非渲染: 如果節拍之間缺乏因果關係,即使每個鏡頭都很精美,讀起來也只像穿著故事外衣的蒙太奇。
必要背景: comfy 技能(CLI 機制 + 食譜路徑 — apply/capture/foreach — 用於可重複使用的多階段圖表)。任何失敗的任務請參考 comfy-debug。
操作順序
- 概念 — 一個陌生人能複述的單一想法。
- 劇本 — 在碰觸管線之前。先交付給使用者。
- 分鏡表 — 每個場景對應一個連續性策略。
- 音訊設計 — 根據劇本的情緒節拍,而非在畫面完成後才做。
- 製作 → 整合 → 品質檢查。
跳過第 2 步直接進行渲染是導致剪輯失敗的首要原因。
劇本規則
- 一個鏡頭可以跟隨的主角。 在每個鏡頭中都能辨識出來。
- 因果關係測試: 每個剪輯都回答「因為那樣…」——絕非「然後,在某個地方…」。如果一個節拍可以重新排列而不破壞任何東西,它還不是一個故事。
- 陌生人測試: 沒有任何背景的人必須能用兩句話複述情節(「X 想要 A,B 阻止了他們,他們做了 C,所以 D」)。
- 節拍攜帶時間,總和應等於目標片長。
概念規則
- 品牌/產品是被感受到的,而非被點名的:論證其理念; 螢幕上引用的內部笑話和社群傳說讀起來像粉絲服務。
- 客戶提到的技術(「風格轉換」、模型名稱)是火花,而非指令——只有在想法需要時才使用它。 圍繞技術建構影片是供應商而非導演的特徵。
- 怪異必須疊加:令人驚訝的主體 AND 客體 AND 場景。 正常畫框中只有一個怪異元素只是裝飾。
提示鏡頭
- 逼真鏡頭: 僅限真人電影攝影師/底片語言。 一個插畫家/動漫/漫畫名字放在逼真的提示中會毒害它。 插圖參考僅屬於刻意風格化的鏡頭。
- 動態提示描述場景如何移動,而非裡面有什麼(請參閱
comfy技能影片陷阱 — t2v/i2v 模型陷阱、SaveVideo、fps 接線)。
連續性工具組
按鏡頭選擇,粗略依強度排序:
| 策略 | 用途 |
|---|---|
| 將角色/場景參考圖像帶入每個鏡頭的 i2v 圖表 | 主角身份 |
| 相同身份,透過參考圖像編輯獲得不同取景(一個主角 → N 個角度) | 跨剪輯的可辨識面孔 |
| 鏡頭 N 的關鍵幀作為鏡頭 N+1 的種子(以圖像為參考的重新風格化或結束幀) | 連續動作 |
| 說話的頭部餵入確切播放的音訊(KlingAvatar),在同一個嘴型同步的頭部的不同角度之間剪輯——切勿在 VO 上方使用 B-roll | 必須感覺真實的對話 |
| 在每個提示中逐字重複相同的服裝/燈光/鏡頭描述 | 廉價的基本黏合劑 |
如果一個鏡頭無法保持連續性,重寫劇本,使其不需要該鏡頭——不要交付有缺陷的成品。
音訊
- 配樂 = 短小設計好的提示,在故事轉折點連接;一次長時間的生成 無法遵循動態弧線(它會在你需要高潮的地方正好反轉)。
- 透過數學計算放置 VO:音軌持續時間 vs 節拍窗口,在混音之前。
- 在 VO 下方降低配樂音量;對最終混音進行音量正規化(約 -14 LUFS)。
- 對話必須透過建構來實現嘴型同步。 用播放的確切音訊驅動嘴巴(KlingAvatar
sound_file),並在同一個嘴型同步的頭部的不同角度之間剪輯——在連續的 VO 上方使用 B-roll 讀起來像蒙太奇,而且 i2v 發明的嘴巴會漂移。「沒有嘴型同步/感覺不真實」是經典的拒絕理由。(在圖內生成音訊 — 雲端LoadAudio看不到上傳;請參閱comfy音訊陷阱。) - 在昂貴的渲染之前,用耳朵鎖定聲音與選角。 聲音/口音是主觀的,無法從波形讀取——先渲染一行文字的幾個廉價候選 TTS 錄音,讓使用者挑選,然後將勝出者烘焙到昂貴的、易受
transient_auth影響的頭像/嘴型同步鏡頭中。因拒絕的聲音而重新渲染所有這些鏡頭是可避免的浪費。主角的外觀也同理:在根據主角靜止幀生成每個鏡頭之前,先批准它。 - 透過測量而非猜測來驗證混音。 你無法聽到渲染結果——
使用
ffmpeg volumedetect檢查每個部分:結尾的「死寂」或被埋沒的臺詞會顯示為接近 -91 dB 的窗口。在宣布完成之前,確認每個節拍都以適當音量出現。
製作運營
-
在提交時,將每個提交內容——鏡頭、關鍵幀、音訊音軌、重新提交——附加到
job_ids.txt(<job_name> <prompt_id>)。僅追加: 重新提交會得到新的一行(shot_s3_resubmit <id>),絕不覆蓋, 所以失效的 prompt_id 會保留其鏡頭身份。 -
在專案根目錄維護
LOG.md:一個僅追加的事件日誌,在事件發生時(而非會話結束時)撰寫——每個提交/重新提交(+ 失敗代碼)、每個 QC 判決(+ 重新生成原因)、以及每個會使先前工作失效的決策:重新選角、提示變更、哪個參考圖像或音軌現在是權威版本。逐幀的發現存在於qc/QC_LOG.md中;LOG.md為它們提供索引。17:36 ERROR shot_s3 transient_auth -> RESUBMIT 27dd45b4 (same workflow, no re-login) 17:44 QC shot_s2 FAIL background-crawl -> re-roll (same kf, new seed); recut beat if 2nd fails 17:50 DECISION recast protagonist -> ref_ray.png canonical; vo2, vo6 stale, re-gen -
恢復合約: 一個完全無記憶的後續代理程式必須能僅從磁碟恢復:
LOG.md(發生什麼事、原因)→job_ids.txt(哪些任務)→comfy jobs status(它們的狀態)。不在LOG.md中的決策會隨著會話消失——否則,已完成但過時的任務(舊選角的 VO 音軌)看起來與好的任務一模一樣。 -
對每個下載的剪輯執行 ffprobe;在整合前將不標準的時長/尺寸正規化。
-
在剪輯前,對每個剪輯中的一幀進行品質檢查,與劇本比對。
-
精確片長:在 ffmpeg 中按節拍修剪/重新計時,不要依賴運氣。
常見錯誤(每個都曾毀掉一個真實剪輯)
| 錯誤 | 結果 |
|---|---|
| 劇本前就渲染 | 「八個漂亮的節拍,但彼此沒有因果關係」 |
| 螢幕上出現社群傳說 | 「太直接,粉絲服務」 |
| 將客戶提到的技術作為概念 | 「我說它是為了激發想法」 |
| 沒有連續性計畫 | 主角每換一個鏡頭就變臉 |
| 一次 40 秒的音樂生成 | 弧線在高潮處反轉 |
| 在連續的 VO 上方使用 B-roll | 「感覺像蒙太奇 / 音訊不匹配」 |
| 在使用者聽到之前就將聲音烘焙到 N 個鏡頭中 | 當他們拒絕時重新渲染所有東西 |
| 直接拼接說話頭部的剪輯 | 聲音不同步(頭像會將影片墊長超過音訊) |