LingBot Model Loader
The LingBot node that loads the model (and keeps a 16 GB GPU sane)
- model
Every LingBot graph starts here. LingBotModelLoader finds your downloaded model directory, decides which transformer weights to use, and juggles the actual pipeline pieces - transformer, VAE, scheduler, and the Qwen text encoder that lives in the same folder. If you've only got 16 GB of VRAM (the setup this pack was validated on), the memory choreography this node does is the difference between "it works" and "CUDA out of memory at 9 a.m."
It outputs a single model handle that every other LingBot node expects as its first input. Nothing else in the pack will even light up without it.
What it's actually loading
The pack is a community integration (not an official Robbyant release) for the LingBot-Video Dense 1.3B model, and its whole selling point is the FP8 checkpoint. The transformer_subfolder dropdown is the one decision that matters:
transformer_fp8_dense- the fused FP8 checkpoint this pack ships. QKV and MLP gate/up projections run native CUDA E4M3 W8A8 scaled matmul; attention output, MLP down, conditioning, norm, input and output paths stay BF16. The author measured ~1.27× faster sampler time than BF16 in a small matched smoke test on an RTX 5080 - about 21.5% less denoising time, not a universal promise.transformer- the official BF16 transformer, kept as the fallback and the source for FP8 conversion. Use it if your GPU can't run E4M3 scaled matmul.
The loader runs a FP8 runtime preflight before pulling in a multi-gigabyte file: it checks that your CUDA GPU can execute torch._scaled_mm with E4M3 tensors, and refuses to proceed otherwise. That's the "FP8 preflight error" you'll see on older cards - the README's answer is to use the BF16 transformer instead. It also validates every component directory (vae, scheduler, text_encoder, processor, model_index.json) before loading, so you get a clean "missing processor directory" error instead of a baffling traceback.
group_offload is a trap the author pre-empted: leave it off for the dense 1.3B transformer. It exists for INT8 MoE variants of LingBot that aren't part of this release - the tooltip says so plainly, and the code forces it on only when the model config actually requires it.
How the memory juggling works
Here's the part worth understanding if you're on 16 GB. The loader streams the transformer onto CPU first, keeps the VAE resident on the GPU, and hands off a model handle that tracks state. Then:
- LingBotTextEncode / LingBotPromptEncode load Qwen3VL into VRAM, encode your prompt, and evict Qwen back to CPU before any denoising - that phase boundary is mandatory on 16 GB.
- LingBotSampler then moves the transformer onto the GPU, denoises, and pushes it back to CPU afterward.
That's why every node re-checks "is the VAE still on CUDA?" - the whole design assumes the pieces rotate through one small card.
Install: the model is the big download
The node code is a normal custom-node install:
cd ComfyUI/custom_nodes
git clone https://github.com/ALX-CODE/lingbot-video-1.3b-fp8
# then install its requirements with ComfyUI's OWN python:
pip install -r requirements.txt
You can also search "LingBot" in ComfyUI Manager. Then comes the part people skip: the model itself isn't bundled. You download the official robbyant/lingbot-video-dense-1.3b revision f9789a7d9b4772a47aba62d4eb5282ddefd1da21 into ComfyUI/models/lingbot_video/lingbot-video-dense-1.3b/, then run tools/download_fp8.py to fetch the FP8 transformer. FP8-only install runs about 11.3 GB; keeping the BF16 reference brings it to ~14.1 GB. The dependencies are the heavy lift: diffusers>=0.38, transformers>=5.3, and accelerate (mandatory for the low-memory loader). Don't let pip "helpfully" replace your working PyTorch build - that's the classic way to brick an otherwise fine setup.
If the model dropdown comes up empty, you likely put the model somewhere ComfyUI isn't scanning. Set LINGBOT_MODEL_ROOTS to your model-root directory (path-separator separated, multiple allowed) and restart.
Where people get burned
- "accelerate/low-memory error" at load time: the pack's requirements weren't installed into the same Python that launches ComfyUI. Reinstall them there.
- "FP8 preflight error": your GPU/runtime can't run E4M3 scaled matmul. Switch
transformer_subfoldertotransformer. - Model dropdown empty:
LINGBOT_MODEL_ROOTSunset or pointing at the wrong folder. - CUDA required error: this is a CUDA-only pack; no CPU path exists, and the loader says so explicitly.
A last honest note: this is a small model - the 1.3B is the lightweight sibling of Robbyant's MoE 30B - and the community reception on the quality front has been skeptical. Load it, run the published smoke settings (640×352, 3 s, 28 steps), and judge for yourself before committing a weekend to it.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_dir | COMBO | 1 options: lingbot-video-dense-1.3b | |
| transformer_subfolder | COMBO | 2 options: transformer_fp8_dense, transformer | |
| group_offload | BOOLEAN | false | Leave off for the dense 1.3B FP8 or BF16 transformer. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | LINGBOT_MODEL | — |