File size: 4,246 Bytes
cc50ae5 de65314 af96747 cc50ae5 52f5bd3 839e57a cc50ae5 839e57a b5b48b7 db0e646 af96747 db0e646 af96747 cc50ae5 b5b48b7 cc50ae5 b5b48b7 cc50ae5 b5b48b7 cc50ae5 b5b48b7 cc50ae5 b5b48b7 cc50ae5 b5b48b7 cc50ae5 b5b48b7 cc50ae5 b5b48b7 cc50ae5 b5b48b7 cc50ae5 27dc24e cc50ae5 4181fbb cc50ae5 4181fbb cc50ae5 b5b48b7 |
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 |
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="Anime", 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:
with gr.Group():
with gr.Row():
prompt = gr.Textbox(
label='Описание'
)
with gr.Row():
select_base = gr.Dropdown(
label='Стиль',
choices=[
"Cartoon",
"Realistic",
"3d",
"Anime",
],
value="Anime",
interactive=True
)
select_motion = gr.Dropdown(
label='Движение',
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="",
interactive=True
)
select_step = gr.Dropdown(
label='Шаги вывода',
choices=[
('1-Step', 1),
('2-Step', 2),
('4-Step', 4),
('8-Step', 8),
('8-Step', 10),
('8-Step', 12),
],
value=4,
interactive=True
)
submit = gr.Button(
scale=1,
variant='primary'
)
video = gr.Video(
label='Сгенерированое видео',
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(max_size=50).launch()
|