Files
DemonGatanjieu-Anomalous_Mo…/docs/architecture
DemonGatanjieuandClaude Opus 5.5 6374c914b5 Scan page: last counts at once, headers kept on disk, found models listed
With many models, or models on a network drive, every visit to the scan
page read every folder and, after a restart, every new model's header
again (79 s for 1041 models on an AutoDL model disk).

api/model_heads.py keeps what each file's header says by real path, size
and time in user/anomalous/model_heads.json (at most 50,000 files, the
longest unused dropped first, written a few seconds after the last
change, only once setup_routes called keep_on_disk); get_metadata reads
headers through it, so a header is read once per file version.

scan_summary keeps the last summary (memory, and scan_summary.json when
it changed); ?quick=1 hands it out at once and the page shows it with
"showing the last counts while they are updated", then the fresh ones.
Requests meanwhile await one count (_fresh). The models found on Civitai
(components apart, at most 5000 kept) are listed by GET
/anomalous/scan_matched; the page's "Found on Civitai" count opens them,
with Civitai's name, base model, a box to find one by name and Open.

Checked on the isolated ComfyUI reading the real loras and checkpoints
read-only (scans stubbed; no file there changed): the last counts showed
at once also after a restart, the fresh ones replaced them, the found list
had 68 models with names, the box filtered, Open and Back returned to it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 22:43:44 +08:00
..

Architecture Topic Guide

Start with the repository-root ARCHITECTURE.md, then open only the topic needed for the current task.

  • backend.md: Python routes, filesystem safety, persistence, scan state, model sidecars, and backend performance.
  • frontend.md: extension bootstrap, UI ownership, localization, media lifecycle, panel state, and graph mutations.
  • recipes.md: Workflow Recipes, packages, galleries, Parameter Notebooks, prompt roles, and recipe-to-model transitions.
  • material-library.md: saved prompts and node values (material files), keeping an output image, and dragging prompts onto the canvas.
  • recipe-model-lifecycle.md: authoritative model fields, Hash synchronization, local matching, partial append, and note privacy.
  • model-resolution.md: model provenance, Model Check, hash injection, model scanning, and recovery policy.
  • ../decisions/README.md: concise records of product and architectural decisions that still explain current behavior.

These documents describe current contracts rather than implementation history. For exact changes, use Git history. For user-visible releases, use CHANGELOG.md. For recurring implementation traps, use lessons.md.