Joy Caption Extra Options
The 17 checkboxes that steer what JoyCaption does and doesn't mention
- Extra_Options
Picking a caption_type on the main captioning nodes gets you the shape of the caption - descriptive prose, Booru tags, a MidJourney-style prompt. Joy_extra_options is where you fine-tune content: whether it mentions lighting, whether it calls out camera settings, whether it stays PG, whether it uses a name instead of "a woman" or "a man." It's not a node that does anything on its own - it's a settings bundle that plugs into Joy_caption_two_advanced or Batch_joy_caption_two_advanced.
If you've trained a LoRA before, this is exactly the kind of control you want at captioning time. The house rule for LLM-encoder models like Flux is: describe what you want to stay changeable, leave out what you want to become permanent. These toggles are how you actually enforce that at scale instead of hand-editing hundreds of caption files afterward.
How it works
Each toggle here is a literal instruction sentence - the same ones from JoyCaption's original web demo - that gets appended to the prompt the LLM sees when it writes your caption. Flip on "Include information about lighting" and that exact instruction gets injected. There's no cleverness beyond that; it's a checklist that becomes part of the prompt.
The inputs and outputs that matter
There are 17 boolean toggles, all off by default, and they're worth knowing what each buys you rather than treating as a wall of checkboxes:
- Referring to people: "refer to them as
{name}" (pairs with thenamefield on the advanced node) and "do NOT include unchangeable traits like ethnicity/gender, but do include changeable ones like hairstyle" - the pair most relevant to character LoRA training, where you want the model to learn the person, not their ethnicity as a variable. - Technical/photographic detail: lighting, camera angle, depth of field, whether it's natural or artificial light, and - if it's a photo - camera, aperture, shutter speed, ISO.
- Content filtering: keep it PG (no sexual content), or the opposite - explicitly note whether the image is sfw, suggestive, or nsfw.
- What to omit: don't mention resolution, don't mention watermarks either way, don't mention JPEG artifacts, don't mention in-image text, avoid ambiguous language.
- Composition/quality: rate the aesthetic quality low-to-high, describe composition style (rule of thirds, leading lines, symmetry), or the opposite - only describe the most important elements and skip the rest.
The output is a single Extra_Options connector - plug it into the extra_options input on Joy_caption_two_advanced or Batch_joy_caption_two_advanced. The two simple, non-advanced caption nodes don't accept it at all, which is the real reason to reach for Advanced in the first place.
How to install it
Same pack, same steps as every other node here. Through ComfyUI Manager, search "JoyCaptionAlpha Two for ComfyUI" and install. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/EvilBT/ComfyUI_SLK_joy_caption_two.git
pip install -r ComfyUI_SLK_joy_caption_two/requirements.txt
Restart ComfyUI. This node itself doesn't load any models or need any downloads - it's pure config, so there's nothing to fetch. The model weights (SigLIP, the Llama checkpoint, and the JoyCaption adapter) belong to Joy_caption_two_load, which you'll need upstream regardless.
Common issues & troubleshooting
Toggling something and seeing no change in the output. The LLM is following an instruction, not applying a hard filter - it's a strong nudge, not a guarantee. If a toggle isn't behaving, try combining it with a matching one (e.g. pair "keep it PG" with "do not mention resolution" being off, so the model has one job at a time), or fall back to custom_prompt on the advanced node to write the instruction yourself in plainer language.
Wired it up but the advanced node still ignores it. Double check the Extra_Options output is actually connected to extra_options, not left dangling - it's an easy socket to forget when you're also wiring image, joy_two_pipeline, and the rest.
Wanting the "refer to them as {name}" option to actually use a real name. That toggle alone does nothing - it needs the name string field set on Joy_caption_two_advanced (or the batch advanced node) to have something to substitute in.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| If there is a person/character in the image you must refer to them as {name}. | BOOLEAN | false | — |
| Do NOT include information about people/characters that cannot be changed (like ethnicity, gender, etc), but do still include changeable attributes (like hair style). | BOOLEAN | false | — |
| Include information about lighting. | BOOLEAN | false | — |
| Include information about camera angle. | BOOLEAN | false | — |
| Include information about whether there is a watermark or not. | BOOLEAN | false | — |
| Include information about whether there are JPEG artifacts or not. | BOOLEAN | false | — |
| If it is a photo you MUST include information about what camera was likely used and details such as aperture, shutter speed, ISO, etc. | BOOLEAN | false | — |
| Do NOT include anything sexual; keep it PG. | BOOLEAN | false | — |
| Do NOT mention the image's resolution. | BOOLEAN | false | — |
| You MUST include information about the subjective aesthetic quality of the image from low to very high. | BOOLEAN | false | — |
| Include information on the image's composition style, such as leading lines, rule of thirds, or symmetry. | BOOLEAN | false | — |
| Do NOT mention any text that is in the image. | BOOLEAN | false | — |
| Specify the depth of field and whether the background is in focus or blurred. | BOOLEAN | false | — |
| If applicable, mention the likely use of artificial or natural lighting sources. | BOOLEAN | false | — |
| Do NOT use any ambiguous language. | BOOLEAN | false | — |
| Include whether the image is sfw, suggestive, or nsfw. | BOOLEAN | false | — |
| ONLY describe the most important elements of the image. | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Extra_Options | Extra_Options | — |