Video_generator / app.py
Leo8613's picture
Update app.py
d297eb3 verified
raw
history blame
1.83 kB
import tensorflow as tf
import numpy as np
import cv2
import gradio as gr
# Charger le modèle sans compilation (pour éviter les erreurs liées à batch_shape)
try:
generator = tf.keras.models.load_model('generator.h5', compile=False) # Charger sans compilation
except ValueError as e:
print("Erreur lors du chargement du modèle, vérifier batch_shape.")
print(e)
# Fonction pour générer une vidéo à partir d'un bruit aléatoire
def generate_video():
# Générer un bruit aléatoire (entrée pour le générateur)
noise = np.random.normal(0, 1, (1, 16, 64, 64, 3)) # Exemple de bruit pour 16 frames de 64x64x3
generated_video = generator.predict(noise) # Générer la vidéo
# Normaliser les données générées
video = (generated_video[0] * 255).astype(np.uint8) # Convertir en entier 8 bits
filename = "/content/generated_video.mp4"
# Sauvegarder la vidéo
fourcc = cv2.VideoWriter_fourcc(*'mp4v') # Codec vidéo
height, width, _ = video[0].shape
out = cv2.VideoWriter(filename, fourcc, 15, (width, height)) # 15 FPS
# Ajouter les frames dans le fichier vidéo
for frame in video:
out.write(frame)
out.release()
return filename
# Interface Gradio
def interface_function():
# Appeler la fonction de génération et retourner la vidéo générée
video_file = generate_video()
return video_file
# Définir l'interface avec Gradio
gr.Interface(
fn=interface_function, # Fonction à exécuter
inputs=[], # Pas d'entrée utilisateur
outputs=gr.Video(label="Vidéo générée"), # Vidéo en sortie
title="Générateur de Vidéos avec IA",
description="Cliquez sur le bouton ci-dessous pour générer une vidéo aléatoire avec l'IA."
).launch(server_name="0.0.0.0", server_port=7860)