Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UnboundLocalError: local variable 'cond_cast_unet' referenced before assignment #157

Closed
wbh1129 opened this issue Feb 17, 2023 · 8 comments

Comments

@wbh1129
Copy link
Contributor

wbh1129 commented Feb 17, 2023

Traceback (most recent call last):
  File "/sd/modules/call_queue.py", line 56, in f
    res = list(func(*args, **kwargs))
  File "/sd/modules/call_queue.py", line 37, in f
    res = func(*args, **kwargs)
  File "/sd/modules/img2img.py", line 169, in img2img
    processed = process_images(p)
  File "/sd/modules/processing.py", line 486, in process_images
    res = process_images_inner(p)
  File "/sd/modules/processing.py", line 628, in process_images_inner
    samples_ddim = p.sample(conditioning=c, unconditional_conditioning=uc, seeds=seeds, subseeds=subseeds, subseed_strength=p.subseed_strength, prompts=prompts)
  File "/sd/modules/processing.py", line 1044, in sample
    samples = self.sampler.sample_img2img(self, self.init_latent, x, conditioning, unconditional_conditioning, image_conditioning=self.image_conditioning)
  File "/sd/modules/sd_samplers_kdiffusion.py", line 302, in sample_img2img
    samples = self.launch_sampling(t_enc + 1, lambda: self.func(self.model_wrap_cfg, xi, extra_args=extra_args, disable=False, callback=self.callback_state, **extra_params_kwargs))
  File "/sd/modules/sd_samplers_kdiffusion.py", line 221, in launch_sampling
    return func()
  File "/sd/modules/sd_samplers_kdiffusion.py", line 302, in <lambda>
    samples = self.launch_sampling(t_enc + 1, lambda: self.func(self.model_wrap_cfg, xi, extra_args=extra_args, disable=False, callback=self.callback_state, **extra_params_kwargs))
  File "/usr/local/lib/python3.10/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
    return func(*args, **kwargs)
  File "/sd/repositories/k-diffusion/k_diffusion/sampling.py", line 553, in sample_dpmpp_sde
    denoised = model(x, sigmas[i] * s_in, **extra_args)
  File "/usr/local/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "/sd/modules/sd_samplers_kdiffusion.py", line 116, in forward
    x_out = self.inner_model(x_in, sigma_in, cond={"c_crossattn": [cond_in], "c_concat": [image_cond_in]})
  File "/usr/local/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "/sd/repositories/k-diffusion/k_diffusion/external.py", line 112, in forward
    eps = self.get_eps(input * c_in, self.sigma_to_t(sigma), **kwargs)
  File "/sd/repositories/k-diffusion/k_diffusion/external.py", line 138, in get_eps
    return self.inner_model.apply_model(*args, **kwargs)
  File "/sd/modules/sd_hijack_utils.py", line 17, in <lambda>
    setattr(resolved_obj, func_path[-1], lambda *args, **kwargs: self(*args, **kwargs))
  File "/sd/modules/sd_hijack_utils.py", line 28, in __call__
    return self.__orig_func(*args, **kwargs)
  File "/sd/repositories/stable-diffusion-stability-ai/ldm/models/diffusion/ddpm.py", line 858, in apply_model
    x_recon = self.model(x_noisy, t, **cond)
  File "/usr/local/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "/sd/repositories/stable-diffusion-stability-ai/ldm/models/diffusion/ddpm.py", line 1329, in forward
    out = self.diffusion_model(x, t, context=cc)
  File "/usr/local/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "/sd/extensions/sd-webui-controlnet/scripts/cldm.py", line 147, in forward2
    h = align(h, hs_input.shape[-2:])
  File "/sd/extensions/sd-webui-controlnet/scripts/cldm.py", line 112, in forward
    self.control_model.to(devices.get_device_for("controlnet"))
  File "/usr/local/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "/sd/extensions/sd-webui-controlnet/scripts/cldm.py", line 425, in forward
    hint = align(hint.unsqueeze(0), (h, w))
UnboundLocalError: local variable 'cond_cast_unet' referenced before assignment

Depth preprocessor, depth model, inpainting (not inpainting model), python: 3.10.9  •  torch: 1.13.1+cpu  •  xformers: N/A  •  gradio: 3.16.2

Worked around with git checkout f1724fd^

@demirklvc
Copy link

getting the same error
Bildschirmfoto 2023-02-17 um 16 53 25

@Mikubill
Copy link
Owner

hmm..try update again?

@wbh1129
Copy link
Contributor Author

wbh1129 commented Feb 17, 2023

hmm..try update again?

All good now, thank you!

@wbh1129
Copy link
Contributor Author

wbh1129 commented Feb 17, 2023

I can't close the issue, permissions related?

@ajaxaddicted
Copy link

ajaxaddicted commented Feb 17, 2023

