Spaces:
Sleeping
Sleeping
import gradio as gr | |
import os | |
from gradio_client import Client | |
import time | |
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()): | |
retries = 3 | |
for i in range(retries): | |
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: | |
print(f"Ошибка подключения. Попытка {i+1} из {retries}.") | |
raise gr.Info(f"Ошибка подключения. Попытка {i+1} из {retries}.") | |
time.sleep(5) # Пауза перед следующей попыткой | |
raise gr.Error("Не удалось подключиться к API. Повторите попытку позже.") | |
# 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), | |
], | |
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, | |
) | |
demo.queue().launch() | |