Nodes/Without's JoyCaption ComfyUI Nodes/WO_JoyCaption_ExtraOptions
ComfyUI Node

WO_JoyCaption_ExtraOptions

The switches that shape what the captioner says

By without-ordinary·Created about a year ago·Updated about a year ago· 5
WO_JoyCaption_ExtraOptions
    • extra_options
    refer_character_namefalse
    exclude_people_infofalse
    include_lightingfalse
    include_camera_anglefalse
    include_watermark_infofalse
    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_nsfw_ratingfalse
    only_describe_most_important_elementsfalse
    do_not_include_artist_name_or_titlefalse
    identify_image_orientationfalse
    use_vulgar_slang_and_profanityfalse
    do_not_use_polite_euphemismsfalse
    include_character_agefalse
    include_camera_shot_typefalse
    exclude_mood_feelingfalse
    include_camera_vantage_heightfalse
    mention_watermark_explicitlyfalse
    avoid_meta_descriptive_phrasesfalse
    character_name

    The main JoyCaption node keeps its interface clean by pushing all the tuning over here. This node is just a control panel: twenty-seven boolean toggles plus a character_name field, and its only job is to produce the extra_options output that you plug into the main node's extra_options input. Turn nothing on and the workflow behaves exactly as if the node weren't there - everything defaults to off.

    Understand what it's doing and it stops feeling like a wall of checkboxes. Each toggle appends an instruction sentence to the query that gets sent to the model. These aren't model knobs; they're prompt engineering with a UI. Pick a few relevant ones rather than flipping everything on, because each one is competing for the model's attention.

    The ones that matter most

    • refer_character_name plus character_name - this is the identity-anchoring pair. If there's a person in the image, the model must refer to them as {name}. For a character or person LoRA this is the difference between "the model describes your character as a generic man" and "the model names your character," which is exactly the describe-the-variable, leave-the-fixed rule from the LoRA training playbook.
    • exclude_people_info - drop unchangeable traits (ethnicity, gender) but keep changeable ones like hairstyle. The textbook captioning correction for over-describing fixed features.
    • avoid_meta_descriptive_phrases - suppresses useless "This image shows..." framing, which matters when you're captioning for a text-to-image model.
    • include_exif - forces photo-detail captioning: likely camera, aperture, shutter speed, ISO. Gold for photoreal training sets.
    • The NSFW cluster: use_vulgar_slang_and_profanity, include_nsfw_rating, do_not_use_polite_euphemisms, and exclude_sexual. This is the uncensored-captioner feature, and it's the thing most API captioners physically cannot do.

    Then there's the long tail - include_lighting, include_camera_angle, include_camera_shot_type, include_camera_vantage_height, specify_depth_field, include_composition_style, include_aesthetic_quality, include_watermark_info / mention_watermark_explicitly, include_JPEG_artifacts, exclude_text, exclude_image_resolution, exclude_mood_feeling, identify_image_orientation, only_describe_most_important_elements, and a few more. Read the tooltip on each - the author wrote them as actual instructions, and they tell you exactly what gets added.

    The one thing to watch

    This node only feeds the main JoyCaption node. The JoyCaption (Custom) node has no extra_options input, so all these toggles do nothing there - if you're on Custom, you'd have to type the instructions into your query yourself. Wiring is otherwise trivial: extra_options out, straight into the main node's extra_options in. Install it the same way as the rest of the pack - ComfyUI Manager search wo_joycaption_comfyui, or git clone https://github.com/without-ordinary/wo_joycaption_comfyui into custom_nodes.

    CategoryJoyCaption

    Inputs (28)

    NameTypeDefaultDescription
    refer_character_nameBOOLEANfalseIf there is a person/character in the image you must refer to them as {name}.
    exclude_people_infoBOOLEANfalseDo NOT include information about people/characters that cannot be changed (like ethnicity, gender, etc), but do still include changeable attributes (like hair style).
    include_lightingBOOLEANfalseInclude information about lighting.
    include_camera_angleBOOLEANfalseInclude information about camera angle.
    include_watermark_infoBOOLEANfalseInclude information about whether there is a watermark or not.
    include_JPEG_artifactsBOOLEANfalseInclude information about whether there are JPEG artifacts or not.
    include_exifBOOLEANfalseIf it is a photo you MUST include information about what camera was likely used and details such as aperture, shutter speed, ISO, etc.
    exclude_sexualBOOLEANfalseDo NOT include anything sexual; keep it PG.
    exclude_image_resolutionBOOLEANfalseDo NOT mention the image's resolution.
    include_aesthetic_qualityBOOLEANfalseYou MUST include information about the subjective aesthetic quality of the image from low to very high.
    include_composition_styleBOOLEANfalseInclude information on the image's composition style, such as leading lines, rule of thirds, or symmetry.
    exclude_textBOOLEANfalseDo NOT mention any text that is in the image.
    specify_depth_fieldBOOLEANfalseSpecify the depth of field and whether the background is in focus or blurred.
    specify_lighting_sourcesBOOLEANfalseIf applicable, mention the likely use of artificial or natural lighting sources.
    do_not_use_ambiguous_languageBOOLEANfalseDo NOT use any ambiguous language.
    include_nsfw_ratingBOOLEANfalseInclude whether the image is sfw, suggestive, or nsfw.
    only_describe_most_important_elementsBOOLEANfalseONLY describe the most important elements of the image.
    do_not_include_artist_name_or_titleBOOLEANfalseIf it is a work of art, do not include the artist's name or the title of the work.
    identify_image_orientationBOOLEANfalseIdentify the image orientation (portrait, landscape, or square) and aspect ratio if obvious.
    use_vulgar_slang_and_profanityBOOLEANfalseUse vulgar slang and profanity, such as (but not limited to) "fucking," "slut," "cock," etc.
    do_not_use_polite_euphemismsBOOLEANfalseDo NOT use polite euphemisms—lean into blunt, casual phrasing.
    include_character_ageBOOLEANfalseInclude information about the ages of any people/characters when applicable.
    include_camera_shot_typeBOOLEANfalseMention whether the image depicts an extreme close-up, close-up, medium close-up, medium shot, cowboy shot, medium wide shot, wide shot, or extreme wide shot.
    exclude_mood_feelingBOOLEANfalseDo not mention the mood/feeling/etc of the image.
    include_camera_vantage_heightBOOLEANfalseExplicitly specify the vantage height (eye-level, low-angle worm’s-eye, bird’s-eye, drone, rooftop, etc.).
    mention_watermark_explicitlyBOOLEANfalseIf there is a watermark, you must mention it.
    avoid_meta_descriptive_phrasesBOOLEANfalseYour response will be used by a text-to-image model, so avoid useless meta phrases like “This image shows…”, "You are looking at...", etc.
    character_nameSTRING

    Outputs (1)

    NameTypeDescription
    extra_optionsEXTRA_OPTION