brkirch / stable-diffusion-webui

Stable Diffusion web UI
GNU Affero General Public License v3.0
195 stars 10 forks source link

[Bug]: RuntimeError: "upsample_nearest2d_channels_last" not implemented for 'Half' #31

Closed a-ghorbani closed 1 year ago

a-ghorbani commented 1 year ago

Is there an existing issue for this?

What happened?

It fails when generating an image with the following error:

Calculating sha256 for /Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/models/Stable-diffusion/dreamshaper_8.safetensors: 879db523c30d3b9017143d56705015e15a2cb5628762c11d086fed9538abd7fd
Loading weights [879db523c3] from /Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/models/Stable-diffusion/dreamshaper_8.safetensors
Creating model from config: /Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/configs/v1-inference.yaml
Applying attention optimization: sub-quadratic... done.
Model loaded in 2.2s (create model: 0.5s, apply weights to model: 0.6s, apply half(): 0.2s, move model to device: 0.5s, calculate empty prompt: 0.3s).
  0%|                                                                                                                                                                                  | 0/20 [00:01<?, ?it/s]
*** Error completing request
*** Arguments: ('task(6b6pvktf84tge5a)', 'Motorbike', '', [], 20, 'DPM++ 2M Karras', 1, 1, 7, 512, 512, False, 0.7, 2, 'Latent', 0, 0, 0, 'Use same checkpoint', 'Use same sampler', '', '', [], <gradio.routes.Request object at 0x29ba5ab00>, 0, False, '', 0.8, -1, False, -1, 0, 0, 0, False, False, 'positive', 'comma', 0, False, False, '', 1, '', [], 0, '', [], 0, '', [], True, False, False, False, 0, False) {}
    Traceback (most recent call last):
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/modules/call_queue.py", line 58, in f
        res = list(func(*args, **kwargs))
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/modules/call_queue.py", line 37, in f
        res = func(*args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/modules/txt2img.py", line 55, in txt2img
        processed = processing.process_images(p)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/modules/processing.py", line 714, in process_images
        res = process_images_inner(p)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/modules/processing.py", line 849, 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 "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/modules/processing.py", line 1122, in sample
        samples = self.sampler.sample(self, x, conditioning, unconditional_conditioning, image_conditioning=self.txt2img_image_conditioning(x))
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/modules/sd_samplers_kdiffusion.py", line 223, in sample
        samples = self.launch_sampling(steps, lambda: self.func(self.model_wrap_cfg, x, extra_args=self.sampler_extra_args, disable=False, callback=self.callback_state, **extra_params_kwargs))
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/modules/sd_samplers_common.py", line 245, in launch_sampling
        return func()
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/modules/sd_samplers_kdiffusion.py", line 223, in <lambda>
        samples = self.launch_sampling(steps, lambda: self.func(self.model_wrap_cfg, x, extra_args=self.sampler_extra_args, disable=False, callback=self.callback_state, **extra_params_kwargs))
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/venv/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
        return func(*args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/repositories/k-diffusion/k_diffusion/sampling.py", line 594, in sample_dpmpp_2m
        denoised = model(x, sigmas[i] * s_in, **extra_args)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
        return self._call_impl(*args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
        return forward_call(*args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/modules/sd_samplers_cfg_denoiser.py", line 169, in forward
        x_out = self.inner_model(x_in, sigma_in, cond=make_condition_dict(cond_in, image_cond_in))
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
        return self._call_impl(*args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
        return forward_call(*args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/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 "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/repositories/k-diffusion/k_diffusion/external.py", line 138, in get_eps
        return self.inner_model.apply_model(*args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/modules/sd_hijack_utils.py", line 17, in <lambda>
        setattr(resolved_obj, func_path[-1], lambda *args, **kwargs: self(*args, **kwargs))
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/modules/sd_hijack_utils.py", line 26, in __call__
        return self.__sub_func(self.__orig_func, *args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/modules/sd_hijack_unet.py", line 48, in apply_model
        return orig_func(self, x_noisy.to(devices.dtype_unet), t.to(devices.dtype_unet), cond, **kwargs).float()
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/repositories/stable-diffusion-stability-ai/ldm/models/diffusion/ddpm.py", line 858, in apply_model
        x_recon = self.model(x_noisy, t, **cond)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
        return self._call_impl(*args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
        return forward_call(*args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/repositories/stable-diffusion-stability-ai/ldm/models/diffusion/ddpm.py", line 1335, in forward
        out = self.diffusion_model(x, t, context=cc)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
        return self._call_impl(*args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
        return forward_call(*args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/modules/sd_unet.py", line 91, in UNetModel_forward
        return ldm.modules.diffusionmodules.openaimodel.copy_of_UNetModel_forward_for_webui(self, x, timesteps, context, *args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/repositories/stable-diffusion-stability-ai/ldm/modules/diffusionmodules/openaimodel.py", line 802, in forward
        h = module(h, emb, context)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
        return self._call_impl(*args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
        return forward_call(*args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/repositories/stable-diffusion-stability-ai/ldm/modules/diffusionmodules/openaimodel.py", line 86, in forward
        x = layer(x)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
        return self._call_impl(*args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
        return forward_call(*args, **kwargs)
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/repositories/stable-diffusion-stability-ai/ldm/modules/diffusionmodules/openaimodel.py", line 115, in forward
        x = F.interpolate(x, scale_factor=2, mode="nearest")
      File "/Users/user1/code/AUTOMATIC1111/stable-diffusion-webui_exp_0814/venv/lib/python3.10/site-packages/torch/nn/functional.py", line 3985, in interpolate
        return torch._C._nn.upsample_nearest2d(input, output_size, scale_factors)
    RuntimeError: "upsample_nearest2d_channels_last" not implemented for 'Half'

Steps to reproduce the problem

  1. Load a model
  2. Select txt2img tab
  3. Type a prompt
  4. Press Generate

What should have happened?

An image should have been generated, as opposed to the error.

Commit where the problem happens

c3e8c2c1660d63c38e1a5e18fd2372dc99850620

What platforms do you use to access the UI ?

MacOS

What browsers do you use to access the UI ?

Brave

Command Line Arguments

no

List of extensions

no

Console logs

`Launch Web UI`

Additional information

System Info:

jrittvo commented 1 year ago

This is easy to try and it may fix your problem: Add --no-half when running the manual startup command:

./webui.sh --no-half

or add it to the export COMMANDLINE_ARGS in your webui-macos-env.sh file:

export COMMANDLINE_ARGS="--skip-torch-cuda-test --skip-install --no-download-sd-model --no-half-vae --upcast-sampling --use-cpu interrogate --no-half".

a-ghorbani commented 1 year ago

Closing this, as upgrading macOS to Version 13.5.1 resolved the issue.

Screenshot 2023-08-20 at 10 56 33