Spaces:
Running
Running
File size: 4,736 Bytes
cc50ae5 de65314 af96747 cc50ae5 52f5bd3 839e57a cc50ae5 839e57a 39e92a8 db0e646 af96747 db0e646 af96747 cc50ae5 5e7f462 839e57a cc50ae5 839e57a cc50ae5 27dc24e cc50ae5 4181fbb cc50ae5 4181fbb cc50ae5 839e57a |
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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
import gradio as gr
from gradio_client import Client
import os
MORE = """ ## TRY Other Models
### JARVIS: Your VOICE Assistant -> https://huggingface.co/spaces/KingNish/JARVIS
### Instant Image: 4k images in 5 Second -> https://huggingface.co/spaces/KingNish/Instant-Image
"""
# Gradio Client
client = Client("KingNish/Instant-Video")
# Function
def generate_image(prompt, base="Realistic", motion="", step=8, progress=gr.Progress()):
try:
result = client.predict(
prompt=prompt,
base=base,
motion=motion,
step=step,
api_name="/generate_image_1"
)
video_path = result["video"]
return video_path
except ValueError as e:
# Handle GPU quota exceeded error
if 'You have exceeded your GPU quota' in str(e):
raise gr.Error("GPU Quota exceeded. Please try again later.")
else:
raise gr.Error(str(e))
# Gradio Interface
with gr.Blocks(css="style.css") as demo:
gr.HTML(
"<h1><center>Instant⚡Video</center></h1>" +
"<p><center><span style='color: red;'>You may change the steps from 4 to 8, if you didn't get satisfied results.</center></p>" +
"<p><center><strong>First Video Generating takes time then Videos generate faster.</p>" +
"<p><center>To get best results Make Sure to Write prompts in style as Given in Examples</center></p>" +
"<p><a href='https://huggingface.co/spaces/KingNish/Instant-Video/discussions/1'>Must Share your Best Results with Community - Click HERE</a></p>"
)
with gr.Group():
with gr.Row():
prompt = gr.Textbox(
label='Prompt'
)
with gr.Row():
select_base = gr.Dropdown(
label='Base model',
choices=[
"Cartoon",
"Realistic",
"3d",
"Anime",
],
value="Realistic",
interactive=True
)
select_motion = gr.Dropdown(
label='Motion',
choices=[
("Default", ""),
("Zoom in", "guoyww/animatediff-motion-lora-zoom-in"),
("Zoom out", "guoyww/animatediff-motion-lora-zoom-out"),
("Tilt up", "guoyww/animatediff-motion-lora-tilt-up"),
("Tilt down", "guoyww/animatediff-motion-lora-tilt-down"),
("Pan left", "guoyww/animatediff-motion-lora-pan-left"),
("Pan right", "guoyww/animatediff-motion-lora-pan-right"),
("Roll left", "guoyww/animatediff-motion-lora-rolling-anticlockwise"),
("Roll right", "guoyww/animatediff-motion-lora-rolling-clockwise"),
],
value="guoyww/animatediff-motion-lora-zoom-in",
interactive=True
)
select_step = gr.Dropdown(
label='Inference steps',
choices=[
('1-Step', 1),
('2-Step', 2),
('4-Step', 4),
('8-Step', 8),
],
value=4,
interactive=True
)
submit = gr.Button(
scale=1,
variant='primary'
)
video = gr.Video(
label='AnimateDiff-Lightning',
autoplay=True,
height=512,
width=512,
elem_id="video_output"
)
prompt.submit(
fn=generate_image,
inputs=[prompt, select_base, select_motion, select_step],
outputs=video,
)
submit.click(
fn=generate_image,
inputs=[prompt, select_base, select_motion, select_step],
outputs=video,
)
gr.Examples(
examples=[
["Focus: Eiffel Tower (Animate: Clouds moving)"], #Atmosphere Movement Example
["Focus: Trees In forest (Animate: Lion running)"], #Object Movement Example
["Focus: Astronaut in Space"], #Normal
["Focus: Group of Birds in sky (Animate: Birds Moving) (Shot From distance)"], #Camera distance
["Focus: Statue of liberty (Shot from Drone) (Animate: Drone coming toward statue)"], #Camera Movement
["Focus: Panda in Forest (Animate: Drinking Tea)"], #Doing Something
["Focus: Kids Playing (Season: Winter)"], #Atmosphere or Season
{"Focus: Cars in Street (Season: Rain, Daytime) (Shot from Distance) (Movement: Cars running)"} #Mixture
],
fn=generate_image,
inputs=[prompt],
outputs=video,
cache_examples=True,
)
demo.queue().launch()
|