| 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() |
|
|