stable-diffusion-webui-forge icon indicating copy to clipboard operation
stable-diffusion-webui-forge copied to clipboard

Error with Img2img + ReActor (sample_dpmpp_2m_sde h_last = h)

Open sinuso opened this issue 1 year ago • 2 comments

Hello

I have these errors when I try to generate an image with img2img + the ReActor module

Traceback (most recent call last):                                                               | 0/1 [00:00<?, ?it/s]
  File "E:\Server AI dibuja\webui_forge_cu121_torch231\webui\modules_forge\main_thread.py", line 30, in work
    self.result = self.func(*self.args, **self.kwargs)
  File "E:\Server AI dibuja\webui_forge_cu121_torch231\webui\modules\img2img.py", line 248, in img2img_function
    processed = process_images(p)
  File "E:\Server AI dibuja\webui_forge_cu121_torch231\webui\modules\processing.py", line 818, in process_images
    res = process_images_inner(p)
  File "E:\Server AI dibuja\webui_forge_cu121_torch231\webui\modules\processing.py", line 961, in process_images_inner
    samples_ddim = p.sample(conditioning=p.c, unconditional_conditioning=p.uc, seeds=p.seeds, subseeds=p.subseeds, subseed_strength=p.subseed_strength, prompts=p.prompts)
  File "E:\Server AI dibuja\webui_forge_cu121_torch231\webui\modules\processing.py", line 1783, in sample
    samples = self.sampler.sample_img2img(self, self.init_latent, x, conditioning, unconditional_conditioning, image_conditioning=self.image_conditioning)
  File "E:\Server AI dibuja\webui_forge_cu121_torch231\webui\modules\sd_samplers_kdiffusion.py", line 188, in sample_img2img
    samples = self.launch_sampling(t_enc + 1, lambda: self.func(self.model_wrap_cfg, xi, extra_args=self.sampler_extra_args, disable=False, callback=self.callback_state, **extra_params_kwargs))
  File "E:\Server AI dibuja\webui_forge_cu121_torch231\webui\modules\sd_samplers_common.py", line 272, in launch_sampling
    return func()
  File "E:\Server AI dibuja\webui_forge_cu121_torch231\webui\modules\sd_samplers_kdiffusion.py", line 188, in <lambda>
    samples = self.launch_sampling(t_enc + 1, lambda: self.func(self.model_wrap_cfg, xi, extra_args=self.sampler_extra_args, disable=False, callback=self.callback_state, **extra_params_kwargs))
  File "E:\Server AI dibuja\webui_forge_cu121_torch231\system\python\lib\site-packages\torch\utils\_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
  File "E:\Server AI dibuja\webui_forge_cu121_torch231\webui\k_diffusion\sampling.py", line 652, in sample_dpmpp_2m_sde
    h_last = h
UnboundLocalError: local variable 'h' referenced before assignment
local variable 'h' referenced before assignment

sinuso avatar Aug 30 '24 11:08 sinuso

Confirmed, problem with sampler. Whoever wrote the code didn't consider 1-step generation. Same issue with DPM++3M SDE. Simple fixes, but for now use a different sampler or 2+ steps.

DenOfEquity avatar Aug 30 '24 13:08 DenOfEquity

@DenOfEquity I see you have already patched it! Thanks

sinuso avatar Aug 30 '24 14:08 sinuso