Nodes/ComfyUI-Lance/Lance Model Loader
ComfyUI Node

Lance Model Loader

The node that loads ByteDance Lance, the one-model-does-everything 3B

By benjiyaya·Created 4 months ago·Updated 4 months ago· 13
Lance Model Loader
    • model
    model_variantlance_3b_video
    attention_backendflash_attn
    gpu_id0

    Every node in this pack is a dead end until you've dragged in Lance Model Loader first. It's the gateway - the thing that reads the actual weights, builds the whole Lance pipeline, and hands a LANCE_MODEL to the six task nodes. Nothing else in the pack runs without it.

    The model behind it is worth knowing about before you commit disk space. Lance is ByteDance's unified multimodal model, released Apache 2.0 in May 2026: one weight set that does text-to-image, text-to-video, image editing, video editing, and visual question answering on both images and video. The name "3B" undersells it - it's 3B active parameters in a roughly 9B-total MoE, built from a Qwen2MoT LLM, a Qwen2.5-VL vision encoder, and a Wan2.2 VAE. The launch thread's top take was "Wow, all Edit models are welcomed," and someone inevitably noted this is ByteDance's standard move: the parts ship open, the flagship stays on the API.

    What it does

    The loader has exactly three knobs:

    • model_variant - lance_3b for image tasks (T2I, image edit), lance_3b_video for video tasks (T2V, video edit). Understanding nodes work with either.
    • attention_backend - flash_attn by default, sdpa as the fallback.
    • gpu_id - pick the CUDA device (0–7) you want it parked on.

    Output is a single model of type LANCE_MODEL. Wire it into any Lance generation or understanding node; one loader can feed several at once.

    Mechanically it's not doing anything clever - it's the same validate_on_fixed_batch path the official inference_lance.py uses. The pack bundles the upstream modeling code in lance_source/, so you don't clone a second repo. It loads the LLM config, the ViT safetensors, the Wan2.2 VAE, applies the MoE init, and caches the whole pipeline per (variant, gpu, attention backend). That's the README's "load once, cached per GPU" claim, and it's real in the source: a dict cache keyed on those three values. Re-running a workflow doesn't reload a thing.

    Install - this is the expensive part

    Install via ComfyUI Manager (search ComfyUI-Lance) or:

    cd ComfyUI/custom_nodes/
    git clone https://github.com/benjiyaya/ComfyUI-Lance.git
    cd ComfyUI-Lance
    pip install -r requirements.txt
    

    Then download the weights from bytedance-research/Lance into ComfyUI/models/lance/:

    ComfyUI/models/lance/
    ├── Lance_3B/           # image model (HF name - lance_3b/ also accepted)
    ├── Lance_3B_Video/     # video model (or lance_3b_video/)
    ├── Qwen2.5-VL-ViT/     # vision encoder
    └── Wan2.2_VAE.pth      # VAE
    

    This is the real cost. The image model is ~24GB and the video model ~28GB on the hub, both stored FP32, so you're downloading over 50GB if you want every task. The loader's folder-name matching is forgiving - it accepts Lance_3B, lance_3b, lance-3b and more - so don't stress the exact casing.

    Gotchas

    The hardware floor is not marketing: the official docs say 40GB VRAM, and it's an MoE, so quantization alone won't rescue it (people are already asking "GGUF when"). This port does not do ComfyUI dynamic VRAM offloading - if you're on 12–24GB, look at the competing low-VRAM port, comfyui-lance-aio, instead of fighting this one. On the software side, the pack ships an SDPA fallback that monkey-patches flash_attn if the real package is missing, so even a broken flash-attn build usually won't hard-stop you - but if you're seeing attention errors, switching attention_backend to sdpa is the clean fix. First load is slow (it's tens of gigabytes and MoE init), so don't mistake a long load for a hang.

    CategoryLance

    Inputs (3)

    NameTypeDefaultDescription
    model_variantCOMBOlance_3b_video2 options: lance_3b_video, lance_3b
    attention_backendCOMBOflash_attn2 options: flash_attn, sdpa
    gpu_idINT00–7

    Outputs (1)

    NameTypeDescription
    modelLANCE_MODEL