PAI-Diffusion模型来了!阿里云机器学习团队带您徜徉中文艺术海洋

news2024/11/15 23:39:27

作者:汪诚愚、段忠杰、朱祥茹、黄俊

导读

近年来,随着海量多模态数据在互联网的爆炸性增长和训练深度学习大模型的算力大幅提升,AI生成内容(AI Generated Content,AIGC)的应用呈现出爆发性增长趋势。其中,文图生成(Text-to-image Generation)任务是最流行的AIGC任务之一,旨在生成与给定文本对应的图像。典型的文图模型例如OpenAI开发的DALL-E和DALL-E2、Google提出的Parti和Imagen、基于扩散模型的Stable Diffusion和Stable Diffusion2.0等。

然而,上述模型一般不能用于处理中文的文图生成需求,而且上述模型的参数量庞大,很难被开源社区的广大用户直接使用。在先前文图生成模型(看这里)工作积累之上,阿里云机器学习(PAI)团队进一步开源了PAI-Diffusion系列模型,包括一系列通用场景和特定场景的文图生成模型,例如古诗配图、二次元动漫、魔幻现实等。这些模型的Pipeline除了包括标准的Latent Diffusion Model,还集成了PAI团队先前提出了中文CLIP跨模态对齐模型(看这里),及图像超分模型,使得模型可以生成符合中文文本描述的、各种场景下的高清大图。

本⽂简要介绍PAI-Diffusion模型及其体验方式。

Diffusion技术概述

我们的模型是基于一个基于隐式扩散模型(Latent Diffusion Model, LDM)的文图生成模型。接下来,我们简要地介绍LDM的原理以及技术改进。

Latent Diffusion Model原理

扩散模型有两个过程,分别为扩散过程和逆扩散过程。如下图,扩散过程为从左到右的过程 ( D a t a → N o i s e ) ( Data→Noise ) DataNoise,表示对图片逐步增加噪声。逆扩散过程为从右到左的过程 ( N o i s e → D a t a ) ( Noise→Data) NoiseData,表示从高斯噪声中逐步去噪,复原出原图。

扩散模型中的噪声是在像素空间进行的计算的,维度与图像一致,由此导致加噪和去噪过程的时间和内存消耗会非常大。Latent Diffusion Model利用自动编码器(Auto Encoder)将图像数据从高维像素空间表示 ( x ) ( x ) x转换到低维潜空间表示 ( z ) ( z ) z,之后在低维空间进行去噪生成,大大降低时间和内存消耗。

文本引导的Diffusion模型主要包含两部分:文本编码器(Text Encoder)和U-Net;其中U-Net用于模拟噪声的分布,文本编码器把输入文本转换成U-Net可以理解的空间编码,引导噪声的采样以生成符合文本描述的图片。文本作为条件 τ θ τθ τθ输入,和时间步长 t t t 一起,以简单连接或者交叉注意力的方式,指导 z z z的去噪。推理时,由Auto Encoder将 T T T 时刻生成的表示 z z z 转换为像素空间的表示 x x x ,即可得到像素级别的图片。

StableDiffusion

StableDiffusion是在LAION-5B数据集子集上训练的一个LDM,可以在消费级GPU运行,生成 512 × 512 512×512 512×512的图像仅需要几秒。目前StableDiffusion公布了v1和v2两个版本。StableDiffusion1.0主要支持文本引导的图像生成(text-to-img)、草图引导的图像生成(sketch-to-img)。最近发布的StableDiffusion2.0改进了文本编码器,并且默认生成的图像分辨率也提升至 768 × 768 768×768 768×768,可支持 2048 × 2048 2048×2048 2048×2048 或更高。此外,StableDiffusion2.0增加了新的特性,支持深度图引导的图像生成(depth-to-img)和文本引导的图像编辑(text guided inpainting)。

PAI-Diffusion模型详解

由于现有Diffusion模型主要使用英文数据进行训练,如果直接使用机器翻译将英文数据翻译成中文进行模型训练,因为中英文在文化和表达上具有很大的差异性,产出的模型通常无法建模中文特有的现象。此外,通用的StableDiffusion模型由于数据源的限制,很难用于生成特定领域、特定场景下的高清图片。PAI-Diffusion系列模型由阿里云机器学习(PAI)团队发布并开源,除了可以用于通用文图生成场景,还具有一系列特定场景的定制化中文Diffusion模型,包括古诗配图、二次元动漫、魔幻现实等。在下文中,我们首先介绍PAI-Diffusion的模型Pipeline架构,包括中文CLIP模型、Diffusion模型、图像超分模型等。

模型Pipeline架构

