Project Icon

OMG

优化多角色图像生成框架,支持个性化和样式控制

OMG是一个多概念图像生成框架,支持Civitai.com的角色和样式LoRA模型。结合InstantID可实现单图多ID个性化。该框架提供高质量多角色图像生成,支持布局和样式控制。项目开源并附详细说明,为图像生成领域带来新突破。

OMG:扩散模型中的遮挡友好个性化多概念生成(ECCV 2024)

孔哲 · 张勇* · 杨天宇 · 王涛· 张凯浩

吴碧珠 · 陈冠英 · 刘伟 · 罗文涵*

*通讯作者

OMG + LORA

OMG + InstantID

GitHub

简介: OMG是一个多概念图像生成框架,支持Civitai.com上的角色和风格LoRA。它还可以与InstantID结合使用,为每个ID仅使用一张图像实现多ID生成。

OMG简介: 一个用于高质量多角色图像生成的工具。

图片替代文本

预告片演示: 使用OMG + SVD创作的短片"家庭防卫"。

图片替代文本

:label: 更新日志

  • [2023/3/22] 🔥 我们发布了OMG + InstantID的Hugging Face空间。支持使用单张图像进行ID个性化。
  • [2023/3/19] 🔥 我们发布了技术报告OMG-LoRAs的Hugging Face空间
  • [2023/3/18] 🔥 我们发布了OMG的源代码和gradio演示。

🔆 介绍

1. OMG + LoRA(使用多张图像的ID)

2. OMG + InstantID(使用单张图像的ID)

3. OMG + ControlNet(布局控制)

4. OMG + 风格LoRAs(风格控制)

:wrench: 依赖项和安装

  1. 代码需要python==3.10.6,以及pytorch==2.0.1torchvision==0.15.2。请按照此处的说明安装PyTorch和TorchVision依赖项。强烈建议安装支持CUDA的PyTorch和TorchVision。
conda create -n OMG python=3.10.6
conda activate OMG
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2
pip install -r requirements.txt
pip install git+https://github.com/facebookresearch/segment-anything.git
  1. 对于视觉理解,您可以选择YoloWorld + EfficientViT SAMGroundingDINO + SAM
    1. (推荐)YoloWorld + EfficientViT SAM:

pip install inference[yolo-world]==0.9.13
pip install  onnxsim==0.4.35

    1. (可选)如果您无法安装inference[yolo-world],可以安装GroundingDINO进行视觉理解。

GroundingDINO需要手动安装。

运行以下命令,使环境变量在当前shell下设置:


export CUDA_HOME=/path/to/cuda-11.3

在这个例子中,/path/to/cuda-11.3应替换为您安装CUDA工具包的路径。


git clone https://github.com/IDEA-Research/GroundingDINO.git

cd GroundingDINO/

pip install -e .

更多安装详情可以在GroundingDINO找到

⏬ 预训练模型准备

1) 下载模型

1. 必需下载:

下载stable-diffusion-xl-base-1.0controlnet-openpose-sdxl-1.0

对于InstantID + OMG,下载: wangqixun/YamerMIX_v8InstantIDantelopev2

2. 对于视觉理解,您可以选择"YoloWorld + EfficientViT SAM"或"GroundingDINO + SAM"。

对于YoloWorld + EfficientViT SAMEfficientViT-SAM-XL1yolo-world

对于GroundingDINO + SAMGroundingDINOSAM

3. 对于角色LoRA,至少下载一个男性角色和一个女性角色。

对于男性角色LoRAChris EvansGleb SavchenkoHarry PotterJordan Torres

对于女性角色LoRATaylor SwiftJennifer LawrenceHermione GrangerKeira Knightley

4. (可选)如果使用ControlNet,下载:

ControlNetcontrolnet-canny-sdxl-1.0controlnet-depth-sdxl-1.0dpt-hybrid-midas

5. (可选)如果使用风格LoRA,请下载:

动漫素描风格油画风格电影摄影风格

2) 准备工作

将模型放在checkpoint下,如下所示:

