Nodes/JoyCaptionAlpha Two for ComfyUI/Joy Caption Extra Options
ComfyUI Node

Joy Caption Extra Options

The 17 checkboxes that steer what JoyCaption does and doesn't mention

By EvilBT·Created 2 years ago·Updated about a year ago· 721
Joy Caption Extra Options
    • Extra_Options
    If there is a person/character in the image you must refer to them as {name}.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).false
    Include information about lighting.false
    Include information about camera angle.false
    Include information about whether there is a watermark or not.false
    Include information about whether there are JPEG artifacts or not.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.false
    Do NOT include anything sexual; keep it PG.false
    Do NOT mention the image's resolution.false
    You MUST include information about the subjective aesthetic quality of the image from low to very high.false
    Include information on the image's composition style, such as leading lines, rule of thirds, or symmetry.false
    Do NOT mention any text that is in the image.false
    Specify the depth of field and whether the background is in focus or blurred.false
    If applicable, mention the likely use of artificial or natural lighting sources.false
    Do NOT use any ambiguous language.false
    Include whether the image is sfw, suggestive, or nsfw.false
    ONLY describe the most important elements of the image.false

    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 the name field 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.

    CategorySLK/LLM

    Inputs (17)

    NameTypeDefaultDescription
    If there is a person/character in the image you must refer to them as {name}.BOOLEANfalse
    Do NOT include information about people/characters that cannot be changed (like ethnicity, gender, etc), but do still include changeable attributes (like hair style).BOOLEANfalse
    Include information about lighting.BOOLEANfalse
    Include information about camera angle.BOOLEANfalse
    Include information about whether there is a watermark or not.BOOLEANfalse
    Include information about whether there are JPEG artifacts or not.BOOLEANfalse
    If it is a photo you MUST include information about what camera was likely used and details such as aperture, shutter speed, ISO, etc.BOOLEANfalse
    Do NOT include anything sexual; keep it PG.BOOLEANfalse
    Do NOT mention the image's resolution.BOOLEANfalse
    You MUST include information about the subjective aesthetic quality of the image from low to very high.BOOLEANfalse
    Include information on the image's composition style, such as leading lines, rule of thirds, or symmetry.BOOLEANfalse
    Do NOT mention any text that is in the image.BOOLEANfalse
    Specify the depth of field and whether the background is in focus or blurred.BOOLEANfalse
    If applicable, mention the likely use of artificial or natural lighting sources.BOOLEANfalse
    Do NOT use any ambiguous language.BOOLEANfalse
    Include whether the image is sfw, suggestive, or nsfw.BOOLEANfalse
    ONLY describe the most important elements of the image.BOOLEANfalse

    Outputs (1)

    NameTypeDescription
    Extra_OptionsExtra_Options