FilmForge 風格鎖定
一部由獨立生成影像組成的電影,只有在每張影像都以相同方式製作時,看起來才像一部電影:一個模型、一個設定、一句逐字貼上的視覺描述句、每個角色的圖表附加到每個提示中,以及所有其他內容的固定順序。此技能會建立 style-lock.yaml、角色表以及 continuity.yaml 的角色區段,然後在繪製階段開始前,透過 2 到 4 張驗證框架進行鎖定驗證。
路徑:此技能底下的 scripts/、templates/ 和 config/ 是資料夾(在它載入時顯示的基礎目錄),由 ./install.sh 放置。若從儲存庫的 clone 執行,它們位於根目錄的 tools/、templates/ 和 config/。
步驟 1. 一個模型,一個設定
只選擇一次,在影片中永不混用。畫風電影的預設值:GPT Image 2.5、高品質、2K、16:9(每張繪畫 2.75 點數),並在程式碼中升級至 4K。圖畫書可以使用中等品質(約 1 點數),因為頁面觀看時較小且靜止。將其記錄在 model: 下,並加上價格表的 model_id。
如果風格尚未決定,以兩種或三種候選風格(便宜)繪製同一張驗證框架,在 100% 比例下肉眼選擇。不要在縮圖上鎖定。
步驟 2. 視覺描述句
一句話,逐字放在每個提示的開頭。它命名了媒材、線條、色彩、紋理與光線,並指向參考資料:「完全按照附加圖表的風格」。來自真實電影的已運作風格(更多內容在 references/looks.md):
一幅手繪 2D 動畫長片的畫面,完全按照附加圖片的乾淨風格:自信的墨線條、僅在陰影處使用交叉影線、平塗賽璐珞色彩、富有表現力的動畫臉部。無繪畫性紋理、無噪點。
這是 Simorgh 的鎖定。Buried Soul 的圖畫書使用了兩個鎖定,因為它的繪畫承載了故事:一個活著的風格(類似 Cartoon Saloon 的筆墨輪廓,帶可見鉛筆建構、平面圖形形狀、分層水彩與不透明水彩、凱爾特結飾、發光的金色歌線)和一個凍結的風格(相同風格但用尺規畫出:直線木刻線條、灰色影線、平坦中世紀透視、石板、灰燼與骨頭;只有女孩保留顏色)。僅在繪畫風格的變化本身就是故事的一部分時,才使用第二個風格。
步驟 3. 避免詞尾
一句話,逐字放在每個提示的結尾:模型容易偏離的方向。預設詞尾:
避免:3D 渲染、寫實照片、文字、浮水印、多餘手指、扭曲臉部。 僅加入此風格會偏離的項目(動畫、塑膠、CGI、錯誤媒材)。屬於單一鏡頭的否定應放入該鏡頭的 LOCKS 插槽。
步驟 4. 色板與色彩規則
在 palette: 中命名色樣,並在 continuity.yaml 中為每個場景命名色彩腳本(colour.script)。將每個故事的色彩規則轉換為帶有提示子句的 forbid 規則:該子句會放入該規則涵蓋的每個提示中,而 ledger.py palette 會根據它測量每張繪畫。範例:Simorgh 的燃燒天空在鏡頭 41 之前不允許藍色;之前的每個提示都帶有「絕對不能有藍色」。
步驟 5. 鏡頭與構圖語言
對於畫風電影:繪畫保持如同電影畫面,因此構圖替代了攝影機的工作。寫出鏡頭感覺(焦距、高度)、永不發生的情況(無魚眼、無傾斜),以及構圖規則(主體在三分線上、當鏡頭有文字時為文字保留安靜區域)。
步驟 6. 角色表(templates/character-sheet.md)
每個角色一張表,附加到該角色出現的每個提示中。
- 正面、背面、臉部的正面角度圖,在平坦無陰影的光照下,使用純中灰色背景,以免燈光效果被固化。針對風格化角色,進行臉部與手部研究;表情:中性、關鍵情緒、其相反情緒。
- 比例尺: 將該角色與每個共享畫面的其他角色或道具並排繪製,以真實相對大小呈現。這是 Simorgh 中一隻戴勝鳥在五個鏡頭中畫得太小的教訓:比例必須存在於圖表和分類帳中,絕不能靠運氣。
- 非人類角色需有材質表:它們由什麼製成、錯誤材質清單(「餘燼,非毛皮,非玻璃」)、它們如何移動。
- 每個鏡頭提示都帶有重新照明子句:「根據此場景重新照明;不要複製圖表的平坦光線」。
步驟 7. 代號、錨點、比例鎖定
為每個角色寫入 continuity.yaml:一個代號(每個提示使用的視覺名稱:「穿著紅色連帽披肩的女孩」)、一個錨點(完整風格的單句描述,逐字貼上)、一個比例鎖定(與附近某物的比例),並將角色名稱加入 names:。名稱絕不會放入提示中:模型可能將名稱畫成文字,且名稱不包含視覺資訊。
步驟 8. 提示語法(每張繪畫,按此順序)
| # | 插槽 | 內容 |
|---|---|---|
| 1 | LOOK | 視覺描述句,逐字 |
| 2 | REFERENCES | 每個附件管理的內容,按附件順序;重新照明子句 |
| 3 | SHOT | 構圖、攝影機高度、鏡頭感覺、誰坐在哪個三分線上 |
| 4 | SUBJECT AND SCALE | 每個角色的代號、錨點和比例鎖定;大小作為比例;計數(「恰好一隻貓頭鷹」) |
| 5 | MOMENT | 節拍的單一瞬間;臉部和身體展現的情緒 |
| 6 | SETTING | 地點、天氣、時間、背景中的事物 |
| 7 | LIGHT | 方向、品質、溫度,以及它在世界中的來源 |
| 8 | COLOUR | 場景的色彩腳本詞彙 |
| 9 | TEXT AREA | 「保持上三分之一安靜:淺色天空用於文字」(僅當文字放在那裡時) |
| 10 | CONTINUITY | 道具和狀態,逐字來自分類帳 |
| 11 | LOCKS | 禁止顏色子句,逐字;鏡頭特定的否定 |
| 12 | AVOID | 避免詞尾,逐字 |
ledger.py prompts 會在花費任何點數之前,機械式地檢查插槽 1、4、10、11 和 12。詳細資訊與完整範例:references/prompt-grammar.md。
步驟 9. 驗證鎖定
繪製角色表、空場景圖以及 2 到 4 張驗證框架(必須讓人們有所感受的鏡頭)。對它們以 100% 比例執行 forge-frame-qa。現在重新繪製圖表,而不是稍後:每張繪畫都會繼承它的缺陷。然後執行 production.py signoff style --by <you> --note "<你讀到的內容>"。
輸出格式
style-lock.yaml(範本):模型、風格、default_look、避免、語法、參考資料、鏡頭、色板、max_chars。prompts/中每個圖表和場景圖的一個提示,art/sheets/中的圖表本身。continuity.yaml:角色(代號、錨點、比例)、名稱、色彩腳本和 forbid 規則。- 驗證框架及其 QA 判決。
檢查清單
- 選擇一個模型和設定,並以價格表 ID 記錄
- 撰寫視覺描述句和避免詞尾;兩者中皆無角色名稱
- 每個角色:帶有比例尺的圖表、代號、錨點、比例鎖定;名稱在
names:中 - 色彩腳本和每個色彩規則作為帶有提示子句的
forbid - 圖表、場景圖和驗證框架在 100% 比例下閱讀並接受
- 已簽署
修復表
| 症狀 | 修復方法 |
|---|---|
| 繪畫風格逐漸偏離 | 視覺描述句未逐字出現在每個提示中,或混合了兩種模型 |
| 角色在不同鏡頭間改變 | 未附加角色表,或錨點被改寫;附加並貼上 |
| 角色出現時尺寸錯誤 | 提示中無比例鎖定,或圖表上無比例尺 |
| 名稱或文字出現在畫面中 | 提示中出現名稱或引用的文字;使用代號;文字屬於程式碼 |
| 場景看起來像平光攝影棚 | 複製了圖表的平光:加入重新照明子句 |
| 禁止的顏色悄悄出現 | 子句從 LOCKS 中遺漏,或規則的閾值太寬鬆;使用 ledger.py palette 測量 |
參考資料
references/prompt-grammar.md:每個插槽的規則與完整的註解提示references/looks.md:來自真實製作的已運作風格和圖表提示,以及如何撰寫新的風格