Fake Porn, reemplazando rostros con Machine Learning

Imagen de Fake Porn, reemplazando rostros con Machine Learning

No, no es Daisy Ridley en la intro de un video porno, es su rostro incrustado en la actriz por ML


Hace unas semanas había leído, y luego compartido, una nota sobre un developer que se había puesto a trabajar con Machine Learning para reemplazar rostros en un video por otro. Una especie de face swap en el cual sólo interviene un algoritmo y no tanto el usuario.

Lo más curioso del caso era que estaban creando porno a partir de celebridades, videos bien fake tomando una escena de cualquier película pornográfica y aplicándole vía este software el rostro de alguna actriz famosa. Suena creepy, no? Porque lo es.

Pasaron los días y Motherboard nuevamente retomó el tema para encontrarse con que todo esto había crecido y hasta se había facilitado, quise entender un poco más así que el otro día instalé el software e hice mi propio experimento. Si, esto da miedo.

Fake Porn, fake todo



Hasta hace un tiempo era normal que algún despistado encontrase en la web lo que creía era una fotografía comprometedora de alguna celebridad pero que en realidad era una imagen de una modelo erótica con el rostro reemplazado por una fotografía de cualquier otro origen. Con un poco de ojo experto se pueden notar las pinceladas del editor, mucho Photoshop mediocre deja marcas, pocos buenos editores saben hacer ese trabajo realmente bien.

Pero ¿Y si no lo hace un humano?

Crear una imagen falsa a partir de machine learning tiene muchas ventajas, primero que nada el trabajo queda totalmente en manos de una computadora, el usuario no interviene, no pierde el tiempo, el resultado puede ser bueno o algo horrible, pero de eso se trata ML, de probar, probar y probar hasta que algo bueno salga sin tener que hacerlo a mano una y otra vez.

Video de YouTube
▶ Ver video en YouTube

Hasta Macri terminó como el Hitler de "La caída"


ML se puede utilizar para millones de cosas, desde identificar qué hay en una imagen (reconocimiento de rostros, de texto, etc.) hasta para interpretar texto, ahora bien, utilizarlo para crear pornografía era algo que tarde o temprano iba a ocurrir.

En Reddit apareció un usuario (deepfakes) con varios gif bastante convincentes de rostros de famosas en escenas pornográficas, obviamente más de uno se interesó y al poco tiempo ya había un subreddit con todas las creaciones de cientos de autores experimentando con sus PCs.

La variedad es enorme pero obviamente se centran en celebridades como Daisy Ridley, Gal Gadot, Maisie Williams, Emma Watson, Taylor Swift, etc. Cualquier persona que disponga de suficiente material disponible online en forma de imagenes o video sirve.

El resultado es increíble, no puedo reproducirlo aquí por razones obvias pero la calidad de algunos es sorprendente, otros, por suerte, son hot pero para cuestiones académicas se pueden mostrar:


Si, es Nicholas Cage haciendo de James Bond, no hay porno aquí, es mi blog! :D


Otro como este caso de la Princesa Leia en Rogue One:


comparado con el que sale en el film el resultado no está nada mal




Otros que linkeo como este MUY bien hecho de Natalie Dormer son impresionantes por el trabajo que tienen y otros como este malísimo de Emma Watson en el cuerpo de la actriz porno Lexi Belle dejan en claro que no siempre sale bien.

Lo interesante de todo esto es lo que implica, lo voy a hablar más adelante, ahora pasemos a lo técnico...

Fake App y hágalo usted mismo



Cómo hacen todo esto? Bueno, un poco de Tensorflow, el backend de Google para entrenar machine learning, mucho procesador y mucho GPU, pero además hace falta información para entrenar a este algoritmo.

El truco está en tener una muy buena cantidad de fotos o frames de video de la persona a "mezclar" y luego un "lienzo", un buen video donde reemplazar a quien esté por el otro rosto.

El creador de estos primeros videos armó una Fake App, una aplicación que te permite hacer el trabajo vos mismo sin mucho esfuerzo, conseguirla no es fácil porque los links son medio turbios pero pude hacerme de la misma.

