Pose Changer · Edit
Pose Changer copies a pose from a photo — the text box is only the small print
- image_url
- reference_image_url
- images
- task id
If you've done this locally, you know the pipeline: OpenPose preprocessor on a reference photo, the skeleton into a ControlNet, your character via IP-Adapter or a reference latent, then a denoise high enough to move the limbs and low enough to keep the face. Three nodes of setup and an afternoon of tuning per character.
Pose Changer · Edit is that in one node for 4.5 credits an image. But the mental model needs to shift, and it's the thing people get wrong on the first run: the pose comes from a picture, not from words.
What it is
popnow/pose-changer-v1/edit, wrapped as a ComfyUI node in the PopNow pack. Cloud side, so no VRAM, no checkpoint, no ControlNet stack - your two images go up, a reposed image comes down as a normal IMAGE. The ControlNet essay is the long version of why the local path is powerful and fiddly; this node exists for the days you'd rather spend four cents than four nodes.
The two image inputs, and why both are required
image_url is the person you're reposing, and the tooltip is specific: full body visible, JPEG/PNG/WebP, up to 10 MB. That constraint isn't decoration. A crop at the waist gives the model nothing to work with for the legs, and it will cheerfully invent them.
reference_image_url is the photo whose pose you want - and only the pose. The person in it, their clothes, their lighting and their background are all discarded. This is the OpenPose idea in a hosted box: pose as structure, identity from elsewhere.
So the two roles are clear, and there's no third option where you describe the pose in text. Which brings us to prompt.
prompt is optional, and the tooltip describes it precisely: extra direction added after the built-in pose instruction. That word "after" is the whole story - there's already an instruction in the request that defines the job as "adopt the reference pose". Your text is appended to it. So write the thing that isn't the pose: "keep my background", "keep the outfit", "she's laughing". Ask it for a new pose and you're fighting the primary instruction.
aspect_ratio defaults to model default, which keeps the shape of your source - the right default, since a re-pose that also re-crops is two changes at once.
output_format is JPEG; seed starts fixed so an accidental re-queue doesn't bill you twice. Randomize it to explore, at 4.5 credits each.
Outputs: images and task id.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
Or Manager → search PopNow → Install, then restart. Add a key from popnow.ai/api/console/keys through Settings > PopNow, or set it in the environment for a headless box:
POPNOW_API_KEY=sk-popnow-... python main.py
Zero dependencies, zero model downloads, no GPU involvement. Restart again once the key's in so node types are rebuilt from your account's catalog. If you still have the old single-file custom_nodes/popnow_api.py, remove it.
Where people get burned
The reference must be a readable pose. A photo where the limbs overlap, or where the person is sitting behind a table, gives an ambiguous skeleton - and ambiguous in means ambiguous out. Front-facing, limbs visible, one person.
Identity drift is the real cost. Moving arms and shoulders means redrawing the torso, and redrawing the torso moves the face a little. If the character has to stay recognisable across a set of poses, do all your re-posing first and run the identity pass afterwards, not the other way round - the character-consistency essay treats consistency as a separate problem from posing for exactly this reason.
Hands. Nobody has fixed hands. A pose with interlaced fingers or a hand near the face is where the whole approach still falls over, hosted or local.
One image per socket. Batches get truncated to the first with a log line, so a set of characters means a queue loop, not a batch. And remember a cancelled run keeps running on PopNow and is billed if it succeeds - the spend ceiling in Settings > PopNow is worth setting while you experiment.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image_url | IMAGE | The person to re-pose, full body visible: JPEG, PNG or WebP, up to 10 MB. | |
| reference_image_url | IMAGE | A photo of the pose to copy; only the pose is used. JPEG, PNG or WebP, up to 10 MB. | |
| prompt | STRING | Optional extra direction added after the built-in pose instruction, e.g. to keep your own background or outfit. | |
| aspect_ratio | COMBO | model default | Optional output aspect ratio. Leave it empty to keep the shape of the photo. |
| output_format | COMBO | JPEG | File format of the returned image. |
| seed | INT | 00–2147483647 | Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| task id | STRING | The PopNow task id, for the API console logs or support. |