人工智能内容生成元年—AI绘画原理解析

news2024/9/20 1:15:03
AIGC体验生成

、背景

        2022年AIGC(AI生成内容)焕发勃勃生机,大有元年之势,技术与应用迭代都扎堆呈现。在各种新闻媒体处可以看到诸多关于学术前沿研究,以及相应落地的商用案例可谓出现了现象级的学术-商业共振。以往学术研究内容离商用一般较远,因为学术研究相应实验数据通常为闭集即固定数据场景,而商业应用则为开集即非固定数据场景(能见到各式各样、甚至乱七八糟的数据)。所以将学术研究内容转化为商业应用的时候,就需要以工匠精神去做产品化设计与迭代,主要目的就是不断提升其可用性以达到商业化标准(避免出现不符预期、甚至乱七八糟的结果)。

        但AIGC领域似乎大大缩短了这一转化进程,尤其以近期短时间内爆火的AI绘画、AI作画类应用为代表。这无疑是人工智能发展至今的巨大胜利时刻,这能建立极强、极快的螺旋式发展迭代循环,商业应用上的不足点能迅速反馈至学术研究侧,学术研究侧的优化改进也能迅速体现到商业应用侧,拉满学术研究能获得的成就感。接下来的篇幅将介绍现有AI绘画、AI作画背后的相应基本原理、应用、以及论文参考文献。更多技术与应用的有趣想法欢迎评论区留言

原理

技术脉络归纳:

        在AI内容生成制作爆火的2022元年在其基础框架技术部分,技术演进的脉络可以看作是不断寻找更可靠的特征域建模方式,亦可看作是不断寻找更合适的借鸡生蛋方式的过程。原始图像域的特征维度是很高的,直接来建模会有维度灾难的问题。需要不断找到可行的中间域来做对齐:

1.)CLIP可以看作是图像域与文本域特征对齐的大一统技术框架,文本域的原始特征空间跟原始图像域的特征空间比是相对更小的。所以在同等维度特征的表达下,文本相比图像是能更加容易被刻画好的,所以当align文本域特征到图像域特征时,图像域特征表达将无疑得到了更佳的富有语义的监督信号。这样获得更好的效果也就很自然了。

2.)diffusion可以看作是将原始图像域建模转变为噪声域建模的方法。噪声域有两个极大的好处:首先,它的特征空间比原始图像域要小的多,非常容易建模。其次,即使噪声域建模效果没能接近完美,它所呈现出来的差异也是噪声域的差异,而这个噪声差异在图像内容域上对人眼来说往往注意不到。所以从基本原理上来说,diffusion生成的图像细节无疑是会远远优于gan的。

基础技术部分:

        基础技术框架上大致可以分成如下几个标志性的阶段:

a)GAN阶段

        原理摘记生成与对抗网络图像特征域对齐,示意图如论文[1]中图所示:

b)Transformer阶段

        网络由self-Attenion和Feed Forward Neural Network组成,强力的文本、图像(ViT系列)编码网络框架。示意图如论文[3]中图所示:

c)CLIP阶段

        图像文本域特征对齐。基于文本、视觉transformer encode统一框架,训练阶段4亿文本图像配对数据训练至少100卡月V100。示意图如论文[4]中图所示:

d)Diffusion阶段

        原始图像特征域对齐转变为图像噪声域对齐。基于参数化马尔科夫链框架实现。示意图如论文[5]中图所示:

演化技术部分:

a)StyleGan

        基于adain思想,额外学习高斯分布到风格空间w的映射,然后风格空间的变量作用于合成网络中。示意图如论文[2]中图所示:

b)DALL-E 1

        网络可理解为VQVAE + Transformer。示意图如论文[6]中图所示:

c DALL-E 2

        网络可理解为CLIP + Diffusion。示意图如论文[7]中图所示:

d)Stable Diffusion

        网络可理解为VAE + CLIP + Diffusion + Unet,引入LDM等加速手段,显著降低计算复杂度。示意图如论文[8]中图所示:

三、应用

        目前可以看到,诸如文生图、图生图、图像编辑、图像修复、图像拓展等应用功能都已实现,国内的AI绘画特效类应用也结合国风、动漫等风格有了非常广泛的应用,这里面既有大厂也有创业公司等玩家的加入。于此同时,对创意行业设计者来说,AI绘画也正演变为最佳助手,大幅提高创意行业的生产效率。相应应用介绍如下:

1.) Disco Diffusion:CLIP + Diffusion。https://github.com/alembics/disco-diffusion。

