βοΈ CR Module Output
Update one slot of a pipe without rewiring the rest
- pipe
- model
- pos
- neg
- latent
- vae
- clip
- controlnet
- image
- pipe
- show_help
The write side of the pair: take an existing pipe, optionally override one or more of its nine slots with new values, and re-bundle everything into a fresh PIPE_LINE to keep passing downstream. Where CR Module Input reads values out of a pipe, this one writes values into it - together they're a get/set pair for editing a single field deep in a workflow without re-wiring every stage in between.
How it works
Every field besides pipe itself is optional: model, pos, neg, latent, vae, clip, controlnet, image, seed. Only fill in the ones you actually want to change. Anything you leave unconnected keeps whatever value was already in the incoming pipe - this node updates, it doesn't reset. That's the whole value of it: say your workflow does an upscale pass partway through and produces a new latent - instead of unpacking the entire pipe, replacing latent, and repacking all nine values by hand, you drop a CR Module Output node, wire only the new latent in, and every other slot in the pipe carries forward untouched.
Inputs and outputs that matter
pipe- required, the bundle you're updating.model,pos,neg,latent,vae,clip,controlnet,image,seed- all optional, set only what you're changing.- Output:
pipe(the updated bundle) plusshow_help.
How to install it
ComfyUI Manager: search "Comfyroll Studio", install, restart. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git, restart. No models needed - this is graph plumbing, same as the rest of the module pipe family.
Common issues
The most common mistake with a get/set pattern like this is forgetting that leaving a field unconnected means "keep the old value," not "clear it." If you wire in a new latent but expect the old image slot to also reset because you didn't touch it, that's not what happens - you'd need to explicitly wire something into image (even a blank placeholder) to change it.
Since every field is optional, it's also easy to build a CR Module Output node that changes nothing at all - if a downstream node's behavior isn't reflecting a change you thought you made, check that the field you meant to update is actually wired into this node and not just floating unconnected.
PIPE_LINE remains Comfyroll-specific, so this only chains with other Comfyroll pipe nodes. And the usual pack-wide note: if this node's missing from your search menu, check your ComfyUI console for an import error elsewhere in the pack before troubleshooting this node in isolation - Comfyroll registers roughly 200 nodes from a shared set of files, and one broken import can take unrelated ones down with it.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| pipe | PIPE_LINE | β | |
| modelopt | MODEL | β | |
| posopt | CONDITIONING | β | |
| negopt | CONDITIONING | β | |
| latentopt | LATENT | β | |
| vaeopt | VAE | β | |
| clipopt | CLIP | β | |
| controlnetopt | CONTROL_NET | β | |
| imageopt | IMAGE | β | |
| seedopt | INT | 00β18446744073709550000 | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| pipe | PIPE_LINE | β |
| show_help | STRING | β |