# Seedance 2.0 Anti-Slop Vocabulary: A Complete Guide to Precise Prompt Writing

> Master Seedance 2.0 anti-slop vocabulary for precise prompt writing. Eliminate vague words and generate high-quality video with concrete production language. Learn the six slop classes and positional rules.

- Repository: [Iamemily2050 /seedance-2.0](https://github.com/Emily2040/seedance-2.0)
- Tags: how-to-guide
- Published: 2026-08-03

---

**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`](https://github.com/Emily2040/seedance-2.0/blob/main/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`](https://github.com/Emily2040/seedance-2.0/blob/main/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`](https://github.com/Emily2040/seedance-2.0/blob/main/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`](https://github.com/Emily2040/seedance-2.0/blob/main/zh.md)), Japanese ([`ja.md`](https://github.com/Emily2040/seedance-2.0/blob/main/ja.md)), and other languages.

## The Two Critical Positional Rules

Beyond the replacement table, two editorial rules govern prompt construction:

1. **Position costs more than count** — slop at the beginning wastes exponentially more budget than slop at the end.

2. **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`](https://github.com/Emily2040/seedance-2.0/blob/main/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`](https://github.com/Emily2040/seedance-2.0/blob/main/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`](https://github.com/Emily2040/seedance-2.0/blob/main/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`](https://github.com/Emily2040/seedance-2.0/blob/main/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

```python
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`](https://github.com/Emily2040/seedance-2.0/blob/main/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`](https://github.com/Emily2040/seedance-2.0/blob/main/references/anti-slop-lexicon.md) | Central taxonomy, replacement table, and positional budget rules |
| [`references/vocab/en.md`](https://github.com/Emily2040/seedance-2.0/blob/main/references/vocab/en.md) | English Slop Traps: community-specific empty words → concrete replacements |
| [`references/vocab/zh.md`](https://github.com/Emily2040/seedance-2.0/blob/main/references/vocab/zh.md), [`ja.md`](https://github.com/Emily2040/seedance-2.0/blob/main/ja.md), etc. | Language-specific slop mappings for multilingual prompts |
| [`skills/seedance-antislop/SKILL.md`](https://github.com/Emily2040/seedance-2.0/blob/main/skills/seedance-antislop/SKILL.md) | Skill definition for loading lexicon and vocabularies |
| [`skills/seedance-prompt/SKILL.md`](https://github.com/Emily2040/seedance-2.0/blob/main/skills/seedance-prompt/SKILL.md) | Final anti-slop quality pass in prompt compilation |
| [`scripts/prompt_lint.py`](https://github.com/Emily2040/seedance-2.0/blob/main/scripts/prompt_lint.py) | CLI tool for standalone prompt validation |
| [`references/model-mechanics.md`](https://github.com/Emily2040/seedance-2.0/blob/main/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:

1. Subject and primary action
2. Environmental context
3. Camera specification
4. Lighting description
5. Sound design
6. 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 in `skills/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`](https://github.com/Emily2040/seedance-2.0/blob/main/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`](https://github.com/Emily2040/seedance-2.0/blob/main/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`](https://github.com/Emily2040/seedance-2.0/blob/main/en.md), [`zh.md`](https://github.com/Emily2040/seedance-2.0/blob/main/zh.md), or [`ja.md`](https://github.com/Emily2040/seedance-2.0/blob/main/ja.md). Include a **Slop Traps** table mapping community-specific empty words to concrete physical descriptions. The [`skills/seedance-antislop/SKILL.md`](https://github.com/Emily2040/seedance-2.0/blob/main/skills/seedance-antislop/SKILL.md) will automatically load your vocabulary when `lang` matches your file's language code.