|
import torch |
|
import os |
|
import gradio as gr |
|
from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler |
|
from diffusers.utils import export_to_video |
|
from IPython.display import HTML |
|
from base64 import b64encode |
|
|
|
pipe = DiffusionPipeline.from_pretrained("damo-vilab/text-to-video-ms-1.7b", torch_dtype=torch.float16, variant="fp16") |
|
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config) |
|
pipe.enable_model_cpu_offload() |
|
pipe.enable_vae_slicing() |
|
|
|
def model(txt, time): |
|
prompt = txt |
|
video_duration_seconds = time |
|
num_frames = video_duration_seconds * 10 |
|
video_frames = pipe(prompt, negative_prompt="low quality", |
|
num_inference_steps=25, num_frames=num_frames).frames |
|
video_path = export_to_video(video_frames) |
|
return video_path |
|
|
|
demo = gr.Interface( |
|
fn=model, |
|
inputs=["text", gr.Slider(1, 10, step=1)], |
|
outputs=gr.Video(label="Out",output_width=400, output_height=300) |
|
) |
|
|
|
demo.launch(inline = False) |
|
|