I have just updated the extension, reloaded the UI and still get the error:

     [  0,   0,   0, 255]]], dtype=uint8)}, False, 'Scale to Fit (Inner Fit)', False, False, 512, 64, 64, 1, False, False, 'positive', 'comma', 0, False, False, '', 1, '', 0, '', 0, '', True, False, False, False, 0) {}
Traceback (most recent call last):
  File "H:\SD\stable-diffusion-webui\modules\call_queue.py", line 56, in f
    res = list(func(*args, **kwargs))
  File "H:\SD\stable-diffusion-webui\modules\call_queue.py", line 37, in f
    res = func(*args, **kwargs)
  File "H:\SD\stable-diffusion-webui\modules\txt2img.py", line 56, in txt2img
    processed = process_images(p)
  File "H:\SD\stable-diffusion-webui\modules\processing.py", line 486, in process_images
    res = process_images_inner(p)
  File "H:\SD\stable-diffusion-webui\modules\processing.py", line 628, in process_images_inner
    samples_ddim = p.sample(conditioning=c, unconditional_conditioning=uc, seeds=seeds, subseeds=subseeds, subseed_strength=p.subseed_strength, prompts=prompts)
  File "H:\SD\stable-diffusion-webui\modules\processing.py", line 828, in sample
    samples = self.sampler.sample(self, x, conditioning, unconditional_conditioning, image_conditioning=self.txt2img_image_conditioning(x))
  File "H:\SD\stable-diffusion-webui\modules\sd_samplers_kdiffusion.py", line 323, in sample
    samples = self.launch_sampling(steps, lambda: self.func(self.model_wrap_cfg, x, extra_args={
  File "H:\SD\stable-diffusion-webui\modules\sd_samplers_kdiffusion.py", line 221, in launch_sampling
    return func()
  File "H:\SD\stable-diffusion-webui\modules\sd_samplers_kdiffusion.py", line 323, in <lambda>
    samples = self.launch_sampling(steps, lambda: self.func(self.model_wrap_cfg, x, extra_args={
  File "H:\SD\stable-diffusion-webui\venv\lib\site-packages\torch\autograd\grad_mode.py", line 27, in decorate_context
    return func(*args, **kwargs)
  File "H:\SD\stable-diffusion-webui\repositories\k-diffusion\k_diffusion\sampling.py", line 145, in sample_euler_ancestral
    denoised = model(x, sigmas[i] * s_in, **extra_args)
  File "H:\SD\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "H:\SD\stable-diffusion-webui\modules\sd_samplers_kdiffusion.py", line 116, in forward
    x_out = self.inner_model(x_in, sigma_in, cond={"c_crossattn": [cond_in], "c_concat": [image_cond_in]})
  File "H:\SD\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "H:\SD\stable-diffusion-webui\repositories\k-diffusion\k_diffusion\external.py", line 112, in forward
    eps = self.get_eps(input * c_in, self.sigma_to_t(sigma), **kwargs)
  File "H:\SD\stable-diffusion-webui\repositories\k-diffusion\k_diffusion\external.py", line 138, in get_eps
    return self.inner_model.apply_model(*args, **kwargs)
  File "H:\SD\stable-diffusion-webui\modules\sd_hijack_utils.py", line 17, in <lambda>
    setattr(resolved_obj, func_path[-1], lambda *args, **kwargs: self(*args, **kwargs))
  File "H:\SD\stable-diffusion-webui\modules\sd_hijack_utils.py", line 28, in __call__
    return self.__orig_func(*args, **kwargs)
  File "H:\SD\stable-diffusion-webui\repositories\stable-diffusion-stability-ai\ldm\models\diffusion\ddpm.py", line 858, in apply_model
    x_recon = self.model(x_noisy, t, **cond)
  File "H:\SD\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "H:\SD\stable-diffusion-webui\repositories\stable-diffusion-stability-ai\ldm\models\diffusion\ddpm.py", line 1329, in forward
    out = self.diffusion_model(x, t, context=cc)
  File "H:\SD\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "H:\SD\stable-diffusion-webui\extensions\sd-webui-controlnet\scripts\cldm.py", line 147, in forward2
    if self.lowvram:
  File "H:\SD\stable-diffusion-webui\extensions\sd-webui-controlnet\scripts\cldm.py", line 112, in forward
    control = outer.control_model(x=x, hint=outer.hint_cond, timesteps=timesteps, context=context)
  File "H:\SD\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "H:\SD\stable-diffusion-webui\extensions\sd-webui-controlnet\scripts\cldm.py", line 427, in forward
    from modules.devices import cond_cast_unet
UnboundLocalError: local variable 'cond_cast_unet' referenced before assignment

@demirklvc
Copy link

it works for me again. thanks

@wbh1129
Copy link
Contributor Author

wbh1129 commented Feb 17, 2023

I have just updated the extension, reloaded the UI and still get the error:

     [  0,   0,   0, 255]]], dtype=uint8)}, False, 'Scale to Fit (Inner Fit)', False, False, 512, 64, 64, 1, False, False, 'positive', 'comma', 0, False, False, '', 1, '', 0, '', 0, '', True, False, False, False, 0) {}
Traceback (most recent call last):
  File "H:\SD\stable-diffusion-webui\modules\call_queue.py", line 56, in f
    res = list(func(*args, **kwargs))
  File "H:\SD\stable-diffusion-webui\modules\call_queue.py", line 37, in f
    res = func(*args, **kwargs)
  File "H:\SD\stable-diffusion-webui\modules\txt2img.py", line 56, in txt2img
    processed = process_images(p)
  File "H:\SD\stable-diffusion-webui\modules\processing.py", line 486, in process_images
    res = process_images_inner(p)
  File "H:\SD\stable-diffusion-webui\modules\processing.py", line 628, in process_images_inner
    samples_ddim = p.sample(conditioning=c, unconditional_conditioning=uc, seeds=seeds, subseeds=subseeds, subseed_strength=p.subseed_strength, prompts=prompts)
  File "H:\SD\stable-diffusion-webui\modules\processing.py", line 828, in sample
    samples = self.sampler.sample(self, x, conditioning, unconditional_conditioning, image_conditioning=self.txt2img_image_conditioning(x))
  File "H:\SD\stable-diffusion-webui\modules\sd_samplers_kdiffusion.py", line 323, in sample
    samples = self.launch_sampling(steps, lambda: self.func(self.model_wrap_cfg, x, extra_args={
  File "H:\SD\stable-diffusion-webui\modules\sd_samplers_kdiffusion.py", line 221, in launch_sampling
    return func()
  File "H:\SD\stable-diffusion-webui\modules\sd_samplers_kdiffusion.py", line 323, in <lambda>
    samples = self.launch_sampling(steps, lambda: self.func(self.model_wrap_cfg, x, extra_args={
  File "H:\SD\stable-diffusion-webui\venv\lib\site-packages\torch\autograd\grad_mode.py", line 27, in decorate_context
    return func(*args, **kwargs)
  File "H:\SD\stable-diffusion-webui\repositories\k-diffusion\k_diffusion\sampling.py", line 145, in sample_euler_ancestral
    denoised = model(x, sigmas[i] * s_in, **extra_args)
  File "H:\SD\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "H:\SD\stable-diffusion-webui\modules\sd_samplers_kdiffusion.py", line 116, in forward
    x_out = self.inner_model(x_in, sigma_in, cond={"c_crossattn": [cond_in], "c_concat": [image_cond_in]})
  File "H:\SD\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "H:\SD\stable-diffusion-webui\repositories\k-diffusion\k_diffusion\external.py", line 112, in forward
    eps = self.get_eps(input * c_in, self.sigma_to_t(sigma), **kwargs)
  File "H:\SD\stable-diffusion-webui\repositories\k-diffusion\k_diffusion\external.py", line 138, in get_eps
    return self.inner_model.apply_model(*args, **kwargs)
  File "H:\SD\stable-diffusion-webui\modules\sd_hijack_utils.py", line 17, in <lambda>
    setattr(resolved_obj, func_path[-1], lambda *args, **kwargs: self(*args, **kwargs))
  File "H:\SD\stable-diffusion-webui\modules\sd_hijack_utils.py", line 28, in __call__
    return self.__orig_func(*args, **kwargs)
  File "H:\SD\stable-diffusion-webui\repositories\stable-diffusion-stability-ai\ldm\models\diffusion\ddpm.py", line 858, in apply_model
    x_recon = self.model(x_noisy, t, **cond)
  File "H:\SD\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "H:\SD\stable-diffusion-webui\repositories\stable-diffusion-stability-ai\ldm\models\diffusion\ddpm.py", line 1329, in forward
    out = self.diffusion_model(x, t, context=cc)
  File "H:\SD\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "H:\SD\stable-diffusion-webui\extensions\sd-webui-controlnet\scripts\cldm.py", line 147, in forward2
    if self.lowvram:
  File "H:\SD\stable-diffusion-webui\extensions\sd-webui-controlnet\scripts\cldm.py", line 112, in forward
    control = outer.control_model(x=x, hint=outer.hint_cond, timesteps=timesteps, context=context)
  File "H:\SD\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
    return forward_call(*input, **kwargs)
  File "H:\SD\stable-diffusion-webui\extensions\sd-webui-controlnet\scripts\cldm.py", line 427, in forward
    from modules.devices import cond_cast_unet
UnboundLocalError: local variable 'cond_cast_unet' referenced before assignment

Restart SD instead of just the UI?

@ajaxaddicted
Copy link

Now it works for me as well. Thanks for the fix👍🏻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants