He intentado usar deepfakes para transformarme en Elon Musk y Eminem en mis videollamadas: sale mal

Seguramente hayas oído hablar alguna vez de los deepfakes, una tecnología que usa redes neuronales para manipular vídeos y audios. Se han usado para manipular clips de políticos (como Obama) o grandes empresarios (como Zuckerberg) para poner en su boca palabras que nunca han dicho. Estos vídeos tienen algo en común: son espeluznantes y muy realistas. Salvo que tengas el ojo entrenado, es complicado distinguirlos del clip real.

¿Y por qué os cuento esto? Bueno, dejadme que os lo explique en vídeo:

Mira mamá, soy Elon Musk

Como os decía mi avatar, esta semana, buceando por este vasto mundo que es Internet, topamos con Avatarify, una red neuronal que permite hacer deepfakes caseros y usarlos en nuestras videollamadas. Sobra decir que un servidor se apunta a un bombardeo, así que la he instalado en mi ordenador para ver cómo funciona y cuáles son los resultados. Ya tenéis un adelanto arriba, y sí, estoy de acuerdo en que parece que me han pegado una paliza, pero para ser algo que estamos ejecutando en nuestro ordenador, lo cierto es que es realmente curioso.

Avatarify usa una red neuronal para coger la imagen que capta nuestra webcam y superponer cualquier foto, ojo, cualquier foto que queramos. Si nosotros hablamos, la foto habla; si gesticulamos, la foto gesticula. Bueno, vale, con mayor o menor acierto, pero lo hace. Tampoco vamos a ponernos exquisitos con algo que sirve para echarse un risas cuando hagamos videollamadas con los amigos.

Porque sí, Xatakeros, este software se puede usar en Zoom y Skype, así que ya tenéis plan para la videollamada de esta noche. Por supuesto, justo aquí abajo os voy a enseñar cómo instalarlo en vuestro ordenador. Para el caso usaré Windows, pero en la web del proyecto podréis encontrar las las instrucciones para Linux y Mac. En Mac funciona regular, ya os lo advierto.

Los pasos

Como os decía Elon Musk, es muy importante seguir todos los pasos al pie de la letra. Todo es muy sencillo, y sí, es verdad que vamos a tener que usar la consola para escribir un par de comandos, pero nada complicado. Son un par de insutrucciones que puedes copiar y pegar.

  • Instalamos Miniconda, en concreto la versión Miniconda 3 para Windows de 64 bits. Básicamente hay que descargar el ejecutable y todo siguiente, siguiente y siguiente.

  • Acto seguido, instalamos Git, de nuevo, la versión de 64 bits. Siguiente, siguiente y siguiente.

  • Con esto hecho, pulsamos la tecla del icono de Windows en el teclado y buscamos "miniconda". Pulsamos en el primer resultado que nos aparecerá ("Anaconda Prompt (miniconda3)")

  • Escribimos lo siguiente. Importantísimo: copia y pega y no toques nada:

git clone https://github.com/alievk/avatarify.git
cd avatarify
scripts\install_windows.bat

  • Esto lleva un muy buen rato, como 10 minutos en mi caso. Dale tiempo.
  • Cuando termine, descargamos el archivo "vox-adv-cpk.pth.tar" y lo copiamos tal cual en la carpeta de Avatarify. La ruta seguramente sea "C:\Users\Usuario\avatarify". Lo pegamos dentro de esa carpeta.
  • Hecho esto, volvemos a la ventana de comandos. Veremos que la última línea nos muestra esto: "C:\Users\Usuario\avatarify\run_windows.bat". Pulsamos intro y esperamos a que se lance.
  • Si todo ha ido bien, se nos abrirán dos ventanas pequeñas: "cam" y "avatarify", una con la imagen de nuestra webcam y otra con el deepfake. No las cierres bajo ningún concepto.
  • Ahora instalamos OBS Studio y, acto seguido, el plugin VirtualCam para OBS. En la instalación de este último es importante seleccionar "Install and register only 1 virtual camera".
  • Ejecutamos "OBS Studio".
  • En "Fuentes", hacemos clic derecho > "Agregar" > "Capturar ventana" > "Crear nuevo" > "Aceptar" y en "Ventana" seleccionamos "phyton.exe: avatarify". Pulsamos en aceptar y empezará a mostrarse la imagen deepfake en pantalla.
  • En OBS Studios, vamos a "Herramientas" > "VirtualCam" y marcamos "AutoStart" y ponemos los "Buffered Frames" a cero.

Como decía el bueno de Einstein, antes de nada es recomendable conocer un par de cosas del programa para que el resultado sea lo mejor posible. Primero tenemos que colocarnos nosotros y quedarnos más o menos quietos, ya que si nos movemos demasiado el programa se vuelve un poco loco y hace cosas raras con la imagen. Cuando estemos colocados, hacemos clic en la ventana "cam" y pulsamos la tecla "X". La Gioconda os explica por qué.

Esto es lo que pasa cuando no pulsamos la tecla "x" antes de nada.

El programa permite cambiar la imagen en tiempo real pulsando las teclas numéricas 1-9. También podemos desplazarnos a la imagen siguiente o anterior pulsando "A" o "D". El programa tiene nueve imágenes ya preinstaladas, pero ¿recordáis que os dije que se podía usar cualquier foto? Pues sí, basta con que cojamos cualquier foto cuadrada (importante que sea cuadrada) y la llevemos a "C:\Users\Usuario\avatarify\avatars".

