Skip to content

[Bug] DeepCache won't work with Lora in ComfyUI #1182

Open
@Nirmal2000

Description

@Nirmal2000

Your current environment information

Ran a simple workflow on ComfyUI.
image

🐛 Describe the bug

Getting below error

!!! Exception during processing !!! Transform failed of <class 'register_comfy.deep_cache_unet.FastDeepCacheUNet'>: Transform failed of <class 'onediff.infer_compiler.backends.oneflow.deployable_module.get_mixed_deployable_module.<locals>.MixedOneflowDeployableModule'>: An exception occurred during class transformation:
Traceback (most recent call last):
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/builtin_transform.py", line 62, in proxy_class
    out = transform_mgr.transform_cls(cls)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/manager.py", line 84, in transform_cls
    mock_cls = self._transform_entity(mock_full_cls_name)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/manager.py", line 61, in _transform_entity
    result = self.mocker.mock_entity(entity)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/import_tools/importer.py", line 95, in mock_entity
    return self.load_entity_with_mock(entity)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/import_tools/importer.py", line 133, in load_entity_with_mock
    mock_pkg = getattr(mock_pkg, name)
AttributeError: 'function' object has no attribute '<locals>'

Exception: 'function' object has no attribute '<locals>'
Traceback (most recent call last):
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/builtin_transform.py", line 62, in proxy_class
    out = transform_mgr.transform_cls(cls)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/manager.py", line 84, in transform_cls
    mock_cls = self._transform_entity(mock_full_cls_name)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/manager.py", line 61, in _transform_entity
    result = self.mocker.mock_entity(entity)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/import_tools/importer.py", line 95, in mock_entity
    return self.load_entity_with_mock(entity)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/import_tools/importer.py", line 133, in load_entity_with_mock
    mock_pkg = getattr(mock_pkg, name)
