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

Goal: Keep two Python venvs (e.g., 3.12 + 3.14) for compatibility, but start ComfyUI automatically with a clean, lightweight setup.
Published:
Aleksandar Stajić
Updated: March 1, 2026 at 10:36 AM
ComfyUI on Fedora 43: Two Virtual Environments + One-Click Start (March 2026)

Illustration

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).

Architecture

Reference architecture for the Enterprise Delivery Operating System.

DevOps & Runtime

Deployments, services, ports, runtime operations, and repeatability.

AI Tooling & Automation

Local AI stack, orchestration, automation, and stable workflows.

Security & Compliance

Permissions, hardening, and safe defaults for local AI systems.

Observability & Performance

Performance 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 confusion

Run multiple ComfyUI instances cleanly: ports, services, and predictable profiles.

VRAM budgeting: what actually reduces OOM

Practical VRAM tactics: attention modes, model sizes, batching, and real-world limits.

Local AI hardening: permissions, sandboxing, and safe defaults

Reduce 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