Short video prompts feel efficient. This one runs longer than most of the source files sitting in the same project, and that is exactly why the drift stopped. u/Practical_Low29 posted the breakdown in r/PromptEngineering, and it is one of the clearer explanations of Seedance prompt structure floating around right now.
Here is the pattern break: everyone assumes a tighter prompt gives the model less room to wander. This author found the opposite. The wandering was never about length. It was about scope, specifically which reference image was allowed to influence which part of the frame. Anyone who has fed a reference photo into Seedance and watched the face slowly warp across takes knows the feeling.
🎯 Quick Start
- Declare what each reference image controls, and nothing else
- Swap prose scene descriptions for timestamped windows
- Write negatives as banned behaviors, not adjectives
- Rank one constraint above the rest instead of just listing more
This matters most on anything that needs continuity: talking heads, product demos, character sheets, any batch where the same face or outfit has to survive multiple generations. Drift there is not a minor annoyance. It can quietly ruin an entire set of takes before anyone notices.
The old way most people write these prompts looks reasonable on paper. Feed the model two or three reference images, describe the shot in a paragraph, add a short list of things to avoid. It reads clean. The problem shows up in the output: faces drift, wardrobe borrows details from the wrong image, and the camera does something nobody asked for.
This Redditor traced the problem straight back to unscoped references. When you hand a model three images without saying what each one is for, it does not pick one. It averages them, quietly, in ways you never intended. Every drift problem this contributor ran into came from exactly this.
The fix is to assign each image a single job. In the source prompt, the structure looks like this:
First frame: sets lighting and camera baseline for the whole take.
Reference image 2: governs face and identity only, nothing else.
Wardrobe: described from scratch, explicitly built from no reference image at all.
Once every image has exactly one responsibility, there is nothing left for the model to blend.
The second shift is dropping prose entirely for the shot description. A paragraph gives the model permission to reorder your clip however it wants. A timeline does not. This creator now writes the shot as windows instead. Each window carries the effect for that stretch, plus what is in frame, plus what is heard:
0.0s to 0.4s: [effect, framing, audio for this window]
0.4s to 2.4s: [effect, framing, audio for this window]
Continues to the out point: [effect, framing, audio for this window]
Third, the negatives got a rewrite. Four or five adjectives at the end of a prompt did nothing, according to this industry pro. That lines up with how these models actually parse text. Vague words get ignored. Specific banned behaviors do not:
No cuts other than the out point. No zoom. No speed ramps. No music. No on-screen text. No shutter sound.
That section is now longer than the positive description of the shot, and it is doing more of the actual work.
The last piece is the one worth stealing even if you skip everything else here: rank a constraint instead of only adding one. The author’s top-priority line reads, “Skin is never smooth, keep visible pores and small unevenness,” placed above every other instruction in the prompt. Telling the model which rule to protect first moved the output more than any additional rule stacked on top.
One commenter, u/SharpWhiteness, backed up the timeline trick specifically, saying their outputs stopped wandering once they started writing windows instead of paragraphs. A prose prompt hands the model room to improvise a scene nobody asked for. A timeline closes that door.
Put together, the four moves are simple to copy even if the resulting prompt gets long:
- Give every reference image one job, stated outright
- Replace paragraph descriptions with timestamped windows
- Write your “never do this” section as behaviors, not adjectives
- Pick one constraint and rank it above the rest
None of this is about writing more for the sake of it. It is about being specific enough that the model has nothing left to guess at.
The author has been collecting prompts built this way in a public library, alongside the original post’s full context and comment thread. Worth a look if you want more working examples before you rebuild your own prompt structure from scratch.
Frequently Asked Questions
Q: Why should my negative prompt be longer than my positive prompt?
In Seedance generation, negative prompts focusing on behaviors (not adjectives) are critical for preventing unwanted changes. The commenter found that detailed behavioral negatives describing what the model should never do (no cuts, no zoom, no speed ramps) became twice as long as the positive prompt and delivered real results, while short adjective-based negatives did nothing.
Q: Should I write my prompt as prose or as time-based windows?
Use time-based windows instead of prose. Prose gives the model room to improvise and reorder your clip in ways you didn’t ask for. By breaking your prompt into specific time windows (0, 0.4s, 0.4, 2.4s, etc.) with effects and content for each stretch, you keep the output from wandering.
Q: What’s the difference between describing adjectives vs. behaviors in my negative prompt?
Adjectives like “smooth” or “blurry” don’t guide the model effectively. Instead, describe actions and events you want to prevent, like “no cuts,” “no zoom,” “no speed ramps.” This tells the model what not to do, not what not to look like, which is way more actionable.
Q: How do I prioritize constraints when I have many of them?
Explicitly rank which constraint matters most rather than just stacking more constraints. Tell the model which one to protect first (e.g., “visible pores and small unevenness are the single most important thing about how they look”). Ranking one constraint above others moved the output more than adding extra constraints did.
Q: How do I prevent drift in my Seedance generations?
Drift often comes from scoping issues, the model averaging things you didn’t mean to average. Be explicit about what each image reference controls (e.g., one image sets lighting, another governs face only), use time windows instead of prose, write longer negative prompts with behaviors, and rank your most critical constraint.
Writing Seedance prompts longer than my source files is what stopped the drift
by u/Practical_Low29 in PromptEngineering