一支 21 秒、從空拍穿進辦公室、再從螢幕繞回空拍的閉環一鏡。
這頁把它整支拆開:4 支 prompt 原文、失敗那一版壞在第幾秒、參數為什麼那樣設。
這不是心法整理。是我做這支片時實際用的東西,照著改就能跑。
我第一次做這支片的穿窗鏡頭,prompt 裡明明白白寫了 immediately pierce through the window。 生出來的東西是這樣:
| 時間 | 畫面實際上在做什麼 |
|---|---|
| 0 – 2.5s | 鏡頭沿著外牆橫向平移,完全沒有靠近玻璃 |
| 2.5 – 3s | 剩不到 1 秒要到尾幀,硬穿牆 |
| 3 – 5s | 已在室內,收到尾幀 |
五秒的鏡頭,一半在做我沒要求的事。我一開始的反應跟大部分人一樣:改 prompt,加更多形容詞,把 FORWARD 全部大寫。沒有用。
真正的原因在首幀。那張圖裡,相機幾乎與幕牆平行。 相機平行於牆面的時候,「往前」這個指令最自然的解,就是沿著牆滑。 模型沒有違背我的 prompt,它是照著我給的幾何條件,選了一個也算合理的解。
首幀的鏡頭朝向決定模型的運動方向,prompt 壓不過幾何。 運鏡失控的時候,先看首幀,不要先改 prompt。
修法是把首尾幀都做成正對、一點透視、同一條軸線。 這樣「往前」就只剩一個解,模型沒有走偏的空間。
還有一個相關的坑:首幀正對 + 尾幀斜視 = 逼模型同時做前推、旋轉、升降三種複合運動,必出怪招。 首尾幀的視角關係,本身就是一組隱藏指令。
4 張圖跑 4 段。每一段的首尾幀都鎖死,環在數學上就必合。
| 圖 | 內容 | 它同時是誰的幀 |
|---|---|---|
| 01 | 錨點圖(空拍 full frame) | S1 首幀 = S4 尾幀 |
| 02 | 窗外玻璃(正對) | S1 尾幀 = S2 首幀 |
| 03 | 桌面螢幕(正對) | S2 尾幀 = S3 首幀 |
| 04 | 螢幕特寫 | S3 尾幀 = S4 首幀 |
關鍵在最後一列繞回第一列。01 同時是開頭和結尾, 所以片子播完接回開頭的時候,接點是同一張圖,看不出來。
| 段 | 首幀 → 尾幀 | 秒 | 這一段只做一件事 |
|---|---|---|---|
| S1 | 01 → 02 | 10 | 繞 101 → 正對窗停住 |
| S2 | 02 → 03 | 5 | 只做穿窗 |
| S3 | 03 → 04 | 4 | 只做室內推進到螢幕 |
| S4 | 04 → 01 | 4 | 只做螢幕吃滿畫框 |
第一次失敗,是因為 S2 一段要跑完「穿窗 + 橫越房間 + 停在螢幕」。 跨距太長,模型自由度就大,前半段會亂晃、後半段硬趕。 跨距短 = 模型沒有走偏的空間。
成片實際長度是 21.3 秒,不是四段加總的 23 秒。差的部分在剪接台上,每個接點各裁 2–3 幀, 讓運動連起來。這件事沒有辦法在生成階段解決。
這是實際送出去的版本。你可以直接複製,把場景描述換成你自己的。
四支 prompt 的結構是同一套,換的只有場景:
Continuous X, no cuts + 光線 +
never pans, never orbits, never slides sideways(否定式運動鎖)
+ 起訖狀態 + One-point perspective held throughout, dolly-in only
+ 鏡頭質感 + photorealistic, no people, no text。
那串否定句是整組 prompt 裡最有用的部分。告訴模型不要做什麼,比告訴它要做什麼有效。
start = 02_窗外玻璃_v3正對_B end = 03_桌面螢幕_v3正對_B
Continuous FPV drone shot, no cuts, bright midday daylight. The camera moves straight FORWARD along a single fixed axis for the entire shot. It never pans, never orbits, never slides sideways, never drifts laterally along the facade. Starting outside facing the glass pane dead-on, it pushes forward and passes through the window in the first half of the shot, a hard specular flare sweeping across the glass at the moment of passage, exposure dropping sharply from the bright sunlit exterior to the dimmer shaded interior. Once inside it continues forward a short distance into the office over the wooden floor and comes to rest with the desk and its widescreen monitor ahead in the room. One-point perspective held throughout, dolly-in only. Anamorphic lens, motion blur at the moment of passage, ease-out at the end, film grain, clean natural daylight grade with cool shadows, photorealistic, no people, no text.
start = 01_錨點_空拍fullframe_A end = 02_窗外玻璃_v3正對_B
Continuous aerial drone shot, no cuts, bright midday daylight, clear blue sky. First half: the drone flies a wide arcing orbit around the Taipei 101 tower itself, circling the building laterally at high altitude, the tower staying in frame as the city rotates behind it, sunlight glancing off its green glass segments. Second half: the drone breaks out of the orbit, banks away from Taipei 101 and settles onto a straight forward approach toward the glass curtain wall of a neighbouring high-rise office tower, squaring up perpendicular to the glass and closing distance head-on until a single window pane fills the frame and the shaded office interior with its desk and glowing monitor is visible straight ahead through the glass. The move ends locked dead-on to the glass with no lateral drift. Anamorphic lens, smooth sustained orbit resolving into a straight settled approach, film grain, clean natural daylight grade with cool shadows, photorealistic, no people, no text.
start = 03_桌面螢幕_v3正對_B end = 04_螢幕特寫_B
Continuous slow dolly-in, no cuts, bright midday daylight. The camera moves straight FORWARD along a single fixed axis for the entire shot. It never pans, never orbits, never slides sideways, never tilts. It glides steadily across the office toward the widescreen monitor on the desk, the room falling away at the frame edges, until the monitor's bezel nearly reaches the edges of frame and the screen dominates the image. The aerial drone footage on the screen stays perfectly steady and unchanged throughout. One-point perspective held throughout, dolly-in only. Anamorphic lens, smooth constant motion, gentle ease-out at the end, film grain, clean natural daylight grade with cool shadows, photorealistic, no people, no text or UI overlays.
start = 04_螢幕特寫_B end = 01_錨點_空拍fullframe_A
Continuous slow dolly-in, no cuts. The camera moves straight FORWARD along a single fixed axis. It never pans, never orbits, never slides sideways. It pushes into the monitor until the bezel passes completely out of frame and the aerial drone footage on the screen fills the entire image, becoming the shot itself. The screen content resolves from monitor-like to full cinematic clarity and brightness as it takes over the frame, the surrounding dark office falling away at the edges. One-point perspective held throughout, dolly-in only. Anamorphic lens, smooth constant acceleration, film grain, clean natural daylight grade, photorealistic, no people, no text, no bezel and no room visible at the end.
每一項都附理由。不然過三個月你自己也想不起來為什麼這樣設。
| 參數 | 設成 | 為什麼 |
|---|---|---|
| resolution | 1080p | 預設只有 720p,客戶 demo 不夠看 |
| mode | std | 1080p / 4K 只有 std 支援 |
| generate_audio | false | 預設是 true。AI 自動配音會很怪,而且多扣錢。音樂後製再加 |
| bitrate_mode | high | 空拍細節多,壓縮容易糊 |
| duration | 依段 | S1=10 / S2=5 / S3=4 / S4=4。單段上限 15 秒 |
| aspect_ratio | 16:9 | 直式版另外 reframe,不要在生成階段解決 |
模型最常搞砸的就是這些,而且都不必重生就能修:
生出來不對就改 prompt,但一次只改一個變數。 一次改三個地方,下一版變好或變壞你都不知道是哪個造成的,等於白燒點數。
用播放器看成品,感覺得到怪但抓不到根因。要抽格:
ffmpeg -i in.mp4 -vf fps=4 frames/%03d.png
一秒抽 4 張,逐張看。頁首那張逐秒時間表就是這樣做出來的。 不抽格,我只會覺得「這支怪怪的」,不會知道問題出在前 2.5 秒完全沒有向前。
閉環需要「螢幕裡播的空拍畫面」跟「S1 的空拍首幀」是同一張。 我一開始的做法是先生桌面螢幕圖,再叫模型從螢幕裡把那張空拍圖「還原」成 full frame。
模型是照文字描述重畫,不是復刻構圖。 兩張圖的地標左右相反,環直接破。反向重做(先定錨點圖,再把它塞進螢幕)方向對了, 但仍然只有八成像。八成,在閉環裡等於不合。
5 分鐘,0 點數,100% 準。
生成只負責場景與運動,精確對齊交給剪輯軟體。 依賴方向要單向:先定一個唯一的真實來源,其他素材都從它衍生,不能互相追。
穿窗那一下,讓窗框或柱子掃過畫面遮黑 1–2 幀,當隱形剪點,前後分兩次生成再接。 這是業界標準的 whip transition,廠商看不出來,也不在乎。 不值得為了「真的一鏡」燒十次點數。
上面整套做法建立在一個前提上:我用的介面不支援首尾幀,所以只能用「上一段的尾幀當下一段的首幀」硬接。
後來查官方 API 文件才發現,Seedance 模型本身從 1.0 Pro 時代就支援首尾幀 (content[].role 給 first_frame / last_frame), 是平台沒接這個功能,不是模型做不到。
遇到限制先問:這是模型沒有,還是我用的介面沒接? 去查那個模型的官方 API 文件,不要看平台的 FAQ。這兩者的答案經常不一樣。
直接呼叫 API 走首尾幀、一次生完整段的做法,目前只到測試腳本,尚未跑出成品。 這一段是下一步的方向,不是已驗證的解法。