FilmForge Painter
你將鏡次表轉化為屬於同一部電影的畫作。每個提示詞都由已鎖定的部分組合而成(風格鎖定、連續性記錄表、鏡次表),從不即興發揮,因此同一個角色在每個鏡次中都使用相同的詞彙描述。在資金動用之前,先通過檢查工具驗證。
路徑:此技能中的 scripts/、templates/ 和 config/ 是位於技能基本目錄(載入時顯示的目錄)內的資料夾,由 ./install.sh 放置。若從儲存庫的複本工作,它們位於根目錄的 tools/、templates/ 和 config/。
輸入
shotlist.yaml(重新計時後)、style-lock.yaml、continuity.yaml、以及 art/sheets/ 中的圖紙和底片。
步驟 1. 記錄表,逐鏡次
為每個鏡次,在 continuity.yaml 中撰寫其條目:哪些角色在畫面中、哪些道具(及其持有者)、哪些狀態(傷口、煤灰、手腕上的緞帶)。道具和狀態帶有時間範圍(from、until)。
python3 scripts/ledger.py check continuity.yaml --shotlist shotlist.yaml
若出現漂移則失敗:道具在其時間範圍內但持有者不在畫面中、道具或狀態超出其時間範圍、未知的 ID、與鏡次表不符的角色列表。在撰寫提示詞之前修正記錄表。
步驟 2. 撰寫每個提示詞(prompts/<id>.md)
遵循風格鎖定的語法,逐項填寫(forge-style-lock、references/prompt-grammar.md):
- LOOK:此鏡次的視覺風格(鏡次表中的
look:,否則為預設值),逐字照抄。 - REFERENCES:每個附加資產一個子句,來自
style-lock.yaml references:,依附加順序排列;再燈光子句。 - SHOT:鏡次表的構圖、攝影機高度、鏡頭感、在三分法則上的位置。
- SUBJECT AND SCALE:每個角色,從記錄表中取得代號 + 錨點 + 比例鎖定;計數。
- MOMENT:鏡次的節拍,作為一個瞬間。
- SETTING:地點、天氣、時間、背景。
- LIGHT:方向、品質、色溫,以及其在世界中的光源。
- COLOUR:場景的色彩腳本草稿詞彙。
- TEXT AREA,當鏡次有
text_area或旁白覆蓋時。 - CONTINUITY:此鏡次的記錄表中道具和狀態,逐字照抄。
- LOCKS:每個涵蓋此鏡次的
forbid子句,逐字照抄;鏡次特定的否定。 - AVOID:結尾,逐字照抄。
檔案格式,嚴格遵守:
# s02: the last match
Model: gpt-image-2.5, high, 2K, 16:9. Attach: sheet_girl, sheet_moth.
```
<提示詞,第 1 至 12 項作為段落>
```
第一個圍欄代碼塊是提示詞;其餘內容是給人員的註記。
步驟 3. 花費前先檢查
python3 scripts/ledger.py prompts continuity.yaml --prompts prompts --style style-lock.yaml --shotlist shotlist.yaml
若提示詞未以視覺風格開頭、未以避免結尾、缺少角色的代號或比例鎖定、道具或狀態錨點、禁用顏色子句、或包含角色名稱,則檢查失敗。production.py spend 在此檢查失敗時拒絕花費繪圖階段。在引擎的範例中,檢查捕捉到 s03 缺少比例鎖定;根據該提示詞繪製的畫作將飛蛾畫成其六分之一大小。
步驟 4. 以四張為一批進行繪製
- 順序: 先圖紙和校樣(風格階段),再主角畫面,然後按場景順序處理剩餘部分。重複使用的鏡次和程式碼鏡次不花費成本;從不繪製它們。
- 批次: 四個提示詞,每個提示詞以其 REFERENCES 項次命名的順序附加其參考資料。首先記錄花費:
production.py spend 11.0 --item "s05-s08 batch 2"。 - 檔案:
art/film/<id>_<slug>.png(s07a_child_reaches.png風格:ID 在前,接著是 slug)。重新繪製為<id>_<slug>_v2.png;分級程式碼修正為<id>_<slug>_g.png。工具根據名稱選取最新版本。 - 每批後: forge-frame-qa 在下批繪製前以全尺寸讀取每張畫作。第一批中發現的錯誤在第二批的提示詞中修正後再重複。
步驟 5. 重新繪製
重新繪製來自 forge-frame-qa,附帶其原因和修正後的提示詞。將修正後的提示詞放入 prompts/<id>.md,檢查,記錄花費,繪製 _v2,然後送回 QA。如果原因在記錄表或風格鎖定中(對所有人都缺少鎖定),則在那裡修正並重新檢查所有提示詞。
特殊情況
- 圖畫書頁面: 在每個提示詞中指明版面(跨頁 3:2、頁面 3:4、透明背景上的小插圖 1:1)和文字區域。所有文字都在書中設定,從不繪製。
- 影片關鍵幀: 透過相同的語法繪製第一幀(以及當動作必須精確結束時的最後一幀);動作提示詞是單獨的步驟,僅在關鍵幀通過 QA 後執行。
- 關鍵姿勢(
poses: 2):每個姿勢一個提示詞,除了 MOMENT 項次外完全相同,以便乾淨地銜接。 - 底片: 空場景、無角色、跨鏡次重複使用;它們承載設定,使提示詞保持簡短。
輸出
- 每個已繪製鏡次的
prompts/<id>.md,全部通過檢查。 - 包含每個鏡次條目的
continuity.yaml,通過ledger.py check。 art/film/畫作,以 ID 命名,準備好進行 QA。
每批前的檢查清單
-
ledger.py check通過 -
ledger.py prompts對此批次通過 - 參考資料依 REFERENCES 順序附加;正確的圖紙版本
- 已記錄花費;批次為四個或更少
- 上一批次已有其 QA 判定
修復表
| 檢查或 QA 發現 | 要修正的項次 |
|---|---|
| 未以風格鎖定開頭 | 1:貼上視覺風格,未經編輯 |
| 缺少代號或比例鎖定 | 4:從記錄表貼上;加入與畫面中某物的比例 |
| 缺少道具或狀態錨點 | 10:從記錄表貼上 |
| 缺少禁用顏色子句 | 11:貼上規則的 prompt |
| 使用了名稱 | 4 及其他地方:替換為代號 |
| 繪製中尺寸或計數錯誤 | 4:比例鎖定和精確計數;然後圖紙的比例尺 |
| 主體照明平淡 | 2:再燈光子句;7:帶有光源的光線 |
| 繪製了文字或字母 | 9 和 12:文字區域用於程式碼;避免結尾中的 "text" |
參考資料
references/batching.md:批次規劃、命名、版本,以及來自真實電影的實際批次範例