Comfy-Org / Comfy-Org/ComfyUI

`RuntimeError: Non-uniform work-groups are not supported by the target device` on B580.

Open
#8,243 2 comments 0 reactions 0 assignees View on GitHub
Potential Bug
Dominant language
Python
Stars
133k
Forks
15.7k
Avg merge
1d 6h
Merged PRs (30d)
155

Description

### Expected Behavior

CLIPVisionEncode node passes CLIP_VISION_OUTPUT.

### Actual Behavior

`RuntimeError: Non-uniform work-groups are not supported by the target device` occurs.

### Steps to Reproduce

![Image](https://github.com/user-attachments/assets/b8c87c94-a237-4cce-8f75-b76c887d61de)

### Debug Logs

```powershell
got prompt
!!! Exception during processing !!! Non-uniform work-groups are not supported by the target device
Traceback (most recent call last):
File "/ai/Projects/ComfyUI/execution.py", line 349, 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 "/ai/Projects/ComfyUI/execution.py", line 224, 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 "/ai/Projects/ComfyUI/execution.py", line 196, in _map_node_over_list
process_inputs(input_dict, i)
File "/ai/Projects/ComfyUI/execution.py", line 185, in process_inputs
results.append(getattr(obj, func)(**inputs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/ai/Projects/ComfyUI/nodes.py", line 1009, in encode
output = clip_vision.encode_image(image, crop=crop_image)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/ai/Projects/ComfyUI/comfy/clip_vision.py", line 74, in encode_image
pixel_values = clip_preprocess(image.to(self.load_device), size=self.image_size, mean=self.image_mean, std=self.image_std, crop=crop).float()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/ai/Projects/ComfyUI/comfy/clip_vision.py", line 36, in clip_preprocess
image = torch.nn.functional.interpolate(image, size=scale_size, mode="bicubic", antialias=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/bedovyy/miniforge3/envs/torch280/lib/python3.12/site-packages/torch/nn/functional.py", line 4799, in interpolate
return torch._C._nn._upsample_bicubic2d_aa(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Non-uniform work-groups are not supported by the target device

Prompt executed in 0.04 seconds
```

### Other

I tested some to pass the clip vision.

- Use CPU for vision clip.
- `--lowvram` fix the issue, but device for vision clip is same as clip currently, so the option makes clip too slow.
- Change `antialias=False` on `torch.nn.functional.interpolate`
- It also work, but the output must be different.
- Change `scale_size` to 256 (from 224) on `torch.nn.functional.interpolate`
- It passes clip vision, but it seems not good idea

I suggest one of them.

- add `device` option on CLIPVisionLoader node so user can select device
- set `antialias=False` when encode fails as below code.

clip_vision.py:36
```
try:
image = torch.nn.functional.interpolate(image, size=scale_size, mode="bicubic", antialias=True)
except:
image = torch.nn.functional.interpolate(image, size=scale_size, mode="bicubic", antialias=False)
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.