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

Related Articles

Mastering the Command Line: A Comprehensive Guide to the Find Command

Unlock the full potential of the Linux find command. This guide covers syntax, extended examples, and technical details for efficient file management.

New Qwen 3.5-Plus: Open-source AI is getting serious now

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.

Techniques for creating SHA512 password hashes with doveadm

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.

Boosting Productivity with ERP Systems: A Case Study on Relational Databases

Boosting Productivity with ERP Systems: A Case Study on Relational Databases

Convert MOV to MP4 Using FFmpeg: A Simple Guide

Convert MOV to MP4 Using FFmpeg: A Simple Guide

Learn how to convert MOV videos to MP4 using FFmpeg with reliable commands, batch processing, and quality optimization for web, streaming, and cross-platform compatibility.

Welcome to NuxtWP Multilang Theme

Welcome to NuxtWP Multilang Theme

Introduction to the NuxtWP Multilang Theme - a modern multilingual CMS built with Nuxt 4.

Mastering the SEO Workflow: Essential Optimization Strategies for Organic Growth

Mastering the SEO Workflow: Essential Optimization Strategies for Organic Growth

A structured SEO workflow is crucial for sustainable organic growth. Learn the ten foundational strategies, from keyword research and technical optimization to content quality and performance analysis.

A Practical Monorepo Architecture with Next.js, Fastify, Prisma, and NGINX

A Practical Monorepo Architecture with Next.js, Fastify, Prisma, and NGINX

Explore a practical monorepo architecture using Next.js, Fastify, Prisma, and NGINX, highlighting real-world integration and workflow.

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.

How to Scan and Clean Your Cloud Linux Server from Malware

How to Scan and Clean Your Cloud Linux Server from Malware

force-install-package-in-virtualenv

git-with-ssh-on-windows