Context (rgthree)
Context (rgthree)
- base_ctx
- model
- clip
- vae
- positive
- negative
- latent
- images
- CONTEXT
- MODEL
- CLIP
- VAE
- POSITIVE
- NEGATIVE
- LATENT
- IMAGE
- SEED
The Context node is one wire that carries everything. Instead of dragging model, clip, vae, positive, negative, latent, image, and seed as eight separate noodles across your canvas, you bundle them into a single CONTEXT line, run that wherever you need it, and unpack the pieces on the far end. If you've ever looked at a big ComfyUI graph and thought "this is unreadable spaghetti," this is the node that fixes it. It's the backbone of rgthree's whole approach to keeping a large workflow workable.
Why you'd reach for it
ComfyUI graphs grow fast. A serious workflow - base generation, refiner, upscale, a couple of conditioning tweaks - ends up with the same handful of connections (model, both conditionings, vae, latent) fanning out to every stage. Route them individually and you get a wall of crossing wires that's miserable to edit; move one node and you're re-dragging six connections.
Context collapses that. Pack your essentials in once, and downstream you carry a single tidy wire. Other node suites call this concept a "pipe," but rgthree's version is deliberately more interoperable: it both combines and explodes in the same node, so you're never locked into a proprietary bundle - you can pull standard MODEL/CLIP/VAE outputs straight off it and wire them into any stock node.
How it works
Think of Context as a merge-and-carry node. The clever bit is the base_ctx input: connect an existing context into it, and this node passes everything through except the fields you override by connecting something new. So you can have one Context near your loaders holding the full bundle, then a second Context downstream that takes base_ctx plus, say, a new latent - and out the other side comes the same bundle with only the latent swapped. That's how you thread a single wire through a workflow while updating one or two pieces at each stage.
A genuinely nice touch from the docs: when you drag a Context output onto another node, hold Ctrl and release, and it'll auto-connect the rest of the context's outputs to that node's matching inputs. Wiring a KSampler becomes one gesture. You can also convert between Context and Context Big from the right-click menu - they're backwards compatible, so nothing breaks when you upgrade.
Inputs and outputs
Every input is optional, which is the point - you fill in what you have. The slots are base_ctx (another context to merge onto), model, clip, vae, positive, negative, latent, images, and seed.
The outputs mirror them: a CONTEXT wire (RGTHREE_CONTEXT) carrying the whole bundle, plus each field exploded out individually - MODEL, CLIP, VAE, POSITIVE, NEGATIVE, LATENT, IMAGE, SEED - so you can grab any single piece without an extra unpack node. Carry the CONTEXT wire for tidiness; tap the individual outputs where a specific node needs one thing.
Installing it
Context ships in rgthree-comfy. Grab the pack with ComfyUI Manager - search rgthree's ComfyUI Nodes - or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/rgthree/rgthree-comfy.git
Restart ComfyUI. No model downloads, no heavy dependencies - the pack is all UI and graph code.
Common issues
The usual head-scratcher is forgetting that Context only carries what you put in. If a downstream node gets None for its VAE, trace back and check you actually connected a vae somewhere up the chain - an unfilled slot passes through as empty, silently. The exploded outputs make this easy to debug: tap a Display Any on a field to confirm what's really in the bundle.
If you need to carry sampler settings, SDXL text pairs, a mask, or a control net alongside the basics, this node doesn't have those slots - reach for Context Big, which extends the same bundle with steps, cfg, sampler, scheduler and more. They interoperate, so mixing them in one workflow is fine.
And the pack-wide caveat: if the node renders wrong, check whether ComfyUI's Nodes 2.0 frontend is enabled. The Vue rewrite broke several rgthree nodes and the community's standing fix is to leave Nodes 2.0 off.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| base_ctxopt | RGTHREE_CONTEXT | — | |
| modelopt | MODEL | — | |
| clipopt | CLIP | — | |
| vaeopt | VAE | — | |
| positiveopt | CONDITIONING | — | |
| negativeopt | CONDITIONING | — | |
| latentopt | LATENT | — | |
| imagesopt | IMAGE | — | |
| seedopt | INT | — |
Outputs (9)
| Name | Type | Description |
|---|---|---|
| CONTEXT | RGTHREE_CONTEXT | — |
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |
| POSITIVE | CONDITIONING | — |
| NEGATIVE | CONDITIONING | — |
| LATENT | LATENT | — |
| IMAGE | IMAGE | — |
| SEED | INT | — |