DiffusionArtco's picture
Duplicate from DiffusionArtco/Diffusion50
5cf6b7e
raw
history blame
2.12 kB
import gradio as gr
import requests
from PIL import Image
from io import BytesIO
import base64
api_url = "https://5cb20b40-572c-426f-9466-995256f9b6eb.id.repl.co/generate_image"
def generate_image(model="Dreamlike Diffusion", prompt="", seed=0, negative_prompt="", sampler="k_dpmpp_2s_a", steps=50):
data = "?model=" + model + "&prompt=" + prompt + "&seed=" + str(seed) + "&negative_prompt=" + negative_prompt + "&sampler=" + sampler + "&steps=" + str(steps)
response = requests.post(api_url + data, timeout=400)
if response.status_code == 200:
img_base64 = response.json()["url"]
img_bytes = base64.b64decode(img_base64)
img = Image.open(BytesIO(img_bytes))
return img
else:
return None
inputs = [
gr.inputs.Dropdown(['Analog Diffusion', 'Anything Diffusion', 'Anything v3', 'ChilloutMix', 'Counterfeit', 'CyriousMix', 'Deliberate', 'Dreamshaper', 'Dreamlike Diffusion', 'Dreamlike Photoreal', 'Experience', 'FaeTastic', 'Hassanblend', 'Mega Merge Diffusion', 'Midjourney Diffusion', 'ModernArt Diffusion', 'Movie Diffusion', 'NeverEnding Dream', 'Perfect World', 'PortraitPlus', 'ProtoGen', 'Protogen Anime', 'Protogen Infinity', 'RealBiter', 'Realism Engine', 'Realistic Vision', 'Rev Animated', 'RPG', 'Seek.art MEGA', 'stable_diffusion', 'stable_diffusion_2.1' , 'Unstable Ink Dream'], label="Model", default="Dreamlike Diffusion"),
gr.inputs.Textbox(label="Prompt"),
gr.inputs.Number(label="Seed", default=0),
gr.inputs.Textbox(label="Negative Prompt", default=""),
gr.inputs.Dropdown(["k_lms", "k_heun", "k_euler", "k_euler_a", "k_dpm_2", "k_dpm_2_a", "DDIM", "k_dpm_fast", "k_dpm_adaptive", "k_dpmpp_2m", "k_dpmpp_2s_a", "k_dpmpp_sde"], label="Sampler", default="k_dpmpp_2s_a"),
gr.inputs.Number(label="Steps", default=50)
]
outputs = gr.outputs.Image(label="Generated Image", type="pil")
interface = gr.Interface(generate_image, inputs, outputs, title="Diffusion 50",
description="<center>Top 50 Diffusion models in one place</center>",
examples=[])
interface.launch()