Spaces:
Runtime error
Runtime error
File size: 1,659 Bytes
dbd64d7 f3b83d2 dbd64d7 f3b83d2 dbd64d7 a06ceef f3b83d2 dbd64d7 f3b83d2 dbd64d7 f3b83d2 |
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 51 52 53 54 55 56 |
import gradio as gr
import torch
from diffusers import WanPipeline, UniPCMultistepScheduler
from PIL import Image
import numpy as np
import random
import os
device = "cuda" if torch.cuda.is_available() else "cpu"
pipe = WanPipeline.from_pretrained(
"Wan-AI/Wan2.2-TI2V-5B-Diffusers",
torch_dtype=torch.float16 if device=="cuda" else torch.float32
)
pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to(device)
FIXED_FPS = 24
MIN_DURATION, MAX_DURATION = 1, 8
def generate_video(prompt, duration, init_image=None):
duration = max(MIN_DURATION, min(MAX_DURATION, duration))
input_image = None
if init_image is not None:
input_image = Image.fromarray(init_image).convert("RGB")
video = pipe(
prompt=prompt,
img=input_image,
height=512,
width=512,
duration_seconds=duration,
guidance_scale=1.0
).videos[0]
video_path = "output.mp4"
video.save(video_path)
return video_path
with gr.Blocks() as demo:
gr.Markdown("## Wan 2.2 TI2V-5B Video Generator")
with gr.Row():
prompt_input = gr.Textbox(label="Prompt", placeholder="Describe your scene")
duration_input = gr.Slider(label="Duration (seconds)", minimum=1, maximum=8, step=1, value=4)
init_image_input = gr.Image(label="Optional Initial Image", type="numpy")
generate_btn = gr.Button("Generate Video")
output_video = gr.Video(label="Generated Video")
generate_btn.click(
generate_video,
inputs=[prompt_input, duration_input, init_image_input],
outputs=output_video
)
demo.launch()
|