AttributeError: 'function' object has no attribute '<locals>'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/builtin_transform.py", line 41, in wrapper
    result = dispatcher(first_param, *args, **kwargs)
  File "/usr/lib/python3.10/functools.py", line 889, in wrapper
    return dispatch(args[0].__class__)(*args, **kw)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/builtin_transform.py", line 199, in _
    new_md_cls = proxy_class(type(mod))
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/builtin_transform.py", line 66, in proxy_class
    raise RuntimeError(
RuntimeError: An exception occurred during class transformation:
Traceback (most recent call last):
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/builtin_transform.py", line 62, in proxy_class
    out = transform_mgr.transform_cls(cls)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/manager.py", line 84, in transform_cls
    mock_cls = self._transform_entity(mock_full_cls_name)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/manager.py", line 61, in _transform_entity
    result = self.mocker.mock_entity(entity)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/import_tools/importer.py", line 95, in mock_entity
    return self.load_entity_with_mock(entity)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/import_tools/importer.py", line 133, in load_entity_with_mock
    mock_pkg = getattr(mock_pkg, name)
AttributeError: 'function' object has no attribute '<locals>'

Exception: 'function' object has no attribute '<locals>'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/builtin_transform.py", line 41, in wrapper
    result = dispatcher(first_param, *args, **kwargs)
  File "/usr/lib/python3.10/functools.py", line 889, in wrapper
    return dispatch(args[0].__class__)(*args, **kw)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/builtin_transform.py", line 243, in _
    of_mod = of_mod_cls()
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/builtin_transform.py", line 214, in init
    self._modules[n] = torch2oflow(m)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/builtin_transform.py", line 43, in wrapper
    raise NotImplementedError(f"Transform failed of {type(first_param)}: {e}")
NotImplementedError: Transform failed of <class 'onediff.infer_compiler.backends.oneflow.deployable_module.get_mixed_deployable_module.<locals>.MixedOneflowDeployableModule'>: An exception occurred during class transformation:
Traceback (most recent call last):
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/builtin_transform.py", line 62, in proxy_class
    out = transform_mgr.transform_cls(cls)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/manager.py", line 84, in transform_cls
    mock_cls = self._transform_entity(mock_full_cls_name)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/manager.py", line 61, in _transform_entity
    result = self.mocker.mock_entity(entity)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/import_tools/importer.py", line 95, in mock_entity
    return self.load_entity_with_mock(entity)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/import_tools/importer.py", line 133, in load_entity_with_mock
    mock_pkg = getattr(mock_pkg, name)
AttributeError: 'function' object has no attribute '<locals>'

Exception: 'function' object has no attribute '<locals>'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/workspace/snap_comfy/ComfyUI/execution.py", line 327, 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 "/workspace/snap_comfy/ComfyUI/execution.py", line 202, 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 "/workspace/snap_comfy/ComfyUI/execution.py", line 174, in _map_node_over_list
    process_inputs(input_dict, i)
  File "/workspace/snap_comfy/ComfyUI/execution.py", line 163, in process_inputs
    results.append(getattr(obj, func)(**inputs))
  File "/workspace/snap_comfy/ComfyUI/nodes.py", line 1533, in sample
    return common_ksampler(model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, denoise=denoise)
  File "/workspace/snap_comfy/ComfyUI/nodes.py", line 1500, in common_ksampler
    samples = comfy.sample.sample(model, noise, steps, cfg, sampler_name, scheduler, positive, negative, latent_image,
  File "/workspace/snap_comfy/ComfyUI/custom_nodes/ComfyUI-Impact-Pack/modules/impact/sample_error_enhancer.py", line 22, in informative_sample
    raise e
  File "/workspace/snap_comfy/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 "/workspace/snap_comfy/ComfyUI/comfy/sample.py", line 45, 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 "/workspace/snap_comfy/ComfyUI/comfy/samplers.py", line 1031, 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 "/workspace/snap_comfy/ComfyUI/comfy/samplers.py", line 921, in sample
    return cfg_guider.sample(noise, latent_image, sampler, sigmas, denoise_mask, callback, disable_pbar, seed)
  File "/workspace/snap_comfy/ComfyUI/comfy/samplers.py", line 907, in sample
    output = executor.execute(noise, latent_image, sampler, sigmas, denoise_mask, callback, disable_pbar, seed)
  File "/workspace/snap_comfy/ComfyUI/comfy/patcher_extension.py", line 110, in execute
    return self.original(*args, **kwargs)
  File "/workspace/snap_comfy/ComfyUI/comfy/samplers.py", line 876, in outer_sample
    output = self.inner_sample(noise, latent_image, device, sampler, sigmas, denoise_mask, callback, disable_pbar, seed)
  File "/workspace/snap_comfy/ComfyUI/comfy/samplers.py", line 860, in inner_sample
    samples = executor.execute(self, sigmas, extra_args, callback, noise, latent_image, denoise_mask, disable_pbar)
  File "/workspace/snap_comfy/ComfyUI/comfy/patcher_extension.py", line 110, in execute
    return self.original(*args, **kwargs)
  File "/workspace/snap_comfy/ComfyUI/comfy/samplers.py", line 715, in sample
    samples = self.sampler_function(model_k, noise, sigmas, extra_args=extra_args, callback=k_callback, disable=disable_pbar, **self.extra_options)
  File "/workspace/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
  File "/workspace/snap_comfy/ComfyUI/comfy/k_diffusion/sampling.py", line 161, in sample_euler
    denoised = model(x, sigma_hat * s_in, **extra_args)
  File "/workspace/snap_comfy/ComfyUI/comfy/samplers.py", line 380, in __call__
    out = self.inner_model(x, sigma, model_options=model_options, seed=seed)
  File "/workspace/snap_comfy/ComfyUI/comfy/samplers.py", line 840, in __call__
    return self.predict_noise(*args, **kwargs)
  File "/workspace/snap_comfy/ComfyUI/comfy/samplers.py", line 843, 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 "/workspace/snap_comfy/ComfyUI/comfy/samplers.py", line 360, in sampling_function
    out = calc_cond_batch(model, conds, x, timestep, model_options)
  File "/workspace/snap_comfy/ComfyUI/custom_nodes/onediff_comfy_nodes/modules/sd_hijack_utils.py", line 58, in hijacked_method
    return self(*args, **kwargs)
  File "/workspace/snap_comfy/ComfyUI/custom_nodes/onediff_comfy_nodes/modules/sd_hijack_utils.py", line 95, in __call__
    return sub_func(self._orig_func, *args, **kwargs)
  File "/workspace/snap_comfy/ComfyUI/custom_nodes/onediff_comfy_nodes/modules/oneflow/hijack_samplers.py", line 125, in calc_cond_batch_of
    output = model_options["model_function_wrapper"](
  File "/workspace/snap_comfy/ComfyUI/custom_nodes/onediff_comfy_nodes/modules/oneflow/utils/deep_cache_speedup.py", line 137, in apply_model
    model_output, cache_h = model_patcher.fast_deep_cache_unet(
  File "/workspace/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1532, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/workspace/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1582, in _call_impl
    result = forward_call(*args, **kwargs)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/deployable_module.py", line 38, in wrapper
    return func(self, *args, **kwargs)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/online_quantization_utils.py", line 65, in wrapper
    output = func(self, *args, **kwargs)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/graph_management_utils.py", line 123, in wrapper
    ret = func(self, *args, **kwargs)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/args_tree_util.py", line 72, in wrapper
    graph_file_management(func)(self, *mapped_args, **mapped_kwargs)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/graph_management_utils.py", line 123, in wrapper
    ret = func(self, *args, **kwargs)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/deployable_module.py", line 142, in forward
    dpl_graph = self.get_graph()
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/deployable_module.py", line 108, in get_graph
    self._deployable_module_model.oneflow_module,
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/dual_module.py", line 30, in oneflow_module
    self._oneflow_module = torch2oflow(self._torch_module)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/builtin_transform.py", line 43, in wrapper
    raise NotImplementedError(f"Transform failed of {type(first_param)}: {e}")
NotImplementedError: Transform failed of <class 'register_comfy.deep_cache_unet.FastDeepCacheUNet'>: Transform failed of <class 'onediff.infer_compiler.backends.oneflow.deployable_module.get_mixed_deployable_module.<locals>.MixedOneflowDeployableModule'>: An exception occurred during class transformation:
Traceback (most recent call last):
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/builtin_transform.py", line 62, in proxy_class
    out = transform_mgr.transform_cls(cls)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/manager.py", line 84, in transform_cls
    mock_cls = self._transform_entity(mock_full_cls_name)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/transform/manager.py", line 61, in _transform_entity
    result = self.mocker.mock_entity(entity)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/import_tools/importer.py", line 95, in mock_entity
    return self.load_entity_with_mock(entity)
  File "/workspace/snap_comfy/ComfyUI/onediff/src/onediff/infer_compiler/backends/oneflow/import_tools/importer.py", line 133, in load_entity_with_mock
    mock_pkg = getattr(mock_pkg, name)
AttributeError: 'function' object has no attribute '<locals>'

Exception: 'function' object has no attribute '<locals>'

Metadata

Metadata

Assignees

No one assigned

    Labels

    Request-bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions