wanBlockSwap
The Wan VRAM saver ComfyUI turned into a no-op
- model
- MODEL
Short version: this node existed to let you run Wan video models on a GPU that technically can't hold them, by shoving up to 40 of the model's transformer blocks over to your CPU and system RAM. And on any recent ComfyUI, it does nothing at all. Not broken - deliberately switched off. If you landed here because your old workflow's wanBlockSwap node suddenly looks different, won't connect to a GGUF loader, or just seems inert, that's the story, and it's working as intended.
What it was for
Wan 2.2 is the good local video model, and it's heavy - VRAM is the central constraint for local video, in a way it mostly isn't for image gen. Block swapping is the classic escape hatch: you keep only some of the model's transformer blocks resident on the GPU and page the rest out to CPU RAM, swapping them back in as the forward pass needs them. You trade speed for a lower VRAM floor. It's the same trick Kohya uses to bring Flux fine-tuning down to a 6GB card, and the same thing people do by hand in Kijai's WanVideoWrapper - one user swapped 24 Wan and 8 VACE blocks to squeeze a 14B fp8 run into 32GB.
orssorbit's node was the dead-simple, ComfyUI-native version of that idea: drop it between your model loader and your sampler, and it offloaded blocks for you. No dials to agonize over.
How it actually works now - the part that matters
Here's the catch. ComfyUI core added automatic memory offloading: it decides how much to page to CPU based on your real VRAM, with no node in the graph at all. Once that landed, this custom node was redundant, and the manual version could actively fight the built-in one - which is where the instability came from. So ComfyUI core now intercepts the wanBlockSwap class and swaps in a no-op. The node still shows up, still takes a model, and hands that exact model straight back out.
The community worked this out the same week it happened: "a couple of releases ago, block swapping got built in automatically... disable the node, you'll see blockswapping still occurs," and, more bluntly, "Does this even do anything after it has been explicitly disabled in comfyui core?" No. It doesn't.
Inputs and outputs
There's exactly one of each, which honestly tells you the whole state of affairs:
model(MODEL) in → MODEL out.
In its current form it's a pure passthrough - model in, same model out. You can leave it in an old workflow without breaking anything, and you can delete it and lose nothing. The README still advertises the original "up to 40 blocks to the CPU" behavior, but that's describing the node as it was, not the inert version that resolves on a current ComfyUI.
Installing it
If you want it anyway - say you're reproducing someone's old workflow exactly - the README gives two routes. In ComfyUI Manager, search ComfyUI-wanBlockswap and hit install. Or from a terminal:
cd ComfyUI/custom_nodes
git clone https://github.com/orssorbit/ComfyUI-wanBlockswap
then restart ComfyUI. There are no model files to download and no heavy dependencies - it's a tiny pure-Python node. Just know what you're installing: on a current ComfyUI, you're installing a passthrough.
Should you use it? (and troubleshooting)
Honestly, no - and you don't need to. Most people arrive here confused rather than shopping, so:
- "The node broke / looks different / won't connect to my GGUF model line." It didn't break; core disabled it. The odd-looking node is the no-op stand-in, and yes, that's why it won't hook up to a purple GGUF model link the way the original did.
- "Do I need this to run Wan on a small card?" No. ComfyUI's native offloading does it for you automatically - that's why the Wan 2.2 5B model fits on 8GB and people run Wan on surprisingly modest hardware without touching a swap node.
- Want manual control over how much to offload? Fair want, wrong node. Use Kijai's ComfyUI-WanVideoWrapper, which still has a real, working block-swap control. This one isn't it anymore.
One last footnote: if you're on ComfyUI's newer Nodes 2.0 UI and the node renders weird, toggling Nodes 2.0 off in settings makes it display the old way. It's still a no-op either way - you're just choosing which flavor of "does nothing" you'd rather look at.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |