Passer au contenu principal
Le Venice Video Harness est une boîte à outils communautaire, agent-first et optimisée pour Venice, conçue pour la création vidéo à cohérence prioritaire, de n’importe quelle durée. Elle transforme un agent IDE (Claude Code, Cursor, Codex, etc.) en opérateur d’un système de production Venice réutilisable couvrant plus de 50 modèles Venice vidéo, image, audio et musique.

GitHub : venice-video-harness

Licence MIT. Maintenu par la communauté.

Vidéo à personnage cohérent

Verrouillez personnages, voix et esthétique sur toute une série

Du storyboard à la vidéo

Génération de planches en deux passes avec affinage multi-edit Venice

Montage text-first

Transcrivez localement avec whisper.cpp, coupez à partir d’un pack de 12 Ko, auto-évaluation à chaque coupe

De quoi s’agit-il

La plupart des intégrations Venice sont de fines surcouches autour des appels API. Le Venice Video Harness est la couche de plus haut niveau qui se place entre votre agent et l’API Venice :
  • Règles d’orchestration dans CLAUDE.md
  • Playbooks réutilisables dans .claude/commands/ (19 commandes de workflow)
  • Agents spécialisés dans .claude/agents/ (art-director, prompt-engineer, cut-qa, et plus)
  • Skills de production Venice dans .claude/skills/ (compatibles avec le format Agent Skills)
  • Couche d’exécution TypeScript dans src/
  • Registre de modèles exhaustif couvrant plus de 50 modèles Venice vidéo, image, audio et musique
Conçu pour les créateurs qui produisent :
  • Des projets vidéo à personnages cohérents (tout genre, toute durée)
  • Des séries ou campagnes à style visuel verrouillé
  • Des workflows storyboard-vers-vidéo
  • Du contenu narratif court et long format
  • Des séquences cinématiques de marque, des bandes-annonces et des teasers
  • Des séries sociales à personnages récurrents

Démarrage

Prérequis

Node.js 20+

Dernière LTS recommandée

ffmpeg + ffprobe

Dans votre PATH

Clé API Venice

Optionnel, pour le pipeline de montage : installez whisper-cpp pour la transcription locale.
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

Installation

1

Cloner le harness

git clone https://github.com/jordanurbs/venice-video-harness.git
cd venice-video-harness
2

Configurer votre clé API

cp .env.example .env
# Ajoutez VENICE_API_KEY à .env
3

Installer et build

npm install
npm run build
4

Ouvrir dans votre agent

Ouvrez le projet dans Cursor, Claude Code ou tout IDE doté d’un chat agentique. L’agent lit automatiquement CLAUDE.md et les playbooks.Essayez l’un de ces premiers messages :
  • « 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 »

Ce qui est optimisé pour Venice

  • Prompts d’image accordés pour les modèles d’image Venice comme seedream-v5-lite, nano-banana-pro, flux-2-pro/max, et plus
  • Génération de planches en deux passes avec affinage multi-edit Venice pour la correction de personnages
  • Logique de routage de modèles pour les tiers action, atmosphère et cohérence de personnage
  • Génération vidéo référence-aware qui utilise elements, reference_image_urls et scene_image_urls correctement par modèle
  • Adaptation de prompt selon l’environnement pour le traitement des scènes diurnes vs nocturnes
  • Chemins audio natifs Venice pour la TTS (Kokoro, Qwen3, ElevenLabs), les SFX et la musique
  • Estimation des coûts avant génération via /video/quote et /audio/quote
  • Construction de paramètres model-aware qui ignore automatiquement les paramètres que le modèle cible ne prend pas en charge

Valeurs par défaut du routage de modèles

Les défauts du harness sont assumés parce que la cohérence est le but. Le routage actuel (avril 2026) : Seedance 2.0 R2V par défaut. Kling O3 R2V en fallback pour les scènes à 3 personnages ou plus. Seedance 2.0 i2v pour les plans d’établissement.
RôleModèle par défautQuand utilisé
Plans de personnage (1-2 personnages)seedance-2-0-reference-to-videoR2V par défaut avec reference_image_urls plats, tags @Image, jusqu’à 15 s, audio stéréo natif
Plans de personnage (3+ personnages)kling-o3-standard-reference-to-videoFallback automatique avec elements structurés pour l’identité multi-personnages
Plan d’établissement / d’ambiance / d’actionseedance-2-0-image-to-videoPas de personnages ; qualité cinématique épique, jusqu’à 15 s
Ces valeurs sont remplaçables par projet via series.json → videoDefaults. Pour cibler une famille non-Seedance (par ex. des comptes qui n’ont pas accès à Seedance), définissez videoDefaults à kling-o3-standard-reference-to-video et veo3.1-fast-image-to-video.
Règle de visage Seedance : Seedance 2.0 bloque les images d’entrée comportant un visage qui n’ont pas été produites par seedream-v5-lite ou seedream-v5-lite-edit. Le harness gère cela automatiquement en faisant passer tout travail d’image comportant un personnage par Seedream et en exécutant une porte de pré-vol avant chaque appel Seedance.

Modèles Venice pris en charge

Vidéo (avril 2026)

