caokhoi91's picture
Create app.py
f188564 verified
raw
history blame
836 Bytes
import gradio as gr
import torch
from diffusers import StableVideoDiffusionPipeline
from PIL import Image
import requests
from io import BytesIO
import tempfile
# Load pipeline
pipe = StableVideoDiffusionPipeline.from_pretrained(
"stabilityai/stable-video-diffusion-img2vid-xt-1-1",
torch_dtype=torch.float16,
variant="fp16"
).to("cuda")
pipe.enable_model_cpu_offload()
def generate_video(image_url):
image = Image.open(BytesIO(requests.get(image_url).content)).resize((1024, 576))
result = pipe(image, decode_chunk_size=8, generator=torch.manual_seed(42)).frames[0]
temp = tempfile.NamedTemporaryFile(suffix=".mp4", delete=False)
result.save(temp.name, fps=7)
return temp.name
demo = gr.Interface(
fn=generate_video,
inputs=gr.Text(label="Image URL"),
outputs=gr.Video()
)
demo.launch()