Nodes/ComfyUI QwenScope/Load Qwen Model
ComfyUI Node

Load Qwen Model

The Qwen model loader every other QwenScope node plugs into

By Nynxz·Created 4 months ago·Updated 4 months ago· 0
Load Qwen Model
    • model
    • info
    presetQwen/Qwen3.5-2B
    dtypeauto
    device_mapauto
    custom_model_id

    Load Qwen Model is the unglamorous foundation node of the whole QwenScope pack. Nothing happens until it's on the canvas, because every capture, inspect and steer node needs a QSCOPE_MODEL wire from it. It loads a Qwen base LM plus its tokenizer into memory so the rest of the pack can poke at its residual stream.

    The name is not a lie but it is a clue: this loads base models, not chat models. You're not here for chat, you're here for interpretability - you want the raw autoregressive backbone whose internal activations you can read and nudge. The drop-in default is Qwen/Qwen3.5-2B, which is small enough to fit alongside an image model and fast enough that analyzing a prompt takes seconds.

    How it works

    Under the hood it's a straightforward HuggingFace load: AutoModelForCausalLM.from_pretrained plus AutoTokenizer, wrapped so ComfyUI sees it as a node. Two things are worth knowing before you wire it up.

    First, there's a model cache of exactly one. QwenScope only keeps one loaded LLM in VRAM at a time, so if you have two Load Qwen Model nodes in a graph (say, a 2B and a 9B), loading the second evicts the first. In practice that's fine - you run one analysis model at a time - but it's why swapping a preset can feel like a cold reload.

    Second, dtype and device_map both default to auto, which is what you want on a typical GPU box. If you're short on VRAM, bfloat16 and float32 are the honest alternatives; device_map=auto will shard across GPU/CPU if it must, so a 9B can run on a modest card, just slowly.

    The inputs that matter

    • preset - the dropdown of registered base models (Qwen3 and Qwen3.5 families, MoE variants included). This drives everything else, so pick the one whose SAE you'll pair it with.
    • custom_model_id - only used when preset is custom. This is your escape hatch: type any HF repo id and it loads whatever causal LM you point at. Useful when Qwen ships a new family before the registry catches up.
    • dtype / device_map - leave at auto unless you know better.

    Outputs: model (QSCOPE_MODEL) feeds the Analyze nodes and Generate; info is a plain STRING telling you what loaded, the hidden size, layer count and device - read it once to confirm you got the model you thought you did.

    Installing it

    ComfyUI Manager is the easy path: search "ComfyUI QwenScope" and install. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Nynxz/ComfyUI-QwenScope
    

    then restart ComfyUI. Dependencies are transformers>=4.45, huggingface_hub, safetensors, Pillow and numpy - ComfyUI already ships torch, and most installs already have transformers and huggingface_hub for other nodes. If pip complains, pip install -e . inside the pack folder pins everything. Model weights download from HuggingFace on first load; if a repo is gated, set HF_TOKEN before launching ComfyUI.

    Common issues

    The classic stumble is a d_model mismatch further down the graph: if your SAE layer's dictionary expects a 4096-d residual but you loaded a 2B model (2048-d), the Analyze node will throw. Load the base model that matches the SAE pack you picked - the registry is keyed to specific base models for exactly this reason. And remember the first load of any model is slow: it's downloading gigabytes, not hanging.

    CategoryQwenScope/Loaders

    Inputs (4)

    NameTypeDefaultDescription
    presetCOMBOQwen/Qwen3.5-2B8 options: Qwen/Qwen3.5-2B, Qwen/Qwen3.5-9B, Qwen/Qwen3.5-27B, Qwen/Qwen3.5-35B-A3B, Qwen/Qwen3-1.7B-Base, Qwen/Qwen3-8B-Base, +2
    dtypeCOMBOauto4 options: auto, bfloat16, float16, float32
    device_mapCOMBOauto3 options: auto, cuda, cpu
    custom_model_idoptSTRINGUsed only when preset == 'custom'.

    Outputs (2)

    NameTypeDescription
    modelQSCOPE_MODEL
    infoSTRING