InstantID Pipe (JPS)
Unpack your identity and pose weights
- instantid_settings
- ip_weight
- cn_strength
- noise
- start
- end
Pairs with InstantID Settings (JPS), which bundles the five numbers that control an InstantID pass - identity strength, landmark-conditioning strength, reference noise, and the step window it's active for - into one wire. This node unpacks that bundle back into individual outputs wherever your graph actually needs them.
What comes out of it
One input, instantid_settings - a BASIC_PIPE (JPS's own bundle, a plain tuple, not Impact Pack's object of the same type name). Five outputs, all FLOAT:
ip_weight- how strongly the image-prompt/identity embedding pushes generation toward the reference face's overall look. Feeds the identity-weight input on whatever InstantID apply node you're running.cn_strength- how strongly IdentityNet's facial-landmark conditioning constrains pose and geometry. This is the half that keeps a face recognizable across different poses, not just different lighting.noise- a small amount of noise added to the reference embedding, the standard trick for loosening an overfit to the exact expression or lighting in your one source photo.start/end- the step-window percentages the identity conditioning is active for, same pattern any ControlNet-style guidance uses.
This node applies no identity conditioning itself - it's routing. The actual InstantID model loading and apply logic lives in a dedicated InstantID node pack, which this pack doesn't ship; this pipe just hands that pack's apply node the numbers InstantID Settings (JPS) configured.
Worth knowing this is only one leg of the InstantID setup this pack supports. The identity/pose weights this pipe unpacks are the numeric side; the actual images InstantID reads go through a separate trio of prep nodes - InstantID Source Prepare Pipe (JPS) for the identity reference photo, InstantID Pose Prepare Pipe (JPS) for a separate pose/composition reference, and InstantID Mask Prepare Pipe (JPS) for constraining where the identity injection applies. A full InstantID graph built with this pack typically has all four Pipe nodes running in parallel, each feeding a different input on the actual InstantID apply node.
Installing it
ComfyUI Manager, search "JPS Custom Nodes for ComfyUI," or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/JPS-GER/ComfyUI_JPS-Nodes.git
Restart, find it under JPS Nodes/Pipes. No models bundled with this node - but the InstantID checkpoint and InsightFace's ArcFace models it's built to feed come from a separate InstantID node pack, and both are licensed for research/non-commercial use only, which rules this whole pipeline out for anything behind a paid product.
Where people get tripped up
Without an InstantID Settings (JPS) node feeding it, this pipe has nothing to unpack. Beyond that, the usual InstantID tuning advice applies once these values reach the actual apply node: if identity isn't holding across poses, raise cn_strength before touching ip_weight - the landmark conditioning is what keeps geometry consistent, not the identity embedding. If faces look overfit to your reference photo's exact expression regardless of what the prompt asks for, nudge noise up rather than fighting it purely through weight tuning. And remember InstantID is SDXL-only - none of this transfers to a Flux-based workflow, where PuLID is the tool that took over the identity job.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| instantid_settings | BASIC_PIPE | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| ip_weight | FLOAT | — |
| cn_strength | FLOAT | — |
| noise | FLOAT | — |
| start | FLOAT | — |
| end | FLOAT | — |