File size: 11,211 Bytes
7616823
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
---
license: apache-2.0
base_model: black-forest-labs/FLUX.2-klein-base-9B
base_model_relation: adapter
tags:
- lora
- flux
- flux.2
- flux.2-klein
- matchingpose
- pose-transfer
- character-consistency
- diffusers
- image-to-image
- text-to-image
language:
- en
pipeline_tag: image-text-to-image
library_name: diffusers
instance_prompt: matchingpose9b
widget:
  - text: "matchingpose9b — cycle through: face reference → mannequin pose → final output"
    output:
      url: examples/1a.jpg
  - text: "matchingpose9b, a young woman matching the mannequin pose, studio lighting"
    output:
      url: examples/1c.png
  - text: "matchingpose9b, a man matching the mannequin pose, studio lighting"
    output:
      url: examples/1c.png
---

# 🧍 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**](https://huggingface.co/nhathoangfoto/Flux.2-Klein-9B-Mannequin) — together they form a complete **pose-transfer and character-consistency pipeline**.

---

<div align="center">

### ☕ Support My Work

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

[![PayPal](https://img.shields.io/badge/Donate_via-PayPal-00457C?style=for-the-badge&logo=paypal&logoColor=white)](https://paypal.me/nhathoangfoto)

**→ [paypal.me/nhathoangfoto](https://paypal.me/nhathoangfoto) ←**

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

</div>

---

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](https://huggingface.co/nhathoangfoto/Flux.2-Klein-9B-MatchingPose/resolve/main/examples/1a.jpg) | ![Pose 1](https://huggingface.co/nhathoangfoto/Flux.2-Klein-9B-MatchingPose/resolve/main/examples/1b.png) | ![Result 1](https://huggingface.co/nhathoangfoto/Flux.2-Klein-9B-MatchingPose/resolve/main/examples/1c.png) |

### Case 2 — base pose
| Input Face | Mannequin Pose | → Output |
|:---:|:---:|:---:|
| ![Face 2](https://huggingface.co/nhathoangfoto/Flux.2-Klein-9B-MatchingPose/resolve/main/examples/2a.jpg) | ![Pose 2](https://huggingface.co/nhathoangfoto/Flux.2-Klein-9B-MatchingPose/resolve/main/examples/2b.png) | ![Result 2](https://huggingface.co/nhathoangfoto/Flux.2-Klein-9B-MatchingPose/resolve/main/examples/2c.png) |

*Left: character reference (face/identity). Middle: mannequin pose reference (generated by the companion [Mannequin LoRA](https://huggingface.co/nhathoangfoto/Flux.2-Klein-9B-Mannequin)). 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**](https://huggingface.co/nhathoangfoto/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](https://huggingface.co/nhathoangfoto/Flux.2-Klein-9B-MatchingPose/resolve/main/examples/Example%20Workflow.png)

*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](https://huggingface.co/nhathoangfoto/Flux.2-Klein-9B-Mannequin). 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)

```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](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-9B) for base-model usage conditions.

---

## 🙏 Credits

- **Base Model**: [FLUX.2 Klein Base 9B](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-9B) by Black Forest Labs
- **Training Framework**: [ai-toolkit](https://github.com/ostris/ai-toolkit) by [Ostris](https://ostris.com)
- **Author**: [nhathoangfoto](https://huggingface.co/nhathoangfoto) — JH AI Studio
- **Companion LoRA**: [Flux.2-Klein-9B-Mannequin](https://huggingface.co/nhathoangfoto/Flux.2-Klein-9B-Mannequin)

---

<div align="center">

## ☕ 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**](https://paypal.me/nhathoangfoto)

[![PayPal Donate](https://img.shields.io/badge/PayPal-paypal.me%2Fnhathoangfoto-00457C?style=for-the-badge&logo=paypal&logoColor=white&labelColor=003087)](https://paypal.me/nhathoangfoto)

*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!**

</div>