Famillei2vt2vDurée maxAudioNotes
Seedance 2.0i2v, R2Vt2v15 sOui (stéréo, lip-sync 8+ langues)Classée #1. R2V : reference_image_urls plats, tags @Image.
Kling V3Pro, StandardPro, Standard15 sOuiend_image_url pour cibler une frame
Kling O3Pro, Std, Pro R2V, Std R2VPro, Standard15 sOuiR2V : elements, reference_image_urls, scene_image_urls
Kling 2.6 / 2.5 TurboProPro10 s2.6 : Oui / 2.5 : Nonend_image_url
Veo 3.1Fast, FullFast, Full8 sOuiJusqu’à 4K
Sora 2Standard, ProStandard, Pro12 sOuiJusqu’à 1080p
Wan 2.6 / 2.5Std, Flash / OuiStd / Oui15 s / 10 sOuiEntrée audio_url
LTX Video 2.0Fast, Full, v2.3, 19BFast, Full, v2.3, 19B20 sOuiJusqu’à 4K, plus longue synchronisée
LongcatStd, DistilledStd, Distilled30 sNonPlus long en plan unique
Vidu Q3OuiOui16 sOuireference_image_urls
PixVerse v5.6Std, TransitionStandard8 sOuiTransition : end_image_url
Grok ImagineOuiOui15 sOuiPrise en charge des ratios larges

Image, audio et musique

  • Image (22+ modèles) : 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, et plus
  • Multi-edit : qwen-edit, flux-2-max-edit, nano-banana-pro-edit, seedream-v5-lite-edit, gpt-image-2-edit, et plus
  • TTS : tts-kokoro (50+ voix), tts-qwen3-0-6b/1-7b, elevenlabs-tts-v3, elevenlabs-tts-multilingual-v2
  • Musique : elevenlabs-music, minimax-music-v2, ace-step-15, stable-audio-25
  • SFX : elevenlabs-sound-effects-v2, mmaudio-v2-text-to-audio

Pipelines de production

Pipeline de génération

Vidéo narrative de bout en bout (script → storyboard → vidéo → audio → assemblage) :
npm run dev -- produce-episode -p output/my-series -e 1
L’implémentation de référence dans src/mini-drama/ couvre :
  • Gestion des séries / personnages / épisodes
  • Mise en forme de script propulsée par LLM
  • Génération de storyboard en deux passes (générer + affiner via multi-edit)
  • QA de planches basée sur la vision
  • Génération vidéo avec chaînage de frames
  • Post-production audio en couches
  • Incrustation des sous-titres et assemblage final

Pipeline de montage

Coupez des médias existants (plans générés par Venice ou vrais rushs). Text-first : le LLM lit un takes_packed.md compact (~12 Ko pour 40 min d’audio) plutôt que de dumper des frames vidéo. Les cinq étapes :
1

Transcrire

whisper.cpp local produit par source *.words.json + takes_packed.md.
2

Lire le pack

Le LLM forme une stratégie de coupe à partir du texte seul.
3

Confirmer

Propose la stratégie et attend « yes / revise / cancel ».
4

Rendre l'EDL

Cut list JSON → concat ffmpeg avec des fondus audio de 30 ms. Archive-first, donc les originaux ne sont jamais écrasés.
5

Auto-évaluation

L’agent cut-qa exécute 6 vérifications programmatiques à chaque limite de coupe ; max 3 itérations de correction.
Les vérifications cut-qa repèrent les régressions de ratio, les sauts de hash de frame à l’intérieur d’un mot, la troncature de VO, la discontinuité de lumière, les pics audio au-dessus de -6 dBFS et le chevauchement des sous-titres avec du texte dans l’image.
Le pipeline de montage est inspiré de browser-use/video-use. Leur intuition clé, « le LLM ne regarde jamais la vidéo, il la lit », est ce qui rend le montage piloté par agent possible sans noyer le tout dans des tokens de frame-dump.

Commandes, agents et skills

Le harness expose 19 commandes de workflow, 10 agents spécialisés et 7 skills de production. Faits marquants :
Commande de workflowObjectif
new-seriesCréer une nouvelle série avec esthétique verrouillée
add-character / lock-characterVerrouillage personnage + voix
workshop-episodeÉcriture collaborative d’un épisode
storyboard-episodeStoryboarder un épisode
produce-episodePipeline complet en une commande
generate-trailerPipeline complet de bande-annonce
edit-footagePipeline de montage text-first pour les médias existants
ingest-screenplayIngérer un scénario Fountain ou PDF
Agent spécialiséRôle
art-directorDécisions esthétique, palette, lumière, composition
prompt-engineerPrompts d’image Venice, cohérence des personnages
storyboard-qaQA de planches pour la continuité et les vérifications de personnages
cut-qaPorte qualité post-rendu (6 checks par coupe, max 3 itérations)
overlay-designerMotion graphics de marque, sous-agents parallèles
trailer-curatorSélection des plans de bande-annonce et règles anti-spoiler
Skill de productionObjectif
venice-apiUtilisation et défauts de l’API REST Venice
venice-video-model-routingRoutage R2V-first, arbres de décision
character-consistencyGuidance pour la cohérence des personnages multi-plans
shot-compositionGuidance de composition et de caméra
screenplay-parsingWorkflows de parsing de scénario
video-editingPhilosophie text-first du montage, format EDL, boucle cut-qa

Aller-retour NLE

Après le rendu, exportez la timeline assemblée en XML pour un peaufinage dans votre éditeur de prédilection. Chaque segment vidéo, clip de dialogue, clip SFX et cue musical atterrit sur sa propre piste.
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

Usage programmatique

Vous pouvez aussi appeler les modules du harness directement depuis votre propre TypeScript :
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 });

Ressources

GitHub

Code source, issues et releases

Génération vidéo Venice

L’API sous-jacente que le harness pilote

Reference-to-Video

Guide R2V pour la cohérence des personnages

Seedance 2.0

La famille vidéo par défaut du harness
Maintenu par la communauté et fourni en l’état. Pour les problèmes spécifiques au harness, ouvrez une issue sur le dépôt GitHub du projet.