Nodes/ComfyUI_LayerStyle_Advance/LayerUtility: JoyCaption2 Extra Options(Advance)
ComfyUI Node Runs on cloud

LayerUtility: JoyCaption2 Extra Options(Advance)

The checklist that tells JoyCaption2 what to mention

By chflame163·Created 2 years ago·Updated 4 months ago· 696
LayerUtility: JoyCaption2 Extra Options(Advance)
    • extra_option
    refer_character_namefalse
    exclude_people_infofalse
    include_lightingfalse
    include_camera_anglefalse
    include_watermarkfalse
    include_JPEG_artifactsfalse
    include_exiffalse
    exclude_sexualfalse
    exclude_image_resolutionfalse
    include_aesthetic_qualityfalse
    include_composition_stylefalse
    exclude_textfalse
    specify_depth_fieldfalse
    specify_lighting_sourcesfalse
    do_not_use_ambiguous_languagefalse
    include_nsfwfalse
    only_describe_most_important_elementsfalse
    character_nameHuluwa

    This node doesn't process an image or generate any text itself - it's a settings bundle. JoyCaption2ExtraOptions is a wall of toggles that you configure once and feed into the JoyCaption2 node's extra_options input, controlling exactly which details JoyCaption2's captions should or shouldn't mention. Think of it as the difference between "describe this image" and a genuinely specific captioning brief.

    JoyCaption2 (the alpha-two model, run locally via Llama 3.1 8B) is a local vision-language captioner built specifically for tagging training data, and this options node exists because caption style matters a lot for that job - you often want very particular inclusions or exclusions depending on what you're training. Worth knowing if you're searching for this: LayerStyle Advance also ships a newer JoyCaptionBetaOne model with its own, larger options node (JoyCaptionBeta1ExtraOptions, which adds more toggles on top of everything here). This node is specifically for the older JoyCaption2 node, not Beta One - if your workflow uses the newer model, you want that sibling node instead.

    The inputs that matter

    Seventeen boolean toggles, all default off, plus one string field. Rather than list all seventeen (their names are genuinely self-explanatory - include_lighting, include_camera_angle, exclude_text, and so on, each one directly controlling whether that detail shows up in the caption), the ones worth knowing about specifically:

    • refer_character_name + character_name (default "Huluwa" - a placeholder, not a real default you're meant to keep) - pair these together when captioning a recurring named character or subject; the caption will refer to them by that name instead of generically.
    • exclude_sexual - keeps captions PG. Useful default-on for general-purpose datasets.
    • include_nsfw - the opposite direction: explicitly asks the model to rate content as sfw / suggestive / nsfw in the caption. These two aren't mutually exclusive in the schema, but combining them doesn't make much sense - pick a lane.
    • only_describe_most_important_elements - trims verbose captions down to the essentials, useful if downstream token limits are tight.
    • do_not_use_ambiguous_language - pushes JoyCaption2 toward concrete, unhedged descriptions rather than "appears to be" phrasing, which matters more than it sounds for training-caption consistency.

    Everything else follows the same on/off pattern: flip on the details you want mentioned (lighting, camera angle, watermark presence, JPEG artifacts, EXIF-style camera guesses, aesthetic quality, composition style, depth of field, lighting source) or exclude the ones you don't (people's unchangeable traits, image resolution mentions, text in the image).

    Output is a single extra_option (type JoyCaption2ExtraOption) - it only does anything wired into JoyCaption2's matching input.

    Installing it

    ComfyUI Manager: search "ComfyUI Layer Style Advance". Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/chflame163/ComfyUI_LayerStyle_Advance.git
    

    Run install_requirements.bat (portable) or install requirements.txt yourself, then restart. This node needs nothing beyond the base pack - no model, no API key. The heavy install (Llama 3.1 8B weights, SigLIP, the JoyCaption LoRA files) belongs to JoyCaption2 itself, not this options node.

    Common issues

    Toggles have no visible effect. Confirm the extra_option output is actually wired into JoyCaption2's extra_options input - this node produces nothing usable on its own, it's pure configuration for its sibling.

    character_name shows up in captions when you didn't want it to. refer_character_name has to be on for character_name to matter; if you're seeing an unwanted reference, check that toggle first.

    Contradictory-feeling combinations do exactly what you told them to. Turning on both exclude_sexual and include_nsfw, for instance, is a genuinely odd combination and the model's behavior in that case isn't something to rely on - pick one goal per caption run rather than stacking conflicting instructions.

    Category😺dzNodes/LayerUtility

    Inputs (18)

    NameTypeDefaultDescription
    refer_character_nameBOOLEANfalse
    exclude_people_infoBOOLEANfalse
    include_lightingBOOLEANfalse
    include_camera_angleBOOLEANfalse
    include_watermarkBOOLEANfalse
    include_JPEG_artifactsBOOLEANfalse
    include_exifBOOLEANfalse
    exclude_sexualBOOLEANfalse
    exclude_image_resolutionBOOLEANfalse
    include_aesthetic_qualityBOOLEANfalse
    include_composition_styleBOOLEANfalse
    exclude_textBOOLEANfalse
    specify_depth_fieldBOOLEANfalse
    specify_lighting_sourcesBOOLEANfalse
    do_not_use_ambiguous_languageBOOLEANfalse
    include_nsfwBOOLEANfalse
    only_describe_most_important_elementsBOOLEANfalse
    character_nameSTRINGHuluwa

    Outputs (1)

    NameTypeDescription
    extra_optionJoyCaption2ExtraOption