File size: 985 Bytes
f188564
 
 
 
 
 
 
 
 
 
35bbeb0
f188564
35bbeb0
f188564
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2a02670
 
f188564
2a02670
1f2a1fb
2a02670
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
33
34
35
import gradio as gr
import torch
from diffusers import StableVideoDiffusionPipeline
from PIL import Image
import requests
from io import BytesIO
import tempfile

pipe = StableVideoDiffusionPipeline.from_pretrained(
    "stabilityai/stable-video-diffusion-img2vid-xt-1-1",
    torch_dtype=torch.float32,  # dùng float32 để tương thích CPU
    variant="fp16"
).to("cpu")  # chuyển sang CPU

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()
)
from huggingface_hub import login
import os

login(token=os.environ.get("HF_TOKEN"))
demo.launch()

# trigger rebuild