2.) Stable Diffusion:https://github.com/Stability-AI/stablediffusion。

3.) Stable Diffusion 2:显著提升图像质量,采用LAION-5B 58.5亿个图像文本对,增加NSFW做了内容过滤。https://huggingface.co/stabilityai/stable-diffusion-2 。

4.) Imagic : gan DALL-E 2,基于扩散模型的真实图像编辑方法,用文字就能实现真实照片的 PS,比如让一个人竖起大拇指、让两只鹦鹉亲吻。示意图如论文[9]中图所示:

5.) Imagen:更强力的语言模型能获得更逼真的画作效果。相较于视觉部分模型来讲,语言模型size越大带来的画作逼真性越大。示意图如论文[10]中图所示:

6.) DreamBooth: 对输入图像中的主体能进行相应输入文本语义下的内容生成。示意图如论文[11]中图所示:

7.) Midjourney : https://midjourney.gitbook.io/docs。在美国科罗拉多州举办的艺术博览会,《太空歌剧院》的画作获得数字艺术类别冠军

四、文献

[1]Gan:https://arxiv.org/abs/1406.2661

[2]StyleGan:https://arxiv.org/abs/1812.04948

[3]Transformer: https://arxiv.org/abs/1706.03762

[4]CLIP:https://arxiv.org/abs/2103.00020

[5]Diffusion:https://arxiv.org/abs/2006.11239

[6]DALL-E 1:https://arxiv.org/abs/2102.12092

[7]DALL-E 2:https://arxiv.org/abs/2204.06125

[8]Stable Diffusion: https://arxiv.org/abs/2112.10752

[9]Imagic:https://arxiv.org/abs/2210.09276

[10]Imagen:https://arxiv.org/abs/2205.11487

[11]DreamBoothhttps://arxiv.org/abs/2208.12242

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

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

相关文章

phpbugs代码审计第三题多重加密答案错误

phpbugs多重加密 这题官方给的答案是错的&#xff0c;网上给的也是错的&#xff0c;麻烦别直接拿给的答案来抄好吗&#xff1f;就想纠正一下别误导别人了 源码如下: <?phpinclude common.php;$requset array_merge($_GET, $_POST, $_SESSION, $_COOKIE);//把一个或多个…

安卓期末大作业——售票APP源码和设计报告

大作业文档 项目名称&#xff1a;售票APP专业&#xff1a;班级&#xff1a;学号&#xff1a;姓名&#xff1a; 目 录 目录 一、项目功能介绍3二、项目运行环境31、开发环境32、运行环境33、是否需要联网3三、项目配置文件及工程结构31、工程配置文件32、工程结构目录4四、项…

【C语言 数据结构】串 - 顺序

文章目录串 - 顺序一、串的表示及实现1.1 串的概念1.2 串的初始化1.3 复制串1.4 串的判空1.5 串的比较1.6 串的长度1.7 清空串1.8 串的拼接1.9 串的截取1.10 插入子串1.11 串的打印二、串的应用2.1 串的模式匹配 - 基本操作2.2 串的模式匹配 - BF2.3 串的模式匹配 - KMPnext数组…

【学习笔记77】ajax的函数封装

一、封装分析 &#xff08;一 &#xff09;封装方案 1、回调函数方式 将来使用的时候, 可能会遇到回调地狱 2、promise方式 效果不会有变化, 而且还能和 async/await 一起使用 &#xff08;二&#xff09;函数的参数 请求方式: method > 默认值 get请求地址: url > 必填…

Android开发——Jetpack Compose的使用

Android开发——Jetpack Compose的使用什么是Jetpack ComposeJetpack Compose带来的变化Jetpack Compose的两种运用方法将Jetpack Compose 添加到现有项目1.gradle 配置2.使用Kotlin-Gradle 插件3. 添加依赖项创建一个新的支持Jetpack Compose的项目1.创建一些简单应用定义可组…

12.3做题

一.车队问题 1.思路: 先把所在位置进行排序,升序排序, 计算出每辆车在不受其余车的影响时&#xff0c;行驶到终点需要的时间 从后往前看 对于相邻的两辆车 S 和 F&#xff0c;F 的起始位置大于 S&#xff0c;如果 S 行驶到终点需要的时间小于等于 F&#xff0c;那么 S 一定…

MySQL集群搭建-MMM高可用架构

