https://github.com/bytedance/umo

🔥🔥 Official Repo of UMO: Scaling Multi-Identity Consistency for Image Customization via Matching Reward

https://github.com/bytedance/umo

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.5%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

🔥🔥 Official Repo of UMO: Scaling Multi-Identity Consistency for Image Customization via Matching Reward

Basic Info
Statistics
  • Stars: 4
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 10 months ago · Last pushed 10 months ago
Metadata Files
Readme License

README.md

Logo
UMO: Scaling Multi-Identity Consistency for Image Customization
via Matching Reward

Build Build Build

Yufeng Cheng, Wenxu Wu, Shaojin Wu, Mengqi Huang, Fei Ding, Qian He
UXO Team
Intelligent Creation Lab, Bytedance

🔥 News

  • 2025.09.09 🔥 The demos of UMO are released: UMO-UNO & UMO-OmniGen2
  • 2025.09.09 🔥 The paper of UMO is released.
  • 2025.09.08 🔥 The models of UMO based on UNO and OmniGen2 are released. The released version of UMO are more stable than that reported in our paper.
  • 2025.09.08 🔥 The project page of UMO is created.
  • 2025.09.08 🔥 The inference and evaluation code of UMO is released.

📖 Introduction

Recent advancements in image customization exhibit a wide range of application prospects due to stronger customization capabilities. However, since we humans are more sensitive to faces, a significant challenge remains in preserving consistent identity while avoiding identity confusion with multi-reference images, limiting the identity scalability of customization models. To address this, we present UMO, a Unified Multi-identity Optimization framework, designed to maintain high-fidelity identity preservation and alleviate identity confusion with scalability. With "multi-to-multi matching" paradigm, UMO reformulates multi-identity generation as a global assignment optimization problem and unleashes multi-identity consistency for existing image customization methods generally through reinforcement learning on diffusion models. To facilitate the training of UMO, we develop a scalable customization dataset with multi-reference images, consisting of both synthesised and real parts. Additionally, we propose a new metric to measure identity confusion. Extensive experiments demonstrate that UMO not only improves identity consistency significantly, but also reduces identity confusion on several image customization methods, setting a new state-of-the-art among open-source methods along the dimension of identity preserving.

⚡️ Quick Start

🔧 Requirements and Installation

```bash

1. Clone the repo with submodules: UNO & OmniGen2

git clone --recurse-submodules git@github.com:bytedance/UMO.git cd UMO ```

UMO requirements based on UNO

```bash

2.1 (Optional, but recommended) Create a clean virtual Python 3.11 environment

python3 -m venv venv/UMOUNO source venv/UMOUNO/bin/activate

3.1 Install submodules UNO requirements as:

https://github.com/bytedance/UNO?tab=readme-ov-file#-requirements-and-installation

4.1 Install UMO requirements

pip install -r requirements.txt ```

UMO requirements based on OmniGen2

```bash

2.2 (Optional, but recommended) Create a clean virtual Python 3.11 environment

python3 -m venv venv/UMOOmniGen2 source venv/UMOOmniGen2/bin/activate

3.2 Install submodules OmniGen2 requirements as:

https://github.com/VectorSpaceLab/OmniGen2?tab=readme-ov-file#%EF%B8%8F-environment-setup

4.2 Install UMO requirements

pip install -r requirements.txt ```

UMO checkpoints download

```bash

pip install huggingface_hub hf-transfer

export HFHUBENABLEHFTRANSFER=1 # use hf_transfer to speedup

export HF_ENDPOINT=https://hf-mirror.com # use mirror to speedup if necessary

reponame="bytedance-research/UMO" localdir="models/"$repo_name

huggingface-cli download --resume-download $reponame --local-dir $localdir ```

🌟 Gradio Demo

```bash

UMO (based on UNO)

python3 demo/UNO/app.py --lorapath models/bytedance-research/UMO/UMOUNO.safetensors

UMO (based on OmniGen2)

python3 demo/OmniGen2/app.py --lorapath models/bytedance-research/UMO/UMOOmniGen2.safetensors ```

✍️ Inference

UMO (based on UNO) inference on XVerseBench

```bash

single subject

accelerate launch eval/UNO/inferencexversebench.py \ --evaljsonpath projects/XVerse/eval/tools/XVerseBenchsingle.json \ --numimagesperprompt 4 \ --width 768 \ --height 768 \ --savepath output/XVerseBench/single/UMOUNO \ --lorapath models/bytedance-research/UMO/UMO_UNO.safetensors

multi subject

accelerate launch eval/UNO/inferencexversebench.py \ --evaljsonpath projects/XVerse/eval/tools/XVerseBenchmulti.json \ --numimagesperprompt 4 \ --width 768 \ --height 768 \ --savepath output/XVerseBench/multi/UMOUNO \ --lorapath models/bytedance-research/UMO/UMO_UNO.safetensors ```

UMO (based on UNO) inference on OmniContext

bash accelerate launch eval/UNO/inference_omnicontext.py \ --eval_json_path OmniGen2/OmniContext \ --width 768 \ --height 768 \ --save_path output/OmniContext/UMO_UNO \ --lora_path models/bytedance-research/UMO/UMO_UNO.safetensors

