Nodes/VELVET VICE — KREA/VELVET VICE KREA — SeedVR2 Memory Handoff
ComfyUI Node

VELVET VICE KREA — SeedVR2 Memory Handoff

Making room for SeedVR2 by kicking the Krea models off your GPU first

By Velvet-Vice·Created 25 days ago·Updated 8 days ago· 1
VELVET VICE KREA — SeedVR2 Memory Handoff
  • image
  • image

Here's the problem this node exists to solve: you render a Krea 2 image edit, it looks great, and then the optional SeedVR2 upscale stage needs to load its models - but the Krea model, its Qwen3-VL text encoder and the VAE are still sitting in VRAM, warm in ComfyUI's model cache. Two hungry models on one card. Something has to give. VELVET VICE KREA - SeedVR2 Memory Handoff is the "something."

What it does

It's a glorified but genuinely useful eviction notice. Just before the SeedVR2 branch loads its big weights, this node unloads everything ComfyUI has cached from the generation stage so the upscaler gets a clean card. The mechanism, straight from the source, is:

model_management.unload_all_models()
gc.collect()
model_management.soft_empty_cache(force=True)

It logs VRAM before and after and prints a SEEDVR2 MEMORY HANDOFF line to the console so you can watch the numbers drop. That's the entire job. It does not touch your image, it doesn't make anything prettier - it's pure resource choreography.

The clever part is when it runs. The node only lives on the lazy SeedVR2 branch, so if you leave SeedVR2 bypassed (which the workflow recommends for the first test), the handoff never executes. Normal previews keep ComfyUI's model cache warm, which keeps the "no SeedVR2" path fast. You only pay the unload-and-reload tax when you've actually asked for the upscaler - which is when you'd want to pay it.

Inputs and outputs

Exactly one input, one output: image in (IMAGE), image out. It's a pure pass-through - it just needs to sit inline on the SeedVR2 path so it executes at the right moment in the graph, right before the SeedVR2 models load. You wire your edit result through it and into the SeedVR2 node.

Why it matters on a real card

Krea 2 is a 12B diffusion transformer with an ~8GB text encoder on top - not a light footprint. SeedVR2 (3B or 7B) is famously VRAM-hungry too; the community remembers its OOM reputation well, and it's quantisation-sensitive on top of that (fp16 clean, fp8 can tile, GGUF messes with skin). If you're running this workflow on a 12GB or 16GB card, there simply isn't room for the generation stack and SeedVR2 at once. This node is what stops the upscale stage from starting its OOM spiral. You'll rarely touch it - it just works when the workflow fires - but it's the difference between SeedVR2 loading cleanly and ComfyUI grinding.

Installing and troubleshooting

Same story as every node in the pack: install VELVET VICE - KREA via ComfyUI Manager (search velvet-vice-krea) or:

cd ComfyUI/custom_nodes
git clone https://github.com/Velvet-Vice/velvet-vice-krea

Restart ComfyUI fully and hard-refresh with Ctrl+F5. Keep exactly one copy in custom_nodes - duplicate legacy folders are a known source of confusing behavior. The pack itself declares no Python dependencies; the Krea 2 stack and the SeedVR2 loader/weights are separate downloads.

If you still OOM at the SeedVR2 stage with the handoff in place, the lever isn't more memory magic - it's your SeedVR2 quant choice, and it's worth checking whether you even need the upscale at all. The workflow's own advice is to test the base edit first, with SeedVR2 bypassed, and only enable it as a final presentation step.

CategoryVelvet Vice/KREA 2

Inputs (1)

NameTypeDefaultDescription
imageIMAGE

Outputs (1)

NameTypeDescription
imageIMAGE