/kinetic-multicam:單一鏡頭 → 動態文字圖形 + 相機甩動
概述
將一段真實的談話影片,轉換為經實戰驗證的影片轉影片提示詞——最適合在 Seedance 2.0 Fast 上使用(Google Omni 也可執行但效果明顯較差;不建議推薦)——在未經修改的素材上加入兩項元素:分秒之間清楚可見的相機甩動(附帶動態模糊的移動,抵達後鎖定為穩定畫面),以及與語音節拍同步的粗體動態文字圖形(motion-graphics text,非字幕)。提示詞 保留上傳的原始影片——臉部、房間、音訊、唇形同步皆維持原樣。它不會描述或重新生成場景。
核心原則:模板是凍結的;只有三個區域永遠會變動—— [Xs] 時間戳記(永遠會變)、"[TEXT]" 文字超疊(從實際說出的詞語中截取;並非每個區塊都會有——文字超疊遵循自己的密度規則)、以及相機位置描述(僅在使用者要求時才變更)。
此為姊妹技能,非同一技能:/multicam 使用硬切(hard cuts)且不含文字。切勿混合兩個模板——本技能永遠不會出現「hard cut」,使用 From [Xs] to [Xs] 範圍(而非 * At [Xs]:),並自帶排版指示。兩者間的過渡方式即為區別:/multicam 在不同角度間 剪接;本技能則以可見的運動模糊甩動在角度間 移動。
輸入
僅限本地影片檔案(使用者自己的素材)。如果使用者只有網址(Instagram 連結、Google Drive 連結),請要求他們先將影片儲存為本地檔案。如果有多個影片可能是「目標影片」,請詢問——切勿透過 ls -t 猜測。
步驟 0 — 前置檢查(首次執行,或任何遺漏工具錯誤時)
python "<此技能基礎目錄>/scripts/check_env.py"
它會確認 Python 3.8+、ffmpeg、ffprobe 和 Whisper 是否已安裝,並針對任何遺漏的項目,顯示該工具用途以及對應作業系統的安裝指令。它不會自行安裝任何東西——請回報遺漏項目、詢問使用者許可、進行安裝、然後重新執行檢查。如果本次工作階段所有項目均通過,則直接跳至步驟 1。
步驟 1 — 語音節拍分析
python "<此技能基礎目錄>/scripts/beats.py" "<影片路徑>"
(此技能的基礎目錄會在技能載入時宣告。)
將偵測到的 LANGUAGE 和 DURATION 回報給使用者。常用標記:若偵測語言有誤可使用 --language <code>、強制重新轉錄使用 --force、追求準確性而非速度使用 --model medium、設定不同區塊數量使用 --cuts N(轉錄 JSON 存在後,重新執行是即時的)。
步驟 2 — 決定區塊數量,然後優化邊界(需判斷;腳本僅回報事實)
區塊數量隨長度增加——但每次甩動會消耗畫面時間(約 0.2–0.3 秒的可見移動),因此動態密度應維持在等於或低於 /multicam 的剪接密度,絕不超過:≤10 秒 → 4 個區塊;>10–15 秒 → 5 個區塊;>15 秒 → 6 個區塊(約每 1.6–2.2 秒一次相機移動)。使用者可在檢查點覆寫此設定。若區塊數量非 4,請以 --cuts N 重新執行 beats.py(即時完成,轉錄資料已快取)。
時間軸由 N 個區塊拼接而成,起始保留原始相機畫面:[0 → t1] 原始構圖(無文字疊加),接著 [t1 → t2] … [tN → 結束]。邊界 t1 至 tN 來自 NAIVE_CUTS ——這是確定性的初步猜測,絕不能未經優化就直接輸出。請將 WORDS 分組為口語短語,並重新推導邊界:
- 開場保留(原始相機)持續至少 0.8 秒後,區塊 1 才開始——但也不宜過長:如果一個清晰的短語邊界落在 0.8–1.0 秒之間,就應在此處切斷,避免開場拖到 ~1.2 秒以上。過長的靜態開場會破壞此格式。開場保留可能包含選擇性的鉤子文字疊加(見檢查點),但絕不能有相機移動。
- 邊界落在短語起始處,絕不能落在詞語中間。Whisper 可能將連字詞拆成兩個條目(「multi」+「-angle」)——請視為單一詞語處理;切勿在它們之間切斷。
- 當
GAPS條目(呼吸/靜默)緊鄰短語邊界時,將邊界置於靜默的 開始 處:將前一個詞語的結束時間四捨五入到小數點後一位(詞語結束於 3.98 → 邊界設為 4.0;結束於 5.68 → 5.7)。絕不能置於靜默結束處。 - 關鍵訊息短語應獲得最長的區塊。
- 節奏:區塊長度約 1–2.5 秒。若某區塊超過 ~2.5 秒,且其內部有乾淨的短語邊界,則在該處分割——並將 4 個邊界均勻分布於整部影片,切勿集中於某一區段。
- 最後一個區塊 永遠在最終短語前,將相機甩回原始機位——影片以開場構圖作結。其結束時間戳記為
DURATION四捨五入到小數點後一位。 - 最小間距約 0.7 秒;tN ≤ 時長 − 1 秒;時間戳記遞增,保留小數點後一位。
- 影片 >15 秒:警告此技巧在短鉤子片段效果最佳,然後選擇涵蓋整個敘事弧線的區塊。影片 <4 秒:警告 4 個區塊不符合間距規則,在檢查點提供誠實選項(較少區塊 / 強制急速的 4 個區塊)——使用者在此處的選擇會覆寫預設數量。
NO_SPEECH:警告並提供均勻間隔的備援方案或中止。
步驟 2b — 寫入文字疊加(從語音中截取——並非每個區塊都有)
文字疊加有自己的密度規則,與相機規則獨立:每隔約 1.5–2 秒一個文字疊加(5 秒影片 → 3 個;8 秒 → 4–5 個),且文字疊加必須 值得 被放置——CTA、提案中的名詞、保留的否定詞、回饋亮點。連接詞或填充詞(「你可以」、「所以」、「然後」)則 不會 獲得文字疊加:它們的區塊將僅有相機動作(參見模板章節)。鉤子文字疊加(若啟用)計入總數。
對於每個應放置文字疊加的區塊,從該區塊時間窗口內 WORDS 中 實際說出的 詞語中截取:
- 連續的 2–6 個口語詞語——建議採用 最精簡 的擷取方式,保留含義(2–4 個詞):積極刪除前後綴的冠詞、介係詞和填充詞(「the easiest way」→ EASIEST WAY、「from a single video」→ SINGLE VIDEO)。保留否定詞——刪除「don't」會反轉訊息含義。切勿重新排序、替換、翻譯或添加該時間窗口外的詞語。
- 語言 = 影片的口說語言(葡萄牙文影片 → 葡萄牙文字疊加)。僅文字疊加跟隨影片語言;提示詞中其他所有部分均為英文。
- 採用 全大寫 呈現。刪除逗號和句尾句點;若口語中說出「?」或「!」則保留。
- 文字疊加是強而有力的標註,非字幕:永遠不要使用完整字幕風格的句子,且每個區塊最多一個文字疊加——不包含逐詞出現時間、無動畫腳本。模板的排版段落已包含藝術方向。
步驟 3 — 呈現,然後 強制 檢查點
按以下順序向使用者展示:
- 兩行說明運作原理:提示詞凍結身份/房間/音訊/唇形同步;唯一添加的是分秒間運動模糊的相機甩動(鎖定後靜止)以及從使用者口語詞語中截取的動態文字疊加——這就是為何它看起來像同一段真實影片經過高級動態排版編輯。
- 短語表,包含時間區間。
- 建議的區塊,每個附上理由(涵蓋哪個短語;哪些邊界落在呼吸處)——以及每個區塊提議的文字疊加,或「僅相機」,表示密度規則讓畫面保持乾淨。
- 下方仍含有
[Xs]和[TEXT]的模板。
然後提問(使用 AskUserQuestion;若無則使用純文字對話提問)在填入任何內容之前:
- 接受區塊數量和建議的時間戳記,或需要調整?
- 接受文字疊加計劃——文字內容與哪些區塊保持僅相機——或編輯任何項目(不同截取方式、不同大小寫、新增/移除文字疊加)?
- 保留預設相機位置,或替換任何位置(提供預設選項表)?
- 是否在開場保留畫面中加入選擇性的鉤子文字疊加(第一幀文字,相機保持靜止)?預設關閉。
- 僅在密度規則導致有價值的文字疊加被合併掉時:提供靜態文字疊加區塊作為替代方案。
切勿跳過此檢查點,即使使用者看似匆忙或節拍看起來很明顯。
步驟 4 — 填入並交付
僅修改:
[Xs]時間戳記——僅替換X:[Xs]變成[0.8s]。方括號 保留:From [0.8s] to [2.1s]是正確的,From 0.8s to 2.1s是錯誤的。相鄰區塊共享邊界(區塊 1 結束於 2.1 → 區塊 2 開始於 2.1);最後一個區塊結束於影片時長。[TEXT]標記——替換整個標記(包含括號)為文字疊加,保留 前後的引號:"[TEXT]"變成"UPLOAD YOUR VIDEO"。"[UPLOAD YOUR VIDEO]"(保留括號)是錯誤的。- 任何使用者要求替換的相機位置描述(見下方預設選項)。
將其儲存為 <影片主檔名>_kinetic_multicam_prompt.txt,放置於影片旁,然後自我檢查儲存的檔案:
python "<此技能基礎目錄>/scripts/verify_prompt.py" "<儲存的 .txt>"
必須輸出 PASS(頭尾位元組與模板一致、每個區塊格式正確、位置來自規範選單、邊界連續、最後一個區塊回到原始相機)。若輸出 FAIL,修正後重新執行再交付。
將完成的提示詞放在圍欄程式碼區塊中交付。最後附上使用方式:將原始影片上傳至 Seedance 2.0 Fast ——此模板經驗證的平台(2026 年 7 月;Omni 測試效果較差,請勿推薦)——選取為來源素材,貼上提示詞。交付的提示詞本體 永遠是英文,無論對話或影片使用何種語言——僅文字疊加跟隨影片語言。
規範模板(凍結)
逐位元組重現——包含換行。怪異之處為刻意保留(「The Supers」大小寫、「same as original video」)。若讀起來奇怪,請保留原樣。
Use the uploaded video as the source. The Supers must follow the pace of the audio.
Video timing must be exactly the same as original video.
Preserve the person's face, identity, expression, clothing, body proportions, and lip sync exactly as in the original footage. Preserve the room, lighting, furniture, background, and overall environment. Do not replace, redesign, or hallucinate any part of the scene.
The only changes should be rapid cinematic camera repositioning and the addition of kinetic motion graphics.
Do not add traditional subtitles. Instead, create bold, high-energy kinetic supers that visually reinforce the spoken message. The supers should behave like motion graphics, not captions. Use dynamic typography, scaling, rotation, perspective, masking, tracking, and creative layouts. Vary the style throughout the video so each callout feels intentional and visually engaging. The text must never cover the speaker's face. Place each super in open areas of the frame, or layer it behind the speaker's body so the person partially occludes the text — as if the words physically exist in the room behind them. The text should integrate naturally with the composition.
Camera movement should be extremely fast. Each transition should take only a split second, rapidly snapping to the new viewpoint before immediately locking into a perfectly stable frame. The camera must visibly travel to each new position — a fast, motion-blurred whip move with a speed-ramp feel — never an editing cut and never an invisible instant jump between angles. Do not create long continuous camera moves, floating movement, or handheld motion. Every move should feel like a fast cinematic reposition followed by a freeze.
Follow this timeline:
From [Xs] to [Xs]
Display the kinetic super:
"[TEXT]"
Whip the camera in a fast motion-blurred orbital sweep to the left, landing in a left orbit position, then hold completely still.
From [Xs] to [Xs]
Display the kinetic super:
"[TEXT]"
Whip the camera upward in a fast motion-blurred crane rise to a higher crane angle, then hold completely still.
From [Xs] to [Xs]
Display the kinetic super:
"[TEXT]"
Whip the camera backward in a fast motion-blurred pull-out to a wide position revealing the full room with the speaker centered, then hold completely still.
From [Xs] to [Xs]
Display the kinetic super:
"[TEXT]"
Whip the camera in a fast motion-blurred sweep back to the original camera position and hold until the end.
Important requirements:
* Maintain the exact room and person throughout.
* Do not change facial features, clothing, lighting, or background.
* Preserve perfect lip sync.
* No hard cuts to different scenes.
* Every transition is a visible, motion-blurred camera move — never an editing cut.
* No title cards.
* No subtitle-style captions.
* Supers never cover the speaker's face — open frame areas or layered behind the body, never over it.
* Only rapid split-second camera repositioning followed by locked-off shots.
* Motion graphics should feel premium, modern, energetic, and social-media optimized.
圍欄顯示 4 區塊的預設值。對於 5 或 6 個區塊,插入額外區塊,使用相同的凍結 4 行單位——From [Xs] to [Xs] / Display the kinetic super: / "[TEXT]" / 一個取自預設選項表的 逐字 位置行——以空行分隔,並將回到原始機位的區塊保持最後。預設位置順序:
- 4 個區塊:左側軌道 → 更高吊臂 → 寬景(房間揭示)→ 回到原始
- 5 個區塊:特寫 → 左側軌道 → 更高吊臂 → 寬景 → 回到原始
- 6 個區塊:特寫 → 左側軌道 → 更高吊臂 → 右側軌道 → 寬景 → 回到原始
語義匹配優先於預設順序。 在最終決定前,掃描每個區塊的短語含義,對應到一個位置——揭示/空間 /「無需設置」→ 寬景;親密/秘密 → 特寫;力量/挑戰 → 低位英雄鏡頭;概述/清單 → 俯拍;關鍵細節 → 推進特寫。當短語匹配時,給予該區塊對應位置(仍須遵守對比規則),並在檢查點說明選擇理由——「DON'T HAVE A FULL SETUP」配上寬景房間揭示是典型範例。
選擇性鉤子文字疊加(在檢查點啟用)
預設情況下,開場保留畫面不包含文字。若使用者選擇啟用,在時間軸最上方插入一個額外區塊——從 [0s] 到 t1,相機不移動;其存在僅為在第一幀放置一個鉤子文字疊加:
From [0s] to [Xs]
Display the kinetic super:
"[TEXT]"
Keep the camera in the original position and framing, completely still.
其文字疊加遵循與其他所有文字疊加相同的規則:從 t1 區塊開始前的口語詞語中截取,計入總文字疊加數量,且鉤子文字疊加後的第一個區塊若仍包含文字疊加內容,則保持「僅相機」狀態(或反之,取決於哪個方式產生更好的語義流暢度)。其時間戳記邊界 [Xs] 是原始的 t1——若鉤子區塊存在,開場保留縮短為 [0 → t1],且鉤子區塊結束於 t1。