OMG
├── assets
├── checkpoint
│   ├── antelopev2
│   │   └── models
│   │       └── antelopev2
│   │           ├── 1k3d68.onnx
│   │           ├── 2d106det.onnx
│   │           ├── genderage.onnx
│   │           ├── glintr100.onnx
│   │           └── scrfd_10g_bnkps.onnx
│   ├── ControlNet
│   ├── controlnet-canny-sdxl-1.0
│   ├── controlnet-depth-sdxl-1.0
│   ├── controlnet-openpose-sdxl-1.0
│   ├── dpt-hybrid-midas
│   ├── GroundingDINO
│   ├── InstantID
│   ├── lora
│   │   ├── chris-evans.safetensors 
│   │   ├── Gleb-Savchenko_Liam-Hemsworth.safetensors 
│   │   ├── Harry_Potter.safetensors 
│   │   ├── Hermione_Granger.safetensors 
│   │   ├── jordan_torres_v2_xl.safetensors 
│   │   ├── keira_lora_sdxl_v1-000008.safetensors 
│   │   ├── lawrence_dh128_v1-step00012000.safetensors 
│   │   └── TaylorSwiftSDXL.safetensors 
│   ├── sam
│   │   ├── sam_vit_h_4b8939.pth
│   │   └── xl1.pt 
│   ├── stable-diffusion-xl-base-1.0 
│   ├── style
│   │   ├── Anime_Sketch_SDXL.safetensors 
│   │   ├── Cinematic Hollywood Film.safetensors
│   │   └── EldritchPaletteKnife.safetensors 
│   └── YamerMIX_v8 
├── example
├── gradio_demo
├── inference_instantid.py
├── inference_lora.py
├── README.md
├── requirements.txt
└── src

ViT-B-32.pt(从openai下载)放在~/.cache/clip/ViT-B-32.pt。 如果使用YoloWorld,将yolo-world.pt放在/tmp/cache/yolo_world/l/yolo-world.pt

或者你可以手动设置检查点路径,如下所示:

python inference_lora.py  \
--pretrained_sdxl_model <stable-diffusion-xl-base-1.0的路径> \
--controlnet_checkpoint <controlnet-openpose-sdxl-1.0的路径> \
--efficientViT_checkpoint <efficientViT-SAM-XL1的路径> \
--dino_checkpoint <GroundingDINO的路径> \
--sam_checkpoint <sam的路径> \
--lora_path <角色1的Lora路径|角色2的Lora路径> \
--style_lora <风格LoRA的路径>

对于OMG + InstantID:

python inference_instantid.py  \
--pretrained_model <stable-diffusion-xl-base-1.0的路径> \
--controlnet_path <InstantID controlnet的路径> \
--face_adapter_path <InstantID face adapter的路径> \
--efficientViT_checkpoint <efficientViT-SAM-XL1的路径> \
--dino_checkpoint <GroundingDINO的路径> \
--sam_checkpoint <sam的路径> \
--antelopev2_path <antelopev2的路径> \
--style_lora <风格LoRA的路径>

:computer: 使用方法

1: OMG + LoRA

Harry_Potter.safetensorsHarry PotterHermione_Granger.safetensorsHermione Granger

为了视觉理解,你可以设置--segment_type 'yoloworld'以使用YoloWorld + EfficientViT SAM,或设置--segment_type 'GroundingDINO'以使用GroundingDINO + SAM

python inference_lora.py \
    --prompt <两个人的提示词> \
    --negative_prompt <负面提示词> \
    --prompt_rewrite "[<人物1的提示词>]-*-[<负面提示词>]|[<人物2的提示词>]-*-[负面提示词]" \
    --lora_path "[<角色1的Lora路径|角色2的Lora路径>]"

例如:

