Nodes/Comfyui_JC2/TTP_JoyCaption_BetaOne_Full
ComfyUI Node Runs on cloud

TTP_JoyCaption_BetaOne_Full

The newer, self-contained model — no manual downloads

By TTPlanetPig·Created 2 years ago·Updated about a year ago· 216
TTP_JoyCaption_BetaOne_Full
  • image
  • caption
caption_type
caption_length
quantization_modebf16
custom_prompt
character_name
temperature0.60
top_p0.90
max_new_tokens512
device
cache_modeltrue
info_liger_unavailableLIGER Kernel not installed/available.
extra_option_0_if_there_is_a_person_characterfalse
extra_option_1_do_not_include_information_abofalse
extra_option_2_include_information_about_lighfalse
extra_option_3_include_information_about_camefalse
extra_option_4_include_information_about_whetfalse
extra_option_5_include_information_about_whetfalse
extra_option_6_if_it_is_a_photo_you_must_inclfalse
extra_option_7_do_not_include_anything_sexualfalse
extra_option_8_do_not_mention_the_image's_resfalse
extra_option_9_you_must_include_information_afalse
extra_option_10_include_information_on_the_imafalse
extra_option_11_do_not_mention_any_text_that_ifalse
extra_option_12_specify_the_depth_of_field_andfalse
extra_option_13_if_applicable,_mention_the_likfalse
extra_option_14_do_not_use_any_ambiguous_langufalse
extra_option_15_include_whether_the_image_is_sfalse
extra_option_16_only_describe_the_most_importafalse
extra_option_17_if_it_is_a_work_of_art,_do_notfalse
extra_option_18_identify_the_image_orientationfalse
extra_option_19_use_vulgar_slang_and_profanityfalse
extra_option_20_do_not_use_polite_euphemisms—lfalse
extra_option_21_include_information_about_the_false
extra_option_22_mention_whether_the_image_depifalse
extra_option_23_do_not_mention_the_mood_feelinfalse
extra_option_24_explicitly_specify_the_vantagefalse
extra_option_25_if_there_is_a_watermark,_you_mfalse
extra_option_26_your_response_will_be_used_by_false

JoyCaption Alpha Two is great, but it's three pieces you have to assemble and a checkpoint you place by hand. Beta One fixes the annoying part: it's a single self-contained LLaVA-style model, and this node - TTP_JoyCaption_BetaOne_Full - downloads it for you on first run. No manual model placement, no folder gymnastics. If you're setting up image captioning for LoRA training and you don't want to babysit model files, this is the version to reach for.

How it works

The Beta One model (fancyfeast/llama-joycaption-beta-one-hf-llava) is a full vision-language model - vision tower, projector, and Llama backend baked into one checkpoint. On first queue the node pulls it into ComfyUI/models/LLM_llava/ and loads it with LlavaForConditionalGeneration. Because it's one model instead of a SigLIP-plus-adapter-plus-LoRA sandwich, you get three quantization choices instead of two: bf16 (the default, needs serious VRAM), nf4, and int8 - both via bitsandbytes. There's also an optional LIGER kernel speedup for the Llama attention/MLP math; when it's installed the node exposes an enable_liger_kernel switch (CUDA only), and when it isn't you get a hidden info_liger_unavailable status string telling you so. Nice touch, that.

The model is cached globally across nodes in this pack, so switching between Full and Simple doesn't re-download the 9GB. cache_model defaults to on here (unlike the Alpha Two nodes, where it defaults off) - the author clearly expects you to keep it resident.

