toriato / stable-diffusion-webui-daam

DAAM for Stable Diffusion Web UI
Other
89 stars 6 forks source link

RuntimeError: "compute_indices_weights_cubic" not implemented for 'Half' #12

Open tboronczyk opened 1 year ago

tboronczyk commented 1 year ago

python: 3.10.9 torch: 1.12.1 xformers: N/A gradio: 3.16.2 commit: ea9bd9fc

Launching Web UI with arguments: --api --theme dark --disable-nan-check --opt-split-attention-v1 --no-half-vae --upcast-sampling --use-cpu interrogate

daam run with context_size=77, token_count=5 0%| | 0/20 [00:00<?, ?it/s] Error completing request Arguments: ('task(lyy6sjwduonnacp)', 'happy puppy in a field', '', [], 20, 0, False, False, 1, 1, 7, -1.0, -1.0, 0, 0, 0, False, 512, 512, False, 0.7, 2, 'Latent', 0, 0, 0, [], 0, True, False, 1, False, False, False, 1.1, 1.5, 100, 0.7, False, False, True, False, False, 0, 'Gustavosta/MagicPrompt-Stable-Diffusion', '', 'happy, puppy, in, a, field', False, False, False, True, 'Auto', 0.5, 1, False, False, False, False, 'positive', 'comma', 0, False, False, '', 1, '', 0, '', 0, '', True, False, False, False, 0) {} Traceback (most recent call last): File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/modules/call_queue.py", line 56, in f res = list(func(*args, kwargs)) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/modules/call_queue.py", line 37, in f res = func(*args, *kwargs) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/modules/txt2img.py", line 56, in txt2img processed = process_images(p) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/modules/processing.py", line 486, in process_images res = process_images_inner(p) File "/Users/tboronczyk/Dev/stabdiff/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 "/Users/tboronczyk/Dev/stabdiff/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 "/Users/tboronczyk/Dev/stabdiff/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 "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/modules/sd_samplers_kdiffusion.py", line 221, in launch_sampling return func() File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/modules/sd_samplers_kdiffusion.py", line 323, in samples = self.launch_sampling(steps, lambda: self.func(self.model_wrap_cfg, x, extra_args={ File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/venv/lib/python3.10/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context return func(args, kwargs) File "/Users/tboronczyk/Dev/stabdiff/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 "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(*input, *kwargs) File "/Users/tboronczyk/Dev/stabdiff/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 "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(input, kwargs) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/repositories/k-diffusion/k_diffusion/external.py", line 114, in forward eps = self.get_eps(input * c_in, self.sigma_to_t(sigma), kwargs) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/repositories/k-diffusion/k_diffusion/external.py", line 140, in get_eps return self.inner_model.apply_model(*args, *kwargs) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/modules/sd_hijack_utils.py", line 17, in setattr(resolved_obj, func_path[-1], lambda args, kwargs: self(*args, kwargs)) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/modules/sd_hijack_utils.py", line 26, in call return self.__sub_func(self.__orig_func, *args, kwargs) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/modules/sd_hijack_unet.py", line 45, in apply_model return orig_func(self, x_noisy.to(devices.dtype_unet), t.to(devices.dtype_unet), cond, kwargs).float() File "/Users/tboronczyk/Dev/stabdiff/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 "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(input, kwargs) File "/Users/tboronczyk/Dev/stabdiff/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 "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(*input, kwargs) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/extensions/stable-diffusion-webui-daam/scripts/daam/trace.py", line 41, in _forward super_return = hk_self.monkey_super('forward', *args, *kwargs) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/extensions/stable-diffusion-webui-daam/scripts/daam/hook.py", line 65, in monkey_super return self.old_state[f'oldfn{fn_name}'](args, kwargs) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/extensions/stable-diffusion-webui-daam/scripts/daam/trace.py", line 41, in _forward super_return = hk_self.monkey_super('forward', *args, kwargs) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/extensions/stable-diffusion-webui-daam/scripts/daam/hook.py", line 65, in monkey_super return self.old_state[f'oldfn{fn_name}'](*args, *kwargs) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/modules/diffusionmodules/openaimodel.py", line 776, in forward h = module(h, emb, context) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(input, kwargs) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/modules/diffusionmodules/openaimodel.py", line 84, in forward x = layer(x, context) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(*input, kwargs) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/modules/attention.py", line 324, in forward x = block(x, context=context[i]) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(*input, *kwargs) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/modules/attention.py", line 259, in forward return checkpoint(self._forward, (x, context), self.parameters(), self.checkpoint) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/modules/diffusionmodules/util.py", line 114, in checkpoint return CheckpointFunction.apply(func, len(inputs), args) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/modules/diffusionmodules/util.py", line 129, in forward output_tensors = ctx.run_function(ctx.input_tensors) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/modules/attention.py", line 263, in _forward x = self.attn2(self.norm2(x), context=context) + x File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(input, kwargs) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/extensions/stable-diffusion-webui-daam/scripts/daam/trace.py", line 277, in _forward out = hk_self._hooked_attention(self, q, k, v, batch_size, sequence_length, dim) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/extensions/stable-diffusion-webui-daam/scripts/daam/trace.py", line 354, in _hooked_attention maps = hk_self._up_sample_attn(attn_slice, value, factor) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/venv/lib/python3.10/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context return func(*args, **kwargs) File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/extensions/stable-diffusion-webui-daam/scripts/daam/trace.py", line 240, in _up_sampleattn map = F.interpolate(map_, size=(h_fix, w_fix), mode='bicubic') File "/Users/tboronczyk/Dev/stabdiff/stable-diffusion-webui/venv/lib/python3.10/site-packages/torch/nn/functional.py", line 3946, in interpolate return torch._C._nn.upsample_bicubic2d(input, output_size, align_corners, scale_factors) RuntimeError: "compute_indices_weights_cubic" not implemented for 'Half'

rockerBOO commented 1 year ago

Try without --use-cpu interrogate , --opt-split-attention-v1, --upcast-sampling some or all of these options and see if it helps.

tboronczyk commented 1 year ago

Nope. :( I tried again without the arguments to webui and it crashes.

daam run with context_size=77, token_count=5 0%| | 0/20 [00:00<?, ?it/s]loc("mps_add"("(mpsFileLoc): /AppleInternal/Library/BuildRoots/20d6c351-ee94-11ec-bcaf-7247572f23b4/Library/Caches/com.apple.xbs/Sources/MetalPerformanceShadersGraph/mpsgraph/MetalPerformanceShadersGraph/Core/Files/MPSGraphUtilities.mm":219:0)): error: input types 'tensor<2x1280xf32>' and 'tensor<*xf16>' are not broadcast compatible LLVM ERROR: Failed to infer result type(s). zsh: abort ./webui.sh /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/multiprocessing/resource_tracker.py:224: UserWarning: resource_tracker: There appear to be 1 leaked semaphore objects to clean up at shutdown warnings.warn('resource_tracker: There appear to be %d '

It looks like I need at a minimum --upcast-sampling to run SD.

Trying to run DAAM with no other arguments other than --upcast-sampling to webui.sh still results in the compute_indicies_weights_cubic error.

rockerBOO commented 1 year ago

hmm might be related to Mac, MPS and the daam library directly. Could ask over there and maybe they have some feedback.

tboronczyk commented 1 year ago

It looks like I need at a minimum --upcast-sampling to run SD.

Trying to run DAAM with no other arguments other than --upcast-sampling to webui.sh still results in the compute_indicies_weights_cubic error.