Nodes/ComfyUI Easy Use/JoyCaption2 (BizyAIR)
ComfyUI Node Runs on cloud

JoyCaption2 (BizyAIR)

Auto-caption images via BizyAIR's cloud JoyCaption2

By yolain·Created 3 years ago·Updated 7 days ago· 2,633
JoyCaption2 (BizyAIR)
  • image
  • caption
do_sample
temperature0.50
max_tokens256
caption_type
caption_length
extra_options
name_input
custom_prompt
apikey_override

Feed it an image, get back a written caption. easy joyCaption2API runs JoyCaption2 - a free, open, deliberately uncensored vision-language captioner that the community leans on for building LoRA training datasets - and turns your image into a description in whatever style you pick, from a plain paragraph to a booru tag list to a training prompt.

Here's the thing to understand before you wire it up, because it trips people: the "API" in the name is literal. This node does not run JoyCaption on your own GPU. It calls BizyAIR, a cloud service, and JoyCaption runs on their servers. That means it needs network access and a BizyAIR API key, and it bills against your BizyAIR account rather than your local hardware. That's the trade - you skip downloading and running a multi-gigabyte VLM locally, at the cost of a signup, a key, and a cloud dependency. If you'd rather keep everything on your machine, there are local JoyCaption nodes in other packs; this one is the hosted convenience version.

How it works

It uploads your image to BizyAIR's endpoint, which runs JoyCaption2 with the prompt style and length you configured, and returns the generated text. JoyCaption itself was built specifically for captioning training data - equal coverage of SFW and NSFW concepts, no coy euphemisms - which is why it's a community favorite for LoRA and finetune datasets where a mainstream captioner would refuse or hedge.

The inputs and outputs that matter

  • image - the image to caption.
  • caption_type - the big one. Descriptive, Descriptive (Informal), Training Prompt, MidJourney, Booru tag list, Booru-like tag list, Art Critic, Product Listing, or Social Media Post. For LoRA datasets on modern language-model-encoder bases, Descriptive or Training Prompt (natural language) is usually what you want; for anime/tag-based training, the Booru options.
  • caption_length - from very short up to explicit token counts. Controls how much text you get.
  • temperature / do_sample / max_tokens - the usual generation knobs; higher temperature = more varied wording.
  • custom_prompt and extra_options - steer the captioner with your own instructions (e.g. "always mention the lighting").
  • apikey_override (optional) - your BizyAIR key, if you're not setting it globally.

Output: caption (STRING). Route it into a save-text node to build a dataset, or into a prompt for a downstream generation.

How to install it

Part of ComfyUI-Easy-Use. ComfyUI Manager: search ComfyUI-Easy-Use, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/yolain/ComfyUI-Easy-Use

then install.bat (Windows) or pip install -r ComfyUI-Easy-Use/requirements.txt, and restart. No local model download - but you do need a BizyAIR account and API key for this node to work at all.

Common issues & troubleshooting

Auth / "no API key" errors. This is the number-one failure. The node calls a cloud service, so it needs a valid BizyAIR key - set it globally in your Easy-Use / BizyAIR config, or paste it into apikey_override. No key, no caption.

Nothing comes back, or it hangs. It's a network call. A dead connection, a rate limit, or a service outage on BizyAIR's side all look like "the node isn't working." Confirm you're online and your key has quota before assuming the node is broken.

It's not running locally, and it costs. Worth restating: unlike a local captioner, every caption is a billed API request. If you're captioning thousands of dataset images, that adds up - check BizyAIR's pricing, or use a local JoyCaption node for bulk work.

Wrong caption style for your trainer. A booru tag list on a Flux/Z-Image dataset (which want natural language) will hurt more than help, and vice versa on anime tag-based models. Match caption_type to the base you're training - natural-language styles for LLM-encoder models, tag lists for the danbooru-tagged lineage.

CategoryEasyUse/API

Inputs (10)

NameTypeDefaultDescription
imageIMAGE
do_sampleCOMBO2 options: true, false
temperatureFLOAT0.500–2
max_tokensINT25616–512
caption_typeCOMBO9 options: Descriptive, Descriptive (Informal), Training Prompt, MidJourney, Booru tag list, Booru-like tag list, +3
caption_lengthCOMBO31 options: any, very short, short, medium-length, long, very long, +25
extra_optionsSTRINGExtra options for the model
name_inputSTRINGName input is only used if an Extra Option is selected that requires it.
custom_promptSTRING
apikey_overrideoptSTRINGOverride the API key in the local config

Outputs (1)

NameTypeDescription
captionSTRING