Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from diffusers import StableVideoDiffusionPipeline, StableDiffusionPipeline | |
| from PIL import Image | |
| from gtts import gTTS | |
| from moviepy.editor import ImageSequenceClip, AudioFileClip | |
| from moviepy.audio.AudioClip import CompositeAudioClip | |
| import torch, os | |
| pipe_img = StableDiffusionPipeline.from_pretrained( | |
| "dreamlike-art/dreamlike-photoreal-2.0", torch_dtype=torch.float16 | |
| ).to("cuda") | |
| pipe_vid = StableVideoDiffusionPipeline.from_pretrained( | |
| "stabilityai/stable-video-diffusion-img2vid-xt", torch_dtype=torch.float16, variant="fp16" | |
| ).to("cuda") | |
| os.makedirs("bgm_samples", exist_ok=True) | |
| os.system("wget -q -nc -O bgm_samples/calm.mp3 https://github.com/mekarpeles/sample-audio/raw/main/calming.mp3") | |
| def generate(prompt, lang): | |
| image = pipe_img(prompt, height=512, width=896).images[0] | |
| image.save("input.png") | |
| frames = pipe_vid(Image.open("input.png")).frames | |
| clip = ImageSequenceClip(frames, fps=6) | |
| tts = gTTS(text=prompt, lang=lang) | |
| tts.save("voice.mp3") | |
| music = AudioFileClip("bgm_samples/calm.mp3").subclip(0, clip.duration) | |
| voice = AudioFileClip("voice.mp3").set_duration(clip.duration) | |
| audio = CompositeAudioClip([music.volumex(0.3), voice]) | |
| clip = clip.set_audio(audio) | |
| clip.write_videofile("output.mp4", codec="libx264", audio_codec="aac") | |
| return "output.mp4" | |
| demo = gr.Interface( | |
| fn=generate, | |
| inputs=[gr.Textbox(label="Prompt"), gr.Dropdown(["vi", "en", "ja", "ko"], label="Language", value="vi")], | |
| outputs=gr.Video(label="🎬 Video kết quả"), | |
| title="Prompt2Video", | |
| description="Tạo video AI từ prompt với hình ảnh, chuyển động, giọng đọc và nhạc nền." | |
| ) | |
| demo.launch() | |