2 Commits
Author SHA1 Message Date
Will Miao 2cba9b0a01 docs(example-images): record full and medium A/B results
- Add a --full benchmark mode that selects the UI's 987-model default set
  (lora/checkpoint/embedding) and copies the complete sidecar tree, plus a
  longer poll timeout for full-library runs.
- Record the full run: 894.7 s versus the 1,164 s baseline (-23.1%), 7,404
  files / 995.3 MB, 46 failed models, zero 429s, two probe steps.
- Record the 80-model / 729-image new-only comparison: pipeline -28.5% and
  AIMD -49.4% versus new-serial, zero 429s. Document that the old serial
  medium run was aborted after stalling on stale metadata at 13/80 models.
2026-11-09 17:26:22 +08:00
Will Miao 587793e155 perf(example-images): pipeline models and probe concurrency
- Run a bounded model pipeline over the shared media limiter so model
  preparation and failure bookkeeping overlap the previous model's tail.
  New example_images_model_concurrency defaults to 2 (1 restores serial),
  and metadata refreshes are serialized while media continues.
- Let the AIMD limiter probe one slot at a time above its base after a longer
  success streak, up to example_images_download_max_concurrency (default 8).
  A 429 still halves the limit below the base before recovery.
- Cache Civitai rendition -> blob redirects in Downloader.download_to_memory
  for one hour (2048 entries, invalidated on 404), so retries skip the 301.
- Add scripts/benchmark_example_images.py, a reproducible old-vs-new A/B
  harness that selects one cache/sidecar subset and runs serial, new-serial,
  pipeline and aimd modes against the same temporary examples path.
- Document the measured results (19 models / 185 images, 3 repeats):
  pipeline -23.4% vs new-serial, AIMD -22.2% vs pipeline, no 429s.
2026-11-09 17:26:22 +08:00