Pipe In Context iGEN
The context bus for the author's iGEN video pipeline
- base_ctx
- model
- clip
- vae
- positive
- negative
- latent
- images
- image_ref
- mask1
- mask2
- sampler
- scheduler
- context
- model
- clip
- vae
- positive
- negative
- latent
- images
- image_ref
- mask1
- mask2
- sampler
- scheduler
- steps
- cfg
- guidance
- seed
- width
- height
- batch_size
- scale_by
- text_pos
- text_neg
- model_name
- vae_name
- lora_names
- path
Pipe In Context iGEN [RvTools] is the sibling of the video context node, tuned for the author's own iGEN generation pipeline. Same idea - collect a pile of inputs into one context pipe and re-expose them as outputs - but the field list is different and revealing: it carries guidance, scale_by, and plain-string model_name, vae_name, and lora_names alongside the usual model/clip/vae/conditioning/latent.
Why you'd reach for it
Where the plain video context node assumes your model, CLIP, and VAE are already loaded and wired in, the iGEN variant works with names. The model_name, vae_name, and lora_names inputs are strings, not model objects - which fits a workflow where model selection happens in one place and gets passed around as text (picked by a selector, carried through a pipe) rather than as loaded tensors. If you're reconstructing the pack author's video graphs, this is the context node those workflows actually use.
It still behaves like the context family: feed it a base_ctx, override just the fields you care about, and every value rides the single context wire downstream. The extra guidance (flow-matching's version of CFG) and scale_by knobs also signal that iGEN-style pipelines are built for models where plain CFG doesn't apply - the same world where Wan and Flux live.
How it works
Identical mechanism to the video context node, and the source says the same thing: it's rgthree's context-utils pattern. new_context merges your connected inputs into a dict, inheriting any unset field from base_ctx; the node returns the context pipe plus every field as a typed output. Where it differs is purely the field set - image_ref (single reference image) instead of the multi-image images_ref, plus the guidance/scale_by/name-string fields.
Inputs that matter: base_ctx, model/clip/vae, positive/negative, latent, images, image_ref, mask1/mask2, sampler/scheduler/steps/cfg/guidance/seed, width/height/batch_size, scale_by, text_pos/text_neg, model_name/vae_name/lora_names, path.
Outputs: context plus all fields as individual typed outputs.
Install
Standard RvTools install:
- ComfyUI Manager β search "RvTools" β install ComfyUI-RvTools_v2 β restart.
- Or:
cd ComfyUI/custom_nodes && git clone https://github.com/r-vage/ComfyUI-RvTools_v2, then restart.
No model downloads; it only carries data.
Gotchas
The same context-node cautions apply, doubled. Empty fields silently inherit from base_ctx - if you expected an override and got the old value, that's why. And because the string fields (model_name, vae_name, lora_names) are just names, they only do something if downstream nodes are written to act on them; a stock loader won't read a name off a context wire and go load the model for you. This node is part of a specific pipeline, not a general-purpose loader.
And the recurring reality of this pack: RvTools v1 was removed from GitHub in early 2025 (saved workflows broke, people copied folders between installs), v2 renamed everything, and the pack is now deprecated in favor of ComfyUI_Eclipse. The context design survives there; the exact [RvTools] node names in old saved graphs won't map automatically.
Inputs (27)
| Name | Type | Default | Description |
|---|---|---|---|
| base_ctxopt | pipe | β | |
| modelopt | MODEL | β | |
| clipopt | CLIP | β | |
| vaeopt | VAE | β | |
| positiveopt | CONDITIONING | β | |
| negativeopt | CONDITIONING | β | |
| latentopt | LATENT | β | |
| imagesopt | IMAGE | β | |
| image_refopt | IMAGE | β | |
| mask1opt | MASK | β | |
| mask2opt | MASK | β | |
| sampleropt | * | β | |
| scheduleropt | * | β | |
| stepsopt | INT | β | |
| cfgopt | FLOAT | β | |
| guidanceopt | FLOAT | β | |
| seedopt | INT | β | |
| widthopt | INT | β | |
| heightopt | INT | β | |
| batch_sizeopt | INT | β | |
| scale_byopt | FLOAT | β | |
| text_posopt | STRING | β | |
| text_negopt | STRING | β | |
| model_nameopt | STRING | β | |
| vae_nameopt | STRING | β | |
| lora_namesopt | STRING | β | |
| pathopt | STRING | β |
Outputs (27)
| Name | Type | Description |
|---|---|---|
| context | pipe | β |
| model | MODEL | β |
| clip | CLIP | β |
| vae | VAE | β |
| positive | CONDITIONING | β |
| negative | CONDITIONING | β |
| latent | LATENT | β |
| images | IMAGE | β |
| image_ref | IMAGE | β |
| mask1 | MASK | β |
| mask2 | MASK | β |
| sampler | * | β |
| scheduler | * | β |
| steps | INT | β |
| cfg | FLOAT | β |
| guidance | FLOAT | β |
| seed | INT | β |
| width | INT | β |
| height | INT | β |
| batch_size | INT | β |
| scale_by | FLOAT | β |
| text_pos | STRING | β |
| text_neg | STRING | β |
| model_name | STRING | β |
| vae_name | STRING | β |
| lora_names | STRING | β |
| path | STRING | β |