ComfyUI on Fedora 43: Two Virtual Environments + One-Click Start (March 2026)

ComfyUI on Fedora 43: Two Virtual Environments + One-Click Start (March 2026)
Date: March 2026
OS: Fedora 43
Goal: Keep two Python venvs (e.g., 3.12 + 3.14) for compatibility, but start ComfyUI automatically with a clean, lightweight setup.
Enterprise Delivery Operating System
This guide is part of the Enterprise Delivery Operating System series. Use these category hubs to navigate the full stack (infra → workflows → governance).
ArchitectureReference architecture for the Enterprise Delivery Operating System.
DevOps & RuntimeDeployments, services, ports, runtime operations, and repeatability.
AI Tooling & AutomationLocal AI stack, orchestration, automation, and stable workflows.
Security & CompliancePermissions, hardening, and safe defaults for local AI systems.
Observability & PerformancePerformance tuning, monitoring, VRAM/RAM budgeting, and stability.
Why keep two venvs?
AI tooling moves fast. Some nodes and wheels lag behind the newest Python, while others require it.
- Python 3.12 venv → “boring but compatible” (TensorRT/LW wheels/Lightning often happier)
- Python 3.14 venv → newest features, but more missing wheels / import issues are common
Rule: never mix installs between venvs. Always run ComfyUI from the venv you intend.
Setup: One script per venv
Create a small launcher script that:
1) switches into ComfyUI folder
2) activates the chosen venv
3) runs ComfyUI on localhost
1) Create a launcher for Python 3.12 venv
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) (Optional) Create a launcher for Python 3.14 venv
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
Now you can run either version without thinking:
- ~/.local/bin/comfyui-start-312.sh
- ~/.local/bin/comfyui-start-314.sh
Autostart: systemd user service (best option)
This starts ComfyUI at login, restarts on crash, and stays minimal (no root, no heavy wrappers).
1) Create the user service for 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) Enable + start
systemctl --user daemon-reload
systemctl --user enable --now comfyui312.service
systemctl --user status comfyui312.service --no-pager
3) Logs (debug)
journalctl --user -u comfyui312.service -f
(If you also want the 3.14 service, repeat with comfyui314.service and the other script.)
One click GUI: Desktop launcher (open ComfyUI in browser)
This creates an app entry in your menu. Clicking it:
1) starts the service
2) opens the UI in your browser
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
Notes that prevent common mistakes
- If you see pip installing into ~/.local/..., you’re not in the right venv (or you didn’t activate it).
- If a node fails with pkg_resources missing → install setuptools inside the chosen venv:source /home/x/ai/ComfyUI/.venv312/bin/activatepython -m pip install -U pip setuptools wheel
- TensorRT node failures are normal on newer Python builds: if you don’t need it, disable that custom node folder.
Next reads
If you want to go deeper, these guides connect directly to the setup above:
ComfyUI nodes: dependency fixes (Lightning, pkg_resources, ffmpeg)Fix common node import failures and keep your ComfyUI stack stable across updates.
Two venvs, two ports, zero confusionRun multiple ComfyUI instances cleanly: ports, services, and predictable profiles.
VRAM budgeting: what actually reduces OOMPractical VRAM tactics: attention modes, model sizes, batching, and real-world limits.
Local AI hardening: permissions, sandboxing, and safe defaultsReduce risk on local AI systems: file permissions, service isolation, and safer defaults.
Tradeoffs (quick)
systemd user service
- ✅ stable, auto-restart, low overhead, clean
- ⛔ needs initial setup once
desktop launcher
- ✅ one click workflow
- ⛔ still depends on the browser UI
two venvs
- ✅ best of both worlds (compat + latest)
- ⛔ you must keep ports/services separated to avoid confusion
Related Articles
apache-ubuntu-17-10-install-certbot-lets-encrypt

Snap Packages: Why They Fall Short for Advanced Tools like DBeaver
Snap packages introduce restrictive sandboxing that breaks advanced workflows. This article explains why DBeaver struggles with SSH tunneling under Snap and why Flatpak or native packages are better alternatives.

Multi-Database Architecture with Prisma 7: A Deep Dive for Experts
The management of complex data landscapes requires modern architectures. Prisma 7 offers advanced functionalities for multi-database integration and addresses the challenges of Polyglot Persistence.

Techniques for creating SHA512 password hashes with doveadm
Detailed guide for securely generating SHA512 password hashes from the command line using the Dovecot tool doveadm. This article is intended for system administrators and developers.

New Qwen 3.5-Plus: Open-source AI is getting serious now
Discover the groundbreaking features and benefits of Alibaba's Qwen 3.5-Plus, a revolutionary open-source AI for developers.

Enterprise Start Here: Your Gateway to Operational Excellence
New to our enterprise platform? This guide provides a structured onboarding path, from foundational reference models to actionable playbooks, runbooks, and assessments designed for seamless implementation.

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.
PostgreSQL 14 Ubuntu Server 23.04
PostgreSQL 14 Ubuntu Server 23.04

The Next OpenWrt 5G Router: Why Wi-Fi 7, a Stronger CPU and Better Firmware Matter
The ZBT Z8102AX is a useful first sample, but the next step should be stronger: Wi-Fi 7, a more powerful four-core platform, better firmware clarity, improved packaging and a more stable pricing policy. The goal is not just another 5G router, but a better configured OpenWrt-based prosumer device.

Comprehensive Guide to Evaluation Harness: Mastering LLM Performance Evaluation
This guide provides a detailed walkthrough of Evaluation Harness, an essential framework for rigorously assessing large language model (LLM) capabilities in enterprise LLMOps pipelines. Learn setup, best practices, and advanced techniques to ensure reliable model benchmarking and optimization.