Add Checkpoints Gallery with per-checkpoint generation settings

- New Checkpoint model (slug, name, checkpoint_path, data JSON, image_path)
- sync_checkpoints() loads metadata from data/checkpoints/*.json and falls
  back to template defaults for models without a JSON file
- _apply_checkpoint_settings() applies per-checkpoint steps, CFG, sampler,
  base positive/negative prompts, and VAE (with dynamic VAELoader node
  injection for non-integrated VAEs) to the ComfyUI workflow
- Bulk Create from Checkpoints: scans Illustrious/Noob model directories,
  reads matching HTML files, uses LLM to populate metadata, falls back to
  template defaults when no HTML is present
- Gallery index with batch cover generation and WebSocket progress bar
- Detail page showing Generation Settings and Base Prompts cards
- Checkpoints nav link added to layout
- New data/prompts/checkpoint_system.txt LLM system prompt
- Updated README with all current galleries and file structure
- Also includes accumulated action/scene JSON updates, new actions, and
  other template/generator improvements from prior sessions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Aodhan Collins
2026-02-26 21:25:23 +00:00
parent 0d7d4d404f
commit 0b8802deb5
334 changed files with 9437 additions and 3772 deletions

View File

@@ -2,38 +2,34 @@
"action_id": "chokehold",
"action_name": "Chokehold",
"action": {
"full_body": "dynamic combat pose, character positioning behind an opponent, executing a rear chokehold, two people grappling",
"head": "chin tucked tight, face pressed close to the opponent's head, intense or straining expression",
"eyes": "focused, narrowed in concentration",
"arms": "one arm wrapped tightly around the opponent's neck, the other arm locking the hold by gripping the bicep or clasping hands",
"hands": "clenching tight, gripping own bicep or locking fingers behind opponent's neck",
"torso": "chest pressed firmly against the opponent's back, leaning back slightly for leverage",
"pelvis": "pressed close to opponent's lower back",
"legs": "wrapped around the opponent's waist (body triangle or hooks in) or wide standing stance for stability",
"feet": "hooked inside opponent's thighs or planted firmly on the ground",
"additional": "struggle, tension, submission hold, restrictive motion, self-defense scenario"
},
"participants": {
"solo_focus": "true",
"orientation": "MF"
"full_body": "rear_naked_choke, from_behind, struggling, kneeling",
"head": "head_back, expressionless, open_mouth",
"eyes": "rolling_eyes, tearing_up, empty_eyes",
"arms": "arm_around_neck, struggling, grabbing_arm",
"hands": "clenched_hands, struggling",
"torso": "leaning_forward, arched_back",
"pelvis": "kneeling, bent_over",
"legs": "kneeling, spread_legs",
"feet": "barefoot, toes_curled",
"additional": "distress, blushing, saliva, veins"
},
"lora": {
"lora_name": "Illustrious/Poses/chokehold.safetensors",
"lora_weight": 1.0,
"lora_triggers": "chokehold"
"lora_triggers": "choke hold"
},
"tags": [
"chokehold",
"grappling",
"rear naked choke",
"fighting",
"wrestling",
"martial arts",
"restraining",
"submission",
"headlock",
"strangle",
"duo",
"struggle"
"choke_hold",
"rear_naked_choke",
"strangling",
"arm_around_neck",
"from_behind",
"struggling",
"head_back",
"clenched_teeth",
"rolling_eyes",
"drooling",
"saliva",
"ohogao"
]
}