ArtificialGuyBR

Home / Blog / Fixing things

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.

9 sources cited Fixing things

TL;DR

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 typeDefault folder (relative to install)File extensions (official)CLI overrideSource
Checkpoints (base models)models/Stable-diffusion.ckpt, .safetensors--ckpt-dirA1111 Features wiki
LoRA / LyCORIS (v1.5+)models/Lora.pt, .safetensors--lora-dirA1111 CLI Arguments
LoRA / LyCORIS (pre-v1.5)models/LyCORIS.safetensors (community-reported)Civitai article 1446
Textual Inversion embeddingsembeddings/.pt, images--embeddings-dirA1111 Features wiki
VAEmodels/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-pathA1111 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
Hypernetworksmodels/hypernetworks.pt, .ckpt, .safetensors--hypernetwork-dirA1111 Features wiki
ControlNetExtension-dependent (not in core docs)

ComfyUI

Model typeDefault folder (relative to ComfyUI root)File extensions (from folder_paths.py)Source
Checkpointsmodels/checkpoints.ckpt, .pt, .pt2, .bin, .pth, .safetensors, .pkl, .sftComfyUI folder_paths.py
LoRAmodels/lorasSame as aboveComfyUI folder_paths.py
VAEmodels/vaeSame as aboveComfyUI folder_paths.py
Textual Inversion embeddingsmodels/embeddingsSame as aboveComfyUI folder_paths.py
ControlNet / T2I-Adaptermodels/controlnet, models/t2i_adapterSame as aboveComfyUI folder_paths.py
Upscalersmodels/upscale_modelsSame as aboveComfyUI folder_paths.py

SD.Next (Forge)

FlagDefaultNotesSource
--models-dirmodels/Base directory for all model categoriesSD.Next CLI Arguments
--data-dir./Base for user data; overridden by --models-dirSD.Next CLI Arguments
--ckptSingle checkpoint to load at startupSD.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

ExtensionA1111ComfyUINotesSource
.safetensors✅ Checkpoints, LoRA, VAE✅ All typesPreferred; safe, fast, tamper-evidentComfyUI folder_paths.py
.ckpt✅ Checkpoints✅ All typesLegacy PyTorch pickle; can contain arbitrary code — only load trusted filesComfyUI folder_paths.py
.pt / .bin✅ LoRA, embeddings, hypernetworks✅ All typesLegacy PyTorch formatComfyUI folder_paths.py
.pth✅ Upscalers (ESRGAN etc.)✅ All typesCommon for upscaler modelsA1111 CLI Arguments
.sft✅ All typesRare; ComfyUI recognises itComfyUI 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

  1. Pick a canonical folder, e.g. ~/ai/models/ with subfolders:
   ~/ai/models/
   ├── checkpoints/
   ├── loras/
   ├── vae/
   ├── embeddings/
   ├── controlnet/
   └── upscale_models/
  1. 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.
  1. ComfyUI: copy extra_model_paths.yaml.example to extra_model_paths.yaml in the ComfyUI root, then edit the a1111: 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-dir overrides --data-dir and becomes the base for all relative model paths. ComfyUI's extra_model_paths.yaml is explicitly designed for this cross-UI mapping; see the example file and the ComfyUI README.

If you prefer to keep each UI's default folder structure, create links from each UI's expected locations to your canonical library.

OSCommand / ActionSource
macOSIn 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-diffusionA1111 Change model folder wiki
Linuxln -sf ~/ai/models/checkpoints ~/stable-diffusion-webui/models/Stable-diffusionA1111 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

SymptomCauseFixSource
LoRA/LoHA/LoCon files in models/LyCORIS invisible in A1111 v1.5+Since v1.5, all LyCORIS-family networks are served from models/LoraMove .safetensors files from models/LyCORIS to models/LoraA1111 Features wiki
VAE as .safetensors in models/VAE won't load in A1111A1111's VAE loader is finicky with some .safetensors filesConvert VAE to .ckpt/.pt or use a known-compatible file; --vae-path loads a specific file, --vae-dir scans a directory for VAE candidatesA1111 CLI Arguments
ComfyUI shows no models after copying files to A1111 foldersComfyUI doesn't auto-scan A1111 directoriesCreate extra_model_paths.yaml from the example and uncomment the a1111: section with your A1111 base pathComfyUI README
Upscaler .pth files in models/Stable-diffusion don't appear in ESRGAN tabEach 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)


Sources

  1. A1111 CLI Arguments wiki — https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Command-Line-Arguments-and-Settings
  2. A1111 Change model folder location wiki — https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Change-model-folder-location
  3. A1111 Features wiki (Extra networks table) — https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features#extra-networks
  4. ComfyUI README — https://github.com/comfyanonymous/ComfyUI/blob/master/README.md
  5. ComfyUI folder_paths.py — https://raw.githubusercontent.com/comfyanonymous/ComfyUI/master/folder_paths.py
  6. ComfyUI extra_model_paths.yaml.example — https://raw.githubusercontent.com/comfyanonymous/ComfyUI/master/extra_model_paths.yaml.example
  7. SD.Next CLI Arguments — https://vladmandic.github.io/sdnext-docs/CLI-Arguments/
  8. Civitai models page (model type taxonomy) — https://civitai.com/models
  9. Civitai article 1446 (community file-structure guide) — https://civitai.com/articles/1446