osidemedia/higgsfield-seedance
Rewrites scene descriptions using professional cinematography language, structures prompts with a six-slot formula (camera + subject + action + setting + style + lighting), and diagnoses content filter rejections via a preflight linter. Use whenever the user asks for a Seedance 2.0 / Seedance Pro prompt, describes a scene for Seedance generation, mentions Seedance, reports a Seedance generation failure or flagged prompt, or is burning credits on Seedance regenerations.
npx skills add https://github.com/OSideMedia/higgsfield-ai-prompt-skill --skill higgsfield-seedance
*Generated-checked block (scripts/build_index.py verifies anchors). Read the linked sections for full context — these lines are routing aids, not the rules themselves.*
enhance_prompt off), Style Prefix = per-project constant compiled into home blocks [→PRODUCTION-PATTERNS.md in this directoryENGINE-RULES.md in this directorymode=std only; mode=fast (Seedance 2.0 Fast) caps at 480p/720p — in Cinema Studio the model is still capped at 1080p →python3 scripts/seedance_lint.py --preflight --model seedance_2_0 "<prompt>" — enums come from ../../specs/model-specs.json (fast+1080p/4K and Kling 21:9 are auto-caught) →--confirmed / add-quality) →Use this skill whenever the user wants a Seedance 2.0 / Seedance Pro prompt, OR
whenever a Seedance generation has been blocked, flagged, or silently failed.
This skill's job is to stop credit waste on filter rejections.
> Engine rules (read with this file): the hard rendering constraints of the
> Seedance 2.0 engine — age-blind characters, exit-frame = implicit cut,
> off-screen = nonexistent, no reflection shots, ≤3 tracked characters, the
> double-contrast cut rule — live in ENGINE-RULES.md in this directory,
> together with the high-risk shot table (reflections, same-character doubles,
> crowds, text rendering) and its mitigations. This SKILL.md is the
> EN-director *profile* of that rule core; the ZH-house and
> bilingual-JSON profiles (../../docs/Seedance 2 Skill.md) obey the same
> core. Flag high-risk shot types at authoring time — never silently break a
> rule the project's hero image happens to conflict with.
> Production patterns (sibling reference): patterns demonstrated working
> in Higgsfield's own Seedance-4K film tutorial — reference-role vocabulary,
> coordinate blocking, video-reference screen composites, prompted
> imperfection, 60:30:10 grade — live in PRODUCTION-PATTERNS.md in this
> directory, labeled [DEMO].
Seedance 2.0's content filter is not a keyword blacklist. It is a language
model that reads the full prompt as a single scene and judges intent and context.
Most users burn hours swapping individual words — that loop does not work.
The filter compares two things:
A word that looks sensitive in isolation can sit inside a well-constructed
cinematic prompt without issue — the filter reads the full picture. A prompt
with no picture to read (no setting, no visual purpose, no narrative logic)
gives the filter nothing to work with, and it errs on the side of caution.
Practical rule: the prompt must describe a scene, not a subject.
Fix the voice first, then fix the words.
This single heuristic saves time on every failure:
| Failure timing | Meaning | What to do |
|----------------|---------|------------|
| < 10 seconds (instant) | Content filter rejection — prompt never reached the GPU | Rewrite for voice + remove risk tokens. Do not regenerate unchanged. |
| > 30 seconds (delayed) | Infrastructure, timeout, or complexity — prompt passed the filter but the render failed | Simplify action density, cut length, try again |
If the user is seeing instant fails in a loop, it is a filter issue — never
a GPU issue. Stop them from regenerating before the rewrite.
Every Seedance prompt should hit these six slots, in this order:
[Camera movement] + [Subject] + [Action] + [Setting] + [Style] + [Lighting]
All six are technically optional — but a prompt that includes all six almost
never gets flagged, because the filter has full context to interpret every
word. A prompt missing 3+ slots is where flags come from.
> **Slow dolly-in on a figure in a dark overcoat standing alone at the end of
> a rain-slick alley. Cold teal shadows, single practical streetlamp, shallow
> depth of field.**
Camera ✓ Subject ✓ Action ✓ Setting ✓ Style ✓ Lighting ✓ — all six slots, ~30
words, passes the filter because the scene is fully legible.
A set of Seedance-2.0-specific prompt rules. These are empirical —
practitioner A/B findings that are plausible given the architecture but are
not in the official model spec. Treat them as strong heuristics and let the
repo's iteration discipline (../higgsfield-prompt/SKILL.md § The Iteration
Rule) confirm them on your own material, rather than as guaranteed model
behavior.
Seedance reads the prompt left-to-right with diminishing attention weight.
The first sentence carries the most influence; by the third sentence you are in
"detail territory," where the model stops treating elements as primary
instructions and starts sampling them diffusely.
outperforms a structurally identical 200-word version of the same scene —
more words past ~3 sentences buys diffusion, not control. (Block-scaffold
production prompts are the other regime: § Official Prompt Architecture.)
③ constraints / positive locks.
subject, the subject opens the prompt; when it lives on a camera move, the
move opens it.
Relationship to the two length numbers. This 50–80-word figure is the
*coherence optimum*. The >180-word figure in § Pre-flight Linter is a *different
axis* — the filter/encoder risk ceiling (>220 often hard-fails the text
encoder). 50–80 is where to sit; ~180 is where it starts to break. They don't
conflict.
Relationship to the six-slot formula. The six slots guarantee the filter
sees a *complete* scene (presence). The attention model governs *weight* (order
+ length). Keep all six slots present, but the slot list's camera-first ordering
is a completeness checklist, not a mandate to open with the camera word when the
shot's identity is the subject.
cinematic, epic, beautiful, high quality, amazing are high-frequency
labels attached to an enormous range of training footage — dark thrillers,
bright rom-coms, nature docs all read as "cinematic" — so the model samples a
broad, diffuse distribution and they move the output toward nothing in
particular. Don't just delete the slop word (Voice Rewrite §6) — **substitute a
named, narrowly-trained referent**:
| Empty adjective | Named substitute (samples a narrow distribution) |
|---|---|
| "cinematic" / "epic look" | a director: "Wes Anderson symmetry" (centered framing, pastel) · "Kubrick one-point perspective" (geometric corridors) |
| "cinematic lighting" | a lighting setup: "golden-hour backlight, long shadows stretching forward" |
| "beautiful" / "high quality" | a lens spec: "anamorphic 2.39:1, lens flare from a practical light source" |
Positive form of ../higgsfield-prompt/SKILL.md § Anti-Slop Vocabulary.
> Official override on director names. Higgsfield's own prompt-writing
> skill forbids director names, signature-work references, and equipment
> model names outright (see § Official Prompt Architecture — the Block
> Scaffold → Measurable-language rules). The director-substitute trick above
> is an empirical short-form fallback; in block-scaffold prompts, describe
> the look in observable terms instead — "centered symmetrical framing,
> pastel palette", not "Wes Anderson symmetry".
Combined with complex action or camera movement, fast is the single
worst-degrading keyword. The temporal branch already runs multiple high-velocity
calculations when motion is layered; fast asks all of them to run at maximum
velocity at once. Two competing fast elements jitter; three compound into error
that's hard to salvage.
Fix: describe the physics, not the speed. `feet striking hard, each stride
at full extension, arms pumping at 90 degrees` produces the perception of speed
with no degradation. One element can carry speed — just not all of them
simultaneously. (Same family as Voice Rewrite §3 — describe physics, not
emotion.)
Seedance has no negative-embedding architecture for the prompt text — every
token is read as a *positive* instruction. negative: jitter, bent limbs gets
parsed as scene description the model tries to render (noise), not as a
constraint, and makes the output worse.
Use positive constraint statements — direct declarations of what must be
true:
Face stable. Limbs anatomically natural. Consistent lighting, no flicker.
Body proportions consistent throughout.
Scope: this is about the Seedance prompt body, and the target is
negative: list syntax / bare negation lists — not every "no" token. A short
lock tail inside a positive declaration ("Consistent lighting, no flicker";
the Style Prefix's "Photorealistic — no 3D render") is fine and field-proven
across the harvest corpus. It does not override the Higgsfield UI's
dedicated negative-prompt field (which some image models expose and
../../vocab.md § Composition Vocabulary uses). The same positive-only
requirement is already documented for Cinema Studio 3.0 in
../shared/negative-constraints.md.
If a word has a plausible second reading, Seedance may take it. The observed
case: *"wind tearing at her coat"* — meant as fabric pulled violently; the
model sometimes reads *tearing* as ripping (fabric shredding) or tearing up
(crying), and the shot changes accordingly. This is not covered by any known
prompt guide — treat it as a first-class law:
**Before a verb ships, ask: is there a second physical thing this word can
look like? If yes, replace it with the phrasing only ONE thing can look like.**
wind tearing at her coat → wind whipping violently at her coat /her coat flutters violently in the wind
tearing (rip / cry) · shoot (fire / film) · duck (crouch / bird) ·
bolt (run / lightning / hardware) · draw (pull / sketch / weapon) ·
wave (hand / ocean) · charge (run at / electricity) · rock
(sway / stone) · drop (fall / droplet) · fire (flame / shoot /
dismiss) · strike (hit / match / lightning) · break (shatter /
pause / dawn) · pound (hammer / heartbeat) · snap (break / photo /
fingers).
generalizes to any word forever.
Adopted (genuinely absent from this skill until now):
camera on the shadow side of the key light and say where the operator
stands/moves — light wraps toward the lens and faces keep dimension.
foreground object — detail-shot intimacy without losing the wide's context.
without compression; the room stays in the frame.
stacking fixes: strip the prompt back to subject + action + camera and
re-add only what's necessary. Density is a bell curve; past the peak you
can't tell which element the model dropped.
even when it is visible in the environment plate — the plate carries the
world, the canonical ref carries identity; never let a plate double as an
identity source.
tonal curve + specular removal + named grade — one phrasing alone drifts.
Rejected (was: flagged, test day pending): their worldbuilder puts the camera
block at the BOTTOM ("at the top FOV fights identity data") — this contradicts
both this skill's CAMERA-3rd-position rule and their own seedance skill.
Resolved 2026-07-26 by field evidence instead of a test day `[FIELD — 13-project
community harvest]`: across ~4,000 harvested production prompts from 9 creators,
the CAMERA block sits mid-document in every final prompt — never at the bottom.
CAMERA-3rd stands; the bottom-position claim is dropped.
dolly in while panning left) → jitter at thetransition because the model executes the two vectors in sequence. Use one
primary move + one texture modifier (slow dolly in, slightly handheld). Full
treatment: FAILURE-MODES.md § Multi-motion camera overload.
image gives the model two competing inputs for one subject; reconciliation
introduces drift. Keep an I2V prompt to motion + camera only. See
§ Seedance 2.0 Prompt Modes / Reference-Based and
../higgsfield-prompt/SKILL.md (I2V key rule).
[OFFICIAL — Higgsfield prompt-writter.skill, 2026-07] — Higgsfield ships
its own Seedance 2.0 prompt-writing skill with the Seedance-4K release. This
section is that doctrine, reconciled with the rest of this file. Where the
two disagree, the official rule wins inside block-scaffold prompts; the
empirical rules elsewhere in this skill remain the short-form regime.
Two regimes, not a contradiction. The six-slot formula and the
50–80-word sweet spot (§ Prompt-Craft Laws) govern short-form single shots.
The block scaffold is the production regime — multi-shot, reference-heavy,
high-control work — where *structure replaces the word cap*: write densely
where control matters, sparsely where it does not, and say each important
thing once. The pre-flight linter detects this regime automatically (canonical
block labels / shot markers) and suspends the short-form word caps — force it
with --regime block if detection misses — while every structural lint rule
(shot counts, beat sums, handle declarations, enum checks) still applies in
full. Likewise, the Voice Rewrite instruction
to put a Style & Mood clause up front is the short-form filter pass — in a
block prompt the filter gets its full scene from SCENE CONTEXT, LOCATION MAP,
and LIGHTING instead, and style is distributed (below).
Write blocks in this order, using only the blocks the shot needs:
SCENE CONTEXT
ACTIVE REFERENCES
LOCATION MAP
FIRST FRAME / BLOCKING
FORMAT MODE
OPTICS
CAMERA
ACTION
PERFORMANCE (when acting matters)
PHYSICS
LIGHTING
COLOR GRADE (when the grade is strong / stylized)
WARDROBE (when costume matters)
AUDIO
STYLE (technical-style suffix)
OUTPUT SETTINGS (when format must be pinned)
POSITIVE LOCKS
Logic: context and references first, then space and timing, then action and
physics, then descriptive style in its home positions, then a technical
suffix, locks last. A naturalistic single take may drop COLOR GRADE,
WARDROBE, and OUTPUT SETTINGS entirely and fold those notes into LOCATION
MAP / LIGHTING.
In a standalone block-scaffold prompt there is no style-prefix block at
the top; the prompt always opens on SCENE CONTEXT. Each style aspect lives
in the block that governs it: light → LIGHTING; color → COLOR GRADE, or
folded into LOCATION MAP + LIGHTING for a naturalistic look; lens / optical
character → OPTICS; skin realism and acting → PERFORMANCE; format / grain /
fps → the STYLE + OUTPUT SETTINGS suffix just before POSITIVE LOCKS.
Descriptive style sits in the body next to what it describes; technical
style sits as the end suffix; nothing style-related opens the prompt.
Connected-shotlist carve-out [FIELD — 13-project harvest]: in a
multi-scene shotlist project, the field-proven shape is the opposite — a
per-project compiled **Style Prefix glued verbatim to the top of every scene
prompt** (edit once → changes everywhere), then the scene body. Consistency
across 25 separately-generated scenes outweighs distributed elegance there.
That regime is owned by ../higgsfield-shotlist-director/SKILL.md § Per-scene
prompt law and ../../templates/seedance/global-style-prefix.md; this
section governs standalone prompts only.
In prompt text, state field of view in **degrees from these discrete
anchors only** — never millimeters, never in-between values (not "23°" —
use 18° or 29°):
| FOV | mm equiv | Use |
|-----|----------|-----|
| 180° | fisheye | spherical distortion — POV, dream-state |
| 107° | 14–16mm | architectural ultra-wide, epic establish |
| 84° | 20–24mm | wide — establish, group blocking |
| 63° | 28–35mm | observational, reportage |
| 47° | 40–50mm | neutral human perspective |
| 29° | 75–85mm | portrait compression, dialogue bust |
| 18° | 100–135mm | close portrait, identity-preserving |
| 12° | 180–200mm | tele-detail — hands, objects |
| 8° | 300–400mm | extreme compression, observation, broadcast |
In a multishot, set FOV per segment and add "no drift mid-segment".
Place the CAMERA block in the 3rd position of the prompt's core layers
(subject → action → camera → style → constraints). Moved to the end, FOV
gets ignored; moved to the front, it conflicts with identity.
no-negative-prompts law (§ Prompt-Craft Laws).
highest-degradation keyword, § Prompt-Craft Laws).
meters"; build it in steps across shots (20% → 40% → 60%).
stacked head to toe", not "huge" or "three meters".
Rewrite §3; the muscle-level extreme is ../higgsfield-facs/SKILL.md.
8500K.
[FIELD] — the PHYSICSblock writes weights in so gravity reads correctly: `"the spider is 10–12
centimeters, 50–70 grams — it falls gently; the man is 70–80 kg — the
drop lands hard." Material behavior gets the same treatment ("the liana
stretches slightly under load and creaks like fibrous wood"`).
[FIELD] — objects never move on their own;every prop event needs a visible physical cause with event order:
"the cup tips only from visible sleeve contact" · `"a button press is a
full mechanical event — contact, 2–3 mm of travel, click, spring-back;
the screen lights only AFTER the click."`
get ignored or break complex moves; describe the look instead. (Overrides
the empirical director-substitute in § Prompt-Craft Laws for this regime.)
§ Multi-Language Prompt Workarounds).
A lock is a short hard fixer placed next to what it protects —
"headlights stay glowing in every shot". The POSITIVE LOCKS block closes
the prompt: continuity (characters, props, environment identical across
cuts) plus a single positive restatement of critical info. This is where the
positive constraint statements from § Prompt-Craft Laws live in a block
prompt.
Three named "helpful-instinct" drift sources `[FIELD — 13-project
harvest]` — the model's own instincts, each needing a standing lock:
Whenever a location reference is attached, the model "helpfully" widens
rooms and adds furniture it wasn't shown; multiple creators called this
the single largest source of drift between clips. Standing lock: `"the
set contains only what the reference shows — no added furniture, rooms,
or geography beyond the reference"`, plus explicit absences where they
matter ("nothing on the floor, nothing on the bed").
drifts toward equal heights. Write real heights into every prompt
with 2+ characters ("she is 165 cm, he is 178 cm") so relative scale
never floats.
cuts. Lock it: `"the girl stays the calm human-sized anchor — never
shrunk to a tiny distant dot."`
Four precision levels — points on a scale, pick the one the shot needs:
"one continuous shot, the camera does not cut on its own."CUT 1 … CUT 2 … CUT 3, described inorder, when cuts matter but exact timing doesn't.
(1.0s HARD CUT), when beats must land on a clock.
Whenever cuts are specified (timed or not), add: `"cuts only at the
specified points, the camera does not cut on its own."` Cut vocabulary:
HARD CUT, SMASH CUT, MATCH CUT, INSERT CUT, REVERSE CUT,
WHIP CUT; fades/crossfades only if explicitly requested. This ladder is
the resolution of the pick-a-side anti-pattern in § Output Format
(per-second labels inside an intended oner read as cut instructions), and
timed beats must still sum to the declared duration (4–15s) per the runtime
arithmetic there.
@audio1` — consistent with § Reference Roles → Per-Image Role Convention.
@TAG: reference line = age + role/build + current state + uniquevisible features + action-critical details + voice (only if it has a
line) + "100% matches the reference".
the image and degrades it (same mechanism as the I2V subject-drift rule in
§ Prompt-Craft Laws).
even when visible in the reference; the model can drop them.
@tag in a shot where that object is not present — themodel will force it into frame.
Every generation is a blank slate with no memory of previous shots. Never
carry in scene numbers, script headings, prior-scene summaries, unused tags
or characters, or "as above / continues" phrasing. This is *why* the
Continuation Prompt Formula (below) demands a verbatim identity re-paste
rather than a reference back to the earlier prompt.
identity lock (single location reference across all beats), ② LENS LOCK
opener — explicit FOV phrase starting each beat, ③ LENS CHECK closer
confirming FOV at the end of each beat, ④ color via material + light, not
a list. All four or extreme-FOV multishots break down after 2–3 beats.
cut without blur (settled → 0.8s WHIP → settled).
shot is one speed start to finish.
"crowd PRESSES, not strikes" ·"fracture originates from edge stress, not center impact" · `"no impact
point — pressure-based crack"` · sequential timing edge-to-center, not
radial from a point.
foreground occlusion over 20–30% of frame + atmospheric haze between
camera and subject + distance vantage at 8–12°. Change the occlusion type
between beats; keep the vantage single.
For these protocols applied on real footage — per-segment LENS LOCKs, timed
SMASH/MATCH cuts, screen composites — see PRODUCTION-PATTERNS.md in this
directory.
`[FIELD — community harvest 2026-07-18: 13 shared Higgsfield projects, 9
creators, ~4,000 production prompts pulled via API with full params]`. What
the corpus confirms and calibrates about the block scaffold:
K-drama romance, broadcast-TV drama, anime, stop-motion folklore — runs the
same Style-Prefix-plus-Constraints-plus-variable-SHOT structure with the
same block anatomy. "SHOT" markers appear in 95% of the flagship project's
1,240 Seedance prompts; 15s is the dominant duration (they generate long
multi-shot clips and cut the best seconds).
register and ambition, not a fixed cap: tech-demo 218w → broadcast-TV drama
538w → commercial 779w → genre anthology 955w → adventure film 1,433w
(p90 2,648) → stop-motion emotional drama 2,059w. The 50–80-word sweet spot
(§ Prompt-Craft Laws) is *single-shot* doctrine; production multishot briefs
live an order of magnitude above it. Length scales with performance
complexity — never truncate a reaction arc to be neat.
with real masses, pore-level PERFORMANCE); stylized work (anime,
stop-motion) drops PHYSICS/skin realism and keeps SHOT beats + continuity +
a hard medium lock. See ../higgsfield-style/SKILL.md § Register Poles.
shotlist projects the corpus ships it **verbatim at the top of every scene
prompt** (the Style-Prefix-plus-Constraints-plus-SHOT structure in the
first bullet — that is the delivered form, not just an authoring note).
Standalone block prompts instead *distribute* those aspects into their
home blocks (§ Distributed style — the standalone-block rule). Which form
ships is decided by the workflow, not by taste — see
../higgsfield-shotlist-director/SKILL.md § Per-scene prompt law.
enhance_prompt was absent/off onevery harvested Seedance job but ON for 1,022 image jobs — let the enhancer
expand image prompts, never the video brief.
not necessarily the raw model API): multi_shot_mode: "custom" (the timed
multishot mode), genre: "auto", speedramp: "auto", mode: "std",
bitrate_mode: "high", generate_audio: true, 21:9 at 4K.
shot, five-bucket folder discipline): ../../production-benchmarks.md
§ Community-corpus anchors.
Seedance 2.0 exposes five generation modes that each take the six-slot formula
but apply it to a different starting point. Picking the right mode is upstream of
prompt writing — the same sentence will produce different results in different
modes, because each mode reads the prompt as a different kind of instruction.
The prompt builds a scene around a source image that carries the visual identity —
character, wardrobe, palette, sometimes composition. The prompt's job is NOT to
re-describe what the image already shows; it's to place the subject into a new
action, setting, or motion context. This is the workhorse mode for any sequence
that needs a consistent character across varied shots.
[Source image role: "as the main character" / "as the starting frame"].
[Action the subject performs]. [Environment and atmosphere if not visible in source].
[Camera movement]. [Lighting cue if different from source].
The prompt extends a prior Seedance generation forward in time, picking up at the
final frame of the previous clip. Identity, wardrobe, environment, and emotional
state all carry over. The prompt should describe what happens NEXT — never what
just happened. For the full five-rule construction pattern, see the Continuation
Prompt Formula section directly below.
[Continuing from prior clip]. [New action that follows from the last frame].
[Camera direction for the continuation]. [Any state change — light shift, new beat].
The prompt grows the canvas or spatial extent of an existing frame — pulling the
frame boundaries outward to reveal what's beyond the original edges. This is NOT
a time extension (that's Continuation) and NOT a zoom-out camera move within the
original generation. It rewrites the frame itself to include more scene. Useful
for turning a tight composition into a wider establishing shot without
regenerating from scratch.
[Source frame reference]. Extend the scene [direction: outward / upward / leftward].
[What appears in the newly revealed area]. [Preserve the original subject/composition].
The prompt modifies specific elements of an existing generation while everything
else stays exactly as it was. Think of it as a targeted patch: change a jacket
color, remove a background figure, swap a prop, adjust a facial expression.
Identity, camera, composition, and lighting stay locked unless you explicitly
name them in the change list. The Keep Rule matters here: always state what to
preserve alongside what to change.
Change [specific element] to [new state]. Keep [everything else] unchanged.
[Preserve identity, composition, lighting, and camera behavior from the original.]
The prompt describes an explicit state change inside a single clip — the subject,
object, or environment visibly becomes something else within the shot's
duration. Distinct from Continuation (which extends time across two clips) and
from Edit Shot (which modifies a generated clip after the fact). Transformation
happens *during* the generation, in one continuous take.
> Not to be confused with footage transformation (video-to-video). This
> Transformation *prompt mode* is an in-clip morph generated from scratch. When
> the user starts from a real clip they already shot and wants to preserve
> the subject + camera move while adding a VFX element, swapping the world, or
> dropping in a creature, that is the video-to-video workflow in
> ../higgsfield-seedance-vfx/SKILL.md (@source grammar, lock-down clauses,
> lighting integration, std-4K). Use it when the shot's
core idea is the change itself: a character morphing, an object decaying, a
landscape shifting from one season to another. The skeleton below is written
for character → character; the same pattern applies to object → object and
environment → environment with the relevant noun substituted.
[Subject in starting state — full identity descriptors]. [Triggering moment or
cue]. [Subject mid-transformation — what visibly changes, in observable
physical terms]. [Subject in ending state — new identity descriptors].
[Camera behavior across the change]. [Lighting / palette shift if any].
The transformation must be one continuous arc, not a cut. Describe the
intermediate state explicitly — the model needs a midpoint anchor or it will
either snap from start to end (looks like a cut) or render an ambiguous blur.
Keep the duration short (5–8 seconds is the sweet spot for a single
transformation); longer clips drift.
Reference-Based for new action with an existing character. Continuation for the
next beat in time. Expand Shot to widen the frame spatially. Edit Shot to patch
specific details. Transformation prompt mode when the shot's core idea is a
state change inside a single clip — the change is the content. If you find
yourself writing across multiple modes in one prompt — stop, pick one,
generate, then use the output as input to the next mode.
When writing a Continuation mode prompt, apply these five rules. Skipping any of
them is the most common cause of continuation failures: identity drift across the
boundary, re-played actions, environment shifts, and broken emotional through-lines.
camera sees in the final frame of the prior clip — the pose, the position in
frame, where the character is looking. This tells the model where to start
rendering from. One sentence is enough.
you used in the original prompt) verbatim into the continuation prompt. Do
not paraphrase it. Do not shorten it. Continuation boundaries are where
identity drifts — a verbatim re-paste gives the model no room to reinterpret.
"following the door opening," "after the punch lands," "continuing from her
turn toward the window." Do not re-describe the action in detail. One
referential phrase, then move on.
the prior clip's final frame. No time skip, no fade, no implied cut — unless
the user has explicitly asked for one. If they want a skip, describe it as a
new shot instead.
ended on her drawing her weapon, the continuation does NOT describe her
drawing her weapon — it describes what she does with it next. Repeating a
described action is what causes the "previous beat replays" symptom.
Across the continuation boundary, preserve: character identity (face, build,
distinguishing marks), wardrobe (every garment and accessory), environment
(architecture, light quality, color treatment, ambient particulates), and
emotional carryover (the state the character was in at the last frame — tense,
exhausted, alert — should still read on their body in the opening of the
continuation).
> For the eight named substrate channels that "emotional carryover"
> decomposes into, see ../../vocab.md § Emotion as Visible Behavior —
> Channels.
Prior clip ended on a detective standing in a doorway, rain behind her, glancing
over her shoulder. The continuation prompt:
Continuing from the prior clip — the detective framed in the doorway, head
turned, rain behind her. [Identity block verbatim: weathered woman, mid-40s,
short dark hair, charcoal trench coat, leather gloves, tired but alert.]
Following her glance back, she steps fully into the corridor, lets the door
swing shut behind her, and begins walking toward camera. Slow dolly-back
matching her pace. Same cool blue-grey palette, same overhead practical light.
Tense, controlled energy carrying over from the prior clip.
All five rules present: last-frame anchor (framed in the doorway, head turned,
rain behind her), identity anchor (bracketed block, verbatim), prior clip as
secondary memory ("following her glance back"), immediate continuation (steps
fully into the corridor — the next frame action), no action repeat (the glance
is referenced, not re-performed).
[EMPIRICAL — cross-surface, verified on Dreamina] — no Seedance surface
exposes a dedicated "extend" button. The working extension path: attach the
existing clip as a video reference (the video_references media role)
and open the prompt with "The scene continues." The model picks up from
the clip's end and carries motion, characters, environment, even voices. The
five rules above still apply — the attached clip simply replaces the prose
last-frame anchor with the real thing.
model generates the clip leading *into* the source. Past / current /
future can all be chained around one anchor clip.
1080p extension, 15s source → 15s extension (both inside the model's
4–15s range; 1080p/4k require mode=std). A 720p extension of a 1080p
source shows a visible quality jump at the join. Same family as the
duration-match rule for screen composites
(PRODUCTION-PATTERNS.md § Video-Reference 1:1 Lock + SCREEN REALISM).
[FIELD — 13-project harvest]:production practice feeds the final 3–4 seconds of the finished take
back as the @video reference rather than a last-frame still — the clip
carries *motion* into the join, so the next shot picks up the exact pose,
framing, light, and movement where the previous one left off instead of
restarting from a frozen pose.
source clip's end (a mole behind a hand), add the character image as a
second reference and bind it explicitly: `"The woman's identity is
@Image1."`
and compounds artifacts. [FIELD — community, seedance-2.0 repo v6.6.0]:
expect visible drift by the 4th–5th chained generation; **cap seamless
chains at ~2 (hard ceiling 3), then re-anchor from the ORIGINAL canonical
references** — a scene boundary is an intentional cut re-opened from
canonical refs, not extension #4. A sequence that must run longer: break
the chain with a B-roll cutaway between extensions, or upscale before
re-feeding.
camera-angle change ("the scene from the character's perspective") so
the next join reads as intentional coverage rather than a seam.
extension text carries only the delta — see the [FIELD] addendum under
§ Reference Roles → Load-Bearing Rule before writing the opening line.
in ../higgsfield-audio/SKILL.md before writing the next line — reliable
lip-sync word counts differ sharply by language.
The Seedance 2.0 Prompt Modes section above names five things the
platform exposes: Reference-Based / Continuation / Expand Shot / Edit
Shot / Transformation. These are platform mechanisms — different pathways
through which Seedance accepts a prompt. The Reference Roles and Working
Modes sections below name two adjacent concepts that the platform
vocabulary does not surface:
craft when you sit down to write the prompt.
Seedance accepts the prompt through.
A semantic-role layer, distinct from the input-modality use-case
patterns catalogued in ../higgsfield-cinema/SKILL.md § @ Reference
Patterns for Cinema Studio 3.0 (which lists @Image1 / @Video1 /
@Audio1 patterns by scenario, not by semantic role).
These three taxonomies are peers, not hierarchical. A single Seedance
shot pulls from all three: a working-mode intent picks a prompt mode;
references inside the prompt play specific roles.
"Continuation" names something in both taxonomies:
the previous shot left off."
Seedance input pathway that extends a prior generation forward in time
(see the Seedance 2.0 Prompt Modes section above).
A user in Continuation working mode almost always uses Continuation
prompt mode — the intent and the mechanism line up. But Bridging working
mode can also reach for Continuation prompt mode (when the bridge
anchors on the last frame of the upstream shot), and Repair working mode
can reach for Continuation prompt mode (when the repair is a re-shoot
starting from the same last frame as the failed clip). The names
overlap; the meanings don't.
In this skill, section context disambiguates: if the surrounding content
is in the Working Modes section, "Continuation" means the intent; if in
the Seedance 2.0 Prompt Modes section or the Continuation Prompt Formula
section, "Continuation" means the mechanism. If still ambiguous, the
longer forms — "Continuation working mode" and "Continuation prompt
mode" — are always available.
| Working mode | Typical prompt mode(s) | Reference roles in play |
|---------------|---------------------------------------|----------------------------------------|
| Exploration | Reference-Based, or pure T2V | Character (optional) |
| Continuation | Continuation | Character + Last-Frame |
| Bridging | Reference-Based or Continuation | Character + Last-Frame + Environment |
| Repair | Edit Shot, or fresh Reference-Based | Character + (failed-shot reference) |
Not a strict mapping. One working mode routes through one or more prompt
modes depending on what the shot needs; the table anchors the typical
case without claiming a 1:1 bijection.
Seedance prompts use references — @Image, @Video, and @Audio — to
lock specific properties across shots. Each reference plays one of four
roles depending on what it locks. This is a semantic-role taxonomy: what
the reference IS FOR in the prompt. It sits alongside (not on top of)
the input-modality use-case patterns in ../higgsfield-cinema/SKILL.md
§ @ Reference Patterns for Cinema Studio 3.0, which catalogs concrete
prompt patterns by file type.
If a property has to read consistently across multiple shots, assign it
to a reference role. If it only matters for one shot, write it inline.
Three in-prompt role *phrases* demonstrated in Higgsfield's Seedance-4K
tutorial — "100% matches the reference" (identity lock), `"STYLE
REFERENCE ONLY" (environment that the model may extend), and "VARIETY
reference"` (crowd lineup sheet, the clone-army fix) — are catalogued in
PRODUCTION-PATTERNS.md § Reference-Role Vocabulary.
Locks main-character identity across shots — face, build, distinguishing
marks. Almost always an image reference; for highest consistency, use
the Soul ID character sheet documented in
../higgsfield-soul/SKILL.md § Character Sheet Creation.
Pattern in a Seedance prompt:
@Image1 as the main character. [Identity block verbatim.] [Action the
subject performs.] ...
Anchors the start of a new clip to a specific frame from the previous
one. The role tells the model where to begin rendering from. Used in
Continuation prompt mode and inside Bridging working mode. For the full
five-rule construction pattern, see the Continuation Prompt Formula
section above.
Pattern in a Seedance prompt:
Continuing from the prior clip — [short description of what the camera
sees in the final frame of the prior clip]. [New action that follows.]
Locks the world and setting across shots — architecture, light quality,
ambient particulates, weather state. The role tells the model the
specific space the action takes place in, separate from any character
in that space. Pairs with ../higgsfield-cinema/SKILL.md § Location
Reference Sheets when the same environment recurs across enough shots
to earn a sheet.
Pattern in a Seedance prompt:
@Image1 as the environment. [Subject + action.] [Lighting / atmospheric
cues consistent with the environment reference.]
Locks specific recurring objects — a hero costume piece, a signature
weapon, a branded product, a vehicle that appears across multiple shots.
The role tells the model that this specific object — not a generic
instance of its category — must read identically across cuts.
Pattern in a Seedance prompt:
@Image1 as the prop. [Subject interacts with the prop.] [Camera
behavior.] [How the prop appears in the new shot — same geometry and
material as the reference.]
Reference handles (@Image1, @Image2, @Video1, @Audio1) are
assigned by upload order — the first image attached becomes
@Image1, the second becomes @Image2, and so on. Production
practice locks a stable role assignment per slot, kept identical
across every prompt in a shot list, so the team and the model both
know which reference carries which property without re-reading the
prompt body.
| Slot | Role |
|------------|-------------------------------|
| @Image1 | Character identity |
| @Image2 | Costume |
| @Image3 | Environment + lighting |
| @Image4 | Composition |
| @Video1 | Motion only |
| @Video2 | Camera movement only |
| @Audio1 | Rhythm + atmosphere |
@Audio1 is load-bearing on timing, not just atmosphere: an uploaded
audio file is a conditioning input that drives cut timing, camera
acceleration, and action pace (beat sync), and a [AUDIO: Xs] script block
in the prompt body generates dialogue + SFX + lip-sync. Both, plus the
first-15s extraction trap, are documented in
../higgsfield-audio/SKILL.md § Audio as a Conditioning Input. The
temporal-compatibility constraint below (a @Video1 camera style must not
fight the @Audio1 rhythm) is the audio case of the Load-Bearing Rule.
The slot order is not model-enforced — it is team-side discipline.
The payoff is reference-stability across long shot lists: once
@Image1 = character for the project, that holds for every prompt,
and nobody has to re-check which face the model expects at shot 47.
When a reference conflicts with the prompt text — costume reference
shows red, text says blue — resolve it explicitly in the prompt
body: `@Image2 as costume reference, but recoloured to blue for this
shot`. Don't let an unresolved conflict reach the model.
References support memory, but text defines action. The references
in a Seedance prompt carry the persistent properties that read
consistently across shots; the prompt text directs what happens in this
specific generation. References cannot drive new action; text cannot
replace what the references carry. Both layers stay in their lanes.
Sibling formulation of the v3.7.1 camera-side rule ("Prompt wins on
action, reference wins on texture and world feel" — see
../higgsfield-camera/SKILL.md § Video Reference — What It Reads, and
What It Can't, § Load-Bearing Rule). Same underlying principle from
different surfaces. The camera-side rule names the WIN order in case of
conflict; the Seedance-side rule names the LANES each side covers.
> [FIELD — community, seedance-2.0 repo v6.6.0] Source carries state.
> When an accepted clip or final frame is attached as a reference, the
> source carries the state — the prompt text carries only the *delta*.
> Delete opening-state prose that repeats what the attached source already
> shows; when a reference and the text conflict, **references outrank
> text**. One class of state stays in prose regardless: a still frame
> cannot carry open motion vectors, camera-movement phase, or audio phase —
> in-flight motion and timing must be restated in words even when the frame
> is attached. Applied to extensions in § Continuation Prompt Formula →
> Extension Prompting.
The same distinction applies one level up — at the prompt-construction
workflow, not just inside the prompt. When a Seedance clip lands and
you want the next prompt to match its look, screenshot the working
frame and upload it to Claude, not to Seedance. Claude needs the
visual to write a prompt that matches the look; Seedance receives the
resulting text prompt and renders the next clip without the screenshot
attached. The screenshot is reference (for the prompt-building model);
the text prompt is action (for the generation model).
Frame Coordinate System locks where subjects, props, and
compositional elements sit inside the frame.
Standard film-language position language, machine-readable because
it is widely-attested in the training data:
left third, center, right thirdupper third, lower third (centered vertically isthe default and rarely needs naming)
foreground, midground, backgroundNumeric coordinates for cases where the qualitative anchors are
not specific enough:
0% (far left frame edge) to 100% (far rightframe edge)
0% (top of frame) to 100% (bottom of frame)fills, useful for shot-size pinning (a tight close-up sits near
60-80% occupancy; a wide establishing has the subject below
15%)
Use percentages when qualitative anchors are under-specified —
e.g., two characters in the same half of frame.
Ship the qualitative anchor and the percentage notation **together
in the same prompt**, not as alternatives. The qualitative term
gives the model the film-language hook; the percentage gives it the
precision target. Example:
Character A stands in the right third, x-position 70%, y-position
50%, frame occupancy 25%. Character B stands in the left third,
x-position 25%, y-position 55%, frame occupancy 22%.
Frame coordinates are **a strong compositional anchor, not a
geometric guarantee**. The model treats them as directorial
intent — the same way a DP reads "right third" on a storyboard —
not as pixel-exact targets. Use them alongside the rest of the
standard composition vocabulary (over-the-shoulder, eye line,
ground contact, headroom, nose room, crossing rule — the last
formalized at vocab.md § Composition Vocabulary →
Crossing rule) rather than as a substitute for it.
When a coordinate drifts in the output, that is the expected behavior
class — the coordinate set the intent; the model rendered to its
best-fit interpretation. Adjust the prompt by tightening the
qualitative anchor or by adding a contact-point clause (`feet on
the marked floor mark, right hand resting on the table edge`)
that physically grounds the position rather than re-specifying the
percentage harder.
A Spatial Layout Block is a named structural unit inside a
Seedance prompt that consolidates the spatial-vocabulary fields
from § Frame Coordinate System into a single block the model can
read as one coherent spatial brief. Where Frame Coordinate System
provides the *vocabulary*, the Spatial Layout Block provides the
*structure* for using it.
Scattered spatial directives force the model to reassemble scene
geometry from fragments — and it often picks the wrong reassembly.
A complete Spatial Layout Block names, per subject in frame:
Reference Role handle when references are present)
paired per § Frame Coordinate System above
camera, away, profile-left, profile-right, three-quarter to
camera)
is grounded against (feet on wet asphalt, `back pressed against
the wall`)
Multi-character blocks add the cross-subject relationships:
relative distance, eyeline direction between subjects, screen-left
vs screen-right consistency, whether subjects cross the central
vertical axis, what occludes what.
Three triggers:
the model most often swaps screen positions or crosses the
central axis without instruction. A block prevents that.
shots.** When the same blocking must hold for several beats — a
character anchored left, another anchored right — the block
makes the anchor explicit and re-usable.
shots, and any shot where the model has been picking the wrong
spatial reassembly historically all benefit from a block up
front rather than inline spatial fragments.
Shots with a single subject in a clear position rarely need a full
block; a single qualitative-plus-percentage anchor inside the
Dynamic Description suffices.
The Spatial Layout Block sits before the Dynamic Description in
the output format (see § Output Format for Seedance Prompts below).
It primes the model with full geometry; the Dynamic Description
then describes the action that happens inside that geometry.
The block does not replace the six-slot formula — camera, lens,
lighting, and shot timing stay in their respective slots.
Working modes is a user-intent layer above the platform mechanism. It
names what you are trying to DO when you sit down to write a Seedance
prompt — independent of which prompt mode you eventually route through.
See the disambiguation section above for the relationship between
working modes (intent) and prompt modes (mechanism). The mapping table
there shows the typical routes.
Open-ended discovery. No prior shot to anchor on; no constraint to
match. You're generating to find out what the shot wants to be. Short
prompts work here — the model has space to bring its own interpretation.
Typically routes through Reference-Based prompt mode (with a single
character anchor) or pure text-to-video (no references at all).
Picking up where a previous shot left off. The prior clip is the anchor;
the new clip continues from its final frame. Working mode and prompt
mode line up: Continuation working mode almost always routes through
Continuation prompt mode. See the Continuation Prompt Formula section
above for the five-rule construction.
Connecting two existing shots that don't currently flow. The shots
themselves work; the cut between them feels wrong — spatial geography
is unclear, or the emotional energy mismatches, or the camera character
jumps. Bridging uses references from both ends — the last frame of the
upstream shot and the first frame of the downstream shot — to navigate
the middle. Typically routes through Continuation prompt mode (when the
upstream last-frame is the dominant anchor) or Reference-Based (when
both ends carry equal weight). Common reference role configuration:
Character + Last-Frame + Environment.
Fixing a failed shot. Distinct from regenerating with a tweaked prompt —
Repair acknowledges that the failed clip is data: it shows you what the
model interpreted wrong, and that interpretation needs to be addressed
directly. Typically routes through Edit Shot prompt mode (when the
failure is local — a wrong jacket color, a missing prop) or a fresh
Reference-Based generation with corrective prompt text (when the failure
is structural — wrong action beat, drifted identity). Pair with the
Iteration Rule in ../higgsfield-prompt/SKILL.md § The Iteration Rule
when iterating on the corrective prompt.
The mode you reach for is downstream of what you're noticing in your
work. Diagnose by symptom, then pick the mode that fits:
| What you're seeing | Working mode | Why |
|---|---|---|
| Blank page, no anchors yet | Exploration | No prior shot to continue or bridge from; freeform discovery first. |
| Strong shot that needs a follow | Continuation | The shot earned a sequel; pick up where it left off. |
| Two strong shots that don't connect | Bridging | The shots work; the seam between them doesn't. |
| Strong shot but the feeling is weak | Continuation (with role swap) | Re-shoot the same beat with a different reference role carrying the weight — e.g. close-up where the original was wide. |
| Spatial logic feels off mid-sequence | Bridging (with geography clarification) | The sequence needs a beat that re-establishes who is where. |
| Failed shot you keep generating around | Repair | Stop iterating on the prompt. Target the failure directly. |
The decision tree is symptom-first, not mode-first. The mode is the
Take osidemedia/higgsfield-seedance from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.