Leo8613 commited on
Commit
e568a88
·
verified ·
1 Parent(s): f100259

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -0
app.py ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import tensorflow as tf
3
+ import numpy as np
4
+ import cv2
5
+ import os
6
+
7
+ # Charger le générateur pré-entraîné
8
+ generator = tf.keras.models.load_model('generator.h5') # Le modèle est sauvegardé dans le même dossier
9
+
10
+ # Dimension du bruit latent
11
+ LATENT_DIM = 100
12
+
13
+ # Fonction pour générer une vidéo à partir du bruit latent
14
+ def generate_video(latent_vector):
15
+ # Convertir le latent_vector en format numpy
16
+ latent_vector = np.array(latent_vector).reshape(1, LATENT_DIM)
17
+
18
+ # Générer une vidéo avec le générateur
19
+ generated_video = generator.predict(latent_vector)
20
+
21
+ # Convertir la vidéo générée en une forme compréhensible pour Gradio
22
+ generated_video = ((generated_video + 1) * 127.5).astype(np.uint8)
23
+
24
+ # Créer un fichier vidéo temporaire avec OpenCV pour Gradio
25
+ out_path = "/tmp/generated_video.mp4"
26
+ fourcc = cv2.VideoWriter_fourcc(*'mp4v') # Codec pour mp4
27
+ out = cv2.VideoWriter(out_path, fourcc, 10, (64, 64)) # 10 FPS, dimensions 64x64
28
+
29
+ # Ajouter chaque frame à la vidéo
30
+ for i in range(generated_video.shape[1]):
31
+ frame = generated_video[0, i]
32
+ out.write(frame)
33
+
34
+ out.release()
35
+ return out_path
36
+
37
+ # Interface Gradio
38
+ iface = gr.Interface(
39
+ fn=generate_video, # Fonction à exécuter
40
+ inputs=gr.inputs.Textbox(label="Latent Vector (100 dimensions)", default="0.5, 0.5, 0.5, ..., 0.5"),
41
+ outputs=gr.outputs.Video(type="file"), # Sortie vidéo
42
+ live=True, # Permet de générer une vidéo immédiatement lorsque le latent vector est modifié
43
+ title="Générateur de Vidéos GAN", # Titre de l'interface
44
+ description="Entrez un vecteur latent de 100 dimensions pour générer une vidéo.",
45
+ )
46
+
47
+ # Lancer l'interface Gradio
48
+ iface.launch()