Omnigen V1
模型概述
OmniGen是一個支持多模態提示的統一圖像生成模型,能夠通過多模態指令直接生成多樣化圖像,無需插件和複雜操作。支持文本生成圖像、主體驅動生成、身份保持生成、圖像編輯等任務。
模型特點
多模態提示支持
支持通過文本和圖像等多種模態提示生成圖像,無需額外插件和複雜操作。
靈活控制
能夠自動識別輸入圖像特徵(如目標物體、人體姿態、深度圖等),靈活控制圖像生成。
易用性
提供簡潔的推理代碼和微調腳本,用戶可以輕鬆擴展功能。
模型能力
文本生成圖像
主體驅動生成
身份保持生成
圖像編輯
使用案例
創意設計
人物形象生成
根據文本描述生成特定形象的人物圖像。
生成高質量的人物圖像,如穿紅襯衫的捲髮男士在喝茶。
圖像編輯
根據輸入圖像和文本提示編輯圖像內容。
如將圖像中的人物替換為特定形象或修改其動作。
藝術創作
藝術風格轉換
將輸入圖像轉換為特定藝術風格。
生成具有藝術風格的圖像。
🚀 OmniGen:統一圖像生成
OmniGen是一個統一的圖像生成模型,可根據多模態提示生成各種圖像。它設計簡單、靈活且易用,能直接通過任意多模態指令生成圖像,無需額外插件和操作。
🚀 快速開始
使用OmniGen
通過Github安裝:
git clone https://github.com/staoxiao/OmniGen.git
cd OmniGen
pip install -e .
你也可以創建一個新環境以避免衝突:
# 創建一個Python 3.10.12的conda環境(你也可以使用virtualenv)
conda create -n omnigen python=3.10.12
conda activate omnigen
# 根據你的CUDA版本安裝pytorch,例如
pip install torch==2.3.1+cu118 torchvision --extra-index-url https://download.pytorch.org/whl/cu118
git clone https://github.com/staoxiao/OmniGen.git
cd OmniGen
pip install -e .
以下是一些使用示例:
from OmniGen import OmniGenPipeline
pipe = 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的結構組織
## 文本到圖像
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") # 保存輸出的PIL圖像
## 多模態到圖像
# 在提示中,我們使用佔位符來表示圖像。圖像佔位符的格式應為 <img><|image_*|></img>
# 你可以在input_images中添加多個圖像。請確保每個圖像都有其佔位符。例如,對於列表input_images [img1_path, img2_path],提示中需要有兩個佔位符:<img><|image_1|></img>,<img><|image_2|></img>。
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,
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。
使用Diffusers
即將推出。
Gradio演示
我們在 Huggingface 上構建了一個在線演示。
對於本地Gradio演示,你需要安裝 pip install gradio spaces
,然後可以運行:
pip install gradio spaces
python app.py
使用Google Colab
要在Google Colab中使用,請使用以下命令:
!git clone https://github.com/staoxiao/OmniGen.git
%cd OmniGen
!pip install -e .
!pip install gradio spaces
!python app.py --share
✨ 主要特性
- 統一生成:能夠根據多模態提示生成各種圖像,涵蓋文本到圖像、主題驅動生成、身份保留生成、圖像編輯和圖像條件生成等多種任務。
- 無需額外插件:可自動根據文本提示識別輸入圖像中的特徵,無需額外的插件或操作。
- 靈活可控:用戶可以通過調整參數靈活控制圖像生成過程。
- 易於微調:提供訓練腳本,方便用戶根據自己的需求對模型進行微調。
📦 安裝指南
通過Github安裝
git clone https://github.com/staoxiao/OmniGen.git
cd OmniGen
pip install -e .
創建新環境安裝
# 創建一個Python 3.10.12的conda環境(你也可以使用virtualenv)
conda create -n omnigen python=3.10.12
conda activate omnigen
# 根據你的CUDA版本安裝pytorch,例如
pip install torch==2.3.1+cu118 torchvision --extra-index-url https://download.pytorch.org/whl/cu118
git clone https://github.com/staoxiao/OmniGen.git
cd OmniGen
pip install -e .
💻 使用示例
基礎用法
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") # 保存輸出的PIL圖像
高級用法
## 多模態到圖像
# 在提示中,我們使用佔位符來表示圖像。圖像佔位符的格式應為 <img><|image_*|></img>
# 你可以在input_images中添加多個圖像。請確保每個圖像都有其佔位符。例如,對於列表input_images [img1_path, img2_path],提示中需要有兩個佔位符:<img><|image_1|></img>,<img><|image_2|></img>。
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,
guidance_scale=2.5,
img_guidance_scale=1.6,
seed=0
)
images[0].save("example_ti2i.png") # 保存輸出的PIL圖像
📚 詳細文檔
推理代碼
- 2024-10-28:我們發佈了新版本的推理代碼,優化了內存使用和時間成本。你可以參考 docs/inference.md 瞭解詳細信息。
模型功能
OmniGen是一個統一的圖像生成模型,可用於執行各種任務,包括但不限於文本到圖像生成、主題驅動生成、身份保留生成、圖像編輯和圖像條件生成。我們在 inference.ipynb 中展示了一些示例,並在 inference_demo.ipynb 中展示了一個有趣的圖像生成和修改流程。
微調
我們提供了一個訓練腳本 train.py
來對OmniGen進行微調。以下是一個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/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}
}
貢獻者
感謝所有貢獻者的努力,熱烈歡迎新成員加入!
更多信息請參考我們的倉庫:https://github.com/VectorSpaceLab/OmniGen
新聞 | 方法論 | 功能 | 快速開始 | 微調 | 許可證 | 引用
Clip Vit Large Patch14 336
基於Vision Transformer架構的大規模視覺語言預訓練模型,支持圖像與文本的跨模態理解
文本生成圖像
Transformers

