Spaces:
Runtime error
Runtime error
import gradio as gr | |
import numpy as np | |
from PIL import Image | |
from io import BytesIO | |
import requests | |
import json | |
# List of available models | |
models = [ | |
"HHM29/finetuning_dream_fin", | |
"KappaNeuro/needlepoint", | |
"Norod78/ClaymationX_LoRA", | |
"KappaNeuro/movie-poster", | |
"digiplay/MixTape_RocknRoll_v3punk_bake_fp16", | |
"digiplay/BeautifulFantasyRealMix_diffusers", | |
"Yntec/pineappleAnimeMix", | |
"Yntec/DucHaiten-Retro-Diffusers", | |
"joachimsallstrom/aether-pixel-lora-for-sdxl", | |
"runwayml/stable-diffusion-v1-5", | |
"stabilityai/stable-diffusion-xl-base-1.0", | |
"CompVis/stable-diffusion-v1-4", | |
] | |
def generate_image(model_name, image, prompt, length, temperature, n_samples, use_image2image=False): | |
data = { | |
"image_prompt": image, | |
"prompt": prompt, | |
"length": length, | |
"temperature": temperature, | |
"n_samples": n_samples, | |
"model": model_name, | |
} | |
if use_image2image: | |
data["use_image2image"] = True | |
data["image2image_prompt"] = image # Provide the target image for image2image | |
response = requests.post("https://api.stable-diffusion.ml/generate", json=data) | |
response_json = response.json() | |
if response.status_code == 200: | |
results = response_json["generated_images"] | |
generated_image = np.frombuffer(BytesIO(results[0]["image"]).read(), dtype=np.uint8) | |
generated_image = generated_image.reshape(results[0]["metadata"]["height"], results[0]["metadata"]["width"], 3) | |
return Image.fromarray(generated_image) | |
else: | |
return None | |
def app(model=gr.inputs.Selector(options=models), | |
image=gr.inputs.Image(shape=(None, None)), | |
prompt=gr.inputs.Textbox(default="an image generated with"), | |
length=gr.inputs.Slider(1, 20, step=1, default=8), | |
temperature=gr.inputs.Slider(0.5, 1.5, step=0.1, default=1), | |
n_samples=gr.inputs.Slider(1, 5, step=1, default=1), | |
use_image2image=gr.inputs.Boolean(default=False)): | |
generated_image = generate_image(model, | |
image=image.data if image else None, | |
prompt=prompt, | |
length=int(length), | |
temperature=float(temperature), | |
n_samples=int(n_samples), | |
use_image2image=use_image2image) | |
return gr.outputs.Image(as_pil=True)(generated_image) if generated_image else None | |
if __name__ == "__main__": | |
title = "Image Generation App" | |
description = "Select a model and customize your image generation or image2image settings!" | |
gradio.launch(app, port=8000, title=title, description=description) | |