ComfyUI Extension: comfyui-immich
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
ComfyUI custom nodes for Immich integration — upload, metadata, album management
README
comfyui-immich
Custom nodes for ComfyUI that integrate with Immich — the self-hosted photo management platform.
Features
- Save to Immich — Upload generated images directly to your Immich server
- Full workflow and prompt metadata embedded in PNG (drag-drop back into ComfyUI to reproduce)
- ComfyUI-viewable local preview output for each successful upload
- Optional album assignment and description tagging on upload
- Immich v3-compatible upload payloads
- Per-image error handling — one failure doesn't crash the batch
- Zero extra dependencies — uses only packages already in ComfyUI (PIL, numpy, torch)
Installation
Clone into your ComfyUI custom_nodes directory:
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/ericmey/comfyui-immich.git
Restart ComfyUI. The node will appear under image/immich in the node menu.
Configuration
Create a .env file in the node directory with your Immich credentials:
cd custom_nodes/comfyui-immich
cp .env.example .env
Edit .env:
IMMICH_URL=https://your-immich-instance.com
IMMICH_API_KEY=your-api-key-here
The .env file is gitignored and persists across git pull updates.
Getting an Immich API Key
- Open your Immich instance in a browser
- Go to User Settings (click your avatar → Account Settings)
- Scroll to API Keys → New API Key
- Give it a name (e.g., "ComfyUI") and create
- Copy the key into your
.envfile
Nodes
Save to Immich
Category: image/immich
An output node that uploads images to Immich at the end of a workflow.
Inputs
| Input | Type | Required | Default | Description |
|-------|------|----------|---------|-------------|
| images | IMAGE | Yes | — | Image tensor from the pipeline |
| description | STRING | No | "" | Description visible in Immich UI |
| album_id | STRING | No | "" | Immich album UUID to add the image to |
| filename_prefix | STRING | No | "ComfyUI" | Prefix for the uploaded filename |
Hidden Inputs (automatic)
| Input | Description | |-------|-------------| | prompt | Full node/prompt data — embedded in PNG metadata | | extra_pnginfo | Workflow JSON — embedded in PNG metadata |
What Gets Saved
Each uploaded image includes:
- PNG metadata: Full ComfyUI workflow + prompt data (same format as the built-in SaveImage node). You can drag the image back into ComfyUI to load the exact workflow that created it.
- ComfyUI preview: A local output copy so the node result displays correctly in the ComfyUI UI.
- Immich description: Whatever you put in the
descriptionfield, visible in the Immich web UI. - Album placement: If
album_idis provided, the image is added to that album immediately after upload.
Usage
Wire it as a terminal node — connect the image output from your VAE Decode, Detailer, or any image-producing node:
KSampler → VAE Decode → Save to Immich
It can be used alongside or instead of the built-in SaveImage node.
Updating
cd /path/to/ComfyUI/custom_nodes/comfyui-immich
git pull
Your .env file is preserved — it's in .gitignore.
License
MIT
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.