Spaces:
Sleeping
Sleeping
File size: 4,134 Bytes
cc50ae5 af96747 aecddc5 44f5493 63ce4a0 cc50ae5 52f5bd3 a9d9267 839e57a b5b48b7 aecddc5 44f5493 b5b48b7 44f5493 cc50ae5 b5b48b7 cc50ae5 b5b48b7 cc50ae5 b5b48b7 cc50ae5 b5b48b7 cc50ae5 b5b48b7 cc50ae5 b5b48b7 cc50ae5 b5b48b7 cc50ae5 2b06425 |
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 |
import gradio as gr
import os
from gradio_client import Client
import time
import requests
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. Повторите попытку позже.")
# Ссылка на файл CSS
css_url = "https://aihubyufi-aihub.static.hf.space/style.css"
# Получение CSS по ссылке
response = requests.get(css_url)
css = response.text
# Gradio Interface
with gr.Blocks(css=css) as demo:
gr.HTML(
"""
<script>
var head = document.getElementsByTagName('head')[0];
var link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'style.css';
head.appendChild(link);
</script>
"""
)
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()
|