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

目标:保留两个Python虚拟环境(例如3.12和3.14)以确保兼容性,但通过一个简洁、轻量的配置自动启动ComfyUI。
已发布:
Aleksandar Stajić
Updated: 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用户服务

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

桌面启动器

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

两个虚拟环境

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

Related Articles

规范化架构、URL 设计、解析器逻辑、API 与可扩展性规范

规范化架构、URL 设计、解析器逻辑、API 与可扩展性规范

面向多租户门户的地理发现架构。定义了规范化 URL、解析器逻辑、缓存策略以及不依赖 CMS 耦合或数据库重构的地理读模型。该设计旨在确保 SEO 稳定性、高可扩展性,并支持未来的功能扩展,例如预订和地图。

如何判断一个AI智能体是否真正使用了正确的证据

如何判断一个AI智能体是否真正使用了正确的证据

AI代理可以引用来源,却仍然使用错误的证据。本文介绍一种实用方法,用于核查主张支持、来源权威性、适用性、出处,以及证据是否实际影响了答案。

HEIC转JPG转换:为何值得考虑及其工作原理

HEIC转JPG转换:为何值得考虑及其工作原理

HEIC格式提供了现代化的图像压缩和高画质,但JPG仍是兼容性最广的格式。本指南将说明在Linux环境下,何时以及如何利用工具与自动化流程将HEIC转换为JPG格式。

Laravel 12 Custom CMS with Filament 3: The Expert Workflow

Laravel 12 Custom CMS with Filament 3: The Expert Workflow

A detailed look at the synergies between Laravel 12 and Filament 3 for creating customized Content Management Systems. Experts analyze the innovative workflow, advantages, disadvantages, and the challenge of the Jetstream workflow.

RAG失败了——但究竟是哪一层真正失败了?一种诊断方法

RAG失败了——但究竟是哪一层真正失败了?一种诊断方法

当RAG答案出错时,将问题归咎于检索或模型过于笼统。这种诊断方法将来源覆盖、查询构建、检索、排序、上下文组装、生成、证据归因和时效性逐一隔离,从而使实际故障能够被复现并修复。

优化代码质量:使用ESLint与Prettier进行测试

优化代码质量:使用ESLint与Prettier进行测试

在现代软件开发中,保持一致的代码质量和风格至关重要。ESLint与Prettier提供了强大的组合方案,能够自动化这些关键环节,确保代码库的整洁性、可读性,并遵循既定标准。本文将深入探讨这两款工具如何无缝融入测试工作流,从而提升开发者的工作效率与项目的可维护性。

交付与变更管理综合指标指南

交付与变更管理综合指标指南

本指南详细概述了企业交付与变革管理的关键指标,帮助团队衡量绩效、优化流程并推动持续改进。探索关键指标、计算方法及最佳实践,使您的指标与业务成果保持一致。

人工智能推理的可证伪性:从答案到经过检验的假设

人工智能推理的可证伪性:从答案到经过检验的假设

AI模型几乎可以为任何看似合理的假设生成令人信服的证据。一种更可靠的方法论则提出相反的问题:什么证据会削弱、反驳或迫使我们放弃该结论?本文利用竞争性假设、判别性检验、反证和明确的拒绝标准,为LLM发展以证伪为导向的推理。

How to Scan and Clean Your Cloud Linux Server from Malware

How to Scan and Clean Your Cloud Linux Server from Malware

托管代理框架与自托管代理循环:你得到什么,失去什么

托管代理框架与自托管代理循环:你得到什么,失去什么

“自托管代理”可能意味着截然不同的架构。本指南区分了托管式运行框架、自托管执行环境和完全自主运营的代理循环——并说明了团队实际需要哪种控制边界。

Database Marketing – Modern Approach for Customer Relationships

Database Marketing – Modern Approach for Customer Relationships

Modern overview of database marketing: from data strategy and technical architecture to automation, GDPR and best practices for sustainable customer relationships.

Drag-and-Drop with JavaScript: A Deep Analysis of the Native API for Interactive Menu Structures

Drag-and-Drop with JavaScript: A Deep Analysis of the Native API for Interactive Menu Structures

Implementing drag-and-drop functionality is crucial for modern, interactive user interfaces. This article examines the technical implementation using the native HTML5 Drag-and-Drop API in Vanilla JavaScript and TypeScript, focusing on the creation of dynamic menu structures.