The inputs that matter

  • caption_type - 12 presets, and this is where Beta One outguns Alpha Two. Same Descriptive / MidJourney / Art Critic / Product Listing / Social Media Post crew, plus Danbooru tag list, e621 tag list, and Rule34 tag list with proper artist:, character:, species: prefix syntax. If you're captioning for an anime or furry base, these are the ones.
  • caption_length - words or counts, same idea as Alpha Two.
  • quantization_mode - bf16 / nf4 / int8. The model is bigger than the Alpha Two LLM, so on a 10–16GB card nf4 is your friend.
  • custom_prompt - a free-text override. If it's non-empty it replaces the caption type and all extras entirely, which is the escape hatch when you want a bespoke instruction.
  • character_name - feeds {name} into the "refer to them as {name}" extra.
  • temperature / top_p / max_new_tokens - defaults are 0.6 / 0.9 / 512; temperature up to 2.0 here if you want chaos.
  • The 27 extra-option toggles below those, covering lighting, camera angle, depth of field, SFW/NSFW classification, orientation, even one that asks for vulgar slang. Each is a real instruction sentence the model appends to its prompt - they're baked into this Full node so you don't need a companion.

Output is caption as a list: one caption per input image, straight into a text-writer node or a training dataset.

Install

ComfyUI Manager → search Comfyui_JC2, or:

cd ComfyUI/custom_nodes
git clone https://github.com/TTPlanetPig/Comfyui_JC2
pip install -r requirements.txt

The optional LIGER kernel speedup: run 安装liger-kernel.bat in the pack folder (Windows official build) or pip install liger-kernel==0.5.9 --no-deps.

Common issues

The usual suspects apply: quantization errors mean updating bitsandbytes, and this node is CUDA-only (device only offers cuda:0) - the nf4/int8 paths need CUDA and silently fall back to bf16 on CPU. First run downloads ~9GB, so the queue will look frozen. If you want Beta One without the 27 toggles on the node, use the JoyCaptionBetaOne_Simple sibling with ExtraOptionsNode_Beta.

CategoryTTP_Toolset

Inputs (39)

NameTypeDefaultDescription
imageIMAGE
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
quantization_modeCOMBObf163 options: bf16, nf4, int8
custom_promptSTRING
character_nameSTRING
temperatureFLOAT0.600–2
top_pFLOAT0.900–1
max_new_tokensINT5121–2048
deviceCOMBO1 options: cuda:0
cache_modelBOOLEANtrue
info_liger_unavailableSTRINGLIGER Kernel not installed/available.
extra_option_0_if_there_is_a_person_characterBOOLEANfalse
extra_option_1_do_not_include_information_aboBOOLEANfalse
extra_option_2_include_information_about_lighBOOLEANfalse
extra_option_3_include_information_about_cameBOOLEANfalse
extra_option_4_include_information_about_whetBOOLEANfalse
extra_option_5_include_information_about_whetBOOLEANfalse
extra_option_6_if_it_is_a_photo_you_must_inclBOOLEANfalse
extra_option_7_do_not_include_anything_sexualBOOLEANfalse
extra_option_8_do_not_mention_the_image's_resBOOLEANfalse
extra_option_9_you_must_include_information_aBOOLEANfalse
extra_option_10_include_information_on_the_imaBOOLEANfalse
extra_option_11_do_not_mention_any_text_that_iBOOLEANfalse
extra_option_12_specify_the_depth_of_field_andBOOLEANfalse
extra_option_13_if_applicable,_mention_the_likBOOLEANfalse
extra_option_14_do_not_use_any_ambiguous_languBOOLEANfalse
extra_option_15_include_whether_the_image_is_sBOOLEANfalse
extra_option_16_only_describe_the_most_importaBOOLEANfalse
extra_option_17_if_it_is_a_work_of_art,_do_notBOOLEANfalse
extra_option_18_identify_the_image_orientationBOOLEANfalse
extra_option_19_use_vulgar_slang_and_profanityBOOLEANfalse
extra_option_20_do_not_use_polite_euphemisms—lBOOLEANfalse
extra_option_21_include_information_about_the_BOOLEANfalse
extra_option_22_mention_whether_the_image_depiBOOLEANfalse
extra_option_23_do_not_mention_the_mood_feelinBOOLEANfalse
extra_option_24_explicitly_specify_the_vantageBOOLEANfalse
extra_option_25_if_there_is_a_watermark,_you_mBOOLEANfalse
extra_option_26_your_response_will_be_used_by_BOOLEANfalse

Outputs (1)

NameTypeDescription
captionSTRING