Seedance 2.0 Anti-Slop Vocabulary: A Complete Guide to Precise Prompt Writing
The Seedance 2.0 anti-slop vocabulary eliminates vague, empty-quality words from video generation prompts by replacing them with concrete, observable production language structured around six slop classes and strict positional rules.
This guide breaks down the complete anti-slop system implemented in the Emily2040/seedance-2.0 repository. Whether you're crafting prompts for Seedance video generation models or refining your own AI prompt engineering workflow, understanding this vocabulary will dramatically improve output quality by preserving model attention budget for elements that actually drive visual results.
What "Slop" Means in Seedance 2.0
"Slop" refers to vague, evaluative words that consume precious model-conditioning budget without conveying actionable visual information. The Seedance 2.0 system treats slop as a technical problem: every token in your prompt competes for limited attention resources, and empty words steal capacity from concrete details.
The core insight, documented in references/model-mechanics.md, is that position costs more than count — words placed early in a prompt consume a larger share of the attention budget than identical words later in the constraint tail. This makes opening-position slop especially destructive.
The Six Slop Classes Defined
The taxonomy lives in references/anti-slop-lexicon.md and organizes all problematic prompt language into six repairable categories:
| Class | Problem | Repair Direction |
|---|---|---|
| Empty evaluators | cinematic, epic, stunning, beautiful, dramatic |
Specific observable detail that earns the claim |
| Borrowed image-model tokens | 8K, masterpiece, award-winning, trending on ArtStation, Unreal Engine, RAW |
Delete entirely — use render settings instead |
| Tag salad | Comma-separated keyword dumps | One sentence per production element |
| Negation slop | no blur, no artifacts, no extra fingers |
Describe what is present |
| Adjective stacking | gorgeous, breathtaking, mesmerizing sunset |
Single defining detail only |
| Feel-suffix words | 电影感, 雰囲気のある, 감성적인, atmosférico, атмосферный, vibey |
Name the physical cause of the feeling |
Each class has language-specific mappings. The English vocabulary in references/vocab/en.md contains a Slop Traps table that maps community-specific empty words to concrete replacements. Parallel files exist for Chinese (zh.md), Japanese (ja.md), and other languages.
The Two Critical Positional Rules
Beyond the replacement table, two editorial rules govern prompt construction:
-
Position costs more than count — slop at the beginning wastes exponentially more budget than slop at the end.
-
Never let a slop word hold an opening position — the opening must lock subject and primary action first, following the Seedance-Prompt Director Formula implemented in
skills/seedance-prompt/SKILL.md.
These rules are enforced automatically during the anti-slop pass that runs as the final quality check in prompt compilation.
Before and After: Anti-Slop in Practice
Example 1: Empty Evaluator + Borrowed Token
Before (slop-heavy):
Cinematic epic shot of a beautiful woman in a 8K masterpiece setting.
After (anti-slop repair):
A woman stands on a cliff at sunrise; the low sun casts warm light across her face. Camera: slow dolly-in to a medium close-up. No post-process filters.
What changed:
- "Cinematic", "epic", "beautiful" → concrete light direction and camera movement
- "8K", "masterpiece" → removed (quality settings belong in render configuration, not prose)
Example 2: Tag Salad + Negation Slop
Before (keyword dump):
girl, sunset, 8K, cinematic, beautiful light, masterpiece, detailed face, no blur, no watermark.
After (structured brief):
A young woman looks toward the setting sun; golden light bathes her hair. Camera: steady close-up. Sound: distant waves. No watermark or blur visible.
What changed:
- Tag salad collapsed into readable sentences with one element per production category (subject, action, camera, light, sound)
- Negations replaced by positive framing, with constraints moved to the final position
Automated Enforcement: The Technical Pipeline
The anti-slop vocabulary isn't just documentation — it's executable through several repository components:
skills/seedance-antislop/SKILL.md
Loads the lexicon and language vocabularies during prompt compilation. This skill makes the replacement table available to the broader prompt-generation pipeline.
skills/seedance-prompt/SKILL.md
Executes the anti-slop pass as the final quality check before prompt submission. This ensures no slop survives to the model regardless of upstream generation.
scripts/prompt_lint.py
Command-line utility for standalone prompt validation. Use it to check existing prompt files against the complete anti-slop ruleset.
Python API Usage
from seedance_antislop import anti_slop_fix
raw_prompt = "Cinematic epic shot of a beautiful woman in a 8K masterpiece setting."
clean_prompt = anti_slop_fix(raw_prompt, lang="en")
print(clean_prompt)
# → "A woman stands on a cliff at sunrise; the low sun casts warm light across her face. ..."
The anti_slop_fix function reads references/anti-slop-lexicon.md and the appropriate language vocabulary file, applies class-specific repairs, and respects the position-cost rule by flagging or rewriting early-position violations.
Key Files in the Anti-Slop System
| File Path | Purpose |
|---|---|
references/anti-slop-lexicon.md |
Central taxonomy, replacement table, and positional budget rules |
references/vocab/en.md |
English Slop Traps: community-specific empty words → concrete replacements |
references/vocab/zh.md, ja.md, etc. |
Language-specific slop mappings for multilingual prompts |
skills/seedance-antislop/SKILL.md |
Skill definition for loading lexicon and vocabularies |
skills/seedance-prompt/SKILL.md |
Final anti-slop quality pass in prompt compilation |
scripts/prompt_lint.py |
CLI tool for standalone prompt validation |
references/model-mechanics.md |
Technical explanation of attention-budget costs |
Repair Strategies by Class
Empty Evaluators → Observable Proof
Instead of claiming "cinematic," specify what makes it so: practical light sources, lens characteristics, or camera movement.
Borrowed Tokens → Technical Configuration
8K, Unreal Engine, and RAW are settings, not descriptions. Move them to seed/render configuration fields.
Tag Salad → Structured Brief Format
Transform comma-separated lists into grammatically complete sentences, one per production category:
- Subject and primary action
- Environmental context
- Camera specification
- Lighting description
- Sound design
- Constraints (minimal, final position)
Negation Slop → Positive Framing
Describe the desired state rather than the absence of problems. Use negation only when necessary, and place it in constraint slots where positional cost is lowest.
Adjective Stacking → Single Dominant Detail
Pick the one visual element that carries the emotional weight. "Golden light through dust particles" beats four stacked evaluators.
Feel-Suffix Words → Physical Causation
电影感 (diànyǐng gǎn / "cinematic feeling") → anamorphic lens flares, film grain texture, or motivated practical lighting. Name the mechanism, not the sensation.
Summary
- Seedance 2.0 anti-slop vocabulary eliminates six classes of empty prompt language through structured replacement tables
- Position costs more than count — early slop wastes exponentially more model budget than late slop
- Never open with slop — subject and primary action must occupy the first clause
- Concrete, observable language replaces all evaluative claims in the Six Slop Classes
- Multilingual support via language-specific Slop Traps tables in
references/vocab/ - Automated enforcement through
anti_slop_fix()and the skill pipeline inskills/seedance-prompt/
Frequently Asked Questions
What makes a word "slop" in Seedance 2.0?
A word is slop when it evaluates quality without describing observable production details. "Cinematic" tells the model you want quality but not how to achieve it. The anti-slop vocabulary demands you specify the lens, light, or movement that earns that evaluation. According to the references/anti-slop-lexicon.md, slop wastes attention budget that could drive actual visual output.
Why does early-position slop cost more than late-position slop?
The attention mechanism in video generation models assigns greater weight to tokens appearing early in conditioning sequences. As detailed in references/model-mechanics.md, this means the same slop word placed at the opening consumes a larger share of fixed attention resources than identical slop in constraint slots. The anti-slop system enforces this through the "Position costs more than count" rule.
Can I use negation at all in Seedance 2.0 prompts?
Yes, but sparingly and never in opening positions. The anti-slop vocabulary targets negation slop — habitual negative phrasing like "no blur, no artifacts" — because describing what's absent fails to guide generation positively. When constraints are necessary, phrase them positively where possible ("sharp focus" vs. "no blur") and place genuine negations in final constraint slots where positional cost is minimized.
How do I add slop detection for my language?
Create a new file in references/vocab/ following the pattern of en.md, zh.md, or ja.md. Include a Slop Traps table mapping community-specific empty words to concrete physical descriptions. The skills/seedance-antislop/SKILL.md will automatically load your vocabulary when lang matches your file's language code.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →