ComfyUI Node
JLC CaptionForge Joy Caption
A ComfyUI node in Captioning/CaptionForge/Captioning Nodes with 23 inputs and 5 outputs.
JLC CaptionForge Joy Caption
- image
- pipeline_plan
- template_options
- image_out
- pipeline_plan_out
- template_options_out
- caption
- resolved_prompt
◄modelllama-joycaption-beta-one-hf-llava►
◄memory_modeBalanced (8-bit)►
◄keep_loadedtrue►
◄caption_template_modetrue►
◄caption_typeJLC LoRA Literal►
◄caption_lengthany►
◄custom_prompt_modefalse►
◄prompt_presetdefault_literal►
◄system_promptYou are a helpful image-captioning assistant. Describe only what is visible in the image. Do not invent unseen context.►
◄custom_prompt►
◄max_new_tokens384►
◄temperature0.75►
◄top_p0.90►
◄top_k50►
◄repetition_penalty1.00►
◄max_size1024►
◄forbidden_phrases►
◄replace_pairs►
◄download_probe_onlyfalse►
◄seed—►
CategoryCaptioning/CaptionForge/Captioning Nodes
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | llama-joycaption-beta-one-hf-llava | JoyCaption/LLaVA-family model. Models are loaded from ComfyUI/models/LLM/JLC_JoyCaption/. Missing models may be downloaded automatically unless download_probe_only is enabled. |
| memory_mode | COMBO | Balanced (8-bit) | Joy model memory mode. Balanced (8-bit) uses bitsandbytes load-time quantization and is the recommended CaptionForge default for 16 GB VRAM systems. |
| keep_loaded | BOOLEAN | true | Keep the model cached after captioning for faster repeated runs. CaptionForge cache policy may still evict it when another caption model must load. |
| caption_template_mode | BOOLEAN | true | Use the structured CaptionForge template path: caption_type, caption_length, and optional Template Options from the template_options pin. If custom_prompt_mode is also enabled, custom_prompt_mode takes precedence. |
| caption_type | COMBO | JLC LoRA Literal | Caption template style used when caption_template_mode is active. |
| caption_length | COMBO | any | Target caption length used when caption_template_mode is active. |
| custom_prompt_mode | BOOLEAN | false | Use custom_prompt when non-empty, otherwise use prompt_preset. This overrides caption_template_mode when both toggles are enabled. |
| prompt_preset | COMBO | default_literal | Built-in prompt preset used only in custom_prompt_mode when custom_prompt is blank. |
| system_prompt | STRING | You are a helpful image-captioning assistant. Describe only what is visible in the image. Do not invent unseen context. | Joy/LLaVA system prompt. Kept next to custom_prompt because both control the instruction envelope. Pipeline Planner does not currently override this. |
| custom_prompt | STRING | Custom prompt used only when custom_prompt_mode is enabled. Overrides prompt_preset when non-empty. | |
| max_new_tokens | INT | 38416–4096 | Standalone token budget. When a Pipeline Planner is connected, this is overridden by the Planner's shared max_new_tokens. |
| temperature | FLOAT | 0.750–2 | Standalone sampling temperature. When a Pipeline Planner is connected, this is overridden by the Planner temperature schedule. |
| top_p | FLOAT | 0.900–1 | Standalone top-p sampling value. When a Pipeline Planner is connected, this is overridden by the Planner top-p schedule. |
| top_k | INT | 500–500 | Standalone top-k sampling limit. When a Pipeline Planner is connected, this is overridden by the Planner top-k schedule. |
| repetition_penalty | FLOAT | 1.001–2 | Penalty applied to repeated tokens. Kept with the core captioning parameters. This is not currently overridden by the Pipeline Planner. |
| max_size | INT | 10240–4096 | Maximum longest-side image size for standalone captioning. The image is resized in memory only. Pipeline Planner overrides this in planned runs. |
| forbidden_phrases | STRING | Optional cleanup filter: remove lines/captions containing any listed phrase, one per line. | |
| replace_pairs | STRING | Optional cleanup replacements, one per line: old=>new. | |
| download_probe_only | BOOLEAN | false | At the very bottom by design. Probe/download lightweight model metadata only, then return a status message without captioning. |
| imageopt | IMAGE | Image or batch of images to caption. The image is passed through unchanged for clean node-to-node pipeline chaining. | |
| pipeline_planopt | CAPTIONFORGE_PIPELINE_PLAN | Connect the CaptionForge Pipeline Planner output here. When connected, this node switches into Pass A evidence mode: Planner image routing, per-run seeds, sampling schedules, shared output paths, and internal JSONL evidence append. | |
| template_optionsopt | CAPTIONFORGE_EXTRA_OPTIONS | Connect the CaptionForge Template Options node here. Works in standalone and Pipeline modes. This is the only source for template modifiers and name input. | |
| seedopt | INT | Optional standalone seed input. Ignored when a Pipeline Planner supplies a seed schedule. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| image_out | IMAGE | — |
| pipeline_plan_out | CAPTIONFORGE_PIPELINE_PLAN | — |
| template_options_out | CAPTIONFORGE_EXTRA_OPTIONS | — |
| caption | STRING | — |
| resolved_prompt | STRING | — |