File size: 854 Bytes
f188564
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1f2a1fb
 
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
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()
# trigger rebuild