Stable Diffusion Model Folders: A1111, Forge & ComfyUI
Where checkpoints, LoRAs, VAEs, embeddings, ControlNets and upscalers go across AUTOMATIC1111, SD.Next/Forge, and ComfyUI — and how to share one library.
On this page
TL;DR
- A1111 uses
models/Stable-diffusion,models/Lora,embeddings/,models/VAE,models/ESRGAN— all relative to its install folder. - ComfyUI uses
models/checkpoints,models/loras,models/vae,models/embeddings,models/controlnet,models/upscale_models. - SD.Next (Forge) inherits A1111's layout but only documents
--models-dir,--data-dir, and--ckptflags explicitly. - Share one library: point A1111's
--models-dirand ComfyUI'sextra_model_paths.yamlto a common root, or use symlinks/junctions (macOS: Option+Cmd drag; Linux:ln -sf; Windows:mklink /J).
See the Quick Reference Tables, File Extensions, and Sharing Models sections.
Why This Matters
You download a checkpoint, a LoRA, a VAE, an embedding, a ControlNet model, and an upscaler. Each UI expects them in different places. If you run AUTOMATIC1111 (A1111), ComfyUI, and SD.Next/Forge side by side, you either triplicate gigabytes of files or you learn the mapping once and share a single folder tree.
This article gives you the exact paths, the CLI flags that override them, the file extensions each UI actually recognises, and the two practical ways to keep one canonical model library. For background on model formats, see Understanding Model Formats.
Quick Reference Tables
A1111 (AUTOMATIC1111 WebUI)
| Model type | Default folder (relative to install) | File extensions (official) | CLI override | Source |
|---|---|---|---|---|
| Checkpoints (base models) | models/Stable-diffusion | .ckpt, .safetensors | --ckpt-dir | A1111 Features wiki |
| LoRA / LyCORIS (v1.5+) | models/Lora | .pt, .safetensors | --lora-dir | A1111 CLI Arguments |
| LoRA / LyCORIS (pre-v1.5) | models/LyCORIS | .safetensors (community-reported) | — | Civitai article 1446 |
| Textual Inversion embeddings | embeddings/ | .pt, images | --embeddings-dir | A1111 Features wiki |
| VAE | models/VAE (convention; --vae-dir defaults to None) | .ckpt, .pt, .bin, .safetensors for A1111 (unofficial, community-observed); ComfyUI folder_paths.py accepts all supported_pt_extensions | --vae-dir, --vae-path | A1111 CLI Arguments |
| Upscalers (ESRGAN, RealESRGAN, SwinIR, BSRGAN, ScuNET, LDSR, DAT) | models/ESRGAN, models/RealESRGAN, models/SwinIR, … | .pth most common; no extension restriction in CLI flags | --esrgan-models-path, --realesrgan-models-path, etc. | A1111 CLI Arguments |
| Hypernetworks | models/hypernetworks | .pt, .ckpt, .safetensors | --hypernetwork-dir | A1111 Features wiki |
| ControlNet | Extension-dependent (not in core docs) | — | — | — |
ComfyUI
| Model type | Default folder (relative to ComfyUI root) | File extensions (from folder_paths.py) | Source |
|---|---|---|---|
| Checkpoints | models/checkpoints | .ckpt, .pt, .pt2, .bin, .pth, .safetensors, .pkl, .sft | ComfyUI folder_paths.py |
| LoRA | models/loras | Same as above | ComfyUI folder_paths.py |
| VAE | models/vae | Same as above | ComfyUI folder_paths.py |
| Textual Inversion embeddings | models/embeddings | Same as above | ComfyUI folder_paths.py |
| ControlNet / T2I-Adapter | models/controlnet, models/t2i_adapter | Same as above | ComfyUI folder_paths.py |
| Upscalers | models/upscale_models | Same as above | ComfyUI folder_paths.py |
SD.Next (Forge)
| Flag | Default | Notes | Source |
|---|---|---|---|
--models-dir | models/ | Base directory for all model categories | SD.Next CLI Arguments |
--data-dir | ./ | Base for user data; overridden by --models-dir | SD.Next CLI Arguments |
--ckpt | — | Single checkpoint to load at startup | SD.Next CLI Arguments |
Subfolder conventions (LoRA, VAE, embeddings, ControlNet) are not explicitly documented in the public CLI reference; the project is an A1111 fork and in practice mirrors A1111's layout.
File Extensions: What Actually Works
| Extension | A1111 | ComfyUI | Notes | Source |
|---|---|---|---|---|
.safetensors | ✅ Checkpoints, LoRA, VAE | ✅ All types | Preferred; safe, fast, tamper-evident | ComfyUI folder_paths.py |
.ckpt | ✅ Checkpoints | ✅ All types | Legacy PyTorch pickle; can contain arbitrary code — only load trusted files | ComfyUI folder_paths.py |
.pt / .bin | ✅ LoRA, embeddings, hypernetworks | ✅ All types | Legacy PyTorch format | ComfyUI folder_paths.py |
.pth | ✅ Upscalers (ESRGAN etc.) | ✅ All types | Common for upscaler models | A1111 CLI Arguments |
.sft | ❓ | ✅ All types | Rare; ComfyUI recognises it | ComfyUI folder_paths.py |
A1111's "Extra networks" table lists only .pt and .safetensors for LoRA, .pt and images for embeddings, and .pt/.ckpt/.safetensors for hypernetworks. It does not list .safetensors for embeddings, though community sources claim it works. ComfyUI's supported_pt_extensions set includes everything above for every model category.
How to Share One Model Library Across All Three UIs
Method 1: Point Each UI at a Common Root (Recommended)
- Pick a canonical folder, e.g.
~/ai/models/with subfolders:
~/ai/models/
├── checkpoints/
├── loras/
├── vae/
├── embeddings/
├── controlnet/
└── upscale_models/
- A1111 / SD.Next: launch with
--models-dir ~/ai/models(A1111) or--models-dir ~/ai/models(SD.Next). This makes every relative subfolder (Stable-diffusion,Lora,VAE,ESRGAN, etc.) resolve under that root.
- ComfyUI: copy
extra_model_paths.yaml.exampletoextra_model_paths.yamlin the ComfyUI root, then edit thea1111:section:
a1111:
base_path: /home/you/ai/models # or C:\Users\you\ai\models
checkpoints: checkpoints
loras: loras
vae: vae
embeddings: embeddings
controlnet: controlnet
upscale_models: upscale_models
ComfyUI will now search those exact subfolders.
Why this works: A1111's--models-diroverrides--data-dirand becomes the base for all relative model paths. ComfyUI'sextra_model_paths.yamlis explicitly designed for this cross-UI mapping; see the example file and the ComfyUI README.
Method 2: Symlinks / Junctions (No Config Changes)
If you prefer to keep each UI's default folder structure, create links from each UI's expected locations to your canonical library.
| OS | Command / Action | Source |
|---|---|---|
| macOS | In Finder: hold Option (⌥) + Command (⌘) while dragging a model file/folder from the source to the target — creates an alias. Or terminal: ln -s ~/ai/models/checkpoints ~/stable-diffusion-webui/models/Stable-diffusion | A1111 Change model folder wiki |
| Linux | ln -sf ~/ai/models/checkpoints ~/stable-diffusion-webui/models/Stable-diffusion | A1111 Change model folder wiki |
| Windows (Admin) | mklink /J "C:\stable-diffusion-webui\models\Stable-diffusion" "C:\ai\models\checkpoints" (junction for directories) | A1111 Change model folder wiki |
Common Errors and Fixes
| Symptom | Cause | Fix | Source |
|---|---|---|---|
LoRA/LoHA/LoCon files in models/LyCORIS invisible in A1111 v1.5+ | Since v1.5, all LyCORIS-family networks are served from models/Lora | Move .safetensors files from models/LyCORIS to models/Lora | A1111 Features wiki |
VAE as .safetensors in models/VAE won't load in A1111 | A1111's VAE loader is finicky with some .safetensors files | Convert VAE to .ckpt/.pt or use a known-compatible file; --vae-path loads a specific file, --vae-dir scans a directory for VAE candidates | A1111 CLI Arguments |
| ComfyUI shows no models after copying files to A1111 folders | ComfyUI doesn't auto-scan A1111 directories | Create extra_model_paths.yaml from the example and uncomment the a1111: section with your A1111 base path | ComfyUI README |
Upscaler .pth files in models/Stable-diffusion don't appear in ESRGAN tab | Each upscaler type has its own subfolder (ESRGAN, RealESRGAN, SwinIR, BSRGAN, ScuNET, LDSR, DAT) | Move files to the correct subfolder under models/ | A1111 CLI Arguments |
FAQ
Where do I put my LoRA files in AUTOMATIC1111? models/Lora (since v1.5; earlier versions used models/LyCORIS for LyCORIS-family networks).
Can I use the same model folder for both ComfyUI and A1111? Yes. Either launch A1111 with --models-dir pointing to a shared root and configure ComfyUI's extra_model_paths.yaml to map the same subfolders, or create symlinks/junctions from each UI's default folders to a canonical library. See Method 1. Related: Optimising VRAM Usage.
What file extension do VAE models use? .ckpt, .pt, .bin, and .safetensors all occur in the wild. ComfyUI accepts all of them for VAEs (per folder_paths.py). A1111's docs don't publish an official VAE extension list; the CLI flags pass the file to the loader which handles multiple formats.
Why did LyCORIS move from models/LyCORIS to models/Lora in A1111? Version 1.5 added a built-in extension that treats LoHA, LoKR, LoCon, and other LyCORIS-family networks as "Lora" extra networks, consolidating them into one directory. See the Features wiki. For training context, see LoRA Training Guide.
How do I share one model library across multiple Stable Diffusion UIs? See Method 1: point A1111/SD.Next --models-dir and ComfyUI extra_model_paths.yaml at a common folder tree, or use symlinks/junctions from each UI's default folders to a canonical library. Related: Optimising VRAM Usage.
Where does ControlNet look for its models? In A1111, ControlNet is an extension — its model directory is configured within the extension's own settings, not by core A1111, and varies by extension version. A common convention seen in community setups is models/ControlNet, but no single canonical path is documented in core A1111 docs. In ComfyUI, the core folder_paths.py maps controlnet to models/controlnet and t2i_adapter to models/t2i_adapter.
Is .ckpt safe or should I convert to .safetensors? .ckpt uses Python's pickle format, which can execute arbitrary code on load. Only load .ckpt files from trusted sources. .safetensors is designed to be safe and is faster to load; convert when possible (e.g., the safetensors Python CLI).
What's Not Documented (Gaps)
- A1111 ControlNet default path — not in core wiki; extension-specific.
- SD.Next subfolder defaults — only top-level
--models-dir,--data-dir,--ckptare documented. - Whether A1111 loads
.safetensorsembeddings — the Features table lists only.ptand images forembeddings/, but community reports say.safetensorsworks. - A1111 VAE default folder —
--vae-dirdefaults toNone;models/VAEis a community convention, not a documented default. - Changelog for model-path changes — only the LyCORIS→Lora migration (v1.5) is confirmed.
Sources
- A1111 CLI Arguments wiki — https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Command-Line-Arguments-and-Settings
- A1111 Change model folder location wiki — https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Change-model-folder-location
- A1111 Features wiki (Extra networks table) — https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features#extra-networks
- ComfyUI README — https://github.com/comfyanonymous/ComfyUI/blob/master/README.md
- ComfyUI folder_paths.py — https://raw.githubusercontent.com/comfyanonymous/ComfyUI/master/folder_paths.py
- ComfyUI extra_model_paths.yaml.example — https://raw.githubusercontent.com/comfyanonymous/ComfyUI/master/extra_model_paths.yaml.example
- SD.Next CLI Arguments — https://vladmandic.github.io/sdnext-docs/CLI-Arguments/
- Civitai models page (model type taxonomy) — https://civitai.com/models
- Civitai article 1446 (community file-structure guide) — https://civitai.com/articles/1446