Deepstory es una obra de arte que incorpora generación de lenguaje natural (NLG) con GPT-2, texto a voz (TTS) con TTS convolucional profundo, voz a animación con animación impulsada por voz y animación de imágenes con modelo de movimiento de primer orden en una aplicación multimedia.
En pocas palabras, convierte un texto/texto generado en un video donde el personaje se anima para contar tu historia usando su voz.
Puedes convertir una imagen en un vídeo como este:
Proporciona una interfaz web cómoda y un backend escrito con flask para crear su propia historia.
Admite el modelo de transformadores y los modelos pytorch-dctts.
Colab (flask-ngrok): https://colab.research.google.com/drive/1HYCPUmFw5rN8kvZdwzFpfBlaUMWPNHas?usp=sharing
Video (En caso de que necesites instrucciones): https://blog.thetobysiu.com/video/
¡La versión Colab estará disponible pronto!
Deepstory
├── animator.py
├── app.py
├── data
│ ├── dctts
│ │ ├── Geralt
│ │ │ ├── ssrn.pth
│ │ │ └── t2m.pth
│ │ ├── LJ
│ │ │ ├── ssrn.pth
│ │ │ └── t2m.pth
│ │ └── Yennefer
│ │ ├── ssrn.pth
│ │ └── t2m.pth
│ ├── fom
│ │ ├── vox-256.yaml
│ │ ├── vox-adv-256.yaml
│ │ ├── vox-adv-cpk.pth.tar
│ │ └── vox-cpk.pth.tar
│ ├── gpt2
│ │ ├── Waiting for Godot
│ │ │ ├── config.json
│ │ │ ├── default.txt
│ │ │ ├── merges.txt
│ │ │ ├── pytorch_model.bin
│ │ │ ├── special_tokens_map.json
│ │ │ ├── text.txt
│ │ │ ├── tokenizer_config.json
│ │ │ └── vocab.json
│ │ └── Witcher Books
│ │ ├── config.json
│ │ ├── default.txt
│ │ ├── merges.txt
│ │ ├── pytorch_model.bin
│ │ ├── special_tokens_map.json
│ │ ├── text.txt
│ │ ├── tokenizer_config.json
│ │ └── vocab.json
│ ├── images
│ │ ├── Geralt
│ │ │ ├── 0.jpg
│ │ │ └── fx.jpg
│ │ └── Yennefer
│ │ ├── 0.jpg
│ │ ├── 1.jpg
│ │ ├── 2.jpg
│ │ ├── 3.jpg
│ │ ├── 4.jpg
│ │ └── 5.jpg
│ └── sda
│ ├── grid.dat
│ └── image.bmp
├── deepstory.py
├── generate.py
├── modules
│ ├── dctts
│ │ ├── audio.py
│ │ ├── hparams.py
│ │ ├── __init__.py
│ │ ├── layers.py
│ │ ├── ssrn.py
│ │ └── text2mel.py
│ ├── fom
│ │ ├── animate.py
│ │ ├── dense_motion.py
│ │ ├── generator.py
│ │ ├── __init__.py
│ │ ├── keypoint_detector.py
│ │ ├── sync_batchnorm
│ │ │ ├── batchnorm.py
│ │ │ ├── comm.py
│ │ │ ├── __init__.py
│ │ │ └── replicate.py
│ │ └── util.py
│ └── sda
│ ├── encoder_audio.py
│ ├── encoder_image.py
│ ├── img_generator.py
│ ├── __init__.py
│ ├── rnn_audio.py
│ ├── sda.py
│ └── utils.py
├── README.md
├── requirements.txt
├── static
│ ├── bootstrap
│ │ ├── css
│ │ │ └── bootstrap.min.css
│ │ └── js
│ │ └── bootstrap.min.js
│ ├── css
│ │ └── styles.css
│ └── js
│ └── jquery.min.js
├── templates
│ ├── animate.html
│ ├── deepstory.js
│ ├── gen_sentences.html
│ ├── gpt2.html
│ ├── index.html
│ ├── map.html
│ ├── models.html
│ ├── sentences.html
│ ├── status.html
│ └── video.html
├── test.py
├── text.txt
├── util.py
└── voice.py
Están disponibles en la versión de Google Drive de este proyecto. Todos los modelos (incluidos Geralt, Yennefer) están incluidos.
Primero debes descargar el modelo espacial en inglés.
asegúrese de tener ffmpeg instalado en su computadora y ffmpeg-python instalado.
https://drive.google.com/drive/folders/1AxORLF-QFd2wSORzMOKlvCQSFhdZSODJ?usp=sharing
Para simplificar las cosas, pronto se lanzará una versión de Google Colab...
Se requiere tener una GPU nvidia con al menos 4 GB de VRAM para ejecutar este proyecto.
https://github.com/tugstugi/pytorch-dc-tts
https://github.com/DinoMan/speech-driven-animation
https://github.com/AliaksandrSiarohin/first-order-model
https://github.com/huggingface/transformers
Todo el proyecto usa PyTorch, mientras que tensorflow aparece en requisitos.txt, se usó para que los transformadores conviertan un modelo entrenado desde gpt-2-simple a un modelo de Pytorch.
Sólo los archivos dentro de la carpeta de módulos se modifican ligeramente con respecto al original. Los archivos restantes los escribí yo, excepto algunas partes a las que se hace referencia.
Todavía hay algunos problemas de memoria si sintetizas oraciones dentro de una sesión una y otra vez, pero se necesitan al menos 10 veces para provocar un desbordamiento de la memoria.
Hay otros repositorios de herramientas que creé para preprocesar los archivos. Se pueden encontrar en mi perfil.