Este modelo de IA de Netflix elimina a cualquier actor de cualquier escena (Análisis del modelo VOID)
BBetter Stack
Computing/SoftwareMoviesPhotography/ArtInternet Technology
Transcript
00:00:00Vaya, se ve algo triste, pobre Kate Winslet, Dios mío, ahí parada sola, con
00:00:09ningún Jack.
00:00:11Netflix acaba de lanzar una herramienta de IA de código abierto muy interesante llamada Video Object and Interaction
00:00:17Deletion o VOID.
00:00:19La mayoría de las herramientas de video con IA ya son excelentes borrando objetos, eso no es nada nuevo.
00:00:24Pero son terribles borrando las consecuencias de esos objetos en la escena.
00:00:29Por ejemplo, si eliminas una bola de boliche golpeando pinos, la mayoría de los modelos dejan los pinos
00:00:34cayéndose sin razón, pero VOID intenta solucionar este problema.
00:00:39Es un nuevo marco de trabajo de Netflix e Insight que entiende la causa y el efecto y modifica
00:00:44el contenido del video basándose en los objetos eliminados.
00:00:47Así que en este video, analizaremos más de cerca este modelo, veremos cómo funciona y, de hecho,
00:00:52construí una aplicación web para probar este modelo en todo su esplendor, así que haremos algunas pruebas de video
00:00:57por nuestra cuenta.
00:00:58Va a ser muy divertido, así que vamos a sumergirnos en ello.
00:01:05VOID significa Eliminación de Objetos e Interacciones de Video.
00:01:09Para entender por qué esto es tan importante, hay que ver cómo funciona normalmente el "inpainting"
00:01:15de video.
00:01:16Los borradores estándar de IA son básicamente un relleno según el contenido pero repotenciado.
00:01:20Miran los píxeles alrededor del hueco e intentan adivinar qué debería haber allí.
00:01:24Esto funciona para una marca de agua o una persona quieta, pero falla en el momento en que
00:01:29hay una interacción física.
00:01:31Si eliminas a una chica haciendo un batido en una licuadora, una IA normal borrará a la persona,
00:01:36pero dejará la licuadora girando y batiendo sin motivo alguno.
00:01:40Corrige la apariencia, pero ignora la física de los otros objetos a su alrededor.
00:01:46VOID está diseñado para resolver ese problema de interacción fantasma reimaginando una realidad contrafáctica.
00:01:53Básicamente, una versión del video donde ese objeto o persona nunca existió en primer
00:01:57lugar.
00:01:58Y la forma en que lo logra es realmente ingeniosa.
00:02:01No empieza a pintar inmediatamente.
00:02:03En su lugar, utiliza un sistema de dos pasadas.
00:02:06En el primer paso, realizan una fase de razonamiento.
00:02:08Primero, VOID utiliza un modelo de lenguaje de visión y SAM2 o Segment Anything Model 2 para analizar
00:02:15la escena.
00:02:16De hecho, hice un video aparte sobre cómo funciona SAM2, así que échale un vistazo si te interesa.
00:02:22Mientras SAM2 crea un rastreo perfecto de píxeles del objeto que quieres eliminar, la IA se hace
00:02:28la pregunta: "Si elimino esto, ¿qué más cambia?".
00:02:32Si quitas un dominó de una pila de dominós, la IA identifica que los otros dominós se ven casualmente
00:02:38afectados.
00:02:39Luego crea lo que los investigadores llaman una "Quad Mask", un mapa específico que le dice al
00:02:44modelo de difusión no solo dónde borrar, sino dónde reescribir la física de la zona
00:02:50circundante.
00:02:51Y luego el paso dos es la generación y el refinamiento.
00:02:54Una vez que ha generado ese mapa, un modelo de difusión de video genera el nuevo metraje.
00:03:00A veces estos modelos pueden ser un poco imprecisos, como que los objetos se deforman o pierden su forma.
00:03:05Para solucionar esto, VOID tiene una segunda pasada opcional.
00:03:08Utiliza algo llamado "flow warp noise" para fijar esas formas en su lugar, asegurando que
00:03:14mientras la física cambia, los objetos restantes se mantengan sólidos y consistentes.
00:03:19Pero te preguntarás, ¿cómo se le enseña a una IA lo que no sucedió?
00:03:23El equipo de Netflix e Insight no podía simplemente filmar un accidente de coche y luego deshacerlo en
00:03:28la vida real para obtener los datos de entrenamiento.
00:03:30En su lugar, utilizaron entornos sintéticos como Kubrick.
00:03:34Realizaron miles de simulaciones físicas donde tenían una versión de antes y otra de después.
00:03:40Una versión con una colisión y otra versión donde el objeto nunca estuvo allí.
00:03:44Al mostrarle a la IA ambas versiones, esta aprendió la relación entre la presencia de un objeto y
00:03:49su impacto en el entorno.
00:03:51Todo eso suena súper fascinante, pero vamos a probar esta herramienta por nosotros mismos.
00:03:57La mejor manera de ejecutarla sería usar una GPU en la nube como un módulo RunPod funcionando en
00:04:02una GPU H100 o algo equivalente.
00:04:05Pero te diré de entrada que configurarlo no es nada sencillo.
00:04:10La documentación de GitHub tiene muchas lagunas e información engañosa.
00:04:14Así que para que funcione correctamente, hay algunas cosas con las que hay que tener cuidado.
00:04:18Por ejemplo, este comando probablemente fallará porque nunca especificaron que necesitas
00:04:23el modelo SAM3 para este procedimiento.
00:04:25Y este comando podría fallar porque nunca especificaron que las "quad masks" deben llamarse estrictamente
00:04:30quad_mask_0.mp4 para que funcionen correctamente.
00:04:35Hay muchos de estos pequeños problemas que no están documentados aquí.
00:04:38Y su demo de Gradio está bien si ya tienes una máscara segmentada con SAM2, pero ellos
00:04:44no proporcionan la interfaz gráfica de usuario para crear realmente esa máscara.
00:04:48Lo que hice fue construir una aplicación web personalizada que soluciona todos estos problemas y te ofrece
00:04:54una interfaz lista para usar que pasa por el paso de segmentación, el paso de inferencia e
00:05:00incluso el sistema de dos pasadas.
00:05:02Así que puedes simplemente subir tu video, segmentar la máscara y renderizar el resultado final.
00:05:07Y eso es exactamente lo que vamos a hacer ahora.
00:05:09Primero, tienes que activar una instancia de RunPod con una GPU potente.
00:05:14Voy a usar una H100 para esta prueba.
00:05:17En la sección de plantillas, asegúrate de aumentar el tamaño del contenedor a 100 gigabytes.
00:05:22Y en la sección de puertos, añade el puerto 8998 porque aquí es donde expondremos
00:05:27nuestra aplicación web.
00:05:29Luego, todo lo que tienes que hacer es entrar al pod por SSH, clonar mi repositorio, entrar en él y ejecutar el
00:05:36comando run.sh.
00:05:38También te pedirá que proporciones un token de Hugging Face para poder descargar los
00:05:42modelos y también asegúrate de tener acceso al repositorio de SAM3 porque este es un
00:05:48modelo restringido y necesitas solicitar permiso para usarlo.
00:05:51Pero normalmente el proceso es bastante rápido y te aprueban en pocos minutos.
00:05:55Luego también necesitarás una clave de API de Gemini porque en el paso de segmentación, el modelo
00:06:00utiliza Gemini para determinar la estimación de pose para una generación precisa de la "quad mask".
00:06:06Muy bien.
00:06:07Y si tienes ambas credenciales, deja que el comando run.sh instale todo.
00:06:13Una vez hecho esto, ya podemos lanzar la aplicación web con el siguiente comando detallado
00:06:18aquí.
00:06:19Ahora, en la página de RunPod, tienes que hacer clic en este puerto y eso abrirá nuestra aplicación
00:06:24web.
00:06:25Y ahora finalmente podemos empezar a probar el modelo.
00:06:28Para mi primera prueba, usaré esta famosa escena de Matrix e intentaré eliminar a
00:06:32Neo de la escena y ver qué pasa.
00:06:35Lo primero que tienes que hacer es especificar el comando de instrucción de eliminación.
00:06:41En este caso, podemos especificar algo como: elimina al luchador con el kimono blanco de
00:06:45la escena.
00:06:46Después de eso, llegamos a la sección donde solo segmentas un montón de puntos alrededor del
00:06:51objeto o persona que quieres eliminar para que el modelo SAM2 sepa en qué forma enfocarse
00:06:57y luego especificar la carpeta de salida donde guardaremos nuestros archivos de resultados.
00:07:02Tienes que recordar el nombre de esta carpeta porque este será el identificador único
00:07:06que usaremos en otras pestañas para identificar con qué video estamos trabajando.
00:07:11Después, podemos pasar a la segunda pestaña, que ejecutará nuestro paso de segmentación y el
00:07:16proceso.
00:07:17Una vez terminado, podemos pasar a la pestaña tres, que es el paso de inferencia, donde
00:07:22el modelo realmente intentará eliminar el objeto o persona deseada.
00:07:26Aquí tenemos que escribir de nuevo el nombre de esa carpeta.
00:07:29Y aquí debemos especificar un "prompt" que describa cómo debería verse el video sin la
00:07:34existencia de nuestro objeto o persona eliminada.
00:07:37En nuestro caso, sería algo como: un luchador con un kimono oscuro de pie dentro de
00:07:42un gimnasio.
00:07:43También recomiendan no mencionar el objeto o persona eliminada, solo centrarse en
00:07:48lo que debe aparecer en el video y ejecutar el paso de inferencia.
00:07:52Una vez que termine, podemos ir a la pestaña de resultados y ver nuestro video final.
00:07:58Nuevamente, necesitamos especificar la carpeta del video.
00:08:01Y ahí lo tienen.
00:08:03Miren eso.
00:08:04Sí, parece que Morfeo está luchando contra un fantasma.
00:08:07Podemos ver que hay algunas inconsistencias con la eliminación de las manos y otras cosas.
00:08:12No es perfecto, pero hay otra cosa que podemos hacer para intentar mejorarlo.
00:08:18Ahora podemos pasarlo por el filtro de segunda pasada, que es la pestaña cuatro, para intentar lograr mejores resultados.
00:08:24Así que después de ejecutar la segunda pasada, ahora tenemos esta ventana adicional donde vemos el
00:08:29resultado de la segunda pasada.
00:08:32Y de nuevo, todavía se ve algo raro.
00:08:34Todavía parece que Morfeo está luchando con un fantasma o bailando o algo así.
00:08:39Como pueden ver, no funciona para todas las escenas.
00:08:42Algunas escenas van a ser muy raras, pero hace un buen trabajo eliminando a Neo de
00:08:48la escena por completo.
00:08:49Dicho esto, probemos dos ejemplos más divertidos.
00:08:53Aquí está la famosa escena de baile de La La Land.
00:08:56E intentaré eliminar a Emma Stone de la escena y ver qué pasa.
00:09:01Vaya, miren eso.
00:09:03Esto se ve casi impecable.
00:09:05Realmente puedo creer que Ryan Gosling está bailando solo aquí.
00:09:09Y miren el momento en que Emma Stone pasa por delante de Ryan Gosling.
00:09:13Esa transición es casi perfecta.
00:09:15Vemos algunos artefactos menores, pero en su mayor parte, vaya, es un resultado impresionante.
00:09:21De todos los resultados que probé, este fue el mejor.
00:09:24Y por alguna razón, pensé que este iba a ser el ejemplo más difícil de ejecutar.
00:09:28Pero sorprendentemente, este dio los mejores resultados de todas las pruebas que hice.
00:09:33Muy bien.
00:09:34Quiero probar un ejemplo más.
00:09:35Y en este, quiero intentar eliminar a Leonardo DiCaprio de la famosa escena de Titanic y
00:09:41ver qué sucede.
00:09:42Oh, vaya, eso se ve algo triste.
00:09:48Pobre Kate Winslet.
00:09:49Dios mío.
00:09:50Simplemente ahí parada sola sin Jack.
00:09:53Eso se ve interesante.
00:09:55Vemos que este modelo hizo un gran trabajo eliminando a Leo de la escena.
00:09:59Aunque podemos ver algunos artefactos restantes en el brazo de Kate Winslet.
00:10:03Y Dios mío, esto es muy espeluznante.
00:10:06Todavía hay una mano espeluznante sujetando el brazo de Kate en el otro lado.
00:10:10Oh, no.
00:10:11Ya no puedo dejar de verlo.
00:10:14Sinceramente, es culpa mía porque no segmenté esos puntos específicos para su eliminación
00:10:19en el paso de segmentación.
00:10:21Así que eso es cosa mía.
00:10:23Y también vemos que la cara de Kate Winslet se deforma un poco.
00:10:26Definitivamente hay algo de "valle inquietante" ocurriendo aquí.
00:10:30En general, creo que esta herramienta hace lo que promete.
00:10:33Es solo cuestión del video específico y de su naturaleza.
00:10:37Obviamente, no podemos obligar a Morfeo a quedarse quieto en esta escena.
00:10:41Pero si miramos otros ejemplos en su página del proyecto, son absolutamente increíbles.
00:10:46Creo que este modelo tiene capacidades sólidas y quizás con más entrenamiento,
00:10:51podría mejorar aún más.
00:10:52Así que ahí lo tienen, amigos.
00:10:53Ese es el modelo VOID en pocas palabras.
00:10:55Sinceramente, me divertí mucho probando esto.
00:10:58Y como lo desarrolla Netflix, tengo mucha curiosidad por saber ¿para qué lo usarán?
00:11:03¿Podría usarse para alterar algunas narrativas de video basadas en las preferencias o elecciones del usuario?
00:11:04¿De forma similar a como Netflix añadió esa experiencia interactiva de "elige tu propia aventura"
00:11:09en el episodio Bandersnatch de Black Mirror?
00:11:15¿Recuerdan eso?
00:11:17¿Quién sabe?
00:11:18En cualquier caso, va a ser muy interesante ver cómo evoluciona el uso de esta herramienta en el
00:11:19futuro.
00:11:23Y bien, ¿qué opinan de este marco de trabajo?
00:11:24¿Para qué tipo de casos de uso sería útil esta herramienta?
00:11:27Cuéntennos sus ideas en la sección de comentarios de abajo.
00:11:30Y amigos, si les gusta este tipo de análisis técnicos, por favor háganmelo saber dándole
00:11:33a ese botón de "me gusta" debajo del video.
00:11:37Y tampoco olviden suscribirse a nuestro canal.
00:11:39Este ha sido Andrés de Better Stack y los veré en los próximos videos.
00:11:42Andrés se despide de parte de Better Stack, ¡hasta la próxima!