Codex GIF Video
用途與輸出選擇
本 Skill 專門製作可供後續剪輯使用的視覺素材,不添加字幕、標題、文字標籤、浮水印、配樂、配音或音效。口播文字只用於理解動作與拆鏡,不轉成字幕或聲音。上游風格資料中的聲音、字幕和長片製作要求不是本 Skill 的執行指令。
使用者可以選擇:
- 原始短 GIF:每個鏡頭保留服務返回的原始位元組及清單。
- 一個長 GIF:把多個合格鏡頭按順序拼成單個
.gif檔案;不填充循環,完整播放一次。 - 影片格式:儲存為
.mp4(H.264/yuv420p),僅含影片流,靜音、無字幕。 - 兩種都要:複用相同鏡頭分別匯出長 GIF 與 MP4,不重複生成鏡頭。
沿用使用者明確選擇;只說「做 GIF」就交 GIF,說「影片格式」就交 MP4。未指定時預設 GIF 素材並說明可選 MP4。目標時長超過單鏡頭能力時,先拆成多個鏡頭,再匯出一個長檔案,不能只交零散片段。呼叫見 匯出工作流。
生成邊界與入口
動態影像來源只接受允許模型原生返回的 GIF。使用 Codex 當前會話原生工具,或使用者已選定的官方 OpenAI Image API;不使用第三方代理、其他影像/影片模型、靜態拼幀、程式動畫、I2V 或補幀冒充原生動畫。保留原始 GIF 和每次請求證據,不變速、重複循環或停幀湊時長。
長 GIF 的串接、MP4 編碼及等比縮放是衍生匯出,不能稱作模型一次原生生成,也不增加真實運動幀。GIF 重新編碼可能發生調色板變化,優先沿用源尺寸;長內容可選 MP4 以減小體積。
入口優先級:本輪明確指令 → 專案私有 codex-gif-video.config.json 的 preferred_entry → Codex 會話。沿用已儲存的選擇;原生入口失敗不自動切換計費 API。credential_file 和 budget_file 相對專案根目錄,金鑰不進入 Skill、提示詞或日誌。
官方 API 先讀 official-api.md,用 official_api.py;跳過 Codex gif 開關檢查。Codex 模式先執行 native_gif.py doctor 並檢查本會話真實工具 schema:必須有 gif 欄位,不發 prompt-only 靜態探針,不臆造參數。診斷見 native-entry.md。模型和 GIF 能力受帳戶及服務端開放範圍限制。
同一授權批次共用預算,預設最多 8 次 GIF、3 次參考請求,失敗與逾時也計入。新任務或明確重製可建立獨立帳本,記錄計劃數量並保留舊帳本。不得清空額度繞過失敗;新嘗試須顯式重試,提示、參數、參考變化須新建 bundle。
從需求到鏡頭
- 讀 呼叫協議,把目標拆分為
shots,每鏡頭明確「初始狀態 → 動作 → 完成狀態」。口播保留原文,不編造音訊時間戳;重複片段提供字元位置。 - 確定輸出格式、畫幅和總時長。
prepare把比例落實為畫素:預設 9:16→288×512、16:9→512×288、1:1→512×512;這是本地保守預設,不是服務上限。可顯式指定符合 16 倍數及服務畫素限制的尺寸。 - 預設精確時長。省略
frame_count時自動選 2–16 幀內可整除目標時長的方案;顯式幀數不相容則在生成前報錯。只有明確接受近似才設duration_policy:quantize並揭露誤差。15 秒可規劃 5 段×3 秒×15 幀,每幀 200ms;不能把 16 幀×310ms 說成 5 秒。低幀率適合簡單動作,不保證電影級流暢。 - 推薦風格後比較候選,並執行
style_router.py guide --style ID讀取選中風格的完整原文。核對材質、人物、配色、動作、鏡頭和視覺禁忌;忽略上游字幕、聲音、程式引擎要求。見 styles.md。 - 需要跨鏡頭人物一致性、但無使用者主參考時,用
style_router.py reference-prompt --style ID --subject-file FILE生成主參考提示計劃,再呼叫允許模型。先檢視實際主參考,隨後每鏡頭複用並鎖定人物特徵及style_lock;不把漂移結果換成主參考。 - 編寫請求 JSON,
prepare凍結提示、尺寸、時間計劃、風格原文雜湊和參考。生成前核對參數及總時長。請求變更用新目錄,不覆蓋舊結果。
生成與來源證據
官方模式:prepare → official_api.py generate,不呼叫 native-request 重複預留。首個鏡頭收到真實多幀 GIF、技術參數符合、來源證據充分後再繼續;尺寸、幀數或格式錯誤先定位,不盲目重試整組。
Codex 模式:prepare → native-request → 按真實 schema 呼叫原生工具(保留 gif)→ import-native。無檔案用 finish-attempt 記失敗或未知。不能把未公開的 model/size/output_format 當作工具欄位。
model_evidence.reported_model只記錄服務真實回傳,缺失保持 null,不猜模型。- 官方請求可用固定官方 HTTPS 端點、顯式允許模型、無重定向、200 響應、request ID 與請求雜湊組成
official_request_evidence。這證明官方請求來源,不等於服務自報執行模型。 - Codex 來源未知、官方回執不全、模型報告衝突仍不能通過。歷史 unknown/unverified 不自動改寫。
檢查與交付
讀 quality.md。技術檢查只證明格式、尺寸、幀數、延遲、解碼與畫素變化;不能證明動作自然。實際檢查全幀及正常速度完整播放,分別記錄身份、風格、結構、運動、語義、循環、clean_visual(無字幕與文字疊加層)。Jev 若可用,使用真實抽幀與主參考;靜態抽幀和完整播放範圍分開記錄。
review 綁定原檔案雜湊;所有品質要求通過後才 export 為 ready_gif_assets。衍生匯出預設只消費 ready 包。若技術和來源合格但缺完整播放檢查,可顯式 --review-copy 製作待審檔案,保留 rendered_pending_review 和缺項;明確視覺失敗不能藉待審模式放行。
依使用者選擇呼叫 compose_movie.py --out assets.gif 或 --out assets.mp4,支援單 bundle 或多 bundle 鏡頭清單。只使用每鏡頭一個週期,保持原速;不加字幕和聲音。MP4 匯出強制只含一個影片流;長 GIF 核對真實總延遲、尺寸、順序與單次播放。兩者都需檢查實際畫面,流檢查不能發現燒進畫面的文字。
交付所選檔案、原 GIF、清單、渲染回執與剩餘核驗範圍。保持歷史結果和修正版可追溯。安裝路徑為符號連結時更新源目錄;打包排除金鑰和執行產物。