Spaces:
Runtime error
Runtime error
from pydantic import BaseModel | |
from typing import Any | |
class GenerateImageRequest(BaseModel): | |
prompt: str = "" | |
negative_prompt: str = "" | |
seed: int = 42 | |
width: int = 512 | |
height: int = 512 | |
num_outputs: int = 1 | |
num_inference_steps: int = 50 | |
guidance_scale: float = 7.5 | |
init_image: Any = None | |
init_image_mask: Any = None | |
prompt_strength: float = 0.8 | |
preserve_init_image_color_profile = False | |
sampler_name: str = None # "ddim", "plms", "heun", "euler", "euler_a", "dpm2", "dpm2_a", "lms" | |
hypernetwork_strength: float = 0 | |
class TaskData(BaseModel): | |
request_id: str = None | |
session_id: str = "session" | |
save_to_disk_path: str = None | |
vram_usage_level: str = "balanced" # or "low" or "medium" | |
use_face_correction: str = None # or "GFPGANv1.3" | |
use_upscale: str = None # or "RealESRGAN_x4plus" or "RealESRGAN_x4plus_anime_6B" | |
upscale_amount: int = 4 # or 2 | |
use_stable_diffusion_model: str = "sd-v1-4" | |
# use_stable_diffusion_config: str = "v1-inference" | |
use_vae_model: str = None | |
use_hypernetwork_model: str = None | |
show_only_filtered_image: bool = False | |
block_nsfw: bool = False | |
output_format: str = "jpeg" # or "png" or "webp" | |
output_quality: int = 75 | |
metadata_output_format: str = "txt" # or "json" | |
stream_image_progress: bool = False | |
stream_image_progress_interval: int = 5 | |
class MergeRequest(BaseModel): | |
model0: str = None | |
model1: str = None | |
ratio: float = None | |
out_path: str = "mix" | |
use_fp16 = True | |
class Image: | |
data: str # base64 | |
seed: int | |
is_nsfw: bool | |
path_abs: str = None | |
def __init__(self, data, seed): | |
self.data = data | |
self.seed = seed | |
def json(self): | |
return { | |
"data": self.data, | |
"seed": self.seed, | |
"path_abs": self.path_abs, | |
} | |
class Response: | |
render_request: GenerateImageRequest | |
task_data: TaskData | |
images: list | |
def __init__(self, render_request: GenerateImageRequest, task_data: TaskData, images: list): | |
self.render_request = render_request | |
self.task_data = task_data | |
self.images = images | |
def json(self): | |
del self.render_request.init_image | |
del self.render_request.init_image_mask | |
res = { | |
"status": "succeeded", | |
"render_request": self.render_request.dict(), | |
"task_data": self.task_data.dict(), | |
"output": [], | |
} | |
for image in self.images: | |
res["output"].append(image.json()) | |
return res | |
class UserInitiatedStop(Exception): | |
pass | |