Tutorial para crear "Deepfakes"

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Tutorial para crear "Deepfakes"

    Haga clic en la imagen para ver una versión más grande  Nombre:	Portada.jpg Visitas:	0 Size:	680,2 KB ID:	224204

    ¿Cómo habría sido Indiana Jones si en vez de Harrison Ford hubiera sido Tom Selleck el que lo interpretara, o que Terminator hubiera sido Sylvester Stallone y no Arnold Schwarzenegger habría sido igual de buena?
    Mediante el deepfake, podemos tener esa posibilidad de transformar a una persona en otra, bueno no a la persona en sí, pero si la cara.

    ¿Cómo funciona esta tecnología?

    Los deepfakes se crean a través de una inteligencia artificial que aprende mediante la práctica, recreando imágenes e incluso sonido (sí, también existen deepfakes de voz), mediante información de ejemplo que se le facilita a la IA y la procesa, adaptando una imagen o voz al modelo original, recreando gestos y demás movimientos faciales.
    La IA necesita aprender y practicar. Es igual que un pintor que copia un modelo, cada vez lo hará mejor, hasta que sea capaz de adaptar ese modelo a otro, sustituyendo el original por el nuevo, pero adaptado a los gestos del original.

    ¿Qué material le tenemos que facilitar a la IA?

    Primero necesitamos un video de destino al que queremos aplicar la modificación (Indiana Jones) y luego necesita material, videos, fotos del que será el impostor que sustituya a Harrison Ford. No es necesario crear un video con los mismos gestos del personaje que queramos sustituir, es suficiente con videos aleatorios de esa persona, ya que la IA se encarga de coger el material necesario y aprender de él.
    Obviamente, para conseguir cierto nivel de calidad, es necesario tener un buen número de muestras lo más parecidas al video original. Si Harrison Ford gira la cabeza hacia la derecha, necesitamos tener imágenes en las que el modelo que lo sustituirá gire la cabeza a la derecha, lo mismo si abre la boca, cierra los ojos, etc.

    Conclusiones:

    Sin duda, la inteligencia artificial es cada vez más potente y optimizada, sin tener la necesidad de disponer de potentísimos ordenadores para hacer uso de ella, aunque siempre es recomendable porque mayormente lo que conseguiremos es reducir el tiempo que tarde en hacer un trabajo.
    La mayoría de la gente ve esta tecnología como ocio y diversión, una curiosidad entretenida con la que poder pasarlo bien y reírse, pero también es algo de lo que tenemos que preocuparnos, porque no todo el mundo la va a usar con estas intenciones y es que tener la capacidad de suplantar a una persona con la que queramos con intenciones oscuras, es un delito grave.
    Cada vez se utiliza más para la industria del cine, en el que anteriormente se generaban las caras en 3D y se animaban con captura facial de movimiento. La calidad depende más del escultor de la cara y la iluminación, lo que en general no daba un resultado demasiado creíble, pero ahora los deepfakes están sustituyendo esto con mejores y más sencillos resultados.
    Como no es necesario disponer de grandes equipos informáticos, ya que existen métodos de computación en la nube como los de "Google Colab", todo el mundo puede hacer deepfakes, lo que dependerá más del material que le demos a la IA, talento nuestro a la hora de retocar y manejar los programas, y tiempo. Si que es verdad que, si disponemos de una buena tarjeta gráfica, ayudará a procesar la información mejor, acortando el tiempo que necesita para conseguir resultados.
    Sabiendo esto, es hora de ponernos manos a la obra y hacer ¡nuestro primer deepfake!

    Editado por última vez por Grey Wolf 25-06-21, 20:58:41.

  • #2
    Tutorial

    El programa contiene una cantidad de opciones abrumadora, por lo que me voy a centrar en lo más básico para poder comenzar a trastear. Con el tiempo y la experiencia, el que quiera, podrá tener acceso a información más profunda que encontrará con bastante facilidad, así como material y demás. Existe una comunidad grande, en la que se aporta desde tutoriales a librerías de caras ya preparadas.
    Recordad, no pretendáis tener resultados espectaculares desde el principio, hay que aprender y dejar que la IA aprenda lo suficiente.
    Para este tutorial, utilizaremos el material de ejemplo que viene con el programa, para así facilitar el aprendizaje al usuario, pudiendo comparar sus resultados con los de la guía en sus primeras interacciones, siguiendo los pasos de forma sencilla.

    Comenzamos:

    Para descargar el programa, hay que ir a la página de github https://github.com/iperov/DeepFaceLab
    Hacemos scroll hacia abajo hasta llegar a la parte que pone "Releases" y seleccionamos la que pone Windows (magnet link). Nos descagrará los archivos por Torrent, por lo que recomiendo que utilices un gestor de descargas.

    Haga clic en la imagen para ver una versión más grande

Nombre:	Descargar.jpg
Visitas:	3045
Size:	141,8 KB
ID:	224226

    Cuando añadamos el link al gestor de descargas, nos aparecerán varios archivos.

    Haga clic en la imagen para ver una versión más grande

Nombre:	Torrent.jpg
Visitas:	2954
Size:	63,4 KB
ID:	224227

    Recomiendo que selecciones solo los archivos que vas a necesitar. Para saber cuáles son, es importante saber la compatibilidad de tu tarjeta gráfica, porque según el modelo que tengas, utilizarás un archivo u otro.

    - Para los modelos de Nvidia 900-1000 y compatibles con GTX y RTX 2000 series usa "Nvidia up to RTX2080Ti" build.
    - Para la serie Nvidia 3000 usa "Nvidia RTX3000 series" build.
    - Para las series modernas de GPU de AMD usa "DirectX12" build (no funciona para tarjetas antiguas de AMD).

    Ejemplo para pc con una GPU GTX 1070:

    DeepFaceLab\AMP dst WF faceset\Aligned\faceset.pak
    DeepFaceLab\DeepfaceLab_NVIDIA_up_to_RTX2080ti_build_06_02_2021

    Así nos ahorramos descargar varios gigas innecesarios.
    Una vez descargados, descomprimimos el archivo acorde a nuestro modelo de tarjeta gráfica.

    Haga clic en la imagen para ver una versión más grande

Nombre:	Carpeta programa.jpg
Visitas:	2879
Size:	246,7 KB
ID:	224228

    Comentario


    • #3
      “DeepFaceLab 2.0” - Consiste en unos cuantos archivos .bat que usaremos paso a paso para crear nuestros proyectos y se localizan en la carpeta principal con dos subcarpetas:
      “internal” - Archivos internos (No se toca).
      “workspace” - Aquí es dónde están tus archivos con los que trabaja el programa, como videos, sets de datos y el video final.


      Ahora que ya tenemos el programa descomprimido y preparado, lo que necesitamos son materiales con los que trabajar.
      Necesitamos un video al que queremos cambiar la cara (destino) y otro video del que extraer las caras o fotografías de caras ya extraídas (origen).
      El material de ejemplo lo encontraremos en la carpeta “workspace”, en dos archivos con los nombres: data_dst.mp4 y data_src.mp4.

      Data_dst es el video de destino, al que le vamos a cambiar la cara.
      Data_src es el video de origen, del que extraeremos las caras para sustituirlas en el video de origen. Si disponemos de material ya preparado (caras ya preparadas por la comunidad), las meteríamos en la subcarpeta “aligned” de la carpeta “data_src”, lo cual nos ahorrará algunos pasos en el proceso de creación de nuestro deepfake.

      Haga clic en la imagen para ver una versión más grande

Nombre:	data_dst.jpg
Visitas:	3034
Size:	112,6 KB
ID:	224230Haga clic en la imagen para ver una versión más grande

