diff --git a/CHANGELOG.md b/CHANGELOG.md index 13fb9c654..4b327adfe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log for SD.Next +## Update for 2025-11-01 + +- add inline wildcards using curly braces syntax +- fix inpaint +- fix model type detection +- guard against multi-controlnet in hires + ## Update for 2025-10-31 ### Highlights for 2025-10-31 diff --git a/extensions-builtin/sdnext-modernui b/extensions-builtin/sdnext-modernui index eea7fc5d9..aabe56177 160000 --- a/extensions-builtin/sdnext-modernui +++ b/extensions-builtin/sdnext-modernui @@ -1 +1 @@ -Subproject commit eea7fc5d94564e5d1eda76b6db7e906fc792cffe +Subproject commit aabe56177c87c5f134ff0895d9043f2fc7424a47 diff --git a/modules/processing_diffusers.py b/modules/processing_diffusers.py index 913bd2e51..8e8813d2a 100644 --- a/modules/processing_diffusers.py +++ b/modules/processing_diffusers.py @@ -252,6 +252,9 @@ def process_hires(p: processing.StableDiffusionProcessing, output): # hires runs on original pipeline if hasattr(shared.sd_model, 'restore_pipeline') and (shared.sd_model.restore_pipeline is not None) and (not shared.opts.control_hires): shared.sd_model.restore_pipeline() + if (getattr(shared.sd_model, 'controlnet', None) is not None) and ((isinstance(shared.sd_model.controlnet, list) and len(shared.sd_model.controlnet) > 1)) or ('Multi' in type(shared.sd_model.controlnet).__name__): + shared.log.warning(f'Process: control={type(shared.sd_model.controlnet)} not supported in hires') + return output # upscale if hasattr(p, 'height') and hasattr(p, 'width') and p.hr_resize_mode > 0 and (p.hr_upscaler != 'None' or p.hr_resize_mode == 5): diff --git a/modules/ui_control_elements.py b/modules/ui_control_elements.py index 4788b4b99..e45bd640b 100644 --- a/modules/ui_control_elements.py +++ b/modules/ui_control_elements.py @@ -255,7 +255,7 @@ def create_ui_elements(units, result_txt, preview_process): with gr.Accordion('Global', open=True, elem_classes=['processor-settings']): control_hires = gr.Checkbox(label="Use control during hires", value=shared.opts.control_hires, elem_id='control_hires') def set_control_hires(value): - shared.opts.control_active = value + shared.opts.control_hires = value control_hires.change(fn=set_control_hires, inputs=[control_hires], outputs=[]) control_max_units = gr.Slider(label="Maximum units", minimum=1, maximum=10, step=1, value=shared.opts.control_max_units, elem_id='control_max_units') def set_control_max_units(value): diff --git a/wiki b/wiki index 847eae26c..213bdc836 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit 847eae26c796ae32b8cd74b0cc79b705bfdc8f54 +Subproject commit 213bdc836534bc29ed353dc89b5b582e455a9bf5