python inference_lora.py \
    --prompt "特写照片,展示酷炫男性和美丽女性离开岛屿带着宝藏,乘船回到度假海滩,开始他们的爱情故事时脸上幸福的笑容,35毫米照片,胶片,专业,4K,高度细节。" \
    --negative_prompt '噪点,模糊,柔和,变形,丑陋' \
    --prompt_rewrite '[特写照片,Chris Evans穿着霍格沃茨校服,表情惊讶,35毫米照片,胶片,专业,4K,高度细节。]-*-[噪点,模糊,柔和,变形,丑陋]|[特写照片,TaylorSwift穿着霍格沃茨校服,表情惊讶,35毫米照片,胶片,专业,4K,高度细节。]-*-[噪点,模糊,柔和,变形,丑陋]' \
    --lora_path './checkpoint/lora/chris-evans.safetensors|./checkpoint/lora/TaylorSwiftSDXL.safetensors'

对于OMG + LoRA + ControlNet(人体姿势):

python inference_lora.py \
    --prompt "特写照片,展示酷炫男性和美丽女性离开岛屿带着宝藏,乘船回到度假海滩,开始他们的爱情故事时脸上幸福的笑容,35毫米照片,胶片,专业,4K,高度细节。" \
    --negative_prompt '噪点,模糊,柔和,变形,丑陋' \
    --prompt_rewrite '[特写照片,Chris Evans穿着霍格沃茨校服,表情惊讶,35毫米照片,胶片,专业,4K,高度细节。]-*-[噪点,模糊,柔和,变形,丑陋]|[特写照片,TaylorSwift穿着霍格沃茨校服,表情惊讶,35毫米照片,胶片,专业,4K,高度细节。]-*-[噪点,模糊,柔和,变形,丑陋]' \
    --lora_path './checkpoint/lora/chris-evans.safetensors|./checkpoint/lora/TaylorSwiftSDXL.safetensors' \
    --spatial_condition './example/pose.png' \
    --controlnet_checkpoint './checkpoint/controlnet-openpose-sdxl-1.0'

对于OMG + LoRA + 风格:

python inference_lora.py \
    --prompt "特写照片,展示酷炫男性和美丽女性离开岛屿带着宝藏,乘船回到度假海滩,开始他们的爱情故事时脸上幸福的笑容,35毫米照片,胶片,专业,4K,高度细节,铅笔素描:1.2,凌乱线条,灰度,传统媒介,素描。" \
    --negative_prompt '噪点,模糊,柔和,变形,丑陋' \
    --prompt_rewrite '[特写照片,Chris Evans穿着霍格沃茨校服,表情惊讶,35毫米照片,胶片,专业,4K,高度细节,铅笔素描:1.2,凌乱线条,灰度,传统媒介,素描。]-*-[噪点,模糊,柔和,变形,丑陋]|[特写照片,TaylorSwift穿着霍格沃茨校服,表情惊讶,35毫米照片,胶片,专业,4K,高度细节,铅笔素描:1.2,凌乱线条,灰度,传统媒介,素描。]-*-[噪点,模糊,柔和,变形,丑陋]' \
    --lora_path './checkpoint/lora/chris-evans.safetensors|./checkpoint/lora/TaylorSwiftSDXL.safetensors' \
    --style_lora './checkpoint/style/Anime_Sketch_SDXL.safetensors' 

2: OMG + InstantID

python inference_instantid.py \
    --prompt <两个人物的提示词> \
    --negative_prompt <负面提示词> \
    --prompt_rewrite "[<人物1的提示词>]-*-[<负面提示词>]-*-<参考图片1的路径>|[<人物2的提示词>]-*-[负面提示词]-*-<参考图片2的路径>"

例如:

python inference_instantid.py \
    --prompt '特写照片,展现酷炫男子和美丽女子离开岛屿携带宝藏、乘船返回度假海滩并开始爱情故事时脸上幸福的笑容,35毫米照片,胶片,专业,4K,高度细节。' \
    --negative_prompt '杂乱,模糊,柔和,变形,丑陋' \
    --prompt_rewrite '[男子特写照片,35毫米照片,专业,4K,高度细节。]-*-[杂乱,模糊,柔和,变形,丑陋]-*-./example/chris-evans.jpg|[女子特写照片,35毫米照片,专业,4K,高度细节。]-*-[杂乱,模糊,柔和,变形,丑陋]-*-./example/TaylorSwift.png'

