Files
Damkohler-CaptionForge/assets/workflows/CaptionForge_FullWorkflow_API.json
T

417 lines
22 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"9": {
"inputs": {
"image": "ComfyUI_00081_.png"
},
"class_type": "LoadImage",
"_meta": {
"title": "Load Image"
}
},
"51": {
"inputs": {
"model": "llama-joycaption-beta-one-hf-llava",
"memory_mode": "Balanced (8-bit)",
"keep_loaded": true,
"caption_template_mode": true,
"caption_type": "JLC LoRA Literal",
"caption_length": "any",
"custom_prompt_mode": false,
"prompt_preset": "default_literal",
"system_prompt": "You are a helpful image-captioning assistant. Describe only what is visible in the image. Do not invent unseen context.",
"custom_prompt": "",
"max_new_tokens": 384,
"temperature": 0.75,
"top_p": 0.9,
"top_k": 50,
"repetition_penalty": 1,
"max_size": 1024,
"forbidden_phrases": "",
"replace_pairs": "",
"download_probe_only": false,
"image": [
"85",
0
],
"pipeline_plan": [
"85",
1
],
"template_options": [
"55",
0
]
},
"class_type": "JLC_CaptionForgeJoy",
"_meta": {
"title": " JLC CaptionForge Joy Caption"
}
},
"52": {
"inputs": {
"model": "Qwen2.5-VL-7B-Instruct",
"qwen_quantization": "Balanced (8-bit)",
"keep_loaded": true,
"caption_template_mode": true,
"caption_type": "LoRA Literal",
"caption_length": "any",
"custom_prompt_mode": false,
"prompt_preset": "default_literal",
"system_prompt": "You are a helpful image-captioning assistant. Describe only what is visible in the image. Do not invent unseen context.",
"custom_prompt": "",
"max_new_tokens": 384,
"temperature": 0.75,
"top_p": 0.9,
"top_k": 50,
"repetition_penalty": 1.08,
"max_size": 1024,
"forbidden_phrases": "",
"replace_pairs": "",
"download_probe_only": false,
"image": [
"51",
0
],
"pipeline_plan": [
"51",
1
],
"template_options": [
"51",
2
]
},
"class_type": "JLC_CaptionForgeQwen",
"_meta": {
"title": " JLC CaptionForge Qwen Caption"
}
},
"55": {
"inputs": {
"name_input__replacement_for_name": "",
"option_01__character_name_required": false,
"option_02__literal_visible_details_only": true,
"option_03__no_roleplay_or_dialogue": true,
"option_04__no_ambiguous_wording": true,
"option_05__avoid_meta_lead_ins": true,
"option_06__describe_facial_features": true,
"option_07__eye_color_vs_makeup": true,
"option_08__describe_makeup_separately": true,
"option_09__describe_expression": true,
"option_10__hair_color_and_style": true,
"option_11__skin_tone_and_texture": true,
"option_12__body_shape_and_proportions": true,
"option_13__visible_anatomy_and_coverage": true,
"option_14__stylized_material_traits": true,
"option_15__clothing_pieces_clearly": true,
"option_16__clothing_materials_textures": true,
"option_17__precise_colors": false,
"option_18__accessories_and_jewelry": false,
"option_19__pose_and_stance": true,
"option_20__hands_and_arms": true,
"option_21__framing_shot_distance": true,
"option_22__viewing_angle": true,
"option_23__background_and_setting": true,
"option_24__lighting": false,
"option_25__image_style_medium": true,
"option_26__watermark_only_if_present": false,
"option_27__visible_text_if_relevant": true,
"option_28__sfw_suggestive_nsfw_rating": false,
"option_29__neutral_sensual_details": true,
"option_30__vulgar_wording_allowed": true,
"option_31__no_polite_euphemisms": true
},
"class_type": "JLC_CaptionForgeExtraOptions",
"_meta": {
"title": " JLC CaptionForge Template Options"
}
},
"56": {
"inputs": {
"model": "gemma4:26b",
"custom_model_tag": "",
"ollama_url": "http://127.0.0.1:11434",
"keep_loaded": true,
"caption_template_mode": true,
"caption_type": "Descriptive",
"caption_length": "any",
"custom_prompt_mode": false,
"prompt_preset": "female_character_lora",
"system_prompt": "You are a multimodal image captioning engine for female character LoRA dataset preparation.\n\nYour job is to inspect the image and write one strong standalone caption.\n\nRules:\n- Describe only visible image content.\n- Output exactly one paragraph and nothing else.\n- Do not output analysis, reasoning, notes, bullet points, labels, or a thinking trace.\n- Do not roleplay, address the user, ask follow-up questions, or include safety disclaimers.\n- If a detail is uncertain, omit it rather than hedge.\n- Use direct dataset-caption language, not chatty commentary.",
"custom_prompt": "Write one clean caption for a female character LoRA dataset.\n\nCaption priorities:\n- Be specific rather than generic.\n- Prioritize female-character-LoRA-relevant visual traits: subject type, pose, facial structure, expression, hair color and hairstyle, eye color, makeup color as distinct from eye color, lip shape and fullness, skin appearance, neck length, shoulder line, bust/chest shape, waist definition, hip width, body proportions, silhouette, legs, clothing construction, accessories, dominant colors, lighting, background, framing, and visual style.\n- Include visible anatomy and figure information when clear and relevant. Do not omit body-shape or facial-structure details merely because they are sensual, revealing, or anatomy-related.\n- If the image presents glamour, sensuality, revealing clothing, lingerie, swimwear, cleavage, underboob, sideboob, bare midriff, exposed hips, thighs, or other sexualized styling, describe that directly and matter-of-factly when visible.\n- Use strong, open dataset-caption language rather than timid euphemisms, but do not turn the caption into roleplay, commentary, or erotic prose.\n- Do not invent nudity, explicit acts, hidden anatomy, or hidden clothing details.\n- Do not force photo, render, doll, anime, realistic, or stylized language unless supported by the image.\n- Avoid meta phrases like \"this image shows\" or \"the picture depicts.\"\n- One paragraph only.\n\nFinal caption:",
"max_new_tokens": 6000,
"temperature": 0.9,
"top_p": 0.6,
"top_k": 80,
"repetition_penalty": 1.03,
"max_size": 1024,
"request_timeout_seconds": 1800,
"forbidden_phrases": "",
"replace_pairs": "",
"download_probe_only": false,
"image": [
"58",
0
],
"pipeline_plan": [
"58",
1
],
"template_options": [
"58",
2
]
},
"class_type": "JLC_CaptionForgeOllamaCaption",
"_meta": {
"title": " JLC CaptionForge Ollama Caption"
}
},
"58": {
"inputs": {
"model": "qwen3.6:35B-A3B",
"custom_model_tag": "",
"ollama_url": "http://127.0.0.1:11434",
"keep_loaded": true,
"caption_template_mode": true,
"caption_type": "Descriptive",
"caption_length": "any",
"custom_prompt_mode": false,
"prompt_preset": "female_character_lora",
"system_prompt": "You are a multimodal image captioning engine for female character LoRA dataset preparation.\n\nYour job is to inspect the image and write one strong standalone caption.\n\nRules:\n- Describe only visible image content.\n- Output exactly one paragraph and nothing else.\n- Do not output analysis, reasoning, notes, bullet points, labels, or a thinking trace.\n- Do not roleplay, address the user, ask follow-up questions, or include safety disclaimers.\n- If a detail is uncertain, omit it rather than hedge.\n- Use direct dataset-caption language, not chatty commentary.",
"custom_prompt": "Write one clean caption for a female character LoRA dataset.\n\nCaption priorities:\n- Be specific rather than generic.\n- Prioritize female-character-LoRA-relevant visual traits: subject type, pose, facial structure, expression, hair color and hairstyle, eye color, makeup color as distinct from eye color, lip shape and fullness, skin appearance, neck length, shoulder line, bust/chest shape, waist definition, hip width, body proportions, silhouette, legs, clothing construction, accessories, dominant colors, lighting, background, framing, and visual style.\n- Include visible anatomy and figure information when clear and relevant. Do not omit body-shape or facial-structure details merely because they are sensual, revealing, or anatomy-related.\n- If the image presents glamour, sensuality, revealing clothing, lingerie, swimwear, cleavage, underboob, sideboob, bare midriff, exposed hips, thighs, or other sexualized styling, describe that directly and matter-of-factly when visible.\n- Use strong, open dataset-caption language rather than timid euphemisms, but do not turn the caption into roleplay, commentary, or erotic prose.\n- Do not invent nudity, explicit acts, hidden anatomy, or hidden clothing details.\n- Do not force photo, render, doll, anime, realistic, or stylized language unless supported by the image.\n- Avoid meta phrases like \"this image shows\" or \"the picture depicts.\"\n- One paragraph only.\n\nFinal caption:",
"max_new_tokens": 6000,
"temperature": 0.9,
"top_p": 0.6,
"top_k": 80,
"repetition_penalty": 1.03,
"max_size": 1024,
"request_timeout_seconds": 1800,
"forbidden_phrases": "",
"replace_pairs": "",
"download_probe_only": false,
"image": [
"52",
0
],
"pipeline_plan": [
"52",
1
],
"template_options": [
"52",
2
]
},
"class_type": "JLC_CaptionForgeOllamaCaption",
"_meta": {
"title": " JLC CaptionForge Ollama Caption"
}
},
"67": {
"inputs": {
"inputcount": 3,
"Update inputs": null,
"image_1": [
"68",
0
],
"image_2": [
"70",
0
],
"image_3": [
"9",
0
]
},
"class_type": "ImageBatchMulti",
"_meta": {
"title": "Image Batch Multi"
}
},
"68": {
"inputs": {
"image": "Flux.2__00297_.png"
},
"class_type": "LoadImage",
"_meta": {
"title": "Load Image"
}
},
"70": {
"inputs": {
"image": "jlc_Orchestrate_Sample.jpg"
},
"class_type": "LoadImage",
"_meta": {
"title": "Load Image"
}
},
"81": {
"inputs": {
"output": "",
"source": [
"88",
0
]
},
"class_type": "Display Any (rgthree)",
"_meta": {
"title": "Long Caption - Display Any (rgthree)"
}
},
"82": {
"inputs": {
"output": "",
"source": [
"88",
1
]
},
"class_type": "Display Any (rgthree)",
"_meta": {
"title": "Short Captions - Display Any (rgthree)"
}
},
"85": {
"inputs": {
"Planner - enabled": true,
"Input - image path": "",
"Input - recursive": false,
"Input - filename glob": "*",
"Output - folder": "",
"Output - run name": "captionforge_run",
"Output - overwrite outputs": true,
"Ollama - URL": "http://127.0.0.1:11434",
"Ollama - keep loaded": true,
"Ollama - request timeout seconds": 1800,
"LoRA - trigger word": "",
"LoRA - user caption anchor": "",
"Caption - Joy runs/image": "2",
"Caption - Qwen runs/image": "1",
"Caption - Ollama runs/image": "1",
"Caption - base seed": 3,
"Caption - seed mode": "increment",
"Caption - temperature schedule": "0.7,0.8,0.9",
"Caption - top p schedule": "0.6,0.7,0.8",
"Caption - top k schedule": "60,70,80",
"Caption - max image size": 1024,
"Caption - max new tokens": 4096,
"Distiller - model": "mistral-small:24b",
"Distiller - custom Ollama model": "",
"Distiller - prompt": "/no_think\n\nYou are a detail-preserving caption merger for LoRA dataset preparation.\n\nYou receive multiple captions of the same image. You do NOT see the image.\n\nTask:\nMerge all non-contradictory caption details into one deliberately over-complete draft caption.\n\nRules:\n- Do not validate against the image.\n- Do not decide that details are false just because they appear once.\n- Do not summarize aggressively.\n- Preserve concrete details from all captions.\n- Split contradictions by choosing cautious wording or listing the alternative only when needed.\n- Prefer specific visual language over generic language.\n- Keep visible body, clothing, material, accessory, color, pose, lighting, style, and framing details.\n- Preserve doll-like, glossy/plastic-like, material, garment-construction, body-shape, and facial-feature details when present.\n- Use neutral dataset-caption language, including visible sensual styling or revealing clothing when present.\n- Do not add details absent from the captions.\n- Treat subject names or trigger-like identity tokens as optional identity labels. Preserve them only when they appear consistently in the captions; do not let them replace visible description.\n- Output only one paragraph, no notes, no JSON.",
"Distiller - seed": -1,
"Distiller - max caption chars for LLM": 1536,
"Distiller - num predict": 3096,
"Distiller - temperature": 0.24,
"Distiller - top p": 0.9,
"Distiller - top k": 60,
"Distiller - write prompt JSONL": false,
"Distiller - preserve raw response": false,
"Validator - model": "gemma4:26b",
"Validator - custom Ollama model": "",
"Validator - system prompt": "/no_think\nYou are a direct image validation engine. Inspect the image and answer only with the requested caption.",
"Validator - prompt": "/no_think\n\nLook at the image and validate this draft caption.\n\nTask:\nReturn a corrected caption paragraph that keeps only image-supported details.\n\nRules:\n- Output only the corrected caption.\n- One paragraph.\n- No reasoning, no notes, no JSON.\n- Keep all true visible details from the draft.\n- Delete unsupported details.\n- Correct small visible errors.\n- Do not add new details unless needed to correct an error already present.\n- Preserve useful LoRA details: subject, face, hair, eyes, makeup, lips, skin texture, pose, body shape, outfit, accessories, materials, colors, lighting, background, framing, and visual style.\n- Visible sensual styling, revealing clothing, cleavage, thighs, bare skin, swimwear, lingerie, or body-shape details may be described neutrally when present.\n- Do not invent hidden anatomy, unseen clothing, explicit acts, or details contradicted by the image.",
"Validator - seed": -1,
"Validator - num predict": 2112,
"Validator - temperature": 0,
"Validator - top p": 0.92,
"Validator - top k": 80,
"Validator - write prompt JSONL": false,
"Validator - preserve raw VLM response": false,
"Formatter - model": "mistral-small:24b",
"Formatter - custom Ollama model": "",
"Formatter - prompt": "/no_think\n\nYou are a LoRA caption format converter. The validated paragraph is your only source of truth.\n\nOutput exactly two labeled lines:\n\nSHORT: <a concise natural-language caption, typically around 100 words, that preserves all LoRA-useful validated details>\n\nTAGGY: <one compact comma-separated caption>\n\nSHORT must preserve the image's distinctive training identity across the whole source:\n1. subject, defining face/hair/body traits, and every major outfit piece/material;\n2. pose/action and key accessories or unusual visible details;\n3. setting, lighting, framing, and visual medium/style.\n\nOmit a category only when absent. Use only source details; never add, infer, euphemize, or correct. Compress wording, not category coverage. Do not copy only the source opening.\n\nAim for roughly 100 words. Keep it concise, but allow modest variation when needed to preserve important information and finish the caption naturally. Do not cut off a sentence merely to satisfy a word-count target.\n\nTAGGY must preserve all concrete LoRA-useful source details as compact comma-separated phrases.\n\nNo markdown, reasoning, notes, or other labels.",
"Formatter - seed": -1,
"Formatter - num predict": 3200,
"Formatter - temperature": 0.12,
"Formatter - top p": 0.88,
"Formatter - top k": 50,
"Formatter - write prompt JSONL": false,
"Formatter - preserve raw response": false,
"Final - write TXT sidecars": true,
"Final - write JSONL": true,
"Input - single image": [
"67",
0
]
},
"class_type": "JLC_CaptionForge_Pipeline_Planner",
"_meta": {
"title": " JLC CaptionForge Pipeline Planner"
}
},
"88": {
"inputs": {
"Input - captions JSONL": "",
"Input - image path": "",
"Input - include caption families": "joy,qwen,ollama",
"Input - max captions per family": 5,
"Input - max total captions": 20,
"Output - folder": "",
"Output - run name": "captionforge_run",
"Output - overwrite outputs": true,
"Ollama - URL": "http://127.0.0.1:11434",
"Ollama - keep loaded": true,
"Ollama - request timeout seconds": 1800,
"LoRA - trigger word": "",
"LoRA - user caption anchor": "",
"Fat Draft - model": "mistral-small:24b",
"Fat Draft - custom Ollama model": "",
"Fat Draft - prompt": "/no_think\n\nYou are a detail-preserving caption merger for LoRA dataset preparation.\n\nYou receive multiple captions of the same image. You do NOT see the image.\n\nTask:\nMerge all non-contradictory caption details into one deliberately over-complete draft caption.\n\nRules:\n- Do not validate against the image.\n- Do not decide that details are false just because they appear once.\n- Do not summarize aggressively.\n- Preserve concrete details from all captions.\n- Split contradictions by choosing cautious wording or listing the alternative only when needed.\n- Prefer specific visual language over generic language.\n- Keep visible body, clothing, material, accessory, color, pose, lighting, style, and framing details.\n- Preserve doll-like, glossy/plastic-like, material, garment-construction, body-shape, and facial-feature details when present.\n- Use neutral dataset-caption language, including visible sensual styling or revealing clothing when present.\n- Do not add details absent from the captions.\n- Treat subject names or trigger-like identity tokens as optional identity labels. Preserve them only when they appear consistently in the captions; do not let them replace visible description.\n- Output only one paragraph, no notes, no JSON.",
"Fat Draft - max caption chars": 1536,
"Fat Draft - max new tokens": 3096,
"Fat Draft - temperature": 0.24,
"Fat Draft - top p": 0.9,
"Fat Draft - top k": 60,
"Validator - model": "gemma4:26b",
"Validator - custom Ollama model": "",
"Validator - system prompt": "/no_think\nYou are a direct image validation engine. Inspect the image and answer only with the requested caption.",
"Validator - prompt": "/no_think\n\nLook at the image and validate this draft caption.\n\nTask:\nReturn a corrected caption paragraph that keeps only image-supported details.\n\nRules:\n- Output only the corrected caption.\n- One paragraph.\n- No reasoning, no notes, no JSON.\n- Keep all true visible details from the draft.\n- Delete unsupported details.\n- Correct small visible errors.\n- Do not add new details unless needed to correct an error already present.\n- Preserve useful LoRA details: subject, face, hair, eyes, makeup, lips, skin texture, pose, body shape, outfit, accessories, materials, colors, lighting, background, framing, and visual style.\n- Visible sensual styling, revealing clothing, cleavage, thighs, bare skin, swimwear, lingerie, or body-shape details may be described neutrally when present.\n- Do not invent hidden anatomy, unseen clothing, explicit acts, or details contradicted by the image.",
"Validator - max new tokens": 2112,
"Validator - max image size": 1024,
"Validator - temperature": 0,
"Validator - top p": 0.92,
"Validator - top k": 80,
"Formatter - model": "mistral-small:24b",
"Formatter - custom Ollama model": "",
"Formatter - prompt": "/no_think\n\nYou are a LoRA caption format converter. The validated paragraph is your only source of truth.\n\nOutput exactly two labeled lines:\n\nSHORT: <a concise natural-language caption, typically around 100 words, that preserves all LoRA-useful validated details>\n\nTAGGY: <one compact comma-separated caption>\n\nSHORT must preserve the image's distinctive training identity across the whole source:\n1. subject, defining face/hair/body traits, and every major outfit piece/material;\n2. pose/action and key accessories or unusual visible details;\n3. setting, lighting, framing, and visual medium/style.\n\nOmit a category only when absent. Use only source details; never add, infer, euphemize, or correct. Compress wording, not category coverage. Do not copy only the source opening.\n\nAim for roughly 100 words. Keep it concise, but allow modest variation when needed to preserve important information and finish the caption naturally. Do not cut off a sentence merely to satisfy a word-count target.\n\nTAGGY must preserve all concrete LoRA-useful source details as compact comma-separated phrases.\n\nNo markdown, reasoning, notes, or other labels.",
"Formatter - max new tokens": 3200,
"Formatter - temperature": 0.12,
"Formatter - top p": 0.88,
"Formatter - top k": 50,
"Audit - write prompt JSONL": false,
"Audit - preserve raw responses": false,
"Final - TXT export format": "natural",
"Final - write TXT sidecars": true,
"Final - write JSONL": true,
"Input - single image": [
"56",
0
],
"pipeline_plan": [
"56",
1
]
},
"class_type": "JLC_CaptionForge",
"_meta": {
"title": " JLC CaptionForge Orchestrator"
}
},
"89": {
"inputs": {
"output": "",
"source": [
"88",
2
]
},
"class_type": "Display Any (rgthree)",
"_meta": {
"title": "Taggy Captions - Display Any (rgthree)"
}
}
}