PAI-Diffusion模型Pipeline如上所示,分为四部分:

  • Text Encoder:把中文文本输入转化成 Embedding 向量,我们采用EasyNLP中文CLIP跨模态对齐模型(看这里)的Text Transformer作为Text Encoder;
  • Latent Diffusion Model:在 Latent 空间中根据文本输入处理随机生成的噪声;
  • Auto Encoder:将 Latent 空间中的张量还原为图片;
  • Super Resolution Model:提升图片分辨率,这里我们使用ESRGAN作为图像超分模型。

我们在使用Wukong数据集中的两千万中文图文数据对 Latent Diffusion Model部分进行了约 20 天的预训练,随后在多个下游数据集中进行了微调。

多场景艺术画鉴赏

下面我们展示几个不同场景下PAI-Diffusion模型的艺术画生成效果。

通用场景

古诗配图

二次元动漫

艺术画

魔幻现实

真实业务场景示例

除了艺术画生成,PAI-Diffusion模型也能广泛地应用在各个真实业务场景中,以下我们给出在电商和美食场景下的文图生成效果。

电商商品

世界美食

轻松体验PAI-Diffusion模型

PAI-Diffusion模型可以通过多个途径进行体验。我们在阿里云机器学习AI能力中心上展示了更多不同场景下模型生成的高清大图。阿里云机器学习产品PAI-DSW(Data Science Workshop)提供了交互式的开发体验,方便用户通过调用Python API访问这些模型。此外,为了方便开源社区用户的体验,我们也在HuggingFace Space上展示了多个PAI-Diffusion模型的应用。

阿里云机器学习AI能力中心

阿里云机器学习AI能力中心提供了场景多样的AI实操案例,包括图像智能、自然语言处理、视频智能、多模态等各个领域的案例。我们也上架了PAI-Diffusion模型文图生成的功能,提供了更多不同场景下模型生成的高清大图。用户可以在这里体验AI能力中心的文图生成功能,示例参见下图。

阿里云机器学习PAI-DSW

PAI-DSW(Data Science Workshop)是阿里云机器学习平台PAI开发的云上IDE,面向不同水平的开发者,提供了交互式的编程环境(文档)。在DSW Gallery中,提供了各种Notebook示例,方便用户轻松上手DSW,搭建各种机器学习应用。我们也在DSW Gallery中上架了使用PAI-Diffusion模型进行中文文图生成的Sample Notebook,欢迎大家体验!

HuggingFace Space

