Spaces:
Sleeping
Sleeping
from typing import Dict, List, Tuple | |
import numpy as np | |
import copy | |
from fooocusapi.models.common.requests import AdvancedParams | |
class ImageGenerationParams: | |
def __init__( | |
self, | |
prompt: str, | |
negative_prompt: str, | |
style_selections: List[str], | |
performance_selection: str, | |
aspect_ratios_selection: str, | |
image_number: int, | |
image_seed: int | None, | |
sharpness: float, | |
guidance_scale: float, | |
base_model_name: str, | |
refiner_model_name: str, | |
refiner_switch: float, | |
loras: List[Tuple[str, float]], | |
uov_input_image: np.ndarray | None, | |
uov_method: str, | |
upscale_value: float | None, | |
outpaint_selections: List[str], | |
outpaint_distance_left: int, | |
outpaint_distance_right: int, | |
outpaint_distance_top: int, | |
outpaint_distance_bottom: int, | |
inpaint_input_image: Dict[str, np.ndarray] | None, | |
inpaint_additional_prompt: str | None, | |
image_prompts: List[Tuple[np.ndarray, float, float, str]], | |
advanced_params: List[any] | None, | |
save_extension: str, | |
save_meta: bool, | |
meta_scheme: str, | |
save_name: str, | |
require_base64: bool, | |
): | |
self.prompt = prompt | |
self.negative_prompt = negative_prompt | |
self.style_selections = style_selections | |
self.performance_selection = performance_selection | |
self.aspect_ratios_selection = aspect_ratios_selection | |
self.image_number = image_number | |
self.image_seed = image_seed | |
self.sharpness = sharpness | |
self.guidance_scale = guidance_scale | |
self.base_model_name = base_model_name | |
self.refiner_model_name = refiner_model_name | |
self.refiner_switch = refiner_switch | |
self.loras = loras | |
self.uov_input_image = uov_input_image | |
self.uov_method = uov_method | |
self.upscale_value = upscale_value | |
self.outpaint_selections = outpaint_selections | |
self.outpaint_distance_left = outpaint_distance_left | |
self.outpaint_distance_right = outpaint_distance_right | |
self.outpaint_distance_top = outpaint_distance_top | |
self.outpaint_distance_bottom = outpaint_distance_bottom | |
self.inpaint_input_image = inpaint_input_image | |
self.inpaint_additional_prompt = inpaint_additional_prompt | |
self.image_prompts = image_prompts | |
self.save_extension = save_extension | |
self.save_meta = save_meta | |
self.meta_scheme = meta_scheme | |
self.save_name = save_name | |
self.require_base64 = require_base64 | |
self.advanced_params = advanced_params | |
if self.advanced_params is None: | |
self.advanced_params = AdvancedParams() | |
# Auto set mixing_image_prompt_and_inpaint to True | |
if len(self.image_prompts) > 0 and self.inpaint_input_image is not None: | |
print("Mixing Image Prompts and Inpaint Enabled") | |
self.advanced_params.mixing_image_prompt_and_inpaint = True | |
if len(self.image_prompts) > 0 and self.uov_input_image is not None: | |
print("Mixing Image Prompts and Vary Upscale Enabled") | |
self.advanced_params.mixing_image_prompt_and_vary_upscale = True | |
def to_dict(self): | |
""" | |
Convert the ImageGenerationParams object to a dictionary. | |
Args: | |
self: | |
Returns: | |
self to dict | |
""" | |
obj_dict = copy.deepcopy(self) | |
return obj_dict.__dict__ | |