Motor de Recreación de Video con Fotogramas Bloqueados (Flujo Multi-Agente)
De Wikiprompt, la enciclopedia libre de prompts
Motor de Recreación de Video con Fotogramas Bloqueados (Flujo Multi-Agente) Un flujo de trabajo integral multiagente para crear una versión recreada con fotogramas bloqueados de un video de referencia, con fases detalladas, compuertas y criterios de aceptación numéricos.
Contenido del PromptGuardar
🌐
TAREA: remake sincronizado de REF=[ruta/al/referencia.mp4] para [PRODUCTO] = [una línea: qué vende + la oferta + precio]. Reproducido lado a lado con REF es visiblemente bloqueado por fotogramas; reproducido solo nadie puede decir que proviene de REF. MANTENER IDÉNTICO (medido, no estimado): cada fotograma de corte, duración de toma, posición en el diseño, tamaño y posición de elementos por fotograma, fotograma de entrada/salida, curva de easing, movimiento de cámara, cadencia de escritura (caracteres por fotograma), trayectoria del cursor, cobertura de transición % por fotograma, luminancia por toma (oscuro donde REF es oscuro), desenfoque activado/desactivado por movimiento, tiempos de impacto de audio, fotograma de caída de música. CAMBIAR TODO LO DEMÁS: cada imagen, objeto, palabra, color, textura, cromo de interfaz, logo, fuente. Aspecto = [ASPECTO, p. ej. "página #FDFDFB + cielo linear-gradient(180deg,#263F72,#769CC2) con arte de línea blanca fina al 20–35%, vidrio esmerilado (blanco 30%→14%, desenfoque de fondo 24px saturate 1.3, borde blanco de 1px, sombra 0 18px 50px rgba(10,22,50,.18)), Inter 600, un acento #2F6BFF"]. Imágenes = [mis fotogramas/clips de trabajo reales | fotos CC0/dominio público | personajes originales dibujados en código]. PROHIBIDO: accesorios modelados en 3D, personas de stock/generadas, memes/personajes/logos con derechos de autor, púrpura/magenta/naranja como marca, azul sobre azul con scanlines, HUD de cámara falsos, bokeh hexagonal, audio sintetizado por código.
ACEPTACIÓN (todo numérico, todo informado; nada se envía sin la tabla):
Cortes: 0 fotogramas de diferencia con REF.
Por toma: curva de energía de movimiento (diferencia de fotograma media absoluta en gris 192x108) correlacionada cruzadamente con la de REF durante la toma → pico en lag 0 ±1 fotograma Y corr ≥ 0.80.
Por toma: 10 fotogramas apilados REF-sobre-nuestros; bordes de elementos clave dentro del 1% del fotograma (19 px x, 11 px y).
Belleza: un crítico nuevo que solo ve REF vs los nuestros a resolución completa responde "¿es el nuestro al menos tan bello y pulido como REF en este fotograma?" → SÍ en cada fotograma de storyboard.
No reconocible: el mismo crítico, viendo solo los nuestros, no puede nombrar la marca o producto de REF desde ningún fotograma.
Suavidad (nuestro, película completa): 0 series de ≥3 fotogramas congelados (diff < 0.03) en medio de escena; < 5 pasos bruscos (fotogramas en movimiento consecutivos cuya relación de diff > 2.2); sin diff > 25 excepto en un corte duro de REF.
Voz: cada línea comienza dentro de ±40 ms del fotograma en que aparece su primera palabra; ninguna palabra hablada > 150 ms antes de que su palabra esté en pantalla; cada línea una toma continua (silencio interno más largo < 120 ms a menos que REF lo tenga); velocidad 0.95–1.05.
Sonido: cada impacto de REF dentro de ±15 ms; cada señal pequeña ≥ 3 dB por encima de su banda en ese momento; voz p10 ≥ 9 dB sobre música+SFX en cada línea; -14 LUFS ±0.5, pico verdadero ≤ -1.0 dBTP (sobremuestreado 4x), limitador activo < 2% de las muestras; cada empalme de música con crossfade (relación de salto en el empalme ≤ los propios saltos de beat de la pista).
FASE 0 - ANÁLISIS (sin construir aún)
ffprobe fps/res/duración. Extraer TODOS los fotogramas basados en 0: ref/full/fNNNN.jpg (resolución nativa) + ref/audio.wav 48 kHz. Hojas de contacto a 1 fps y 2 fps.
Cortes: picos de diff media absoluta por fotograma > 6x mediana local, cada uno confirmado viendo f-1/f/f+1.
Escalonado: encontrar fotogramas idénticos al anterior dentro del movimiento (REF puede animar a 20 fps dentro de 30). Registrar el patrón; el nuestro renderiza suave a 60 fps, nunca copia el escalonado.
SPEC.md, una tabla por tipo:tomasshots: id | f0 | f1 | contenido | media de luminancia | transición de entrada | transición de salida | cámara
palabras: texto | toma | fotograma de aparición | fotograma de asentamiento | x,y de línea base-izquierda | altura de mayúscula px | peso | color
objetos: id de slot | toma | fotograma de entrada | fotograma de asentamiento | fotograma de salida | bbox por fotograma (archivo de array) | curva de escala | rotación | sombra
transiciones: id | f0 | f1 | cobertura % por fotograma (array) | dirección | estilo de borde
escritura: campo | fotograma del primer carácter | caracteres por fotograma (array) | período de parpadeo del cursor
cursor: xy de la punta por fotograma (array) | fotogramas de presión | curva de escala de presión
cámara: escala/tx/ty por fotograma (array) | desenfoque por fotograma
MEDIR con numpy/OpenCV: coincidencia de plantillas o seguimiento de bbox de tinta por fotograma para CADA elemento en movimiento; guardar cada seguimiento como measure/<id>.json (fotograma → x,y,w,h,opacidad). La prosa en SPEC es una guía; ref/full + measure/ son la verdad.
AUDIO: STT con marcas de tiempo de palabras → tabla VO: línea | inicio | fin | tiempo de cada palabra. Música: BPM + fase de beat (autocorrelación de onset), tiempo de caída, casi-silencio antes de la caída (duración), sonoridad por sección (LUFS), golpe final. SFX: onsets de flujo espectral, etiquetados por tipo (whoosh: registrar tiempo PICO, no inicio; clic; pop; boom; riser; escritura).
SWAPS.md: slot REF → nuestro, mismo número de sílabas / misma clase de ancho por palabra. REGLA: si una línea intercambiada es más larga que la de REF, el TIEMPO cambia para ajustarse a las palabras: extender esa toma por un número entero exacto de beats de música (INS), desplazar todo lo posterior por INS, y en el lado a lado mantener REF (con un empuje del 2%, nunca muerto) durante INS en el mismo punto. Nunca meter una línea más larga en el slot de REF. Escribir decisiones INS en insert.json.
FASE 1 - MOTOR (tú, antes de cualquier agente)
Una página HTML, 1920x1080. window.seekFrame(F) renderiza cualquier fotograma, F fraccional permitido, como función PURA de F. Prohibido: temporizadores, Date, Math.random (usar un hash con semilla), transiciones/animaciones CSS, requestAnimationFrame. Las tomas registran SHOT({id, f0, f1, render(lf, F)}) devolviendo HTML. window.ready = true solo después de document.fonts.ready Y de que cada decode() de imagen se resuelva.
core.js: conjunto de easing (ease-out-cubic, ease-in-out-cubic, spring con sobreimpulso ≤ 8%); kf(F, [[f, v]...], ease) usando splines cúbicos monótonos a través de claves (nunca lineal por tramos: los quiebres se leen como judder); samples(F, track) leyendo measure/*.json con interpolación spline; camera(inner, scale, tx, ty, origin, blur); desenfoque direccional (SVG feGaussianBlur stdDeviation x,y desde la velocidad); glass(), tile(), chip(), window(), card(), cursor(), textReveal(), glint(age, radius) (barrido especular de 12 fotogramas al aterrizar); logo como máscara CSS para que cualquier relleno funcione; objeto de paleta - cada color en un solo lugar.
POSICIONAMIENTO: cada elemento en movimiento usa transform: translate3d(x.xxpx, y.yypx, 0) con valores fraccionales. El ajuste de píxeles del navegador dentro de contenedores escalados crea pasos de 3 px cada dos fotogramas.
SIN FOTOGRAMAS MUERTOS: cada retención lleva un empuje/deriva de cámara ≥ 0.25%/fotograma; los brillos respiran; la tarjeta final empuja hasta el fundido.
render.mjs (Playwright Chromium, deviceScaleFactor 1, ejecutar fuera de cualquier sandbox del SO): modos stills <fotogramas> | compare <fotogramas> (REF izquierda | nuestra derecha, hoja etiquetada) | sub <F0> <F1> <workers>. UN PROCESO DE NAVEGADOR POR WORKER (las páginas dentro de un navegador serializan capturas: ~65 vs ~450 subfotogramas/min). Capturar con CDP Page.captureScreenshot. Imprimir errores de página.
Desenfoque de movimiento: N subfotogramas por fotograma desde la propia estimación de velocidad de la página (N=1 por debajo de 8 px/fotograma, hasta 16; 32 en barridos), obturador de 90° (extensión 0.25 fotograma, centrada). Promediar en numpy. Cortes duros solo en fotogramas completos.
Scripts: https://t.co/6oEK6pCkxx (series congeladas + pasos bruscos + saltos grandes), https://t.co/mMZ99TvBh3 (tabla de lag/corr por toma), https://t.co/ekkkOF28Sg (REF sobre nuestros apilado, bloqueado por fotogramas), https://t.co/8BkrahuZiR (promediar subfotogramas → libx264 60 fps CRF 15 yuv420p bt709 + mux; y REF|nuestros 3840x1080 lado a lado con audio de REF silenciado), https://t.co/nHE46DMJRg (intercambiar audio sin re-render).
FASE 2 - CONSTRUCCIÓN (compuertas en orden; no saltar, no reordenar) COMPUERTA 1 STORYBOARD: un still a resolución completa por toma en su fotograma más importante, REF|nuestros. Generar un crítico NUEVO (ve solo fotogramas de REF, los nuestros, y TAREA+ACEPTACIÓN; nunca las notas del constructor). Devuelve por fotograma: bello como REF (S/N), reconocible como REF (S/N), vacío/plano/barato (S/N), con la corrección exacta. Corregir todo una vez. Registrar en LEDGER.md (hallazgo | fotograma | estado CORREGIDO/PARCIAL/ABIERTO). COMPUERTA 2 LABORATORIOS DE COMPONENTES: las 4–6 piezas más difíciles (ventana/dispositivo héroe, elemento brillante grande, UI de chat, tarjetas, marca final) cada una en su propia página de prueba; stills a 3 tamaños; pase del crítico; solo entonces integrar. COMPUERTA 3 TOMAS: dividir en grupos contiguos, un agente por grupo, cada uno escribe SOLO shots/<G>.js (IIFE, helpers con prefijo <G>_), nunca edita core.js (te lo pide a ti). Cada agente recibe BRIEF.md (TAREA, ACEPTACIÓN, reglas de intercambio, reglas de archivos), sus secciones de SPEC, sus seguimientos de measure/, la API del core. Bucle por toma: conducir cada elemento en movimiento desde su seguimiento de measure/ → comparar primer/último fotograma, cada keyframe, 2 fotogramas dentro de cada transición → xcorr de la toma → iterar hasta lag 0 ±1 y corr ≥ 0.80. ≤ 15 fotogramas por llamada de render. Tabla de informe: toma | fotogramas | lag | corr | congelado | brusco | error de borde máx px | notas. COMPUERTA 4 AUDIO (agente separado, en paralelo desde los datos de la Fase 0):
Música: medir curva de energía de REF; audicionar ≥ 6 pistas comercialmente aceptables (Mixkit/Pixabay; registrar URL + licencia) por AMBIENTE (tonalidad, brillo, género) primero, coincidencia de energía segundo. Estirar tiempo ≤ 4% al BPM de REF. Editar para que la caída aterrice en el fotograma de caída de REF con su casi-silencio antes, y la frase final termine en la marca final. Cada edición/bucle: crossfade de potencia igual de 15 ms en la misma fase de beat; verificar sin clic.
SFX: biblioteca grabada o generación de sonido ElevenLabs, nunca numpy. Uno por evento de REF, colocado por su propio pico/transitorio. Whooshes en barridos, pops vidriosos en tiles, golpes de tecla por palabra escrita, sonidos de enviar/recibir, riser hacia la caída, sub boom en la caída y la marca final.
Espacio: tallar la música en la banda de frecuencia de cada señal pequeña (sidechain/EQ dinámico), no solo subir señales. Atenuar música bajo la voz suavemente (-6 a -12 dB, liberación lenta).
VO: ElevenLabs (plan de pago para uso comercial). Elegir voces por coincidencia de tono/timbre con las líneas de REF. Una toma natural continua por línea; comenzar en el fotograma de su primera palabra; nunca cortar, nunca estirar fuera de 0.95–1.05, nunca "..." dentro de una línea. Si no encaja: reformular o re-temporizar la imagen (regla de Fase 0). Procesamiento ligero solo (compresión 2:1, de-esser suave, +1.5 dB de presencia).
Masterizar a los números de ACEPTACIÓN; exportar mix.wav, music_only.wav, stems/, LICENCES.md, cues.json (señal | fotograma de imagen | tiempo colocado | tiempo pico).
FASE 3 - INTEGRAR + VERIFICAR
Unificar componentes compartidos entre grupos (un cursor, una receta de vidrio, un logo). Render completo en 2–3 fragmentos paralelos, https://t.co/8BkrahuZiR, luego mux del mix FINAL solo después de que esté escrito (el codificador lee el wav una vez al inicio; re-mux si el mix cambió).
Ejecutar https://t.co/6oEK6pCkxx, https://t.co/mMZ99TvBh3, https://t.co/ekkkOF28Sg. Construir una hoja de contacto de 1 fps REF|nuestros y hojas en cada costura de grupo (últimos 2 / primeros 2 fotogramas). MIRARLOS. Corregir deriva. Re-renderizar solo los rangos de fotogramas cambiados y empalmar.
UN crítico final nuevo: película completa solo la nuestra (¿reconocible? ¿barata? ¿congelada? ¿dura?) + lado a lado (¿fuera de sincronía?) + informe de audio. Un pase de corrección. Si dos críticos se contradicen, dejar de iterar y mostrar al usuario con ambas opiniones.
Después de la entrega: cambio de imagen → re-renderizar solo el rango cambiado y empalmar; cambio de audio → https://t.co/nHE46DMJRg, sin re-render.
PELIGROS (cada uno de estos ocurrió)
Críticos a los que solo se les pidió "sincronizado + diferente" aprobaron trabajo feo durante 12 rondas. Siempre preguntar "¿tan bello como REF en este fotograma, resolución completa?".
Objetos 3D modelados por código = CGI plástico. Azul sobre azul + scanlines + HUD REC falso + bokeh hexagonal = basura.
Movimiento temporizado a mano se siente como basura de IA incluso cuando los stills coinciden. Medir cada elemento.
Vistas previas de 960 px ocultan problemas de calidad. Juzgar a 1920.
Mantener el tiempo de REF después de cambiar el guion → voz apresurada, texto rezagado respecto a la voz, una línea parpadeada en 1 s.
Mover la voz sin mover la imagen → la voz habla sobre la toma anterior.
Dividir la voz por palabra para perseguir el texto → oraciones rotas. "..." en texto TTS → un hueco a mitad de línea.
Empalme de música duro → clic. Atenuación que protege la voz entierra señales pequeñas.
Mux mientras el mix aún se escribe → audio obsoleto en el video.
measureText antes de que carguen las fuentes → palabras chocando. Ajuste de píxeles → judder.
Partículas aleatorizadas no coincidirán apiladas; conducir las visibles desde seguimientos.
Nunca afirmar que una toma coincide sin ver REF|nuestros para ella e imprimir sus números.
ENTREGAR: remake.mp4 (1920x1080 60 fps, con audio), side-by-side.mp4 (REF izquierda, nuestra derecha, bloqueado por fotogramas), SPEC.md, SWAPS.md, measure/, LEDGER.md, fuente + scripts, audio/ (mix, music_only, stems, cues.json, LICENCES.md), y un informe: tabla de ACEPTACIÓN con cada número (lag/corr/error de borde por toma, series congeladas, pasos bruscos, desfases de voz, desfases de señales, sonoridad, pico verdadero, % de limitador), más cada diferencia restante vs REF con cada número (lag/corr/error de borde por toma, series congeladas, pasos bruscos, desfases de voz, desfases de señales, sonoridad, pico verdadero, % de limitador), más cada diferencia restante vs REF.
Iniciá sesión para ver el prompt completo
Continuar con:
Al iniciar sesión, aceptás nuestros Términos de uso y Política de privacidad
Uso
Este prompt está diseñado para usarse con creative. Copiá el contenido de arriba y pegalo en tu herramienta de IA preferida.
Para mejores resultados, personalizá los marcadores (indicados con corchetes o mayúsculas) con tus requisitos específicos.
Referencias
- Categoría: Prompts de creative
- Fuente: https://x.com/notdwd/status/2105381763057103243
Discusión
0 comentarios