ComfyUI icon indicating copy to clipboard operation
ComfyUI copied to clipboard

InstantX Canny ControlNet - KSampler error ( mat1 and mat2 shapes cannot be multiplied )

Open JorgeR81 opened this issue 1 year ago • 6 comments

Actual Behavior

I have an error using the new controlnet

Steps to Reproduce

I used an workflow with the UNET loader

Debug Logs

got prompt
Using pytorch attention in VAE
Using pytorch attention in VAE
model weight dtype torch.float8_e4m3fn, manual cast: torch.float16
model_type FLUX
clip missing: ['text_projection.weight']
Requested to load FluxClipModel_
Loading 1 new model
loaded completely 0.0 4777.53759765625 True
Requested to load Flux
Requested to load ControlNetFlux
Loading 2 new models
loaded partially 5920.819987487793 5918.686584472656 0
loaded partially 64.0 62.296875 0
  0%|                                                                                           | 0/12 [00:00<?, ?it/s]
!!! Exception during processing !!! mat1 and mat2 shapes cannot be multiplied (1024x12 and 64x3072)
Traceback (most recent call last):
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\execution.py", line 317, in execute
    output_data, output_ui, has_subgraph = get_output_data(obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\execution.py", line 192, in get_output_data
    return_values = _map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\execution.py", line 169, in _map_node_over_list
    process_inputs(input_dict, i)
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\execution.py", line 158, in process_inputs
    results.append(getattr(obj, func)(**inputs))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\nodes.py", line 1429, in sample
    return common_ksampler(model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, denoise=denoise)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\nodes.py", line 1396, in common_ksampler
    samples = comfy.sample.sample(model, noise, steps, cfg, sampler_name, scheduler, positive, negative, latent_image,
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-Impact-Pack\modules\impact\sample_error_enhancer.py", line 22, in informative_sample
    raise e
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-Impact-Pack\modules\impact\sample_error_enhancer.py", line 9, in informative_sample
    return original_sample(*args, **kwargs)  # This code helps interpret error messages that occur within exceptions but does not have any impact on other operations.
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\sample.py", line 43, in sample
    samples = sampler.sample(noise, positive, negative, cfg=cfg, latent_image=latent_image, start_step=start_step, last_step=last_step, force_full_denoise=force_full_denoise, denoise_mask=noise_mask, sigmas=sigmas, callback=callback, disable_pbar=disable_pbar, seed=seed)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI_smZNodes\smZNodes.py", line 110, in KSampler_sample
    return orig_fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\samplers.py", line 829, in sample
    return sample(self.model, noise, positive, negative, cfg, self.device, sampler, sigmas, self.model_options, latent_image=latent_image, denoise_mask=denoise_mask, callback=callback, disable_pbar=disable_pbar, seed=seed)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI_smZNodes\smZNodes.py", line 126, in sample
    return orig_fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\samplers.py", line 729, in sample
    return cfg_guider.sample(noise, latent_image, sampler, sigmas, denoise_mask, callback, disable_pbar, seed)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\samplers.py", line 716, in sample
    output = self.inner_sample(noise, latent_image, device, sampler, sigmas, denoise_mask, callback, disable_pbar, seed)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\samplers.py", line 695, in inner_sample
    samples = sampler.sample(self, sigmas, extra_args, callback, noise, latent_image, denoise_mask, disable_pbar)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\samplers.py", line 600, in sample
    samples = self.sampler_function(model_k, noise, sigmas, extra_args=extra_args, callback=k_callback, disable=disable_pbar, **self.extra_options)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\python_embeded\Lib\site-packages\torch\utils\_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\k_diffusion\sampling.py", line 144, in sample_euler
    denoised = model(x, sigma_hat * s_in, **extra_args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI_smZNodes\smZNodes.py", line 98, in KSamplerX0Inpaint___call__
    return store.KSamplerX0Inpaint___call__(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\samplers.py", line 299, in __call__
    out = self.inner_model(x, sigma, model_options=model_options, seed=seed)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\samplers.py", line 682, in __call__
    return self.predict_noise(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\samplers.py", line 685, in predict_noise
    return sampling_function(self.inner_model, x, timestep, self.conds.get("negative", None), self.conds.get("positive", None), self.cfg, model_options=model_options, seed=seed)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI_smZNodes\smZNodes.py", line 164, in sampling_function
    return orig_fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\samplers.py", line 279, in sampling_function
    out = calc_cond_batch(model, conds, x, timestep, model_options)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI_smZNodes\smZNodes.py", line 79, in calc_cond_batch
    return store.calc_cond_batch(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\samplers.py", line 202, in calc_cond_batch
    c['control'] = control.get_control(input_x, timestep_, c, len(cond_or_uncond))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\controlnet.py", line 238, in get_control
    control = self.control_model(x=x_noisy.to(dtype), hint=self.cond_hint, timesteps=timestep.to(dtype), context=context.to(dtype), **extra)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\python_embeded\Lib\site-packages\torch\nn\modules\module.py", line 1532, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\python_embeded\Lib\site-packages\torch\nn\modules\module.py", line 1541, in _call_impl
    return forward_call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\ldm\flux\controlnet.py", line 123, in forward
    return self.forward_orig(img, img_ids, hint, context, txt_ids, timesteps, y, guidance)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\ldm\flux\controlnet.py", line 70, in forward_orig
    controlnet_cond = self.pos_embed_input(controlnet_cond)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\python_embeded\Lib\site-packages\torch\nn\modules\module.py", line 1532, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\python_embeded\Lib\site-packages\torch\nn\modules\module.py", line 1541, in _call_impl
    return forward_call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\comfy\ops.py", line 78, in forward
    return super().forward(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Cui\cu_121_2\ComfyUI_windows_portable\python_embeded\Lib\site-packages\torch\nn\modules\linear.py", line 116, in forward
    return F.linear(input, self.weight, self.bias)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: mat1 and mat2 shapes cannot be multiplied (1024x12 and 64x3072)

Prompt executed in 149.69 seconds

Other

No response

JorgeR81 avatar Aug 29 '24 00:08 JorgeR81

You have to use the SD3 controlnet apply node to use those. I'll publish some workflows once the depth and union ones are implemented.

comfyanonymous avatar Aug 29 '24 00:08 comfyanonymous

This may need some tweaks to work on my old GTX 1070 ( 8GB )

Even with --reserve-vram 1.2, and Flux FP8, the GPU activity spikes to 100%, even before the first step and it just gets stuck.

The same happens with GGUF models. 


EDIT: it works after the latest updates.

JorgeR81 avatar Aug 29 '24 01:08 JorgeR81

You have to use the SD3 controlnet apply node to use those. I'll publish some workflows once the depth and union ones are implemented.

@comfyanonymous when will release workflow

akk-123 avatar Sep 02 '24 09:09 akk-123

Was this ever fixed, I'm getting this when trying to setup a controlnet union pro with flux dev fp8. "SamplerCustomAdvanced mat1 and mat2 shapes cannot be multiplied (1x2048 and 768x3072)"

Running master@669d9e4 version of comfyUI.

UPDATE: So I realized it didn't work when I was using the triple clip loader. Works fine with dual clip!

`got prompt 0%| | 0/50 [00:00<?, ?it/s] !!! Exception during processing !!! mat1 and mat2 shapes cannot be multiplied (1x2048 and 768x3072) Traceback (most recent call last): File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\execution.py", line 323, in execute output_data, output_ui, has_subgraph = get_output_data(obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\execution.py", line 198, in get_output_data return_values = _map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\execution.py", line 169, in map_node_over_list process_inputs(input_dict, i) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\execution.py", line 158, in process_inputs results.append(getattr(obj, func)(**inputs)) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy_extras\nodes_custom_sampler.py", line 633, in sample samples = guider.sample(noise.generate_noise(latent), latent_image, sampler, sigmas, denoise_mask=noise_mask, callback=callback, disable_pbar=disable_pbar, seed=noise.seed) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 740, in sample output = self.inner_sample(noise, latent_image, device, sampler, sigmas, denoise_mask, callback, disable_pbar, seed) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 719, in inner_sample samples = sampler.sample(self, sigmas, extra_args, callback, noise, latent_image, denoise_mask, disable_pbar) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 624, in sample samples = self.sampler_function(model_k, noise, sigmas, extra_args=extra_args, callback=k_callback, disable=disable_pbar, **self.extra_options) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\custom_nodes\ComfyUI-Detail-Daemon\detail_daemon_node.py", line 466, in lying_sigma_sampler return lss_wrapped_sampler.sampler_function( File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\utils_contextlib.py", line 116, in decorate_context return func(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\k_diffusion\sampling.py", line 155, in sample_euler denoised = model(x, sigma_hat * s_in, **extra_args) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\custom_nodes\ComfyUI-Detail-Daemon\detail_daemon_node.py", line 458, in model_wrapper return model(x, sigma, **extra_args) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 299, in call out = self.inner_model(x, sigma, model_options=model_options, seed=seed) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 706, in call return self.predict_noise(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 709, in predict_noise return sampling_function(self.inner_model, x, timestep, self.conds.get("negative", None), self.conds.get("positive", None), self.cfg, model_options=model_options, seed=seed) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 279, in sampling_function out = calc_cond_batch(model, conds, x, timestep, model_options) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 202, in calc_cond_batch c['control'] = control.get_control(input_x, timestep, c, len(cond_or_uncond)) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\controlnet.py", line 203, in get_control control_prev = self.previous_controlnet.get_control(x_noisy, t, cond, batched_number) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\controlnet.py", line 255, in get_control control = self.control_model(x=x_noisy.to(dtype), hint=self.cond_hint, timesteps=timestep.to(dtype), context=context.to(dtype), **extra) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nn\modules\module.py", line 1553, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nn\modules\module.py", line 1562, in _call_impl return forward_call(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\ldm\flux\controlnet.py", line 205, in forward return self.forward_orig(img, img_ids, hint, context, txt_ids, timesteps, y, guidance, control_type=kwargs.get("control_type", [])) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\ldm\flux\controlnet.py", line 134, in forward_orig vec = vec + self.vector_in(y) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nn\modules\module.py", line 1553, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nn\modules\module.py", line 1562, in _call_impl return forward_call(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\ldm\flux\layers.py", line 58, in forward return self.out_layer(self.silu(self.in_layer(x))) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nn\modules\module.py", line 1553, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nn\modules\module.py", line 1562, in _call_impl return forward_call(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\ops.py", line 70, in forward return super().forward(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nn\modules\linear.py", line 117, in forward return F.linear(input, self.weight, self.bias) RuntimeError: mat1 and mat2 shapes cannot be multiplied (1x2048 and 768x3072)

Prompt executed in 0.04 seconds`

jalfort avatar Nov 08 '24 18:11 jalfort

Was this ever fixed, I'm getting this when trying to setup a controlnet union pro with flux dev fp8. "SamplerCustomAdvanced mat1 and mat2 shapes cannot be multiplied (1x2048 and 768x3072)"

Running master@669d9e4 version of comfyUI.

UPDATE: So I realized it didn't work when I was using the triple clip loader. Works fine with dual clip!

`got prompt 0%| | 0/50 [00:00<?, ?it/s] !!! Exception during processing !!! mat1 and mat2 shapes cannot be multiplied (1x2048 and 768x3072) Traceback (most recent call last): File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\execution.py", line 323, in execute output_data, output_ui, has_subgraph = get_output_data(obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\execution.py", line 198, in get_output_data return_values = _map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\execution.py", line 169, in map_node_over_list process_inputs(input_dict, i) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\execution.py", line 158, in process_inputs results.append(getattr(obj, func)(**inputs)) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy_extras\nodes_custom_sampler.py", line 633, in sample samples = guider.sample(noise.generate_noise(latent), latent_image, sampler, sigmas, denoise_mask=noise_mask, callback=callback, disable_pbar=disable_pbar, seed=noise.seed) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 740, in sample output = self.inner_sample(noise, latent_image, device, sampler, sigmas, denoise_mask, callback, disable_pbar, seed) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 719, in inner_sample samples = sampler.sample(self, sigmas, extra_args, callback, noise, latent_image, denoise_mask, disable_pbar) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 624, in sample samples = self.sampler_function(model_k, noise, sigmas, extra_args=extra_args, callback=k_callback, disable=disable_pbar, **self.extra_options) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\custom_nodes\ComfyUI-Detail-Daemon\detail_daemon_node.py", line 466, in lying_sigma_sampler return lss_wrapped_sampler.sampler_function( File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\utils_contextlib.py", line 116, in decorate_context return func(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\k_diffusion\sampling.py", line 155, in sample_euler denoised = model(x, sigma_hat * s_in, **extra_args) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\custom_nodes\ComfyUI-Detail-Daemon\detail_daemon_node.py", line 458, in model_wrapper return model(x, sigma, **extra_args) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 299, in call out = self.inner_model(x, sigma, model_options=model_options, seed=seed) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 706, in call return self.predict_noise(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 709, in predict_noise return sampling_function(self.inner_model, x, timestep, self.conds.get("negative", None), self.conds.get("positive", None), self.cfg, model_options=model_options, seed=seed) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 279, in sampling_function out = calc_cond_batch(model, conds, x, timestep, model_options) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\samplers.py", line 202, in calc_cond_batch c['control'] = control.get_control(input_x, timestep, c, len(cond_or_uncond)) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\controlnet.py", line 203, in get_control control_prev = self.previous_controlnet.get_control(x_noisy, t, cond, batched_number) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\controlnet.py", line 255, in get_control control = self.control_model(x=x_noisy.to(dtype), hint=self.cond_hint, timesteps=timestep.to(dtype), context=context.to(dtype), **extra) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nn\modules\module.py", line 1553, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nn\modules\module.py", line 1562, in _call_impl return forward_call(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\ldm\flux\controlnet.py", line 205, in forward return self.forward_orig(img, img_ids, hint, context, txt_ids, timesteps, y, guidance, control_type=kwargs.get("control_type", [])) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\ldm\flux\controlnet.py", line 134, in forward_orig vec = vec + self.vector_in(y) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nn\modules\module.py", line 1553, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nn\modules\module.py", line 1562, in _call_impl return forward_call(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\ldm\flux\layers.py", line 58, in forward return self.out_layer(self.silu(self.in_layer(x))) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nn\modules\module.py", line 1553, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nn\modules\module.py", line 1562, in _call_impl return forward_call(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\comfy\ops.py", line 70, in forward return super().forward(*args, **kwargs) File "P:\StableDiffusion\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nn\modules\linear.py", line 117, in forward return F.linear(input, self.weight, self.bias) RuntimeError: mat1 and mat2 shapes cannot be multiplied (1x2048 and 768x3072)

Prompt executed in 0.04 seconds`

Currently, SD3.x is the only model that uses triple clip.

ltdrdata avatar Nov 09 '24 11:11 ltdrdata

Currently, SD3.x is the only model that uses triple clip.

That is not true. Flux also benefits from the triple clip loader and it changes the image for the better with a good Clip_G model.

J-Cott avatar Jun 23 '25 18:06 J-Cott