toriato/stable-diffusion-webui-daam

RuntimeError: "compute_indices_weights_cubic" not implemented for 'Half'

tboronczyk opened this issue · 4 comments

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'old_fn
{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'old_fn
{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_sample_attn
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'

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

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.

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

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.