|
import gradio as gr |
|
import requests |
|
|
|
|
|
prompt = gr.Textbox(label="Prompt") |
|
models = gr.Radio( |
|
["Bard", "DALL-E 2", "VQGAN+CLIP", "VQGAN", "CLIP", "InceptionV3", "VQGAN+CLIP-ViT-B16", "VQGAN+CLIP-ViT-B32", "VQGAN+CLIP-ViT-L", "VQGAN+CLIP-ViT-H", "VQGAN+CLIP-ViT-XL"], |
|
label="Model", |
|
) |
|
|
|
|
|
negative_prompt = gr.Textbox(label="Negative Prompt") |
|
sampling_method = gr.Radio( |
|
["random", "greedy", "nucleus", "top_k", "top_p"], label="Sampling Method" |
|
) |
|
sampling_steps = gr.Number( |
|
label="Sampling Steps", value=30, minimum=1, maximum=100 |
|
) |
|
cfg_scale = gr.Number(label="CFG Scale", minimum=0.1, maximum=10.0, value=1.0) |
|
seed = gr.Number(label="Seed", minimum=0, maximum=2**31, value=0) |
|
|
|
|
|
algorithm = gr.Radio( |
|
["nearest", "bilinear", "bicubic", "lanczos", "cubic", "mitchell", "bicubic_nn", "bicubic_nn_diff", "bicubic_nn_diff_v2"], label="Algorithm" |
|
) |
|
|
|
|
|
def generate_image(prompt, model, negative_prompt, sampling_method, sampling_steps, cfg_scale, seed): |
|
url = "https://api.huggingface.co/models/text-to-image/v1/generate" |
|
data = { |
|
"prompt": prompt, |
|
"model": model, |
|
"negative_prompt": negative_prompt, |
|
"sampling_method": sampling_method, |
|
"sampling_steps": sampling_steps, |
|
"cfg_scale": cfg_scale, |
|
"seed": seed, |
|
} |
|
response = requests.post(url, json=data) |
|
image = response.json()["image"] |
|
return image |
|
|
|
|
|
def improve_quality(image, algorithm): |
|
url = "https://api.huggingface.co/models/text-to-image/v1/improve-quality" |
|
data = { |
|
"image": image, |
|
"algorithm": algorithm, |
|
} |
|
response = requests.post(url, json=data) |
|
image = response.json()["image"] |
|
return image |
|
|
|
|
|
def main(): |
|
interface = gr.Interface( |
|
generate_image, |
|
[ |
|
gr.Row( |
|
gr.Column(prompt, "Базовые настройки"), |
|
gr.Column(models, "Базовые настройки"), |
|
), |
|
gr.Row( |
|
gr.Column(negative_prompt, "Расширенные настройки"), |
|
gr.Column(sampling_method, "Расширенные настройки"), |
|
gr.Column(sampling_steps, "Расширенные настройки"), |
|
gr.Column(cfg_scale, "Расширенные настройки"), |
|
gr.Column(seed, "Расширенные настройки"), |
|
), |
|
gr.Row( |
|
algorithm, |
|
), |
|
], |
|
outputs=gr.Image(), |
|
title="Gradio Image Generator", |
|
) |
|
|
|
interface.launch() |
|
|
|
if __name__ == "__main__": |
|
main() |
|
|