Nodes/ComfyUI-RedNodeStudio/RedNode Camera Studio
ComfyUI Node

RedNode Camera Studio

A camera you drag on a map, instead of words you hope the model obeys

By RedNodeAI·Created about a month ago·Updated about 23 hours ago· 0
RedNode Camera Studio
  • image
  • prompt
  • camera_json
  • image
  • latent
  • width
  • height
config{}
prompt_in

Every Krea 2 user has typed "wide cinematic shot, camera low, looking up at the subject" and gotten a picture that ignores half of it. The problem isn't that Krea 2 is dumb - it's that words like "wide" are doing a job they aren't built for. Krea 2's Qwen3-VL text encoder thinks in physical camera language: lens length, height, distance, angle. RedNode Camera Studio is the node that lets you drag those things on a map instead of trying to spell them out.

It's a top-view stage, not a node you type into. You drop subjects on it, pull the room walls out to the right size, move the camera around, and the node writes the actual paragraph Krea 2 obeys - where the camera sits, its tilt, what it sees, the lens - plus scene blocking for however many subjects you placed. What comes out isn't "wide shot," it's the physical language: focal length, camera height, how far back it is, the angle of view. That's the whole trick of the pack's camera section: the model answers to geometry it can compute, not adjectives it has to guess at.

How it works

Everything on the stage lives in one JSON blob, the config input - which you'll almost never hand-edit, because the node draws its own panel and edits it for you. The camera_translate.py file behind it does the real work: it takes your camera position, subject positions, and lens in millimeters, runs them through actual geometry - field of view from focal length, height, distance, angle to the subject - and phrases the result in the language Krea 2 was trained on.

The lights sit on the same stage, and their sliders do real physics too. Illuminance falls off with the square of the distance, and how hard a shadow reads is the light's angular size from the subject, so a big soft source close in and a small hard one across the room come out as different words. Exposure runs in stops either side of zero, colour in mireds either side of neutral daylight. Fifteen built-in setups ship with the pack, and a "set" carries the whole stage at once - camera, subjects, room size, path, lights - so you tweak a loaded room rather than building one from nothing.

The inputs and outputs that matter

Two optional inputs, and honestly that's the selling point. prompt_in is your own prompt; the camera paragraph gets joined onto it, leading it - the author's research says position matters, so the camera words go first. image just passes through untouched, so the node can sit in a review chain without breaking it.

The outputs are where it gets interesting:

  • prompt - the finished camera paragraph, wire it into your text encoder.
  • camera_json - the geometry state, as a string. This is the socket the rest of the pack's camera nodes read from.
  • latent, width, height - an empty 16-channel Krea 2 latent at the shape the geometry suggests, so the frame matches what the camera sees. Width and height come out even if you don't allocate the latent.

Set a camera path - an orbit from -60 to +60, say - and every output turns into a list: one prompt, one latent, one size per shot. ComfyUI runs the downstream nodes once per item, so a whole multi-angle orbit is a single queue.

Install

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

Restart ComfyUI. Or search RedNode Studio in ComfyUI Manager. Zero pip dependencies beyond what ComfyUI already has - it's all UI and text. The node itself loads on any ComfyUI, but its intended target is Krea 2, which needs ComfyUI 0.26.0+ plus the qwen3vl_4b text encoder (CLIPLoader, type krea2) and qwen_image_vae.

Where people get tripped up

The prompt output is a list even when there's no path - that's normal, it's just a one-element list. And remember the framing advice in the pack's own docs: word order sets the shot, so let the camera paragraph lead and your subject follow. One trap worth knowing: a wide framing with a subject standing nowhere can vanish from the picture entirely - the panel warns you about this, and it means you skipped placement, not that the node broke.

Final honest note: this node generates words, not images. It won't override a bad prompt - it writes better words, and Krea 2 does the rest. Used that way, it turns "shot from above" into something the model can't miss.

CategoryRedNode/Prompt

Inputs (3)

NameTypeDefaultDescription
configSTRING{}
prompt_inoptSTRINGYour prompt; the camera paragraph is joined onto it (leading it, per the research on positional bias, unless the panel says otherwise).
imageoptIMAGEPassed through untouched, so the node can sit in a review chain.

Outputs (6)

NameTypeDescription
promptSTRING
camera_jsonSTRING
imageIMAGE
latentLATENT
widthINT
heightINT