UMO (based on OmniGen2) inference on XVerseBench

```bash

single subject

accelerate launch -m eval.OmniGen2.inferencexversebench \ --modelpath OmniGen2/OmniGen2 \ --modelname UMOOmniGen2 \ --testdata projects/XVerse/eval/tools/XVerseBenchsingle.json \ --resultdir output/XVerseBench/single \ --numimagesperprompt 4 \ --disablealignres \ --lorapath models/bytedance-research/UMO/UMOOmniGen2.safetensors

multi subject

accelerate launch -m eval.OmniGen2.inferencexversebench \ --modelpath OmniGen2/OmniGen2 \ --modelname UMOOmniGen2 \ --testdata projects/XVerse/eval/tools/XVerseBenchmulti.json \ --resultdir output/XVerseBench/multi \ --numimagesperprompt 4 \ --disablealignres \ --lorapath models/bytedance-research/UMO/UMOOmniGen2.safetensors ```

UMO (based on OmniGen2) inference on OmniContext

bash accelerate launch -m eval.OmniGen2.inference_omnicontext \ --model_path OmniGen2/OmniGen2 \ --model_name UMO_OmniGen2 \ --test_data OmniGen2/OmniContext \ --result_dir output/OmniContext \ --num_images_per_prompt 1 \ --disable_align_res \ --lora_path models/bytedance-research/UMO/UMO_OmniGen2.safetensors

🔍 Evaluation

Evaluation on XVerseBench

To make evaluation on XVerseBench, please get the dependencies and models as XVerse first.

Then run the script:

```bash

UMO (based on UNO) single subject

bash scripts/evalxversebench.sh single output/XVerseBench/single/UMOUNO

UMO (based on UNO) multi subject

bash scripts/evalxversebench.sh multi output/XVerseBench/multi/UMOUNO

UMO (based on OmniGen2) single subject

bash scripts/evalxversebench.sh single output/XVerseBench/single/UMOOmniGen2

UMO (based on OmniGen2) multi subject

bash scripts/evalxversebench.sh multi output/XVerseBench/multi/UMOOmniGen2 ```

Evaluation on OmniContext

For original metrics (i.e., PF, SC, Overall) in OmniContext, just follow OmniContext.

For ID-Sim and ID-Conf metric, please run the script:

```bash

UMO (based on UNO)

bash scripts/evalidomnicontext.sh UMO_UNO

UMO (based on OmniGen2)

bash scripts/evalidomnicontext.sh UMO_OmniGen2 ```

📌 Tips and Notes

Please note that UNO gets unstable results on parts of OmniContext due to the different prompt format with its training data (UNO-1M), leading to similar issue with UMO based on it. To get better results with these two models, we recommend using description prompt instead of instruction one, using resolution 768~1024 instead of 512.

📄 Disclaimer

We open-source this project for academic research. The vast majority of images used in this project are either generated or licensed. If you have any concerns, please contact us, and we will promptly remove any inappropriate content. Our code is released under the Apache 2.0 License.

This research aims to advance the field of generative AI. Users are free to create images using this tool, provided they comply with local laws and exercise responsible usage. The developers are not liable for any misuse of the tool by users.

🚀 Updates

For the purpose of fostering research and the open-source community, we plan to open-source the entire project, encompassing training, inference, weights, etc. Thank you for your patience and support! 🌟

  • [x] Release project page
  • [x] Release model on huggingface
  • [x] Release huggingface demo
  • [ ] Release training code

Citation

If UMO is helpful, please help to ⭐ the repo.

If you find this project useful for your research, please consider citing our paper: bibtex @misc{cheng2025umoscalingmultiidentityconsistency, title={UMO: Scaling Multi-Identity Consistency for Image Customization via Matching Reward}, author={Yufeng Cheng and Wenxu Wu and Shaojin Wu and Mengqi Huang and Fei Ding and Qian He}, year={2025}, eprint={2509.06818}, archivePrefix={arXiv}, primaryClass={cs.CV}, url={https://arxiv.org/abs/2509.06818}, }

Owner

  • Name: Bytedance Inc.
  • Login: bytedance
  • Kind: organization
  • Location: Singapore

GitHub Events

Total
  • Watch event: 10
  • Delete event: 1
  • Push event: 6
  • Pull request event: 1
  • Create event: 1
Last Year
  • Watch event: 10
  • Delete event: 1
  • Push event: 6
  • Pull request event: 1
  • Create event: 1

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 0
  • Total pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 minute
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 minute
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • fenfenfenfan (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

requirements.txt pypi
  • bs4 ==0.0.1
  • facexlib ==0.3.0
  • ftfy ==6.1.1
  • insightface ==0.7.3
  • kornia ==0.6.12
  • omegaconf ==2.3.0
  • onnxruntime ==1.22.0
  • protobuf ==3.20.3
  • pycocotools ==2.0.7
  • scikit-image ==0.25.1
  • scipy ==1.11.3