Fedora 43上的ComfyUI:双虚拟环境 + 一键启动(2026年3月)

目标:保留两个Python虚拟环境(例如3.12和3.14)以确保兼容性,但通过一个简洁、轻量的配置自动启动ComfyUI。
已发布:
Aleksandar Stajić
已更新: 2026年3月1日 10:36
Fedora 43上的ComfyUI:双虚拟环境 + 一键启动(2026年3月)

配图

Fedora 43 上的 ComfyUI:两个虚拟环境 + 一键启动(2026年3月)

日期:2026年3月
操作系统:Fedora 43
目标:保留两个 Python 虚拟环境(例如 3.12 + 3.14)以实现兼容性,但通过一个干净、轻量级的设置自动启动 ComfyUI。

企业交付操作系统

本指南是企业交付操作系统系列的一部分。使用这些分类中心来导航整个技术栈(基础设施 → 工作流 → 治理)。

架构

企业交付操作系统的参考架构。

DevOps 与运行时

部署、服务、端口、运行时操作和可重复性。

AI 工具与自动化

本地 AI 技术栈、编排、自动化和稳定的工作流。

安全与合规

本地 AI 系统的权限、加固和安全默认设置。

可观测性与性能

性能调优、监控、VRAM/RAM 预算和稳定性。

为什么保留两个虚拟环境?

AI 工具发展迅速。一些节点和 wheel 包落后于最新的 Python 版本,而另一些则需要它。

  • Python 3.12 虚拟环境 → “稳定且兼容”(TensorRT/LW wheels/Lightning 通常更适配)
  • Python 3.14 虚拟环境 → 拥有最新功能,但缺少更多 wheel 包 / 导入问题更常见

规则:切勿在虚拟环境之间混合安装。始终从你打算使用的虚拟环境中运行 ComfyUI。

设置:每个虚拟环境一个脚本

创建一个小的启动器脚本,它:
1) 切换到 ComfyUI 文件夹
2) 激活选定的虚拟环境
3) 在 localhost 上运行 ComfyUI

1) 为 Python 3.12 虚拟环境创建一个启动器

mkdir -p ~/.local/bin

cat > ~/.local/bin/comfyui-start-312.sh <<'EOF'
#!/usr/bin/env bash
set -euo pipefail

cd /home/x/ai/ComfyUI
source /home/x/ai/ComfyUI/.venv312/bin/activate
exec python main.py --listen 127.0.0.1 --port 8188
EOF

chmod +x ~/.local/bin/comfyui-start-312.sh

2) (可选)为 Python 3.14 虚拟环境创建一个启动器

cat > ~/.local/bin/comfyui-start-314.sh <<'EOF'
#!/usr/bin/env bash
set -euo pipefail

cd /home/x/ai/ComfyUI
source /home/x/ai/ComfyUI/.venv/bin/activate
exec python main.py --listen 127.0.0.1 --port 8189
EOF

chmod +x ~/.local/bin/comfyui-start-314.sh

现在你可以不加思索地运行任一版本:

  • ~/.local/bin/comfyui-start-312.sh
  • ~/.local/bin/comfyui-start-314.sh

自动启动:systemd 用户服务(最佳选项)

这会在登录时启动 ComfyUI,崩溃时重启,并保持最简化(无需 root,无重型包装器)。

1) 为 3.12 创建用户服务

mkdir -p ~/.config/systemd/user

cat > ~/.config/systemd/user/comfyui312.service <<'EOF'
[Unit]
Description=ComfyUI (Python 3.12 venv)
After=network.target

[Service]
Type=simple
WorkingDirectory=/home/x/ai/ComfyUI
ExecStart=/home/x/.local/bin/comfyui-start-312.sh
Restart=on-failure
RestartSec=2
Environment=PYTHONUNBUFFERED=1

[Install]
WantedBy=default.target
EOF

2) 启用 + 启动

systemctl --user daemon-reload
systemctl --user enable --now comfyui312.service
systemctl --user status comfyui312.service --no-pager

3) 日志(调试)

journalctl --user -u comfyui312.service -f

(如果你也需要 3.14 服务,请重复上述步骤,使用 comfyui314.service 和另一个脚本。)

一键 GUI:桌面启动器(在浏览器中打开 ComfyUI)

这会在你的菜单中创建一个应用条目。点击它:
1) 启动服务
2) 在浏览器中打开 UI

mkdir -p ~/.local/share/applications

cat > ~/.local/share/applications/comfyui.desktop <<'EOF'
[Desktop Entry]
Type=Application
Name=ComfyUI (Local)
Comment=Start ComfyUI and open the UI
Exec=sh -lc 'systemctl --user start comfyui312.service; xdg-open http://127.0.0.1:8188'
Icon=utilities-terminal
Terminal=false
Categories=Graphics;AI;
EOF

避免常见错误的注意事项

  • 如果你看到 pip 安装到 ~/.local/...,说明你不在正确的虚拟环境中(或者你没有激活它)。
  • 如果节点因 pkg_resources 缺失而失败 → 在选定的虚拟环境内安装 setuptools:source /home/x/ai/ComfyUI/.venv312/bin/activatepython -m pip install -U pip setuptools wheel
  • TensorRT 节点在较新的 Python 构建上失败是正常的:如果你不需要它,请禁用该自定义节点文件夹。

后续阅读

如果你想深入了解,以下指南与上述设置直接相关:

ComfyUI节点:依赖修复(Lightning、pkg_resources、ffmpeg)

修复常见的节点导入失败问题,确保您的ComfyUI堆栈在更新过程中保持稳定。

两个虚拟环境,两个端口,零混淆

干净地运行多个ComfyUI实例:端口、服务和可预测的配置文件。

VRAM预算:实际减少内存不足(OOM)的方法

实用的VRAM策略:注意力模式、模型大小、批处理以及实际限制。

本地AI加固:权限、沙箱和安全默认设置

降低本地AI系统的风险:文件权限、服务隔离和更安全的默认设置。

权衡(快速概览)

systemd用户服务

  • ✅ 稳定、自动重启、低开销、干净
  • ⛔ 需要一次性初始设置

桌面启动器

  • ✅ 一键式工作流程
  • ⛔ 仍然依赖于浏览器用户界面

两个虚拟环境

  • ✅ 两全其美(兼容性+最新版本)
  • ⛔ 您必须保持端口/服务分离以避免混淆