IPAdapter Select
The filename dropdown for reference-image conditioning
- ipadapter_name
IP-Adapter is the technique behind "keep this character's face," "match this art style," and a big slice of reference-image conditioning - a small adapter that runs on a CLIP-Vision embedding so a reference photo influences generation. PgIPAdapterSelect is the PG Nodes node that makes the choice explicit: a dropdown of the IP-Adapter files in your install, outputting the selected filename for an IPAdapter loader or the Unified Loader's ipadapter slot.
The selector matters here because IP-Adapter is one of the fiddlier loads in the ecosystem - the adapter models are architecture-specific (SDXL IPAdapter ≠ SD 1.5 IPAdapter ≠ Flux IPAdapter), and loading the wrong one is a silent quality disaster. A visible, auditable dropdown is a genuine upgrade over a filename buried inside a loader node.
How it works
It lists files from ComfyUI's folder_paths registry, trying the keys ipadapter, ip_adapter, ipadapter_models, and ip-adapter so it finds your files across different packs' folder conventions. The selected name comes out as the node's single output (ipadapter_name), typed to the ipadapter list so it connects to your IPAdapter loader of choice. As with every PG selector, the list is fixed at import time - a newly downloaded model needs a ComfyUI restart before it appears. The Uni variant (in PG/Select/UniLoader) adds a leading none for the Unified Loader.
Input: the ipadapter_name dropdown. Output: the chosen name.
Install
Ships in PG Nodes: ComfyUI Manager → "PG Nodes" → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/GizmoR13/PG-Nodes
Common issues
The "list is empty" check is the same as everywhere - files in models/ipadapter (or wherever your pack expects them), then restart. The bigger pitfall is downstream: this node only supplies the name; the actual IPAdapter loading and applying happens in an IPAdapter node (usually from ComfyUI_IPAdapter_plus), and you still need the CLIP-Vision encoder wired up separately for the reference embedding. If identity drifts in output, the usual culprit isn't the selector - it's matching the right IPAdapter version to your base model. This node just makes it easy to tell which one you picked.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| ipadapter_name | COMBO | 0 options: |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| ipadapter_name | — |