user-directory and base-directory args being ignored in DB setup

该问题发生在 ComfyUI 数据库文件(comfyui.db)的创建路径未遵循 --user-directory 或 --base-directory 参数设置,导致数据库文件被创建在安装目录下,或在自定义路径无权限/不存在时报错。 优先排查: 检查数据库文件实际生成位置,并确认是否存在显式 --

快速结论:该问题发生在 ComfyUI 数据库文件(comfyui.db)的创建路径未遵循 --user-directory--base-directory 参数设置,导致数据库文件被创建在安装目录下,或在自定义路径无权限/不存在时报错。优先排查:检查数据库文件实际生成位置,并确认是否存在显式 --database-url 参数覆盖行为。

适用环境:ComfyUI 最新源码版本,Rocky Linux(Issue 报告环境),问题同样影响旧版本。

最快修复方案:暂无确认的一步修复方案。Issue 中提出的临时规避方法是通过 --database-url 参数指定数据库路径(例如设置为 sqlite:///:memory: 使用内存数据库),但该方案尚未被官方维护者确认为长期修复。

注意事项:临时方案可能不适用于生产环境,且内存数据库重启后数据丢失。官方修复 PR 正在开发中,需等待合并发布。

问题场景

用户全新安装 ComfyUI 后,尝试通过命令行参数 --user-directory(或 --base-directory)指定自定义用户数据目录。预期 ComfyUI 的 comfyui.db 文件会创建在该自定义路径下,但实际数据库文件被创建在安装位置的 user 文件夹内。如果自定义路径不存在或无写入权限,ComfyUI 会直接报错退出。

报错原文

user-directory and base-directory args being ignored in DB setup
ComfyUI will create the db file in the install location's user folder, and if it doesn't have permission or the user folder does not exist, it will error.

原因分析

根据 Issue 讨论,可能原因如下:

1. 路径解析优先级问题:ComfyUI 在初始化数据库连接时,未将 --user-directory / --base-directory 参数作为 SQLite 数据库文件的默认父目录,导致数据库文件回退到安装目录下。

2. 兼容性逻辑缺失:代码中保留了旧版默认数据库路径的逻辑,在有效用户目录变化时未同步更新数据库文件的新路径,也缺乏对旧数据文件的迁移处理。

3. 参数覆盖关系不明确:显式设置 --database-url 时行为正常,说明数据库路径在内部可能仅由 --database-url 控制,而用户目录参数并未参与数据库路径的拼接计算。

环境排查

  • 建议确认 ComfyUI 版本是否为最新源码(当前 main 分支)或复现问题时的具体提交版本。
  • 记录启动命令中 --user-directory--base-directory--database-url 三个参数的实际传值。
  • 检查目标自定义目录是否存在、是否对运行 ComfyUI 的系统用户具有写权限(Linux 下可使用 ls -ld <目录> 查看权限)。
  • 确认操作系统发行版与版本(Issue 报告环境为 Rocky Linux,其他 Linux 发行版、Windows、macOS 未在此 Issue 中验证)。

解决步骤

  1. 先确认数据库文件实际生成位置。正常启动 ComfyUI 后,在安装目录的 user 文件夹下查找 comfyui.db 文件。
  2. 对比启动时传入的 --user-directory 参数,确认该目录下是否只生成了默认的 default 子目录而缺少 comfyui.db 文件。
  3. 可优先尝试:在启动命令中显式追加 --database-url 参数,指定 SQLite 数据库路径(例如 --database-url sqlite:////absolute/path/to/your/comfyui.db),验证是否可绕过该 Bug。
  4. 如果不需要持久化数据库(例如仅测试流程),可设置 --database-url sqlite:///:memory: 使用内存数据库,但注意重启后数据会丢失(Issue 中用户反馈的临时方案)。
  5. 关注官方 PR 合并状态。Issue 维护者已确认将修复默认 SQLite 数据库路径,并会保留显式 --database-url 的行为,同时处理旧数据库文件迁移逻辑。

验证方法

启动 ComfyUI 后,检查自定义的 --user-directory 路径下是否生成了 comfyui.db 文件,且数据库文件路径不再出现在安装目录下。若使用 --database-url 指定了路径,确认数据库文件按该参数生成。等待官方修复 PR 合并后,可重新拉取源码测试默认参数行为是否恢复正常。

参考来源

Comfy-Org/ComfyUI #14524:user-directory and base-directory args being ignored in DB setup

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 20228

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注