用于 OMG + InstantID + ControlNet (人体姿势):

python inference_instantid.py \
    --prompt '特写照片,展现酷炫男子和美丽女子离开岛屿携带宝藏、乘船返回度假海滩并开始爱情故事时脸上幸福的笑容,35毫米照片,胶片,专业,4K,高度细节。' \
    --negative_prompt '杂乱,模糊,柔和,变形,丑陋' \
    --prompt_rewrite '[男子特写照片,35毫米照片,专业,4K,高度细节。]-*-[杂乱,模糊,柔和,变形,丑陋]-*-./example/chris-evans.jpg|[女子特写照片,35毫米照片,专业,4K,高度细节。]-*-[杂乱,模糊,柔和,变形,丑陋]-*-./example/TaylorSwift.png' \
    --spatial_condition './example/pose.png' \
    --t2i_controlnet_path './checkpoint/controlnet-openpose-sdxl-1.0'

用于 OMG + InstantID + 风格:

python inference_instantid.py \
    --prompt '特写照片,展现酷炫男子和美丽女子离开岛屿携带宝藏、乘船返回度假海滩并开始爱情故事时脸上幸福的笑容,35毫米照片,胶片,专业,4K,高度细节,铅笔素描:1.2,凌乱线条,灰度,传统媒介,速写。' \
    --negative_prompt '杂乱,模糊,柔和,变形,丑陋' \
    --prompt_rewrite '[男子特写照片,35毫米照片,专业,4K,高度细节,铅笔素描:1.2,凌乱线条,灰度,传统媒介,速写。]-*-[杂乱,模糊,柔和,变形,丑陋]-*-./example/chris-evans.jpg|[女子特写照片,35毫米照片,专业,4K,高度细节,铅笔素描:1.2,凌乱线条,灰度,传统媒介,速写。]-*-[杂乱,模糊,柔和,变形,丑陋]-*-./example/TaylorSwift.png' \
    --style_lora './checkpoint/style/Anime_Sketch_SDXL.safetensors' 

用于 OMG + InstantID + 风格 + ControlNet (人体姿势):

python inference_instantid.py \
    --prompt '特写照片,展现酷炫男子和美丽女子离开岛屿携带宝藏、乘船返回度假海滩并开始爱情故事时脸上幸福的笑容,35毫米照片,胶片,专业,4K,高度细节,铅笔素描:1.2,凌乱线条,灰度,传统媒介,速写。' \
    --negative_prompt '杂乱,模糊,柔和,变形,丑陋' \
    --prompt_rewrite '[男子特写照片,35毫米照片,专业,4K,高度细节,铅笔素描:1.2,凌乱线条,灰度,传统媒介,速写。]-*-[杂乱,模糊,柔和,变形,丑陋]-*-./example/chris-evans.jpg|[女子特写照片,35毫米照片,专业,4K,高度细节,铅笔素描:1.2,凌乱线条,灰度,传统媒介,速写。]-*-[杂乱,模糊,柔和,变形,丑陋]-*-./example/TaylorSwift.png' \
    --style_lora './checkpoint/style/Anime_Sketch_SDXL.safetensors' \
    --spatial_condition './example/pose.png' \
    --t2i_controlnet_path './checkpoint/controlnet-openpose-sdxl-1.0'

3. 带有 OMG + LoRA 的本地 gradio 演示

如果选择 YoloWorld + EfficientViT SAM:

python gradio_demo/app.py --segment_type yoloworld

对于 GroundingDINO + SAM:

python gradio_demo/app.py --segment_type GroundingDINO

4. 带有 OMG + InstantID 的本地 gradio 演示

如果选择 YoloWorld + EfficientViT SAM:

python gradio_demo/app_instantID.py --segment_type yoloworld

对于 GroundingDINO + SAM:

python gradio_demo/app_instantID.py --segment_type GroundingDINO

连接到启动过程完成后显示的公共 URL。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号