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

25
trigger_bulk.py Normal file
View File

@@ -0,0 +1,25 @@
import requests
import time
import subprocess
import os
# Start the server
proc = subprocess.Popen(['./venv/bin/python3', 'app.py'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
time.sleep(10) # Wait for server to start
try:
print("Triggering bulk actions creation...")
r = requests.post('http://127.0.0.1:5000/actions/bulk_create', data={'overwrite': 'true'})
print(f"Actions status: {r.status_code}")
print("Triggering bulk styles creation...")
r = requests.post('http://127.0.0.1:5000/styles/bulk_create', data={'overwrite': 'true'})
print(f"Styles status: {r.status_code}")
print("Triggering bulk detailers creation...")
r = requests.post('http://127.0.0.1:5000/detailers/bulk_create', data={'overwrite': 'true'})
print(f"Detailers status: {r.status_code}")
finally:
proc.terminate()