🚀 OmniGen: 統一画像生成
OmniGenは、マルチモーダルなプロンプトから幅広い画像を生成できる統一画像生成モデルです。シンプルで柔軟かつ使いやすい設計となっています。推論コードを提供しているので、誰でもOmniGenのさまざまな機能を探索できます。
詳細については、私たちのGitHubリポジトリを参照してください: https://github.com/VectorSpaceLab/OmniGen
🚀 クイックスタート
OmniGenの使用方法
GitHubを通じてインストールすることをおすすめします:
git clone https://github.com/staoxiao/OmniGen.git
cd OmniGen
pip install -e .
または、pypiを通じてインストールすることもできます:
pip install OmniGen
以下はいくつかの使用例です:
from OmniGen import OmniGenPipeline
pipe = OmniGenPipeline.from_pretrained("Shitao/OmniGen-v1")
images = pipe(
prompt="A curly-haired man in a red shirt is drinking tea.",
height=1024,
width=1024,
guidance_scale=2.5,
seed=0,
)
images[0].save("example_t2i.png")
images = pipe(
prompt="A man in a black shirt is reading a book. The man is the right man in <img><|image_1|></img>.",
input_images=["./imgs/test_cases/two_man.jpg"],
height=1024,
width=1024,
separate_cfg_infer=False,
guidance_scale=3,
img_guidance_scale=1.6
)
images[0].save("example_ti2i.png")
推論時の引数の詳細については、docs/inference.md を参照してください。
画像生成のさらなる例については、inference.ipynb と inference_demo.ipynb を参照してください。
Diffusersの使用方法
近日公開予定です。
Gradioデモ
Huggingface でオンラインデモを構築しています。
ローカルのGradioデモを実行するには、以下のコマンドを実行します:
python app.py
✨ 主な機能
OmniGenは、マルチモーダルなプロンプトから幅広い画像を生成できる統一画像生成モデルです。既存の画像生成モデルでは、満足のいく画像を生成するために、いくつかの追加のネットワークモジュール(ControlNet、IP-Adapter、Reference-Netなど)をロードし、追加の前処理ステップ(顔検出、ポーズ推定、クロッピングなど)を実行する必要があることが多いです。しかし、私たちは、将来の画像生成パラダイムは、GPTが言語生成で機能するのと同様に、追加のプラグインや操作を必要とせずに、任意のマルチモーダル命令を通じて直接さまざまな画像を生成する、よりシンプルで柔軟なものになるべきだと考えています。
📦 インストール
OmniGenのインストール
GitHubを通じてインストールすることをおすすめします:
git clone https://github.com/staoxiao/OmniGen.git
cd OmniGen
pip install -e .
または、pypiを通じてインストールすることもできます:
pip install OmniGen
💻 使用例
基本的な使用法
from OmniGen import OmniGenPipeline
pipe = OmniGenPipeline.from_pretrained("Shitao/OmniGen-v1")
images = pipe(
prompt="A curly-haired man in a red shirt is drinking tea.",
height=1024,
width=1024,
guidance_scale=2.5,
seed=0,
)
images[0].save("example_t2i.png")
images = pipe(
prompt="A man in a black shirt is reading a book. The man is the right man in <img><|image_1|></img>.",
input_images=["./imgs/test_cases/two_man.jpg"],
height=1024,
width=1024,
separate_cfg_infer=False,
guidance_scale=3,
img_guidance_scale=1.6
)
images[0].save("example_ti2i.png")
📚 ドキュメント
概要
OmniGenは、マルチモーダルなプロンプトから幅広い画像を生成できる統一画像生成モデルです。シンプルで柔軟かつ使いやすい設計となっています。私たちは推論コードを提供しているので、誰でもOmniGenのさまざまな機能を探索できます。
ニュース
手法
詳細については、論文を参照してください。
OmniGenの機能

OmniGenは、テキストから画像の生成、主題駆動型の生成、Identity-Preserving Generation、画像編集、画像条件付き生成など、さまざまなタスクを実行するために使用できる統一画像生成モデルです。OmniGenは追加のプラグインや操作を必要とせず、テキストプロンプトに従って入力画像の特徴(必要なオブジェクト、人物のポーズ、深度マッピングなど)を自動的に識別できます。
推論コードにいくつかの例を示しています。また、推論デモコードでは、画像を生成して修正する面白いパイプラインを示しています。
特定の機能に完全に満足できない場合や、新しい機能を追加したい場合は、OmniGenのファインチューニングを試すことができます。
ファインチューニング
私たちは、OmniGenをファインチューニングするためのトレーニングスクリプト train.py
を提供しています。
以下はLoRAファインチューニングの簡単な例です:
accelerate launch --num_processes=1 train.py \
--model_name_or_path Shitao/OmniGen-v1 \
--batch_size_per_device 2 \
--condition_dropout_prob 0.01 \
--lr 1e-3 \
--use_lora \
--lora_rank 8 \
--json_file ./toy_data/toy_subject_data.jsonl \
--image_path ./toy_data/images \
--max_input_length_limit 18000 \
--keep_raw_resolution \
--max_image_size 1024 \
--gradient_accumulation_steps 1 \
--ckpt_every 10 \
--epochs 200 \
--log_every 1 \
--results_dir ./results/toy_finetune_lora
詳細(完全なファインチューニングなど)については、docs/finetune.md を参照してください。
🔧 技術詳細
詳細については、論文を参照してください。
📄 ライセンス
このリポジトリはMITライセンスの下でライセンスされています。
引用
このリポジトリが役に立った場合は、スター⭐を付けて引用を考慮してください。
@article{xiao2024omnigen,
title={Omnigen: Unified image generation},
author={Xiao, Shitao and Wang, Yueze and Zhou, Junjie and Yuan, Huaying and Xing, Xingrun and Yan, Ruiran and Wang, Shuting and Huang, Tiejun and Liu, Zheng},
journal={arXiv preprint arXiv:2409.11340},
year={2024}
}