ニュース | 方法論 | 機能 | クイックスタート | ファインチューン | ライセンス | 引用
2024-11-03: レプリケート デモと API を追加しました:
2024-10-28: メモリ使用量と時間コストを最適化した新しいバージョンの推論コードをリリースしました。詳細については、docs/inference.md を参照してください。
2024-10-22: ? OmniGen 用のコードを公開します。推論: docs/inference.md 学習: docs/fine-tuning.md
2024-10-22: ? OmniGen の最初のバージョンをリリースします。モデルの重量: Shitao/OmniGen-v1 HF デモ: ?
OmniGen は、マルチモーダル プロンプトから幅広い画像を生成できる統合画像生成モデルです。シンプル、柔軟、そして使いやすいように設計されています。誰もが OmniGen のより多くの機能を探索できるように、推論コードを提供します。
既存の画像生成モデルでは、満足のいく画像を生成するために、いくつかの追加のネットワーク モジュール (ControlNet、IP アダプター、Reference-Net など) をロードし、追加の前処理ステップ (顔検出、姿勢推定、トリミングなど) を実行する必要がよくあります。画像。しかし、私たちは、将来の画像生成パラダイムはよりシンプルかつ柔軟であるべきだと考えています。つまり、言語生成における GPT の動作と同様に、追加のプラグインや操作を必要とせずに、任意のマルチモーダル命令を通じてさまざまな画像を直接生成する必要があると考えています。
リソースが限られているため、OmniGen にはまだ改善の余地があります。私たちは今後も最適化を続け、より普遍的な画像生成モデルのインスピレーションとなることを願っています。また、特定のタスクに合わせたネットワークの設計を心配することなく、OmniGen を簡単に微調整することもできます。対応するデータを準備して、スクリプトを実行するだけです。想像力はもはや制限されません。誰もがあらゆる画像生成タスクを構築でき、おそらく非常に興味深く、素晴らしく、創造的なものを達成できるでしょう。
ご質問、アイデア、または OmniGen に実現してほしい興味深いタスクがある場合は、お気軽に [email protected]、[email protected]、[email protected] までご相談ください。モデルの改善に役立つフィードバックをお待ちしております。
詳細は論文でご覧いただけます。
OmniGen は、テキストから画像への生成、主題主導の生成、アイデンティティ保持生成、画像編集、画像条件付き生成などのさまざまなタスクを実行するために使用できる統合画像生成モデルです。 OmniGen は追加のプラグインや操作を必要とせず、テキスト プロンプトに従って入力画像内の特徴 (たとえば、必要なオブジェクト、人間のポーズ、深度マッピング) を自動的に識別できます。 inference.ipynb でいくつかの例を紹介します。また、inference_demo.ipynb では、イメージを生成および変更するための興味深いパイプラインを示します。
OmniGen の機能を図で示します。
OmniGen 経由で画像生成を柔軟に制御できます
参照式の生成: 複数の画像を入力し、単純な一般言語を使用してそれらの画像内のオブジェクトを参照できます。 OmniGen は、各画像内の必要なオブジェクトを自動的に認識し、それらに基づいて新しい画像を生成できます。画像のトリミングや顔検出などの追加の操作は必要ありません。
特定の機能に完全に満足できない場合、または新しい機能を追加したい場合は、OmniGen を微調整してみることができます。
Github 経由でインストールします。
git clone https://github.com/staoxiao/OmniGen.gitcd OmniGen pip install -e 。
以下にいくつかの例を示します。
from OmniGen import OmniGenPipelinepipe = OmniGenPipeline.from_pretrained("Shitao/OmniGen-v1") # 注: 'pipe = OmniGenPipeline.from_pretrained(your_local_model_path)' などのローカル モデル パスも使用できます。your_local_model_path 内のすべてのファイルは https://huggingface.co/Shitao/OmniGen-v1/tree/main として編成する必要があります。 # 注: ダウンロード時に元のリンク https://huggingface.co/Shitao/OmniGen-v1/tree/main が不安定な場合は、このミラー リンク https://hf-mirror.com/Shitao/OmniGen を使用することをお勧めします。 -v1/tree/main または https://hf-mirror.com/ の他の方法 ## Text to Imageimages = Pipe(prompt="赤いシャツを着た巻き毛の男がお茶を飲んでいます。", height=1024,幅=1024、ガイダンススケール=2.5、シード=0、 )images[0].save("example_t2i.png") # 出力を保存 PIL Image## マルチモーダル to Image# プロンプトでは、プレースホルダーを使用して画像を表します。画像プレースホルダーは <|image_*|> の形式である必要があります。# input_images には複数の画像を追加できます。各画像にプレースホルダーがあることを確認してください。たとえば、リスト input_images [img1_path, img2_path] の場合、プロンプトには 2 つのプレースホルダーが必要です: <|image_1|>、<|image_2|>.images = Pipe (prompt="黒いシャツを着た男性が本を読んでいます。その男性は <|image_1|> の正しい男性です。",input_images=["./imgs/test_cases/two_man.jpg "],height=1024, width=1024,guidance_scale=2.5, img_guidance_scale=1.6,seed=0)images[0].save("example_ti2i.png") # 出力 PIL 画像を保存
メモリが不足している場合は、 offload_model=True
を設定できます。複数の画像を入力するときに推論時間が長すぎる場合は、 max_input_image_size
減らすことができます。 必要なリソースと OmniGen を効率的に実行する方法については、docs/inference.md#requiremented-resources を参照してください。
画像生成のその他の例については、inference.ipynb および inference_demo.ipynb を参照してください。
推論の引数の詳細については、docs/inference.md を参照してください。
近日公開。
Huggingface でオンライン デモを構築します。
ローカル gradio デモの場合は、 pip install gradio spaces
インストールする必要があります。その後、次を実行できます。
pip インストール gradio spacepython app.py
OmniGen を微調整するためのトレーニング スクリプトtrain.py
が提供されています。 LoRA の微調整に関するおもちゃの例を次に示します。
起動を加速 --num_processes=1 train.py --モデル名またはパス Shitao/OmniGen-v1 --デバイスごとのバッチサイズ 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_10 ごと --エポック 200 --log_every 1 --results_dir ./results/toy_finetune_lora
詳細については、docs/fine-tuning.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} }