Nodes/ComfyUI_LayerStyle_Advance/LayerUtility: JoyCaption Beta One (Advance)
ComfyUI Node Runs on cloud

LayerUtility: JoyCaption Beta One (Advance)

JoyCaption Beta One — the captioner people actually reach for when training LoRAs

By chflame163·Created 2 years ago·Updated 4 months ago· 696
LayerUtility: JoyCaption Beta One (Advance)
  • image
  • joycaption_beta1_model
  • extra_options
  • text
caption_type
caption_length
max_new_tokens512
top_p0.90
top_k0
temperature0.60
user_prompt

JoyCaption is the community's favorite captioner for a specific reason: it's uncensored by design. fpgaminer built it starting mid-2024 explicitly because the alternatives at the time were either ChatGPT (expensive, filtered) or open models like CogVLM that choked the moment content wasn't SFW. For LoRA training on natural-language-encoder models - Flux, Z-Image, Qwen-Image and friends - JoyCaption is still the go-to over Florence 2 for exactly that reason, and it's nowhere near a fringe pick: it's the most-mentioned captioning tool in the ecosystem this year. "Beta One" is the current generation, and this is the actual captioning node - it takes the model handle from LayerUtility: Load JoyCaption Beta One Model and an image, and gives you text back.

The setting that matters most is caption_type, and there are twelve of them: plain Descriptive, a looser Descriptive (Casual), Straightforward, a Stable Diffusion Prompt format built for feeding straight back into generation, MidJourney-style, three tag-list formats (Danbooru, e621, Rule34), a generic Booru-like tag list, and a few non-dataset formats (Art Critic, Product Listing, Social Media Post) for when you just want a description rather than training data. Picking the right one matters - if you're captioning a dataset for a natural-language-encoder LoRA, Descriptive or Stable Diffusion Prompt is what you want; if you're feeding an anime/Illustrious-style pipeline that expects tags, one of the Booru variants is closer to useful, though a dedicated WD14 tagger is still the standard for that lineage. caption_length gives you rough control over how verbose the output is (from very short up through numeric token targets). temperature, top_p, and max_new_tokens are the usual LLM sampling knobs - leave them at defaults unless you're specifically fighting repetition or truncation. If you fill in user_prompt, it overrides everything else - caption_type, caption_length, and any extra_options you've plugged in - so use it when you want full manual control over the instruction. The optional extra_options input takes a JoyCaption2ExtraOption handle from the companion extra-options node, letting you toggle things like excluding watermark mentions or including camera-angle detail. Output is text.

Install the pack through ComfyUI Manager (search "ComfyUI Layer Style Advance") or git clone https://github.com/chflame163/ComfyUI_LayerStyle_Advance, restart, run the requirements installer. The model itself auto-downloads on first use to ComfyUI/models/LLavacheckpoints/llama-joycaption-beta-one-hf-llava, or grab it manually from HuggingFace (fancyfeast/llama-joycaption-beta-one-hf-llava) if you'd rather not wait on the in-workflow pull.

One caption-quality note worth keeping in mind, whichever mode you use: describe what you want the LoRA to be able to change, and leave out what you want it to treat as fixed. If you're training a character and you never mention their hair color in the captions, the model locks that in as part of the character; if you do mention it, it stays adjustable at inference time. Trouble-wise, this node shares the pack's common transformers/protobuf traps - if you hit an UnboundLocalError on clip_processor or text_model with the model files confirmed present, update transformers to at least 4.43.2; if that fixes one error and surfaces a protobuf descriptor complaint instead, downgrade protobuf to 3.20.3 or set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python.

Category😺dzNodes/LayerUtility

Inputs (10)

NameTypeDefaultDescription
imageIMAGE
joycaption_beta1_modelJOYCAPTIONBETA1_MODEL
caption_typeCOMBO12 options: Descriptive, Descriptive (Casual), Straightforward, Stable Diffusion Prompt, MidJourney, Danbooru tag list, +6
caption_lengthCOMBO31 options: any, very short, short, medium-length, long, very long, +25
max_new_tokensINT5124–2048
top_pFLOAT0.900–1
top_kINT00–100
temperatureFLOAT0.600–2
user_promptSTRING
extra_optionsoptJoyCaption2ExtraOption

Outputs (1)

NameTypeDescription
textSTRING