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,36 +2,31 @@
"action_id": "femdom_held_down_illust",
"action_name": "Femdom Held Down Illust",
"action": {
"full_body": "dominant character straddling someone, pinning them to the surface, assertive posture, on top",
"head": "looking down at viewer (pov), dominance expression, chin tilted down",
"eyes": "narrowed, intense eye contact, looking down",
"arms": "extended downwards, locked elbows, exerting pressure",
"hands": "forcefully holding wrists against the surface, pinning hands, wrist grab",
"torso": "leaning forward slightly, arching back, looming over",
"pelvis": "straddling the subject's waist or chest, hips grounded",
"legs": "knees bent, kneeling on either side of the subject, thighs active",
"feet": "kneeling position, toes touching the ground or bed",
"additional": "pov, from below, power dynamic, submission, floor or bed background"
},
"participants": {
"solo_focus": "true",
"orientation": "MF"
"full_body": "girl_on_top, straddling, lying_on_back",
"head": "looking_down, looking_at_another",
"eyes": "forced_eye_contact",
"arms": "holding_another's_wrists, arms_above_head",
"hands": "grab, clenched_hands",
"torso": "on_back",
"pelvis": "straddled",
"legs": "spread_legs",
"feet": "barefoot",
"additional": "femdom, struggling, pinned, assertive_female"
},
"lora": {
"lora_name": "Illustrious/Poses/Femdom_Held_Down_Illust.safetensors",
"lora_weight": 1.0,
"lora_triggers": "Femdom_Held_Down_Illust"
"lora_weight": 0.8,
"lora_triggers": "fdom_held"
},
"tags": [
"femdom",
"held down",
"pinning",
"assertive_female",
"rough_sex",
"girl_on_top",
"straddling",
"on top",
"looking down",
"pov",
"from below",
"wrist grab",
"dominance"
"holding_another's_wrists",
"lying_on_back",
"pinned",
"struggling"
]
}