Pipe In Context iGEN v3
The image-gen context bus
- base_ctx
- model
- clip
- vae
- positive
- negative
- cond_1
- cond_2
- cond_3
- cond_4
- latent
- images
- image_ref
- image_preproc
- mask1
- mask2
- mask3
- mask4
- sampler
- sampler_d
- scheduler
- scheduler_d
- context
- model
- clip
- vae
- positive
- negative
- cond_1
- cond_2
- cond_3
- cond_4
- latent
- images
- image_ref
- image_preproc
- mask1
- mask2
- mask3
- mask4
- sampler
- sampler_d
- scheduler
- scheduler_d
- steps
- cfg
- guidance
- seed
- width
- height
- batch_size
- scale_by
- text_pos
- text_pos_i2p
- text_neg
- model_name
- vae_name
- lora_names
- path
Pipe In Context iGEN v3 is the image-generation member of the pack's context-bus family: one node that gathers everything an image workflow needs - model, clip, vae, positive, negative, latent, a latent, reference and preprocessed images, masks, sampler and scheduler, and the whole settings block - and hands it to the rest of the graph on a single context wire, while also mirroring every value on its own output.
Here's the mechanism, because it's the part that makes this node family special: a context node carries a dict, not a positional tuple. You optionally feed it a base_ctx from an upstream context node; for every field you connect, it overwrites that entry in the new context, and for every field you leave empty it inherits whatever the base already had. Every connected and inherited value then comes out both on the context pipe and as its own named output. The source literally credits rgthree's context utils - this is the same design as rgthree's Context nodes, just expanded with the fields the author's iGEN image workflows need. If you know rgthree's Context, you already know how to use this.
The iGEN-specific bits are where it gets opinionated. Besides the standard positive/negative it has four extra conditioning slots (cond_1β¦cond_4) - handy for stacked ControlNet or extra prompt encoders. There's image_ref for a reference image and image_preproc for a preprocessed control image, four masks, and a text_pos_i2p field - the author's image-to-prompt positive text, i.e. the prompt variant used when you're regenerating from an image rather than from scratch. Sampler and scheduler each come in a pair (sampler / sampler_d), where the _d slots are the default/fallback values used when the primary slot isn't wired. Then there's the settings block: steps, cfg, guidance, seed, width, height, batch_size, scale_by, plus strings for model_name, vae_name, lora_names and path. It's a lot, but everything's optional - the node is happy with just a model and a prompt.
Install. ComfyUI Manager β search "RvTools" β install ComfyUI-RvTools_v2 and restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI-RvTools_v2
# restart ComfyUI afterwards
No models or keys. Manual clones: pip install -r requirements.txt (opencv-python, pynvml, piexif, Pillow, pilgram).
The catches. First, this is an iGEN-workflow node - it shines inside the author's own image-generation templates where a matching Context-Out node unpacks the dict. Standalone, the individual outputs make it perfectly usable, but you're adopting someone's opinionated layout. Second, the pack is unmaintained: the README declares ComfyUI_Eclipse the successor, and RvTools v2 is otherwise legacy. Also be careful mixing it with other packs' "context" nodes - the wire type is pipe, and while rgthree-style contexts are compatible in spirit, the dict keys differ per pack, so fields can silently not match up. Check that your Out node understands image_preproc and cond_1 before relying on them.
Inputs (37)
| Name | Type | Default | Description |
|---|---|---|---|
| base_ctxopt | pipe | β | |
| modelopt | MODEL | β | |
| clipopt | CLIP | β | |
| vaeopt | VAE | β | |
| positiveopt | CONDITIONING | β | |
| negativeopt | CONDITIONING | β | |
| cond_1opt | CONDITIONING | β | |
| cond_2opt | CONDITIONING | β | |
| cond_3opt | CONDITIONING | β | |
| cond_4opt | CONDITIONING | β | |
| latentopt | LATENT | β | |
| imagesopt | IMAGE | β | |
| image_refopt | IMAGE | β | |
| image_preprocopt | IMAGE | β | |
| mask1opt | MASK | β | |
| mask2opt | MASK | β | |
| mask3opt | MASK | β | |
| mask4opt | MASK | β | |
| sampleropt | * | β | |
| sampler_dopt | * | β | |
| scheduleropt | * | β | |
| scheduler_dopt | * | β | |
| stepsopt | INT | β | |
| cfgopt | FLOAT | β | |
| guidanceopt | FLOAT | β | |
| seedopt | INT | β | |
| widthopt | INT | β | |
| heightopt | INT | β | |
| batch_sizeopt | INT | β | |
| scale_byopt | FLOAT | β | |
| text_posopt | STRING | β | |
| text_pos_i2popt | STRING | β | |
| text_negopt | STRING | β | |
| model_nameopt | STRING | β | |
| vae_nameopt | STRING | β | |
| lora_namesopt | STRING | β | |
| pathopt | STRING | β |
Outputs (37)
| Name | Type | Description |
|---|---|---|
| context | pipe | β |
| model | MODEL | β |
| clip | CLIP | β |
| vae | VAE | β |
| positive | CONDITIONING | β |
| negative | CONDITIONING | β |
| cond_1 | CONDITIONING | β |
| cond_2 | CONDITIONING | β |
| cond_3 | CONDITIONING | β |
| cond_4 | CONDITIONING | β |
| latent | LATENT | β |
| images | IMAGE | β |
| image_ref | IMAGE | β |
| image_preproc | IMAGE | β |
| mask1 | MASK | β |
| mask2 | MASK | β |
| mask3 | MASK | β |
| mask4 | MASK | β |
| sampler | * | β |
| sampler_d | * | β |
| scheduler | * | β |
| scheduler_d | * | β |
| steps | INT | β |
| cfg | FLOAT | β |
| guidance | FLOAT | β |
| seed | INT | β |
| width | INT | β |
| height | INT | β |
| batch_size | INT | β |
| scale_by | FLOAT | β |
| text_pos | STRING | β |
| text_pos_i2p | STRING | β |
| text_neg | STRING | β |
| model_name | STRING | β |
| vae_name | STRING | β |
| lora_names | STRING | β |
| path | STRING | β |