Nodes/Kinburg-Nodes/Vision Settings (GGUF)
ComfyUI Node

Vision Settings (GGUF)

The Small Node That Makes Your Local LLM See

By Kinburg·Created 3 months ago·Updated 6 days ago· 1
Vision Settings (GGUF)
    • vision
    mmproj
    mmproj_path
    vision_handlerauto (MTMD)
    image_max_side1024

    A text-only GGUF LLM is a prompt writer; add an mmproj and it becomes a captioner, a critic, a vision judge. Vision Settings (GGUF) is the small node that makes that happen for the Kinburg pack's LLM nodes. It carries the multimodal projector and a couple of knobs, and its single vision output plugs into the Local LLM Settings (GGUF) node's optional vision input. Leave it unconnected and the whole stack is text-only; connect it and your Local LLM (GGUF) and chat nodes can take images.

    What it takes

    • mmproj - the projector .gguf (the mmproj-qwen… file that ships alongside vision models). It's picked from ComfyUI/models/llm, subfolders included, so you can keep a model and its projector in one folder. Files named mmproj sort first.
    • mmproj_path - full path when the dropdown is on the placeholder. Quotes stripped, same as the model path fields elsewhere in the pack.
    • vision_handler - auto (MTMD) is llama.cpp's generic multimodal loader and fits most modern vision GGUFs. Switch to the model's family only if auto fails. In practice: leave it on auto until you have a reason not to.
    • image_max_side - downscale each image so its longest side is at most this many pixels before it goes to the model. 0 = full size. This is the one you'll touch, because vision tokens scale with resolution - feeding a 4K screenshot to a small model wastes context and rarely buys accuracy.

    Output is the single vision bundle. The tooltip sums it up: wire it into Settings to enable vision; leave it off for text-only.

    How it fits

    The mechanism worth knowing: the projector is attached per request, not at model load. So mixing picture turns with plain text turns is cheap - the LLM stays loaded in VRAM and only the much smaller clip is loaded and released around each vision call. That's why vision here doesn't wreck the "keep the model warm for chat" workflow the pack defaults to. And it's why the image input exists on the LLM nodes themselves (and the chat node), gated by whether this node is wired up: connect an image with no mmproj set and the node tells you.

    Where people get burned: grabbing a text-only GGUF and wondering why vision "doesn't work." The mmproj is a separate file, and not every quant of a model family ships with a projector - check the model card for mmproj before you download. Also worth knowing: this node is for the GGUF path. If you want vision through an already-running server, that's the separate Local LLM (server client, text) node's territory, and it's text-only by design.

    Install

    Part of the Kinburg-Nodes pack: ComfyUI Manager (search "Kinburg-Nodes"), or cd ComfyUI/custom_nodes && git clone https://github.com/Kinburg/Kinburg-Nodes, restart. It's config only - the heavy lift is llama-cpp-python, which the pack's install.py handles (run automatically by Manager, or by hand with ComfyUI's Python). No extra downloads beyond your mmproj file. Small node, big difference: this is what turns your local LLM from a text gadget into a captioning workhorse.

    CategoryKinburg-Nodes/LLM

    Inputs (4)

    NameTypeDefaultDescription
    mmprojCOMBOProjector mmproj .gguf from ComfyUI/models/llm (subfolders included, so you can keep a model + its mmproj together in one folder; mmproj-named files first). Choose the placeholder to type a path in mmproj_path.
    mmproj_pathSTRINGFull path to the mmproj .gguf (when mmproj is the placeholder). Surrounding quotes are stripped.
    vision_handlerCOMBOauto (MTMD)auto (MTMD) is llama.cpp's generic multimodal loader and fits most modern vision GGUFs. Switch to the model's family only if auto fails.
    image_max_sideINT10240–4096Downscale each image so its longest side is at most this many px before sending. 0 = full size.

    Outputs (1)

    NameTypeDescription
    visionKINBURG_VISION_CONFIG