Jun 2, 20263 min read/2026/06/02/local-ai-studio-part-1-installing-comfyui-on-apple-silicon/

Local AI Studio — Part 1: Installing ComfyUI on Apple Silicon

This is Part 1 of a hands-on series on running a local AI image and video studio on a
Mac Studio. (Start at the series index.)

The goal for this post is small and concrete:

Get ComfyUI installed, on the GPU, with the models in place — and prove it before moving on.

Why ComfyUI

ComfyUI is a node-graph generator. Instead of a single "prompt → image" box, you wire
up explicit nodes: load a checkpoint, encode text, sample, decode, save. That sounds
fussier than it is, and it pays off enormously later — because a graph is just data, and
data is something you can generate from code. That's Part 2. For now, think of it as
the most scriptable way to run open models locally.

Pick a real Python (not the system one)

The first gotcha on a Mac: the system Python is too old.

$ python3 --version
Python 3.9.6        # /usr/bin/python3 — too old for ComfyUI

ComfyUI wants 3.11+. I already had a few from Homebrew, so I went with 3.11 — it's the
sweet spot for ComfyUI and its ecosystem of custom nodes:

brew install python@3.11   # if you don't have it already

Clone and make a clean venv

I keep the whole thing in ~/ComfyUI, isolated in its own virtual environment so it never
fights with anything else on the machine:

git clone --depth 1 https://github.com/comfyanonymous/ComfyUI.git ~/ComfyUI
python3.11 -m venv ~/ComfyUI/venv
~/ComfyUI/venv/bin/python --version      # Python 3.11.x

Install PyTorch with MPS, then the rest

On Apple Silicon you do not need a special PyTorch build — the standard wheels ship
with MPS (Metal Performance Shaders), Apple's GPU backend. Just install normally:

cd ~/ComfyUI
./venv/bin/pip install --upgrade pip
./venv/bin/pip install torch torchvision torchaudio
./venv/bin/pip install -r requirements.txt

Before going any further, confirm PyTorch can actually see the GPU. This is the single most
important check on a Mac:

./venv/bin/python -c "import torch; print('MPS available:', torch.backends.mps.is_available())"
# MPS available: True

If that prints True, the Apple GPU is in play. If it prints False, stop and fix it —
everything else will silently crawl on the CPU otherwise.

The model zoo

ComfyUI ships with no models; you bring your own. Each kind lives in a specific folder
under ~/ComfyUI/models/. Here's the set I pulled for this series, and where each goes:

Model Folder Use
SDXL base 1.0 checkpoints/ fast, reliable images
FLUX.1-dev (fp8) checkpoints/ top-quality images
LTX-Video 2B checkpoints/ fast local video
Wan 2.1 1.3B diffusion_models/ higher-quality video
t5xxl / clip_l / umt5 text_encoders/ text encoders
FLUX & Wan VAEs vae/ latent decoders

A practical note: many of the best checkpoints (FLUX.1-dev among them) are license-gated
on Hugging Face. For a clean, scriptable download I used the non-gated, ComfyUI-ready
re-uploads from the Comfy-Org organization where possible. All in, the set is about
47 GB — trivial on the Studio's disk, but plan for it.

Boot it, and read the log

Start the server:

cd ~/ComfyUI
./venv/bin/python main.py --listen 127.0.0.1 --port 8188

Then read the startup log like a hawk. These are the lines that tell you it's healthy on a Mac:

Total VRAM 65536 MB, total RAM 65536 MB
pytorch version: 2.12.0
Set vram state to: SHARED
Device: mps

Two things to notice. Device: mps means generation will run on the Apple GPU — that's
the whole game. And Set vram state to: SHARED is the unified-memory superpower: all
64 GB is available as "VRAM," which is why big models that choke a consumer NVIDIA card load
without complaint here.

The web UI is now at http://127.0.0.1:8188. You can drive everything from there by
dragging nodes around — but I almost never do.

In Part 2 we skip the
mouse entirely and drive ComfyUI the way I actually use it: as an HTTP API you call from a
script.