forked from extern/easydiffusion
63 lines
1.4 KiB
Python
63 lines
1.4 KiB
Python
|
import json
|
||
|
|
||
|
class Request:
|
||
|
prompt: str = ""
|
||
|
init_image: str = None # base64
|
||
|
mask: str = None # base64
|
||
|
num_outputs: int = 1
|
||
|
num_inference_steps: int = 50
|
||
|
guidance_scale: float = 7.5
|
||
|
width: int = 512
|
||
|
height: int = 512
|
||
|
seed: int = 42
|
||
|
prompt_strength: float = 0.8
|
||
|
# allow_nsfw: bool = False
|
||
|
precision: str = "autocast" # or "full"
|
||
|
save_to_disk_path: str = None
|
||
|
turbo: bool = True
|
||
|
use_cpu: bool = False
|
||
|
use_full_precision: bool = False
|
||
|
|
||
|
def to_string(self):
|
||
|
return f'''
|
||
|
prompt: {self.prompt}
|
||
|
seed: {self.seed}
|
||
|
num_inference_steps: {self.num_inference_steps}
|
||
|
guidance_scale: {self.guidance_scale}
|
||
|
w: {self.width}
|
||
|
h: {self.height}
|
||
|
precision: {self.precision}
|
||
|
save_to_disk_path: {self.save_to_disk_path}
|
||
|
turbo: {self.turbo}
|
||
|
use_cpu: {self.use_cpu}
|
||
|
use_full_precision: {self.use_full_precision}'''
|
||
|
|
||
|
class Image:
|
||
|
data: str # base64
|
||
|
seed: int
|
||
|
is_nsfw: bool
|
||
|
|
||
|
def __init__(self, data, seed):
|
||
|
self.data = data
|
||
|
self.seed = seed
|
||
|
|
||
|
def json(self):
|
||
|
return {
|
||
|
"data": self.data,
|
||
|
"seed": self.seed,
|
||
|
}
|
||
|
|
||
|
class Response:
|
||
|
images: list
|
||
|
|
||
|
def json(self):
|
||
|
res = {
|
||
|
"status": 'succeeded',
|
||
|
"output": [],
|
||
|
}
|
||
|
|
||
|
for image in self.images:
|
||
|
res["output"].append(image.json())
|
||
|
|
||
|
return res
|