Spaces:
Running
Running
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 |