File size: 1,333 Bytes
3facca5 f50d492 3facca5 f50d492 c2744cb 3facca5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
import os
if os.environ.get("SPACES_ZERO_GPU") is not None:
import spaces
else:
class spaces:
@staticmethod
def GPU(func):
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
import torch
from diffusers import MochiPipeline
from diffusers.utils import export_to_video
import gradio as gr
# Caricare il modello pre-addestrato
pipe = MochiPipeline.from_pretrained("genmo/mochi-1-preview", variant="bf16", torch_dtype=torch.bfloat16)
# Abilitare le ottimizzazioni per il risparmio di memoria
pipe.enable_model_cpu_offload()
pipe.enable_vae_tiling()
@spaces.GPU(duration=200)
def generate_video(prompt):
# Generare i frame del video
print("Generare i frame del video...")
#frames = pipe(prompt, num_frames=84).frames[0]
frames = pipe(prompt, num_frames=24).frames[0]
# Esportare i frame come video
video_path = "mochi.mp4"
export_to_video(frames, video_path, fps=30)
return video_path
# Creare l'interfaccia Gradio
interface = gr.Interface(
fn=generate_video,
inputs="text",
outputs="video",
title="Mochi Video Generator",
description="Genera un video basato su un prompt di testo utilizzando MochiPipeline."
)
# Avviare l'applicazione
if __name__ == "__main__":
interface.launch() |