--- 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**. ---
### ☕ 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.*
--- 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) ---
## ☕ 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!**