为了方便开源社区用户的体验,我们在HuggingFace Space上展示了多个PAI-Diffusion模型的文图生成应用。以世界美食为例(https://huggingface.co/spaces/alibaba-pai/pai-diffusion-food-large-zh),用户只需要输入或者选择菜品名称作为输入,就可以得到模型生成的高清大图,示例参见下图。

未来展望

在这一期的工作中,我们公开了一系列PAI-Diffusion模型,支持各种场景下的中文文图生成功能。在未来,我们计划在EasyNLP框架(https://github.com/alibaba/EasyNLP)中集成这些模型的Checkpoint,并且提供简洁高效的训练接口,方便开源社区用户在资源有限情况下进行少量领域相关的微调,进行各种艺术创作,敬请期待。我们也将致力于PAI-Diffusion模型的优化策略,包括模型推理速度优化、生成图片质量提升和支持更为复杂的图像编辑功能。此外,阿里云机器学习PAI团队也在持续推进中文多模态模型的自研工作,欢迎用户持续关注我们,也欢迎加入我们的开源社区,共建中文NLP和多模态算法库!

Github地址:https://github.com/alibaba/EasyNLP

Reference

  1. Chengyu Wang, Minghui Qiu, Taolin Zhang, Tingting Liu, Lei Li, Jianing Wang, Ming Wang, Jun Huang, Wei Lin. EasyNLP: A Comprehensive and Easy-to-use Toolkit for Natural Language Processing. EMNLP 2022
  2. Robin Rombach, Andreas Blattmann, Dominik Lorenz, Patrick Esser, Björn Ommer. High-Resolution Image Synthesis with Latent Diffusion Models. CVPR 2022
  3. Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, Ilya Sutskever. Learning Transferable Visual Models From Natural Language Supervision. ICML 2021
  4. Jiaxi Gu, Xiaojun Meng, Guansong Lu, Lu Hou, Minzhe Niu, Xiaodan Liang, Lewei Yao, Runhui Huang, Wei Zhang, Xin Jiang, Chunjing Xu, Hang Xu. Wukong: 100 Million Large-scale Chinese Cross-modal Pre-training Dataset and A Foundation Framework. arXiv
  5. Ling Yang, Zhilong Zhang, Yang Song, Shenda Hong, Runsheng Xu, Yue Zhao, Yingxia Shao, Wentao Zhang, Bin Cui, Ming-Hsuan Yang. Diffusion models: A comprehensive survey of methods and applications. arXiv

EasyNLP阿里灵杰回顾

  • 阿里灵杰:阿里云机器学习PAI开源中文NLP算法框架EasyNLP,助力NLP大模型落地
  • 阿里灵杰:预训练知识度量比赛夺冠!阿里云PAI发布知识预训练工具
  • 阿里灵杰:EasyNLP带你玩转CLIP图文检索
  • 阿里灵杰:EasyNLP中文文图生成模型带你秒变艺术家
  • 阿里灵杰:EasyNLP集成K-BERT算法,借助知识图谱实现更优Finetune
  • 阿里灵杰:中文稀疏GPT大模型落地 — 通往低成本&高性能多任务通用自然语言理解的关键里程碑
  • 阿里灵杰:EasyNLP玩转文本摘要(新闻标题)生成
  • 阿里灵杰:跨模态学习能力再升级,EasyNLP电商文图检索效果刷新SOTA
  • 阿里灵杰:EasyNLP带你实现中英文机器阅读理解
  • 阿里灵杰:EasyNLP发布融合语言学和事实知识的中文预训练模型CKBERT
  • 阿里灵杰:当大火的文图生成模型遇见知识图谱,AI画像趋近于真实世界

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/83423.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法竞赛入门【码蹄集进阶塔335题】(MT2251-2270)

算法竞赛入门【码蹄集进阶塔335题】(MT2251-2270) 文章目录算法竞赛入门【码蹄集进阶塔335题】(MT2251-2270)前言为什么突然想学算法了?为什么选择码蹄集作为刷题软件?目录1. MT2251 讲价2. MT2252 复数类13. MT2253 复数类24. MT…

CF GLR24-C. Doremy‘s City Construction

CF原题链接 题目大意&#xff1a;n个结点&#xff0c;每个结点有一个正数值。现在让你在n个点间进行边的连接&#xff0c;唯一限制条件是不能出现这种情况&#xff1a;如3个点A,B,C&#xff0c;且A<B<C&#xff0c;那么不能同时出现边&#xff08;A&#xff0c;B&#xf…

冯诺依曼体系和操作系统概念

Ⅰ. 冯诺依曼体系结构 我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系。 截至目前&#xff0c;我们所认识的计算机&#xff0c;都是有一个个的硬件组件组成 输入单元&#xff1a;包括键盘, 鼠标&#xf…

太详细了,在 Windows 上安装 PySpark 保姆级教程

在本文中&#xff0c;我将和大家一起学习如何在 Windows 上安装和运行 PySpark&#xff0c;以及如何使用 Web UI 启动历史服务器和监控 Jobs。 安装 Python 或 Anaconda 发行版 https://www.python.org/downloads/windows/ 从 Python.org 或 Anaconda 发行版 下载并安装 Pyth…

在win10和docker下安装DVWA

win10安装 DVWA下载地址https://github.com/digininja/DvWA/archive/master.zip 在phpstudy软件包下的www文件夹中新建一个文件夹名为dvwa&#xff0c;把DVWA-master压缩包解压进去 删除/dvwa/config文件夹下的config.inc.php.dist文件的.dist后缀 打开config.inc.php&#x…

接口测试(四)—— Requests库发送请求、Cookie、Session、UnitTest管理测试用例

目录 一、Requests库 1、Requests库安装和简介 1.1 简介 1.2 安装 1.3 查验 2、设置http请求语法 2.1 案例1 2.2 案例2 2.3 案例3 2.4 案例4 2.5 案例5 3、Cookie 3.1 Cookie简介 3.2 CookieSession认证方式 3.3 案例 4、Session 4.1 Session简介 4.2 Sessi…

Flask从入门到放弃二(请求与相应、Session的使用与源码分析、Flash闪现、异步说明、请求拓展、BluePrint蓝图)

文章目录一、请求与响应1&#xff09;请求对象2&#xff09;响应对象3&#xff09;前后端分离和混合二、Session的使用和原理1&#xff09;Session的使用2&#xff09;Session源码分析三、Flash闪现四、异步说明五、请求扩展六、BluePrint蓝图一、请求与响应 1&#xff09;请求…

中国移动ZN-M160G光猫超级密码破解 | 河南移动兆能光猫超管密码获取 | 中国移动光猫如何开启UPnP功能

文章目录1. 按2. 重设光猫超管密码3. 开启UPnP功能1. 按 首先应确保设备型号是ZN-M160G&#xff0c;这点可以通过观察光猫底部的铭牌或者访问http://192.168.1.1/查看网页标题&#xff0c;因为本教程是基于兆能的这款ZN-M160G光猫进行操作的&#xff0c;其他的光猫&#xff08…

微信小程序框架(四)-全面详解(学习总结---从入门到深化)

目录 路由_navigateTo 页面跳转 携带参数 返回上一级页面 路由_redirectTo 页面跳转 路由_reLaunch 页面跳转 路由_switchTab 实现 tabbar 页面跳转 交互_消息提示框 基本弹出框 常用属性 icon详情 hideToast 交互_ loading 提示框 基本实现 常用属性 交互_模…

这次我把Redis数据类型写出了花✿❀~~~

1. String 字符串是 Redis 最基本的数据类型&#xff0c;不仅所有 key 都是字符串类型&#xff0c;其它几种数据类型构成的元素也是字符串。注意字符串的长度不能超过 512M。 1.1 编码方式&#xff08;encoding&#xff09; 字符串对象的编码可以是 int &#xff0c;raw 或者…

1566_AURIX_TC275_电源管理_低功耗模式

全部学习汇总&#xff1a;GreyZhang/g_TC275: happy hacking for TC275! (github.com) Idle模式每一个核都可以单独进入&#xff0c;但是standby、sleep模式是会影响整个系统的。进入idle模式的几种方法&#xff1a;软件请求、其他的CPU进行软件请求、SMU因为报警等处理进行请求…

CSS -- 精灵图(sprites)的讲解及使用方法

文章目录精灵图(sprites)1 为什么使用精灵图2 精灵图的使用精灵图(sprites) 1 为什么使用精灵图 一个网页中往往会应用很多小的背景图像作为修饰&#xff0c;当网页中的图像过多时&#xff0c;服务器就会频繁地接收和发送请求图片&#xff0c;造成服务器请求压力过大&#xff…

ja3指纹 笔记

通过给openssl和nginx打补丁获取ja3指纹&#xff1a; https://github.com/phuslu/nginx-ssl-fingerprint 这个项目算出来的ja3指纹和wireshark的不完全一致&#xff0c;wireshark后面的是“-21,29-23-24,0”, 小小不同&#xff0c;&#x1f440;。。 通过wireshark查看ja3指…

Selenium Grid 分布式 | 介绍与实战

一. 介绍 Selenium 包含 3 大组件&#xff0c;分别是&#xff1a;Selenium IDE、Selenium WebDriver、Selenium Grid 其中&#xff0c;Selenium IDE 负责录制、回放脚本&#xff0c;模拟用户对页面的真实操作 Selenium WebDriver 提供 API 来操作浏览器&#xff0c;比如&…

vue面试考察知识点全梳理

一、简介 vue几个核心思想&#xff1a; 数据驱动组件化虚拟dom、diff局部最优更新 源码目录介绍 Vue.js 的源码在 src 目录下&#xff0c;其目录结构如下。 src ├── compiler # 编译相关 ├── core # 核心代码 ├── platforms # 不同平台…

速度百倍提升,高性能 Python 编译器 Codon 火了

众所周知&#xff0c;Python 是一门简单易学、具有强大功能的编程语言&#xff0c;在各种用户使用统计榜单中总是名列前茅。相应地&#xff0c;围绕 Python&#xff0c;研究者开发了各种便捷工具&#xff0c;以更好的服务于这门语言。 编译器充当着高级语言与机器之间的翻译官…

4.19 Cadence Allegro软件中应该如何按照系统模板去创建PCB封装?异形表贴焊盘应该如何创建?

笔者电子信息专业硕士毕业&#xff0c;获得过多次电子设计大赛、大学生智能车、数学建模国奖&#xff0c;现就职于南京某半导体芯片公司&#xff0c;从事硬件研发&#xff0c;电路设计研究。对于学电子的小伙伴&#xff0c;深知入门的不易&#xff0c;特开次博客交流分享经验&a…

js常用函数

一、特常用函数以及功能解释&#xff08;建议掌握&#xff09; 1、alert()函数&#xff1a;显示一个警告对话&#xff0c;如&#xff1a; alert(1111) 2、eval()函数&#xff1a;计算表达式的结果&#xff0c;如&#xff1a; alert(eval(11)) 3、confirm()函数&#xff1a;显…

3 面蚂蚁,一路过关斩将 成功拿到 offer 定级 P6,大厂面试雀食有点难

线上服务 CPU 很高该怎么做&#xff1f;有哪些措施可以找到问题 JDK 中有哪几个线程池&#xff1f;顺带把线程池讲了个遍 应尽量避免在 where 子句中使用!或<>操作符&#xff0c;否则将引擎放弃使用索引而进行全表扫描 SQL 索引的顺序&#xff0c;字段的顺序 查看 SQ…

缓存一致性解决方案

文章目录常见的缓存一致性解决方案双写模式失效模式两种模式的总结上述模式的改进常见的缓存一致性解决方案 这里的缓存一致性其实就是缓存中的数据和数据库中的数据如何保持一致. 这个问题根据具体的业务场景和需要解决起来略有差异,但是总体看以分为两类,双写模式和失效模…