Pegamos allí la imagen, cerramos el programa (con la tecla "esc") y volvemos a cargarlo escribiendo "run_windows.bat" en la ventana de comandos de Miniconda. Si hemos cerrado Miniconda por lo que sea, hay que introducir estos dos comandos:

cd C:\Users\Usuario\avatarify
run_windows.bat

Podemos meterle tantas fotos como queramos, pero recomiendo que dejemos solo nueve, ya que así podremos ir alternando entre una y otra rápidamente con las teclas numéricas. Si no sabéis qué imágenes meter, podéis pulsar en la ventana "avatarify" la tecla "G". Steve Jobs os explica por qué.

Eminem se acaba de unir a la videollamada

Ahora que ya tenemos el programa dominado, vamos a implementarlo en las apps de videollamadas. Es muy sencillo, ya que simplemente vamos a decirle a Skype y Zoom que en lugar de usar la fuente de vídeo convencional, que sería la webcam, use el plugin VirtualCamera de OBS, que ya está recibiendo la señal de Avatarify.

  • En Skype: pulsamos los tres puntitos al lado de nuestro nombre > "Configuración" > "Audio y vídeo" y en el desplegable de "Cámara" seleccionamos "OBS-Camera".
  • En Zoom: pulsamos la rueda de ajustes > "Vídeo" y en "Cámara" seleccionamos "OBS-Camera".

Ahora solo tenemos que unirnos a una videollamada y listo, automáticamente aparecerá la cara que hayamos seleccionado previamente en Avatarify. Fácil, sencillo (más o menos) y para toda la familia. La cosa es que configurado una vez, configurado siempre.

Eso sí, por lo que más quieras en este mundo, recuerda volver a configurar la cámara normal cuando vayas a hacer una videollamada seria, no querrás que tu jefe te diga de hacer videollamada y entres con la cara de Spiderman.

Sea como fuere, el resultado, si bien es gracioso, no engaña a nadie. En los deepfakes populares la persona gesticula, abre la boca, parpadea... Pero en los que hemos podido hacer nosotros, más bien no. El movimiento de la boca es muy suave (aunque lo hay), el avatar no parpadea y los movimientos faciales no están bien conseguidos. Con todo, he de reconocer que no está nada mal para echarse unas risas durante un rato con los amigos y experimentar por nosotros mismos lo que son los deepfakes, todo ello en nuestro propio ordenador.

Pues mis deepfakes no se ven igual de bien

Estamos de acuerdo en que estos deepfakes poco o nada tienen que ver con los que se han visto pulular en Internet. El vídeo de Obama es, sin duda, uno de los mejores ejemplos que podemos ver, y eso que es de 2018, pero para conseguir un vídeo de este calibre se necesita tiempo, recursos y potencia de cómputo. No vamos a conseguir un deepfake en condiciones en un ordenador convencional de andar por casa, o al menos no lo vamos a conseguir rápido.

Por ejemplo, para hacer un deepfake que consista en poner la cara de otra persona sobra otra, es necesario una potencia de cómputo bastante alta y mucho tiempo. Por ejemplo, con una NVIDIA GTX 1080 se puede entrenar una red neuronal, pero el proceso puede tardar semanas. Por eso lo más común al hacer este tipo de tareas pesadas es hacerlas en la nube, lo que se conoce como "cloud computing", y eso cuesta dinero.

Un ejemplo muy claro lo tenemos en el deepfake de Zuckerberg que hizo Ars Technica. El resultado es suficiente, pero se notan los fallos y que el vídeo está manipulado. Pues para hacer ese vídeo usaron cuatro GPUs NVIDIA T4 Tensor Core con 16 GB de memoria cada una en una máquina virtual con Linux. Estuvieron trabajando dos semanas y les costó 552 dólares. ¿Se podría haber hecho con una GTX 1080? Sí, salvo que la idea sea tenerlo antes de fin de año, en cuyo caso, mejor no.

Además, es necesario tener un conjunto de datos con el que entrenar a la red neuronal, en este caso, fotos. Ars Technica, por ejemplo, usó 2.598 imágenes que contenían 2.224 caras de Mark Zuckerberg. Todas estas fotos son las que alimentaron al modelo de FaceSwap que recreó la cara. Como se puede intuir, es una tarea titánica y que requiere tiempo, además de dinero.

Nosotros, sin embargo, estamos ejecutando todo este proceso en local, usando un solo frame de referencia (cuando pulsamos "X") y sin movernos demasiado. Puedes saber que la red neuronal está funcionando en local porque con total seguridad la CPU se habrá puesto a funcionar al 100% de su rendimiento. Posiblemente hayas notado que el ventilador se escucha mucho más cuando tienes Avatarify abierto.

Los deepfakes son, sin lugar a dudas, todo un reto. No solo para hacerlos, sino también para detectarlos. Los vídeos y audios manipulados podrían plantear todo un problema a la hora de usar estos archivos como pruebas legales, y las empresas como Adobe ya están trabajando en tecnologías para detectarlos rápidamente. Los que hemos hecho nosotros con Avatarify, sin embargo, son tan fáciles de detectar que hasta un niño podría hacerlo, pero para echarnos unas risas en las videollamadas con los amigos son más que suficientes.

Este artículo forma parte de una sección semanal de Jose García dedicada a abordar la tecnología desde un punto de vista más distendido, personal e informal que publicamos en Xataka todos los sábados.

Ver todos los comentarios en https://www.xataka.com

VER 13 Comentarios

Portada de Xataka