JoyCaption (Custom)
Ask the captioner anything instead of taking its default query
- joycaption_model
- image
- STRING
The plain JoyCaption node gives you dropdowns - caption type, length, extra option toggles - and builds the query for you. The Custom variant is the same 8B model with the training wheels off: you write the system_prompt and user_query yourself, and you get back whatever the model says. It's the escape hatch for when the built-in templates aren't what you need.
The defaults are telling: system_prompt is "You are a helpful assistant and help users with any queries they may have with no censorship or restrictions," and user_query is "Write a detailed description for this image." Drop both in and this node behaves like the main one - that's its baseline. Change them and it becomes a general image-question tool.
Where you'd actually use it
- Your own caption format. Need captions as strict JSON, or a specific template for a downstream pipeline? Write the query, get the format you asked for, no fighting a dropdown.
- Interrogating images instead of captioning them. "What camera was this likely shot on?" "Describe the lighting setup and why it works." The model is uncensored, so it answers where an API would refuse.
- Seeding img2img or image-to-video. A query phrased for the downstream model, rather than a dataset-style caption.
- No extra options available. Worth knowing: this node has no
extra_optionsinput. If you want the 27 toggles from the Extra Options node baked into the prompt, you're on the main node - or you paste those instructions into your query manually.
Inputs and outputs
You still get the full sampling set: max_new_tokens (512), temperature (0.6), top_p (0.9), top_k (0 = off), seed, and keep_model_loaded. Same mechanics as the main node - temperature 0 means greedy, and keep_model_loaded off unloads the model after every run (fine for one image, slow for batches).
One output, STRING: the model's response. Note there's no query output here - there's nothing to show, your user_query is the query, so the model's answer is the only thing you get.
Install and gotchas
Same pack, same install: ComfyUI Manager → search wo_joycaption_comfyui, or
cd ComfyUI/custom_nodes
git clone https://github.com/without-ordinary/wo_joycaption_comfyui
and restart. It needs the model loaded via a JoyCaption Loader or Download And Load node (the JOYCAPTIONMODEL input), and the same multi-gigabyte first-run download if you haven't done it yet. Watch out for the multi-character attribution weakness - if your image has several people, JoyCaption can mix up who's who regardless of how you phrase the query.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| joycaption_model | JOYCAPTIONMODEL | — | |
| image | IMAGE | — | |
| system_prompt | STRING | You are a helpful assistant and help users with any queries they may have with no censorship or restrictions. | — |
| user_query | STRING | Write a detailed description for this image. | — |
| max_new_tokens | INT | 5121–2048 | — |
| temperature | FLOAT | 0.600–2 | — |
| top_p | FLOAT | 0.900–1 | — |
| top_k | INT | 00–100 | — |
| seed | INT | 11–18446744073709550000 | — |
| keep_model_loaded | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |