# VideoStory

C'est une expérience avec Stable Diffusion 1.5, Llama 3 et du TTS qui permet la génération de "vidéo" (suite d'images) avec une histoire narrée. Il supporte potentiellement SD Video.
Ce programme n'a pas vraiment pour vocation d'être utilisé.

## Librairie
Voici les dépendances:
```
re
llama_cpp
outetts
diffusers
torch
os
moviepy
```

## Utilisation
Dans le fichier `main.py`, ajoutez dans l'appel de main() le prompt.
`SYSTEMPROMPTT` est le prompt système de Llama.
`SDBAD` est le prompt négatif de Stable Diffusion.
`SYSTEMPROMPTI` est le prompt système de Llama pour Stable Diffusion.

`promptTtoI.txt` et `promptUtoT.txt` sont respectivement le prompt système de Stable Diffusion et celui de Llama.

Dans le fichier `gen.py`, dans les fonctions `loadllama()`, `loadtts()` et `loadsdxl()` vous devez ajouter vos models (fichiers locaux).

Le programme se lance avec `main.py`.

## Fonctionnement
```mermaid
flowchart TD;
sd{{"Stable Diffusion"}}
img1["Image 1"]
img2["Image 2"]
img3["Image 3"]
p1["Paragraphe 1"]
p2["Paragraphe 2 + (1)"]
p3["Paragraphe 3 + (1 + 2)"]
fa["Fichier Audio"]
vd{"Vidéo"}
prt{"Prompt"}
llm{{"Llama"}}
llm1{{"Llama"}}
llm2{{"Llama"}}
llm3{{"Llama"}}
tts{{"TTS"}}
prt --> llm;
llm --> Texte;
Texte --> p1;
Texte --> p2;
Texte --> p3;
Texte --> tts;
tts --> fa;
p1 --> llm1;
p2 --> llm2;
p3 --> llm3;
llm1 --> sd
llm2 --> sd
llm3 --> sd
sd --> img1;
sd --> img2;
sd --> img3;
fa --> vd;
img1 --> vd;
img2 --> vd;
img3 --> vd;
```

## Exemple de sortie

https://uwo.nya.pub/forge/Joachim/VideoStory/src/branch/main/out.mp4