ComfyUI_ExtraModels icon indicating copy to clipboard operation
ComfyUI_ExtraModels copied to clipboard

TypeError: 'int' object is not subscriptable

Open flesler opened this issue 11 months ago • 5 comments

Running on Pinokio, Ubuntu 22

Here's the workflow: SANA.json

Here's the error log, while running the KSampler:

  File "/home/user/pinokio/api/comfy/app/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 "/home/user/pinokio/api/comfy/app/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 "/home/user/pinokio/api/comfy/app/execution.py", line 174, in _map_node_over_list
    process_inputs(input_dict, i)
  File "/home/user/pinokio/api/comfy/app/execution.py", line 163, in process_inputs
    results.append(getattr(obj, func)(**inputs))
  File "/home/user/pinokio/api/comfy/app/nodes.py", line 1519, in sample
    return common_ksampler(model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, denoise=denoise)
  File "/home/user/pinokio/api/comfy/app/nodes.py", line 1486, in common_ksampler
    samples = comfy.sample.sample(model, noise, steps, cfg, sampler_name, scheduler, positive, negative, latent_image,
  File "/home/user/pinokio/api/comfy/app/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 "/home/user/pinokio/api/comfy/app/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 "/home/user/pinokio/api/comfy/app/comfy/samplers.py", line 921, in sample
    return cfg_guider.sample(noise, latent_image, sampler, sigmas, denoise_mask, callback, disable_pbar, seed)
  File "/home/user/pinokio/api/comfy/app/comfy/samplers.py", line 907, in sample
    output = executor.execute(noise, latent_image, sampler, sigmas, denoise_mask, callback, disable_pbar, seed)
  File "/home/user/pinokio/api/comfy/app/comfy/patcher_extension.py", line 110, in execute
    return self.original(*args, **kwargs)
  File "/home/user/pinokio/api/comfy/app/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 "/home/user/pinokio/api/comfy/app/comfy/samplers.py", line 860, in inner_sample
    samples = executor.execute(self, sigmas, extra_args, callback, noise, latent_image, denoise_mask, disable_pbar)
  File "/home/user/pinokio/api/comfy/app/comfy/patcher_extension.py", line 110, in execute
    return self.original(*args, **kwargs)
  File "/home/user/pinokio/api/comfy/app/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 "/home/user/pinokio/api/comfy/app/env/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 116, in decorate_context
    return func(*args, **kwargs)
  File "/home/user/pinokio/api/comfy/app/comfy/k_diffusion/sampling.py", line 155, in sample_euler
    denoised = model(x, sigma_hat * s_in, **extra_args)
  File "/home/user/pinokio/api/comfy/app/comfy/samplers.py", line 380, in __call__
    out = self.inner_model(x, sigma, model_options=model_options, seed=seed)
  File "/home/user/pinokio/api/comfy/app/comfy/samplers.py", line 840, in __call__
    return self.predict_noise(*args, **kwargs)
  File "/home/user/pinokio/api/comfy/app/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 "/home/user/pinokio/api/comfy/app/comfy/samplers.py", line 360, in sampling_function
    out = calc_cond_batch(model, conds, x, timestep, model_options)
  File "/home/user/pinokio/api/comfy/app/comfy/samplers.py", line 196, in calc_cond_batch
    return executor.execute(model, conds, x_in, timestep, model_options)
  File "/home/user/pinokio/api/comfy/app/comfy/patcher_extension.py", line 110, in execute
    return self.original(*args, **kwargs)
  File "/home/user/pinokio/api/comfy/app/comfy/samplers.py", line 309, in _calc_cond_batch
    output = model.apply_model(input_x, timestep_, **c).chunk(batch_chunks)
  File "/home/user/pinokio/api/comfy/app/comfy/model_base.py", line 130, in apply_model
    return comfy.patcher_extension.WrapperExecutor.new_class_executor(
  File "/home/user/pinokio/api/comfy/app/comfy/patcher_extension.py", line 110, in execute
    return self.original(*args, **kwargs)
  File "/home/user/pinokio/api/comfy/app/comfy/model_base.py", line 159, in _apply_model
    model_output = self.diffusion_model(xc, t, context=context, control=control, transformer_options=transformer_options, **extra_conds).float()
  File "/home/user/pinokio/api/comfy/app/custom_nodes/ComfyUI_ExtraModels/Sana/models/sana_multi_scale.py", line 328, in __call__
    return self.forward(*args, **kwargs)
  File "/home/user/pinokio/api/comfy/app/custom_nodes/ComfyUI_ExtraModels/Sana/models/sana_multi_scale.py", line 254, in forward
    out = self.forward_raw(
  File "/home/user/pinokio/api/comfy/app/custom_nodes/ComfyUI_ExtraModels/Sana/models/sana_multi_scale.py", line 300, in forward_raw
    y_lens = [y_lens[1]] * bs
TypeError: 'int' object is not subscriptable

flesler avatar Jan 02 '25 23:01 flesler

I have the same when testing the included Sana workflow.

!!! Exception during processing !!! 'int' object is not subscriptable
Traceback (most recent call last):
  File "C:\AI\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 "C:\AI\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 "C:\AI\ComfyUI\execution.py", line 174, in _map_node_over_list
    process_inputs(input_dict, i)
  File "C:\AI\ComfyUI\execution.py", line 163, in process_inputs
    results.append(getattr(obj, func)(**inputs))
  File "C:\AI\ComfyUI\nodes.py", line 1519, in sample
    return common_ksampler(model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, denoise=denoise)
  File "C:\AI\ComfyUI\nodes.py", line 1486, in common_ksampler
    samples = comfy.sample.sample(model, noise, steps, cfg, sampler_name, scheduler, positive, negative, latent_image,
  File "C:\AI\ComfyUI\custom_nodes\Comfyui-StableSR\nodes.py", line 69, in hook_sample
    return original_sample(*args, **kwargs)
  File "C:\AI\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:\AI\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 "C:\AI\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 "C:\AI\ComfyUI\comfy\samplers.py", line 921, in sample
    return cfg_guider.sample(noise, latent_image, sampler, sigmas, denoise_mask, callback, disable_pbar, seed)
  File "C:\AI\ComfyUI\comfy\samplers.py", line 907, in sample
    output = executor.execute(noise, latent_image, sampler, sigmas, denoise_mask, callback, disable_pbar, seed)
  File "C:\AI\ComfyUI\comfy\patcher_extension.py", line 110, in execute
    return self.original(*args, **kwargs)
  File "C:\AI\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 "C:\AI\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 "C:\AI\ComfyUI\comfy\patcher_extension.py", line 110, in execute
    return self.original(*args, **kwargs)
  File "C:\AI\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 "C:\AI\ComfyUI\venv\lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context
    return func(*args, **kwargs)
  File "C:\AI\ComfyUI\comfy\k_diffusion\sampling.py", line 155, in sample_euler
    denoised = model(x, sigma_hat * s_in, **extra_args)
  File "C:\AI\ComfyUI\comfy\samplers.py", line 380, in __call__
    out = self.inner_model(x, sigma, model_options=model_options, seed=seed)
  File "C:\AI\ComfyUI\comfy\samplers.py", line 840, in __call__
    return self.predict_noise(*args, **kwargs)
  File "C:\AI\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 "C:\AI\ComfyUI\comfy\samplers.py", line 360, in sampling_function
    out = calc_cond_batch(model, conds, x, timestep, model_options)
  File "C:\AI\ComfyUI\comfy\samplers.py", line 196, in calc_cond_batch
    return executor.execute(model, conds, x_in, timestep, model_options)
  File "C:\AI\ComfyUI\comfy\patcher_extension.py", line 110, in execute
    return self.original(*args, **kwargs)
  File "C:\AI\ComfyUI\comfy\samplers.py", line 309, in _calc_cond_batch
    output = model.apply_model(input_x, timestep_, **c).chunk(batch_chunks)
  File "C:\AI\ComfyUI\comfy\model_base.py", line 130, in apply_model
    return comfy.patcher_extension.WrapperExecutor.new_class_executor(
  File "C:\AI\ComfyUI\comfy\patcher_extension.py", line 110, in execute
    return self.original(*args, **kwargs)
  File "C:\AI\ComfyUI\comfy\model_base.py", line 159, in _apply_model
    model_output = self.diffusion_model(xc, t, context=context, control=control, transformer_options=transformer_options, **extra_conds).float()
  File "C:\AI\ComfyUI\custom_nodes\ComfyUI_ExtraModels\Sana\models\sana_multi_scale.py", line 328, in __call__
    return self.forward(*args, **kwargs)
  File "C:\AI\ComfyUI\custom_nodes\ComfyUI_ExtraModels\Sana\models\sana_multi_scale.py", line 254, in forward
    out = self.forward_raw(
  File "C:\AI\ComfyUI\custom_nodes\ComfyUI_ExtraModels\Sana\models\sana_multi_scale.py", line 300, in forward_raw
    y_lens = [y_lens[1]] * bs
TypeError: 'int' object is not subscriptable

MNeMoNiCuZ avatar Jan 03 '25 21:01 MNeMoNiCuZ

Use the node here: https://github.com/Efficient-Large-Model/ComfyUI_ExtraModels

City96 is constructing official node in ComfyUI for Sana. Before that, use this node first: https://github.com/Efficient-Large-Model/ComfyUI_ExtraModels

lawrence-cj avatar Jan 05 '25 09:01 lawrence-cj

This solution worked for me:

  1. find file sana_multi_scale.py
  2. Change this code (line 299 / 300)y_lens = ((y != 0).sum(dim=3) > 0).sum(dim=2).squeeze().tolist() y_lens = [y_lens[1]] * bs # <-- ERROR occurs here 3 . To this y_lens = ((y != 0).sum(dim=3) > 0).sum(dim=2).squeeze().tolist() if isinstance(y_lens, int): # Ensure it's always a list y_lens = [y_lens] y_lens = [y_lens[1]] * bs if len(y_lens) > 1 else [y_lens[0]] * bs

Restart comfy. The KSampler worked afterwards for me.

DeltaForce14 avatar Feb 08 '25 11:02 DeltaForce14

This solution worked for me:

  1. find file sana_multi_scale.py
  2. Change this code (line 299 / 300)y_lens = ((y != 0).sum(dim=3) > 0).sum(dim=2).squeeze().tolist() y_lens = [y_lens[1]] * bs # <-- ERROR occurs here 3 . To this y_lens = ((y != 0).sum(dim=3) > 0).sum(dim=2).squeeze().tolist() if isinstance(y_lens, int): # Ensure it's always a list y_lens = [y_lens] y_lens = [y_lens[1]] * bs if len(y_lens) > 1 else [y_lens[0]] * bs

Restart comfy. The KSampler worked afterwards for me.

Well, this solve the error, but the workflow generates only black images.

marcoc2 avatar Feb 13 '25 20:02 marcoc2

Same here: https://github.com/Efficient-Large-Model/ComfyUI_ExtraModels didnt fix the error neither did this (grey images).

    This solution worked for me:

        find file sana_multi_scale.py
        Change this code (line 299 / 300)y_lens = ((y != 0).sum(dim=3) > 0).sum(dim=2).squeeze().tolist()
        y_lens = [y_lens[1]] * bs # <-- ERROR occurs here
        3 . To this
        y_lens = ((y != 0).sum(dim=3) > 0).sum(dim=2).squeeze().tolist()
        if isinstance(y_lens, int): # Ensure it's always a list
        y_lens = [y_lens]
        y_lens = [y_lens[1]] * bs if len(y_lens) > 1 else [y_lens[0]] * bs

    Restart comfy. The KSampler worked afterwards for me.

FalxGod avatar Mar 09 '25 22:03 FalxGod