Saltar al contenido principal
El Venice Video Harness es un toolkit comunitario, agent-first y optimizado para Venice para creación de vídeo consistente de cualquier duración. Convierte un agente de IDE (Claude Code, Cursor, Codex, etc.) en operador de un sistema de producción Venice reutilizable que cubre más de 50 modelos de vídeo, imagen, audio y música de Venice.

GitHub: venice-video-harness

Licencia MIT. Mantenido por la comunidad.

Vídeo con personajes consistentes

Bloquea personajes, voces y estética en toda una serie

De storyboard a vídeo

Generación de paneles en dos pasadas con refinamiento multi-edit de Venice

Edición text-first

Transcribe en local con whisper.cpp, corta desde un pack de 12 KB, self-eval en cada límite

Qué es esto

La mayoría de integraciones de Venice son envoltorios finos sobre llamadas a la API. El Venice Video Harness es la capa de más alto nivel que se sitúa entre tu agente y la API de Venice:
  • Reglas de orquestación en CLAUDE.md
  • Playbooks reutilizables en .claude/commands/ (19 comandos de flujo de trabajo)
  • Agentes especializados en .claude/agents/ (art-director, prompt-engineer, cut-qa y más)
  • Skills de producción de Venice en .claude/skills/ (compatibles con el formato Agent Skills)
  • Capa de ejecución en TypeScript en src/
  • Registro de modelos completo que cubre más de 50 modelos de vídeo, imagen, audio y música de Venice
Construido para creadores que producen:
  • Proyectos de vídeo con personajes consistentes (cualquier género, cualquier duración)
  • Series o campañas con estilo visual bloqueado
  • Flujos de trabajo de storyboard a vídeo
  • Contenido narrativo de corta y larga duración
  • Secuencias cinematográficas de marca, tráileres y teasers
  • Series sociales con personajes recurrentes

Empezar

Requisitos

Node.js 20+

Se recomienda la última LTS

ffmpeg + ffprobe

En tu PATH

API key de Venice

Opcional, para la pipeline de edición: instala whisper-cpp para transcripción local.
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

Configuración

1

Clona el harness

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

Configura tu API key

cp .env.example .env
# Añade VENICE_API_KEY a .env
3

Instala y compila

npm install
npm run build
4

Ábrelo en tu agente

Abre el proyecto en Cursor, Claude Code o cualquier IDE con chat agéntico. El agente lee CLAUDE.md y los playbooks automáticamente.Prueba uno de estos primeros mensajes:
  • “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”

Qué tiene de optimizado para Venice

  • Prompts de imagen afinados para los modelos de imagen de Venice como seedream-v5-lite, nano-banana-pro, flux-2-pro/max y más
  • Generación de paneles en dos pasadas con refinamiento multi-edit de Venice para corrección de personajes
  • Lógica de enrutamiento de modelos para niveles de acción, atmósfera y consistencia de personajes
  • Generación de vídeo consciente de referencias que usa elements, reference_image_urls y scene_image_urls correctamente por modelo
  • Adaptación de prompts consciente del entorno para manejo de escenas de día vs noche
  • Rutas de audio nativas de Venice para TTS (Kokoro, Qwen3, ElevenLabs), SFX y música
  • Estimación de coste antes de generar mediante /video/quote y /audio/quote
  • Construcción de parámetros consciente del modelo que omite automáticamente los parámetros que el modelo de destino no admite

Defaults de enrutamiento de modelos

Los defaults del harness son opinionados porque la consistencia es lo importante. El enrutamiento actual (abril de 2026): Seedance 2.0 R2V por defecto. Fallback a Kling O3 R2V para escenas con 3+ personajes. Seedance 2.0 i2v para tomas de establecimiento.
RolModelo predeterminadoCuándo se usa
Tomas de personaje (1-2 personajes)seedance-2-0-reference-to-videoR2V por defecto con reference_image_urls planos, etiquetas @Image, hasta 15s, audio estéreo nativo
Tomas de personaje (3+ personajes)kling-o3-standard-reference-to-videoFallback automático con elements estructurados para identidad multi-personaje
Establecimiento / atmósfera / acciónseedance-2-0-image-to-videoSin personajes; calidad cinematográfica épica, hasta 15s
Estos son sobrescribibles por proyecto vía series.json → videoDefaults. Para apuntar a una familia que no sea Seedance (p. ej., cuentas sin acceso a Seedance), establece videoDefaults en kling-o3-standard-reference-to-video y veo3.1-fast-image-to-video.
Regla de rostros de Seedance: Seedance 2.0 bloquea las imágenes de entrada con rostros que no hayan sido producidas por seedream-v5-lite o seedream-v5-lite-edit. El harness lo gestiona automáticamente enrutando el trabajo de imagen con personajes a través de Seedream y ejecutando un control previo antes de cada llamada a Seedance.

Modelos de Venice admitidos

Vídeo (abril de 2026)

