π± Artha Gemini Light
Pick a lighting look from a list instead of a blank prompt box
- image
- light
- markdown
Artha Gemini Light is the lighting department of the Artha prompt-assembly system. It turns five dropdowns - light source, quality, direction, time of day, and natural phenomena - into a typed ARTHALIGHT object that Artha Gemini Compose uses when it writes your final image or video prompt. If you've ever stared at a prompt box knowing the lighting is wrong but unable to name how it's wrong, this node is the fix: it gives you a vocabulary list instead of demanding you already have one.
It's one of the three "scene settings" nodes (along with Artha Gemini Camera and Artha Gemini Scenery) that all feed Compose. Lighting is the one that does the most emotional work in an image - swap "harsh noon sun" for "golden hour rim light" and the whole mood changes - so it's worth getting right, and this node makes it a point-and-click affair.
What you pick
Five combo boxes, all defaulting to NONE (skip):
source- where the light comes from: natural, window, softbox, neon, and friends.quality- hard, soft, diffused, contrasty - the character of the light.direction- front, side, back, top, low, rim.timeofday- golden hour, blue hour, noon, night.phenomena- the show-offs: god rays, lens flare, atmospheric haze, fog, bokeh.
Every option comes from a compose.json bundled with the pack, so the list is curated, real film-and-photography vocabulary rather than model soup. Pick one per category that matters, leave the rest, and the node builds the light object from what you chose.
Two toggles sit at the bottom. randomize rolls one value per category - genuinely handy for lighting variation across a batch, and a good way to discover combinations you wouldn't have tried. use_image switches the node into vision mode: connect an image and it asks Gemini to describe the lighting from the photo and returns that description as the light value. That's the only mode that needs an API key; the picker path is local and free.
Outputs and wiring
Two outputs: light (type ARTHALIGHT) - wire this into Artha Gemini Compose's light input - and markdown, a plain-text cheat sheet of every lighting option in the dropdowns, generated from the same JSON. It's a nice touch: route it into a display node and you've got your own reference card without opening any box.
The gotchas
Same family as the rest of the pack. The light output is a typed object - don't feed the markdown string into Compose's light input, they're different things and only the typed one connects. Vision mode costs an API call every run and swallows failures into an empty string with the error printed to the ComfyUI console, so an empty light output means "read the console," not "try again." And in vision mode the node is guessing from pixels - good for matching a mood, not for recovering exact technical lighting values.
Install
Shared with the whole π± pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Cyrostar/ComfyUI-Artha-Nodes
cd ComfyUI-Artha-Nodes
pip install -r requirements.txt
Restart ComfyUI, or install "Artha" via ComfyUI Manager. Picker mode needs no key. For vision mode, grab one from Google AI Studio and drop it in the pack's api.json rather than the node's plaintext field.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| source | COMBO | NONE | 14 options: NONE, DAYLIGHT, SUNNY LIGHT, MOON LIGHT, OVERCAST LIGHT, SUNRISE LIGHT, +8 |
| quality | COMBO | NONE | 5 options: NONE, SOFT LIGHT, HARD LIGHT, LOW CONTRAST LIGHT, HIGH CONTRAST LIGHT |
| direction | COMBO | NONE | 7 options: NONE, TOP LIGHT, SIDE LIGHT, BACK LIGHT, RIM LIGHT, BOTTOM LIGHT, +1 |
| timeofday | COMBO | NONE | 7 options: NONE, DAYTIME LIGHT, NIGHT LIGHT, DAWN LIGHT, SUNRISE LIGHT, DUSK LIGHT, +1 |
| phenomena | COMBO | NONE | 17 options: NONE, LENS FLARE, GOD RAYS, VOLUMETRIC LIGHT, CAUSTICS, REFLECTION, +11 |
| api_key | STRING | API key will be visible in plain text. Consider adding your api to the api.json located inside this custom node folder. | |
| model | COMBO | gemini-2.5-flash | 5 options: gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.0-flash, gemini-2.0-flash-lite |
| max_tokens | INT | 50001β8192 | For Gemini models, a token is equivalent to about 4 characters. 100 tokens is equal to about 60β80 English words. |
| temperature | FLOAT | 0.70β2 | A temperature of 0 means only the most likely tokens are selected. Higher values increase randomness. |
| randomize | BOOLEAN | false | β |
| use_image | BOOLEAN | false | β |
| imageopt | IMAGE | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| light | ARTHALIGHT | β |
| markdown | STRING | β |