Spaces:
Runtime error
Runtime error
File size: 5,192 Bytes
5fbd25d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
from typing import Dict, List, Tuple
import numpy as np
import copy
from fooocusapi.models.common.base import EnhanceCtrlNets
from fooocusapi.models.common.requests import AdvancedParams
from modules import config
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[bool, 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,
enhance_input_image: np.ndarray | None,
enhance_checkbox: bool,
enhance_uov_method: str,
enhance_uov_processing_order,
enhance_uov_prompt_type,
save_final_enhanced_image_only,
enhance_ctrlnets: List[EnhanceCtrlNets],
image_prompts: List[Tuple[np.ndarray, float, float, str]],
read_wildcards_in_order: bool,
advanced_params: AdvancedParams | 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[:config.default_max_lora_number] if len(loras) > config.default_max_lora_number else 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[:config.default_controlnet_image_count] if len(image_prompts) > config.default_controlnet_image_count else image_prompts
self.enhance_input_image = enhance_input_image
self.enhance_checkbox = enhance_checkbox
self.enhance_uov_method = enhance_uov_method
self.enhance_uov_processing_order = enhance_uov_processing_order
self.enhance_uov_prompt_type = enhance_uov_prompt_type
self.save_final_enhanced_image_only = save_final_enhanced_image_only
self.enhance_ctrlnets = enhance_ctrlnets[:config.default_enhance_tabs] if len(enhance_ctrlnets) > config.default_enhance_tabs else enhance_ctrlnets
self.current_tab = None
self.read_wildcards_in_order = read_wildcards_in_order
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
self.current_tab = 'uov'
if self.enhance_input_image is not None:
self.current_tab = 'enhance'
elif self.image_prompts[0][0] is not None:
self.current_tab = 'ip'
elif self.uov_input_image is not None:
self.current_tab = 'uov'
elif self.inpaint_input_image["image"] is not None:
self.current_tab = 'inpaint'
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__
|