Nombre:	data_src.jpg
Visitas:	3229
Size:	105,6 KB
ID:	224231
      Ejemplos de videos destino y origen.

      Para utilizar videos de nuestra propia elección y que el programa los reconozca, tenemos que hacer los pasos siguientes:
      Lo primero es elegir el video de destino al que queramos sustituir la cara. Recomiendo para aprender, escoger material en el que solo salga una cara, que esta no aparezca muy cerca y que permanezca lo más frontal posible. Se pueden hacer deepfakes con más personas en el video y con primeros planos, gafas y demás, pero lo hará más complejo y más si estamos aprendiendo.
      Lo mismo pasa con el video de origen, pero recordad que podemos encontrar material ya preparado.
      Cuando tengamos el material, tendremos que meterlo en la carpeta “workspace” y renombrar los archivos. Para el video “destino” lo renombramos a “data_dst” y para el video “origen” lo renombramos a “data_src”. Nota: no renombréis con la terminación “.mp4”, ya que podéis estropear el archivo cambiándole la extensión.
      Ahora que tenemos material con el que trabajar, podemos empezar a utilizar el programa.
      Cada vez que utilicemos una de las funciones del programa, se nos abrirá una ventana de comandos. El programa no tiene entorno gráfico salvo en ciertas opciones que explicaremos más adelante.



      Pasos que seguiremos, en la imagen de a continuación.

      Haga clic en la imagen para ver una versión más grande

Nombre:	PASOS.jpg
Visitas:	2985
Size:	394,1 KB
ID:	224232

      1)“Clear Workspace”
      :
      Elimina el contenido de las carpetas data_dst y data_src. No es obligatorio hacerlo salvo que haya material de otros trabajos y en ese caso, lo mejor es aprovecharlo metiéndolo en otra carpeta.



      2) “extract images from videodata_src”:
      Extrae fotogramas del video “data_src.mp4” y los mete en la carpeta "data_src" que se crea de forma automática.


      Tenemos dos opciones de extracción:

      - FPS - skip for videos default frame rate, enter numerical value for other frame rate (for example entering 5 will only render the video as it was 5 frames per second, meaning less frames will be extracted)

      - JPG/PNG – Selecciona el tipo de archivo en el que quieres que se extraigan las fotos.
      JPG tiene un poco menos de calidad, pero es suficiente y casi no se nota.
      PNG tiene un poco más de calidad, pero no merece la pena porque, además, al realizar el entrenamiento, el programa no lo hará si las imágenes están en este formato.

      Realmente no nos tenemos que preocupar de nada, porque el programa de forma automática ya se encarga de todo, detectando las mejores opciones según nuestro sistema. Solo tendremos que pulsar “enter” a todo y listo.

      Haga clic en la imagen para ver una versión más grande

Nombre:	proceso normal.jpg
Visitas:	3000
Size:	50,8 KB
ID:	224233
      Ejemplo de funcionamiento y opciones.


      Cuando termine de realizar la operación, obtendremos esto:

      Haga clic en la imagen para ver una versión más grande

Nombre:	data_src-imagenes.jpg
Visitas:	3047
Size:	371,3 KB
ID:	224234
      Fotogramas extraídos del video de origen “data_src”

      3) “extract images from video data_dst FULL FPS
      Extrae fotogramas del archivo de video “data_dst.mp4” y los pone en la nueva carpeta "data_dst".
      Opciones:
      - JPG/PNG – igual que en el paso 2).
      Enter a todo para automático. (No hace falta complicarse).

      Haga clic en la imagen para ver una versión más grande