Requiere que uno instale CUDA 8.0, el framework de NVidia para Machine Learning, si uno quiere utilizar el GPU, aprovechando que tengo una GTX 1070 era algo que debía intentar.



No me esmeré demasiado en buscar info, quería sacar algo rápido así que tomé un video mío de un resumen semanal (el segundo de este año para ser más específicos) y tomé uno de Brad Pitt en una entrega de premios, seguí los pasos super básicos.

Primero un script desarma el video en frames independientes, segundo otro recorta y alínea los rostros (los detecta automáticamente), tercero se le dice al algoritmo que entrene.

Uno tiene un preview constante de qué está haciendo, el procesador y el GPU se usan muy fuerte (tengo que ver la config para ver cómo se puede limitar/aumentar el uso de ambos) y se deja horas. Cuando digo horas digo MUCHAS HORAS.

Si el material es bueno, el resultado también lo es, sino se notan errores principalmente en las cejas o las uniones entre un rostro y la cara. Así quedó lo que hice :D fueron seis horas de procesamiento y, como dije, sin muy buen material:

Video de YouTube
▶ Ver video en YouTube


Como verán es creepy para la mierda pero lo interesante es que unificó los colores, los tonos, la boca sigue el movimiento, falló bastante porque tenía poco material, apenas 424 frames del video de Brad Pitt. No quería que tardase mucho pero ese fue un error mío, debería haber usado 2000 fotos y de otros videos también.

¿Se puede hacer con cualquier hardware? No lo recomiendo, si uno tiene una buena placa de video, procesador, memoria y espacio en disco puede divertirse mucho, sino, si se tiene pocos recursos, recomendaría trabajar con resoluciones mucho más bajas, imagenes bien claras y fáciles de adaptar.

¿A dónde nos lleva todo esto?



Pues bien, esto ya de por sí da miedo pero ¿A dónde nos lleva? Las preguntas e ideas en mi cabeza son incontables ya, piensen que de ahora en más podremos dudar, con razón, de cualquier video porno de famoso.

Si bien en un primer momento es un riesgo para todos en el mediano plazo será la excusa perfecta de todos "No soy yo, es un video hecho con Fake App, re obvio" y listo, es el escudo protector para todos. O no.

Al mismo tiempo, en la medida de que esto mejore tecnológicamente (apenas estamos en la primer versión), cualquiera puede ser implicado en cualquier crimen o metida de pata con un video fraguado. Si antes una imagen era falsificable ahora lo es un video.

Como vieron en mi experimento fallido, la iluminación y los colores los adaptó perfectamente y yo no intervine, el algoritmo probó y probó hasta que dio con algo que se adaptaba a mi rostro y mi escena. Imaginen que preparo tanto la fuente como el destino para esto (en vez de tomar cualquier video que vi en Youtube) y entreno con mucho mayor poder de cómputo durante más tiempo.

Ahí está la clave de esto, puedo reemplazar a cualquier persona en cualquier video por la que yo quiera y el resultado va a ser perfecto e imposible de demostrar que no lo es. Claro, no piensen en estos videos simples hechos por tipos con una PC hogareña, piensen en algo mucho más allá con poder de cómputo real y presupuesto.

Por el lado de la pornografía es interesante porque abre una discusión enorme. Los sitios más legales y dentro de países con sistemas judiciales coherentes no van a poder sacar provecho, pero imaginen el potencial para todo aquel que está en el borde del sistema? Ya ganan dinero con fotos fakes de famosas teniendo sexo, imaginen el negocio que se les abre con videos fakes.

Sigo proyectando hacia el futuro e imagino un día en el que mezclen Realidad Aumentada con reemplazo de rostros, ya nadie va a tener sexo con su pareja sino con la persona de sus sueños, eso sí que da miedo :D

Para las próximas navidades nuestro pariente crédulo ya no te va a hablar de que el hombre no llegó a la Luna o la Tierra es plana, va a estar comentando y reenviándote por whatsapp videos fake, ahí te quiero ver.

Volver al inicio Ver original