Nodes/ComfyUI-GGUF-FX/πŸ”§ GGUF Model Manager
ComfyUI Node

πŸ”§ GGUF Model Manager

Your GGUF registry in a node β€” no YAML surgery required (mostly)

By weekiiΒ·Created 11 months agoΒ·Updated 11 months agoΒ· 0
πŸ”§ GGUF Model Manager
    • result
    β—„actionζ΅θ§ˆδ»“εΊ“β–Ί
    β—„repo_idusername/repo-name-GGUFβ–Ί
    β—„model_nameMy Custom Modelβ–Ί
    β—„model_fileβ–Ί
    β—„mmproj_fileβ–Ί

    This node is the filing cabinet of ComfyUI-GGUF-FX. It doesn't generate anything and it doesn't load a model on its own - it manages the registry the pack uses to know which GGUF files exist and where they live, so the loaders can find them without you hand-editing a config file. If you've ever spent an evening wrestling a custom node's YAML just to make it see a model, this is the node that's supposed to replace that. Whether it fully delivers depends on which action you pick - and there's one trap worth knowing before you trust it.

    What it actually does

    Under the hood the pack keeps a custom_models.yaml in its own folder, listing models as name / repo / file entries - and, for multimodal GGUFs, a paired mmproj entry. That pairing matters more than it looks: vision GGUFs like Qwen2.5-VL need their separate .mmproj projector file, and the registry is how that association gets recorded so the vision loader grabs both instead of hallucinating a projector path.

    Everything runs through a single action dropdown with four choices. The labels are in Chinese, which startles people the first time, so here's the map:

    • ζ΅θ§ˆδ»“εΊ“ - Browse a HuggingFace repo (takes repo_id)
    • ζ·»εŠ ζ¨‘εž‹ - Add a model to the registry (takes model_name, model_file, optional mmproj_file)
    • εˆ—ε‡Ίζ¨‘εž‹ - List what's already registered
    • εˆ·ζ–°ζ¨‘εž‹εˆ—θ‘¨ - Clear the model cache and reload the registry

    The output is a single result string. The node is an output node, so the text displays right on it; wire it to a text-preview or save node if you want it out of the graph.

    The trap

    In the code as shipped, Browse and Add are dead in the water. Those two actions import helper modules (repo_browser and gguf_validator) that don't exist in the repository - the moment you run them you get an ImportError wrapped in a "ζ“δ½œε€±θ΄₯" failure message. List and Refresh work fine, because they only read the YAML and clear a cache. So in practice this node is a working registry inspector and cache flusher, and the add-from-HuggingFace flow is broken in the current version.

    Workarounds are easy, thankfully. If you need to register a model, edit custom_models.yaml directly - it's a short list of name/repo/file/mmproj entries. Or skip the registry entirely: drop a .gguf into ComfyUI/models/LLM/GGUF/ and the local loaders pick it up straight from disk. That's the honest answer to "how do I make the pack see my model."

    Install

    Same drill as every custom node - ComfyUI Manager (search "ComfyUI-GGUF-FX") or by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/weekii/ComfyUI-GGUF-FX.git
    cd ComfyUI-GGUF-FX
    pip install -r requirements.txt
    

    Then restart ComfyUI. The requirements are the heavy end of the spectrum - llama-cpp-python, transformers>=4.51, accelerate - so the first launch will churn while it resolves them.

    When to reach for it

    Honestly? Mostly for Refresh when a downloaded model isn't showing up in the loader dropdowns, and for List when you've forgotten what you've registered. It's a utility node, not a workflow centerpiece - and in the ecosystem's usual dependency-hell fashion, the part that would have been most useful (browsing HuggingFace from inside the graph) is the part that's broken. Fine. The model files themselves are the real product here, and the GGUF quality ladder (Q8 β‰ˆ fp16 at half the size, Q4_K_M when the card is tight) decides what you register in the first place.

    CategoryπŸ€– GGUF-Fusion/Management

    Inputs (5)

    NameTypeDefaultDescription
    actionCOMBOζ΅θ§ˆδ»“εΊ“ι€‰ζ‹©ζ“δ½œ
    repo_idSTRINGusername/repo-name-GGUFHuggingFace δ»“εΊ“ ID
    model_nameoptSTRINGMy Custom Modelζ¨‘εž‹ζ˜Ύη€Ίεη§°οΌˆζ·»εŠ ζ¨‘εž‹ζ—Άιœ€θ¦οΌ‰
    model_fileoptSTRINGGGUF ζ–‡δ»ΆεοΌˆδ»Žζ΅θ§ˆη»“ζžœε€εˆΆοΌ‰
    mmproj_fileoptSTRINGmmproj ζ–‡δ»ΆεοΌˆε―ι€‰οΌ‰

    Outputs (1)

    NameTypeDescription
    resultSTRINGβ€”