Multimodal — llama-cpp wheel pick (GitHub)
The node that finds the exact llama-cpp-python wheel your GPU needs
- report
If you've ever installed llama-cpp-python the lazy way and then stared at a Qwen3-VL that couldn't see its own image, this node is the fix for that specific kind of afternoon. pip install llama-cpp-python grabs a generic wheel that may not have CUDA, and it certainly won't have Qwen3VLChatHandler unless you're on a build that exports it. This node queries GitHub Releases for llama-cpp-python builds and scores every .whl file against your actual machine, then hands you the exact pip install <url> command.
How it works
Under the hood it's three pieces. First it probes your environment - Python version (cp tag), OS platform strings, and the CUDA tag derived from torch.version.cuda (so 12.4 becomes cu124). Then it hits the GitHub releases API for the repo you've specified (JamePeng/llama-cpp-python by default, because that's where CUDA/Qwen3-capable prebuilt wheels live) and parses every wheel filename with packaging. Finally it scores the candidates: interpreter tag must match your CPython, platform must match your OS, and a wheel whose filename carries the CUDA tag your PyTorch was built against outranks everything else. Out pops a report with the best match, alternatives, and a copy-ready install URL.
You don't even need to be in the node. The same logic is exposed as a CLI:
python -m llm_comfy_multimodal.install_llama_wheel # print the recommendation
python -m llm_comfy_multimodal.install_llama_wheel --install # and actually install it
The --install flag runs pip uninstall llama-cpp-python then installs the recommended URL for you, which is roughly the whole setup chore in one command.
Inputs and outputs
The inputs are almost a joke in their simplicity: run (a boolean, default true - flip it off and you get a (skipped) report) and github_repo, which you can leave at the default JamePeng/llama-cpp-python unless you're building wheels under a different fork. The single output is report, a STRING you wire into a Show Text node or read straight off the node's output.
Gotchas worth knowing
The node needs internet - it's hitting the GitHub API live. Unauthenticated GitHub has rate limits, and if you get throttled the report just shows an error with a hint to set GITHUB_TOKEN. You don't need the actual wheel releases cached anywhere; the node only reads release metadata, it doesn't download gigabytes. And the scoring is heuristic - it matches CUDA tags and interpreter tags from filenames, not from test runs - so treat the answer as "this is the one most likely to work," then confirm the import at the ComfyUI console.
One honest caveat: this is a setup-time node. You run it once when you're installing the pack, pick your wheel, restart ComfyUI, and you may not touch it again until you upgrade your Python or your CUDA toolkit. That's fine - it's the kind of tool that's worth its weight on day one and then quietly sits in your workflow. Pair it with "Multimodal - CUDA / Python report" from the same pack, which tells you the cuXXX hint and whether Qwen3VLChatHandler is already importable, so you know whether you even need to shop for a new wheel in the first place.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| run | BOOLEAN | true | — |
| github_repo | STRING | JamePeng/llama-cpp-python | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| report | STRING | — |