Leon1000's picture
Duplicate from nhathoangfoto/Flux.2-Klein-9B-MatchingPose
7616823
---
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>