Generate Light Prompt
Lighting that actually matches your words
- text
"Good lighting" is the laziest and least useful prompt phrase there is. Light Prompt is the antidote: three dropdowns - light_type (67 kinds of light), light_color (61 colors), and light_direction (12 angles) - each with a weight slider, assembled into a weighted lighting phrase for your prompt. It's from ComfyUI-PromptWrapper, and it's the pack's quiet sleeper: lighting is where "cinematic" prompts actually earn their keep, and having the vocabulary handed to you on a menu beats typing "dramatic rim lighting" and hoping.
How it works
Standard pack machinery: three bundled JSONL datasets (light_type_datas.jsonl, light_color_datas.jsonl, light_direction_datas.jsonl) in Chinese or English, picked by seed % dataset_length when set to random 🎲, and each wrapped as (phrase:1.3) when its weight differs from 1. Leave a slot at -- and it's omitted. Defaults put light_type at weight 1 and the other two at 0 - so the color and direction slots are off until you turn them on, which is the right call, because overspecifying light can fight the checkpoint.
Inputs that matter
- light_type - the main event: golden hour, neon, candlelight, studio softbox, the works.
- light_color and light_direction - the fine controls. Start them at 0 and dial in only when the type alone isn't landing.
- seed - reproducible random picks.
- preset_prompt, input_prompt (optional), enable - the usual pack controls.
One text output, comma-joined, usually wired through Combine Prompt alongside your subject and style.
Install
ComfyUI Manager → Custom Nodes Manager → search ComfyUI-PromptWrapper → Install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/clouddreamfly/ComfyUI-PromptWrapper
No downloads - datasets ship with the pack.
Where people get burned
The same weighting story as every node here: (word:1.3) is honored by SDXL-lineage checkpoints, discarded on LLM-encoded 2026 models. And a lighting-specific trap - weighted light phrases can oversteer. Stack (neon:1.4), (purple:1.1), (from above:0.8) and some checkpoints start painting everything in the scene purple rather than just lighting it. Treat the sliders as seasoning: one loud light type plus a gentle color usually reads better than three maxed slots. Also note light_color defaults to weight 0, so if you set a color and nothing visibly changes, check you've actually raised its weight - that one's caught people before.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| language | COMBO | Chinese | 2 options: Chinese, English |
| light_type | COMBO | -- | 67 options: --, random 🎲, 好看的灯光, 柔软的光线, 电影光, 立体光, +61 |
| light_type_weight | FLOAT | 1.000–2 | — |
| light_color | COMBO | -- | 61 options: --, random 🎲, 浅灰色的光, 番茄色的光, 酸橙色的光, 海洋绿的光, +55 |
| light_color_weight | FLOAT | 0.000–2 | — |
| light_direction | COMBO | -- | 12 options: --, random 🎲, 从上方的光, 从下方的光, 从右侧的光, 从左侧的光, +6 |
| light_direction_weight | FLOAT | 0.000–2 | — |
| seed | INT | 00–18446744073709550000 | — |
| enable | BOOLEAN | true | — |
| preset_prompt | STRING | — | |
| input_promptopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |