WO_JoyCaption_ExtraOptions
The switches that shape what the captioner says
- extra_options
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_namepluscharacter_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, andexclude_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.
Inputs (28)
| Name | Type | Default | Description |
|---|---|---|---|
| refer_character_name | BOOLEAN | false | If there is a person/character in the image you must refer to them as {name}. |
| exclude_people_info | 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). |
| include_lighting | BOOLEAN | false | Include information about lighting. |
| include_camera_angle | BOOLEAN | false | Include information about camera angle. |
| include_watermark_info | BOOLEAN | false | Include information about whether there is a watermark or not. |
| include_JPEG_artifacts | BOOLEAN | false | Include information about whether there are JPEG artifacts or not. |
| include_exif | 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. |
| exclude_sexual | BOOLEAN | false | Do NOT include anything sexual; keep it PG. |
| exclude_image_resolution | BOOLEAN | false | Do NOT mention the image's resolution. |
| include_aesthetic_quality | BOOLEAN | false | You MUST include information about the subjective aesthetic quality of the image from low to very high. |
| include_composition_style | BOOLEAN | false | Include information on the image's composition style, such as leading lines, rule of thirds, or symmetry. |
| exclude_text | BOOLEAN | false | Do NOT mention any text that is in the image. |
| specify_depth_field | BOOLEAN | false | Specify the depth of field and whether the background is in focus or blurred. |
| specify_lighting_sources | BOOLEAN | false | If applicable, mention the likely use of artificial or natural lighting sources. |
| do_not_use_ambiguous_language | BOOLEAN | false | Do NOT use any ambiguous language. |
| include_nsfw_rating | BOOLEAN | false | Include whether the image is sfw, suggestive, or nsfw. |
| only_describe_most_important_elements | BOOLEAN | false | ONLY describe the most important elements of the image. |
| do_not_include_artist_name_or_title | BOOLEAN | false | If it is a work of art, do not include the artist's name or the title of the work. |
| identify_image_orientation | BOOLEAN | false | Identify the image orientation (portrait, landscape, or square) and aspect ratio if obvious. |
| use_vulgar_slang_and_profanity | BOOLEAN | false | Use vulgar slang and profanity, such as (but not limited to) "fucking," "slut," "cock," etc. |
| do_not_use_polite_euphemisms | BOOLEAN | false | Do NOT use polite euphemisms—lean into blunt, casual phrasing. |
| include_character_age | BOOLEAN | false | Include information about the ages of any people/characters when applicable. |
| include_camera_shot_type | BOOLEAN | false | Mention 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_feeling | BOOLEAN | false | Do not mention the mood/feeling/etc of the image. |
| include_camera_vantage_height | BOOLEAN | false | Explicitly specify the vantage height (eye-level, low-angle worm’s-eye, bird’s-eye, drone, rooftop, etc.). |
| mention_watermark_explicitly | BOOLEAN | false | If there is a watermark, you must mention it. |
| avoid_meta_descriptive_phrases | BOOLEAN | false | Your 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_name | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| extra_options | EXTRA_OPTION | — |