Rebranding de anuncios (Ad Rebrand)
Convierte un lote de anuncios existentes a la nueva marca: cada mención hablada se vuelve a grabar con la voz clonada del orador original, cada subtítulo se reescribe con la fuente de subtítulos del video, y cada elemento visual (logotipo, etiqueta, cartel) se reemplaza o se elimina limpiamente — el resto del anuncio permanece intacto (mismos fotogramas, sincronización, música).
Paraleliza con subagentes (herramienta Agent, run_in_background: true, un mensaje lanzando todos los agentes independientes). Plantillas de prompts: references/agent-prompts.md. Lee references/lessons.md antes de empezar — registra lo que falló la última vez.
Entradas que definir primero
- Nombres antiguos (producto y marca) y el nuevo nombre — y cómo Whisper podría malinterpretar los antiguos (ej. "physio rest", "artivate").
- Los archivos (videos, imágenes). Trabaja en una carpeta de proyecto que el usuario pueda conservar (ej. ~/Downloads/ Video Edits); nunca edites los originales.
Flujo de trabajo
-
Configuración.
scripts/setup_jobs.sh PROYECTO INICIO_N video1 video2 …→job-NN/{assets/source.mp4,analysis,project,renders}. Copia las imágenes aPROYECTO/images/source/. Entorno: ffmpeg/whisper-cli vía Homebrew, entorno virtual Python~/.cache/video-studio-venv(numpy, opencv-contrib, pillow, soundfile, demucs, torch; pyworld para palabras cantadas), modelo whisper~/.cache/whisper/ggml-small.en.bin. Si falta algo, instálalo (Homebrew necesita la contraseña del usuario en una terminal). -
Triaje (en paralelo, un agente por video). Plantilla §1. Cada uno escribe
analysis/triage.json|mdcon los segmentos de habla refinados, los hablantes + rangos de referencia limpios para clonación, cada ocurrencia visual/de subtítulos con rangos de fotogramas, y anomalías. Revisa las imágenes tú mismo (amplía etiquetas a resolución completa) — muchas no necesitan nada. -
Consolidar y preguntar una vez (AskUserQuestion):
- Derechos de voz: enumera cada voz distinta que debe clonarse (agrupa videos que comparten narración — compara envolventes de pistas vocales; compara la F0 mediana para distinguir hablantes). La clonación requiere un "sí" explícito del usuario por cada voz.
- Cualquier cosa que no sea la marca antigua pero parezca un problema: marcas de otros productos en el producto, entornos minoristas/de respaldo (personal de tienda, logotipos de tienda), afirmaciones inconsistentes, redundancia de guion por el cambio de nombre. Marcas de agua de terceros: señálalas, nunca las elimines.
- Menciones cantadas: explica que necesitan reajuste de tono y requerirán una escucha humana.
-
Inicia el equipo visual de inmediato (plantilla §2) — no depende de las voces. Agrupa videos que sean la misma edición en un solo agente. Agente de imágenes: plantilla §5.
-
Voces. Exporta referencias de clonación de la pista vocal de cada trabajo (25–35 s, sin nombres de marca) a
PROYECTO/voice_refs/. Prefiere la API de Fish (examples/voice-splice/fish_tts_api.py, clave en~/.config/video-studio/.env) si tiene crédito de API; de lo contrario, crea clones privados en la aplicación web de Fish en el Chrome del usuario —references/fish-audio-web.md. Genera las líneas de cada voz en un solo script, ambas tomas, guardadas envoice_refs/takes/. -
Equipo de audio (en paralelo, un agente por voz/grupo de trabajo). Plantilla §3 para habla, §4 para palabras cantadas. Salida:
analysis/stems/vocals_nombre_ola.wavpor trabajo, verificado mediante transcripción. -
Ensambla cada trabajo tan pronto como su imagen y voz estén listas:
scripts/mux_final.py TRABAJO NOMBRE_SALIDA.mp4(imagen rebrandeada + nuevas voces + pista musical original). Si un agente visual entrega algo incompleto, ejecuta suproject/rebrand_job.pytú mismo. -
Control de calidad de cada final tú mismo — los informes de los agentes son afirmaciones, no pruebas:
scripts/check_final.py source.mp4 final.mp4 --old "physio|fisio|artuvate|artivate" --new "nook" --frames <un fotograma por elemento corregido>→ coincidencia de número de fotogramas, decodificación limpia, sonoridad vs fuente, cero nombres antiguos hablados, y una hoja de origen|final que debes revisar. Transcribe con ventanas de 5 s alrededor de cada mención si los totales parecen incorrectos (Whisper con archivo completo fusiona oraciones). Para líneas cantadas, espera que Whisper tenga problemas también con el original. -
Entrega. Archivos finales en la raíz del proyecto con nombres descriptivos, un zip si se solicita (
zip -0, los videos ya están comprimidos), y un resumen: qué cambió por archivo, qué necesita una escucha humana (palabras cantadas, duración de pausas después de un nombre más corto), fotogramas imperfectos conocidos, y los problemas de marca señalados que no son de la marca antigua.
Opcional: cortes para engagement
Para solicitudes de "hacerlo más atractivo" además del rebranding, en examples/engagement-edit/ se encuentra el planificador (listas de conservación a nivel de oración ajustadas a puntos de silencio, llamadas, acercamientos) y el renderizador (alternancia de zoom en cortes, llamadas con marca, barra de progreso, efectos de sonido sintetizados, corrección de subtítulos en cortes, loudnorm −14 LUFS). Reutiliza en lugar de reescribir.
Archivos incluidos
scripts/setup_jobs.sh,scripts/mux_final.py,scripts/check_final.py— genéricos.examples/— código funcional y específico del primer uso (rutas y números de fotograma están codificados; adapta, no ejecutes ciegamente):caption-and-tag-library/— redibujo de subtítulos, etiquetas de cuero rotativas, placas curvas, borrador de bolsos, seguimiento multiescala (rebrand_job01.py); subtítulos con glifos recortados, etiquetas grabadas en relieve, reimpresión de bolsos con seguimiento (caption_lib.py,text_lib.py,track_lib.py,rebrand_job05.py).web-and-sign-library/— subtítulos con glifos propios (captions.py), placa de cartel de edificio, reconfiguración de texto web, prensado de etiquetas, bolso con caída manual (rbk.py,rebrand_job02.py), pantalla de portátil (rebrand_job06_laptop.py), desplazamiento de página de reseña, logotipo de tarjeta final, eliminación de relieve de terceros (rebrand_job07.py), hojas de control de calidad (visual_qc.py).voice-splice/— reemplazo de palabras con medición de segmentos y sobrescritura de tomas; cliente de API de Fish.sung-word/— re-cantado basado en WORLD sobre la melodía original.still-image/— reemplazo de texto por homografía en envases.