stablediffusion模型放在哪个文件夹怎么查看?三大方案路径实测
上周有个朋友在微信上问我,说他下了个 6.9GB 的 SDXL 模型,丢进硬盘之后 WebUI 刷新了三次都看不到。我让他把启动脚本发过来一看——模型扔在了 `models/` 根目录,而不是 `models/Stable-diffusion/`。这种事我见过太多次了,stablediffusion模型放在哪个文件夹怎么查看,看起来是个特别基础的问题,但因为各家工具(A1111、ComfyUI、Forge、SD.Next)目录命名规则都不一样,加上自定义路径、软链接、多盘共存这些变量,新手第一周基本都会在这上面栽一次。
核心结论摘要: A1111 WebUI 的主模型目录是 `models/Stable-diffusion`,ComfyUI 是 `ComfyUI/models/checkpoints`,两者命名不同但逻辑一致。最可靠的查看方式是调用 WebUI 的 `/sdapi/v1/sd-models` 接口,它能直接返回每个模型在磁盘上的绝对路径。
stablediffusion模型放在哪个文件夹怎么查看?三大方案目录对照
先给答案再讲原理,这一节把主流工具的目录结构一次性摊开。我把手上三套环境都翻了一遍,结果如下表——注意 A1111 系列的目录名用的是大驼峰加连字符,而 ComfyUI 全小写,这个差异直接决定了你丢错文件夹的概率。
| 工具 | 主模型(Checkpoint) | LoRA | VAE | ControlNet | |---|---|---|---|---| | A1111 WebUI | `models/Stable-diffusion` | `models/Lora` | `models/VAE` | `models/ControlNet` | | ComfyUI | `models/checkpoints` | `models/loras` | `models/vae` | `models/controlnet` | | SD.Next / Forge | `models/Stable-diffusion` | `models/Lora` | `models/VAE` | `models/ControlNet` | | HuggingFace diffusers | `~/.cache/huggingface/hub` | 同左 | 同左 | 同左 |
SD.Next 和 Forge 都是 A1111 的分支,目录结构基本继承,所以如果你是从 WebUI 迁移过去的,模型文件夹不用动,直接指过去就行。HuggingFace 的 diffusers 库走的是另一套逻辑——它按仓库哈希缓存,路径长得像 `models--stabilityai--stable-diffusion-xl-base-1.0`,跟 WebUI 那套完全不是一回事,这也是很多人用 diffusers 写脚本时找不到模型的原因。
路径这件事,为什么总能把人绕进去
坦白讲,这个问题本身没什么技术难度,但它踩中的是「约定不统一」这个老大难。
我在实际项目里同时跑 A1111 和 ComfyUI 有一年多,最开始是各存一份模型——两个 6.9GB 的 SDXL 加一堆 LoRA,硬盘直接告急。后来改成软链接,又踩了 Windows 路径长度限制的坑(超过 260 字符的路径在某些 Python 版本下会直接报错)。再后来用 ComfyUI 的 `extra_model_paths.yaml` 做路径共享,才算彻底解决。
更深一层的问题是:很多人的 Stable Diffusion 是别人帮忙装的,或者用的是整合包。整合包为了简化操作,经常把模型目录重定向到别的盘,甚至用启动参数 `--ckpt-dir` 硬指定。这种情况下你按标准路径去找,必然是空的。所以「怎么查看」这件事的真正难点不是记住文件夹名字,而是知道去哪里确认这台机器上的实际配置。
根据 AUTOMATIC1111 官方仓库 2024 年 7 月发布的 v1.10.1 版本说明,主模型目录仍定义为 `models/Stable-diffusion`,同时支持通过 `--ckpt-dir` 启动参数覆盖。记住这句话,后面所有排查都围绕它展开。
四种查看方法,按你的场景挑一个
方法一:在 WebUI 界面里点两下
最省事的办法。打开 WebUI,在左上角的模型下拉框旁边有个刷新按钮(🔄 图标),点一下会重新扫描目录。模型能出现在列表里,说明路径是对的。
但这个方法的局限也很明显:它只显示文件名,不显示路径。你没法确认这个文件到底在 C 盘还是 E 盘。所以它适合「验证」,不适合「定位」。
顺便说个进阶技巧:如果你想知道某张已生成的图用了哪个模型,把 PNG 拖进 PNG Info 标签页,它会解析出模型名称和哈希值,再配合后面的 API 方法就能反查到具体路径。
方法二:调 API,一次列出所有模型和绝对路径
这是我目前最推荐的方式,也是唯一能批量拿到绝对路径的方法。A1111 从早期版本就开放了 REST API,只要 WebUI 处于运行状态,直接在浏览器或终端里请求即可。
列出所有主模型(checkpoint)的完整信息,含 filename 绝对路径
curl -s http://127.0.0.1:7860/sdapi/v1/sd-models | python -m json.tool
列出所有 LoRA
curl -s http://127.0.0.1:7860/sdapi/v1/loras
如果模型比较多,用 Python 脚本一次盘点四类资源更清爽:
import requests # 需要先 pip install requests
BASE = "http://127.0.0.1:7860" # WebUI 默认端口,改过端口的话记得同步修改
def show(endpoint): """请求指定接口并打印每个模型的磁盘路径""" try: data = requests.get(f"{BASE}/sdapi/v1/{endpoint}", timeout=10).json() except Exception as e: print(f"[跳过] {endpoint}: {e}") return if not isinstance(data, list): print(f"[跳过] {endpoint}: 返回结构不是列表,可能接口不存在") return for item in data:
不同接口的字段名有差异,这里做兼容取值
path = item.get("filename") or item.get("path") or item.get("name") print(f"{endpoint:10s} -> {path}")
show("sd-models") # 主模型,返回 filename 字段,是绝对路径 show("loras") # LoRA,返回 path 字段
跑完之后你会拿到类似 `E:\sd-webui\models\Stable-diffusion\sd_xl_base_1.0.safetensors` 这样的完整路径。这个方法的好处是:不管你的目录被启动参数重定向到了哪里,API 返回的都是真实生效的路径。
方法三:命令行直接扫盘
如果你连 WebUI 都打不开(比如模型加载报错导致启动失败),那就只能从文件系统层面找了。
Windows 下用 CMD:
:: 递归搜索指定目录下所有 safetensors 主模型 dir /s /b "E:\sd-webui\models\Stable-diffusion\*.safetensors"
Linux 或 macOS 下:
限定两层深度,找出所有模型文件
find ~/sd-webui/models -maxdepth 2 \( -name ".safetensors" -o -name ".ckpt" \) -print
顺便看看各子目录占了多少空间,快速判断模型堆在哪
du -sh ~/sd-webui/models/* | sort -h
Windows 用户如果嫌 `dir` 太慢,装个 Everything 搜索 `*.safetensors`,秒出结果。这工具我用下来是真好用,搜索 4TB 硬盘只要几秒。
方法四:翻启动脚本和配置文件
有些整合包会把路径写死在启动脚本里。打开 `webui-user.bat`(Windows)或 `webui-user.sh`(Linux/macOS),看 `COMMANDLINE_ARGS` 这一行:
常见于整合包,这行会把主模型目录改成 E 盘的某个位置
set COMMANDLINE_ARGS=--ckpt-dir "E:\models\SD" --lora-dir "E:\models\LoRA"
只要出现 `--ckpt-dir`、`--lora-dir`、`--vae-dir` 这类参数,标准目录就失效了,一切以参数为准。
ComfyUI 用户:用 extra_model_paths.yaml 共享路径
上一节讲的方法都是 A1111 体系的。ComfyUI 走的是另一套哲学——它默认只认自己 `models/` 目录下的东西,但提供了一个官方的路径映射文件。
这个文件叫 `extra_model_paths.yaml`,放在 ComfyUI 根目录下。官方仓库里有个 `extra_model_paths.yaml.example` 模板可以参考,照着改就行:
改完重启 ComfyUI,节点里的模型下拉框就能直接看到 A1111 那边的模型了。这个方案我用了大半年,省下了将近 80GB 的重复存储空间。
顺带提一句,A1111 在 1.6 版本之后把放大模型目录从 `models/ESRGAN` 挪到了 `models/RealESRGAN`,GFPGAN 和 CodeFormer 也各自独立成目录。升级过版本的话,老路径可能是空的,别以为自己文件丢了。
我踩过的三个坑
坑一:文件名里的空格和中文。 有个朋友把模型命名为「二次元 通用 v2.safetensors」,结果 LoRA 能加载、主模型死活不认。排查了半天发现是启动脚本里的引号没加对。模型文件名建议只用英文、数字、下划线。
坑二:`.ckpt` 和 `.safetensors` 混放。 A1111 能识别两种格式,但 `.ckpt` 存在反序列化执行代码的安全风险,加载速度也更慢。Stability AI 从 SDXL 1.0(2023 年 7 月发布)开始就只提供 `.safetensors` 格式了,新模型建议别再用 `.ckpt`。
坑三:模型出现在下拉框但生成报错。 这通常不是路径问题,而是模型文件下载不完整。比对一下文件体积——SDXL Base 约为 6.9GB,SD 1.5 约为 4GB,明显偏小就是下载中断了。
四种查看方式横向对比
| 查看方式 | 适合场景 | 上手难度 | 能否拿到绝对路径 | |---|---|---|---| | WebUI 界面刷新 | 只想确认模型有没有被识别 | ★ | 否,仅显示文件名 | | API 接口查询 | 批量盘点、脚本化运维 | ★★★ | 是 | | 命令行扫描 | 多磁盘环境、WebUI 打不开 | ★★ | 是 | | 启动参数 / 配置文件 | 排错、确认是否被重定向 | ★★ | 是 |
如果你是刚入门,先用方法一确认模型被识别,再用方法二拿到确切路径,两次操作加起来不超过三分钟。经常切换工具的话,VergeX AI工具导航 上有整理好的各类 AI 绘画工具入口,省去逐个搜索的时间。
适用人群与推荐场景
- **纯新手**:记住 `models/Stable-diffusion` 这一个路径就够了,其余目录等用到再查。
- **多工具玩家**:务必上 `extra_model_paths.yaml`,一套模型喂多个工具。
- **做批量出图的团队**:走 API 路线,可以把模型盘点写进部署脚本,每次上线前自动校验路径。
- **Mac / Linux 用户**:注意权限问题,模型目录如果属于 root,WebUI 以普通用户身份跑是读不到的。
写在最后
回过头看,stablediffusion模型放在哪个文件夹怎么查看这个问题,答案本身只有一行,但要真正搞清楚,需要理解三件事:工具默认约定、启动参数覆盖、以及多工具之间的路径共享机制。第一件靠记忆,后两件靠查——而查的最好办法就是 API 或者配置文件。
Stable Diffusion 生态这两年在往「少配置、多兼容」的方向走,ComfyUI 的路径映射和 Forge 对 A1111 目录的完全继承都是这个趋势的体现。我猜再过一两年,这类路径问题会像今天的手动配置显卡驱动一样,逐渐变成没人需要关心的历史细节。
关键要点速览
- A1111 主模型目录:`models/Stable-diffusion`;ComfyUI:`models/checkpoints`
- 最快拿到绝对路径的方法:`GET /sdapi/v1/sd-models`
- 存在 `--ckpt-dir` 启动参数时,标准目录失效,以参数为准
- ComfyUI 通过 `extra_model_paths.yaml` 共享 A1111 模型库,可省下大量磁盘空间
- 模型体积异常偏小,通常意味着下载不完整而非路径错误
相关推荐
继续深入阅读
- 想系统了解 AI

