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

JoyCaption3 (BizyAIR)

Caption images with JoyCaption 3 over a cloud API

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

JoyCaption is the captioner a lot of people reach for when building LoRA training datasets - it writes natural, detailed descriptions and, unlike a lot of tools, doesn't flinch at NSFW content, which is exactly why the dataset crowd likes it. The catch is that running JoyCaption locally wants a chunky VLM and the VRAM to match. easy joyCaption3API sidesteps that: it calls JoyCaption 3 through the BizyAIR cloud service, so the heavy model runs on someone else's GPU and you just get the caption back.

Unlike some nodes with "API" in the name that are actually local, this one really does phone home - which means it needs an API key and it costs credits. Read that as the deal, not a gotcha: you're trading a local download and VRAM for a key and per-call cost.

How it works

You feed it an image and caption settings; it packages the request, sends the image to BizyAIR's JoyCaption 3 endpoint, and returns the generated text. All the heavy lifting is remote.

The inputs and outputs that matter

  • image - the image to caption.
  • caption_type - the flavor of caption: Descriptive, Training Prompt, Booru tag list, MidJourney, Art Critic, and more. Pick based on what you're feeding it into - Training Prompt or Descriptive for LoRA datasets, Booru tag list for tag-based workflows.
  • caption_length - how long: short, medium-length, long, or an explicit word count.
  • temperature (default 0.5) and do_sample - creativity/randomness. Lower and deterministic for consistent dataset captions; higher for variety.
  • custom_prompt / extra_options / name_input - steer the model with your own instruction, extra toggles, or a subject name to use.
  • apikey_override (optional) - your BizyAIR key if you're not setting it globally.
  • caption (output) - the text. Wire it into a CLIP encode, an easy saveText, or a display node.

How to install it

ComfyUI Manager: search ComfyUI-Easy-Use, install, restart. Manually:

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

then install.bat / pip install -r requirements.txt, restart. The real setup here is the account, not the code: this node needs a BizyAIR API key and credits on that account. No local model download - the tradeoff for zero VRAM cost is that you're on someone else's paid endpoint.

Common issues & troubleshooting

Auth / "invalid API key" errors. The node can't do anything without a valid BizyAIR key. Set it (globally, or via apikey_override) and make sure the account has credit. This is the number-one failure - it's a paid remote service, not a free local one.

It needs internet. Because it's a cloud call, an offline or firewalled ComfyUI box can't use it. If you're running somewhere without outbound network access, use a local captioner instead.

Captions inconsistent across a dataset. For training data you usually want consistent phrasing. Drop temperature and turn do_sample off so the model stops improvising, and lock caption_type + caption_length across the whole batch.

Cost creep on big batches. Every image is a billed API call. Captioning a few thousand images adds up - if you're doing that volume regularly, weigh it against running JoyCaption locally once you have the VRAM. For occasional or low-VRAM use, the API is the easy win; at scale, local can be cheaper.

Privacy of your images. You're uploading each image to a third-party service to caption it. Fine for most stuff; just know that's what "API" means here before you send anything sensitive.

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