快速结论:在 AMD 显卡上使用 --directml 时,--gpu-device-id 不会切换 DirectML 设备,Fooocus 仍可能继续使用核显或 0 号设备。优先检查你是否把设备号写在了 --directml 后面,而不是依赖 --gpu-device-id。
适用环境:Fooocus 2.5.5;Windows 11;Python 3.10.9(python_embeded);AMD 独显 + Intel 核显;启动参数包含 --directml;本地运行,浏览器为 Chrome。
最快修复方案:Issue 中确认有效的做法是:使用 --directml 1 这种形式为 DirectML 指定设备编号,也就是把设备号直接写在 --directml 参数后面,而不是写 --gpu-device-id 1。
注意事项:该方案来自 Issue 作者自行验证,不是官方补丁;不同 Fooocus 封装版本、DirectML 版本或设备枚举顺序可能不同。设备编号需要按你本机的实际枚举结果尝试,不能照搬示例中的 0 或 1。
问题场景
用户在 Windows 11 上本地运行 Fooocus,机器同时有 Intel 核显和 AMD 独显。启动时在 run.bat 或命令行中加入 --directml 与 --gpu-device-id <编号>,希望让 Fooocus 使用 AMD 显卡,但控制台显示的总显存只有 1024 MB,明显对应核显而不是 12 GB 的 AMD 显卡。
报错原文
[Bug]: --gpu-device-id has no effect when used with --directml on an AMD GPU
Set device to: 0
Using directml with device:
Total VRAM 1024 MB, total RAM 11703 MB
Set vram state to: NORMAL_VRAM
Always offload VRAM
Device: privateuseone
VAE dtype: torch.float32
原因分析
Fooocus 的 --gpu-device-id 参数在该场景下没有作用到 DirectML 的设备选择上。根据 Issue 作者的最终确认,使用 --directml 时,设备编号应作为 --directml 自身的可选值传入,即 --directml [DIRECTML_DEVICE];单独的 --gpu-device-id 会被忽略或无法改变 DirectML 实际绑定的设备。
另外一个容易造成误判的点是:作者后来发现 Fooocus 实际已经在使用 AMD GPU,只是软件检测到的显存被错误显示为 1 GB,因此仅凭“Total VRAM 1024 MB”并不能完全断定跑在核显上。
环境排查
- 确认启动参数中是否同时使用了
--directml和--gpu-device-id;如果是,改为把设备编号跟在--directml后面。 - 确认 Fooocus 版本:Issue 中为 2.5.5。
- 确认 Python 版本:Issue 中为 Python 3.10.9(python_embeded)。
- 确认操作系统:Issue 中为 Windows 11。
- 确认显卡组合:Intel 核显 + AMD 独显;AMD 独显实际显存为 12 GB。
- 查看启动日志中的
[System ARGV],确认实际传入的参数顺序和值是否正确。 - 如果仍怀疑设备未切换,可在任务管理器或 AMD 软件中观察运行 Fooocus 时哪块 GPU 有负载。
解决步骤
- 打开 run.bat 或你用来启动 Fooocus 的命令行脚本。
- 找到现有的
--directml以及--gpu-device-id <编号>参数。 - 不要再依赖
--gpu-device-id来切换 DirectML 设备。 - 将设备编号直接写在
--directml后面。例如想使用 1 号设备,写成--directml 1;想使用 0 号设备,写成--directml 0。 - 保存并重新启动 Fooocus。
- 观察启动日志中的
[System ARGV],确认参数已变为类似['Fooocus\\entry_with_update.py', '--directml', '1']的形式。 - 如果显存显示仍然异常,不要只看 Fooocus 显示的 VRAM 数值,进一步用系统级 GPU 监控确认实际使用的显卡。
验证方法
重新启动后,检查日志中的 [System ARGV] 是否包含你指定的 --directml <编号>。同时打开任务管理器、AMD Radeon Software 或系统 GPU 监控,运行一次生成任务,确认 AMD 独显出现明显占用或显存占用上升。若 Fooocus 仍显示 1024 MB,但系统监控显示 AMD GPU 正在工作,则说明该显示值可能不可靠,应以实际 GPU 负载为准。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


