Deepstory ist ein Kunstwerk, das Natural Language Generation (NLG) mit GPT-2, Text-to-Speech (TTS) mit Deep Convolutional TTS, Sprache in Animation mit sprachgesteuerter Animation und Bildanimation mit First Order Motion Model integriert eine Medienanwendung.
Vereinfacht ausgedrückt verwandelt es einen Text/generierten Text in ein Video, in dem die Figur animiert wird, Ihre Geschichte mit ihrer Stimme zu erzählen.
Sie können ein Bild wie folgt in ein Video umwandeln:
Es bietet eine komfortable Weboberfläche und ein mit Flask geschriebenes Backend, mit dem Sie Ihre eigene Geschichte erstellen können.
Es unterstützt Transformers-Modelle und Pytorch-Dctts-Modelle
Colab (flask-ngrok): https://colab.research.google.com/drive/1HYCPUmFw5rN8kvZdwzFpfBlaUMWPNHas?usp=sharing
Video (falls Sie eine Anleitung benötigen): https://blog.thetobysiu.com/video/
Die Colab-Version wird bald verfügbar sein!
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
Sie sind in der Google Drive-Version dieses Projekts verfügbar. Alle Modelle (einschließlich Geralt, Yennefer) sind enthalten.
Sie müssen zuerst das spacige englische Modell herunterladen.
Stellen Sie sicher, dass ffmpeg auf Ihrem Computer installiert ist und ffmpeg-python installiert ist.
https://drive.google.com/drive/folders/1AxORLF-QFd2wSORzMOKlvCQSFhdZSODJ?usp=sharing
Zur Vereinfachung wird bald eine Google Colab-Version veröffentlicht ...
Zum Ausführen dieses Projekts ist eine NVIDIA-GPU mit mindestens 4 GB VRAM erforderlich
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
Das gesamte Projekt verwendet PyTorch, während Tensorflow in der Datei „requirements.txt“ aufgeführt ist. Es wurde für Transformatoren verwendet, um ein von gpt-2-simple trainiertes Modell in ein Pytorch-Modell zu konvertieren.
Lediglich die Dateien im Modulordner sind gegenüber dem Original leicht verändert. Die restlichen Dateien wurden alle von mir geschrieben, mit Ausnahme einiger Teile, auf die verwiesen wird.
Es gibt immer noch einige Gedächtnisprobleme, wenn Sie Sätze innerhalb einer Sitzung immer wieder synthetisieren, aber es dauert mindestens zehn Mal, bis es zu einem Speicherüberlauf kommt.
Es gibt andere Repos mit Tools, die ich zur Vorverarbeitung der Dateien erstellt habe. Sie finden sie in meinem Profil.