C
openai
5.9M
241
Fashion Clip
MIT
FashionCLIP是基於CLIP開發的視覺語言模型,專門針對時尚領域進行微調,能夠生成通用產品表徵。
文本生成圖像
Transformers 英語

F
patrickjohncyh
3.8M
222
Gemma 3 1b It
Gemma 3是Google推出的輕量級先進開放模型系列,基於與Gemini模型相同的研究和技術構建。該模型是多模態模型,能夠處理文本和圖像輸入並生成文本輸出。
文本生成圖像
Transformers

G
google
2.1M
347
Blip Vqa Base
Bsd-3-clause
BLIP是一個統一的視覺語言預訓練框架,擅長視覺問答任務,通過語言-圖像聯合訓練實現多模態理解與生成能力
文本生成圖像
Transformers

B
Salesforce
1.9M
154
CLIP ViT H 14 Laion2b S32b B79k
MIT
基於OpenCLIP框架在LAION-2B英文數據集上訓練的視覺-語言模型,支持零樣本圖像分類和跨模態檢索任務
文本生成圖像
Safetensors
C
laion
1.8M
368
CLIP ViT B 32 Laion2b S34b B79k
MIT
基於OpenCLIP框架在LAION-2B英語子集上訓練的視覺-語言模型,支持零樣本圖像分類和跨模態檢索
文本生成圖像
Safetensors
C
laion
1.1M
112
Pickscore V1
PickScore v1 是一個針對文本生成圖像的評分函數,可用於預測人類偏好、評估模型性能和圖像排序等任務。
文本生成圖像
Transformers

P
yuvalkirstain
1.1M
44
Owlv2 Base Patch16 Ensemble
Apache-2.0
OWLv2是一種零樣本文本條件目標檢測模型,可通過文本查詢在圖像中定位對象。
文本生成圖像
Transformers

O
google
932.80k
99
Llama 3.2 11B Vision Instruct
Llama 3.2 是 Meta 發佈的多語言多模態大型語言模型,支持圖像文本到文本的轉換任務,具備強大的跨模態理解能力。
文本生成圖像
Transformers 支持多種語言

L
meta-llama
784.19k
1,424
Owlvit Base Patch32
Apache-2.0
OWL-ViT是一個零樣本文本條件目標檢測模型,可以通過文本查詢搜索圖像中的對象,無需特定類別的訓練數據。
文本生成圖像
Transformers

O
google
764.95k
129
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98