shiimizu / ComfyUI_smZNodes

Custom nodes for ComfyUI such as CLIP Text Encode++
GNU General Public License v3.0
190 stars 14 forks source link

Option use_CFGDenoiser throws error #14

Closed TimmermanV closed 11 months ago

TimmermanV commented 11 months ago

When enabling use_CFGDenoiser on the CLIP Text Encode++ I get the following error. I see the Impact-Pack mentioned here. Is that add-on incompatible with this feature, or is there some other issue? The error below shows when I try to run the palm tree example workflow from the readme.

Error occurred when executing KSampler:

'list' object has no attribute 'to'

  File "/content/drive/MyDrive/ComfyUI/execution.py", line 152, in recursive_execute
    output_data, output_ui = get_output_data(obj, input_data_all)
  File "/content/drive/MyDrive/ComfyUI/execution.py", line 82, in get_output_data
    return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
  File "/content/drive/MyDrive/ComfyUI/execution.py", line 75, in map_node_over_list
    results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
  File "/content/drive/MyDrive/ComfyUI/nodes.py", line 1236, in sample
    return common_ksampler(model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, denoise=denoise)
  File "/content/drive/MyDrive/ComfyUI/nodes.py", line 1206, in common_ksampler
    samples = comfy.sample.sample(model, noise, steps, cfg, sampler_name, scheduler, positive, negative, latent_image,
  File "/content/drive/MyDrive/ComfyUI/custom_nodes/ComfyUI-Impact-Pack/modules/impact/hacky.py", line 9, in informative_sample
    return original_sample(*args, **kwargs)
  File "/content/drive/MyDrive/ComfyUI/comfy/sample.py", line 93, in sample
    samples = sampler.sample(noise, positive_copy, negative_copy, 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 "/tmp/tmp1otqzm7x.py", line 144, in sample
    samples = getattr(k_diffusion_sampling, "sample_{}".format(self.sampler))(self.model_k, noise, sigmas, extra_args=extra_args, callback=k_callback, disable=disable_pbar)
  File "/usr/local/lib/python3.10/dist-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
  File "/content/drive/MyDrive/ComfyUI/comfy/k_diffusion/sampling.py", line 178, in sample_heun
    denoised = model(x, sigma_hat * s_in, **extra_args)
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/content/drive/MyDrive/ComfyUI/comfy/samplers.py", line 323, in forward
    out = self.inner_model(x, sigma, cond=cond, uncond=uncond, cond_scale=cond_scale, cond_concat=cond_concat, model_options=model_options, seed=seed)
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/content/drive/MyDrive/ComfyUI/comfy/k_diffusion/external.py", line 125, in forward
    eps = self.get_eps(input * c_in, self.sigma_to_t(sigma), **kwargs)
  File "/content/drive/MyDrive/ComfyUI/comfy/k_diffusion/external.py", line 151, in get_eps
    return self.inner_model.apply_model(*args, **kwargs)
  File "/content/drive/MyDrive/ComfyUI/custom_nodes/ComfyUI_smZNodes/smZNodes.py", line 706, in apply_model
    out = self.inner_model2(x, timestep, cond=cond, uncond=unc, cond_scale=cond_scale, s_min_uncond=self.s_min_uncond, image_cond=image_cond)
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/content/drive/MyDrive/ComfyUI/custom_nodes/ComfyUI_smZNodes/modules/sd_samplers_kdiffusion.py", line 160, in forward
    x_out[a:b] = self.inner_model(x_in[a:b], sigma_in[a:b], **make_condition_dict(subscript_cond(cond_in, a, b), image_cond_in[a:b]))
  File "/content/drive/MyDrive/ComfyUI/custom_nodes/ComfyUI_smZNodes/modules/sd_hijack_unet.py", line 84, in wrapper
    return func(*args, **kwargs)
  File "/content/drive/MyDrive/ComfyUI/custom_nodes/ComfyUI_smZNodes/modules/sd_hijack_unet.py", line 99, in apply_model22
    return self.apply_model_orig(x_noisy, t, c_concat, cond, c_adm, control, transformer_options)
  File "/content/drive/MyDrive/ComfyUI/comfy/model_base.py", line 60, in apply_model
    context = context.to(dtype)
shiimizu commented 11 months ago

Looks like a previous version of ComfyUI or my node. Are you up to date on both?

TimmermanV commented 11 months ago

You're right, ComfyUI_smZNodes wasn't updated. Thanks! That was easier than I thought. I see the setting moved to a global 'Settings' node. I think I can figure it out, but an updated example would be nice.