ComfyUI Node

Lighting Selector

Lighting as a dropdown you can randomize

By saluzafa·Created 4 months ago·Updated 4 months ago· 0
Lighting Selector
    • prompt
    lightingsoft natural light
    prefixChange lighting to
    separator,
    seed0
    previous_prompt

    Lighting Selector is the pack's mood knob: 16 lighting setups from soft natural light to neon lighting to dramatic chiaroscuro, rendered as Change lighting to golden hour in one string. Lighting is the single cheapest way to change the entire feel of a render - same subject, same pose, golden hour versus backlight versus moonlight are three different photographs - and this node makes that a dropdown you can flip or randomize without touching your main prompt.

    How it works

    Same architecture as the rest of the pack. Pick a lighting choice, the node wraps it in the prefix Change lighting to and returns one STRING named prompt. No models, no deps, no network - a handful of lines of standard-library Python. Set the dropdown to random and it samples from the 16 presets using random.Random(seed), deterministic per seed until you change it or set control_after_generate to randomize.

    The curated list covers the useful territory without bloat: natural light (soft, harsh, golden hour, blue hour, overcast), studio techniques (studio, rim, backlight, side, top-down, low-key, high-key), and the stylistic tail (neon, candlelight, moonlight, chiaroscuro). That's a real cinematic vocabulary, and having it in a dropdown means you stop misremembering whether it's "rim lighting" or "edge lighting" - the node spells it right for you.

    Inputs and outputs that matter

    • lighting - the 16-preset dropdown plus random. Default soft natural light.
    • seed - only matters when lighting is random.
    • previous_prompt (optional) - chain another selector's output in front of this one.
    • prefix and separator - defaults (Change lighting to and , ) are right; leave them.
    • Output: one STRING named prompt, into CLIPTextEncode or into the next selector.

    Chain it with the pack for a full scene beat: Change lighting to low-key lighting, Change background to dive bar, Change camera angle to front view eye-level shot medium shot. The instruction phrasing is built for Flux 2 Klein 9B, the editing model the pack is named after, which responds to short "change X to Y" commands - and on a plain checkpoint the output is just a standard lighting tag.

    Install

    ComfyUI Manager, search "Multi-Angle Camera Selector", install, restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/saluzafa/comfyui-klein9b-multi-angle
    

    Zero dependencies (standard library only), no model downloads, MIT licensed. It sits under prompt/scene in the node menu.

    Gotchas

    • The node names the light; the model has to paint it. "Rim lighting" is a strong, well-understood phrase and usually lands; "dramatic chiaroscuro" is more of a coin toss on smaller models. When a lighting choice doesn't read, that's the checkpoint's vocabulary, not the node's.
    • Contradictory lighting is the classic self-sabotage: don't chain harsh sunlight and moonlight into the same prompt and expect a coherent scene. Keep lighting instructions to one node in the chain.
    • random + a randomized seed is genuinely fun here - set it, queue a batch, and watch the same scene get re-lit across golden hour, neon, and candlelight. It's the cheapest way to find the lighting that makes a subject pop.
    Categoryprompt/scene

    Inputs (5)

    NameTypeDefaultDescription
    lightingCOMBOsoft natural light17 options: random, soft natural light, harsh sunlight, golden hour, blue hour, overcast daylight, +11
    prefixSTRINGChange lighting to
    separatorSTRING,
    seedINT00–18446744073709550000
    previous_promptoptSTRING

    Outputs (1)

    NameTypeDescription
    promptSTRING