Comfy-Org / Comfy-Org/ComfyUI

Running with "--cpu" flag still tries to use Kornia

Open
#14,107 6 comments 4 reactions 0 assignees View on GitHub
Potential Bug
Dominant language
Python
Stars
133k
Forks
15.7k
Avg merge
1d 7h
Merged PRs (30d)
158

Description

### Custom Node Testing

- [x] I have tried disabling custom nodes and the issue persists (see [how to disable custom nodes](https://docs.comfy.org/troubleshooting/custom-node-issues#step-1%3A-test-with-all-custom-nodes-disabled) if you need help)

### Expected Behavior

ComfyUI launches successfully.

### Actual Behavior

ComfyUI encounters an "Illegal instruction" and fails to start.

As best I can tell, Kornia appears to have some dependency on a GPU existing in the system, so when one does not, it runs an illegal instruction that causes the entire launch process to get killed. The fact ComfyUI tries to use Kornia when explicitly told not to use a GPU (hence the "--cpu" flag) is the reason behind this bug report.

Commenting out Kornia in the requirements.txt file does solve this issue, albeit with some residual terminal clutter from various nodes failing to load, now that Kornia has joined the GPU in the realm of "does not exist." Although this has allowed me to progress, I do not consider this a true "fix" because an optional dependency shouldn't be able to break a system in the first place.

### Steps to Reproduce

1. Create fresh venv (I'm using uv, but that does not appear to contribute to the problem)
2. Clone ConfyUI
3. Checkout tag of latest stable release (tried both v0.21.1 and v0.22.0)
4. Activate venv and install requirements.txt
5. Run "python main.py --cpu"

### Debug Logs

```powershell
(ComfyUI_venv) @:~/AI/Image_Generation/ComfyUI$ python main.py --cpu
setup plugin alembic.autogenerate.schemas
setup plugin alembic.autogenerate.tables
setup plugin alembic.autogenerate.types
setup plugin alembic.autogenerate.constraints
setup plugin alembic.autogenerate.defaults
setup plugin alembic.autogenerate.comments
Found comfy_kitchen backend triton: {'available': False, 'disabled': True, 'unavailable_reason': "ImportError: No module named 'triton'", 'capabilities': []}
Found comfy_kitchen backend eager: {'available': True, 'disabled': False, 'unavailable_reason': None, 'capabilities': ['apply_rope', 'apply_rope1', 'dequantize_mxfp8', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'scaled_mm_mxfp8', 'scaled_mm_nvfp4']}
Found comfy_kitchen backend cuda: {'available': False, 'disabled': True, 'unavailable_reason': 'CUDA not available on this system', 'capabilities': []}
Checkpoint files will always be loaded safely.
Total VRAM 257688 MB, total RAM 257688 MB
pytorch version: 2.12.0+cpu
Set vram state to: DISABLED
Device: cpu
Using sub quadratic optimization for attention, if you have memory or speed issues try using: --use-split-cross-attention
Python version: 3.13.5 (main, May 5 2026, 21:05:52) [GCC 14.2.0]
ComfyUI version: 0.22.0
comfy-aimdo version: 0.3.0
comfy-kitchen version: 0.2.8
****** User settings have been changed to be stored on the server instead of browser storage. ******
****** For multi-user setups add the --multi-user CLI argument to enable multiple user profiles. ******
comfyui-frontend-package version: 1.43.18
comfyui-workflow-templates version: 0.9.79
comfyui-embedded-docs version: 0.5.0
comfy-kitchen version: 0.2.8
comfy-aimdo version: 0.3.0
[Prompt Server] web root: /home//AI/Image_Generation/ComfyUI_venv/lib/python3.13/site-packages/comfyui_frontend_package/static
Asset seeder disabled
Fatal Python error: Illegal instruction

Stack (most recent call first):
File "", line 488 in _call_with_frames_removed
File "", line 1328 in exec_module
File "", line 935 in _load_unlocked
File "", line 1331 in _find_and_load_unlocked
File "", line 1360 in _find_and_load
File "/home//AI/Image_Generation/ComfyUI_venv/lib/python3.13/site-packages/kornia_rs/__init__.py", line 1 in
File "", line 488 in _call_with_frames_removed
File "", line 1026 in exec_module
File "", line 935 in _load_unlocked
File "", line 1331 in _find_and_load_unlocked
File "", line 1360 in _find_and_load
File "/home//AI/Image_Generation/ComfyUI_venv/lib/python3.13/site-packages/kornia/io/io.py", line 24 in
File "", line 488 in _call_with_frames_removed
File "", line 1026 in exec_module
File "", line 935 in _load_unlocked
File "", line 1331 in _find_and_load_unlocked
File "", line 1360 in _find_and_load
File "/home//AI/Image_Generation/ComfyUI_venv/lib/python3.13/site-packages/kornia/io/__init__.py", line 23 in
File "", line 488 in _call_with_frames_removed
File "", line 1026 in exec_module
File "", line 935 in _load_unlocked
File "", line 1331 in _find_and_load_unlocked
File "", line 1360 in _find_and_load
File "", line 488 in _call_with_frames_removed
File "", line 1310 in _find_and_load_unlocked
File "", line 1360 in _find_and_load
File "/home//AI/Image_Generation/ComfyUI_venv/lib/python3.13/site-packages/kornia/image/image.py", line 37 in
File "", line 488 in _call_with_frames_removed
File "", line 1026 in exec_module
File "", line 935 in _load_unlocked
File "", line 1331 in _find_and_load_unlocked
File "", line 1360 in _find_and_load
File "/home//AI/Image_Generation/ComfyUI_venv/lib/python3.13/site-packages/kornia/image/__init__.py", line 26 in
File "", line 488 in _call_with_frames_removed
File "", line 1026 in exec_module
File "", line 935 in _load_unlocked
File "", line 1331 in _find_and_load_unlocked
File "", line 1360 in _find_and_load
File "", line 488 in _call_with_frames_removed
File "", line 1310 in _find_and_load_unlocked
File "", line 1360 in _find_and_load
File "/home//AI/Image_Generation/ComfyUI_venv/lib/python3.13/site-packages/kornia/filters/in_range.py", line 25 in
File "", line 488 in _call_with_frames_removed
File "", line 1026 in exec_module
File "", line 935 in _load_unlocked
File "", line 1331 in _find_and_load_unlocked
File "", line 1360 in _find_and_load
File "/home//AI/Image_Generation/ComfyUI_venv/lib/python3.13/site-packages/kornia/filters/__init__.py", line 40 in
File "", line 488 in _call_with_frames_removed
File "", line 1026 in exec_module
File "", line 935 in _load_unlocked
File "", line 1331 in _find_and_load_unlocked
File "", line 1360 in _find_and_load
File "", line 488 in _call_with_frames_removed
File "", line 1415 in _handle_fromlist
File "/home//AI/Image_Generation/ComfyUI_venv/lib/python3.13/site-packages/kornia/__init__.py", line 28 in
File "", line 488 in _call_with_frames_removed
File "", line 1026 in exec_module
File "", line 935 in _load_unlocked
File "", line 1331 in _find_and_load_unlocked
File "", line 1360 in _find_and_load
File "/home//AI/Image_Generation/ComfyUI/comfy_extras/nodes_post_processing.py", line 9 in
File "", line 488 in _call_with_frames_removed
File "", line 1026 in exec_module
File "", line 935 in _load_unlocked
File "", line 1331 in _find_and_load_unlocked
File "", line 1360 in _find_and_load
File "/home//AI/Image_Generation/ComfyUI/comfy_extras/nodes_latent.py", line 2 in
File "", line 488 in _call_with_frames_removed
File "", line 1026 in exec_module
File "/home//AI/Image_Generation/ComfyUI/nodes.py", line 2204 in load_custom_node
File "/home//AI/Image_Generation/ComfyUI/nodes.py", line 2451 in init_builtin_extra_nodes
File "/home//AI/Image_Generation/ComfyUI/nodes.py", line 2479 in init_extra_nodes
File "/usr/lib/python3.13/asyncio/events.py", line 89 in _run
File "/usr/lib/python3.13/asyncio/base_events.py", line 2042 in _run_once
File "/usr/lib/python3.13/asyncio/base_events.py", line 683 in run_forever
File "/usr/lib/python3.13/asyncio/base_events.py", line 712 in run_until_complete
File "/home//AI/Image_Generation/ComfyUI/main.py", line 477 in start_comfyui
File "/home//AI/Image_Generation/ComfyUI/main.py", line 530 in

Extension modules: sqlalchemy.cyextension.collections, sqlalchemy.cyextension.immutabledict, sqlalchemy.cyextension.processors, sqlalchemy.cyextension.resultproxy, sqlalchemy.cyextension.util, greenlet._greenlet, markupsafe._speedups, yaml._yaml, PIL._imaging, numpy._core._multiarray_umath, numpy.linalg._umath_linalg, torch._C, torch._C._dynamo.autograd_compiler, torch._C._dynamo.eval_frame, torch._C._dynamo.guards, torch._C._dynamo.utils, torch._C._fft, torch._C._linalg, torch._C._nested, torch._C._nn, torch._C._sparse, torch._C._special, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._pcg64, numpy.random._generator, numpy.random._mt19937, numpy.random._philox, numpy.random._sfc64, numpy.random.mtrand, psutil._psutil_linux, PIL._imagingft, _cyutility, scipy._cyutility, scipy._lib._ccallback_c, charset_normalizer.md, charset_normalizer.cd, scipy.ndimage._nd_image, scipy.ndimage._rank_filter_1d, scipy.special._ufuncs_cxx, scipy.special._ellip_harm_2, scipy.special._special_ufuncs, scipy.special._gufuncs, scipy.special._ufuncs, scipy.special._specfun, scipy.special._comb, _ni_label, scipy.ndimage._ni_label, regex._regex, scipy.integrate._odepack, scipy.integrate._quadpack, scipy.integrate._vode, scipy.integrate._dop, scipy.sparse._sparsetools, _csparsetools, scipy.sparse._csparsetools, scipy.linalg._fblas, scipy.linalg._flapack, scipy.linalg.cython_lapack, scipy.linalg._cythonized_array_utils, scipy.linalg._solve_toeplitz, scipy.linalg._batched_linalg, scipy.linalg._decomp_lu_cython, scipy.linalg._matfuncs_schur_sqrtm, scipy.linalg._matfuncs_expm, scipy.linalg._linalg_pythran, scipy.linalg.cython_blas, scipy.linalg._decomp_update, scipy.sparse.linalg._dsolve._superlu, scipy.sparse.linalg._eigen.arpack._arpacklib, scipy.sparse.linalg._propack, scipy.optimize._group_columns, scipy._lib.messagestream, scipy.optimize._trlib._trlib, scipy.optimize._lbfgsb, _moduleTNC, scipy.optimize._moduleTNC, scipy.optimize._slsqplib, scipy.optimize._minpack, scipy.optimize._lsq.givens_elimination, scipy.optimize._zeros, scipy._lib._uarray._uarray, scipy.linalg._decomp_interpolative, scipy.optimize._bglu_dense, scipy.optimize._lsap, scipy.spatial._ckdtree, scipy.spatial._qhull, scipy.spatial._voronoi, scipy.spatial._hausdorff, scipy.spatial._distance_wrap, scipy.spatial.transform._rotation_cy, scipy.spatial.transform._rigid_transform_cy, scipy.optimize._direct, scipy.interpolate._fitpack, scipy.interpolate._dfitpack, scipy.interpolate._dierckx, scipy.interpolate._ppoly, scipy.interpolate._interpnd, scipy.interpolate._rbfinterp_pythran, scipy.interpolate._rgi_cython, scipy.special.cython_special, scipy.stats._stats, scipy.stats._biasedurn, scipy.stats._stats_pythran, scipy.stats._levy_stable.levyst, scipy.stats._ansari_swilk_statistics, scipy.sparse.csgraph._tools, scipy.sparse.csgraph._shortest_path, scipy.sparse.csgraph._traversal, scipy.sparse.csgraph._min_spanning_tree, scipy.sparse.csgraph._flow, scipy.sparse.csgraph._matching, scipy.sparse.csgraph._reordering, scipy.stats._sobol, scipy.stats._qmc_cy, scipy.stats._rcont.rcont, scipy.stats._qmvnt_cy, av._core, av.logging, av.buffer, av.audio.format, av.error, av.dictionary, av.container.pyio, av.option, av.descriptor, av.format, av.index, av.utils, av.stream, av.container.streams, av.sidedata.encparams, av.sidedata.motionvectors, av.sidedata.sidedata, av.opaque, av.packet, av.container.input, av.container.output, av.container.core, av.codec.context, av.video.format, av.video.reformatter, av.plane, av.video.plane, av.video.frame, av.video.stream, av.codec.hwaccel, av.codec.codec, av.frame, av.audio.layout, av.audio.plane, av.audio.frame, av.audio.stream, av.filter.link, av.filter.context, av.filter.graph, av.filter.filter, av.filter.loudnorm, av.audio.resampler, av.audio.codeccontext, av.audio.fifo, av.bitstream, av.device, av.video.codeccontext, av.subtitles.stream, multidict._multidict, yarl._quoting_c, propcache._helpers_c, aiohttp._http_writer, aiohttp._http_parser, aiohttp._websocket.mask, aiohttp._websocket.reader_c, frozenlist._frozenlist, requests.packages.charset_normalizer.md, requests.packages.chardet.md, requests.packages.charset_normalizer.cd, requests.packages.chardet.cd (total: 178)
Illegal instruction
```

### Other

_No response_

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.