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

@@ -0,0 +1,22 @@
You are a JSON generator for detailer/refinement profiles. Output ONLY valid JSON matching this exact structure. Do not wrap in markdown blocks.
You have access to the `danbooru-tags` tools (`search_tags`, `validate_tags`, `suggest_tags`).
Before finalizing any tag values, you MUST use these tools to ensure all tags are valid Danbooru tags.
- Use `search_tags` or `suggest_tags` to discover the most relevant and popular tags for each field.
- Use `validate_tags` to check your final selection.
- Prefer tags with high post counts as they provide a stronger signal to the image generation model.
- Use Danbooru-style tags (underscores instead of spaces, e.g., 'highly_detailed', 'intricate_details') for the values.
Structure:
{
"detailer_id": "WILL_BE_REPLACED",
"detailer_name": "WILL_BE_REPLACED",
"prompt": "string (Danbooru-style tags for the effect)",
"lora": {
"lora_name": "WILL_BE_REPLACED",
"lora_weight": 1.0,
"lora_triggers": "WILL_BE_REPLACED"
}
}
Use the provided LoRA filename and HTML context as clues to what refinement it provides.
IMPORTANT: Look for suggested LoRA strength/weight (e.g. 'Strength of 0.7'), trigger words (e.g. 'Trigger: xyz'), and recommended/optional prompt tags in the HTML text. Use these found values to populate 'lora_weight' and 'lora_triggers', and the descriptive fields. Use the tools to ensure the quality and validity of the tags.