ComfyUI server setup
The plugins do not run AI models themselves. They send work to a ComfyUI server that loads the models, executes them, and returns the results. This page is the canonical guide to standing that server up.
Architecture recap
[ OFX host ] ──HTTP──▶ [ ComfyUI server ]
│ │
└──── shared filesystem ┘
(input + output EXR files)
The host machine and the ComfyUI machine can be the same physical computer, or separate machines on a network. In a studio setting, separate is the more common pattern — one or more GPU machines serve many artists.
You need three things:
- A ComfyUI installation with the right custom nodes installed.
- The model weights for each plugin you intend to use.
- A shared filesystem that both the host and the ComfyUI server can read and write.
1. Install ComfyUI
Follow the official ComfyUI installation guide.
If you want the fastest path on Windows — Python, PyTorch, ComfyUI, and ComfyUI Manager in one shot — ComfyUI-Easy-Install is a one-click installer that sets the whole stack up in a self-contained folder. It’s a convenient starting point; the custom nodes and model weights in the next sections still need to be added on top.
GPU recommendations by plugin
The dominant resource is GPU VRAM. Approximate ranges (lower numbers achievable with quantized variants and CPU offload):
| Plugin | Typical VRAM | Minimum VRAM | Notes |
|---|---|---|---|
depth_da3 |
6–10 GB | 4 GB | Smaller variants fit consumer GPUs comfortably. |
normal_crafter |
20 GB @ 1024×576 | 6 GB @ 512×256 | SVD-based; resolution-sensitive. |
depth_crafter |
26 GB @ 1024×576 | 8 GB with CPU offload | Diffusion video; the heaviest standard run. |
segmentation_sam3 |
4 GB | 4 GB | 24 GB+ recommended for 4K work. |
matte_mama |
High (SVD-XT base) | TBD | Single-pass diffusion despite the SVD base. |
matte_ma2 |
Moderate | TBD | Recurrent network — lighter than diffusion. |
upscale_seedvr2 |
4–24+ GB | 4 GB (GGUF Q4_K_M) | 7B FP16 wants H100; 3B and quantized variants run on consumer cards. |
A single 24 GB GPU (RTX 3090 / 4090 / A5000-class) can handle every plugin in this suite at standard production resolutions. Heavy work at 4K wants 48 GB+.
2. Install the custom nodes
ComfyUI itself does not ship the model code for these plugins — that lives in
community custom node repositories. Install via ComfyUI Manager
or by cloning into ComfyUI/custom_nodes/.
| Plugin | Required custom node |
|---|---|
depth_da3 |
PozzettiAndrea/ComfyUI-DepthAnythingV3 |
normal_crafter |
AIWarper/ComfyUI-NormalCrafterWrapper |
depth_crafter |
akatz-ai/ComfyUI-DepthCrafter-Nodes |
segmentation_sam3 |
PozzettiAndrea/ComfyUI-SAM3 |
matte_mama |
okdalto/ComfyUI-VideoMaMa (depends on SAM3) |
matte_ma2 |
spiritform/comfy-matanyone2 (depends on SAM3) |
upscale_seedvr2 |
numz/ComfyUI-SeedVR2_VideoUpscaler |
Restart ComfyUI after installing custom nodes. Verify that each new node appears in the ComfyUI workflow editor before continuing.
3. Download model weights
Each plugin ships a fixed ComfyUI workflow whose model-loader node decides where the weights come from. There are two patterns, and the difference matters for setup:
- Auto-download — the loader node fetches the selected checkpoint to a
ComfyUI/models/subfolder on first use. Nothing to do up front; just expect a slow first render while it downloads. - Manual — the loader (
CheckpointLoaderSimple) reads a file you must place inComfyUI/models/checkpoints/yourself. The render fails immediately if the file is missing.
| Plugin | Loader node (in the workflow) | How weights arrive | Where |
|---|---|---|---|
depth_da3 |
DownloadAndLoadDepthAnythingV3Model |
Auto-download | models/depthanything3/ |
depth_crafter |
DownloadAndLoadDepthCrafterModel |
Auto-download | models/ (DepthCrafter + SVD base) |
normal_crafter |
(none — wrapper-internal) | Auto-download | wrapper-managed (SVD base) |
segmentation_sam3 |
CheckpointLoaderSimple |
Manual + gated | models/checkpoints/ |
matte_mama |
CheckpointLoaderSimple + VideoMaMaPipelineLoader |
Manual (SAM3, gated) + auto (MaMa) | models/checkpoints/ + pipeline dirs |
matte_ma2 |
CheckpointLoaderSimple |
Manual + gated (SAM3) + node-managed (MatAnyone2) | models/checkpoints/ |
upscale_seedvr2 |
SeedVR2LoadDiTModel + SeedVR2LoadVAEModel |
Auto-download | models/SEEDVR2/ |
SAM3 is gated. SAM3 (
facebook/sam3) backssegmentation_sam3and is a shared dependency of both matte plugins (matte_mama,matte_ma2). It is a gated Hugging Face model: runhf auth loginand accept the terms on the model page, then place the checkpoint inComfyUI/models/checkpoints/. It will not auto-download.
Each plugin’s documentation page lists the exact weights, sizes, and Hugging Face sources. Pre-downloading avoids a multi-minute stall on the first render.
License notice. Model weights are governed by their upstream licenses. Several models in this suite are restricted to non-commercial use. See each plugin page and the release spec for the full breakdown.
4. Set up the shared input/output folders
The plugin writes input frames as EXR files into an input directory. The ComfyUI workflow loads from there, runs the model, and writes the output back as EXR into an output directory. The plugin then reads the output back.
For this to work:
- Both the host machine and the ComfyUI server must be able to read and write the same physical location.
- Both sides need to know the path under their own mount point.
Single machine
Both sides see the same paths natively. Configure both to e.g.:
/Users/<you>/comfyui-share/in/
/Users/<you>/comfyui-share/out/
In each plugin’s parameters, set Client Mount Path and Server Mount Path to the same value.
Networked: Linux ComfyUI server, macOS / Linux clients
Mount the server’s storage on each client via NFS or SMB.
| Side | Path |
|---|---|
| Linux ComfyUI server | /mnt/comfyui-share/in/ |
| macOS client (Finder mount) | /Volumes/comfyui-share/in/ |
In the plugin, set:
- Client Mount Path:
/Volumes/comfyui-share - Server Mount Path:
/mnt/comfyui-share
The plugin substitutes the server path into the workflow JSON so ComfyUI receives the path it can actually read.
Networked: Windows ComfyUI server
Use UNC paths for the server side:
| Side | Path |
|---|---|
| Windows ComfyUI server | \\COMFYBOX\share\in\ |
| macOS / Linux client (mount) | /Volumes/share/in/ (or wherever) |
In the plugin:
- Client Mount Path:
/Volumes/share - Server Mount Path:
\\COMFYBOX\share
The plugin handles the backslash escaping for the workflow JSON automatically.
Folder layout the plugin creates
Inside the input and output directories, the plugin creates a project / workflow / frame hierarchy automatically:
<input-mount>/
<project-name>/
<workflow-name>/
<frame-or-sequence-id>.exr
<output-mount>/
<project-name>/
<workflow-name>/
<frame-or-sequence-id>.exr
You only need to provision the top-level mount points. Everything underneath is managed by the plugin.
5. Start ComfyUI
python main.py --listen 0.0.0.0 --port 8188
--listen 0.0.0.0 lets remote hosts connect. Restrict via firewall to your
trusted network. Match the --port to the port in your ComfyUI Server URL
(step 6); 8188 is the ComfyUI default.
You do not need
--input-directory/--output-directory. Those flags only relocate ComfyUI’s default in/out folders. AIFX never uses the defaults: it writes absolute paths (built from the Server Mount Path) straight into the workflow’sLoadEXR/SaveEXRnodes, andSaveEXRcreates its output folder if missing. So the shared-folder wiring is governed entirely by the mount paths in step 4 / step 6 — not by ComfyUI’s launch flags. Setting those flags has no effect on where AIFX reads and writes.
6. Configure the plugin
In your OFX host, apply a plugin to a clip and set:
- ComfyUI Server URL:
http://<server-ip>:8188 - Client Mount Path: the input/output share path on the host machine.
- Server Mount Path: the same share path on the ComfyUI server machine.
Trigger a render. Watch the ComfyUI console — you should see a workflow submitted and executed.
For a permanent setup, don’t enter these values per-clip — pre-fill
them in each plugin’s defaults.json so every clip starts with the right
server and paths. See Configuration & defaults.
Health check
A quick way to confirm everything is wired up correctly:
- In any web browser on the host machine, open
http://<server-ip>:8188/. The ComfyUI UI should load. - From a terminal on the host machine, write a test file to the share:
echo hello > /<client-mount>/test.txt. - From a terminal on the server, read it back:
cat /<server-mount>/test.txt. Same file, same content.
If both work, the plugin will work.
Security notes
- ComfyUI’s HTTP API has no authentication by default. Keep it on a trusted internal network and use firewall rules to restrict access.
- The shared filesystem similarly has no plugin-level access control. Anyone with access to the share can read EXR data flowing through it.
- Model weights are large. Download them from the official upstream sources listed on each plugin page, not from random mirrors.