图像生成新范式:智源推出全能视觉生成模型 OmniGen
大型语言模型(LLM)的出现统一了语言生成任务,并彻底改变了人机交互。然而,在图像生成领域,能够在单一框架内处理各种任务的统一模型在很大程度上仍未得到探索。近日,智源推出了新的扩散模型架构 OmniGen,一种新的用于统一图像生成的多模态模型。
OmniGen 具有以下特点:
-
统一性:OmniGen 天然地支持各种图像生成任务,例如文生图、图像编辑、主题驱动生成和视觉条件生成等。此外,OmniGen可以处理经典的计算机视觉任务,将其转换为图像生成任务。
-
简单性:OmniGen 的架构高度简化。此外,与现有模型相比,它更加用户友好,可以通过指令完成复杂的任务,而不需要冗长的处理步骤和额外的模块(如 ControlNet 或 IP-Adapter),从而大大简化了工作流程。
-
知识迁移:受益于统一格式的学习,OmniGen 有效地跨不同任务迁移知识,应对未见过的任务和领域,并展示新颖的功能。我们还探讨了模型的推理能力和思维链机制的在图像生成领域的潜在应用。
相关链接:
-
Paper: https://arxiv.org/pdf/2409.11340
-
Code: https://github.com/VectorSpaceLab/OmniGen
-
Demo: https://huggingface.co/spaces/Shitao/OmniGen
基于 OmniGen 的通用能力,可实施更灵活的图像生成,以上展示一个简单 Pipeline:文本生成图像,编辑生成图像的部分元素,根据生成图像的人体姿态生成重绘图像,从另一图像中提取所需对象与新图像融合。
介绍
近年来,许多文生图模型在生成式 AI 的浪潮中脱颖而出。然而,这些出色的专有模型仅能基于文本生成图像。当用户产生更灵活、复杂、精细等的图像生成需求时,往往需要额外的插件和操作。
例如,若想参考任一姿态生成图像,常规方法是:用姿态检测器从参考图像中估计姿态作为条件输入,并加载对应的 Controlnet 插件,最后提取条件输入的特征馈入扩散模型生成图像。
此外,若想基于合照中的特定人物生成新图像,流程更加繁琐,需要裁剪图像以确保结果图像仅包含目标人物。
而诸如 InstandID 等方法还需使用额外的人脸检测器提取面部信息,并用面部编码器提取特征以输入模型。
值得注意的是,各种不同的生成任务甚至还需更多不同的插件和操作,如此复杂、琐碎而冗长的工作流极大地增加了训练和应用的成本。然而,即便如此繁琐,有时也仍难以满足一般的图像生成的需求,例如基于指定多张照片中的实体生成新图像。
相反,在文本生成领域,以 ChatGPT 为代表的模型可通过人类指令直接处理各种文本任务。那么,在图像生成领域,能否通过单个支持多种输入且耦合多项能力的模型,基于用户指令完成各种生成任务,而无需各种繁杂的流程吗?
为解决这一挑战性问题,智源发布了统一图像生成模型 OmniGen。OmniGen 模型具有良好的简洁性和易用性,集成了多种基础图像生成任务,包括但不限于:文生图、图像编辑、角色一致性生成、基于视觉条件的生成等。OmniGen 支持基于任意多模态的文图指令完成任务,而无需任何其他额外插件和操作。
能力
OmniGen 集多项能力于一体,包括但不限于:
-
文本到图像生成 (Text to Image Generation)
-
指代表达生成 (Referring Expression Generation)
-
通用图像条件生成 (General Image Conditional Generation)
-
图像编辑 (Image Edit)
-
经典计算机视觉任务:图像去噪、边缘检测、姿态估计等
-
一定的上下文学习能力 (In-context Learning)
以下简要展示部分能力效果:
文本到图像生成
指代表达生成
OmniGen 具备类似 InstandID、Pulid 等模型生成角色一致性图像等能力,即:输入具有单个对象的图像,理解并遵循指令,输出基于该对象的新图像。
同时,OmniGen 具有更高阶的能力:指代表达生成能力,我们把这种能力定义为能够从包含多个对象的图像中,识别指令所指代的对象并生成新的图像。
例如,OmniGen 可根据指令直接从多人图像中定位目标对象,并生成遵循指令的新图像,而无需任何额外的模块和操作:
更多样例:
通用图像条件生成
OmniGen 不仅支持类似 ControlNet 根据特定显式条件生成图像的能力,还同时具备处理经典计算机视觉任务的能力(如人体姿态估计、深度估计等)。
因此,OmniGen 可凭借单个模型完成整个 ControlNet 流程:直接使用 OmniGen 对原图提取视觉条件,并基于所提取的条件生成图像,无需额外处理器。
同时,OmniGen 还能更进一步简化中间流程,一步出图:直接输入原图,输入指令“Following the human pose(or depth mapping) of this image, generate a new image:...”,就可根据输入图像的人体姿态或深度图关系生成新图像。
图像编辑
OmniGen 具备良好的图像编辑能力,并且可以在一次运行中同时执行多条编辑指令,例如:
更多能力
OmniGen 具备潜在的推理能力,可以处理对模型理解和推断能力具有一定要求的非显式查询指令。
例如,要求模型删除图中能装水的物品,则模型能够理解和推断出指令涉及的图中物体并删除:
另一方面,OmniGen 具有一定程度的上下文学习能力,可根据参考样例对图像进行处理。
例如,输入一个分割皇后象棋的输入-输出配对样例 (Example),模型能识别并分割新输入图像中对应的物体:
思维链(Chain-of-Thought, CoT)方法将任务分解为多个步骤,并按顺序求解每个步骤以获得准确的最终答案,从而显著提高了llm的性能。我们考虑是否可以将类似的替代方案应用于图像生成。受人类绘画的基本方式的启发,我们希望模仿一步一步的绘画过程,从空白画布上迭代地生成图像。我们进行了初步的探索,微调后模型能够模拟人类行为一步步的生成图片,进一步的优化留给以后的研究。
OmniGen 的能力包括但不限于以上内容,还包括基本的图像去噪、边缘提取等能力。模型权重和代码已开源,用户可以自行探索更多OmniGen的能力。
模型
OmniGen 的核心设计原则是:简洁和有效。因此,我们最大程度舍弃了各种额外模块。OmniGen 的基本架构为:一个 Transformer 模型和一个 VAE 模块,共 3.8B 参数。其中,Transformer 继承于 Phi3-mini 模型,图像内部改用双向注意力 (Bidirectional Attention) 以契合图像数据特性。整体架构如下所示:
为实现强大的通用和泛化能力,研究人员需要基于大规模和多样化的数据集训练模型。然而,在图像生成领域,尚无一个可用的通用数据集。为此,我们构建了首个大规模且多样化的统一图像生成数据集 X2I,意为 “Anything to Image”。其中,不同任务的数据格式被重新组织和统一,以便于管理和使用。X2I 数据集包含约 1 亿图像,未来经审查等流程后将开源,旨在进一步推动通用图像生成领域的发展。下图简要展示了 X2I 数据集的一些示例:
小结与展望
总之,OmniGen 的统一图像生成范式,不但有助于执行各种下游任务,而且有利于组合各种能力满足更通用的需求。当前,OmniGen 的报告、权重和代码等已开源,欢迎社区共同参与对 OmniGen 潜在能力的发掘、基本性能的提升和广泛应用的探索。
OmniGen 模型是对统一图像生成的初步尝试,还有很大的提升空间。未来,智源将进一步改进模型基本能力,拓展更多有趣的功能。同时,微调代码已发布,用户可简单对其进行微调,由于OmniGen的输入形式非常多样,用户可自行定义各式各样的微调任务,赋予模型更多有意思的能力。
相关文章:
图像生成新范式:智源推出全能视觉生成模型 OmniGen
大型语言模型(LLM)的出现统一了语言生成任务,并彻底改变了人机交互。然而,在图像生成领域,能够在单一框架内处理各种任务的统一模型在很大程度上仍未得到探索。近日,智源推出了新的扩散模型架构 OmniGen&am…...
实现RPC接口的demo记录
1.Thrift RPC 接口实现 Demo Service public class DemoServiceImpl implements DemoService.Iface {private static final Logger logger LoggerFactory.getLogger(DemoServiceImpl.class);Overridepublic String sayHello(Context context, String msg) throws TException …...
Python期末题目 | 期末练习题【概念题+代码】
一、前言 Python 是一门功能强大且易于学习的编程语言,在高校中被广泛用作教学语言。Python 的期末考试通常会包含基础知识和编程实践,以考察学生的理解与应用能力。本文整理了一套 Python 期末练习题,包括选择题、填空题、判断题和代码题。…...
OpenCV基本操作(python开发)——(6)视频基本处理
OpenCV——视频基本处理 一、读取摄像头 import numpy as np import cv2cap cv2.VideoCapture(0) # 实例化VideoCapture对象, 0表示第一个摄像头 while cap.isOpened():ret, frame cap.read() # 捕获帧cv2.imshow("frame", frame)c cv2.waitKey(1) # 等待1毫…...
详解Java之Spring MVC篇一
目录 Spring MVC 官方介绍 MVC RequestMapping 传递参数 无参数 单个参数 针对String类型 针对Integer类型 针对int类型 针对自定义类型 多个参数 参数重命名 参数强制一致 参数不强制一致 传递数组 编辑传递List 编辑 传递JSON 编辑 从路径中获取参…...
ubuntu20.04上使用 Verdaccio 搭建 npm 私有仓库
安装nvm 首先安装必要的工具: apt update apt install curl下载并执行nvm安装脚本: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash添加环境变量(如果安装脚本没有自动添加)。编辑 ~/.bash…...
Python实现办公自动化的数据可视化与报表生成
在 Python 中,可以利用多个库来实现办公自动化中的数据可视化与报表生成。以下是具体的方法: 一、数据可视化 使用 matplotlib 库 matplotlib 是一个强大的 Python 绘图库,可以创建各种类型的静态、动态和交互式图表。示例代码:i…...
前端知识串联笔记(更新中...)
1.MVVM MVVM 是指 Model - View - ViewModel,Model 是数据与业务逻辑,View 是视图,ViewModel 用于连接 View 和 Model Model ---> View:将数据转化成所看到的页面,实现的方式:Data Bindings -- 数据绑定…...
PostgreSQL根据字符串的长度排序
PostgreSQL根据字符串的长度排序 在 PostgreSQL 中,你可以使用 LENGTH 函数来获取字符串的长度,并根据这个长度进行排序。LENGTH 函数会返回字符串的字符数。 以下是一个基本的 SQL 查询示例,它根据 some_column 字符串列的长度对表中的行进…...
计算机网络:网络层 —— IP数据报的发送和转发过程
文章目录 IP数据报的发送和转发过程主机发送IP数据报路由器转发IP数据报示例 IP数据报的发送和转发过程 IP 数据报的发送和转发过程包含以下两个过程: 主机发送IP数据报路由器转发IP数据报 直接交付:源主机与目的主机在同一网络中间接交付:…...
【算力基础】GPU算力计算和其他相关基础(TFLOPS/TOPS/FP32/INT8...)
文章目录 :one: 算力的常见指标:two: 算力计算:three: 常用链接 🚀 本文主要是聚焦于深度学习领域的 GPU的算力估计,其他类型的硬件设备如CPU可以类比参考。 1️⃣ 算力的常见指标 算力衡量主要与运算速度和精度这两个指标有关。 🌔速度指…...
UI自动化测试(app端)4.0
✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…...
C#与C++交互开发系列(十):数组传递的几种形式
前言 在C#和C的交互开发中,数组传递是一个非常常见且实用的场景。数组可以作为方法的参数,也可以作为响应结果返回。在本篇博客中,我们将探讨几种常见的数组传递方式,展示如何在C#与C之间进行有效的数据交换。我们将主要介绍以下…...
【C++复习】第一弹-基础性语法
前言 学习了C语法这么久了,我其实觉得,我们学习一门语言应该更加注重使用性,对于语法的细节可以通过具体的项目去重新造轮子的时候再去抠细节,也就是说你得学会先走,在去想我们如何走的,身体的哪些肌肉在发…...
软考高级备考记录
一 报考条件和报名流程 报考条件 该考试具有水平考试性质,报考任何级别不需要学历、资历条件,只要达到相应的专业技术水平就可以报考相应的级别 报名流程 软考报名官网:中国计算机技术职业资格网 官网上有 报名时间,考试…...
图为大模型一体机新探索,赋能智能家居行业
在21世纪的今天,科技的飞速进步正以前所未有的速度重塑着我们的生活方式。从智能手机到物联网,从大数据到人工智能,每一项技术创新都在为人类带来前所未有的便利与效率。其中,图为AI大模型一体机作为人工智能领域的最新成果&#…...
精氨酸/赖氨酸多肽(芋螺肽)
产品简介: 芋螺肽,源自瑞士尖端科技,是一种模拟芋螺毒素的生物活性肽。它以其独特的分子结构和高选择性作用于电压门控钠离子通道(特别是Nav1.4),为您提供安全、自然且不僵硬的回春效果。芋螺肽࿰…...
C++音视频04:音视频编码、生成图片
视频编码 #include <libavutil/log.h> #include <libavutil/opt.h> #include <libavcodec/avcodec.h>static int encode(AVCodecContext *ctx, AVFrame *frame, AVPacket *pkt, FILE *out) {int ret -1;ret avcodec_send_frame(ctx, frame);if (ret < …...
ImageSharp报错
错误信息 System.MissingMethodException: Method not found: System.Span1<SixLabors.ImageSharp.PixelFormats.Rgba32> SixLabors.ImageSharp.Memory.Buffer2D1.GetRowSpan(Int32).需要升级项目 原来仅升级了SixLabors.ImageSharp没有升级drawing,都升级到…...
Android中常用adb命令
目录 1.adb连接安卓模拟器 2.adb列出所有已经连接的设备 3.adb显示设备的日志信息 4.adb 电脑文件推送到安卓模拟器中 5.adb 手机传送文件到电脑 6.adb获取安卓应用的包名和Activity名 附录 1--命令 1)adb devices 2)adb install 路径> 3)…...
PostgreSQL的奥秘:全面解读JSONB——非结构化数据支持的深入探索
引言 PostgreSQL的JSONB数据类型非常灵活,提供了一套操作符来操作JSON数据。本指南将引导您创建一个包含JSONB数据的表,演示各种JSONB操作符,并讨论如何使用倒排索引和部分索引来优化性能。 理解PostgreSQL中的JSONB JSONB,即JS…...
tornado,flaskd这两个框架主要是干什么的
Tornado是一个Python的Web框架,主要用于构建高性能的异步Web应用程序。它基于非阻塞的网络I/O模型,可以处理大量并发连接,适用于需要处理实时性要求较高的应用场景,如实时聊天、实时数据推送等。 Flask是另一个Python的Web框架&a…...
Sigrity Power SI Noise coupling analysis模式如何进行压降仿真分析操作指导
Sigrity Power SI Noise coupling analysis模式如何进行压降仿真分析操作指导 Sigrity除了可以进行交流噪声分析,同样也可以进行压降仿真分析,以下图为例. 3D view...
国产游戏技术能否引领全球?
国产游戏技术能否引领全球? 引言 近年来,中国游戏产业如同春天的嫩芽,迅速成长为全球最大的市场之一。或许你会想,国内的游戏开发者到底在技术上取得了多大的成就?这些成就又能否推动中国游戏走向世界,甚…...
【前端】在 Next.js 开发服务器中应该如何配置 HTTPS?
在 Next.js 的开发环境中,默认情况下是使用 HTTP 协议的。但是,您可以通过一些配置来启用 HTTPS。这在开发阶段可能很有用,尤其是在需要测试涉及安全传输的应用场景时。 下面是如何在 Next.js 开发环境中配置 HTTPS 的步骤: 方法…...
基于深度学习算法的动物检测系统(含PyQt+代码+训练数据集)
基于深度学习算法的动物检测系统(含PyQt代码训练数据集) 前言一、数据集1.1 数据集介绍1.2 数据预处理 二、模型搭建三、训练与测试3.1 模型训练3.2 模型测试 四、PyQt界面实现五、讨论5.1 模型优缺点分析5.2 实验意义 参考资料 前言 本项目是基于Mobil…...
微信小程序美团点餐
引言:外卖已经成为了都市人的必备,在无数个来不及(懒得)做饭的时刻拯救孤单寂寞的胃。美团外卖无疑是外卖届的领头羊,它的很多功能与设计都值得我们学习。本文将从五个方面,对美团外卖展开产品分析…...
音频剪辑还花钱?2024年这4款免费工具让你告别烦恼
音乐迷们!是不是还在为找个音频剪辑软件就得花钱这事儿头疼呢?别急,2024年有好几个既免费又特别给力的音频剪辑免费的小帮手来了,保证帮你省下这笔钱,还让你用得爽歪歪!来来来,让我给你们介绍4个…...
【YOLO模型】(4)--YOLO V3超超超超详解!!!
文章目录 YOLO V3一、改进二、三种scale三、残差连接四、核心网络结构1. 结构2. 输出与先验框关系 五、softmax层替代 总结 YOLO V3 YOLO V3是由Joseph Redmon等人在2018年推出的一款目标检测算法。作为YOLO系列的第三代版本,它在实时性和准确性上取得了显著的提升…...
管理类联考 信息整理和经验分享
说明:大家在准备读MBA之前,肯定会去百度下MBA的相关常识,然而一上某度 你就发现 各种广告、各种培训机构 铺天盖地而来,想了解一些有价值的信息都有些困难,因此这些我在这里做了一些整理,方便准备参加 MBA …...
个人建网站一般多少钱/青岛关键词排名提升
Given inorder and postorder traversal of a tree, construct the binary tree. Note:You may assume that duplicates do not exist in the tree.同样是给出了不会有重复数字的条件,用递归较容易实现,代码如下: 1 /**2 * Definition for a…...
网站模板 实验室/百度站长工具验证
简介 UIApplicationMain 大家并不陌生,因为在通过 XCode 建立 iOS 的 Ojective-C 工程时肯定会看到。新建的 main.m 文件长这样: int main(int argc, char * argv[]) {NSString* appDelegateClassName;autoreleasepool {appDelegateClassName NSStrin…...
徐州金网网站建设/企业网站推广建议
目录 一、GNS 3的简介 二、GNS 3的版本说明 三、GNS 3的安装过程 四、GNS 3 VM的导入 五、GNS3 VM的初始配置 六、GNS 3VM的主界面介绍 七、添加路由器设备与连线 八、设备的开启与本地连接 九、IDLE设备 十、添加设备的模块 十一、关联Secure CRT 十二、与物理机通…...
网站建设服务项目/外链代发平台
linux初学者-进程篇 不管是windows还是linux,都有进程,那么什么是进程呢?进程就是cpu未完成的工作。下面会介绍一些关于系统中进程的查看以及管理的方法。 1、命令 1.1、命令使用 查看进程,使用的命令是"ps",…...
澳门公交乘车码怎么弄/企业优化推广
欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是学习语法,熟悉if else条件语句。条件语句主要格式一般有3种:if、if…else、if…else if…else1、if 语法格式:if(表达式){//如果表达式结果为true &…...
wordpress 通讯录插件/seo外链在线工具
我是卢松松,点点上面的头像,欢迎关注我哦! 上个月我还发文章说《虚拟人能否代替直播带货?》结果这个月快手就推出了“快手虚拟演播助手”,而且还支持多平台推流直播,用户也能化身虚拟形象进入元宇宙直播间了。 这对…...