← All guides

Generate AI images at home with ComfyUI on your own GPU

ComfyUI is a node-based tool for generating images and video with open models such as Stable Diffusion XL. You build a workflow from boxes and wires, run it in the browser, and everything stays on your own machine: no subscription, no credits, no upload.

We run it in a Proxmox LXC container with an RTX 3090 passed through, so the numbers below are our own measurements from 2026-10-22 (ComfyUI 0.38.0). Your hardware will differ.

What we measured

  • Our test was a 1024x1024 text-to-image run with RealVisXL V5 (an SDXL model), 25 steps.
  • The first image took about 29 seconds, because the 6 GB checkpoint had to load from disk. The following images took about 8 to 9 seconds each.
  • VRAM use was about 7 GB of the RTX 3090's 24 GB, so SDXL also fits comfortably on 12 GB cards.
  • The container used about 8 GB of RAM during the run, including file cache, and about 1.7 GB when idle.
  • Video models and upscalers are much heavier. After an uncapped heavy test froze our host, we limit the service to 13 GB of RAM, and we run one heavy job at a time.
  • Disk fills quickly: checkpoints are 6 GB and up, so plan for 100 GB or more.
  • These are short single-user tests, not a full benchmark. Other models, resolutions and custom nodes will change the numbers.

Before you start

  • An NVIDIA GPU is strongly recommended. SDXL wants roughly 8 GB of VRAM or more; without a GPU it technically runs on the CPU, but it is far too slow to be pleasant.
  • The NVIDIA driver must be installed on the Proxmox host and the GPU passed through to the LXC container. That is a separate topic of its own.
  • Give the container at least 4 cores and 12 to 16 GB of RAM, and set a memory limit so a runaway job cannot take the whole host down.
  • Download your first checkpoint from a source you trust and check its licence before you use the images commercially.

Setup steps

  1. Create a Debian LXC with the GPU passed through and confirm nvidia-smi works inside it.
  2. Install git and a C compiler (gcc and libc6-dev). Some ComfyUI add-ons compile code with Triton and fail without one.
  3. Clone ComfyUI from github.com/Comfy-Org/ComfyUI into /opt/ComfyUI and create a Python virtual environment. We used uv, which is much faster than pip.
  4. Install PyTorch with CUDA support first, then the requirements.txt file from the ComfyUI folder.
  5. Put a checkpoint file into models/checkpoints.
  6. Start ComfyUI with python main.py --listen. We run it as a systemd service so it starts at boot and we can set the RAM limit there.
  7. Open http://your-server-ip:8188, load the default text-to-image workflow, type a prompt and press Run.
  8. For access from outside your home use a VPN such as Tailscale. ComfyUI has no login, so never expose port 8188 to the internet.

Running it day to day

  • ComfyUI keeps models in VRAM after a run. If the card is shared with other tools such as Ollama, free the VRAM when idle. We call ComfyUI's /free endpoint from a timer after five minutes without activity.
  • Save the workflow you like. Workflows are plain JSON files, and ComfyUI also embeds them in the PNG images it makes, so you can drag an old picture back in to recover its settings.
  • Use the built-in Manager to install custom nodes, but add them one at a time: they run arbitrary code and can break each other.
  • Back up your workflows and any models you cannot download again. Everything else can be fetched later.

Honest caveats

  • ComfyUI has a learning curve. The node graph is powerful but not friendly to a first-time user; start from the example workflows instead of building from scratch.
  • There is no authentication and no multi-user support. Keep it on a trusted network or behind a VPN.
  • Model licences differ a lot. Some forbid commercial use or have regional restrictions, so read the licence of every model and node you install.
  • Custom nodes are third-party code. Install only ones you trust, and expect some to break after updates.
  • A GPU under load draws a lot of power and makes noise. Image generation is bursty, so it is mostly idle in daily use.
  • Our figures come from one machine and one model. Menu names and defaults change between versions; if something does not match, follow the current official documentation.

Get new guides by email

One short email when we publish a new guide or add apps. No spam, unsubscribe any time.

Browse all apps →Read the weekly notes →