Familiai2vt2vDuración máx.AudioNotas
Seedance 2.0i2v, R2Vt2v15sSí (estéreo, lip-sync en 8+ idiomas)Nº 1 en ranking. R2V: reference_image_urls plano, etiquetas @Image.
Kling V3Pro, StandardPro, Standard15send_image_url para apuntar a frames
Kling O3Pro, Std, Pro R2V, Std R2VPro, Standard15sR2V: elements, reference_image_urls, scene_image_urls
Kling 2.6 / 2.5 TurboProPro10s2.6: Sí / 2.5: Noend_image_url
Veo 3.1Fast, FullFast, Full8sHasta resolución 4K
Sora 2Standard, ProStandard, Pro12sHasta 1080p
Wan 2.6 / 2.5Std, Flash / SíStd / Sí15s / 10sEntrada audio_url
LTX Video 2.0Fast, Full, v2.3, 19BFast, Full, v2.3, 19B20sHasta 4K, el más largo sincronizado
LongcatStd, DistilledStd, Distilled30sNoToma única más larga
Vidu Q316sreference_image_urls
PixVerse v5.6Std, TransitionStandard8sTransition: end_image_url
Grok Imagine15sSoporte amplio de aspect ratio

Imagen, audio y música

  • Imagen (22+ modelos): 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 y más
  • Multi-edit: qwen-edit, flux-2-max-edit, nano-banana-pro-edit, seedream-v5-lite-edit, gpt-image-2-edit y más
  • TTS: tts-kokoro (50+ voces), tts-qwen3-0-6b/1-7b, elevenlabs-tts-v3, elevenlabs-tts-multilingual-v2
  • Música: elevenlabs-music, minimax-music-v2, ace-step-15, stable-audio-25
  • SFX: elevenlabs-sound-effects-v2, mmaudio-v2-text-to-audio

Pipelines de producción

Pipeline de generación

Vídeo narrativo de extremo a extremo (guion → storyboard → vídeo → audio → ensamblaje):
npm run dev -- produce-episode -p output/my-series -e 1
La implementación de referencia en src/mini-drama/ cubre:
  • Gestión de series / personajes / episodios
  • Workshopping de guion impulsado por LLM
  • Generación de storyboard en dos pasadas (generar + refinar con multi-edit)
  • QA de paneles basada en visión
  • Generación de vídeo con encadenamiento de frames
  • Post-producción de audio por capas
  • Burn-in de subtítulos y ensamblaje final

Pipeline de edición

Corta medios ya existentes (tomas generadas con Venice o metraje real). Text-first: el LLM lee un takes_packed.md compacto (~12 KB por 40 min de audio) en lugar de hacer dump de frames del vídeo. Los cinco pasos:
1

Transcribe

whisper.cpp local produce un *.words.json por fuente + takes_packed.md.
2

Lee el pack

El LLM forma una estrategia de corte solo a partir del texto.
3

Confirma

Propone la estrategia y espera “yes / revise / cancel”.
4

Renderiza el EDL

Lista de cortes JSON → concat de ffmpeg con fades de audio de 30 ms. Archive-first, los originales nunca se sobrescriben.
5

Self-eval

El agente cut-qa ejecuta 6 comprobaciones programáticas en cada límite de corte; máximo 3 iteraciones de corrección.
Las comprobaciones de cut-qa detectan regresiones de aspect-ratio, saltos de hash de frame dentro de una palabra, truncamientos de VO, discontinuidad de iluminación, picos de audio por encima de -6 dBFS y solapamiento de subtítulos con texto en pantalla.
La pipeline de edición está inspirada en browser-use/video-use. Su insight central, “el LLM nunca ve el vídeo, lo lee”, es lo que hace que la edición conducida por agentes funcione sin ahogarse en tokens de dump de frames.

Comandos, agentes y skills

El harness expone 19 comandos de flujo de trabajo, 10 agentes especializados y 7 skills de producción. Aspectos destacados:
Comando de workflowPropósito
new-seriesCrea una nueva serie con estética bloqueada
add-character / lock-characterBloqueo de personaje + voz
workshop-episodeGuion de episodio colaborativo
storyboard-episodeStoryboard de un episodio
produce-episodePipeline completa en un comando
generate-trailerPipeline completa de tráiler
edit-footagePipeline de edición text-first para medios existentes
ingest-screenplayIngesta de un guion Fountain o PDF
Agente especializadoRol
art-directorDecisiones de estética, paleta, iluminación y composición
prompt-engineerPrompts de imagen de Venice, consistencia de personajes
storyboard-qaQA de paneles para continuidad y comprobaciones de personajes
cut-qaFiltro de calidad post-render (6 comprobaciones por corte, máx. 3 iteraciones)
overlay-designerGráficos animados de marca, sub-agentes en paralelo
trailer-curatorSelección de tomas del tráiler y reglas anti-spoiler
Skill de producciónPropósito
venice-apiUso y defaults de la API REST de Venice
venice-video-model-routingEnrutamiento R2V-first, árboles de decisión
character-consistencyGuía de consistencia de personajes multi-toma
shot-compositionComposición de toma y guía de cámara
screenplay-parsingFlujos de parseo de guion
video-editingFilosofía de edición text-first, formato EDL, bucle cut-qa

Round-trip con NLE

Tras renderizar, exporta el timeline ensamblado como XML para ajustes finos en tu editor preferido. Cada segmento de vídeo, clip de diálogo, clip de SFX y entrada de música cae en su propia pista.
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

Uso programático

También puedes llamar a los módulos del harness directamente desde tu propio 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 });

Recursos

GitHub

Código fuente, issues y releases

Generación de vídeo de Venice

La API subyacente que controla el harness

Reference-to-Video

Guía de R2V para consistencia de personajes

Seedance 2.0

La familia de vídeo predeterminada del harness
Mantenido por la comunidad y proporcionado tal cual. Para problemas específicos del harness, ábrelos en el repositorio de GitHub del proyecto.