feat: add config and option for uov prompt type

This commit is contained in:
Manuel Schmid
2024-06-24 21:21:11 +02:00
parent 9f9fcfa7ad
commit 00a27e7400
4 changed files with 30 additions and 7 deletions
+7 -5
View File
@@ -117,6 +117,7 @@ class AsyncTask:
self.enhance_checkbox = args.pop() self.enhance_checkbox = args.pop()
self.enhance_uov_method = args.pop() self.enhance_uov_method = args.pop()
self.enhance_uov_processing_order = args.pop() self.enhance_uov_processing_order = args.pop()
self.enhance_uov_prompt_type = args.pop()
self.enhance_ctrls = [] self.enhance_ctrls = []
for _ in range(modules.config.default_enhance_tabs): for _ in range(modules.config.default_enhance_tabs):
enhance_enabled = args.pop() enhance_enabled = args.pop()
@@ -1036,7 +1037,7 @@ def worker():
exception_result = '' exception_result = ''
if len(goals_enhance) > 0: if len(goals_enhance) > 0:
try: try:
current_progress, img = process_enhance( current_progress, img, prompt, negative_prompt = process_enhance(
all_steps, async_task, callback, controlnet_canny_path, all_steps, async_task, callback, controlnet_canny_path,
controlnet_cpds_path, current_progress, current_task_id, denoising_strength, False, controlnet_cpds_path, current_progress, current_task_id, denoising_strength, False,
'None', 0.0, 0.0, prompt, negative_prompt, final_scheduler_name, 'None', 0.0, 0.0, prompt, negative_prompt, final_scheduler_name,
@@ -1385,10 +1386,11 @@ def worker():
preparation_steps, enhance_steps, switch, tiled, total_count, use_expansion, use_style, preparation_steps, enhance_steps, switch, tiled, total_count, use_expansion, use_style,
use_synthetic_refiner, width) use_synthetic_refiner, width)
if enhance_prompt_processed != '': if async_task.enhance_uov_prompt_type == flags.enhancement_uov_prompt_type_last:
last_enhance_prompt = enhance_prompt_processed if enhance_prompt_processed != '':
if enhance_negative_prompt_processed != '': last_enhance_prompt = enhance_prompt_processed
last_enhance_negative_prompt = enhance_negative_prompt_processed if enhance_negative_prompt_processed != '':
last_enhance_negative_prompt = enhance_negative_prompt_processed
except ldm_patched.modules.model_management.InterruptProcessingException: except ldm_patched.modules.model_management.InterruptProcessingException:
if async_task.last_stop == 'skip': if async_task.last_stop == 'skip':
+6
View File
@@ -521,6 +521,12 @@ enhance_uov_processing_order = get_config_item_or_set_default(
validator=lambda x: x in modules.flags.enhancement_uov_processing_order, validator=lambda x: x in modules.flags.enhancement_uov_processing_order,
expected_type=int expected_type=int
) )
enhance_uov_prompt_type = get_config_item_or_set_default(
key='default_enhance_uov_prompt_type',
default_value=modules.flags.enhancement_uov_prompt_type_last,
validator=lambda x: x in modules.flags.enhancement_uov_prompt_types,
expected_type=int
)
default_sam_max_detections = get_config_item_or_set_default( default_sam_max_detections = get_config_item_or_set_default(
key='default_sam_max_detections', key='default_sam_max_detections',
default_value=0, default_value=0,
+4
View File
@@ -21,6 +21,10 @@ enhancement_uov_processing_order = [
(enhancement_uov_after_label, enhancement_uov_after) (enhancement_uov_after_label, enhancement_uov_after)
] ]
enhancement_uov_prompt_type_original = 'Original Prompts'
enhancement_uov_prompt_type_last = 'Last Filled Enhancement Prompts'
enhancement_uov_prompt_types = [enhancement_uov_prompt_type_original, enhancement_uov_prompt_type_last]
CIVITAI_NO_KARRAS = ["euler", "euler_ancestral", "heun", "dpm_fast", "dpm_adaptive", "ddim", "uni_pc"] CIVITAI_NO_KARRAS = ["euler", "euler_ancestral", "heun", "dpm_fast", "dpm_adaptive", "ddim", "uni_pc"]
# fooocus: a1111 (Civitai) # fooocus: a1111 (Civitai)
+13 -2
View File
@@ -359,9 +359,19 @@ with shared.gradio_root:
with gr.Column(): with gr.Column():
enhance_uov_method = gr.Radio(label='Upscale or Variation:', choices=flags.uov_list, value=flags.disabled) enhance_uov_method = gr.Radio(label='Upscale or Variation:', choices=flags.uov_list, value=flags.disabled)
enhance_uov_processing_order = gr.Radio(label='Order of Processing', enhance_uov_processing_order = gr.Radio(label='Order of Processing',
info='Before is slower (larger area to enhance), but might enhance the overall image quality, whereas after is faster but may apply changes to the image which were already fixed by enhance. Use after when enhancing large areas.', info='Use before for enhancement of small details and after for large areas.',
choices=flags.enhancement_uov_processing_order, choices=flags.enhancement_uov_processing_order,
value=modules.config.enhance_uov_processing_order) value=modules.config.enhance_uov_processing_order)
enhance_uov_prompt_type = gr.Radio(label='Prompt',
info='Choose which prompt to use for Upscale or Variation.',
choices=flags.enhancement_uov_prompt_types,
value=modules.config.enhance_uov_prompt_type,
visible=modules.config.enhance_uov_prompt_type == flags.enhancement_uov_after)
enhance_uov_processing_order.change(lambda x: gr.update(visible=x == flags.enhancement_uov_after),
inputs=enhance_uov_processing_order,
outputs=enhance_uov_prompt_type,
queue=False, show_progress=False)
gr.HTML('<a href="https://github.com/mashb1t/Fooocus/discussions/42" target="_blank">\U0001F4D4 Document</a>') gr.HTML('<a href="https://github.com/mashb1t/Fooocus/discussions/42" target="_blank">\U0001F4D4 Document</a>')
enhance_ctrls = [] enhance_ctrls = []
for index in range(modules.config.default_enhance_tabs): for index in range(modules.config.default_enhance_tabs):
@@ -943,7 +953,8 @@ with shared.gradio_root:
ctrls += ip_ctrls ctrls += ip_ctrls
ctrls += [debugging_dino, dino_erode_or_dilate, debugging_enhance_masks_checkbox, ctrls += [debugging_dino, dino_erode_or_dilate, debugging_enhance_masks_checkbox,
enhance_input_image, enhance_checkbox, enhance_uov_method, enhance_uov_processing_order] enhance_input_image, enhance_checkbox, enhance_uov_method, enhance_uov_processing_order,
enhance_uov_prompt_type]
ctrls += enhance_ctrls ctrls += enhance_ctrls
def parse_meta(raw_prompt_txt, is_generating): def parse_meta(raw_prompt_txt, is_generating):