Nodes/ComfyUI-RedNodeStudio/RedNode Studio Workspace
ComfyUI Node

RedNode Studio Workspace

The whole studio input rig in one tabbed panel, wired by a single bundle

By RedNodeAI·Created 26 days ago·Updated 15 days ago· 0
RedNode Studio Workspace
  • clip
  • latent
  • model
  • vae
  • boost_mask_in
  • edit_mask_in
  • workspace
  • subject_image
  • scene_image
  • moodboard_style
  • extra_subjects
  • subject_boost_mask
  • edit_mask
  • settings
  • output_latent
  • style_strength
  • studio_preset
  • subject_prompt
  • scene_prompt
  • moodboard_prompt
  • i2i_image
  • i2i_prompt
  • denoise
  • post_process
  • model
  • lora_keywords
  • clip
  • paint_prompt
config{}
preset
subject_caption_in
scene_caption_in
mood_caption_in
i2i_caption_in

If RedNode Studio has a flagship, this is it. RedNode Studio Workspace is the whole input rig in one tabbed panel: image galleries per role, painted masks, subject and scene and moodboard references, the fidelity and identity dials, captioning, painting, and grading - all hanging off one node. It outputs a single workspace bundle that plugs into the Studio (Krea 2) node's workspace input, plus a pile of flat sockets for normal Get/Set wiring. Instead of thirty nodes and forty wires covering your canvas, you get one panel and a handful of connections.

The design philosophy is the pack's whole thesis: the wires that aren't there are the point. Reference galleries, masks, LoRA stacks, prompts, painting and grading all live in the panel; the graph stays readable however much is going on. The bundled workspace output carries it all down one wire to the Studio node, which is what makes the Studio panel-driven instead of node-driven.

How it works

The node's config holds the whole state - galleries, selections, masks, dials - as JSON, edited through the panel. A preset input loads a saved workspace (or custom (live) keeps the current state), and note the presets store filenames, so they're per-machine - a preset made on one install points at that machine's files. Disabled tabs output nothing, so an unused gallery doesn't leak empty references into the graph.

The outputs are where the flat-socket design shows up. The headline one is workspace (the KREA2_WORKSPACE bundle, for the Studio node). Then there's the full flat set: subject_image, scene_image, moodboard_style, extra_subjects, subject_boost_mask, edit_mask, settings, output_latent, style_strength, studio_preset, the four prompt strings (subject_prompt, scene_prompt, moodboard_prompt, i2i_prompt), i2i_image, denoise, post_process, plus pass-through model, clip, vae-derived output_latent, and lora_keywords - so you can pull any one value out with a normal wire instead of unpacking the bundle.

The optional inputs matter more than they look. Wire clip and the CLIP-gen engine captions with the already-loaded text encoder (no second model load). Wire model and the LoRAs tab applies its stack, handing it back on model with the trigger words on lora_keywords. Wire vae and the Img2Img tab's source image comes out of output_latent encoded, ready for the sampler at the tab's denoise. The four *_caption_in inputs merge external captions into their prompts, and boost_mask_in / edit_mask_in override the masks painted on the Masks tab.

Installing it

git clone https://github.com/RedNodeAI/ComfyUI-RedNodeStudio.git ComfyUI/custom_nodes/ComfyUI-RedNodeStudio

Restart ComfyUI, or search RedNode Studio in ComfyUI Manager. No pip dependencies. The Workspace itself works with any model, but the full Studio (Krea 2) flow needs ComfyUI 0.26.0+ and the Krea 2 stack: the qwen3vl_4b text encoder via CLIPLoader with type krea2, qwen_image_vae, and for identity edits a krea2_edit LoRA. The pack checks and reports these at startup rather than failing.

The honest take

This node is the pack's argument, and you'll either love the panel-driven approach or find it opaque - there's no real middle ground. The advice for beginners: load the pack's example workflow (Rednode Ultima) once and read it, because the panel replaces a lot of graph structure you're used to seeing as wires, and it's easier to see the shape in a working rig than to infer it. The flat sockets exist precisely so you don't have to buy the whole bundle philosophy - you can wire just moodboard_style out and ignore the rest. And remember the per-machine preset caveat: workspace presets store filenames, so they don't travel between installs the way you might hope.

CategoryRedNode/Studio

Inputs (12)

NameTypeDefaultDescription
configSTRING{}the workspace state (galleries, selections, masks, dials) as JSON. The panel above edits this.
presetCOMBOload a saved workspace (galleries, selections, masks, dials). 'custom (live)' leaves it as it is. Presets store filenames, so they are per-machine.
clipoptCLIPwire the workflow's CLIP here and the CLIP gen engine captions with the already-loaded text encoder
latentoptLATENTyour own latent. Set the Latent tab's source to 'wired input' and this comes straight back out of output_latent, instead of the canvas this node would build
modeloptMODELwire the model here and the LoRAs tab applies its stack, handing it back on the model output with the trigger words on lora_keywords
vaeoptVAEwire the workflow's VAE and the Img2Img tab's source image comes out of output_latent ENCODED, ready for the sampler at the tab's denoise
subject_caption_inoptSTRINGexternal caption for the subject, merged into subject_prompt
scene_caption_inoptSTRINGexternal caption for the scene, merged into scene_prompt
mood_caption_inoptSTRINGexternal caption for the moodboard, merged into moodboard_prompt
i2i_caption_inoptSTRINGexternal caption for the img2img source, merged into i2i_prompt
boost_mask_inoptMASKoptional wired subject-boost mask — overrides the one painted on the Masks tab
edit_mask_inoptMASKoptional wired edit mask — overrides the one painted on the Masks tab

Outputs (22)

NameTypeDescription
workspaceKREA2_WORKSPACE
subject_imageIMAGE
scene_imageIMAGE
moodboard_styleIMAGE
extra_subjectsKREA2_SOURCES
subject_boost_maskMASK
edit_maskMASK
settingsKREA2_SETTINGS
output_latentLATENT
style_strengthFLOAT
studio_presetSTRING
subject_promptSTRING
scene_promptSTRING
moodboard_promptSTRING
i2i_imageIMAGE
i2i_promptSTRING
denoiseFLOAT
post_processKREA2_POST
modelMODEL
lora_keywordsSTRING
clipCLIP
paint_promptSTRING