🧍 Flux.2-Klein-9B-MatchingPose

A LoRA adapter for FLUX.2 Klein 9B that transfers any mannequin pose reference onto a character subject — producing perfectly pose-matched characters while preserving the subject's identity, face, and style.

Designed as the companion model to Flux.2-Klein-9B-Mannequin — together they form a complete pose-transfer and character-consistency pipeline.


☕ Support My Work

If this LoRA helps your projects, please consider supporting continued development and new model releases.

PayPal

paypal.me/nhathoangfoto

Every contribution directly funds training compute, dataset curation, and the release of new open-source LoRAs.


For custom LoRA training, advanced ComfyUI workflow development, or collaboration:
📱 WhatsApp: +84947397868
💬 Telegram/Discord: nhathoangfoto
🐦 X: https://x.com/NhatPhoto
📘 Facebook: https://www.facebook.com/nhathoangfoto

Powerful local hardware, ready for any complex project: 🚀 RTX 5090 | RTX Pro 6000 🛠️


🖼️ Examples

Case 1 — complex pose

Input Face Mannequin Pose → Output
Face 1 Pose 1 Result 1

Case 2 — base pose

Input Face Mannequin Pose → Output
Face 2 Pose 2 Result 2

Left: character reference (face/identity). Middle: mannequin pose reference (generated by the companion Mannequin LoRA). Right: final output — the character replicating the exact mannequin pose.


✨ What this LoRA does

  • Transfers any pose from a mannequin reference onto a character with high pose fidelity
  • Preserves the character's identity, face, and style from the face reference
  • Works with any input face — photographs, AI-generated characters, illustrations
  • Matches limb position, body orientation, and overall composition exactly
  • Produces natural skin, clothing, and lighting in the output — not a stiff mannequin render

🎯 Why use it

Pose transfer in FLUX.2 is challenging because most methods either:

  • Lose the character's identity when forcing a pose (ControlNet drift)
  • Fail to match the pose accurately when using only text prompts
  • Require complex multi-ControlNet setups that are slow and unreliable

MatchingPose LoRA solves this by using a mannequin as a clean, identity-free pose anchor. Since the mannequin encodes only pose and proportions (no face, no clothing bias), the character LoRA can fill in identity cleanly without pose drift.


🔗 Complete Workflow — Paired with Mannequin LoRA

This LoRA is the second stage of a two-stage pipeline with Flux.2-Klein-9B-Mannequin:

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  Real Reference │  →  │  Mannequin LoRA  │  →  │  Pose Template  │
│   (any photo)   │     │  (stage 1 LoRA)  │     │ (faceless body) │
└─────────────────┘     └──────────────────┘     └─────────────────┘
                                                          │
                                                          ▼
┌──────────────────┐     ┌────────────────────┐     ┌──────────────┐
│ Character LoRA / │  →  │  MatchingPose LoRA │  →  │ Final Output │
│  Reference Face  │     │  (this model)      │     │ (your char,  │
└──────────────────┘     └────────────────────┘     │  same pose)  │
                                                     └──────────────┘

The two-stage pipeline guarantees pose consistency across characters — feed any real photo in, get any character out, same pose.

📋 Example Workflow

Example Workflow

Complete ComfyUI workflow example showing the Mannequin + MatchingPose LoRA chain in action.


🎯 Trigger Word

matchingpose9b

This is the primary trigger for the LoRA. Place it at the beginning of your positive prompt to activate the pose-matching behavior.

Example Prompt Structure

matchingpose9b, a young woman with long brown hair, wearing a white dress, 
matching the reference pose, studio lighting
matchingpose9b, a man in a black suit, sitting on a stool, 
matching the mannequin pose, natural lighting

💡 Tips & Prompting Guide

1. Describe the Character, Not the Pose

Let the mannequin reference handle the pose. Your prompt should focus on who the character is — their appearance, clothing, and style. Describing the pose in text can conflict with the reference.

Good:

matchingpose9b, a young asian woman with black hair in a ponytail, 
wearing red athletic wear, studio background

Avoid (redundant pose description):

matchingpose9b, a woman squatting with hands on knees, looking up...

2. Use Clean Mannequin References

For best results, generate your pose reference using the companion Mannequin LoRA. Clean, isolated mannequin images on white backgrounds give the sharpest pose transfer.

3. Match Subject Gender / Age

Make sure your character description matches the body type of the mannequin reference (adult male mannequin → adult male character, female kid mannequin → young girl, etc.) to avoid proportion conflicts.

4. Recommended Settings

  • LoRA Strength: 0.9 – 1.1 — matching pose benefits from slightly stronger activation
  • Inference Steps: 4 steps for distill and 20 steps for Base Model
  • Guidance Scale: 1 – 4.0

5. Two-Stage Workflow for Best Results

  1. Stage 1: Take your real/reference photo → apply Mannequin LoRA → get clean mannequin pose
  2. Stage 2: Feed mannequin pose + character reference → apply MatchingPose LoRA → final output

This two-stage approach produces far better results than trying to transfer pose directly from the real reference (which carries identity bias).


🚀 Usage

ComfyUI

1. Download the .safetensors file
2. Place in: ComfyUI/models/loras/
3. Use the trigger word "matchingpose9b" at the start of your positive prompt
4. Provide the mannequin pose image as the reference input

Diffusers (Python)

from diffusers import Flux2Pipeline
import torch

pipe = Flux2Pipeline.from_pretrained(
    "black-forest-labs/FLUX.2-klein-base-9B",
    torch_dtype=torch.bfloat16
).to("cuda")

pipe.load_lora_weights(
    "nhathoangfoto/Flux.2-Klein-9B-MatchingPose",
    adapter_name="matchingpose"
)
pipe.set_adapters(["matchingpose"], adapter_weights=[1.0])

image = pipe(
    prompt="matchingpose9b, a young woman with long black hair, wearing casual clothes, studio lighting",
    num_inference_steps=28,
    guidance_scale=3.5,
).images[0]

⚠️ Limitations

  • Requires mannequin reference: works best when paired with clean mannequin pose input. Real photos as pose reference may leak identity features into the output.
  • Extreme poses: acrobatic or heavily contorted poses reduce transfer accuracy.
  • Face/hand detail: faces and hands may need secondary fix passes at high resolution.
  • Multi-subject scenes: trained primarily on single-subject images. Multi-person inputs may produce inconsistent pose matching.
  • Body proportion mismatch: if the character description implies a significantly different body type than the mannequin (e.g., child character + adult mannequin), proportions may normalize toward the mannequin.

📄 License

Released under Apache 2.0. You are free to use this LoRA for personal, research, and commercial purposes.

The base model (FLUX.2 Klein Base 9B) has its own license — please review the FLUX.2 Klein Base 9B license terms for base-model usage conditions.


🙏 Credits


☕ Enjoying this LoRA?

Your support keeps new models coming. Even a small tip makes a real difference for independent open-source AI work.

**💖 Donate via PayPal**

PayPal Donate

Thank you for supporting independent AI research! 🙏


If you find this LoRA useful, please ❤️ like the model and share your creations in the Community tab!

Downloads last month
3,074
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for nhathoangfoto/Flux.2-Klein-9B-MatchingPose

Adapter
(55)
this model