Nombre:	data_dst-imagenes.jpg
Visitas:	2921
Size:	329,6 KB
ID:	224235
      Fotogramas extraídos del video de destino “data_dst”

      Comentario


      • #4
        Para el paso siguiente tenemos dos opciones:


        4) “data_src faceset extract MANUAL”
        Extracción manual. Tendremos que crear las máscaras de forma manual. Utilizar mejor cuando ya tengáis más experiencia. Esta opción es de las pocas que tienen un entorno gráfico a modo de editor. Permite seleccionar de forma manual y más precisa la extracción de las máscaras, pudiendo marcar ojos, gafas, bocas abiertas con dientes, lengua fuera, con una mayor precisión. Como es algo a hacer de forma manual, tendremos que editar unas cuantas máscaras a mano, pero no es necesario retocar 1000, con hacer una primera de cada gesto importante, o posición de la cabeza/cara, el programa hará el resto. No os obsesionéis con conseguir miles de fotos de la cara, lo importante es la calidad y no es recomendable utilizar. Es mejor 1000 caras con 3 ángulos diferentes de un mismo video de muestra que utilizar videos diferentes.

        Haga clic en la imagen para ver una versión más grande

Nombre:	mascara manual src.jpg
Visitas:	2978
Size:	206,5 KB
ID:	224237
        Ejemplo de extracción de caras a mano.

        4) “data_src faceset extract”
        Extracción automática- Recomiendo este mientras no tengamos demasiada experiencia. Como siempre, todo “enter” y automático.


        4.1) “data_src view aligned result”
        Abre las imágenes en un programa externo, con los archivos "data_src/aligned" para eliminar a mano falsos positivos e imágenes incorrectas como caras de otras personas o de cosas que no sean caras, las cuales eliminaremos. Como se ve en la imagen de abajo, los fotogramas pasan a ser fotos solo de las caras.

        Haga clic en la imagen para ver una versión más grande

Nombre:	aligned_src-imagenes.jpg
Visitas:	2845
Size:	441,9 KB
ID:	224238
        Ejemplo de caras alineadas.

        Haga clic en la imagen para ver una versión más grande

Nombre:	00009.jpg
Visitas:	2910
Size:	24,7 KB
ID:	224239
        Sistema automático.


        Siguiente paso también con dos opciones:


        5) “data_dst faceset extract MANUAL
        Extracción manual, igual que en el paso de extracción de “data_src”.

        Haga clic en la imagen para ver una versión más grande

Nombre:	mascara manual dst.jpg
Visitas:	2983
Size:	185,1 KB
ID:	224240
        Ejemplo de selección manual de máscara.


        5) “data_dst faceset extract”
        Extracción automática de caras. Como siempre, todo “enter” para automático.


        5.1) “data_dst view aligned result”
        Abre las imágenes en un programa externo, con los archivos "data_dst/aligned" para eliminar a mano falsos positivos e imágenes incorrectas como caras de otras personas o de cosas que no sean caras, las cuales eliminaremos. Como se ve en la imagen de abajo, los fotogramas pasan a ser fotos solo de las caras.

        Haga clic en la imagen para ver una versión más grande

Nombre:	aligned_dst-imagenes.jpg
Visitas:	2839
Size:	374,5 KB
ID:	224241
        Ejemplo de caras alineadas.

        Ahora que tenemos material suficiente, le toca entrenar a la IA para reconocer y recrear las caras y como resultado final, crear las caras del sustituto adaptadas a los gestos del sustituido.

        Tenemos dos opciones de entrenamiento que recomiendo:

        6) “train Quick96”: Entrenamiento rápido y sencillo para equipos no tan potentes.
        6) “train SAEHD” (6GB+): Auto decodificado de alta definición. Para tarjetas gráficas potentes con al menos 6GB de VRAM.


        Nota:


        La IA va a entrenar, para eso necesita tiempo de procesamiento, durante el que nuestro procesador va a estar “a tope”, por lo que es mejor que no utilices más programas y lo dejes tranquilo trabajando, porque si lo saturamos de trabajo, puede fallar. Cuanto más potente sea tu procesador (GPU o CPU), más rápido irá.
        La IA trabaja por “interacciones”, a mayor número de estas, mejor será la calidad del resultado final. ¿Cuántas interacciones son las recomendables? Bueno, eso depende mucho de la calidad del resultado que necesites. Normalmente lo que suelen decir los usuarios es que lo mínimo recomendable son entre 50000 o 100000 interacciones.
        Por mi parte, los ejemplos con los que he trabajado son de 10000 y 20000 interacciones para que podáis apreciar un poco la diferencia a niveles bajos.
        Nada os limita, como si queréis hacer un millón de interacciones, eso sí, pobre procesador si lo hacéis del tirón.
        Cabe destacar que el proceso lo podemos parar cuando queramos. Se guarda para poder continuar en otro momento si se desea y aumentar el número de interacciones.
        Si pulsamos la P sobre la ventana con las imágenes de interacción, se actualizará con el resultado hasta ese momento.

        Comentario


        • #5
          Haga clic en la imagen para ver una versión más grande

