Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[ECCV 2026] Anchoring on Reality: Breaking the Pseudo-Target Ceiling in Makeup Transfer

Bo Wei 1*Xianhui Lin 2†  Yi Dong 2  Zhongzhong Li 2  Zonghui Li 2Zirui Wang 2
Jiachen Yang 2  Xing Liu 2  Hong Gu 2Xiaoming Li 3✉Wangmeng Zuo 1✉
1 Harbin Institute of Technology  2 vivo BlueImage Lab  3 Nanjing University
* Work done during an internship at vivo.  Project lead

arXiv link  project homepage  HF Models  HF Space  MF2K Dataset 

🔍 Overview

ART example 1 ART example 2

Figure 1. ART enables high-fidelity transfer of diverse makeup styles (simple to complex) at up to 2K resolution, while preserving identity, geometry, and makeup placement under challenging expressions, occlusions, and cross-gender scenarios.

ART pipeline overview

Figure 2. Method overview. ART is a two-stage framework that shifts supervision from the synthetic pseudo-target to the real reference. Stage I performs pseudo-target initialization by training the transfer model for global makeup placement and an auxiliary makeup remover for bare-skin extraction. Stage II predicts a differentiable makeup carrier ẑ at noise level σtr, and then reconstructs the real reference from its bare-skin counterpart conditioned on ẑ. Since ẑ remains differentiable, the gradient of Lrefine back-propagates into the transfer prediction, helping recover fine-grained makeup cues and suppress synthetic artifacts, while Lbottleneck preserves the global structure.

✨ Highlights

Reality-Anchored Refinement. We propose ART, a two-stage DiT framework that breaks the pseudo-target ceiling. By anchoring a refinement cycle to the real reference, ART overrides pseudo-target artifacts while stabilizing training through a controlled-noise bottleneck.

💄 A 2K-Resolution In-the-Wild Makeup Dataset. We introduce MakeupFaces2K (MF2K), the first 2K-resolution makeup portrait dataset with 8,573 images, spanning diverse makeup intensities and underrepresented demographics to support high-fidelity makeup transfer and related tasks.

🏆 State-of-the-Art Performance. ART achieves superior makeup fidelity across diverse styles, consistently preserving fine-grained details and source identity even under occlusions and extreme expressions.

🗓️ Plan & Updates

Plan:

  • Inference code
  • 512×512 LoRA weights
  • 1024×1024 LoRA weights
  • Higher-resolution weights (not planned for the current release)
  • Training code
  • MF2K dataset

Updates:

  • 2026/07/09: We launched the Hugging Face Space demo. Try ART online!
  • 2026/07/09: We released an interactive Gradio app and added more example images.
  • 2026/07/07: We released the MF2K dataset.
  • 2026/07/07: We released the 1024×1024 LoRA weights.
  • 2026/07/01: We released the 512×512 LoRA weights.
  • 2026/06/30: We released the inference code. Continuous updates, stay tuned!

🚀 Getting Started

🛠️ 1. Environment Setup

# Create and activate environment
conda create -n art python=3.10
conda activate art

# Install dependencies
pip install -r ./requirements.txt

📦 2. Download Pretrained Weights

Download the ART LoRA checkpoints and place them under ./checkpoints/, or use the following command:

# pip install -U "huggingface_hub[cli]"

# If Hugging Face is not directly accessible, you can use hf-mirror:
# export HF_ENDPOINT=https://hf-mirror.com

hf download csbowei/ART --local-dir ./checkpoints --include "*.safetensors"
Model Link
ART LoRA csbowei/ART
FLUX.1-Kontext-dev black-forest-labs/FLUX.1-Kontext-dev

▶️ 3. Usage

# Makeup transfer: apply the reference's makeup onto the input face
python infer.py \
    --task        mt \
    --input       ./examples/source/src_001.jpg \
    --ref         ./examples/ref/ref_001.jpg \
    --lora_path   ./checkpoints/art_transfer_lora_1024.safetensors \
    --resolution  1024 \
    --output_dir  ./examples/outputs \
    --save_concat
# Makeup removal: strip cosmetics from the input face
python infer.py \
    --task        demakeup \
    --input       ./examples/ref/ref_002.jpg \
    --lora_path   ./checkpoints/art_demakeup_lora_1024.safetensors \
    --resolution  1024 \
    --output_dir  ./examples/outputs \
    --save_concat

The generated results should look similar to the following:

Makeup Transfer (--task mt) Makeup Removal (--task demakeup)

The --resolution parameter should match the resolution of the LoRA model. --save_concat creates a side-by-side concatenated image of the input and output.

Or you can launch the interactive Gradio app:

python app.py

After launching, open the local URL shown in the terminal. The app automatically lists examples from ./examples/source/ and ./examples/ref/.

📊 Datasets

💄 MF2K

Figure 3. MF2K, the first 2K-resolution in-the-wild makeup dataset. MF2K contains 8,573 images spanning four makeup intensities from bare skin to artistic styles, with broad demographic diversity. Compared with existing datasets, it captures fine-grained makeup textures and thus serves as a demanding benchmark for high-fidelity transfer.

Download

Due to redistribution constraints of source images, MF2K is released as metadata and reconstruction scripts. Please download the original images from the URLs provided in the metadata, rename them according to metadata.origin_path, and organize them under images/origin/.

File Overview

MF2K/
├── metas/
│   ├── train.jsonl          # 8,373 training images, one JSON object per line
│   └── test.json            # 100 source/reference test pairs
├── make_crop.py             # Reconstruct aligned crops from original images
└── images/
    ├── origin/              # User-downloaded original images
    ├── crop/                # Reconstructed aligned face crops
    └── crop_resize2048/     # 2048x2048 resized crops generated by the script

Metadata entry format:

{
  "id": "<image_id>",                    // Image id
  "split": "train | test",
  "makeup_category": "bare | light | heavy | artistic",
  "gender": "male | female",
  "metadata": {
    "photo_url": "...",                  // Original image URL
    "author": "...",                     // Image author or provider
    "license": "...",                    // Source image license
    "origin_size": [<width>, <height>],  // Original image size
    "origin_path": "images/origin/...",  // Path for the downloaded original image
    "crop_path": "images/crop/...",      // Output path for the aligned crop
    "crop_resize2048_path": "images/crop_resize2048/...",
    "origin_md5": "...",                 // MD5 checksum of the original image
    "crop_md5": "...",                   // MD5 checksum of the crop image
    "face": {
      "crop_size": <crop_size>,          // Aligned crop resolution before resizing
      "affine_matrix": [[...], [...]]    // Affine transform from original image to crop
    }
  }
}

Data Splits

The training split contains 8,373 images across four makeup categories: bare, light, heavy, and artistic. All training face crops are at least 2048x2048.

The test split contains 100 source/reference pairs, where each source is bare-faced and each reference uses artistic makeup. Some test crops are below 2048x2048 but remain approximately 1K or higher. All evaluations reported in our paper are conducted at 512x512 resolution.

Reconstruct Crops

After downloading the original images, place each file according to metadata.origin_path, for example:

MF2K/images/origin/00001.png
MF2K/images/origin/08374.jpg

Then generate aligned crops and 2048x2048 resized crops:

python MF2K/make_crop.py \
    --dataset_root ./MF2K \
    --workers 16

Outputs are written to images/crop/ and images/crop_resize2048/. Use --no_resize2048 if only aligned crops are needed.

🧪 Evaluation Datasets

Our evaluation covers four datasets with complementary challenges:

  • MT: A standard makeup-transfer dataset with mostly aligned frontal portraits under controlled settings. BeautyGAN

  • MT-Wild: An in-the-wild makeup transfer dataset with varied poses, expressions, and backgrounds under unconstrained settings. PSGAN, Google Drive

  • LADN: A makeup transfer dataset with diverse and extreme makeup styles involving large color and spatial variations. LADN, Google Drive

  • MF2K: The artistic subset split of the MF2K dataset, emphasizing high-frequency cosmetic details for stress-testing transfer fidelity.

🙏 Acknowledgements

We sincerely thank the authors of FLUX.1-Kontext for releasing the foundational generative model that our work builds upon. We also acknowledge Diffusion-4k for its inspiring wavelet loss design.

We are also grateful to previous makeup transfer works and datasets, including PSGAN, EleGANt, MAD, SHMT, Stable-Makeup, BeautyGAN, and LADN. Their valuable contributions and released resources have inspired our research and enabled fair comparison.

📜 Citation

If you find our work or code useful for your research, please cite:

@article{wei2026art,
  title={Anchoring on Reality: Breaking the Pseudo-Target Ceiling in Makeup Transfer},
  author={Wei, Bo and Lin, Xianhui and Dong, Yi and Li, Zhongzhong and Li, Zonghui and Wang, Zirui and Yang, Jiachen and Liu, Xing and Gu, Hong and Li, Xiaoming and Zuo, Wangmeng},
  journal={arXiv preprint arXiv:2606.31089},
  year={2026}
}

About

[ECCV2026] Anchoring on Reality: Breaking the Pseudo-Target Ceiling in Makeup Transfer

Resources

Stars

20 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages