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.
git clone --depth 1 https://github.com/OSideMedia/higgsfield-ai-prompt-skill /tmp/higgsfield-seedance && cp -r /tmp/higgsfield-seedance/skills/higgsfield-seedance ~/.claude/skills/higgsfield-seedanceSKILL.md
# Higgsfield Seedance Director ## QUICK FACTS *Generated-checked block (build_index.py verifies anchors). Read the linked sections for full context — these lines are routing aids, not the rules themselves.* - The filter is an LLM reading full-scene intent, not a keyword blacklist — describe a SCENE, not a subject; fix the voice first [→](#the-filter-model-read-this-first) - Instant fail (<10s) = filter rejection; delayed fail (>30s) = infra/complexity — never regenerate an instant fail unchanged [→](#instant-fail-vs-delayed-fail-the-diagnostic) - Six slots, in order: Camera + Subject + Action + Setting + Style + Lighting; missing 3+ slots is where flags come from [→](#the-seedance-prompt-formula) - Five prompt modes: Reference-Based / Continuation / Expand Shot / Edit Shot / Transformation — pick the mode before writing [→](#seedance-20-prompt-modes) - Hard engine rules (age-blind, exit-frame = cut, off-screen = nonexistent, no reflections, ≤3 tracked characters, double-contrast cuts) + high-risk shot table: `ENGINE-RULES.md` in this directory - Reference roles: Character / Last-Frame / Environment / Prop — role determines what the prompt may re-describe [→](#reference-roles) - Working modes: Exploration / Continuation / Bridging / Repair (distinct from prompt modes) [→](#working-modes-vs-prompt-modes-two-taxonomies) - Layer 1 briefing vs Layer 2 production prompt — never paste Layer 1 into the prompt box [→](#two-layer-prompt-authoring) - Always preflight: `python3 seedance_lint.py --preflight --model seedance_2_0 "<prompt>"` — enums come from `../../specs/model-specs.json` (fast+1080p and Kling 21:9 are auto-caught) [→](#pre-flight-linter) - 480p drafts validate the prompt, NOT the take — no seed param; pin Hero Frame + start/end frames to carry a look [→](#drafts-validate-the-prompt-not-the-take) - ZH prompts: hard 1,800-char cap; ZH antislop list enforced by the linter [→](#multi-language-prompt-workarounds) - Flagged prompt → rewrite playbook per linter rule, then voice pass [→](#the-rewrite-playbook) - Repeated flags → full loop-breaker procedure + LOG THE OUTCOME (`--confirmed` / `add-quality`) [→](#when-the-user-is-already-in-a-failure-loop) 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. --- ## The Filter Model — Read This First 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 prompt that reads like a filmmaker describing a shot** → tends to pass. - **A prompt that reads like a note to a friend** → tends to fail. 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. --- ## Instant Fail vs. Delayed Fail — the Diagnostic 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. --- ## The Seedance Prompt Formula 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. ### Minimum viable Seedance prompt > **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. --- ## Seedance 2.0 Prompt Modes 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. ### Reference-Based 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
Guided version bump — validate, tag, and create GitHub release
Run pre-release validation checks on all SKILL.md files and JSON databases
>
Seedance 2.0 video prompt director. Converts plain-text scene descriptions into production-ready bilingual EN+ZH video prompts optimized for the Seedance 2.0 video generator. Handles action scenes (combat, pursuit, stunts), general scenes (landscapes, journeys, atmosphere), and dialogue scenes (confrontations, negotiations, interrogations). Use this skill whenever the user wants to create a Seedance video prompt, describes a scene for video generation, mentions Seedance, or asks for a cinematic scene breakdown.
>
>
>
>