¿Qué hace Explicadores de B-Roll en Collage?
Comprime una línea de voz de ~5 segundos en una idea visual nítida, luego conviértela en una animación de ensamblaje de collage de papel editorial de primera calidad.
Canalización predeterminada:
- Diseña la metáfora visual únicamente y luego espera a que el usuario la confirme.
- Genera el fotograma fijo final solo y luego espera a que el usuario lo confirme.
- Genera automáticamente el video con referencias del primer/último fotograma y realiza el control de calidad.
- Opcionalmente genera una locución a medida y la multiplexa.
Las dos puertas de confirmación son parte del flujo de trabajo, no una sobrecarga. Permiten que el usuario enfoque su atención en la estética y la dirección, y evitan que una metáfora o un fotograma incorrecto consuman el costo de generación de video.
Requisitos de tiempo de ejecución
- MCP de MaxFusion conectado y autenticado (
https://mcp.maxfusion.ai/mcp). Toda la generación de imágenes, video y voz se realiza a través de él. Si no está conectado, detente y guía al usuario para que lo conecte antes de hacer cualquier otra cosa. - Acceso a archivos locales y ffmpeg (por ejemplo, Claude Code): la preparación de fotogramas, el control de calidad del video, la entrega silenciosa y el ajuste de la locución requieren descargar activos y procesarlos localmente. Un agente en un entorno limitado (sin descargas locales) aún puede ejecutar las tres puertas y mostrar los resultados en el widget de MaxFusion, pero debe informar al usuario que la preparación de fotogramas se basa solo en la coincidencia de colores por prompt, y que se omitieron el control de calidad fotograma a fotograma, la eliminación de audio y el ajuste de la locución; el usuario debe juzgar el clip visualmente y silenciarlo en su editor.
Protocolo de aprobación obligatorio
Puerta 1: Confirmación de la metáfora
Cuando recibas la(s) línea(s) del guion, primero propón metáforas visuales. No generes ninguna imagen, no generes ningún video, no llames a ninguna herramienta de generación.
Entrega, para cada línea:
- Significado central
- Emoción
- Propuesta visual de una oración
- 3–6 objetos clave
- Color de fondo sugerido y colores de acento locales
- Orden de ensamblaje previsto
Luego detente explícitamente y espera a que el usuario responda "aprobado", "todo aprobado" o dé notas de revisión por elemento.
Si el usuario aprueba solo algunos de los elementos numerados, solo los elementos aprobados avanzan a la Puerta 2; sigue iterando sobre las metáforas para el resto.
Puerta 2: Confirmación del fotograma fijo
Solo después de que la metáfora esté confirmada, escribe la especificación visual y el prompt de la imagen, y genera el fotograma fijo final con maxfusion_generate_image.
Guarda los originales en el directorio del proyecto, crea una hoja de contactos de fotogramas fijos numerados, muestra cada fotograma fijo al usuario (maxfusion_display_generation, una llamada por imagen, más el mapeo numerado), y detente de nuevo. En esta etapa, aún no generes ningún video.
Si el usuario aprueba solo algunos fotogramas fijos, solo los elementos aprobados avanzan a la Puerta 3; primero regenera los fotogramas fijos rechazados y vuelve a confirmarlos.
Puerta 3: Generación de video
Una vez que los fotogramas fijos estén confirmados, genera inmediatamente. El modelo de video está bloqueado:
video_model: gemini-omni-flash
Nunca se utiliza ningún otro modelo de video. No ofrezcas una elección de modelo, no preguntes al usuario qué modelo usar, no recurras a nada más si falla: aplica el manual de reparación y vuelve a ejecutar en gemini-omni-flash.
Criterios de éxito
- Una línea expresa exactamente una metáfora clara
- Un lote comparte un lenguaje de diseño, pero no está forzado a un solo fondo azul
- El fondo es un campo de color fuerte, plano y uniforme, variado según el significado
- Los sujetos se construyen a partir de recortes fotográficos en blanco y negro con semitonos
- Las tarjetas clave, botones, tiras de película, libros de reglas, etc. pueden usar cartulina de color rojo, amarillo, verde azulado, naranja, morado o crema
- Cada pieza de papel tiene bordes de corte nítidos, una línea clave color crema, una sombra suave de baja opacidad y grano de papel
- El movimiento es de ensamblaje desde vacío, no una deriva suave, un bamboleo o un zoom lento
- Sin subtítulos, sin texto completo del guion, sin logotipos, sin marca de agua, sin interfaz de usuario
- Entrega predeterminada: 9:16, 5 segundos, 720p, MP4 silencioso (pista de audio eliminada) — o la versión con voz cuando el usuario quiera locución
Cuándo NO usar esta skill
- Se necesita control preciso de capas, oclusión, recorridos de cámara o una línea de tiempo editable: usa una herramienta de animación por capas (por ejemplo, un enfoque de video en capas renderizado en HTML)
- El usuario solo quiere un prompt de video, no un clip terminado: solo escribe el prompt, omite este flujo
- El usuario necesita un anuncio de producto con una persona real o un presentador frente a la cámara: no uses este flujo de collage
- El usuario necesita explícitamente activos transparentes editables por capa: esta skill no entrega capas transparentes separadas
Directorio de proyecto predeterminado
Carpeta de trabajo local, nombrada con la fecha local del usuario:
~/collage-broll-projects/YYYY-MM-DD-<título>/
Estructura recomendada para proyectos por lotes:
<proyecto>/
├── brief.md
├── visual-spec.json
├── imagegen-prompts.md
├── omni-jobs.json
├── gate2-qa.md
├── gate3-qa.md
├── still-contact-sheet.jpg
├── omni-contact-sheet-all.jpg
├── video-first-frame-all.jpg
├── end-frame-comparison-all.jpg
├── 01-<nombre-concepto>/
│ ├── omni-prompt.txt
│ ├── voiceover-raw.mp3 (etapa de locución opcional)
│ ├── voiceover-trim.mp3
│ ├── frames/
│ │ ├── last-frame-original.png
│ │ ├── first-frame.png
│ │ └── last-frame.png
│ └── omni/run-v01/
│ ├── final-5s.mp4
│ ├── final-5s-noaudio.mp4
│ ├── final-5s-voiced.mp4 (etapa de locución opcional)
│ ├── contact-sheet.jpg
│ ├── video-last-frame.jpg
│ └── end-frame-comparison.jpg
└── 02-<nombre-concepto>/...
También crea un proyecto de MaxFusion mediante maxfusion_create_project (con el mismo nombre) y pasa su id como project_id / project_group_id en cada generación del lote, para que todos los activos permanezcan agrupados en el espacio de trabajo. Realiza un seguimiento por elemento: el texto de la metáfora confirmada, el id del trabajo de imagen + el id de la imagen del fotograma fijo confirmado, los file_id de primer/último fotograma subidos, el id del trabajo de video + el id del video, y el veredicto del control de calidad — e informa estos ids al usuario con cada puerta para que cualquier elemento pueda ser referenciado o re-ejecutado individualmente.
Fase 1: Diseñar la metáfora visual
Primero comprime la línea del guion en una sola propuesta visual.
Extrae:
- Significado central: qué debe entender finalmente el espectador
- Emoción: calma, sorpresa, urgencia, claridad repentina, absurdo, ironía
- Verbos de acción: abrir, conectar, filtrar, atar, archivar, iluminar, comprimir, bifurcar, ensamblar
- Candidatos a metáfora visual: máquina, reloj, tira de película, archivador, consola, libro de reglas, embudo, vía de tren, pieza de ajedrez
No pongas el texto del guion textualmente en el fotograma. Por defecto, una metáfora por línea, limitada a 3–6 objetos clave; demasiados elementos diluyen el significado y hacen que el ensamblaje de Omni sea inestable.
Prefiere metáforas que un espectador reconozca de la vida cotidiana (un hervidor, una bola de nieve, una cabina de fotos) sobre las abstractas — la línea hablada hace el puente hacia el tema real del usuario, por lo que las imágenes pueden ser audaces sin ser oscuras.
Para lotes, prefiere metáforas que formen una narrativa de antes/después — por ejemplo, primero la fatiga manual y la experiencia que se escapa, luego el proceso codificado y la división del trabajo entre humanos y máquinas.
Ejemplo de salida de la Puerta 1
1. Significado central: la experiencia se consume desde cero cada vez
Metáfora visual: un editor experto rodea un reloj gigante de tira de película cortando fotograma por fotograma; el reloj completa una revolución completa pero solo produce una tira corta de película terminada
Objetos clave: reloj de tira de película, figura del editor, tijeras, tira de salida corta
Colores: campo naranja quemado, acentos crema y verde azulado claro
Orden de ensamblaje: reloj → figura con tijeras → tira de película → salida corta final
Genera esto y detente; espera la confirmación.
Fase 2: Generar los fotogramas fijos de collage en color
Después de que la metáfora esté confirmada, primero escribe un visual-spec.json autocontenido, luego el prompt de la imagen.
Especificación visual
{
"script_meaning": "",
"visual_metaphor": "",
"style_signature": "campo de color plano y audaz, mezcla de recortes fotográficos en blanco y negro con semitonos y acentos de cartulina de colores, bordes de corte nítidos, líneas clave color crema, sombras de papel suaves, collage de papel editorial",
"aspect_ratio": "9:16",
"color_field": {
"background_hex": "",
"accent_colors": [],
"paper_grain": "fibra de papel sin estucar fina"
},
"elements": [
{
"what": "",
"role": "",
"motion": "",
"placement": ""
}
],
"composition": {
"layout": "",
"negative_space": "",
"final_frame": ""
},
"motion_plan": "estructura primero, sujeto o tarjetas segundo, acción y resultado al final",
"avoid": "tipografía, letras legibles, números, logotipos, marca de agua, interfaz de usuario, subtítulos, 3D brillante, entorno fotorrealista"
}
Reglas de color
No trates el azul cobalto como el único color predeterminado. Elige un campo de color fuerte a partir del significado, y a lo largo de un lote mantén "mismo lenguaje de diseño, diferentes colores de campo":
- Naranja quemado / rojo: consumo de tiempo, trabajo, urgencia
- Amarillo mostaza: herramientas, advertencia, experiencia que se escapa
- Verde tinta: cognición, gusto, reinicio del sistema
- Púrpura intenso: reglas, codificación, memoria a largo plazo
- Verde azulado: juicio, colaboración, ejecución autónoma
Los sujetos se mantienen principalmente en blanco y negro con semitonos, pero cada acento de cartulina de color debe servir a la jerarquía de la información — nunca color por el color mismo.
Plantilla de prompt de imagen
Genera con maxfusion_generate_image (modelo predeterminado, aspect_ratio: "9_16", quality: "high"):
Use case: ads-marketing
Asset type: final still frame for a 9:16 image-to-video B-roll clip
Primary request: Create a finished editorial paper-collage image expressing [propuesta visual de una oración].
Scene/backdrop: perfectly flat [nombre del color] paper field [hex] with subtle uncoated paper fiber.
Style/medium: premium editorial stop-motion paper collage; black-and-white halftone photographic cut-outs mixed with selective [colores de acento] colored cardstock.
Composition/framing: vertical 9:16 locked poster frame; central subject within the middle 70 percent; generous clean color-field negative space; 3–6 large separable paper groups for later assemble-from-empty animation.
Materials/textures: visible printed halftone dots, crisp machine-cut edges, thin warm-cream paper keylines, soft low-opacity physical drop shadows.
Constraints: [la única relación que esta metáfora debe comunicar de un vistazo].
Avoid: no typography, no readable letters, no numerals, no logos, no watermark, no UI, no subtitles, no glossy 3D, no photoreal environment, no clutter.
Si la escena contiene un dial, esfera de reloj, indicador o contador, añade una restricción explícita de que cada marca sea una línea de tick simple, nunca números romanos o dígitos. Si la escena contiene una figura durmiendo, prohíbe explícitamente las marcas "Zzz". A los modelos de video les encanta colarlas.
Consulta el trabajo con maxfusion_get_job (wait: 60); descarga cada fotograma fijo desde su URL de activo en <item>/frames/last-frame-original.png y registra el id del trabajo de imagen + el id de la imagen.
Control de calidad del fotograma fijo
- ¿La metáfora es legible de un vistazo?
- ¿El sujeto está concentrado?
- ¿Hay letras falsas, logotipos, marca de agua o interfaz de usuario?
- ¿Queda suficiente campo de color puro para ensamblar desde un fotograma vacío?
- 3–6 grupos grandes y claros, no una pantalla llena de confeti
- En todo el lote: textura unificada, colores de campo variados
Copia los originales que pasan el control al directorio del proyecto, crea una hoja de contactos de fotogramas fijos numerados, muéstrala al usuario (además de maxfusion_display_generation por imagen) y detente para la confirmación de la Puerta 2. Escribe los veredictos del control de calidad de fotogramas fijos en <proyecto>/gate2-qa.md.
Si el usuario pide regenerar algunos fotogramas fijos, regenera solo esos y produce still-contact-sheet-v2.jpg (v3, v4… en rondas posteriores), conservando las hojas de contactos antiguas para comparación — nunca las sobrescribas y nunca reutilices un fotograma fijo rechazado en etapas posteriores.
Fase 3: Generar el video con Omni
1. Preparar el primer y el último fotograma
Conserva el original de la imagen generada, luego normaliza el último fotograma:
ffmpeg -y -i <item>/frames/last-frame-original.png \
-vf "scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920" \
<item>/frames/last-frame.png
El primer fotograma es, por defecto, un campo de papel vacío y puro del mismo color de fondo que el último fotograma:
ffmpeg -y -f lavfi -i color=c=0x<HEX>:s=1080x1920 \
-frames:v 1 <item>/frames/first-frame.png
(<HEX> es el background_hex de la especificación visual — el mismo hex escrito en el prompt de la imagen, que es lo que mantiene los dos fotogramas en el mismo color).
Solo si el usuario solicita explícitamente no comenzar desde un campo completamente en blanco, el primer fotograma puede conservar un objeto estructural base.
Sube ambos fotogramas a MaxFusion con maxfusion_upload_asset (purpose: "image_reference", content_type: "image/png", size_bytes exacto, filename): la herramienta devuelve una sesión de carga — publica un formulario multiparte en upload.url con cada clave/valor de upload.fields exactamente como se proporciona, más los bytes del archivo como la parte final llamada file (cualquier 2xx = éxito), luego usa cada file_id devuelto. Registra los dos file_id por elemento.
2. Escribir el prompt de animación de Omni
Orden de acción predeterminado:
estructura base → figura o tarjetas clave → conectores → acción → resultado final
Plantilla de prompt (guardar por elemento como <item>/omni-prompt.txt):
Paper-collage stop-motion assembly, using Image 1 as the exact empty first frame and Image 2 as the exact completed last frame. In one continuous locked-off vertical shot, open on the empty flat [color] paper field.
Assemble the scene piece by piece with crisp physical stop-motion timing: [describe, en orden, cómo los 3–6 elementos se deslizan, encajan, conectan y completan la acción]. End by holding the supplied completed composition.
Preserve the exact 9:16 framing, [hex] color field, colored cardstock accents, uncoated paper grain, halftone dots, cream keylines, crisp cut edges and soft shadows. Restrained tactile 2D paper craft only.
No scene cuts, no camera movement, no zoom, no morphing, no new objects, no text, no letters, no numbers, no logos, no watermark, no UI, no sound.
Cada prompt debe indicar que la Imagen 1 es el primer fotograma vacío y la Imagen 2 es el último fotograma completado confirmado. La composición final debe aterrizar en la Imagen 2 — no permitas que el modelo rediseñe la composición final; la escena debe terminar luciendo exactamente como el fotograma fijo confirmado que ambos acordaron.
3. Ejecutar el trabajo de generación de video Omni
maxfusion_generate_video
prompt: <contenido del omni-prompt.txt>
aspect_ratio: 9:16
duration: 5
first_frame_file_id: <file_id del primer fotograma>
end_frame_file_id: <file_id del último fotograma>
project_group_id: <project_group_id>
video_model: gemini-omni-flash
Espera (maxfusion_get_job, wait: 120). Descarga el MP4 final de la URL del activo de video en <item>/omni/run-v01/final-5s.mp4.
Si el trabajo falla: no cambies el modelo, no cambies a un proveedor diferente, no ofrezcas alternativas al usuario. En su lugar, aplica el manual de reparación (más abajo) y vuelve a ejecutar en gemini-omni-flash.
4. Control de calidad del video
Control de calidad fotograma a fotograma con ffmpeg
ffmpeg -i <item>/omni/run-v01/final-5s.mp4 \
-vf "select=not(mod(n\,5))" -vsync vfr \
<item>/omni/run-v01/frames/qa-frame-%04d.png
Verifica manualmente la consistencia de la apariencia, objetos fantasma y que la composición final coincida con el fotograma fijo confirmado.
Comparación del último fotograma
Extrae el último fotograma:
ffmpeg -sseof -1 -i <item>/omni/run-v01/final-5s.mp4 \
-update 1 <item>/omni/run-v01/video-last-frame.jpg
Superpone la salida del video con el fotograma fijo de origen para la comparación visual (herramienta: cualquier utilidad de comparación de imágenes).
5. Aplicar el manual de reparación de Omni
Si el trabajo falla, verifica la salida de error de maxfusion_get_job:
- Violación de contenido → simplifica la metáfora: menos objetos, acción más directa, restricciones más estrictas en el prompt. Evita completamente figuras humanas reconocibles si el motor las rechaza. Luego repite la generación de la imagen con una restricción de cumplimiento más estricta en el prompt y repite todo el flujo de Omni.
- Error de duración o límite de velocidad → introduce una sola pausa de 10 segundos y reintenta el mismo trabajo exacto una vez.
- Error interno del modelo → sin cambios en el prompt, reintenta inmediatamente una vez.
- Cualquier otro error → imprime el error, luego reduce el prompt a no más de 80 tokens eliminando descripciones de textura y detalles de movimiento, manteniendo solo el orden de ensamblaje y las restricciones de evitar. Reintenta una vez.
Después de cualquier reparación, si el segundo intento también falla, informa al usuario que la línea necesita una reescritura de la metáfora para ser viable.
6. Configurar la entrega silenciosa
Por defecto, el audio de Omni contiene una banda sonora generada que debe eliminarse:
ffmpeg -y -i <item>/omni/run-v01/final-5s.mp4 \
-c copy -an <item>/omni/run-v01/final-5s-noaudio.mp4
Si el usuario pidió una locución, conserva el audio eliminado para la etapa de ajuste de voz.
Fase 4: Locución opcional
Solo después de que el video esté listo y aprobado (Puerta 3 completada) y solo si el usuario solicitó explícitamente una locución:
- Generar la locución en crudo:
maxfusion_generate_speech(text=<línea del guion>, voice_id=<voz preferida>) - Recortar a la duración del video: si el audio de la locución es más largo de 5 segundos, recórtalo; si es más corto, no lo estires.
- Multiplexar el audio de la locución en el clip:
ffmpeg -y -i <noaudio> -i <locución recortada> -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 final-5s-voiced.mp4
Voz predeterminada
aura-asteria-en para inglés — esta voz funciona para contenido editorial y explicativos. Para español u otros idiomas, elige una voz apropiada de la lista de MaxFusion.
Hoja de contactos maestra del proyecto
Después de que cada ítem en el lote haya pasado la Puerta 3, crea una hoja de contactos maestra que coloque cada clip de video en un solo cartel, etiquetado con el nombre del concepto:
montaje <concepto1>/omni/run-v01/final-5s-noaudio.mp4 \
<concepto2>/omni/run-v01/final-5s-noaudio.mp4 … \
-tile 2xN -geometry 1080x1920+5+5 \
<proyecto>/omni-contact-sheet-all.jpg
Seguimiento de trabajos
Mantén un omni-jobs.json en la raíz del proyecto:
{
"project_id": "",
"project_group_id": "",
"items": [
{
"name": "01-nombre-concepto",
"metaphor_text": "...",
"image_job_id": "...",
"image_id": "...",
"first_frame_file_id": "...",
"last_frame_file_id": "...",
"video_job_id": "...",
"video_id": "...",
"qa": "passed | failed: ..."
}
]
}
Escríbelo después de cada generación,
... [continuación omitida por límite de tokens]