MySQL集群搭建-MMM高可用架构 原文地址 https://segmentfault.com/a/1190000017286307&#xfeff; 1 MMM 介绍 1.1 简介 MMM 是一套支持双主故障切换以及双主日常管理的第三方软件。MMM 由 Perl 开发&#xff0c;用来管理和监控双主复制&#xff0c;虽然是双主架构&#xff…

volatile

是java虚拟机提供的轻量级的同步机制&#xff08;乞丐版的synchronized) 具备三个性质&#xff1a;保证可见性&#xff0c;不保证原子性&#xff0c;禁止指令重排 前置知识&#xff1a; …

JS读取本地CSV文件数据

JS读取本地CSV文件数据 文件中的部分数据如图 需求是需要提取出文件的数据 使用到的模块是 Papa Parse 1. 依赖安装 yarn add papaparse papaparse的基本使用可以参考官方demo 2. 解析本地文件 首先需要注意, papaparse解析本地文件, 需要的文件格式是从DOM中获得的File…

GO高级特性 之 并发模型

本文介绍一些并发的基础知识、常见的并发模型一级Go语言的MPG并发模型及其运行原理 并发与并行的区别 -并发并行概念并发指同一时间段&#xff0c;多条命令在CPU上同时执行。并行指同一时刻&#xff0c;多条命令在CPU上执行运行原理并发程序不要求计算机有多核计算能力&#…

毕设选题推荐基于python的django框架医疗急诊预约系统

&#x1f496;&#x1f525;作者主页&#xff1a;计算机毕设老哥&#x1f525; &#x1f496; 精彩专栏推荐订阅&#xff1a;在 下方专栏&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; Java实战项目专栏 Python实…

项目成本管理质量管理

项目成本管理-控制成本目录概述需求&#xff1a;设计思路实现思路分析1.EVM2.偏差指标3.Question:4.绩效指标5.典型偏差TCPIS曲线图绩效审查参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip …

[近两万字] MySQL大全

目录 单元1 创建数据库 1.1 创建数据库 1.查看数据库 2.选择数据库 3.删除数据库 1.2 创建数据表 1.查看表结构 2.查看所有数据表 3.复制表结构 4.删除表 5.修改表数据 5.1 修改表名 5.2 添加字段 5.3删除字段 5.4修改字段的数据类型 5.5修改字段的名称 5.6修改字段…

[网络工程师]-应用层协议-SNMP

简单网络管理协议&#xff08;Simple Network Management Protocol&#xff0c;SNMP&#xff09;是在应用层上进行网络设备间通信的管理协议&#xff0c;可以用于网络状态监视、网络参数设定、网络流量统计与分析、发现网络故障等。SNMP基于UDP协议&#xff0c;由SNMP协议、管理…

【交通建模】基于模型的自主交通仿真框架附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

【深入浅出Java并发编程指南】「难点 - 核心 - 遗漏」让我们一起探索一下CyclicBarrier的技术原理和源码分析

CyclicBarrier和CountDownLatch CyclicBarrier和CountDownLatch 都位于java.util.concurrent这个包下&#xff0c;其工作原理的核心要点&#xff1a; CyclicBarrier工作原理分析 那么接下来给大家分享分析一下JDK1.8的CyclicBarrier的工作原理。 简单认识CyclicBarrier 何为…

Nginx动静分离、缓存配置、性能调优、集群配置

一. Nginx动静分离 1. 准备 1个web程序&#xff1a;部署在7061端口&#xff0c;启动 【dotnet NginxWeb.dll --urls"http://*:7061" --ip"127.0.0.1" --port7061】 Nginx程序&#xff1a;监听7000端口 2. 目的 比如单独启动部署在7061端口下的web程序&am…

c++ 静态库,动态库的制作和使用

文章目录1.什么是库&#xff1f;2.静态库的制作1.静态库的命名规则2.静态库的制作与使用1.静态库的制作2.静态库的使用3.动态库的制作1.动态库的命名规则2.动态库的制作与使用1.动态库的制作2.动态库的使用3.动态库加载失败的原因4.静态库和动态库的对比1.程序编译成可执行文件…

[附源码]Python计算机毕业设计Django基于Java的失物招领平台

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

时序数据库选型

目录一、当前主流的时序数据库二、各库特性1、Influxdb2、Timescale3、Druid4、Kdb5、Graphite6、RRDtool7、OpenTSDB8、TDengine9、DolphinDB三、优缺点对比因为个人用的go&#xff0c;所以调研及对比主要针对适配了go语言的数据库。 一、当前主流的时序数据库 排名参考于h…