RedNode Rig Inputs
The prompt and sampler numbers your own KSampler never got handed
- positive
- negative
- latent
- seed
- steps
- cfg
- sampler_name
- scheduler
- denoise
- start_step
- end_step
RedNode Studio's Workspace is a whole panel that owns your model, your prompt, your camera, your LoRAs and your latent, and then samples the image itself. If you don't want it sampling for you - you've got a sampler the pack has never heard of, or you want a start/end step window, or you just don't trust anything that hides a KSampler behind a tab - this node is your side of the handshake.
What it actually is
It's one third of the pack's "your own nodes" rig. On the Workspace's Models tab you can set a rig's kind to Your own nodes, and from then on every sampling call on that rig - the main render, every Latent refine pass, the Img2Img pass, the Paint tab, every Detailer pass - runs through a chain of your nodes instead of the built-in sampler. Three nodes make that chain: RedNode Rig Model takes your loaders, RedNode Rig Inputs is what the Workspace hands you, and RedNode Rig Result is where you hand the picture back. Nothing wires into the Workspace. The rig name is the wire.
Why bother? Because the Workspace is where the actual input work lives. The Prompts tab built your text, the camera stage wrote the physical camera language, the Krea 2 identity system attached your Subject and Scene references, and the Latent tab decided the canvas. Rig Inputs is how all of that arrives at your sampler as plain sockets instead of a mystery.
How it works
The odd part, and the one that confuses people first: this node's outputs are dead by design outside a rig run. It returns an execution blocker on all eleven sockets unless a rig of that name is actually sampling through your nodes in this queue - deliberate, so a half-wired graph can't quietly render something the Workspace didn't ask for. When a sampling call does land, the pack fills the outputs with that call's values, which is why one node can serve an 8-step turbo render and a 12-step face pass in the same queue.
Each call gets its own numbers, so if a Detailer card sets its own steps and CFG, that's what you receive - your graph doesn't have to guess.
The sockets that matter
There's exactly one input: rig, a string defaulting to My rig. It has to match the name on the Rig Model node, the Rig Result node, and the rig entry on the Models tab, character for character.
Then eleven outputs. The four you'll wire first are positive and negative (the conditioning, camera words and Krea 2 references already baked in), latent (the canvas or source, already at the right size) and seed. Wire them into your sampler's sockets - right-click the sampler's widgets and Convert widget to input for the ones that aren't sockets by default.
The rest are steps, cfg, sampler_name, scheduler, denoise, start_step and end_step. Wire start_step/end_step into KSamplerAdvanced's start_at_step/end_at_step if you want the Workspace's step window to drive your sampler; on a plain KSampler you can leave them floating with no harm.
One honest limitation: sampler_name and scheduler are ComfyUI's stock KSampler lists. The pack's own three schedule shapes (beta57, bong_tangent, hyperbolic) and the dials that ride the built-in sampler - Detail Daemon, seed variance, densify the tail - do not travel through this socket. If those are your reason for being here, stay on the built-in sampler.
Install
Same for all three rig nodes: they're ordinary nodes in the pack, no pip dependencies at all, so nothing new gets installed into your Python environment.
cd ComfyUI/custom_nodes
git clone https://github.com/RedNodeAI/ComfyUI-RedNodeStudio.git ComfyUI-RedNodeStudio
Or search RedNode Studio in ComfyUI Manager. Restart, and the nodes appear under the RedNode/Rigs category. Krea 2 rigs also want the Qwen3-VL text encoder (qwen3vl_4b_fp8_scaled.safetensors in models/text_encoders) and qwen_image_vae.safetensors in models/vae.
Where people get burned
The rig name. A typo means the rig never samples through your nodes: the outputs stay blocked, and the Workspace console tells you "no rig named X on the Models tab; using the active rig instead". If you see that line, it's a name, not a bug.
Bypassed nodes. A muted or bypassed node between Rig Inputs and Rig Result throws a hard error naming the node - the chain is read out of the queued prompt, so a node that didn't queue simply isn't there. (The pack is new enough that Reddit has nothing on it yet; the console messages are your documentation.)
Subgraphs. A node in your rig chain that expands into a subgraph at run time can't be run by the rig, and the pack says so instead of failing weirdly.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| rig | STRING | My rig | The rig name, the same on all three rig nodes and on the Models tab. |
Outputs (11)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |
| seed | INT | — |
| steps | INT | — |
| cfg | FLOAT | — |
| sampler_name | euler,euler_cfg_pp,euler_ancestral,euler_ancestral_cfg_pp,heun,heunpp2,exp_heun_2_x0,exp_heun_2_x0_sde,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_2s_ancestral_cfg_pp,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_cfg_pp,dpmpp_2m_sde,dpmpp_2m_sde_gpu,dpmpp_2m_sde_heun,dpmpp_2m_sde_heun_gpu,dpmpp_3m_sde,dpmpp_3m_sde_gpu,ddpm,lcm,ipndm,ipndm_v,deis,res_multistep,res_multistep_cfg_pp,res_multistep_ancestral,res_multistep_ancestral_cfg_pp,gradient_estimation,gradient_estimation_cfg_pp,er_sde,seeds_2,seeds_3,sa_solver,sa_solver_pece,ddim,uni_pc,uni_pc_bh2 | — |
| scheduler | simple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal | — |
| denoise | FLOAT | — |
| start_step | INT | — |
| end_step | INT | — |