[Bug] Restart command strips quotes from CLI arguments containing spaces

在 ComfyUI 启动时使用了带空格的 CLI 参数(例如 --browser-profile "Profile 1" )时,通过 ComfyUI-Manager 的 Restart 按钮重启会丢失参数引号,导致 main.py 报错;优先排查重启命令是否重新对 sys.argv 各参数做了引号处

快速结论:在 ComfyUI 启动时使用了带空格的 CLI 参数(例如 --browser-profile "Profile 1")时,通过 ComfyUI-Manager 的 Restart 按钮重启会丢失参数引号,导致 main.py 报错;优先排查重启命令是否重新对 sys.argv 各参数做了引号处理。

适用环境:Issue 中明确涉及的是 ComfyUI + ComfyUI-Manager(含 v4 分支);实测细节为 Windows 11 下 os.execv 拼接参数的行为。Python、CUDA、显卡等版本 Issue 未给出。

最快修复方案:更新 ComfyUI-Manager。主分支已由 #3488(提交 ecc09f1a)修复;v4 分支由 #3499(提交 ad3a2b86)修复。PyPI 上的 4.3 尚未包含该修复,需等待下一个 v4 版本发布。

注意事项:v4 版本在修复发布前更新 Manager 不会生效;Linux/macOS 下参数原本就是原样传递,此问题主要影响 Windows 的 os.execv 路径。Issue 中提到的第三方重启扩展仅作为替代实现,作者本人声明未验证是否能修复 Manager 本身的问题。

问题场景

用户启动 ComfyUI 时带入了包含空格的命令行参数(例如自定义浏览器配置 --browser-path "C:\...\chrome.exe" --browser-profile "Profile 1"),随后在 ComfyUI-Manager 中安装或更新自定义节点,并点击 UI 的 Restart 按钮重启。Manager 在重启前根据 sys.argv 重建启动命令,重建过程中引号被剥离,重启后 ComfyUI 启动失败。

报错原文

main.py: error: unrecognized arguments: 1
Command: [..., '--browser-profile', 'Profile 1']

原因分析

sys.argv 中的每个元素在 Python 初始化时已经丢失了 shell 层面的原始引号。Manager 直接用空格把元素拼接成一行命令,未做转义或重新加引号,因此 Profile 1 在重启时被拆成两个参数。在 Windows 上,os.execv 本身也是用空格拼接参数且不加引号,最终只有手动加引号的解释器和脚本路径得以保留。

从 Issue 的复现输出看,Profile 1 在重启时被解析为 Profile 与 1 两个值,main.py 因此将 1 视为未知参数。任何依赖空格分隔取值的 CLI 开关都可能触发此问题。

环境排查

  • 确认 ComfyUI-Manager 版本:主分支需更新到包含 ecc09f1a 的版本;v4 需确认是否高于尚未发布的 4.3。
  • 确认操作系统:Windows 下 os.execv 的参数拼接行为是触发关键;Linux/macOS 参数原样传递,一般不受影响。
  • 确认启动命令中是否存在带空格的参数,尤其是自定义浏览器相关路径与 profile 名称。
  • 确认是python main.py 方式启动还是 python -m 方式启动;Issue 提到修复后 python -m 且 Python 路径含空格的情况也能正常重启。

解决步骤

  1. 更新 ComfyUI-Manager 到包含修复的版本:主分支使用 #3488(ecc09f1a)之后的版本。
  2. 若使用 v4,请等待包含 #3499(ad3a2b86)的下一个 v4 版本发布后再更新;PyPI 上的 4.3 尚未包含。
  3. 更新后,用带空格的参数重新启动 ComfyUI,例如 python main.py --browser-profile "Profile 1"。
  4. 点击 Manager 的 Restart 按钮重启,观察重启命令与启动结果。
  5. 如需在不改动 Manager 的前提下做对照测试,可尝试 Issue 中提到的第三方重启扩展 ComfyUI Restart Control,但其是否能修复该场景未经作者验证。

验证方法

在 Windows 11 上按 Issue 的复现方式重启后,重启参数应为 --browser-profile, Profile 1(修复前为 --browser-profile, Profile, 1),且 main.py 不再报 unrecognized arguments: 1。此外可检查包含引号或末尾反斜杠的参数、空参数,以及从含空格的 Python 路径以 python -m 启动后能否正常重启。

参考来源

ltdrdata/ComfyUI-Manager #3339

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 34619

发表回复

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