import gradio as gr import torch from diffusers import CogVideoXPipeline from diffusers.utils import export_to_video import tempfile import os MODEL_ID = "THUDM/CogVideoX-5b" print("loading model...") pipe = CogVideoXPipeline.from_pretrained( MODEL_ID, torch_dtype=torch.bfloat16 ) pipe.enable_model_cpu_offload() pipe.vae.enable_tiling() print("model ready.") def generate_video( prompt: str, negative_prompt: str, num_frames: int, fps: int, guidance_scale: float, num_steps: int, seed: int ): generator = torch.Generator().manual_seed(seed) frames = pipe( prompt=prompt, negative_prompt=negative_prompt, num_frames=num_frames, guidance_scale=guidance_scale, num_inference_steps=num_steps, generator=generator, ).frames[0] tmp = tempfile.NamedTemporaryFile(suffix=".mp4", delete=False) export_to_video(frames, tmp.name, fps=fps) return tmp.name with gr.Blocks(theme=gr.themes.Soft(), title="⚡ Video Generator") as demo: gr.Markdown("# ⚡ Video Generator\nپاور گرفته از CogVideoX-5b") with gr.Row(): with gr.Column(scale=1): prompt = gr.Textbox( label="پرامپت", placeholder="یه صحنه توضیح بده...", lines=4 ) negative_prompt = gr.Textbox( label="پرامپت منفی", value="low quality, blurry, distorted, ugly, bad anatomy, watermark", lines=2 ) with gr.Row(): num_frames = gr.Slider( label="تعداد فریم", minimum=8, maximum=49, step=1, value=25 ) fps = gr.Slider( label="FPS", minimum=4, maximum=16, step=1, value=8 ) with gr.Row(): guidance_scale = gr.Slider( label="Guidance Scale", minimum=1.0, maximum=20.0, step=0.5, value=6.0 ) num_steps = gr.Slider( label="Inference Steps", minimum=10, maximum=50, step=1, value=30 ) seed = gr.Number(label="Seed", value=42, precision=0) btn = gr.Button("⚡ تولید ویدیو", variant="primary") with gr.Column(scale=1): output = gr.Video(label="ویدیو خروجی") btn.click( fn=generate_video, inputs=[prompt, negative_prompt, num_frames, fps, guidance_scale, num_steps, seed], outputs=output ) demo.launch() gradio>=4.0.0 torch>=2.0.0 diffusers>=0.27.0 transformers>=4.40.0 accelerate>=0.28.0 imageio[ffmpeg] --- title: Video Generator emoji: ⚡ colorFrom: purple colorTo: indigo sdk: gradio sdk_version: "4.0.0" app_file: app.py pinned: false hardware: a10g-small ---