MinusZone - ModelConfigManualSelect(LLamaCPP)
Point the pack at any GGUF you already own
- llama_cpp_model_config
ModelConfigManualSelect(LLamaCPP) is the sibling to the DownloaderSelect node, and it's the one most power users end up on. Instead of a preset dropdown, it scans your ComfyUI/models/gguf folder and lets you pick any .gguf file you've already got - including subdirectories. Drop a Llama-3, Qwen2, Phi-3, or honestly anything llama.cpp can run into that folder and this node will offer it.
The point of the node is that the pack doesn't care which LLM you use for prompt beautification - the CLIPTextEncode(LLamaCPP Universal) node accepts whatever config you hand it. ManualSelect is how you plug in your own model, which matters when you want something the downloader doesn't list: a bigger quant, a Chinese-tuned model, a specialist fine-tune. Since this pack's output quality tracks the LLM's instruction-following, picking a better model is a real upgrade path.
The inputs
llama_cpp_model- dropdown populated live from everything underComfyUI/models/gguf(recursively, so files in subfolders show as relative paths). Note the model list is only refreshed when the node's inputs load, so after dropping a new GGUF in, reload the node or restart the workflow to see it.chat_format-autoplus the llama.cpp chat handler list. Leave itauto; it detects the right chat template from the model metadata. Set it manually only if the model responds with broken formatting.
Output is a single llama_cpp_model_config that feeds the llama_cpp_model input of CLIPTextEncode(LLamaCPP Universal) - and also of the deprecated v1 encode nodes, plus the Ollama config node returns the same type, so all these interchange.
How it works
On run, the node joins your chosen filename to the gguf models path and hands the file path + chat format to the encode node, which loads it through llama.cpp with the options from LLamaCPPOptions. "ManualSelect" just means no download logic - if the file's missing, the encode node raises instead of fetching. So this node is only useful if you actually own the file.
Quant advice from the GGUF world, briefly: Q8 is basically fp16 at half the size, Q5 is the last tier before visible loss, and Q4_K_M is the accepted compromise - so if you're choosing between a Q4 and Q5 for an 8B instruct model, grab the Q5 if it fits, the Q4 if you're tight on VRAM.
Installing
Part of ComfyUI-Prompt-MZ, same as the rest:
cd ComfyUI/custom_nodes
git clone https://github.com/MinusZoneAI/ComfyUI-Prompt-MZ
Restart. Depends on llama-cpp-python and diskcache from requirements.txt.
Troubleshooting
The empty-dropdown moment is the classic trap: the node shows no models because your gguf folder is empty or the models live in a different location than ComfyUI/models/gguf. Put them there (or symlink), not in ComfyUI/models/checkpoints. If you pick a model and the encode node errors on load, it's almost always a llama-cpp-python version mismatch - the README's fix for LLAMA_SPLIT_MODE_LAYER (upgrade llama-cpp-python) and for LLama.dll failing to load (CUDA 12.1) apply here directly. And remember: this node just passes a path, so a corrupt or truncated GGUF gives you nonsense prompts, not an obvious error - keep the file size sane.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| llama_cpp_model | COMBO | 0 options: | |
| chat_format | COMBO | auto | 28 options: auto, llama-2, llama-3, alpaca, qwen, vicuna, +22 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| llama_cpp_model_config | LLamaCPPModelConfig | — |