综合介绍
OmniGen 是一个由 VectorSpaceLab(智源) 开发的“通用”图像生成模型,允许用户通过简单的文本提示或多模态输入来创建多样化且具有上下文丰富的视觉效果。它特别适合于需要识别人物和一致性角色渲染的场景。用户可以上传最多三张图片,并通过详细的提示生成高质量的图像。此外,OmniGen 还支持对先前生成的图像进行编辑,提供灵活的种子处理功能,适合图像精炼和实验。
OmniGen 不需要额外的插件或操作,能够自动识别输入图像中的特征并生成所需图像。现有的图像生成模型通常需要加载几个额外的网络模块(如 ControlNet、IP-Adapter、Reference-Net 等)并执行额外的预处理步骤(如人脸检测、姿势估计、裁剪等)才能生成令人满意的图像。但是,我们认为未来的图像生成范式应该更加简单和灵活,即直接通过任意多模态指令生成各种图像,不需要额外的插件和操作,类似于 GPT 在语言生成中的工作方式。
功能列表
- 图像生成:通过文本提示或多模态输入生成多样化的图像。
- 个性化图像创建:上传最多三张图片,生成个性化的图像。
- 角色渲染:保持角色的一致性和识别性,适合需要识别人物的场景。
- 图像编辑:对先前生成的图像进行编辑,提供灵活的种子处理功能。
- 图像条件生成:根据输入图像的特定条件生成新图像。
- 高质量输出:详细的提示可以生成更清晰和高质量的图像。
使用帮助
- 上传图片:在OmniGen界面上传最多三张图片,可以是角色、物品或条件图。
- 描述图像:在提示框中详细描述你想要生成的图像。对于涉及图像元素的部分,使用格式 <img><|image_i|></img> 引入它们。
- 调整参数:在设置中调整OmniGen的生成参数,如图像比例。其他设置建议保持默认。
- 生成图像:点击生成按钮,进入队列等待图像生成。
- 编辑图像:使用OmniGen的种子处理功能,对生成的图像进行编辑和精炼。
提示:
- 对于图像编辑任务和 controlnet 任务,建议将输出图像的高度和宽度设置为与输入图像相同。例如,如果您想编辑一张 512x512 的图像,应将输出图像的高度和宽度设置为 512x512。您也可以设置
use_input_image_size_as_output
来自动将输出图像的高度和宽度与输入图像一致。 - 如果遇到内存不足或时间成本问题,可以设置
offload_model=True
,或参考 ./docs/inference.md#requiremented-resources 选择合适的设置。 - 当输入多张图像时,若推理时间过长,请尝试减少
max_input_image_size
。详细信息请参考 ./docs/inference.md#requiremented-resources。 - 过度饱和:如果图像看起来过度饱和,请降低
guidance_scale
。 - 低质量:更详细的提示词将产生更好的效果。
- 动漫风格:如果生成的图像呈现动漫风格,可以尝试在提示词中添加
photo
。 - 编辑生成的图像:如果通过 omnigen 生成了一张图像,之后想要编辑该图像,无法使用相同的 seed 进行编辑。例如,用 seed=0 生成图像,编辑时应使用 seed=1。
- 对于图像编辑任务,建议将图像放在编辑指令之前。例如,使用
<img><|image_1|></img> remove suit
,而不是remove suit <img><|image_1|></img>
。
OmniGen 在线访问及一键安装包
OmniGen 更多应用场景
图像编辑
OmniGen 具备良好的图像编辑能力,也能进行图像的文本生成。
指定人物生成
OmniGen 类似 InstandID、Pulid 等模型生成角色一致性图像等能力,即:输入具有单个对象的图像,理解并遵循指令,输出基于该对象的新图像。
不同于InstandID、Pulid的是,OmniGen还能从多个人物中指定生成。
指代表达生成
这是OmniGen 最独特的功能:能够从包含多个对象的图像中,识别指令所指代的对象并生成新的图像。
OmniGen 只需要根据提示词指令从多张图像中定位目标对象(最多能选择3张图),并生成遵循指令的新图像,而无需任何额外的模块和操作。
通用图像条件生成
这是OmniGen 支持类似 ControlNet 根据特定条件生成图像的能力。目前主要是根据参考人物骨架Openpose生成,另一能力是根据参考人物深度图生成。
不同于主流文生图模型需要Controlnet来辅助进行条件控制生成,OmniGen 仅凭单个模型完成整个 ControlNet 流程:直接使用 OmniGen 对原图提取视觉条件,并基于所提取的条件生成图像,无需额外处理器。而且更简单的是,OmniGen 直接根据参考图和提示词一键出图,不像ControlNet 还需要先生成骨骼图或深度图。
其他控制组件功能
除了以上OmniGen1.0已能实现的功能外,官方还表示OmniGen还有更多的功能,例如更多的Controlnet功能,线条、软边生成等。
经典计算机视觉任务
图像去噪、边缘检测、姿态估计等
甚至能像LLM一样具有一定的上下文学习能力 (In-context Learning) ,根据理解操作。