-
Notifications
You must be signed in to change notification settings - Fork 872
/
Copy pathgradio_helper.py
91 lines (79 loc) · 2.65 KB
/
gradio_helper.py
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
import gradio as gr
import numpy as np
from PIL import Image
import sys
from tqdm.auto import tqdm
def make_demo(pipeline):
import openvino_genai as ov_genai
def generate(prompt, negative_prompt, seed, num_steps, _=gr.Progress(track_tqdm=True)):
pbar = tqdm(total=num_steps)
def callback(step, num_steps, latent):
if num_steps != pbar.total:
pbar.reset(num_steps)
pbar.update(1)
sys.stdout.flush()
return False
result = pipeline.generate(
prompt, negative_prompt=negative_prompt, num_inference_steps=num_steps, generator=ov_genai.TorchGenerator(seed), callback=callback
)
pbar.close()
return Image.fromarray(result.data[0])
gr.close_all()
demo = gr.Interface(
generate,
[
gr.Textbox(
"valley in the Alps at sunset, epic vista, beautiful landscape, 4k, 8k",
label="Prompt",
),
gr.Textbox(
"frames, borderline, text, charachter, duplicate, error, out of frame, watermark, low quality, ugly, deformed, blur",
label="Negative prompt",
),
gr.Slider(value=42, label="Seed", maximum=10000000),
gr.Slider(value=25, label="Steps", minimum=1, maximum=50),
],
"image",
)
return demo
def make_demo_zoom_video(pipeline, generate_video):
def generate(
prompt,
negative_prompt,
seed,
steps,
frames,
edge_size,
zoom_in,
progress=gr.Progress(track_tqdm=True),
):
np.random.seed(seed)
video_path = generate_video(
pipeline,
prompt,
negative_prompt,
num_inference_steps=steps,
num_frames=frames,
mask_width=edge_size,
zoom_in=zoom_in,
)
np.random.seed(None)
return video_path.replace(".mp4", ".gif")
gr.close_all()
demo = gr.Interface(
generate,
[
gr.Textbox(
"valley in the Alps at sunset, epic vista, beautiful landscape, 4k, 8k",
label="Prompt",
),
gr.Textbox("lurry, bad art, blurred, text, watermark", label="Negative prompt"),
gr.Slider(value=9999, label="Seed", step=1, maximum=10000000),
gr.Slider(value=20, label="Steps", minimum=1, maximum=50),
gr.Slider(value=3, label="Frames", minimum=1, maximum=50),
gr.Slider(value=128, label="Edge size", minimum=32, maximum=256),
gr.Checkbox(label="Zoom in"),
],
"image",
)
return demo