diff --git a/modules/img2img.py b/modules/img2img.py index d91daaca1..b3c0880aa 100644 --- a/modules/img2img.py +++ b/modules/img2img.py @@ -138,10 +138,10 @@ def process_batch(p, input_files, input_dir, output_dir, inpaint_mask_dir, args) if output_dir == '': output_dir = shared.opts.outdir_img2img_samples os.makedirs(output_dir, exist_ok=True) - geninfo, items = images.read_info_from_image(image) + info, items = images.read_info_from_image(image) for k, v in items.items(): image.info[k] = v - images.save_image(image, path=output_dir, basename=basename, seed=None, prompt=None, extension=ext, info=geninfo, grid=False, pnginfo_section_name="extras", existing_info=image.info, forced_filename=forced_filename) + images.save_image(image, path=output_dir, basename=basename, seed=None, prompt=None, extension=ext, info=info, grid=False, pnginfo_section_name="extras", existing_info=image.info, forced_filename=forced_filename) processed = scripts_manager.scripts_img2img.after(p, processed, *args) shared.log.debug(f'Processed: images={len(batch_image_files)} memory={memory_stats()} batch') diff --git a/modules/sd_samplers.py b/modules/sd_samplers.py index c7502cb4b..0b965eaf6 100644 --- a/modules/sd_samplers.py +++ b/modules/sd_samplers.py @@ -98,7 +98,7 @@ def create_sampler(name, model): # validate sampler prediction type if (model is not None) and (is_flow and not requires_flow): shared.log.error(f'Sampler: "{sampler.name}" cls={sampler.sampler.__class__.__name__} pipe={model.__class__.__name__} model requires sampler with discrete prediction') - return restore_default(model) + # return restore_default(model) if (model is not None) and (not is_flow and requires_flow): shared.log.error(f'Sampler: "{sampler.name}" cls={sampler.sampler.__class__.__name__} pipe={model.__class__.__name__} model requires sampler with flow prediction') return restore_default(model) diff --git a/modules/sd_samplers_diffusers.py b/modules/sd_samplers_diffusers.py index b052042bc..d0d394b88 100644 --- a/modules/sd_samplers_diffusers.py +++ b/modules/sd_samplers_diffusers.py @@ -317,6 +317,12 @@ class DiffusionSampler: self.sampler = None return + # monkey-patch to allow sdxl pipeline to execute flowmatch samplers + if not hasattr(sampler, 'scale_model_input'): + sampler.scale_model_input = lambda x, _y: x + if not hasattr(sampler, 'init_noise_sigma'): + sampler.init_noise_sigma = 1.0 + self.sampler = sampler # shared.log.debug_log(f'Sampler: class="{self.sampler.__class__.__name__}" config={self.sampler.config}')