File size: 2,170 Bytes
c472b15
 
7b36a3f
c472b15
 
b0267fa
 
c472b15
 
 
 
d632df8
c472b15
 
3c33543
b8de6eb
91cab35
d632df8
c472b15
b047869
3c33543
b8de6eb
 
 
3c33543
 
3e146c8
 
c472b15
 
3141b27
a50a2f9
3c33543
3e146c8
 
 
 
 
4cf12dc
3e146c8
 
 
 
aff9002
 
3e146c8
3141b27
3c33543
 
3141b27
 
 
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import gradio as gr
import spaces
import torch
from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler
from diffusers.utils import export_to_video
import cv2
import numpy as np

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()

@spaces.GPU(duration=250)
def generate(prompt, num_inference_steps, num_frames):
    video_frames = pipe(prompt, num_inference_steps=num_inference_steps, num_frames=num_frames).frames[0]
    video_path = export_to_video(video_frames, fps=10)
    return video_path

prompt = gr.Textbox(label="Enter prompt to generate a video", info="Based on this prompt ai will generate a video")
description="""
πŸš€ This is **unofficial** demo of Openai's Sora that haven't been released yet.\n
βœ” This space made using [ali-vilab/text-to-video-ms-1.7b](https://huggingface.co/ali-vilab/text-to-video-ms-1.7b)\n
⌚ Estimated generation time is **150 seconds**\n
🎁 Space is running on ZeroGPU, if you want faster generation, duplicate space and choose faster GPU
"""
num_inference_steps=gr.Slider(8, 128, step=1, value=24, label="Num Inference Steps", info="More steps then better quality")
num_frames=gr.Slider(8, 1000, step=1, value=200, label="Num of Frames", info="It is duration of video")

interface = gr.Interface(
  generate,
  inputs=[prompt],
  additional_inputs=[num_inference_steps, num_frames],
  examples=[
      ["Astronaut riding a horse", 60, 100], 
      ["Darth vader surfing in waves", 30, 200], 
      ["A house in the woods in ocean", 70, 100], 
      ["A car in the forest", 70, 100],
      ["A house firing", 60, 150],
      ["A plane firing and falling down", 100, 20],
      ["Campfire", 50, 50],
      ["Zombie apocalypse", 100, 20],
      ["A New Yourk City", 100, 20],
      ["A man running in beautiufl forest", 100, 20],
      ["A cup of tea with fog", 100, 20]
  ],
  outputs="video",
  title="Openai Sora (Unofficial)",
  description=description,
  cache_examples=False,
  theme="soft"
).launch()