Spaces:
Runtime error
Runtime error
import torch | |
import gradio as gr | |
from diffusers import DiffusionPipeline | |
# Загрузка модели | |
model_id = "ali-vilab/text-to-video-ms-1.7b" | |
pipe = DiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16, variant="fp16") | |
pipe = pipe.to("cpu") # Установка CPU как устройства для модели | |
def generate_video(prompt: str, num_inference_steps: int = 50, guidance_scale: float = 7.5): | |
""" | |
Генерирует видео по текстовому описанию. | |
Args: | |
prompt (str): Текстовое описание видео. | |
num_inference_steps (int, optional): Количество шагов вывода. По умолчанию 50. | |
guidance_scale (float, optional): Масштаб направляющей. По умолчанию 7.5. | |
Returns: | |
str: Путь к сгенерированному видео. | |
""" | |
video_frames = pipe(prompt, num_inference_steps=num_inference_steps, guidance_scale=guidance_scale).frames | |
video_path = f"generated_video_{prompt[:10]}.mp4" | |
video_frames[0].save(video_path, save_all=True, append_images=video_frames[1:]) | |
return video_path | |
with gr.Blocks() as demo: | |
with gr.Row(): | |
with gr.Column(): | |
text_input = gr.Textbox(label="Введите текстовое описание видео:") | |
num_inference_steps_slider = gr.Slider(minimum=10, maximum=100, value=50, step=10, label="Количество шагов вывода:") | |
guidance_scale_slider = gr.Slider(minimum=1, maximum=15, value=7.5, step=0.5, label="Масштаб направляющей:") | |
generate_button = gr.Button("Сгенерировать видео") | |
with gr.Column(): | |
video_output = gr.Video(label="Сгенерированное видео:") | |
generate_button.click(fn=generate_video, inputs=[text_input, num_inference_steps_slider, guidance_scale_slider], outputs=video_output) | |
demo.launch() |