AIGC绘画设计基础——十分钟读懂Stable Diffusion

news2024/10/6 15:27:10

写在最前面:

由于Stable Diffusion里面有关扩散过程的描述,描述方法有很多版本,比如前向过程也可以叫加噪过程,为了便于理解,这里把各种描述统一说明一下。

  • Diffusion扩散模型:文章里面所有出现Diffusion扩散模型的地方,都是指2020年提出的DDPM模型DDPM: Denoising Diffusion Probabilistic Models
  • 前向扩散过程、加噪过程(含义一样,下同
  • 反向扩散过程、去噪过程、图片生成过程、Sampling
  • 单轮去噪过程、单轮U-Net过程、单轮反向扩散过程

开源的Stable Diffusion

目前AI绘画最火的当属Midjorney和Stable Diffusion,但是由于Midjourney没有开源,因此我们主要分享下Stable Diffusion,后面我们会补充介绍下Midjourney。

公开资料显示,Stable Diffusion是StabilityAI公司于2022年提出的,论文和代码都已开源。StabilityAI在10月28日完成了1.01亿美元的融资,目前估值已经超过10亿美元。

大家可以去Stable Diffusion Online这个网站体验一下Stable Diffusion,我们输入文本“’A sunset over a mountain range, vector image”(山脉上的日落),看一下效果:

Stable Diffusion绘画

在了解应用后,接下来我们介绍下Stable Diffusion。主要还是通过图解的方式,避免大量公式推导,看起来费劲。

1. Stable Diffusion文字生成图片过程

Stable Diffusion其实是Diffusion的改进版本,主要是为了解决Diffusion的速度问题。那么Stable Diffusion是如何根据文字得出图片的呢?下图是Stable Diffusion生成图片的具体过程:

Stable Diffusion文字生成图片过程

可以看到,对于输入的文字(图中的“An astronout riding a horse”)会经过一个CLIP模型转化为text embedding,然后和初始图像(初始化使用随机高斯噪声Gaussian Noise)一起输入去噪模块(也就是图中Text conditioned latent U-Net),最后输出 512×512512\times512 大小的图片。在文章(绝密伏击:十分钟读懂Diffusion:图解Diffusion扩散模型)中,我们已经知道了CLIP模型和U-Net模型的大致原理,这里面关键是Text conditioned latent U-net,翻译过来就是文本条件隐U-net网络,其实是通过对U-Net引入多头Attention机制,使得输入文本和图像相关联,后面我们重点讲讲这一块是怎么做的。

2. Stable Diffusion的改进一:图像压缩

Stable Diffusion原来的名字叫“Latent Diffusion Model”(LDM),很明显就是扩散过程发生隐空间中(latent space),其实就是对图片做了压缩,这也是Stable Diffusion比Diffusion速度快的原因。

自编码器(Autoencoder)

Stable Diffusion会先训练一个自编码器,来学习将图像压缩成低维表示。

  • 通过训练好的编码器 EE ,可以将原始大小的图像压缩成低维的latent data(图像压缩)
  • 通过训练好的解码器 DD ,可以将latent data还原为原始大小的图像

在将图像压缩成latent data后,便可以在latent space中完成扩散过程,对比下和Diffusion扩散过程的区别,如下图所示:

Diffusion扩散过程和Stable Diffusion扩散过程的对比

可以看到Diffusion扩散模型就是在原图 xx 上进行的操作,而Stale Diffusion是在压缩后的图像 zz 上进行操作。

Stable Diffusion的前向扩散过程和Diffusion扩散模型基本没啥区别,只是多了一个图像压缩,只是反向扩散过程二者之前还是有区别。

3. Stable Diffusion的改进二:反向扩散过程

在第一节我们已经简单介绍过Stable Diffusion文字生成图片的过程,这里我们扩展下,看一下里面的细节,如下图所示:

支持文本输入的反向扩散过程

上图从右至左,输入的文字是“Pairs in milky way”(银河系的巴黎),经过CLIP模型 τθ\tau_{\theta} 转为Text embedding,然后和初始图像(噪声向量 zTz_T )、Time step向量 TT ,一起输入Diffusion模块(多轮去噪过程),最后将输出的图像 z0z_0 经过解码器 DD 后,生成最终的图像。

Stable Diffusion在反向扩散过程中其实谈不上改进,只是支持了文本的输入,对U-Net的结构做了修改,使得每一轮去噪过程中文本和图像相关联。在上一篇文章(绝密伏击:十分钟读懂Diffusion:图解Diffusion扩散模型)中,我们在介绍使用Diffusion扩散模型生成图像时,一开始就已经介绍了在扩散过程中如何支持文本输入,以及如何修改U-Net结构,只是介绍U-Net结构改进的时候,讲的比较粗,感兴趣的可以去看看里面的第一节。下面我们就补充介绍下Stable Diffusion是如何对U-Net结构做修改,从而更好的处理输入文本。

3.1 反向扩散细节:单轮去噪U-Net引入多头Attention(改进U-Net结构)

我们先看一下反向扩散的整体结构,如下图所示:

反向扩散过程的整体结构

从上图可以看出,反向扩散过程中输入文本和初始图像 ZTZ_T 需要经过 TT 轮的U-Net网络( TT 轮去噪过程),最后得到输出 Z0Z_0 ,解码后便可以得到最终图像。由于要处理文本向量,因此必然要对U-Net网络进行调整,这样才能使得文本和图像相关联。下图是单轮的去噪过程:

单轮去噪过程

上图的最左边里面的Semantic Map、Text、Representations、Images稍微不好理解,这是Stable Diffusion处理不同任务的通用框架:

  • Semantic Map:表示处理的是通过语义生成图像的任务
  • Text:表示的就是文字生成图像的任务
  • Representations:表示的是通过语言描述生成图像
  • Images:表示的是根据图像生成图像

这里我们只考虑输入是Text,因此首先会通过模型CLIP模型生成文本向量,然后输入到U-Net网络中的多头Attention(Q, K, V)。

这里补充一下多头Attention(Q, K, V)是怎么工作的,我们就以右边的第一个Attention(Q, K, V)为例。

(1)Attention(Q,K,V)=softmax(QKTd)⋅V\text{Attention}\left( Q,K,V \right)=\text{softmax}\left( \frac{QK^T}{\sqrt{d}} \right)\cdot V\tag1 其中: Q=WQ⋅zT,K=WK⋅τθ(y),V=WV⋅τθ(y)Q=W_Q\cdot z_T,K=W_K\cdot \tau_{\theta}\left( y \right),V=W_V\cdot \tau_{\theta}\left( y \right) 。可以看到每一轮去噪过程中,文本向量 τθ(y)\tau_{\theta}\left( y \right) 会和当前图像 zTz_T 计算相关性。

Stable Diffusion完整结构

最后我们来看一下Stable Diffusion完整结构,包含文本向量表示、初始图像(随机高斯噪声)、时间embedding,如下图所示:

Stable Diffusion完整结构

上图详细的展示了Stable Diffusion前向扩散和反向扩散的整个过程,我们再看一下不处理输入文字,只是单纯生成任意图像的Diffusion结构。

不输入文字,单纯生成任意图像的Diffusion结构

可以看到,不处理文字输入,生成任意图像的Diffusion模型,和Stable Diffusion相比,主要有两个地方不一样:

  • 少了对输入文字的embedding过程(少了编码器 EE、解码器 DD )
  • U-Net网络少了多头Attention结构

除了Stable Diffusion之外,Midjourney最近也非常出圈,我们简单介绍下。

爆火的Midjourney

Midjourney是一款AI绘图工具,其创始人是David Holz。目前Midjourney每月的收入大概超过200万美元,用户可以通过Discord平台的newbie频道使用。Discord平台是一款游戏聊天平台,月活超过1.5亿,其中使用Midjounery的用户数已突破380万。2021年初,Discord拒绝了微软120亿美元的收购要约。本质上Discord是一个社区,Midjourney通过在Discord上创建了自己的服务器,并创建了大量的频道,以及开发了自己的机器人,来向用户提供服务。

Midjourney首页

用户可以在Midjourney首页里点击“Join the Beta”,直接会跳转到它们在Discord上的频道。

点击“Join the Beta”跳转到Midjorney

可以看到上图中显示用户数是381万,当前在线30万。用户使用Midjorney也非常简单,只需要点击主页左下方的newbie频道便可进入。

通过newbie频道进入Midjourney

进入newbie频道后,便可以通过/imagine+提示词,让Midjourney生成图片

Midjourney文字生成图片

可以看到在输入“sunshine black hold”后生成了四张图片。

由于目前Midjourney并没有开源,因此我们并不知道其背后的技术,但是大概率还是基于Diffusion扩散模型。

总结

随着AIGC的爆火,各种应用开始不断出现,AI绘画便是其中的一个典型案例。目前最火的AI绘画模型当属Stable Diffusion,但是目前有关Stable Diffusion的文章并不多,主要偏向应用介绍,对于如何处理输入文字以及去噪过程的具体细节,这方面的文章还是比较少,写这篇文章的目的就是希望能把Stable Diffusion讲清楚,让更多人的了解。

 最后想说

AIGC(AI Generated Content)技术,即人工智能生成内容的技术,具有非常广阔的发展前景。随着技术的不断进步,AIGC的应用范围和影响力都将显著扩大。以下是一些关于AIGC技术发展前景的预测和展望:

1、AIGC技术将使得内容创造过程更加自动化,包括文章、报告、音乐、艺术作品等。这将极大地提高内容生产的效率,降低成本。2、在游戏、电影和虚拟现实等领域,AIGC技术将能够创造更加丰富和沉浸式的体验,推动娱乐产业的创新。3、AIGC技术可以帮助设计师和创意工作者快速生成和迭代设计理念,提高创意过程的效率。

未来,AIGC技术将持续提升,同时也将与人工智能技术深度融合,在更多领域得到广泛应用。感兴趣的小伙伴,赠送全套AIGC学习资料和安装工具,包含AI绘画、AI人工智能等前沿科技教程。

对于从来没有接触过AI绘画的同学,我已经帮你们准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

AIGC学习必备工具和学习步骤

工具都帮大家整理好了,安装就可直接上手

现在AI绘画还是发展初期,大家都在摸索前进。

但新事物就意味着新机会,我们普通人要做的就是抢先进场,先学会技能,这样当真正的机会来了,你才能抓得住。

如果你对AI绘画感兴趣,我可以分享我在学习过程中收集的各种教程和资料。

学完后,可以毫无问题地应对市场上绝大部分的需求。

这份AI绘画资料包整理了Stable Diffusion入门学习思维导图、Stable Diffusion安装包、120000+提示词库,800+骨骼姿势图,Stable Diffusion学习书籍手册、AI绘画视频教程、AIGC实战等等。

【Stable Diffusion安装包(含常用插件、模型)】

img

【AI绘画12000+提示词库】

img

【AI绘画800+骨骼姿势图】

img

【AI绘画视频合集】

img

还有一些已经总结好的学习笔记,可以学到不一样的思路。

实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

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

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

相关文章

志全重庆官网下载

baidu搜索:如何联系八爪鱼SEO? baidu搜索:如何联系八爪鱼SEO? baidu搜索:如何联系八爪鱼SEO? 现在越来越多的人抱怨说搜索引擎收录很难做,站群程序似乎不在是那么重要, 花费高价购买域名成为了做出高收录站群的越来越重要的建站前提。实上…

Python文本处理:初探《三国演义》

Python文本处理:初探《三国演义》 三国演义获取文本文本预处理分词与词频统计引入停用词后进行词频统计分析人物出场次数结果可视化完整代码 三国演义 《三国演义》是中国古代四大名著之一,它以东汉末年到晋朝统一之间的历史为背景,讲述了魏…

2024下《软件设计师》50个高频考点汇总,背就有效!

宝子们!上半年软考已经结束一段时间了,准备考下半年软考中级-软件设计师的小伙伴们可以开始准备了,这里给大家整理了50个高频考点,涵盖全书90%以上重点,先把这个存下!再慢慢看书,边看书边背这个…

CNN和Transformer创新结合,模型性能炸裂!

CNN结合Transformer 【CNNTransformer】这个研究方向通过结合卷积神经网络(CNN)的局部特征提取能力和Transformer的全局上下文建模优势,旨在提升模型对数据的理解力。这一方向在图像处理、自然语言处理等多个领域展现出强大的应用潜力&#…

告诉你提升UI质感的两个秘密,谁用谁知道。

秘密一:善用头部装饰 秘密二:设计好瓷片区

老电脑焕发第二春,玩转 Stable Diffusion 3

几年前,我头脑一热,配置了一台顶配级消费 PC(RTX 2080 Ti GPU i9 CPU),打算用来学习 AI。然而,起初我并没有找到合适的切入点。深度学习早期阶段,消费级显卡根本无法承担训练大模型、微调大模型…

优思学院|精益管理是什么?3大问题帮你彻底搞懂

有一位朋友他喜欢投资,他偶然看中了一家公司,从公司的一些新闻稿中表示他们因为实施了“精益管理”(Lean Management),因此每股盈余(EPS)长期稳定增长,甚至在行业内的重要指标——库…

微信小游戏备案 之 游戏内容介绍编写实例

微信小游戏备案 之 游戏内容介绍编写实例 前言一,编写规范二,内容填写2.1 本游戏不涉及2.2 游戏场景2.3 游戏玩法2.4 功能系统2.5 主要特点三,小结前言 对于游戏开发者来说,微信小游戏备案是让游戏合法上线的重要步骤,而其中游戏内容介绍的编写尤为关键。下面为大家提供一…

Python实现管线建模 - 3.同心变径管

往期回顾 Python实现管线建模 || 1.圆直管、方管https://blog.csdn.net/Xxy9426/article/details/138836778?spm1001.2014.3001.5501 对依赖库的补充 随着后续内容的深入,我发现单纯靠trimesh库已经无法完成后续的建模(涉及到多个几何体拼接或者是创建…

Prometheus+Grafana监控MySQL

一、准备 grafana服务器:192.168.48.136Prometheus服务器:192.168.48.136被监控服务器:192.168.48.134、192.168.48.135查看时间是否同步 二、安装prometheus server 【2.1】安装 # 解压安装包 tar -zxvf prometheus-2.52.0.linux-amd64.t…

安卓删除文件恢复,3个技巧轻松解决,让你的数据失而复得

如今,手机数据的重要性不言而喻。无论是工作文档、个人照片还是其他珍贵的资料,一旦丢失,都可能带来不小的困扰。而当我们不小心删除了手机中的文件时,焦虑和无助感更加强烈。但幸运的是,随着技术的不断进步&#xff0…

Unity接入PS5手柄和Xbox手柄以及Android平台的(以及不同平台分析)

Unity接入PS5手柄和Xbox手柄以及Android平台的(以及不同平台分析) 介绍Unity手柄小知识PC端和编辑器上的摇杆事件和滑动事件PS5手柄Xbox手柄北通手柄 安卓环境下(安卓手机或者安卓模拟器)PS5手柄Xbox手柄北通手柄 总结 介绍 最近…

高中数学:数列-等比数列

一、概念 二、通项公式 1、与函数的关系 类似一个指数函数 2、重要性质 三、求和公式 错位相减法 四、练习 例题1 例题2

基于机器学习的变频器故障诊断方法(MATLAB,Python)

变频器故障数据由MATLAB Simulink生成。 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from sklearn.neighbors import KNeighborsClassifier from sklearn.svm import SVC from sklearn.ensemble import RandomForestClass…

折叠手机鼻祖倒下了,折叠屏手机或完蛋,苹果早有先见之明

柔宇即将倒下,这家率先开发出折叠屏技术的企业未能挽救它自己,而对于折叠手机行业来说,这么多年过去,折叠手机也仍然是绝对的少数派,或许折叠手机也快要寿终正寝了。 柔宇开发的折叠手机为外折叠,弯曲部分无…

【UIDynamic-动力学-UICollisionBehavior-碰撞行为-与引用View碰撞-与另一个item发生碰撞 Objective-C语言】

一、接下来,我们来说这个碰撞啊, 1.把之前的代码备份一份,改个名字,叫做“02-碰撞-与引用View碰撞” 首先呢,把重力的这些属性,先删了, 让它先有重力,先command + R, 当我们点击屏幕的时候,它有重力,所以自然会往下落, 但是呢,好像感觉,超出了控制器的View了以后…

React+TS前台项目实战(九)-- 全局常用组件弹窗Dialog封装

文章目录 前言Dialog公共弹窗组件1. 功能分析2. 代码详细注释3. 使用方式4. 效果展示 总结 前言 今天这篇主要讲全局公共弹窗Dialog组件封装,将用到上篇封装的模态框Modal组件。有时在前台项目中,偶尔要用到一两个常用的组件,如 弹窗&#x…

建筑工程软件Revit中复杂大模型如何实现Web端轻量化?| HOOPS技术应用

建筑信息模型( BIM)技术在建筑工程中扮演着越来越重要的角色,而Autodesk Revit作为主流的BIM软件,被广泛应用于设计、施工和管理。然而,Revit生成的复杂大模型常常由于数据量庞大而难以直接在Web端展示和操作。这时&am…

爬虫初学篇——看完这些还怕自己入门不了?

初次学习爬虫,知识笔记小分享 学scrapy框架可看:孤寒者博主的【Python爬虫必备—>Scrapy框架快速入门篇——上】 目录🌟 一、🍉基础知识二、🍉http协议:三、🍉解析网页(1) xpath的用…

分类预测 | Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测

分类预测 | Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测 目录 分类预测 | Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测&…