Revision Settings (JPS)
Stability's forgotten unCLIP image-prompting menu
- revision_settings
If you landed here because you opened an old JPS SDXL workflow template and a "Revision Settings" node is just sitting there, here's the honest answer: this is legacy Stability tech. "Revision" was Stability AI's own image-prompting feature, shipped in August 2023 alongside Control-LoRAs, built on unCLIP - hand it a reference image, no training and no text prompt required, and it conditions generation on that image's CLIP vision embedding. It still works. Almost nobody uses it fresh in 2026, because IP-Adapter (released the very same month, as it happens) ended up eating this exact niche and never let go - it's the more actively maintained path today for "condition on a reference image without training."
This node is the settings menu for that technique - turn it on, dial in two reference-image slots, and pass the whole bundle downstream in one wire.
How it works
Revision supports blending two reference images at once (mix style from one, content from another), which is why every parameter here comes in a rev1/rev2 pair. rev1_strength/rev2_strength (0–10, default 1) weight how much each reference's embedding contributes. rev1_noiseaug/rev2_noiseaug (0–1, default 0) is noise augmentation - the same mechanism unCLIP variation models use generally: injecting controlled noise into the embedding before conditioning loosens how literally the model reproduces the reference. At 0, it follows tightly; push it up and the model gets more room to interpret rather than copy.
CLIP vision encoders take a fixed square input, so if your reference isn't already square, something has to pick which region to keep - that's rev1_crop/rev2_crop (center/top/bottom/left/right), fine-tuned by rev1_offset/rev2_offset in pixels. crop_intpol sets the resize algorithm for that crop, and crop_res (224–1792, steps of 224, default 224) sets the target resolution - 224 isn't an arbitrary number, it's the real native input size of the OpenCLIP ViT encoders this whole pipeline runs on, which is why the range only steps in multiples of it.
The inputs and outputs that matter
rev1_strength/rev2_strength(FLOAT, 0–10, default 1) - how much each reference conditions the result.rev1_noiseaug/rev2_noiseaug(FLOAT, 0–1, default 0) - how loosely the model can deviate from the reference.rev1_crop/rev2_crop+rev1_offset/rev2_offset- which part of a non-square reference to keep.crop_res(224–1792, step 224, default 224) - target resolution for the CLIP vision crop.- Output:
revision_settings(BASIC_PIPE) - feeds into Revision Settings Pipe (JPS) downstream.
How to install it
ComfyUI Manager, searching "JPS Custom Nodes for ComfyUI," or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/JPS-GER/ComfyUI_JPS-Nodes.git
Restart. This node itself needs nothing extra, but the actual Revision technique depends on ComfyUI's built-in unCLIP conditioning nodes and a matching CLIP vision checkpoint - those come from core ComfyUI, not this pack.
Common issues & troubleshooting
You're not sure why you'd use this over IP-Adapter. Reasonable question - for most reference-conditioning jobs today, you shouldn't. IP-Adapter has a much bigger base of current tutorials, active troubleshooting help, and (via its Plus variants) noticeably tighter fidelity to the reference. Revision is worth keeping only if you're specifically running an older JPS workflow built around it, or deliberately experimenting with unCLIP.
crop_res mismatched against your loaded CLIP vision model. This value needs to line up with whatever CLIP vision encoder you've got wired upstream. A mismatch here typically doesn't throw a hard error - it just produces weaker, mushier conditioning, which is a much harder bug to spot than a crash.
Nothing seems to change when you turn rev1_noiseaug up. Small moves matter less than they sound like they should; the practical range most people actually use is well below 0.5. If you're chasing more creative freedom from the reference, also check rev1_strength isn't pinned too high - strength and noise augmentation interact.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| rev1_strength | FLOAT | 1.00–10 | — |
| rev2_strength | FLOAT | 1.00–10 | — |
| rev1_noiseaug | FLOAT | 0.00–1 | — |
| rev2_noiseaug | FLOAT | 0.00–1 | — |
| rev1_crop | COMBO | 5 options: center, top, bottom, left, right | |
| rev1_offset | INT | 0-2048–2048 | — |
| rev2_crop | COMBO | 5 options: center, top, bottom, left, right | |
| rev2_offset | INT | 0-2048–2048 | — |
| crop_intpol | COMBO | 6 options: lanczos, nearest, bilinear, bicubic, area, nearest-exact | |
| crop_res | INT | 224224–1792 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| revision_settings | BASIC_PIPE | — |