name: check-paths description: "Audit SD.Next model-loading code for cache_dir routing on from_pretrained/from_single_file calls and verify diffusers vs HF cache path selection." argument-hint: "Optionally focus on a subset of loaders, model families, or call patterns"
Check Model Loading Cache Paths
Audit model-loading code and verify every from_pretrained(...) and from_single_file(...) call explicitly sets cache_dir to the correct cache root.
When To Use
- A loader was added or changed and its cache path needs validation
- A model family loads from the wrong local cache or redownloads unexpectedly
- Auxiliary components are loaded before the full pipeline and need to land in the HF cache
- You want a pre-PR sanity pass for model download/cache routing
Guidance
- Consult
.github/instructions/core.instructions.mdbefore proceeding. - Use existing cache-path conventions rather than introducing new ones.
Path Policy
- Full image model pipeline loads:
- Use
shared.opts.diffusers_dir - Applies to top-level pipeline
from_pretrained(...)/from_single_file(...)calls that load the full pipeline or full checkpoint into diffusers layout.
- Auxiliary model loads:
- Use
shared.opts.hfcache_dir - Applies to supporting downloads such as VAE, scheduler, processor, tokenizer, image encoder, text encoder, transformer, and other components loaded independently.
- Component-first loading before pipeline assembly:
- Use
shared.opts.hfcache_dir - Applies when a transformer, text encoder, processor, or similar component is loaded before the complete pipeline is instantiated.
Primary Files
modules/sd_models.pymodules/model*.pymodules/ui_models_load.pymodules/models_hf.pymodules/merging/**/*.pypipelines/**/*.py
Audit Goals
For each from_pretrained(...) or from_single_file(...) call, verify:
cache_diris present explicitly.- The selected cache root matches the path policy above.
- Helper wrappers preserve the correct cache choice when they forward args.
- No load path mixes full pipeline cache and auxiliary cache in a way that would scatter artifacts.
Flag issues such as:
- missing
cache_dir cache_dirset to the wrong option- component loaders using
shared.opts.diffusers_dirwhen they should useshared.opts.hfcache_dir - full pipeline loads using
shared.opts.hfcache_dir - wrapper functions dropping or overriding the intended cache path
Procedure
- Enumerate every
from_pretrainedandfrom_single_filecall in the target scope. - Classify each call as full pipeline, auxiliary component, or ambiguous wrapper.
- Confirm the explicit
cache_dirargument and compare it to the path policy. - For wrappers, trace the forwarded path to the final loader call.
- Report concrete mismatches with minimal fixes.
Reporting Format
Return findings ordered by severity:
- Missing
cache_dir - Wrong cache root for the load type
- Wrapper or forwarding bugs
- Consistency warnings
For each finding include:
- file location
- loader call
- expected cache root
- actual cache root or missing argument
- minimal fix
Also include summary counts:
- total
from_pretrainedcalls checked - total
from_single_filecalls checked - full pipeline loads checked
- auxiliary/component loads checked
- ambiguous wrapper loads checked
Pass Criteria
A full pass requires all audited loader calls to specify cache_dir and use the correct cache root for the load category.