ComfyUI Node

Recall Model

Bring your model back to the GPU on cue

By lokinou·Created about a year ago·Updated 11 months ago· 2
Recall Model
  • value
  • model
  • *
  • *
deviceauto
on_errorraise
enabletrue

Offloading a model is only useful if you can get it back. RecallModel is the sibling to Offload Model from the same pack (lokinou's ComfyUI-Offload-Models): where Offload kicks a model off the GPU after a heavy stage, Recall drags it back on before the next one needs it. They're meant to sit on either side of the part of your workflow you want to keep VRAM-clean, and both are pass-throughs - wire a value through each and the graph keeps flowing.

The honest framing first: ComfyUI can already move a model back to the GPU when a node asks for it. The model patcher's whole design is load-on-demand. So what Recall actually buys you is when the transfer happens. Instead of a surprise multi-gigabyte move mid-sampling - or a stall right when you're waiting on a VAE decode - you force the transfer at a point you control, before the hungry consumer runs. That determinism is the entire value, and for people squeezing a big video workflow onto a small card it can be the difference between a smooth run and an OOM at the worst possible moment.

How it works

RecallModel calls the same model-management machinery as its sibling, in reverse. It frees the cache first (soft_empty_cache() plus a garbage-collect), then reads the model's preferred device - with device set to auto, that's the model's own load target, falling back to ComfyUI's active torch device, i.e. your GPU. It then calls the model's move function and validates that the migration actually landed, logging a clear error if the model didn't end up where it should. Just like Offload, it scans inside a ModelPatcher so both the patcher and its embedded model get moved together.

The inputs that matter

  • value (required, any type): the passthrough trigger. Wire it through so the node runs at the right point in the sequence.
  • model: the model to recall to GPU.
  • device (default auto): auto targets the model's preferred device; you can pin cpu or a specific cuda:N instead.
  • on_error (default raise): ignore or raise - set to ignore if a missing or incompatible model shouldn't kill the whole run.
  • enable (default on): bypass the node in one click when you want to test with recall off.

Both outputs pass value and model through unchanged.

Installing it

Same pack, same install. ComfyUI Manager → search "comfyui-offload-models", or:

cd ComfyUI/custom_nodes
git clone https://github.com/lokinou/comfyui-offload-models.git

Restart, done. No model downloads, no dependencies - the pack ships with an empty requirements list.

Watch out

The deprecation applies here as much as to Offload: the pack's README redirects to comfyui-better-flow, the author's current project. If you're wiring a fresh workflow, weigh whether the successor's approach beats hand-placing two passthrough nodes. And the shared gotchas carry over: Nunchaku Flux transformers are unsupported and will raise unless you set on_error to ignore, and the passthrough can be temperamental with Reroute nodes. If you offload a model and recall never fires, that's a workflow-ordering problem, not a bug - check that the recall node actually executes before the consumer that needs the model.

CategoryUnload Model

Inputs (5)

NameTypeDefaultDescription
value*
modelopt*
deviceoptCOMBOautoSelect the device to recall the model to.
on_erroroptCOMBOraiseWhat to do on error: ignore or raise an exception.
enableoptBOOLEANtrueEnable recall of the model to the preferred device.

Outputs (2)

NameTypeDescription
**
**