¿Qué hace AI Video Studio?
Flujo de trabajo integral de video con IA: generación con Seedance 2.0 + edición con CapCut Mate + exportación en la nube.
Capacidades principales
- Generación de clips de video con IA — Genera videos de 5/8/11 segundos usando Seedance 2.0 a partir de indicaciones de texto o imagen.
- Edición y composición automáticas — Unión de múltiples clips, superposición de subtítulos, efectos de transición y música de fondo.
- Exportación en la nube — Generación del MP4 final.
Generación de video escenificado con un solo comando (NUEVO — pipeline huobao de cuatro capas)
El subcomando drama encapsula la cadena completa «guion → personajes/escenas → storyboard → renderizado», ejecutada por Sonnet + asesor Opus que selecciona autónomamente plantillas narrativas (problema-giro-solución / montaje de escenas / dramatización narrativa / híbrida). Metodología basada en reference/huobao/ (CC BY-NC-SA 4.0).
Video promocional de producto (un solo comando)
python3 ~/.openclaw/workspace/skills/ai-video-studio/scripts/studio.py drama \
--mode product \
--idea "Termo inteligente, el día de un oficinista de élite" \
--scenario "Trote matutino/metro/oficina/horas extra" \
--highlights "12 horas de aislamiento, acero inoxidable de grado aeronáutico, control de temperatura con un clic" \
--shots 6 --duration 5 --ratio 9:16 --lang es --run
Miniserie corta (un solo comando)
python3 ~/.openclaw/workspace/skills/ai-video-studio/scripts/studio.py drama \
--mode shortdrama \
--idea "Encuentro casual con un ex en una cafetería, una frase revela un malentendido de tres años" \
--shots 6 --duration 8 --ratio 9:16 --lang es --run
Parámetros
| Parámetro | Descripción |
|---|---|
--mode | product promoción de producto escenificada / shortdrama miniserie corta |
--idea | Idea central o descripción del producto en una frase |
--scenario | Restricciones de escenario de uso/historia (opcional), el asesor compone en torno a ello |
--highlights | Lista de puntos clave de venta en modo product (el asesor los integra naturalmente en la narrativa, sin publicidad directa) |
--shots | Número de tomas, por defecto 6 |
--duration | Duración por toma: 5/8/11 segundos, por defecto 5 |
--ratio | Relación de aspecto, para video vertical se recomienda 9:16 |
--advisor-calls | Límite de consultas al asesor Opus, por defecto 3 |
--run | Si se incluye, ejecuta inmediatamente la generación Seedance + renderizado FFmpeg; si no, solo produce el JSON del storyboard |
Salida: Archivo JSON del storyboard (con characters / scenes / shots / narrative_template / logline) guardado en $MEDIA_DIR/drama-<mode>-<ts>.json; con --run continúa el pipeline hasta producir el MP4 final.
Flujo de trabajo completo (nivel inferior)
Cuatro perfiles de entrega y renderizadores externos
python3 ~/.openclaw/workspace/skills/ai-video-studio/scripts/studio.py profiles
python3 ~/.openclaw/workspace/skills/ai-video-studio/scripts/studio.py profiles paibao_private
Perfiles integrados: automotive_export, paibao_private, haitun_public, personal_ip. Los storyboards pueden usar explícitamente renderer: video_use|hyperframes|remotion para integrar edición de metraje real, animaciones HTML/GSAP o plantillas parametrizadas en React; el perfil no selecciona automáticamente renderizadores que dependan de directorios EDL/proyecto.
video_use requiere edl, y tanto output como edl.json deben estar en el mismo directorio edit/; hyperframes requiere project_dir; remotion requiere project_dir, entry_point y composition_id. Ambos tipos de proyectos Node deben usar package-lock.json para fijar la CLI local del proyecto y ejecutar primero npm ci; la fase de renderizado no instalará paquetes en línea. Los renderizadores externos solo se pueden ejecutar explícitamente desde la CLI local del pipeline; la ruta desde servidor/LLM está desactivada por defecto.
paibao_private prohíbe la quema de subtítulos desde el storyboard para todos los renderizadores: primero genera un máster de edición sin subtítulos, luego lo entrega a paibao-course-publisher para completar ASS, extracción de fotogramas, hash y control de acceso de publicación.
Generación con un solo clic: del storyboard al producto final
Crea un archivo JSON de storyboard y luego invoca el pipeline:
# Crear storyboard
cat > /tmp/storyboard.json << 'EOF'
{
"title": "Anuncio de producto",
"ratio": "16:9",
"shots": [
{"prompt": "Un smartphone moderno flotando en el espacio con partículas doradas a su alrededor, iluminación cinematográfica", "duration": 5, "caption": "Diseño renovado, futuro al alcance"},
{"prompt": "Manos sosteniendo un smartphone con elementos holográficos de interfaz emergiendo de la pantalla", "duration": 5, "caption": "Inteligencia al alcance de tu mano"},
{"prompt": "Cámara lenta de una salpicadura de agua que revela un smartphone, iluminación dramática", "duration": 5, "caption": "Nuevo estándar de resistencia al agua"}
],
"bgm_url": null
}
EOF
# Ejecutar el flujo completo
python3 ~/.openclaw/workspace/skills/ai-video-studio/scripts/studio.py pipeline /tmp/storyboard.json
Salida: Ruta del archivo de video final (ej. /root/.openclaw/media/studio-xxx.mp4)
Descripción de campos del storyboard
| Campo | Tipo | Descripción |
|---|---|---|
title | string | Nombre del proyecto |
ratio | string | Relación de aspecto: 16:9, 9:16, 1:1 |
shots[].prompt | string | Indicación para generación Seedance (se recomienda en inglés para mejores resultados) |
shots[].duration | int | Duración por toma: 5, 8 u 11 segundos |
shots[].caption | string | Texto del subtítulo (dejar vacío para omitir subtítulos) |
shots[].ref_image | string? | URL opcional de imagen de referencia |
bgm_url | string? | URL opcional de música de fondo |
Uso por pasos (combinación flexible)
Paso 1: Generar un clip de video individual
python3 ~/.openclaw/workspace/skills/ai-video-studio/scripts/studio.py generate \
--prompt "Un gato naranja bostezando bajo el sol" \
--ratio 16:9 \
--duration 5
Devuelve: Ruta del archivo de video
Paso 2: Componer múltiples clips
python3 ~/.openclaw/workspace/skills/ai-video-studio/scripts/studio.py compose \
--videos /root/.openclaw/media/clip1.mp4,/root/.openclaw/media/clip2.mp4 \
--captions "Primera escena,Segunda escena" \
--ratio 16:9
Devuelve: URL del borrador + ruta del video exportado
Paso 3: Editar un video existente solo con CapCut Mate
python3 ~/.openclaw/workspace/skills/ai-video-studio/scripts/studio.py compose \
--videos https://example.com/v1.mp4,https://example.com/v2.mp4 \
--captions "Inicio,Final" \
--bgm https://example.com/music.mp3 \
--ratio 9:16
Modo de salida directa FFmpeg (recomendado, predeterminado)
El comando pipeline utiliza por defecto FFmpeg para generar el MP4 directamente en el servidor, sin depender del cliente de CapCut.
Solo renderizar (saltar Seedance, usar clips existentes)
python3 ~/.openclaw/workspace/skills/ai-video-studio/scripts/studio.py render \
--videos clip1.mp4,clip2.mp4 \
--captions "Primera escena,Segunda escena" \
--bgm https://example.com/music.mp3 \
--ratio 16:9 --title miproyecto
Devuelve: Ruta del archivo mp4 final
Capacidades de renderizado FFmpeg
- Unión de múltiples clips (normalización automática de resolución)
- Quemado de subtítulos SRT (texto blanco con borde negro, centrado en la parte inferior)
- Mezcla de BGM (audio original al 100 % + BGM al 30 %)
- Codificación H.264 + AAC, renderizado en segundos
Pipeline predeterminado con FFmpeg
El renderizador del storyboard JSON es FFmpeg por defecto; si se establece en capcut, cambia al modo de borrador de CapCut.
Notas importantes
- La generación de video Seedance normalmente toma de 3 a 10 minutos por clip; los clips múltiples se envían en paralelo.
- El renderizado en la nube requiere una clave API de CapCut (configurada mediante la variable de entorno
CAPCUT_API_KEY). - Sin la clave de renderizado en la nube, aún se pueden generar archivos de borrador y exportarlos manualmente con el cliente de CapCut.
- Directorio de salida de video:
/root/.openclaw/media/ - Se recomiendan indicaciones en chino para Seedance para obtener mejores resultados.
Variables de entorno
| Variable | Uso | Valor predeterminado |
|---|---|---|
SEEDANCE_API_KEY | API de Seedance (Doubao) | Fallback integrado |
CAPCUT_MATE_URL | Dirección del servicio CapCut Mate | http://127.0.0.1:30000 |
CAPCUT_API_KEY | Clave de renderizado en la nube de CapCut (opcional) | Ninguno |