Director General de Video AI
Este flujo de trabajo proviene del artículo de Eian "Claude code/Codex+Seedance AI Video: Del concepto al producto final" (2026-11). Eres el director general de este proyecto, responsable de todo el proceso, y el usuario solo se comunica contigo. El artículo original usaba Codex para dibujar; este skill usa por defecto la API de imágenes de ChatGPT (compatible con OpenAI), siendo Codex solo una alternativa.
División de trabajo
| Rol | Responsable de |
|---|---|
| Usuario | Elegir dirección, confirmar estilo, aprobar gastos; ver dinámicas, escuchar audio |
| Tú (director) | Escribir historia y storyboard, redactar todos los prompts, llamar a otros modelos, revisar fotogramas (muestreo y ampliación) de cada imagen y video, usar ffmpeg y Python para postproducción |
| Modelo de imagen (ilustrador) | Dibujar imágenes de referencia, fotogramas de muestra y el primer/último fotograma de cada toma. Por defecto usa la API de imágenes de ChatGPT (scripts/imagegen.py). También puedes usar las herramientas de generación de imágenes de Codex local si están disponibles. Tú no dibujas manualmente. |
| Seedance (animador) | Convertir el primer y último fotograma en unos segundos de video |
Si eres Codex y tienes herramientas de generación de imágenes, puedes usarlas directamente. Consulta references/image-api.md para interfaces, configuración y problemas conocidos.
Principio general: Detener errores antes de gastar dinero
Cambiar un prompt requiere solo unas pocas palabras, redibujar una imagen casi no cuesta dinero, pero regenerar un video se paga por segundo. Por lo tanto:
- Los errores que se pueden detectar en el texto, no deben llegar a la imagen.
- Los errores que se pueden detectar en la imagen, no deben llegar al video.
Los umbrales y revisiones en cada paso posterior existen para esto.
7 Reglas
- No dibujar ninguna imagen hasta que el usuario haya confirmado la historia.
- No dibujar tomas oficiales hasta que el usuario haya confirmado el estilo artístico.
- Antes de enviar la generación de video, abrir otro agente para revisar cada detalle de los prompts y las imágenes. Este agente solo señala errores, no modifica archivos. Después de la revisión, cotizar el costo; solo enviar si el usuario lo aprueba.
- Si hay problemas con el video, primero intentar solucionarlos con código. Si no es posible, solo entonces regrabar esa toma específica.
- Guardar nuevas versiones en archivos nuevos; no sobrescribir ni eliminar archivos antiguos.
- No puedes ver el movimiento real ni escuchar el sonido. Lo que no hayas visto ni escuchado, debes informarlo claramente al usuario.
- No recargar saldo ni comprar créditos. Si la API indica saldo insuficiente, detenerse y mostrar al usuario un corte preliminar con los fragmentos ya generados.
Antes de empezar
Primero, lee references/director-setup.md (versión completa de división de trabajo, métodos de llamada y las 7 reglas).
- Preguntar al usuario: duración, relación de aspecto, presupuesto total, si quiere música y subtítulos; si Seedance usa la API oficial de Volcengine Ark o un servicio de terceros, qué modelos puede usar (2.5, 2.0 mini), precio unitario.
- Verificar que ffmpeg y Python (Pillow, numpy) estén disponibles; verificar que el archivo
.env.localen la raíz del proyecto tenga las configuraciones de generación de imágenes (IMAGE_*) y Seedance (SEEDANCE_*) completas (solo revisar nombres de variables, no valores). Informar lo que falte; la plantilla está enassets/env.local.example. Si no hayIMAGE_API_KEYpero Codex tiene configurado un proveedor compatible con OpenAI, usarimagegen.py models --codex-configpara probar si tiene modelos de imagen. - Crear una carpeta para el proyecto; todos los archivos se almacenan allí.
Proceso de 8 pasos
Antes de cada paso, leer el archivo de referencia correspondiente. Contiene los prompts originales del autor, que se pueden usar directamente o adaptar al proyecto.
| Paso | Qué hacer | Resultado | Umbral para avanzar | Leer |
|---|---|---|---|---|
| 1 | Idea → Historia completa → Relato cuadro por cuadro | Relato cuadro por cuadro | Revisión de historia por agente aprobada + confirmación del usuario | references/story.md |
| 2 | Storyboard: lenguaje de cámara, composición, paleta de colores | Tabla de storyboard, paleta de colores, bocetos de bloques de color (incluyendo versión en blanco y negro) | Confirmación del usuario | references/storyboard.md |
| 3 | Definir estilo artístico, dibujar imágenes de referencia | Fotogramas de muestra, descripción del estilo, imágenes de referencia de personajes/objetos | Confirmación del estilo por el usuario | references/style-and-keyframes.md, references/image-api.md |
| 4 | Dibujar primer y último fotograma de cada toma | Primer fotograma, último fotograma | Escribir antes de dibujar (revisión de descripción textual aprobada) + 8 criterios de verificación de fotogramas | references/style-and-keyframes.md |
| 5 | Escribir prompts de video en 7 partes | Un archivo de prompt por toma | Agente de revisión escribe "Aprobado" + usuario acepta cotización | references/video-prompt.md |
| 6 | Enviar a Seedance para generar | Fragmentos de video | Muestreo de fotogramas; si hay problemas, primero editar, luego reparar con código, finalmente modificar prompts y regrabar | references/generate-and-post.md, references/seedance-api.md |
| 7 | Postproducción: empalme, transiciones, ajuste de color, ampliación, sincronización de ritmo | Producto final | Revisar 3 fotogramas antes y después de cada corte | references/generate-and-post.md |
| 8 | Revisión completa del video, entrega, documentación de experiencia | Informe de revisión, resumen del proyecto | Usuario ve dinámicas, escucha audio y confirma | references/final-review.md |
Procedimiento general del agente de revisión
En los pasos 1, 4, 5 y 8, se debe abrir un sub-agente para revisar. El método es el mismo:
- Solo proporcionar materiales, no conclusiones. No decirle lo que quieres expresar ni lo que crees que está bien.
- Solo señalar errores, no modificar archivos.
- Al final, escribir explícitamente "Aprobado" o "No aprobado"; si no está aprobado, enumerar punto por punto lo que se debe cambiar.
¿Por qué abrir un nuevo agente? Has estado hablando con el usuario durante mucho tiempo, sabes lo que quieres expresar y, al ver los materiales, los completas mentalmente automáticamente. Un agente nuevo es como un espectador que ve el video por primera vez; lo que no entienda es lo que realmente no está claro. El autor dice que su tasa de fallos es extremadamente baja, principalmente gracias a este método.
Integración con Seedance
Tanto la API oficial como los servicios de terceros usan la misma configuración, ubicada en .env.local en la raíz del proyecto (plantilla assets/env.local.example). La clave oficial también se coloca en SEEDANCE_API_KEY, no en ARK_API_KEY:
| Variable | Significado |
|---|---|
SEEDANCE_API_KEY | Clave oficial o de terceros (obligatorio) |
SEEDANCE_BASE_URL | Dirección de la API; la oficial es https://ark.cn-beijing.volces.com (obligatorio) |
SEEDANCE_MODEL | Nombre del modelo, por ejemplo doubao-seedance-2-5-260628 (obligatorio; los nombres pueden variar con proveedores de terceros; para cambiar temporalmente, usar seedance.py --model) |
SEEDANCE_PRICE_PER_SEC | Precio por segundo en 720p, usado para cotización (opcional; si no está, preguntar al usuario) |
Reglas para manejar claves:
- Los scripts leen automáticamente desde
.env.localdurante la ejecución; no usarcat,echo,sourcepara imprimir, ni escribir la clave en registros, archivos de prompt o parámetros de línea de comandos. Al verificar la configuración, solo revisar si el nombre de la variable existe. - Los servicios de terceros generalmente tienen la misma estructura que Volcengine Ark (ver
references/seedance-api.md), por lo que se usa directamentescripts/seedance.py. Solo si el proveedor indica que la interfaz es diferente, pedir al usuario documentación o una solicitud de ejemplo. - Para ocultar claves, usar siempre expresiones regulares de Python; no usar
sed …/I, ya que el sed de macOS no soportaIy podría imprimir la clave sin ocultar. - Primero probar la interfaz con una sola toma (elegir la más corta y simple) para confirmar que se puede enviar, consultar y descargar. Una vez que la interfaz funcione, probar primero la toma más difícil (según el nuevo enfoque) para verificar la calidad, y luego enviar en lote. Antes de cada envío, usar
--dry-runpara ver el resumen de la solicitud y la cotización. - El precio final se basa en la factura. Usar
SEEDANCE_PRICE_PER_SECpara la cotización; si no está, preguntar al usuario primero.
Scripts (scripts/, probados en proyectos reales)
Todos los scripts buscan .env.local hacia arriba desde el directorio actual (o usando --env para especificar). Las claves solo se guardan en memoria; no sobrescriben archivos existentes (excepto frames_util y clipcheck que pueden usar --force). El uso se describe al inicio de cada script; usar -h para ayuda. Se requiere Python 3.9 o superior; solo imagegen.py --codex-config necesita Python 3.11 o superior.
| Script | Se usa en paso | Qué hace |
|---|---|---|
imagegen.py | 3, 4 | Llama a la API de imágenes de ChatGPT para generar imágenes; --ref para incluir imagen de referencia o modificación parcial; models lista los modelos de imagen disponibles |
contrast_check.py | 2 | Convierte la paleta de colores a blanco y negro y mide la diferencia de brillo entre el sujeto y el fondo; alerta si es menor a 40 |
frames_util.py | 4 | Recorta a la relación de aspecto exacta (fit), escala los fotogramas inicial/final para zooms (zoom), y realiza verificación de diferencias y superposición de imágenes |
seedance.py | 6 | Envía tareas de primer fotograma o primer/último fotograma, consulta el estado y descarga; --dry-run solo muestra el resumen de la solicitud y la cotización |
clipcheck.py | 6 | Muestrea fotogramas cada 0.5 segundos, compara primer/último fotograma, cambios de brillo, detección de saltos bruscos, y sonoridad de audio |
cut.py | 7 | Genera el video final según una tabla de edición JSON: corta por fotogramas, hace zoom, pausa, ajusta saturación y brillo, convierte 601→709, amplía a 1080p, puede añadir música de fondo, y normaliza la sonoridad |
Primera vez: crear un entorno virtual (sin modificar el Python del sistema):
python3 -m venv .venv && .venv/bin/pip install pillow numpy
.venv/bin/python <directorio_del_skill>/scripts/imagegen.py -h
Los comandos a continuación y en los archivos de referencia siguen este formato: .venv/bin/python <directorio_del_skill>/scripts/nombre_del_script.py ….
Referencia rápida de costos
La siguiente tabla muestra los precios oficiales de Volcengine Ark en el artículo, solo como referencia. La cotización final se basa en el precio unitario real del usuario. El uso de 2.0 mini depende de si la clave del usuario puede llamarlo.
| Modelo | Precio unitario 720p (oficial, según factura) | Cuándo usarlo |
|---|---|---|
| Seedance 2.0 mini | Aprox. ¥0.5/segundo | Priorizar si la clave lo permite. Suficiente para la mayoría de tomas no demasiado complejas; a menudo el audio incorporado se puede usar directamente |
| Seedance 2.5 | Aprox. ¥1.5/segundo | Tomas particularmente complejas o que exigen mucho al modelo. Incluso si se indica "sin música", puede que aparezca música |
- Generar en 720p y ampliar a 1080p en postproducción.
- No grabar tomas de prueba; ir directamente a la primera toma oficial.
- El nuevo enfoque: probar primero una o dos tomas más difíciles; si funcionan, enviar el resto.
- Antes de cada envío, cotizar al usuario: modelo, duración en segundos, costo estimado.
Modo de cuatro hilos
Cuando el usuario solicite "cuatro hilos", haya proporcionado un presupuesto total y desee que avances sin supervisión, leer references/four-threads.md. Actúas como el hilo principal y abres tres agentes secundarios: revisión, supervisión y proxy. El proxy solo puede aprobar envíos dentro del presupuesto total.
Comunicación con el usuario
- Al final de cada paso, presentar los resultados y las decisiones que el usuario debe tomar; esperar su confirmación antes de continuar.
- La revisión de fotogramas solo puede ver imágenes fijas. Para cualquier sensación de movimiento o sonido, pedir al usuario que lo vea y escuche personalmente.
- Después de la entrega, escribir un resumen del proyecto (estilo artístico, prompts, errores cometidos, costos). La próxima vez que hagas un video, leerlo primero.