> ## Documentation Index
> Fetch the complete documentation index at: https://docs.venice.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Venice Video Harness

> Steuern Sie Venice aus Claude Code oder Cursor mit einem Harness für charakter-konsistente Videos, Storyboards, Trailer und Langform-Erzählungen.

Das [Venice Video Harness](https://github.com/jordanurbs/venice-video-harness) ist ein Community-Toolkit – agent-first und Venice-optimiert – für **konsistenzorientierte Videoerstellung in beliebiger Länge**. Es macht aus einem IDE-Agenten (Claude Code, Cursor, Codex usw.) den Operator eines wiederverwendbaren Venice-Produktionssystems, das über 50 Venice-Video-, -Image-, -Audio- und -Musikmodelle abdeckt.

<Card title="GitHub: venice-video-harness" icon="github" href="https://github.com/jordanurbs/venice-video-harness">
  MIT-Lizenz. Community-gepflegt.
</Card>

<CardGroup cols={3}>
  <Card title="Charakter-konsistentes Video" icon="users">
    Charaktere, Stimmen und Ästhetik über eine ganze Serie hinweg festziehen
  </Card>

  <Card title="Storyboard-to-Video" icon="film">
    Zwei-Pass-Panel-Generierung mit Venice-Multi-Edit-Verfeinerung
  </Card>

  <Card title="Text-first-Editing" icon="scissors">
    Lokal mit whisper.cpp transkribieren, aus einem 12-KB-Pack schneiden, an jeder Schnittgrenze selbst evaluieren
  </Card>
</CardGroup>

## Was das ist

Die meisten Venice-Integrationen sind dünne Wrapper um API-Aufrufe. Das Venice Video Harness ist die **höhere Schicht**, die zwischen deinem Agenten und der Venice-API sitzt:

* **Orchestrierungsregeln** in `CLAUDE.md`
* **Wiederverwendbare Playbooks** in `.claude/commands/` (19 Workflow-Commands)
* **Spezialisierte Agenten** in `.claude/agents/` (art-director, prompt-engineer, cut-qa und mehr)
* **Venice-Produktionsskills** in `.claude/skills/` (kompatibel mit dem [Agent Skills](/guides/integrations/venice-skills)-Format)
* **TypeScript-Ausführungsschicht** in `src/`
* **Umfangreiches Modellverzeichnis** mit über 50 Venice-Video-, -Image-, -Audio- und -Musikmodellen

Gebaut für Creator, die Folgendes produzieren:

* Charakter-konsistente Videoprojekte (jedes Genre, jede Länge)
* Stilfeste Serien oder Kampagnen
* Storyboard-to-Video-Workflows
* Short- und Long-Form-Narrative
* Markenstarke cinematische Sequenzen, Trailer und Teaser
* Social-Series mit wiederkehrenden Charakteren

## Erste Schritte

### Voraussetzungen

<CardGroup cols={3}>
  <Card title="Node.js 20+" icon="node-js" href="https://nodejs.org/">
    Neueste LTS empfohlen
  </Card>

  <Card title="ffmpeg + ffprobe" icon="terminal" href="https://ffmpeg.org/">
    Im PATH verfügbar
  </Card>

  <Card title="Venice API-Schlüssel" icon="key" href="/guides/getting-started/generating-api-key">
    Von [venice.ai/settings/api](https://venice.ai/settings/api)
  </Card>
</CardGroup>

Optional für die Editing-Pipeline: `whisper-cpp` für lokale Transkription installieren.

```bash theme={"system"}
brew install whisper-cpp
mkdir -p ~/.cache/whisper.cpp
curl -L -o ~/.cache/whisper.cpp/ggml-base.en.bin \
  https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.en.bin
```

### Einrichtung

<Steps>
  <Step title="Harness klonen">
    ```bash theme={"system"}
    git clone https://github.com/jordanurbs/venice-video-harness.git
    cd venice-video-harness
    ```
  </Step>

  <Step title="API-Schlüssel konfigurieren">
    ```bash theme={"system"}
    cp .env.example .env
    # VENICE_API_KEY zur .env hinzufügen
    ```
  </Step>

  <Step title="Installieren und builden">
    ```bash theme={"system"}
    npm install
    npm run build
    ```
  </Step>

  <Step title="In deinem Agenten öffnen">
    Öffne das Projekt in Cursor, Claude Code oder einer beliebigen IDE mit Agent-Chat. Der Agent liest `CLAUDE.md` und die Playbooks automatisch.

    Probier eine dieser ersten Nachrichten:

    * „Set up this Venice video harness for first use"
    * „Create a new character-consistent video series"
    * „Generate a 30-second branded video sequence"
    * „Build a multi-episode narrative with locked characters"
    * „Create a product launch trailer with consistent visual style"
  </Step>
</Steps>

## Was an dem Harness Venice-optimiert ist

* **Bild-Prompts, abgestimmt auf Venice-Image-Modelle** wie `seedream-v5-lite`, `nano-banana-pro`, `flux-2-pro/max` und mehr
* **Zwei-Pass-Panel-Generierung** mit Venice-Multi-Edit-Verfeinerung zur Charakter-Korrektur
* **Model-Routing-Logik** für Action-, Atmosphären- und Charakter-Konsistenz-Stufen
* **Referenzbewusste Videogenerierung**, die `elements`, `reference_image_urls` und `scene_image_urls` pro Modell korrekt nutzt
* **Umgebungsbewusste Prompt-Anpassung** für Tag-vs-Nacht-Szenen
* **Venice-native Audio-Pfade** für TTS (Kokoro, Qwen3, ElevenLabs), SFX und Musik
* **Kostenabschätzung** vor der Generierung via `/video/quote` und `/audio/quote`
* **Modellbewusster Parameter-Aufbau**, der automatisch Parameter überspringt, die das Zielmodell nicht unterstützt

## Standardrouting der Modelle

Die Standardeinstellungen sind bewusst meinungsstark, weil Konsistenz das Ziel ist. Aktuelles Routing (April 2026):

**Seedance 2.0 R2V standardmäßig. Kling O3 R2V als Fallback bei 3+ Charakteren in einer Szene. Seedance 2.0 i2v für Establishing-Shots.**

| Rolle                            | Standardmodell                         | Wann verwendet                                                                                    |
| -------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------- |
| Charakter-Shots (1–2 Charaktere) | `seedance-2-0-reference-to-video`      | Standard-R2V mit flachen `reference_image_urls`, `@Image`-Tags, bis zu 15 s, nativer Stereo-Sound |
| Charakter-Shots (3+ Charaktere)  | `kling-o3-standard-reference-to-video` | Auto-Fallback mit strukturierten `elements` für Multi-Charakter-Identität                         |
| Establishing / Stimmung / Action | `seedance-2-0-image-to-video`          | Keine Charaktere; epische Kino-Qualität, bis zu 15 s                                              |

Diese sind pro Projekt über `series.json → videoDefaults` überschreibbar. Für eine Nicht-Seedance-Familie (z. B. Accounts ohne Seedance-Zugriff) `videoDefaults` auf `kling-o3-standard-reference-to-video` und `veo3.1-fast-image-to-video` setzen.

<Note>
  **Seedance-Gesichtsregel:** Seedance 2.0 blockiert gesichtshaltige Input-Bilder, die nicht von `seedream-v5-lite` oder `seedream-v5-lite-edit` erzeugt wurden. Das Harness löst das automatisch, indem es Charakter-Bilder über Seedream routet und vor jedem Seedance-Aufruf ein Pre-Flight-Gate ausführt.
</Note>

## Unterstützte Venice-Modelle

### Video (April 2026)

| Familie                   | i2v                        | t2v                   | Max-Dauer   | Audio                             | Hinweise                                                       |
| ------------------------- | -------------------------- | --------------------- | ----------- | --------------------------------- | -------------------------------------------------------------- |
| **Seedance 2.0**          | i2v, R2V                   | t2v                   | 15 s        | Ja (Stereo, Lip-Sync 8+ Sprachen) | #1 Ranking. R2V: flache `reference_image_urls`, `@Image`-Tags. |
| **Kling V3**              | Pro, Standard              | Pro, Standard         | 15 s        | Ja                                | `end_image_url` für Frame-Targeting                            |
| **Kling O3**              | Pro, Std, Pro R2V, Std R2V | Pro, Standard         | 15 s        | Ja                                | R2V: `elements`, `reference_image_urls`, `scene_image_urls`    |
| **Kling 2.6 / 2.5 Turbo** | Pro                        | Pro                   | 10 s        | 2.6: Ja / 2.5: Nein               | `end_image_url`                                                |
| **Veo 3.1**               | Fast, Full                 | Fast, Full            | 8 s         | Ja                                | Bis zu 4K-Auflösung                                            |
| **Sora 2**                | Standard, Pro              | Standard, Pro         | 12 s        | Ja                                | Bis zu 1080p                                                   |
| **Wan 2.6 / 2.5**         | Std, Flash / Ja            | Std / Ja              | 15 s / 10 s | Ja                                | `audio_url`-Input                                              |
| **LTX Video 2.0**         | Fast, Full, v2.3, 19B      | Fast, Full, v2.3, 19B | 20 s        | Ja                                | Bis zu 4K, längstes Synced-Audio                               |
| **Longcat**               | Std, Distilled             | Std, Distilled        | **30 s**    | Nein                              | Längster Single-Shot                                           |
| **Vidu Q3**               | Ja                         | Ja                    | 16 s        | Ja                                | `reference_image_urls`                                         |
| **PixVerse v5.6**         | Std, Transition            | Standard              | 8 s         | Ja                                | Transition: `end_image_url`                                    |
| **Grok Imagine**          | Ja                         | Ja                    | 15 s        | Ja                                | Breite Aspect-Ratio-Unterstützung                              |

### Image, Audio und Musik

* **Image (22+ Modelle):** `nano-banana-pro/2`, `gpt-image-2`, `flux-2-pro/max`, `grok-imagine`, `qwen-image-2-pro`, `recraft-v4-pro`, `seedream-v4` / `v5-lite`, `lustify-sdxl/v7`, `wai-Illustrious` und mehr
* **Multi-Edit:** `qwen-edit`, `flux-2-max-edit`, `nano-banana-pro-edit`, `seedream-v5-lite-edit`, `gpt-image-2-edit` und mehr
* **TTS:** `tts-kokoro` (50+ Stimmen), `tts-qwen3-0-6b/1-7b`, `elevenlabs-tts-v3`, `elevenlabs-tts-multilingual-v2`
* **Musik:** `elevenlabs-music`, `minimax-music-v2`, `ace-step-15`, `stable-audio-25`
* **SFX:** `elevenlabs-sound-effects-v2`, `mmaudio-v2-text-to-audio`

## Produktions-Pipelines

### Generierungs-Pipeline

End-to-End-Narrative-Video (Skript → Storyboard → Video → Audio → Assembly):

```bash theme={"system"}
npm run dev -- produce-episode -p output/my-series -e 1
```

Die Referenzimplementierung in `src/mini-drama/` deckt ab:

* Serien-/Charakter-/Episoden-Management
* LLM-unterstütztes Skript-Workshopping
* Zwei-Pass-Storyboard-Generierung (generieren + Multi-Edit-Refinement)
* Vision-basierte Panel-QA
* Videogenerierung mit Frame-Chaining
* Layered Audio-Post-Produktion
* Subtitle-Burn-In und finale Assembly

### Editing-Pipeline

Schneide bereits vorhandene Medien (Venice-generierte Shots oder echtes Rohmaterial). **Text-first**: Das LLM liest ein kompaktes `takes_packed.md` (\~12 KB pro 40 min Audio), statt Frames aus Video zu dumpen.

Die fünf Schritte:

<Steps>
  <Step title="Transkribieren">
    Lokales whisper.cpp erzeugt pro Quelle `*.words.json` + `takes_packed.md`.
  </Step>

  <Step title="Pack lesen">
    Das LLM bildet die Cut-Strategie allein aus dem Text.
  </Step>

  <Step title="Bestätigen">
    Schlägt die Strategie vor und wartet auf „yes / revise / cancel".
  </Step>

  <Step title="EDL rendern">
    JSON-Cut-Liste → ffmpeg-concat mit 30 ms Audio-Fades. Archive-first, sodass Originale nie überschrieben werden.
  </Step>

  <Step title="Self-Eval">
    Der `cut-qa`-Agent führt an jeder Schnittgrenze 6 programmatische Checks aus; maximal 3 Fix-Iterationen.
  </Step>
</Steps>

Die `cut-qa`-Checks fangen Aspect-Ratio-Regressionen, Frame-Hash-Sprünge innerhalb eines Worts, VO-Trunkierungen, Beleuchtungs-Diskontinuitäten, Audio-Peaks über -6 dBFS und Caption-Überlappung mit Text im Bild ab.

<Tip>
  Die Editing-Pipeline ist inspiriert von [browser-use/video-use](https://github.com/browser-use/video-use). Ihr Kerngedanke, *„das LLM schaut das Video nie an, es liest es"*, ist der Grund, warum agent-getriebenes Editing ohne Frame-Dump-Token-Flut funktioniert.
</Tip>

## Commands, Agenten und Skills

Das Harness stellt 19 Workflow-Commands, 10 spezialisierte Agenten und 7 Produktions-Skills bereit. Auszüge:

| Workflow-Command                   | Zweck                                                |
| ---------------------------------- | ---------------------------------------------------- |
| `new-series`                       | Neue Serie mit fixierter Ästhetik anlegen            |
| `add-character` / `lock-character` | Charakter + Stimme fixieren                          |
| `workshop-episode`                 | Kollaboratives Episoden-Scripting                    |
| `storyboard-episode`               | Eine Episode storyboarden                            |
| `produce-episode`                  | Komplette Pipeline mit einem Befehl                  |
| `generate-trailer`                 | Vollständige Trailer-Pipeline                        |
| `edit-footage`                     | Text-first-Editing-Pipeline für vorhandenes Material |
| `ingest-screenplay`                | Drehbuch im Fountain- oder PDF-Format einlesen       |

| Spezialisierter Agent | Rolle                                                           |
| --------------------- | --------------------------------------------------------------- |
| `art-director`        | Entscheidungen zu Ästhetik, Palette, Beleuchtung, Komposition   |
| `prompt-engineer`     | Venice-Image-Prompts, Charakter-Konsistenz                      |
| `storyboard-qa`       | Panel-QA für Kontinuität und Charakter-Checks                   |
| `cut-qa`              | Post-Render-Quality-Gate (6 Checks pro Cut, max. 3 Iterationen) |
| `overlay-designer`    | Branded Motion-Graphics, parallele Sub-Agenten                  |
| `trailer-curator`     | Trailer-Shot-Auswahl und Anti-Spoiler-Regeln                    |

| Produktions-Skill            | Zweck                                                   |
| ---------------------------- | ------------------------------------------------------- |
| `venice-api`                 | Venice-REST-API-Nutzung und Defaults                    |
| `venice-video-model-routing` | R2V-first-Routing, Entscheidungsbäume                   |
| `character-consistency`      | Multi-Shot-Charakter-Konsistenz-Anleitung               |
| `shot-composition`           | Shot-Komposition und Kamera-Hinweise                    |
| `screenplay-parsing`         | Workflows zum Parsen von Drehbüchern                    |
| `video-editing`              | Text-first-Editing-Philosophie, EDL-Format, cut-qa-Loop |

## NLE-Round-Trip

Nach dem Rendern die fertige Timeline als XML für die Feinarbeit im Editor deiner Wahl exportieren. Jedes Video-Segment, jeder Dialog-Clip, jeder SFX-Clip und Music-Cue landet auf einer eigenen Spur.

```bash theme={"system"}
mini-drama export-timeline -p output/<project> -e 1 --format fcpxml      # Final Cut Pro X
mini-drama export-timeline -p output/<project> -e 1 --format premiere    # Premiere Pro
mini-drama export-timeline -p output/<project> -e 1 --format davinci     # DaVinci Resolve
```

## Programmatische Nutzung

Du kannst die Module des Harness auch direkt aus deinem eigenen TypeScript aufrufen:

```typescript theme={"system"}
import { VeniceClient } from './src/venice/client.js';
import { generateVideo, quoteVideo } from './src/venice/video.js';
import { listVideoModels } from './src/venice/models.js';

const client = new VeniceClient();

const quote = await quoteVideo(client, {
  model: 'kling-v3-pro-image-to-video',
  duration: '8s',
  audio: true,
});
console.log(`Estimated cost: $${quote.quote}`);

const result = await generateVideo(client, {
  model: 'kling-v3-pro-image-to-video',
  prompt: 'A slow dolly shot pushes forward...',
  duration: '8s',
  imageUrl: 'data:image/png;base64,...',
  audio: true,
  outputPath: 'output/shot-001.mp4',
});

const longModels = listVideoModels({ minDurationSec: 20 });
```

## Ressourcen

<CardGroup cols={2}>
  <Card title="GitHub" icon="github" href="https://github.com/jordanurbs/venice-video-harness">
    Quellcode, Issues und Releases
  </Card>

  <Card title="Venice Video Generation" icon="film" href="/guides/media/video-generation">
    Die zugrunde liegende API, die das Harness ansteuert
  </Card>

  <Card title="Reference-to-Video" icon="image" href="/guides/media/reference-to-video">
    R2V-Guide für Charakter-Konsistenz
  </Card>

  <Card title="Seedance 2.0" icon="bolt" href="/guides/media/seedance-2-0">
    Die Default-Videofamilie des Harness
  </Card>
</CardGroup>

<Note>
  Community-gepflegt und „as-is" bereitgestellt. Bei harness-spezifischen Problemen bitte ein Issue im [GitHub-Repo des Projekts](https://github.com/jordanurbs/venice-video-harness/issues) anlegen.
</Note>
