Nodes/TankNodes/Qwen / Bonsai GGUF Loader · Tank
ComfyUI Node

Qwen / Bonsai GGUF Loader · Tank

The loader that doesn't load anything

By xzbdqian10nian·Created 2 months ago·Updated a day ago· 1
Qwen / Bonsai GGUF Loader · Tank
    • backend
    • backend_info
    ◄model_file(No model found / 未找到主模型)►
    ◄mmproj_file(No projector found / 未找到视觉投影)►
    ◄batch_size1024►
    ◄micro_batch_size512►
    ◄gpu_layers-1►
    ◄free_comfy_vramtrue►

    Run the graph with only the loader wired up and nothing happens. No VRAM spike, no progress bar, no multi-gigabyte wait. That is not a broken node - that is the whole design. Qwen3.8 Model Loader · Tank does not load weights. It resolves two GGUF paths, packs them into a config object, and hands that object downstream. The 27B model only lands in memory when the chat node actually runs.

    That laziness is why this pair can share a card with your diffusion workflow at all. Qwen3.8 is the local, multimodal half of TankNodes - the part that reads an image and writes text about it, in the graph, with no Ollama server in the loop. The other half calls an OpenAI-compatible API and never touches your GPU. Pick your files here; the describing, captioning and prompt-rewriting happens in Local Multimodal Chat · Tank. One fair warning about the model itself - Qwen3.8 is new enough that there is almost no community trail on it yet, so treat the pack's own tested pair as your ground truth rather than something you read somewhere.

    The two dropdowns you actually set

    model_file is the main GGUF, mmproj_file is the vision projector - the smaller sidecar file that turns a text-only LLM into one that can see. Both default to (No model found / 未找到主模型) when the folder is empty, and that placeholder sitting in your dropdown is the cleanest "I haven't installed the model yet" signal you'll get.

    Then four advanced inputs, and you can ignore three of them:

    • gpu_layers - -1 offloads everything, which is what you want unless you're deliberately splitting across cards.
    • micro_batch_size (512) - the one to turn down first if prompt processing runs out of VRAM.
    • batch_size (1024) - prompt tokens per llama.cpp batch; higher is faster and hungrier.
    • free_comfy_vram (on) - calls ComfyUI's unload-all before the VLM allocates, so a resident SDXL checkpoint doesn't fight a 27B model for the same 24GB.

    What comes out

    backend is a VISION_LLM_BACKEND with exactly one sensible destination: the backend input on Local Multimodal Chat · Tank. backend_info is a string, boring enough that most people never read it, which is a mistake - it reports the resolved model, projector, GPU layers and backend state, and for catalogued releases it prints source=, variant=, recommended_mmproj= and projector_filename_match=. That last line is the fastest way to catch the classic mistake of pairing a model with a projector from a different release.

    Install

    ComfyUI Manager: search Tank (the registry package ID is still qwen38-vl from before the repo rename), or do it by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/xzbdqian10nian/ComfyUI-TankNodes.git
    # restart ComfyUI, then hard-refresh the browser
    

    You need Python 3.10+. requirements.txt installs one package - diskcache - and its header explains why: the author deliberately does not pin llama-cpp-python, because ComfyUI Manager replacing your CUDA build with the stale CPU wheel from PyPI is the classic way to break an in-graph model loader. So the real dependency is on you:

    # you need a CUDA llama-cpp-python built for your Python + CUDA combo.
    # If this prints nothing, the model isn't going to load:
    python -c "import llama_cpp, sys; print(llama_cpp.__version__)"
    

    Put the weights in ComfyUI/models/LLM/Qwen3.8/, or point the plugin somewhere else before launching ComfyUI:

    export QWEN38_MODEL_DIR=/mnt/models/Qwen3.8
    ls "$QWEN38_MODEL_DIR"
    # Qwen3.8-27B-UD-Q4_K_M.gguf
    # mmproj-BF16.gguf
    

    The tested pair is Qwen3.8-27B-UD-Q4_K_M.gguf plus mmproj-BF16.gguf from Unsloth's Qwen3.8-27B-GGUF repo; the pack's catalogue also lists an abliterated Huihui build and an uncensored Orcarouter one, each with its own required projector filename. Whichever you pick, take the projector from the same release.

    Where people get burned

    The dropdown still says no model found. The scanner only lists .gguf files over 1MB, and it skips anything with a .aria2 sibling - a download in progress is invisible rather than half-listed. Check the folder, check the download finished, check you exported the env var in the shell that actually launched ComfyUI (setting it after the fact does nothing).

    does not provide Qwen35ChatHandler - your llama-cpp-python is older than the Qwen3.8 chat template. Rebuild or grab a newer CUDA wheel.

    A CUDA-enabled llama-cpp-python build is not installed - you have the CPU wheel. This is the single most common failure for every local-VLM node pack, not just this one.

    Prompt processing OOM - drop micro_batch_size first, then batch_size, then partially offload with gpu_layers. And note that loading a second local config unloads the first automatically; the pack only keeps one local VLM resident at a time.

    CategoryTankNodes/Local

    Inputs (6)

    NameTypeDefaultDescription
    model_fileCOMBO(No model found / 未找到主模型)Main GGUF model. Bonsai PQ2_0 uses the PrismML llama-server runtime; Qwen GGUF uses llama-cpp-python.
    mmproj_fileCOMBO(No projector found / 未找到视觉投影)Vision projector GGUF required to understand images and video frames.
    batch_sizeINT1024128–8192Number of prompt tokens processed in one llama.cpp batch. Higher can improve prompt processing speed but uses more VRAM.
    micro_batch_sizeINT51264–2048Maximum tokens processed in one physical llama.cpp sub-batch. Reduce this first if prompt processing runs out of VRAM.
    gpu_layersINT-1-1–256Number of transformer layers offloaded to the GPU. -1 offloads all layers; lower it for partial GPU offload.
    free_comfy_vramBOOLEANtrueUnload ComfyUI diffusion models before loading this large local vision-language model.

    Outputs (2)

    NameTypeDescription
    backendVISION_LLM_BACKENDPrepared model configuration for Local Multimodal Chat · Tank. Weights load when chat runs.
    backend_infoSTRINGResolved model, projector, GPU layers, and backend state.