ComfyUI Node

Y7 JoyCaption

JoyCaption<div style="font-size: 0.8em"><div id="Y7_shortdesc" style="margin-bottom: 15px;">Generate image captions using a JoyCaption LLaVA model, with full control over caption style, length, and generation parameters.</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 0px; font-size: 12px;">Only HuggingFace JoyCaption models are supported.</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 0px; font-size: 12px;">Models (downloaded automatically to <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">models/LLM/</code> on first use):</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">joycaption-beta-one-fp8</code>: FP8 Dynamic quantization variant</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">joycaption-beta-one</code>: Latest beta release (default)</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">joycaption-alpha-two</code>: Previous alpha release</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 0px; font-size: 12px;">Inputs:</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">image</code>: The image to caption</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">model</code>: Which JoyCaption model to use</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">quantization</code>: Memory precision mode — <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">Full Precision (bf16)</code>, <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">Balanced (8-bit)</code>, or <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">Maximum Savings (4-bit)</code></div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">prompt_style</code>: Caption style — <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">Descriptive</code>, <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">Descriptive (Casual)</code>, <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">SDXL</code>, <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">Flux.2</code>, <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">MidJourney</code>, <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">Danbooru tag list</code>, <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">Art Critic</code>, <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">Product Listing</code>, <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">Social Media Post</code></div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">caption_length</code>: Target caption length — <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">any</code>, <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">very short</code>, <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">short</code>, <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">medium</code>, <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">long</code>, <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">very long</code></div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">max_new_tokens</code>: Maximum tokens to generate (1–2048, default 512)</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">temperature</code>: Controls randomness (0.0–2.0, default 0.6)</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">top_p</code>: Nucleus sampling threshold (0.0–1.0, default 0.9)</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">top_k</code>: Top-k sampling limit (0 = disabled, range 0–100)</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">seed</code>: Random seed for reproducible results</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">custom_prompt</code>: If filled, replaces the built-in prompt entirely</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">memory_management</code>: How to handle model loading between runs:</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 40px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">Keep in Memory</code>: Model stays loaded for the next run (fastest for repeated use)</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 40px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">Clear After Run</code>: Frees VRAM immediately after each run</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 40px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">Global Cache</code>: Shared model cache across multiple JoyCaption node instances</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">extra_options</code>: Optional — connect a JoyCaption Extra Options node to add caption modifiers</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 0px; font-size: 12px;">Outputs:</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">PROMPT</code>: The prompt sent to the model (useful for debugging or logging)</div></div><div style="font-size: 0.8em"><div style="margin-bottom: 8px; margin-left: 20px; font-size: 12px;">- <code style="border: 1px solid #666; border-radius: 3px; padding: 0px 1px; font-family: monospace; display: inline-block;">STRING</code>: The generated caption text</div></div>

By yushan777·Created about a year ago·Updated 23 days ago· 7
Y7 JoyCaption
  • image
  • extra_options
  • PROMPT
  • STRING
modeljoycaption-beta-one
quantizationFull Precision (bf16)
prompt_styleDescriptive
caption_lengthany
max_new_tokens512
temperature0.60
top_p0.90
top_k0
seed1234567890
custom_prompt
memory_managementKeep in Memory
CategoryY7Nodes/JoyCaption

Inputs (13)

NameTypeDefaultDescription
imageIMAGE
modelCOMBOjoycaption-beta-one3 options: joycaption-beta-one-fp8, joycaption-beta-one, joycaption-alpha-two
quantizationCOMBOFull Precision (bf16)3 options: Balanced (8-bit), Full Precision (bf16), Maximum Savings (4-bit)
prompt_styleCOMBODescriptive9 options: Descriptive, Descriptive (Casual), SDXL, Flux.2, MidJourney, Danbooru tag list, +3
caption_lengthCOMBOany6 options: any, very short, short, medium, long, very long
max_new_tokensINT5121–2048
temperatureFLOAT0.600–2
top_pFLOAT0.900–1
top_kINT00–100
seedINT12345678900–18446744073709550000
custom_promptSTRING
memory_managementCOMBOKeep in Memory3 options: Keep in Memory, Clear After Run, Global Cache
extra_optionsoptJOYCAPTION_EXTRA_OPTIONS

Outputs (2)

NameTypeDescription
PROMPTSTRING
STRINGSTRING