05 · Identity, outfit, pose

Person, Garment and Pose

Choose the person, the outfit and the body position as three separate inputs. One reference image supplies the identity, one the complete outfit, and a third supplies the pose. The pose is read from a photo as a skeleton, a stick figure of lines and points, which you can edit.

This page covers two downloadable workflows: a local one, and an optional cloud one that sends the same three photographs to six providers. The local one needs extra custom nodes for pose detection and editing, listed in Getting Started.

You’ll learn
How to detect a pose skeleton from a photo, edit it and reuse the edit, how three references are given three roles, and how to read a comparison between providers.
Generated model in a tan suede jacket and jeans, hand on hip
Local result.

What goes in, what comes out

Identity
Image 1 · Identityface and hair
Outfit
Image 2 · Outfitthe complete look
Pose
Image 3 · Poselocally, only its skeleton is used
Result
Resultlocal FLUX.2 Klein 9B

How the workflow works

Explained earlier:seed, guidance and steps · reference images and written roles (03) · outfit transfer (04) · decode and save

The whole workflow with its groups numbered
The whole workflow, with its groups numbered. Click to enlarge.1Start / Inputs2Models3Prepare References3bPose Check / Manual Correction4State the Change5Generate6Decode / Process7Inspect / Save8Compare with Inputs

From this workflow on, nodes are named as they appear in ComfyUI.

  1. Load the three references in order

    Three LoadImage nodes, top to bottom: identity (face and hair), outfit (the complete look) and pose (a photograph showing the body position you want). The prompt calls them image 1, image 2 and image 3, so keep the order.

    Workflow close-up with numbered nodes
    1. Image 1Identity: face and hair.
    2. Image 2Outfit: the complete look.
    3. Image 3Pose photo.
  2. Detect, edit and reuse the pose

    Workflow close-up with numbered nodes
    Group 3b, with the pose detector on the left.
    1. DWPose EstimatorFinds the skeleton in the pose photo.
    2. Pose Input ToggleSwitches between detecting the pose again and reusing your edited pose.
    3. OpenPose StudioThe editor. Drag joints here, then press Apply.
    4. PreviewShows the skeleton that will be used.

    The pose is handled in a fixed sequence. Follow it in this order:

    1. Detect. Run the workflow once. DWPreprocessor analyses the pose photo and produces a skeleton: coloured lines and points for the head, shoulders, arms, hands, hips, legs and feet.
    2. Inspect. Look at the skeleton preview. Check that both arms and both legs were found and that left and right are not swapped.
    3. Edit. Open OpenPoseStudio and drag any joint to a new position, for example to move a hand to the hip.
    4. Apply. Press Apply in the editor so the edited skeleton is stored in the node.
    5. Select REUSE EDITED POSE. Set PoseInputToggle to REUSE EDITED POSE. If you leave it on detection, the next run detects the pose from the photo again and overwrites your edit.
    6. Generate again. Press Run. The result now follows the edited skeleton.

    Change: one joint. Keep fixed: identity, outfit, prompt and seed. Inspect: whether only the body position changed.

  3. How the pose reaches the model

    The skeleton is drawn as a picture and given to the model as a third reference image, in the same way as the identity and outfit photos. Some workflows use a separate add-on model called a ControlNet to force a pose. This one does not. The skeleton is a visual reference that the model is asked to follow, so it guides the body without fixing it exactly. Hands and depth can still differ.

    Using the skeleton instead of the pose photo keeps that photo’s clothes, face and background out of the result. The prompt assigns the three roles in writing, as in 03, and describes the pose in words as well. Describing the hands helps where the skeleton is unclear.

  4. Generate locally

    The same models and controls as 01A, on an 832 × 1216 image. The workflow uses the recommended 4 steps and CFG 1 with a fixed seed.

The second workflow: six cloud providers

The file B_Cloud_Model_Comparison.json is a separate, optional workflow. Its purpose is to send the same task to six paid image providers in one run, so you can compare how each handles identity, outfit and pose.

ProviderModel selected in the workflowSaved size and qualityHow it receives the references
GoogleNano Banana Pro (gemini-3-pro-image-preview)2:3, 1KResized to 768 × 1152 with white borders added, and sent together
OpenAIGPT Image 2 (gpt-image-2)1024 × 1536, medium qualityOriginal photographs
ByteDanceSeedream 5.0 Pro832 × 1248 (1K)Original photographs
Black Forest LabsFLUX.2 Pro832 × 1248Original photographs
xAIGrok Imagine Image 2.02:3, 1K, medium qualityOriginal photographs
Kling3.0 Omni Image (kling-v3-omni)2:3, 1KResized to 768 × 1152 with white borders added, and sent together
The whole workflow with its groups numbered
The cloud comparison workflow. Click to enlarge.1Input Photos - Identity / Outfit / Pose2Batch References for Google and Kling Only3One Shared Instruction4AGoogle - Nano Banana Pro - Generate / Save4BOpenAI - GPT Image 2 - Generate / Save4CByteDance - Seedream 5.0 Pro - Generate / Save4DBlack Forest Labs - FLUX.2 Pro - Generate / Save4ExAI - Grok Imagine Image 2.0 - Generate / Save4FKling - 3.0 Omni Image - Generate / Save

Why this is not a controlled ranking

To test one provider only, switch off the other five Save Image nodes before running. Select them and press Ctrl+M. This is called muting a node.

Local and cloud results

These images were saved from earlier runs, and some of the cloud images were made with earlier versions of the input files. Treat them as illustrations of what each route can produce, not as a controlled comparison or a ranking.

Check the result

A face belongs to someoneUse an identity photo only with that person’s permission for this purpose. Use it responsibly.

Download the workflow

Click a filename to download it, or right-click it and choose Save link as. Keep the .json ending. Then drag the file onto the ComfyUI canvas, or use Workflow → Open.

Image

100% Original
Enlarged image