Nombre:	Training.jpg
Visitas:	2896
Size:	391,2 KB
ID:	224243
          Ejemplo en modo (“train Quick96”) del comienzo del proceso de entrenamiento donde vemos una ventana en la que aparecen caras originales de ambos sujetos.

          Haga clic en la imagen para ver una versión más grande

Nombre:	Training 1032.jpg
Visitas:	2884
Size:	405,3 KB
ID:	224244
          Con 1000 interacciones vemos que la IA comienza a crear caras.


          En la primera y tercera columna, aparecen caras de los videos de ejemplo.
          En la segunda y la cuarta columna, la IA recrea las imágenes de ejemplo tratando de que tengan el mayor parecido posible (es como el pintor que copia, con la práctica lo va haciendo mejor).
          En la quinta columna, la IA crea “a su interpretación”, la cara del sustituto con los gestos del que sustituye.

          Haga clic en la imagen para ver una versión más grande

Nombre:	Diferencia de interacciones.jpg
Visitas:	2854
Size:	1,12 MB
ID:	224245
          Diferencia entre tres valores de interacciones.

          Cuando estemos contentos con el número de interacciones que lleva hechas la IA, podemos pasar a la fase de previsualización y si nos gusta, pues obtener el producto final.


          7) “merge Quick96”

          Esta opción es por si queremos previsualizar el resultado de forma rápida.
          El programa nos dará la opción (de forma automática) de abrir un entorno gráfico para poder realizar ajustes o cambios. Para poder acceder a esas opciones, hay que presionar la tecla de tabulación (las dos flechitas, colocada a la izquierda de la letra Q).

          Haga clic en la imagen para ver una versión más grande

Nombre:	Merger.jpg
Visitas:	2937
Size:	140,4 KB
ID:	224246
          Entorno gráfico con ajustes al realizar el proceso de “merger”.

          Con estas opciones, podremos ajustar el tamaño de la cara, difuminar los bordes de la máscara, ajustar el color, añadir desenfoque de movimiento, etc.
          Recomiendo que probéis por vosotros mismos las opciones.
          Una vez que estéis contentos con el resultado, para que las opciones que hemos hecho se apliquen a todas las caras, tendremos que pulsar las teclas (shift + >).
          El programa realizará la operación y se guardará el resultado en la carpeta “workspace” como un archivo mp4 llamado “result”.


          Como final, podemos hacer el mismo proceso con la opción “merged to mp4”.
          Haga clic en la imagen para ver una versión más grande

Nombre:	Final comparación.jpg
Visitas:	2787
Size:	571,2 KB
ID:	224247

          Aquí podemos ver el resultado con 2 modelos de 10000 y 20000 interacciones de aprendizaje de la IA.


          ¡¡¡Bien, ya has conseguido hacer tu primer Deepfake!!! Sigue practicando, busca guías para mejorar, consulta en foros de la comunidad y podrás llegar a hacer cosas tan impresionantes como: https://www.youtube.com/watch?v=t5pufwWX54o


          Un saludooo


          “Artículo publicado para el concurso de redacción de Geeknetic

          Comentario


          • #6
            La me han llegado los auriculares. Son bestiales. Muchas gracias ;)

            Comentario

            Trabajando...
            X