VIP部落 http://down.vvipblog.com 编程技术,购物天堂,淘客圣地,教培基地,资源下载 Wed, 13 Nov 2024 14:28:35 +0000 zh-CN hourly 1 https://wordpress.org/?v=5.4.2 FaceFusion3.7.0黄金版本(AMD、Intel显卡通用10月02更新)支持批量视频换脸 http://down.vvipblog.com/software/pcsoft/6514.html http://down.vvipblog.com/software/pcsoft/6514.html#respond Tue, 22 Oct 2024 06:46:01 +0000 http://down.vvipblog.com/?p=6514 FaceFusion换脸工具3.7.0黄金版本换脸工具整合包此版本是最新版本,无需配置任何环境,解压即用,本地版本,无需联网也可使用,一次下载,永久免费使用
FaceFusion软件功能:图片换脸视频换脸,视频批量换脸人脸编辑,数字人对口型老旧照片视频修复上色,此版本侧脸效果大幅度优化提高
此版本支持AMD显卡和Intel显卡,凡是支持directx 12 的AMD或Intel显卡(包括集成显卡)都可以使用此版本换脸工具,使用的是显卡运算,速度很快,此版本同时支持没有独立显卡的电脑
目前测试AMD rx550及其以上的显卡都可以用显卡GPU正常运行AMD显卡4G及其以上的都可以用,Intel独立显卡推荐8G及其以上,A卡和I卡的福音
电脑要求:
1、软件解压就能用,任何电脑都可用,推荐AMD独立显卡4G以上或英特尔独立显卡8G以上下载没显卡也能用,也支持cpu版本
2、系统要求:win10、win11
容易出错的地方

软件路径不要包含中文
图片和视频文件名称和路径也不要包含中文
计算机系统用户名不要是中文
● 整合版更新
○ 彻底解除NSFW限制
○ 本地离线版本,无需联网也可使用
○ 中文汉化
○ 更新最新版依赖组件
○ 优化隔离环境

○ 修改缓存目录为当前文件夹temp避免替换长视频C盘占满

FaceFusion 3.7.0版本如图:


FaceFusion(2024.10.02)更新日志
代码优化
FaceFusion3.7.0(2024.09.21)更新日志
引入像素增强功能到换脸模块
为人脸检测器加入多角度处理
引入年龄修改处理器
引入由Live Portrait驱动的表情恢复处理器
引入由Live Portrait驱动的脸部编辑处理器
用resnet_34模型替代现有的人脸解析器
发布GHOST换脸模型
发布帧增强模型real_esrgan_x8
为SimSwap和GHOST引入ArcFace转换模型
引入基于本地哈希验证的离线优先资源管理
用更先进的fairface模型替换现有的性别和年龄模型
将顺序、年龄和性别转移到人脸选择器
支持CUDA 12.4、TensorRT 10.4、OpenVino 2024.1和ROCm 6.2
在无头模式下提供合适的错误代码
将CLI迁移到命令行模式,支持相关参数
引入定制的peppa_wutz人脸标志点模型
引入–face-landmark-model参数
引入–output-audio-encoder参数
添加视频编码器h264_videotoolbox和hevc_videotoolbox
将–face-selector-order参数的默认值改为large-small
用上下文感知的推理管理器替换全局变量
调整UI布局和视觉外观
升级到最新的Gradio 4
提供一个多范围滑块用于剪辑视频帧
为UI引入一个日志级别感知的终端组件
确保更精确的基准测试结果
由于精度低,移除yunet人脸检测模型
修复uniface换脸模型中的闪烁问题
修复ROCm和DirectML线程和预览崩溃问题
提升webp图像质量
修复ffmpeg处理终止问题

FaceFusion3.6.0(2024.05.20)更新日志
添加帧增强器模型 modelclear_reality_x4 和 ultra_sharp_x4
通过参数ini–config加载不同文件
添加程序准备就绪后打开浏览器的功能 –open-browser
添加选择处理设备参数  –execution-device-id
使用 OpenVINO 执行提供程序支持 Intel Arc显卡
禁止 Gradio 上传超过 512 MB 大小的视频
修复 Windows 下与特殊字符相关的路径问题
修复使用临时文件最终处理图像时的问题

解压密码: www.aibl.vip

●下载声明
软件只要下载到您手上,就可以永久使用。

]]>
http://down.vvipblog.com/software/pcsoft/6514.html/feed 0
sd教程:电脑本地安装3步轻松搞定,小白看完也能学会 http://down.vvipblog.com/ai/aipainting/6480.html http://down.vvipblog.com/ai/aipainting/6480.html#respond Mon, 10 Jun 2024 08:45:11 +0000 http://down.vvipblog.com/?p=6480

SD做出来的小姐姐太美了,昨天网友私信我,买了新电脑,Stable Diffusion webui就是装不好,好吧好吧,今天就来教大家快速安装SD,一起愉快的制作小姐姐。首先说明一下,SD对电脑要求很高,最好是N卡,显存至少4G,内存8G以上,如果你的电脑是入门级的上网本,或者是amd显卡,也不要着急,我有别的方式让你用上SD。具体私信联系我。


 

对于新人来说,最简单最常用的应该是Windows系统,这里就介绍windows系统下如何安装,安装之前先把你的显卡驱动升级到最新,第一步下载python3.10版。这是sd必须依赖的执行程序。


 


 

安装就直接默认就可以了,第二步安装这程序也直接默认安装就好了。上面两个程序都是SD运行必须使用的依赖环境。

第三步,在你准备安装SD的目录,以管理员身份打开CMD命令行工具,这里有个小技巧,直接在文件地址栏全选目录,输入CMD就打开了。打开后使用GT远程下载SD的安装包,这个命令我放在下面了,

git clone https:http://ghproxy.com/https:http://github.com/AUTOMATIC1111/stable-diffusion-webui

网络可能不好,有时网络出错,Ctrl+z退出 重复操作

https:http://ghproxy.com/是一个加速git网站地址。

需要的小伙伴直接复制一下就好了。安装包有2G多,如果你网络不好,可能需要等十分钟左右才可以完全执行完命令。


 


 

恭喜你,SD已经安装完90%了。最后一步也很简单,打开你的SD安装包,直接点击web user这个批处理命令,命令会自动运行,第一次点击它会自动下载一些SD需要的程序,这个过程如果网速好的话,可能20分钟就可以了。


 


 

在安装中间可能会出一些小问题,比如豆豆的SD就提示我的G不是最新的,让我升级到最新好的。经过漫长的等待,SD会给你一个网址,你把这个网址复制到你的浏览器,激动人心的时刻终于来到了,我们随便输入一些关键词,下面就是见证奇迹的时刻。


 


 


 

 

]]>
http://down.vvipblog.com/ai/aipainting/6480.html/feed 0
sd教程:LoRA、TI、dreambooth、Hypernetworks四大模型区别 http://down.vvipblog.com/ai/aipainting/6478.html http://down.vvipblog.com/ai/aipainting/6478.html#respond Mon, 10 Jun 2024 08:42:56 +0000 http://down.vvipblog.com/?p=6478

玩StableDiffusion的朋友,第一个难关应该是软件的本地安装了,

因为它对电脑硬件有一定要求,还需要安装各种各样的依赖环境。

新人很容易不知所措。

如果你还没有安装好sd,可以参考我下面的教程:

sd教程:电脑本地安装3步轻松搞定,小白看完也能学会

安装好了,就该装模型文件了,sd的模型这么多,而且动不动就是几个g,新人到底应该如何选择呢?

下面我结合我的经验给新人一些推荐,希望可以帮助到大家。

首先把模型切换出来,如下图请点击橙色生成按钮下第三个图标,就可以切换出这4类模型。


 


 

sd里面的模型大体上有下面4种:

check point模型

也就是sd所谓的大模型,或者说基础模型,比如sd-v1.5.ckpt,sd官方自带的基础模型。这类模型都是由dreambooth技术,经过大量数据训练,可以生成各类常见元素的图片,算是一个全能工具。因此不可缺少,至少有一个,不然sd不能启动。这类模型要放在models\stable diffusion文件夹内。通过右上角的选择框进行切换。如下图


 

小知识:所有的check point模型,都有搭配的vae文件,vae的作用是增强模型的色彩、光照等表现效果,相当于给模型加了美颜滤镜。所以如果你发现你的模型做的图发灰,检查一下vae文件是否勾选。

embeddings模型

字面意思是文字嵌入,这类模型是通过Textual Inversion (TI)#纹理反转的方法,在check point模型的基础上训练来的,特点是文件格式是pt,体积一般只有几十kb,特别小。下载的这类模型,要放到\embeddings文件夹内。

这类模型使用时要在prompt中,添加模型名字。模型的功能是可以生成特定人物类型或风格的图片,比如一款叫Pure Eros.pt的模型,可以让生成的人物都是一副纯欲脸的样子。


 

flower_style.pt这个模型,可以给生成的画面,添加很多随机的花朵。


 

hypernetworks模型

超级网格模型,和上面的类似,也是pt格式,文件一般100m左右,由于lora模型现在更受到欢迎,这类模型使用的人很少。下载的模型要放到models\hypernetworks文件夹内。

lora模型

这种模型格式是safetensors,放到models\lora文件夹内。这类模型容易训练,对电脑配置要求低,文件安全,现在使用的人很多。使用时,需要把模型名字放入prompt内,一般格式是<lora:name : 权重系数>,比如<lora:cuteGirlMix4_v10_T_mix4:0.35>,注意权重一般在0-1之间,根据实际需要灵活调整。可以多个lora模型一起使用,一般权重加起来不超过1.


 

总体上来看,check point模型、embeddings模型、lora模型都很受欢迎,hypernetworks模型有慢慢被淘汰的趋势。


 

这四类模型,哪些适合新人朋友?哪些好用?我想生成妹子,该用什么模型?下面几期我会详细介绍。

 

]]>
http://down.vvipblog.com/ai/aipainting/6478.html/feed 0
全网最全stable diffusion模型讲解!快来!!小白必收藏!! http://down.vvipblog.com/ai/aipainting/6431.html http://down.vvipblog.com/ai/aipainting/6431.html#respond Sun, 09 Jun 2024 16:31:57 +0000 http://down.vvipblog.com/?p=6431
手把手教你入门绘图超强的AI绘画程序Stable Diffusion,用户只需要输入一段图片的文字描述,即可生成精美的绘画。给大家带来了全新Stable Diffusion保姆级教程资料包(文末可获取)

AI模型最新展现出的图像生成能力远远超出人们的预期,直接根据文字描述就能创造出具有惊人视觉效果的图像,其背后的运行机制显得十分神秘与神奇,但确实影响了人类创造艺术的方式。

AI模型最新展现出的图像生成能力远远超出人们的预期,直接根据文字描述就能创造出具有惊人视觉效果的图像,其背后的运行机制显得十分神秘与神奇,但确实影响了人类创造艺术的方式。

Stable Diffusion的发布是AI图像生成发展过程中的一个里程碑,相当于给大众提供了一个可用的高性能模型,不仅生成的图像质量非常高,运行速度快,并且有资源和内存的要求也较低。

相信只要试过AI图像生成的人都会想了解它到底是如何工作的,这篇文章就将为你揭开Stable Diffusion工作原理的神秘面纱。
在这里插入图片描述

Stable Diffusion从功能上来说主要包括两方面:

1)其核心功能为仅根据文本提示作为输入来生成的图像(text2img);
2)你也可以用它对图像根据文字描述进行修改(即输入为文本+图像)。

在这里插入图片描述

下面将使用图示来辅助解释Stable Diffusion的组件,它们之间如何交互,以及图像生成选项及参数的含义。

Stable Diffusion组件

Stable Diffusion是一个由多个组件和模型组成的系统,而非单一的模型。

当我们从模型整体的角度向模型内部观察时,可以发现,其包含一个文本理解组件用于将文本信息翻译成数字表示(numeric representation),以捕捉文本中的语义信息。
在这里插入图片描述

虽然目前还是从宏观角度分析模型,后面才有更多的模型细节,但我们也可以大致推测这个文本编码器是一个特殊的Transformer语言模型(具体来说是CLIP模型的文本编码器)。

模型的输入为一个文本字符串,输出为一个数字列表,用来表征文本中的每个单词/token,即将每个token转换为一个向量。

然后这些信息会被提交到图像生成器(image generator)中,它的内部也包含多个组件。
在这里插入图片描述

图像生成器主要包括两个阶段:

1. Image information creator
这个组件是Stable Diffusion的独家秘方,相比之前的模型,它的很多性能增益都是在这里实现的。

该组件运行多个steps来生成图像信息,其中steps也是Stable Diffusion接口和库中的参数,通常默认为50或100。
在这里插入图片描述

图像信息创建器完全在图像信息空间(或潜空间)中运行,这一特性使得它比其他在像素空间工作的Diffusion模型运行得更快;从技术上来看,该组件由一个UNet神经网络和一个调度(scheduling)算法组成。

扩散(diffusion)这个词描述了在该组件内部运行期间发生的事情,即对信息进行一步步地处理,并最终由下一个组件(图像解码器)生成高质量的图像。

2. 图像解码器

图像解码器根据从图像信息创建器中获取的信息画出一幅画,整个过程只运行一次即可生成最终的像素图像。
在这里插入图片描述

可以看到,Stable Diffusion总共包含三个主要的组件,其中每个组件都拥有一个独立的神经网络:

1)Clip Text用于文本编码。

输入:文本

输出:77个token嵌入向量,其中每个向量包含768个维度

2)UNet + Scheduler在信息(潜)空间中逐步处理/扩散信息。

输入:文本嵌入和一个由噪声组成的初始多维数组(结构化的数字列表,也叫张量tensor)。

输出:一个经过处理的信息阵列

3)自编码解码器(Autoencoder Decoder),使用处理过的信息矩阵绘制最终图像的解码器。

输入:处理过的信息矩阵,维度为(4, 64, 64)

输出:结果图像,各维度为(3,512,512),即(红/绿/蓝,宽,高)
在这里插入图片描述

什么是Diffusion?

扩散是在下图中粉红色的图像信息创建器组件中发生的过程,过程中包含表征输入文本的token嵌入,和随机的初始图像信息矩阵(也称之为latents),该过程会还需要用到图像解码器来绘制最终图像的信息矩阵。
在这里插入图片描述

整个运行过程是step by step的,每一步都会增加更多的相关信息。

为了更直观地感受整个过程,可以中途查看随机latents矩阵,并观察它是如何转化为视觉噪声的,其中视觉检查(visual inspection)是通过图像解码器进行的。
在这里插入图片描述

整个diffusion过程包含多个steps,其中每个step都是基于输入的latents矩阵进行操作,并生成另一个latents矩阵以更好地贴合「输入的文本」和从模型图像集中获取的「视觉信息」。
在这里插入图片描述

将这些latents可视化可以看到这些信息是如何在每个step中相加的。
在这里插入图片描述

整个过程就是从无到有,看起来相当激动人心。

步骤2和4之间的过程转变看起来特别有趣,就好像图片的轮廓是从噪声中出现的。

Diffusion的工作原理

扩散模型是一种生成模型,用于生成与训练数据相似的数据。简单的说,扩散模型的工作方式是通过迭代添加高斯噪声来“破坏”训练数据,然后学习如何消除噪声来恢复数据。

一个标准扩散模型有两个主要过程:正向扩散和反向扩散。

在正向扩散阶段,通过逐渐引入噪声来破坏图像,直到图像变成完全随机的噪声。

在反向扩散阶段,使用一系列马尔可夫链逐步去除预测噪声,从高斯噪声中恢复数据。
在这里插入图片描述

通过缓慢添加(去除)噪声来生成样本的正向(反向)扩散过程的马尔可夫链(图片来源: Jonathan Ho, Ajay Jain, Pieter Abbeel. 2020)

对于噪声的估计和去除,最常使用的是 U-Net。该神经网络的架构看起来像字母 U,由此得名。U-Net 是一个全连接卷积神经网络,这使得它对图像处理非常有用。U-Net的特点在于它能够将图像作为入口,并通过减少采样来找到该图像的低维表示,这使得它更适合处理和查找重要属性,然后通过增加采样将图像恢复回来。
在这里插入图片描述

一个典型的U-Net架构实例
具体的说,所谓去除噪声就是从时间帧 t 向时间帧 t − 1 的变换,其中 t 是 t 0(没有噪声)到 t_{max}(完全噪声)之间的任意时间帧。变换规则为:

  1. 输入时间帧 t 的图像,并且在该时间帧上图像存在特定噪声;
  2. 使用 U-Net 预测总噪声量;
  3. 然后在时间帧 t 的图像中去除总噪声的“一部分”,得到噪声较少的时间帧 t − 1 的图像。
    在这里插入图片描述

向图片逐步增加/删除噪声
从数学上讲,执行此上述方法 T 次比尝试消除整个噪声更有意义。通过重复这个过程,噪声会逐渐被去除,我们会得到一个更“干净”的图像。比如对于带有噪声的图,我们通过在初始图像上添加完全噪声,然后再迭代地去除它来生成没有噪声的图像,效果比直接在原图上去除噪声要好。

近几年,扩散模型在图像生成任务中表现出突出的性能,并在图像合成等多个任务中取代了GAN。由于扩散模型能够保持数据的语义结构,因此不会受到模式崩溃的影响。

然而,实现扩散模型存在一些困难。因为所有马尔可夫状态都需要一直在内存中进行预测,这意味着内存中要一直保存多个大型深度网络的实例,从而导致扩散模型非常吃内存。此外,扩散模型可能会陷入图像数据中难以察觉的细粒度复杂性中,导致训练时间变得太长(几天到几个月)。矛盾的是,细粒度图像生成是扩散模型的主要优势之一,我们无法避免这个“甜蜜的烦恼”。由于扩散模型对计算要求非常高,训练需要非常大的内存和电量,这使得早前大多数研究人员无法在现实中实现该模型。

Stable Diffusion

扩散模型最大的问题是它的时间成本和经济成本都极其“昂贵”。Stable Diffusion的出现就是为了解决上述问题。如果我们想要生成一张 1024 × 1024 1024 尺寸的图像,U-Net 会使用 1024 × 1024 1024尺寸的噪声,然后从中生成图像。这里做一步扩散的计算量就很大,更别说要循环迭代多次直到100%。一个解决方法是将大图片拆分为若干小分辨率的图片进行训练,然后再使用一个额外的神经网络来产生更大分辨率的图像(超分辨率扩散)。

2021年发布的Latent Diffusion模型给出了不一样的方法。 Latent Diffusion模型不直接在操作图像,而是在潜在空间中进行操作。通过将原始数据编码到更小的空间中,让U-Net可以在低维表示上添加和删除噪声(stable Diffusion的核心原理就是Latent Diffusion)。

使用扩散模型生成图像的核心思路还是基于已存在的强大的计算机视觉模型,只要输入足够大的数据集,这些模型可以学习任意复杂的操作。

假设我们已经有了一张图像,生成产生一些噪声加入到图像中,然后就可以将该图像视作一个训练样例。

训练示例是通过生成噪声并将一定的噪声添加到训练数据集中生成的(前向扩散)
在这里插入图片描述

使用相同的操作可以生成大量训练样本来训练图像生成模型中的核心组件。
在这里插入图片描述

上述例子展示了一些可选的噪声量值,从原始图像(级别0,不含噪声)到噪声全部添加(级别4) ,从而可以很容易地控制有多少噪声添加到图像中。

所以我们可以将这个过程分散在几十个steps中,对数据集中的每张图像都可以生成数十个训练样本。
在这里插入图片描述

基于上述数据集,我们就可以训练出一个性能极佳的噪声预测器,每个训练step和其他模型的训练相似。当以某一种确定的配置运行时,噪声预测器就可以生成图像。
在这里插入图片描述

移除噪声,绘制图像

经过训练的噪声预测器可以对一幅添加噪声的图像进行去噪,也可以预测添加的噪声量。
在这里插入图片描述

由于采样的噪声是可预测的,所以如果从图像中减去噪声,最后得到的图像就会更接近模型训练得到的图像。
在这里插入图片描述

得到的图像并非是一张精确的原始图像,而是分布(distribution),即世界的像素排列,比如天空通常是蓝色的,人有两只眼睛,猫有尖耳朵等等,生成的具体图像风格完全取决于训练数据集。
在这里插入图片描述

不止Stable Diffusion通过去噪进行图像生成,DALL-E 2和谷歌的Imagen模型都是如此。

需要注意的是,到目前为止描述的扩散过程还没有使用任何文本数据生成图像。因此,如果我们部署这个模型的话,它能够生成很好看的图像,但用户没有办法控制生成的内容。

在接下来的部分中,将会对如何将条件文本合并到流程中进行描述,以便控制模型生成的图像类型。

加速:在压缩数据上扩散

 **潜在空间(Lantent Space)**

潜在空间简单的说是对压缩数据的表示。所谓压缩指的是用比原始表示更小的数位来编码信息的过程。比如我们用一个颜色通道(黑白灰)来表示原来由RGB三原色构成的图片,此时每个像素点的颜色向量由3维变成了1维度。维度降低会丢失一部分信息,然而在某些情况下,降维不是件坏事。通过降维我们可以过滤掉一些不太重要的信息你,只保留最重要的信息。

假设我们像通过全连接的卷积神经网络训练一个图像分类模型。当我们说模型在学习时,我们的意思是它在学习神经网络每一层的特定属性,比如边缘、角度、形状等……每当模型使用数据(已经存在的图像)学习时,都会将图像的尺寸先减小再恢复到原始尺寸。最后,模型使用解码器从压缩数据中重建图像,同时学习之前的所有相关信息。因此,空间变小,以便提取和保留最重要的属性。这就是潜在空间适用于扩散模型的原因。
在这里插入图片描述
在这里插入图片描述

利用卷积神经网络提取最重要的属性
任何生成性学习方法都有两个主要阶段:感知压缩和语义压缩:

在感知压缩学习阶段,学习方法必须去除高频细节将数据封装到抽象表示中。此步骤对构建一个稳定、鲁棒的环境表示是必要的。GAN 擅长感知压缩,通过将高维冗余数据从像素空间投影到潜在空间的超空间来实现这一点。潜在空间中的潜在向量是原始像素图像的压缩形式,可以有效地代替原始图像。

更具体地说,用自动编码器 (Auto Encoder) 结构捕获感知压缩。 自动编码器中的编码器将高维数据投影到潜在空间,解码器从潜在空间恢复图像。
在这里插入图片描述

语义压缩

在学习的第二阶段,图像生成方法必须能够捕获数据中存在的语义结构。 这种概念和语义结构提供了图像中各种对象的上下文和相互关系的保存。 Transformer擅长捕捉文本和图像中的语义结构。 Transformer的泛化能力和扩散模型的细节保存能力相结合,提供了两全其美的方法,并提供了一种生成细粒度的高度细节图像的方法,同时保留图像中的语义结构(UNet结构中的Transformer主要用于语义压缩)。

感知损失

潜在扩散模型中的自动编码器通过将数据投影到潜在空间来捕获数据的感知结构。论文作者使用一种特殊的损失函数来训练这种称为“感知损失”的自动编码器。该损失函数确保重建限制在图像流形内,并减少使用像素空间损失(例如 L1/L2 损失)时出现的模糊。
在这里插入图片描述

为了加速图像生成的过程,Stable Diffusion并没有选择在像素图像本身上运行扩散过程,而是选择在图像的压缩版本上运行,论文中也称之为「Departure to Latent Space」。

整个压缩过程,包括后续的解压、绘制图像都是通过自编码器完成的,将图像压缩到潜空间中,然后仅使用解码器使用压缩后的信息来重构。
在这里插入图片描述

前向扩散(forward diffusion)过程是在压缩latents完成的,噪声的切片(slices)是应用于latents上的噪声,而非像素图像,所以噪声预测器实际上是被训练用来预测压缩表示(潜空间)中的噪声。
在这里插入图片描述

前向过程,即使用自编码器中的编码器来训练噪声预测器。一旦训练完成后,就可以通过运行反向过程(自编码器中的解码器)来生成图像。
在这里插入图片描述

前向和后向过程如下所示,图中还包括了一个conditioning组件,用来描述模型应该生成图像的文本提示。
在这里插入图片描述
在这里插入图片描述

文本编码器:一个Transformer语言模型

模型中的语言理解组件使用的是Transformer语言模型,可以将输入的文本提示转换为token嵌入向量。发布的Stable Diffusion模型使用 ClipText (基于 GPT 的模型) ,这篇文章中为了方便讲解选择使用 BERT模型。
在这里插入图片描述

Imagen论文中的实验表明,相比选择更大的图像生成组件,更大的语言模型可以带来更多的图像质量提升。

早期的Stable Diffusion模型使用的是OpenAI发布的经过预训练的 ClipText 模型,而在Stable Diffusion V2中已经转向了最新发布的、更大的CLIP模型变体OpenClip.

CLIP是怎么训练的?

CLIP需要的数据为图像及其标题,数据集中大约包含4亿张图像及描述。
在这里插入图片描述

数据集通过从网上抓取的图片以及相应的「alt」标签文本来收集的。

CLIP 是图像编码器和文本编码器的组合,其训练过程可以简化为拍摄图像和文字说明,使用两个编码器对数据分别进行编码。
在这里插入图片描述

然后使用余弦距离比较结果嵌入,刚开始训练时,即使文本描述与图像是相匹配的,它们之间的相似性肯定也是很低的。
在这里插入图片描述

随着模型的不断更新,在后续阶段,编码器对图像和文本编码得到的嵌入会逐渐相似。
在这里插入图片描述

通过在整个数据集中重复该过程,并使用大batch size的编码器,最终能够生成一个嵌入向量,其中狗的图像和句子「一条狗的图片」之间是相似的。

就像在 word2vec 中一样,训练过程也需要包括不匹配的图片和说明的负样本,模型需要给它们分配较低的相似度分数。

文本信息喂入图像生成过程:

文本-图像合成:在 Python 实现中,我们可以使用使用 LDM v4 的最新官方实现来生成图像。 在文本到图像的合成中,潜在扩散模型使用预训练的 CLIP 模型3,该模型为文本和图像等多种模态提供基于Transformer的通用嵌入。 然后将Transformer模型的输出输入到称为“diffusers”的潜在扩散模型Python API,同时还可以设置一些参数(例如,扩散步数、随机数种子、图像大小等)。

为了将文本条件融入成为图像生成过程的一部分,必须调整噪声预测器的输入为文本。
在这里插入图片描述

所有的操作都是在潜空间上,包括编码后的文本、输入图像和预测噪声。
在这里插入图片描述

为了更好地了解文本token在 Unet 中的使用方式,还需要先了解一下 Unet模型。

Unet 噪声预测器中的层(无文本)

一个不使用文本的diffusion Unet,其输入输出如下所示:
在这里插入图片描述

在模型内部,可以看到:

1. Unet模型中的层主要用于转换latents;
2. 每层都是在之前层的输出上进行操作;
3. 某些输出(通过残差连接)将其馈送到网络后面的处理中
4. 将时间步转换为时间步长嵌入向量,可以在层中使用。

在这里插入图片描述

Unet 噪声预测器中的层(带文本)

现在就需要将之前的系统改装成带文本版本的。

条件扩散

扩散模型是依赖于先验的条件模型。在图像生成任务中,先验通常是文本、图像或语义图。为了获得先验的潜在表示,需要使用转换器(例如 CLIP)将文本/图像嵌入到潜在向量τ \tauτ中。因此,最终的损失函数不仅取决于原始图像的潜在空间,还取决于条件的潜在嵌入。
在这里插入图片描述

主要的修改部分就是增加对文本输入(术语:text conditioning)的支持,即在ResNet块之间添加一个注意力层。
在这里插入图片描述

需要注意的是,ResNet块没有直接看到文本内容,而是通过注意力层将文本在latents中的表征合并起来,然后下一个ResNet就可以在这一过程中利用上文本信息。

AI绘画所有方向的学习路线思维导图

这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。如果下面这个学习路线能帮助大家将AI利用到自身工作上去,那么我的使命也就完成了:
在这里插入图片描述

👉stable diffusion新手0基础入门PDF👈

在这里插入图片描述

👉AI绘画必备工具👈

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉AI绘画基础+速成+进阶使用教程👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

 

 

]]>
http://down.vvipblog.com/ai/aipainting/6431.html/feed 0
Stable Diffusion原理详解(附代码实现) http://down.vvipblog.com/ai/aipainting/6412.html http://down.vvipblog.com/ai/aipainting/6412.html#respond Sun, 09 Jun 2024 16:27:12 +0000 http://down.vvipblog.com/?p=6412

一、前言

回顾AI绘画的历史,GAN(Generative Adversarial Nets)是比较出众的一个。GAN的出现让AI绘画成为可能,当时GAN给AI绘画提供了一种新的思路,现在回顾当时的绘画可以算是相当粗糙。

gan-results.jpg

初代GAN出现后,出现了大量GAN的变种,比如StyleGAN、CycleGAN、DCGAN等。而StyleGAN已经可以生成非常逼真的图像了,下面是StyleGAN的一些结果。

stylegan-results.jpg

GAN提出已经过去十年,AI绘画也得到了颠覆性的进步。Diffusion Model(DM)逐渐取代了GAN在AI绘画领域的地位。在此基础上,AI绘画领域还融合了其它深度学习方法,比如Controlnet、LoRA等。如今,AI绘画达到了以假乱真的地步,同时给与用户极高的可控性,对资源的要求也逐步降低,每个人都可以在自己的电脑上运行AI绘画模型。

今天我们的主角是Stable Diffusion,它是如今最流行的开源DM。基于Stable Diffusion,开源社区涌现了繁多的开源项目和模型。比如Stable Diffusion Webui、Comfyui、Fooocus等集成应用;分享模型的Civitai网站;HuggingFace提供的Diffusers模块。

今天我们将介绍Stable Diffusion的整体架构,分解每个部件,最后借助Diffusers模块实现AI绘画。

二、网络结构

Stable Diffusion由多个子网络组成,包括文本编码器、UNet和VAE三大部分。组合在一起可以看做一个接收文本输入,输出图像的模型。下面我们将从整体出发,而后拆分每个部件。

2.1 整体架构

Stable Diffusion的架构如图所示:

stable-diffusion-structure.jpg

整体上看是一个接收文本输入,并输出图像的模型。Stable Diffusion处理的过程如下:

  1. 输入文本,使用CLIP模型对文本进行编码,获得文本Embedding
  2. 从潜空间生成噪声Latent
  3. 将文本Embedding和Latent输入UNet模型,预测Latent中的噪声
  4. 将去除Latent中的噪声,去除噪声后的结果重新赋值为Latent
  5. 重复步骤3、4
  6. 将Latent传入VAE解码器,得到最终图片

模型的核心是一个UNet噪声预测网络。不同于GAN直接从噪声中生成图片,Stable Diffusion会进行多次预测噪声并降噪,最终生成图片。

2.2 文本编码器

Stable Diffusion是一种带条件的图像生成模型,可以根据输入的文本生成与文本相符的图片。我们可以直接使用训练良好的Bert模型作为文本编码器,但是这样生成的文本向量和图像的关系不太密切,为了图像生成能更遵循文本条件,Stable Diffusion使用了CLIP模型。

CLIP模型的提出是为了更好的解决视觉任务,CLIP可以在zero-shot的情况下在ImageNet上与ResNet50有同等的表现。

下面是OpenAI提供的CLIP工作图:

clip-training-steps.jpg

从结构上来看,CLIP模型由两个Encoder构成,分别是用来编码文本的TextEncoder和用来编码图片的ImageEncoder。CLIP的训练数据是一堆“图片-文本”对形式,其工作模式如下:

  1. 训练TextEncoder和ImageEncoder,最大化ItTt(图片向量与响应的文本向量相似度)
  2. 利用分类标签生成句子,“a photo of a {object}”
  3. 输入图片获得It,找到最相似的句子向量Tk,改句子对应的标签就是图片标签 在完成训练后就可以得到比较出色的文本编码器,而后两步则是为图像分类做准备。

2.3 VAE模型

VAE模型在Diffusion Model里面并非必要的,VAE在Stable Diffusion中作为一种有效利用资源的方法,减少了图片生成的资源需求。下图是VAE的结构,其中c是一个可选的条件。

vae-structure.png

VAE由Encoder和Decoder两个部分组成,首先需要输入x,经过Encoder编码后,得到(μ,σ),分别表示均值和方差,这两个变量可以确定一个分布,然后在当前分布中采样出样本z。z通常是一个比x维度更低的向量。

采样出来的z输入Decoder,我们希望Decoder的输出与输入的x越接近越好。这样我们就达到了图像压缩的效果。

在训练Stable Diffusion时,我们会把图片输入VAE的Encoder,然后再拿来训练UNet,这样我们就可以在更低的维度空间训练图像生成模型,这样就可以减少资源的消耗。

2.4 UNet模型

UNet模型结构与VAE非常相似,也是Encoder-Decoder架构。在Stable Diffusion中,UNet作为一个噪声预测网络,在绘画过程中需要多次推理。我们先不考虑VAE的介入,来看看UNet在Stable Diffusion中的作用。

实际上UNet在Stable Diffusion中充当噪声预测的功能。UNet接收一张带有噪声的图片,输出图片中的噪声,根据带噪声的图片和噪声我们可以得到加噪前的图片。这个降噪的过程通常会重复数十遍。

知道UNet的作用后,我们就需要创建数据集了。我们只需要图片即可,拿到图片对该图片进行n次加噪,直到原图变成完全噪声。而加噪前的图片可以作为输入,加噪后的数据可以作为输出。如图所示:

noising_step.jpg

在加噪的过程中,噪声逐步增大。因此在降噪的过程中,我们需要有噪声图片,以及当前加噪的step。下图是噪声预测部分的结构:

noise-predicter.jpg

最后图像生成的步骤就是不停降噪的步骤:

denoising-step.jpg

最后,我们再加入VAE。我们加噪和预测噪声的步骤不再是作用在原图上,而是作用在VAE Encoder的输出上面,这样我们就可以在较小的图像上完成UNet的训练,极大减少资源的消耗。

unet-vae.png

现在只需要在UNet的输入中再加入文本变量就是完整的Stable Diffusion了。

三、Diffusers模块

现在我们已经知道Stable Diffusion的原理,为了加深理解,下面使用Diffusers模块实现Stable Diffusion的全过程。下面的代码需要使用到pytorch、transformers和diffusers模块。

3.1 使用pipeline

HuggingFace中的模块提供了许多pipeline用于各种任务,而Stable Diffusion则是Text-to-image类型的任务,我们可以使用下面几句代码完成文生图:


from diffusers import AutoPipelineForText2Image
import torch

pipeline = AutoPipelineForText2Image.from_pretrained(
	"runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16, variant="fp16"
).to("cuda")
image = pipeline(
	"stained glass of darth vader, backlight, centered composition, masterpiece, photorealistic, 8k"
).images[0]
image

生成图像如下:

generated01.PNG

上面是一种简单的调用方式,下面我们加载各个部件,手动完成图像生成的过程。

3.2 加载各个部件

除了pipeline直接加载,我们还可以分部件加载,分别加载CLIP、UNet和VAE,代码如下:

from tqdm.auto import tqdm
from PIL import Image  
import torch  
from transformers import CLIPTextModel, CLIPTokenizer  
from diffusers import AutoencoderKL, UNet2DConditionModel, DDPMScheduler  
  
# 加载模型  
model_path = "runwayml/stable-diffusion-v1-5"  
vae = AutoencoderKL.from_pretrained(model_path, subfolder="vae")  
tokenizer = CLIPTokenizer.from_pretrained(model_path, subfolder="tokenizer")  
text_encoder = CLIPTextModel.from_pretrained(  
	model_path, subfolder="text_encoder"  
)  
unet = UNet2DConditionModel.from_pretrained(  
	model_path, subfolder="unet"  
)  
scheduler = DDPMScheduler.from_pretrained(model_path, subfolder="scheduler")
# 使用gpu加速  
torch_device = "cuda"  
vae.to(torch_device)  
text_encoder.to(torch_device)  
unet.to(torch_device)

在这里我们还加载了Scheduler,后续会使用Scheduler管理降噪的步骤。

3.3 对文本进行编码

下面我们使用CLIP模型对文本进行编码,这里要使用到tokenizer和text_encoder:

# 对文本进行编码  
prompt = ["a photograph of an astronaut riding a horse"]  
height = 512 # default height of Stable Diffusion  
width = 512 # default width of Stable Diffusion  
num_inference_steps = 25 # Number of denoising steps  
guidance_scale = 7.5 # Scale for classifier-free guidance  
batch_size = len(prompt)  
text_input = tokenizer(  
	prompt, padding="max_length", max_length=tokenizer.model_max_length, truncation=True, return_tensors="pt"  
)  
with torch.no_grad():  
	text_embeddings = text_encoder(text_input.input_ids.to(torch_device))[0]

其中text_embeddings就是文本编码结果。

3.4 获取潜变量

在训练过程中潜变量Latent是由VAE的Encoder得到的,而在生成过程中,Latent则是符合一定分别的随机噪声。代码如下:

# 获取latent  
latents = torch.randn(  
	(batch_size, unet.config.in_channels, height // 8, width // 8),  
	device=torch_device,  
)  
latents = latents * scheduler.init_noise_sigma

torch.randn可以得到方差为1的噪声,而latents * scheduler.init_noise_sigma则把方差修改为scheduler.init_noise_sigma。

3.5 降噪

接下来就是重复多次UNet推理,得到降噪后的Latent:

# 降噪  
scheduler.set_timesteps(num_inference_steps)  
for t in tqdm(scheduler.timesteps):  
	latent_model_input = latents  
	latent_model_input = scheduler.scale_model_input(latent_model_input, timestep=t)  
	with torch.no_grad():  
		# 预测噪声
		noise_pred = unet(
			latent_model_input, 
			t, 
			encoder_hidden_states=text_embeddings
		).sample 
	# 降噪 
	latents = scheduler.step(noise_pred, t, latents).prev_sample

最后得到的latents变量就是降噪后的结果,在训练过程中对应VAE Encoder的输出,因此我们还需要使用VAE Decoder还原出图片。

3.6 VAE解码

下面就是使用VAE Decoder解码出原图:

# 使用vae解码  
latents = 1 / 0.18215 * latents  
with torch.no_grad():  
	image = vae.decode(latents).sample  
	image = (image / 2 + 0.5).clamp(0, 1).squeeze()  
	image = (image.permute(1, 2, 0) * 255).to(torch.uint8).cpu().numpy()  
	images = (image * 255).round().astype("uint8")  
	image = Image.fromarray(image)  
	image.show()

最后生成如下图片:

generated02.PNG

四、总结

今天我们以GAN开始,介绍了AI绘画领域的一些模型,并把Stable Diffusion作为今天的主角,详解介绍了Stable Diffusion的实现原理。

我们还使用Diffusers模块实现了Stable Diffusion生成图像的代码。在Stable Diffusion中,还有诸如LoRA、Controlnet等相关技术,在本文没有详细提到。而这些东西在AI绘画中却非常重要,也让AI绘画可以应用在更多领域。

我们可以使用Stable Diffusion Webui等工具使用LoRA和Controlnet等工具,我们还可以在Diffusers中使用这些根据。后续我们将介绍Diffusers模块如何加载LoRA等附加网络。

这里直接将该软件分享出来给大家吧~

1.stable diffusion安装包

随着技术的迭代,目前 Stable Diffusion 已经能够生成非常艺术化的图片了,完全有赶超人类的架势,已经有不少工作被这类服务替代,比如制作一个 logo 图片,画一张虚拟老婆照片,画质堪比相机。

最新 Stable Diffusion 除了有win多个版本,就算说底端的显卡也能玩了哦!此外还带来了Mac版本,仅支持macOS 12.3或更高版本

在这里插入图片描述

2.stable diffusion视频合集

我们在学习的时候,往往书籍源码难以理解,阅读困难,这时候视频教程教程是就很适合了,生动形象加上案例实战,一步步带你入坑stable diffusion,科学有趣才能更方便的学习下去。

在这里插入图片描述

3.stable diffusion模型下载

stable diffusion往往一开始使用时图片等无法达到理想的生成效果,这时则需要通过使用大量训练数据,调整模型的超参数(如学习率、训练轮数、模型大小等),可以使得模型更好地适应数据集,并生成更加真实、准确、高质量的图像。

在这里插入图片描述

4.stable diffusion提示词

提示词是构建由文本到图像模型解释和理解的单词的过程。可以把它理解为你告诉 AI 模型要画什么而需要说的语言,整个SD学习过程中都离不开这本提示词手册。

在这里插入图片描述

5.SD从0到落地实战演练

在这里插入图片描述

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名SD大神的正确特征了。

这份完整版的stable diffusion资料我已经打包好,需要的点击下方添加,即可前往免费领取!

 

]]>
http://down.vvipblog.com/ai/aipainting/6412.html/feed 0
stable diffusion LORA模型训练最全最详细教程 http://down.vvipblog.com/ai/aipainting/6369.html http://down.vvipblog.com/ai/aipainting/6369.html#respond Sun, 09 Jun 2024 05:06:17 +0000 http://down.vvipblog.com/?p=6369
img 

 

一、前言

其实想写LORA模型训练很久了,一直没时间,总结一下现在主流的两种LORA模型训练方式,分别是朱尼酱的赛博丹炉和秋叶大佬的训练脚本,训练效果应该是赛博丹炉更好,我个人更推荐朱尼酱的赛博丹炉,界面炫酷,操作简单,作者也是花了很多心思的。我会逐一介绍两种LORA模型训练方法。

二、朱尼酱的赛博丹炉

1.介绍

  • 全新U升级,赛博炼丹、科技修仙:大功能
  • 首页新增产品,建筑两个训川练预设:
  • 升级中英文双语TAG编辑器,支持实时翻译中英文输入TAG:
  • 新增自定义参数,正则化训川练集功能:
  • 新增自定义参数,分层训练功能:易用性
  • 更换wd14 tagger标签器(可自定义可信度阈值
  • 更换anime抠图核心,同时兼容二次元与真人
  • 优化自定义参数,学习率增加加减按钮功能,方便调整
  • 新增参数预设管理器功能,可自定义并管理自己的预设参数(支持中文预设名)
  • 输出训川练参数到模型文件夹,方便统计xyz信息

网盘链接:https://pan.baidu.com/s/1_yB_pNrNGotudYmOOwjp8g
提取码:fapv

最新的赛博丹炉已经整合到道玄界面了,就是一个新的压缩包文件,里面不仅可以使用赛博丹炉训练LORA模型,还可以在上面生图,但是对我来说用处不大,我只需要他的训练脚本,因为习惯在秋叶启动器使用了,而且更方便更全面,不过如果有新手伙伴想用的话,可以去使用支持一下博主,这里给出链接。朱尼酱B站链接

img

2.解压配置

下载完百度网盘压缩包后,解压后点击

\cybertronfurnace1.4\cfurnace_ui\Cybertron Furnace.exe

img

第一次打开会下载一些文件,请耐心等待!直到出现server start

img

img

3.使用

开启炼丹炉,让我们使用把!

img

训练准备
首页设置

我们需要准备使用的基础模型(大模型),和我们的训练集图片。现在我以自己举例开始演示!

基础模型使用麦橘的majicMIX realistic_v5 preview.safetensors作为底模,点击选择我们的大模型路径,召唤词可以自己命名一个,样张预览开启,就是训练的时候每50步会生成一张图查看训练效果。

好了,点击人物,确定到下一步!

上传素材

img

训练集最好准备50张图片,包含不同角度,你的训练集质感越高,你训练出来的效果也越好,可能几个epoch就能达到很好的效果,如果训练集模糊。质感差,100张图片,20个epoch效果也很差!

分辨率不用改,或者改成768×768,

模式选择抠图填白,就是去除背景,只保留人物做训练

TAG选择自动TAG,使用的是WD1.4TAG反推器

标签可信度阈值默认0.35,数值越小TAG越多,数值越大TAG越少,就是设置越小,反推生成TAG越多

如果训练脸部请勾选,最后点击预处理img

后台可以查看进度,一般是先抠图,后TAG反推。ok,抠图完成,脸部也单独提取出来了img

img

TAG反推也完成了,你还可以为每张图增加一些提示词,如光影,质感等词汇

img

我这里整理一些,把这些TAG全部新增到每张图片,别忘了脸部也新增一下。

Best quality,masterpiece,ultra high res,(photorealistic:1.4),raw photo,Kodak portra 400,film grain,

img

顺便推荐一个中文自动转英文的功能,打中文点击红框,自动转英文。需要的按我步骤操作一下,

img

进入网址https://api.fanyi.baidu.com/,注册登录后,点击通用文本翻译

img

点击立即使用img

然后选择个人开发者,填写一些个人信息,然后选择高级版,实名认证一些,图片就不放了,因为我弄过了,就是按照流程来,很简单,之后点击界面最上面的管理控制台选项,点击开通img

然后选择通用文本翻译,开通高级版,最后一步填写应用名称就行,其他不管,提交申请就完了。

img

把APPID和密钥填入开启就完成了。

img

查看进度

img

先别点击开始训练,查看进度界面,点击参数调优

img

学习步数默认50步,,epoch可以选择20,batch size可以选择4,优化器Adam,没训练一个epoch保存一次权重(模型),Precision选择半精度(负2的15次方到2的15次方之间的数),调度器默认,余弦退火就是学习率曲线类似余弦函数一样,先增大后减小,重启次数应该就是周期数,暂时默认不填。

总步数就是50x50x20/4=12500步,假如50张图片,如果加强脸部训练,步数翻倍。

img

我只讲一下关键参数,其他默认,学习率默认,网络维度选128,效果比较好,训练出来的lora模型文件大小144M,这也是为什么市面上不同的lora大小模型,网络维度128,64,32,分别对应144M,72M,36M网络Alpha需要调成和网络维度一样,或者一半。如网络维度128,网络Alpha128或64。样图分辨率设置成和前面图片预处理一样,如果是768×768,那么这里也改成768×768。如果爆显存就默认别改了。
样图设置可以随意不影响,可以每50步生成一次,第二个就不用改了,基本默认就行,种子随意都行,样本生成的提示词选一个。

img

分层训练,可以查看下图,仅帮助理解,因为lora仅仅是训练一部分网络架构,不是全部unet,unet网络就是一个u型网络架构,先进行下采样在进行上采样,中间一层就是中间层。之前写过stable diffusion原理时候讲过Unet,有兴趣看看。链接

img

如果没有特殊需求分层设置先默认不填,其他设置中可以加载预训练模型,如果你上次训练了一个模型没跑完,只训练8个epoch,效果不好,可以加载模型路径继续训练节省时间。正则化就是防止过拟合,如果想要开启正则化,点击开启。然后把你的图片放入正则化文件夹就行。

参数调整完毕!!回到界面,点击开始训练!!!

img

之后就开始训练了,耐心等待,可以查看日志,模型保存的路径点击模型即可,

img

我们所有的训练数据都在这,包括训练集,日志,模型,正则化目录

img

可以看到,样图,训练的参数配置文件,以及每个epoch的模型都保存在这,建议分别在前中后选取模型测试效果,epoch少的不一定差。对了,文件名可以改的,不影响。

img

到此,赛比丹炉介绍完毕了!!!应该很详细了,点个赞给博主提提神把,下面开始秋叶大佬的!

三、秋叶的lora训练器

img

链接:https://pan.baidu.com/s/1-AN-ulR3PTS6KYyWVPARNA
提取码:vtse

1.下载

下载完毕后解压后,先点击国内加速强制更新,然后点击启动脚本img

进入界面,一般使用新手模式就行,专家模式可以调节更多参数,可能更好,但也可能得到更差的效果,所以建议使用新手界面就行,提高训练集的质量才能大幅度提高训练效果。

2.预处理

其实跟上面的差不多,把训练集的路径导入,阈值这里默认0.5,那么我们就0.5把,附加提示词还是一样,把光影,质感等等加上去,其他不改。之后点击右下角启动!

Best quality,masterpiece,ultra high res,(photorealistic:1.4),raw photo,Kodak portra 400,film grain,

img

img

通过日志可以知道完成了,这里没有抠图填白,加强脸部训练等功能,只有TAG反推,img

3.参数调配

img

注意,在这里训练集和大模型,需要复制到训练器目录下,有点繁琐,然后再把训练集路径和大模型路径填入,

训练集复制到该目录下,20是repeat数,每张图片重复训练多少次,把这个数字改成几。

img

大模型复制到该路径下

img

把路径改好如下,其他参数其实和上面差不多,如果上面的能理解这里也一样。

img

参数如下


pretrained_model_name_or_path = "./sd-models/majicmixRealistic_v6.safetensors"
train_data_dir = "./train/aki"
resolution = "512,512"
enable_bucket = true
min_bucket_reso = 256
max_bucket_reso = 1_024
output_name = "aki"
output_dir = "./output"
save_model_as = "safetensors"
save_every_n_epochs = 2
max_train_epochs = 20
train_batch_size = 1
network_train_unet_only = false
network_train_text_encoder_only = false
learning_rate = 0.0001
unet_lr = 0.0001
text_encoder_lr = 0.00001
lr_scheduler = "cosine_with_restarts"
optimizer_type = "AdamW8bit"
lr_scheduler_num_cycles = 1
network_module = "networks.lora"
network_dim = 128
network_alpha = 128
logging_dir = "./logs"
caption_extension = ".txt"
shuffle_caption = true
keep_tokens = 0
max_token_length = 255
seed = 1_337
prior_loss_weight = 1
clip_skip = 2
mixed_precision = "fp16"
save_precision = "fp16"
xformers = true
cache_latents = true
persistent_data_loader_workers = true
lr_warmup_steps = 0
sample_prompts = "./toml/sample_prompts.txt"
sample_sampler = "euler_a"
sample_every_n_epochs = 2

点击开始训练即可

imgimg

模型训练完成会保存在在output中!

img

OK,到此完毕了!如果对你有帮助的话,请点个赞,谢谢!!

 

]]>
http://down.vvipblog.com/ai/aipainting/6369.html/feed 0
以SD为例分析图片生成原理 http://down.vvipblog.com/ai/aipainting/6365.html http://down.vvipblog.com/ai/aipainting/6365.html#respond Sat, 08 Jun 2024 12:55:16 +0000 http://down.vvipblog.com/?p=6365 世界很神奇,AI很神奇,我们通过一句话就生成了一大段文字,一张图片,一段视频,相信很多朋友听说过SD,听说过comfy UI工作流,今天我们就给大家深入分析一下文生图,图生图的原理。我会尽量用通俗易懂的语言让大家都能明白。

首先,我们添加一段提示词文字生成了一张图片,

过程中其实有三个关键点在起作用,它们分别是:

三个关键节点分别有什么作用呢?

1 大模型

什么是大模型?举个例子,我想让一个小孩在亲戚朋友到访时写出一幅美丽的行楷字,首先他得会,在家时默默地联系,日复一日,年复一年,把行楷,篆体等各种字体都练得炉火纯青,现在你想要他写什么字体他立马就能写出什么字体。这就是他的思想体系里已经有了一个大模型,只要关键词触发,他立马能写出对应的字体。

相信通过这个解释,大家已经懂了什么是大模型,就是生成文字、图片或视频的底层逻辑。

如何获得大模型?

(1)获取训练数据: 获取训练大模型所需的大规模数据集。这些数据集可能来自于公开的数据集、网络上的数据抓取、合作伙伴提供的数据等渠道。数据的质量和多样性对模型的性能至关重要,决定了最终的模型是智能还是智障。

(2)数据预处理: 对获取的数据进行预处理,包括数据清洗、标注、分词、归一化等处理步骤。预处理的目的是为了使数据适合模型的输入格式,并提高模型的训练效果。我们在文本上进行大量标记,比如一个美女图片,标记性别女,头发长,眼睛大,三庭五眼比例,身高,胖瘦,服饰,姿态,手势等等,这些成为Tag.

(3)模型训练: 使用获取的训练数据对选择的AI大模型进行训练。训练过程通常包括多轮迭代,通过优化损失函数来调整模型参数,使模型不断适应训练数据,提高性能。

(4)模型评估: 训练完成后,需要对模型进行评估,以评估其性能和泛化能力。评估通常包括在测试集上进行性能测试、与其他模型进行对比、进行用户反馈等。

(5)模型部署: 完成模型训练和评估后,将模型部署到实际应用中。部署过程涉及将模型集成到软件系统中、优化模型的运行效率、处理实时请求等步骤。

大模型训练流程

1:创建了一个叫做潜在空间的地方 Latent space。

2:用算法把这些图片进行压缩,并高度总结图片的特征,图片保留特征并且压缩成了特征的马赛克,这个过程我们称之为加噪音,特征马赛克也称之为噪音。图片处理后选用模型进行训练,例如常用的模型包括卷积神经网络(CNN)、循环神经网络(RNN)、注意力机制模型等。根据任务的复杂度和数据规模,选择合适的模型进行训练。卷积神经网络卷出图片的特征,跟标签Tag进行对应,相当于他通过大量的阅读资料学习明白了图片特征与文字标签特征tag之间的对应关系。也就是潜在空间中Latent Space中的特征马赛克和他Token对应的这种关系。

3:文本理解,同时stable diffusion对文本的Tag也进行了总结和压缩,这个过程,称之为Token化。所谓的Token化,就是把文字拆解成小的单位,然后形成各种方便计算机可以理解但是人无法理解的字符字母和符号。

潜在空间里面存放的都是马赛克和文本token的对应关系这个计算的过程一般称之为训练大模型。图片的特征和文本标签以一种压缩和转化后的形式相互对应,使得模型能够基于文本描述生成或理解图像内容。简单理解就是,输入提示词,模型对其进行理解token化就有了特征的标签,就生成对应特征的图片。

2 Clip和VAE

为了让用户输入的内容可以进入latent space进行匹配,就需要工具把人类可以理解的文字和图片进行编码,转换为可以在Latent Space中工作的标识符,这样才能在潜在空间LatentSpace中进行匹配,文字Prompt在转换的时候需要用到CLIP编码器把Prompt变成Token图片会通过VAE编码器转化成特征马赛克(也就是噪音),最后再经过计算,Stable diffusion 会按照我们想要的意图生成一个新的特征马赛克,这个时候我们需要用VAE解码器,把这个特征马赛克转换为图片,这个图片就是我们最终需要的1 girl 的图片了。

3 采样器

输入的文本提示里的”一个女孩”这样的东西转换成了一个叫”token”的东西。系统会给你搞一个基础特征马赛克0,挺随意的,然后,我们有个采样器,它会把这个”token”和基础特征马赛克0,扔进大模型里,根据提示词token来去噪声,获得一个新特征马赛克1。这个”token”加上基础马赛克0,再加上其他一些东西,我们就管它叫生成约束条件conditioning。例如我们可能会要求图片尺寸,采样模型,迭代步数等等,这个特征马赛克1会跟你输入的”token”继续打交道,搞个小计算,这个计算会一直继续很多次,每次就离计算机认为你要的token结果更近一步,最后到底是啥图形,这个过程叫采样。因为计算了好几次,所以特征马赛克1就会越来越接近真实的图片,所以叫Denose(去噪音)。

采样器用了一个算法和一些设置,跑了N次计算,最后在Latent Space(隐变量空间)中,搞出了一个特征马赛克N,它差不多就是你想要的内容。然后这个马赛克N经过VAE解码器的一顿操作,就变成了真实的图片,整个文生图过程也就这样完成了。

在这个基础上,还能玩出一大堆花样。比如图生图,就是一开始输入的特征马赛克0是根据你输入的图片算出来的;再比如controlnet,就是在采样器的条件里加了更多限制。就是这样,是不是很有意思?

以上就是SD图片生成原理。

]]>
http://down.vvipblog.com/ai/aipainting/6365.html/feed 0
sd模型种类介绍及安装使用详解 http://down.vvipblog.com/ai/aipainting/6340.html http://down.vvipblog.com/ai/aipainting/6340.html#respond Sun, 12 May 2024 15:53:55 +0000 http://down.vvipblog.com/?p=6340

本文使用工具,作者:秋葉aaaki

 

免责声明:
工具免费提供 无任何盈利目的

 

大家好,我是风雨无阻。

今天为大家带来的是 AI 绘画Stable Diffusion 研究(三)sd模型种类介绍及安装使用详解。

 

目前,AI 绘画Stable Diffusion的各种模型层出不穷,这些模型都有什么作用?又该怎么安装使用?对于新手朋友来说,是非常大的困扰。

 

这篇文章将会为你介绍AI 绘画Stable Diffusion的模型种类、模型的安装及使用方法、以及模型的选择和下载。

 

不同的模型有不同的画风如:线条风格、手绘风格、立体风格、科幻风格、真人风格。

还有不同的概念,例如:人物、物体、动作等。

这些都是目前Stable Diffusion 模型众多的原因。

那么,Stable Diffusion的模型具体有哪些种类呢,都有什么作用呢?

 

一、Stable Diffusion的模型详解

1、模型种类

当前,常见的模型可以分为两大类

  • 大模型:这里的大模型特指标准的 latent-diffusion 模型,拥有完整的 TextEncoder、U-Net、VAE。
  • 微调大模型的小模型

     

由于想要炼制、微调大模型非常的困难,需要比较好的显卡、比较高的算力, 因此更多的选择是去炼制小型模型。

 

这些小型模型通过作用在大模型的不同部分,来修改大模型,从而达到目的。

 

常见的用于微调大模型的小模型又分为以下几种:

  • Textual inversion (Embedding模型)
  • Hypernetwork模型
  • LoRA模型

 

还有一种叫做 VAE (VAE, Variational autoencoder,变分自编码器,负责将潜空间的数据转换为正常图像)的模型,通常来讲 VAE 可以看做是类似滤镜一样的东西,会影响出图的画面的色彩和某些极其微小的细节。

 

如图:

在这里插入图片描述

 

其实大模型本身就自带 VAE 的,但是一些融合模型的 VAE坏了 (例如:Anything-v3),有时画面发灰就是因为这个原因。所以需要外置 VAE 的覆盖来补救。

 

由于模型的种类不同、作用位置也不同,所以想要使用这些模型必须分清这些模型类别,并且正确的使用,模型才会生效。

 

2、模型的区分方法

 

如何区分这些模型对新手来说是一件非常困难的事情,因为他们都可以拥有一样的后缀名。

 

这里感谢 秋葉aaaki 提供的模型种类检测工具 ,在本地将模型文件拖入即可识别。

 

3、模型后缀名详解

 

目前,常见的 AI绘画标准模型后缀名有如下几种:

  • ckpt
  • pt
  • pth

    这三种是 pytorch(深度学习框架)的标准模型格式,由于使用了 Pickle,会有一定的安全风险 。

 

  • safetensors:新型的模型格式 。正如同名字:safe,为了解决前面几种模型的安全风险而出现的,safetensors 格式与 pytorch 的模型可以通过工具进行任意转换,只是保存数据的方式不同,内容数据没有任何区别。

     

注意:safetensors模型需要 webui 更新到2022年12月底以后的版本才能用。

 

4、常见模型安装及使用方法

 

(1)、大模型安装及使用

大模型,常见格式为 ckpt,顾名思义,就是大。大小在GB级别,常见有 2G、4G、7G模型,模型大小不代表模型质量。

 

安装方法:放在Stable-diffusion文件夹内。

\sd-webui-aki-v4.2\models\Stable-diffusion

 

如图:

在这里插入图片描述

使用方法:

 

第一步,在 webui 左上角选择对应的模型

 

在这里插入图片描述

 

第二步,手动选择vae并应用保存

 

前面也说到,部分合并出来的大模型VAE烂了,画面会发灰,因此需要去设置中手动选择vae并应用保存。

 

在这里插入图片描述

 

(2)、Embedding (Textual inversion)模型安装及使用

 

embedding 模型,常见格式为 pt、png图片、webp图片,大小一般在 KB 级别。

 

例如:

在这里插入图片描述

 

安装方法

放在 embeddings 这个文件夹里面

\sd-webui-aki-v4.2\embeddings

 

使用方法:

生成图片的时候需要带上文件名作为 tag。

例如,上面这张图里面的 shiratama_at_2-3000.pt 这个模型,使用的时候就需要带上这个tag:shiratama_at_2-3000

 

(3)、Hypernetwork安装及使用

 

常见格式为 pt,大小一般在几十兆到几百兆不等,由于这种模型可以自定义的参数非常多,也有的 Hypernetwork 模型可以达到 GB 级别。

 

例如:

在这里插入图片描述

 

安装方法:放在hypernetworks 文件夹内。

\sd-webui-aki-v4.2\models\hypernetworks

 

在这里插入图片描述

 

使用方法:

第一步,点击生成下方的第三个按钮

第二步,选择hypernetworks 标签页

 

如图所示

在这里插入图片描述

 

(4)、LoRA模型安装及使用

 

常见格式为 pt、ckpt,大小一般在8mb~144mb不等。

 

安装方法:模型需要放在 Lora 文件夹。

\sd-webui-aki-v4.2\models\Lora

 

在这里插入图片描述

 

使用方法:

第一步,点击生成下方的第三个按钮

第二步,选择Lora 标签页

 

如图:

在这里插入图片描述

 

第三步,点击一个模型以后会向提示词列表添加类似这么一个tag, 也可以直接用这个tag调用lora模型。

<lora:模型名:权重> 

 

在这里插入图片描述

 

(5)、VAE 模型安装及使用

 

常见格式为 .pt ,如图:

在这里插入图片描述

 

安装方法:模型需要放在 VAE 文件夹。

\sd-webui-aki-v4.2\models\VAE

 

模型放置完毕后,在设置页面进行如下设置,并重启。

 

在这里插入图片描述

 

如果没有sd_vae 选项,则需要补充上。

添加在 sd_model_checkpoint 之后,语法如下:

,sd_vae

 

在这里插入图片描述

 

好,由于篇幅原因,模型的安装和使用就介绍到这里。

 

大家都知道,要用Stable Diffusion画出漂亮的图片,首先得选好模型。

 

目前,模型数量最多的两个网站是civitaihuggingface

civitai又称c站,有非常多精彩纷呈的模型,有了这些模型,我们分分钟就可以变成绘画大师,用AI画出各种我们想要的效果。

我们这里就以 civitai 站下载模型进行安装为例,进行详细说明。

 

二、模型的下载及选择方法

 

在这里插入图片描述

 

1、直接搜索想要的模型

最上面是搜索框,我们可以直接通过关键词来搜索想要的模型。

 

在这里插入图片描述

 

在这里插入图片描述

 

2、按照菜单分类选择模型

点击左上角菜单,可以看到这里是按照 以下几项来分类的:

  • 最高评价HIGHEST RATED
  • 最多下载MOST DOWNLOADED
  • 点赞最多MOST LIKED
  • 讨论最多MOST DISCuSSED
  • 最新上传NEWEST。

 

在这里插入图片描述

 

3、按照时间排序来选模型

 

点击右上角,可以按照时间排序来选模型:最近一周、最近一月、所有时间的。

 

在这里插入图片描述

 

4、按照模型类型、Stable Diffusion版本选择模型

 

在这里插入图片描述

 

Stable Diffusion目前有SD 1.4、SD 1.5、SD 2.0、SD 2.0 768、SD 2.1、SD 2.1768、SD 2.1 Unclip 等版本。

 

注意:

  • 通常来说版本越高,效果越好。
  • 目前比较流行的还是1.5版本,1.5之前的版本没啥限制,可以自由出各种图片。
  • 2.0以上版本提供了一个 图像无损放大模型:Upscaler Diffusion ,可以将生成图像的分辨率提高 4 倍,适合出高清大图。2.0加入了一些限制,不能出一些不可描述的图片。

     

所以,具体使用哪个版本,还是要根据自己的需求来选择。

 

挑到喜欢的模型后,怎么安装模型呢?

 

三、模型的下载安装实操

 

接下来我们来说明一下安装实操步骤。

 

1、下载模型文件,在c站 搜搜到喜欢的模型,并下载

 

在这里插入图片描述

2、下载成功后,我们会获得模型文件

 

在这里插入图片描述

 

3、将模型文件使用模型种类检测工具 获取模型的种类

 

如图:

在这里插入图片描述

 

将模型文件拖入该工具后,会获得以下信息:

文件名
dunhuangV3.safetensors

文件大小
144.11 MB

模型种类
LoRA 模型

模型用法
放入 models/Lora 文件夹后,在 webui 中,“生成” 按钮的下方选择 🎴 按钮,找到 Lora 选项卡点击使用。

Info
{
ss_batch_size_per_device:"6"
ss_bucket_info:{}
ss_bucket_no_upscale:"True"
ss_cache_latents:"True"
ss_caption_dropout_every_n_epochs:"0"
ss_caption_dropout_rate:"0.0"
ss_caption_tag_dropout_rate:"0.0"
ss_clip_skip:"None"
ss_color_aug:"False"
ss_dataset_dirs:{}
ss_enable_bucket:"True"
ss_epoch:"10"
ss_face_crop_aug_range:"None"
ss_flip_aug:"False"
ss_full_fp16:"False"
ss_gradient_accumulation_steps:"1"
ss_gradient_checkpointing:"False"
ss_keep_tokens:"0"
ss_learning_rate:"0.0001"
ss_lowram:"False"
ss_lr_scheduler:"cosine_with_restarts"
ss_lr_warmup_steps:"0"
ss_max_bucket_reso:"1024"
ss_max_grad_norm:"1.0"
ss_max_token_length:"None"
ss_max_train_steps:"6750"
ss_min_bucket_reso:"256"
ss_min_snr_gamma:"None"
ss_mixed_precision:"fp16"
ss_network_alpha:"64.0"
ss_network_dim:"128"
ss_network_module:"networks.lora"
ss_new_sd_model_hash:"e4a30e4607faeb06b5d590b2ed8e092690c631da0b2becb6224d4bb5327104b7"
ss_noise_offset:"None"
ss_num_batches_per_epoch:"675"
ss_num_epochs:"10"
ss_num_reg_images:"0"
ss_num_train_images:"4050"
ss_optimizer:"bitsandbytes.optim.adamw.AdamW8bit"
ss_output_name:"dunhuang_20230625021029"
ss_prior_loss_weight:"1.0"
ss_random_crop:"False"
ss_reg_dataset_dirs:"{}"
ss_resolution:"(512, 768)"
ss_sd_model_hash:"1d5a534e"
ss_sd_model_name:"majicmix_realv6_fp16.safetensors"
ss_sd_scripts_commit_hash:"(unknown)"
ss_seed:"2361018997"
ss_session_id:"801586992"
ss_shuffle_caption:"False"
ss_tag_frequency:{}
ss_text_encoder_lr:"1e-05"
ss_total_batch_size:"6"
ss_training_comment:"None"
ss_training_finished_at:"1687645290.3126323"
ss_training_started_at:"1687630234.599286"
ss_unet_lr:"0.0001"
ss_v2:"False"
sshs_legacy_hash:"14dab82f"
sshs_model_hash:"f747a8b2ab9a85d407f26183afb59d53fc023c2fbde928fe8512721fda5a11aa"
}

 

根据工具输出信息可知, dunhuangV3.safetensors 模型的模型种类是LoRA 模型。

 

4 、将模型dunhuangV3.safetensors 放入 models/Lora 文件夹。

5、在 webui 中,“生成” 按钮的下方选择 🎴 按钮,找到 Lora 选项卡点击使用。

好,今天的内容就到此结束,我们来总结一下。

今天主要给大家分享了 Stable Diffusion的模型种类说明,以及常见模型的下载、安装、使用方法, 没理解到的朋友,请收藏起来多看几遍。

关注我,后续继续分享sd更多干货 , 敬请期待。

 

]]>
http://down.vvipblog.com/ai/aipainting/6340.html/feed 0
十分钟读懂Stable Diffusion http://down.vvipblog.com/ai/aipainting/6337.html http://down.vvipblog.com/ai/aipainting/6337.html#respond Sat, 04 May 2024 06:17:14 +0000 http://down.vvipblog.com/?p=6337 在上一篇文章中,介绍了有关Diffusion扩散模型的原理,如何将输入文本转换为最终的图片。但是由于Diffusion在反向扩散过程中需要把完整尺寸的图片输入到U-Net,使得速度非常慢,因此目前应用最广的并不是Diffusion,而实其改进版Stable Diffusion。有关Diffusion的内容可以参考下面的链接:

接下来我们介绍Stable Diffusion是如何根据文字生成图像的,相比Diffusion做了哪些优化。

写在最前面:

由于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\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会先训练一个自编码器,来学习将图像压缩成低维表示。

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

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

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

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

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

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

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

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

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

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

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

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

反向扩散过程的整体结构

从上图可以看出,反向扩散过程中输入文本和初始图像 Z_T 需要经过 T 轮的U-Net网络( T 轮去噪过程),最后得到输出 Z_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)为例。

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

Stable Diffusion完整结构

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

Stable Diffusion完整结构

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

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

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

  • 少了对输入文字的embedding过程(少了编码器 E、解码器 D
  • 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讲清楚,让更多人的了解。

 

]]>
http://down.vvipblog.com/ai/aipainting/6337.html/feed 0
保姆级 Stable Diffusion 教程,看完这篇就够了! http://down.vvipblog.com/ai/aipainting/6335.html http://down.vvipblog.com/ai/aipainting/6335.html#respond Fri, 03 May 2024 17:11:20 +0000 http://down.vvipblog.com/?p=6335

2022 年 8 月,在美国科罗拉多州举办了一场新兴数字艺术家竞赛,一幅名为《太空歌剧院》的作品获得“数字艺术/数字修饰照片”类别的一等奖,神奇的是,该作品的作者并没有绘画基础,这幅画是他用 AI 生成的。

这一事件展示了 AI 在绘画领域惊人的创造力,让人们见识到,AI 作品不仅可以具有如此精心雕刻般的细节,还可以拥有独特的风格。更重要的是,创作者只要通过自然语言将创作需求描述清楚,就能借助 AI 生成高品质的作品。理想在这一刻照进了现实,这一重大突破让很多曾经拥有画家梦、艺术家梦的人热血沸腾!

什么是 AI 绘画呢?AI 绘画是指使用人工智能算法生成图像或绘画作品,它基于机器学习模型,可以接受不同的提示词、引导图等作为输入参数来生成各种风格和内容的视觉艺术品。比如,图 1 就是给 AI 输入提示词 a cute cat 得到的绘图结果。

图 1 AI 绘画:a cute cat

那么如果随口说出几个指令就能画出好看的图画?那未来插画师、摄影师是不是不存在了?或者说没有学习过绘画的普通用户同样能创作出优质的绘画作品?

当然,前者在不同用户心中肯定都有不同的答案,但后者我可以告诉你是的。AI 绘画的大门正在为所有人敞开,而通往这扇门,我们就不得不提到一个优秀的绘图工具 Stable Diffusion。

1.什么是 Stable Diffusion

在当下流行的 AI 绘画工具中,Midjourney 和 Stable Diffusion 是风头最盛的,它们在产品策略上各有长处。

Midjourney 的优势在于它通过 Discord 来构建自己的 AI 绘画社区,这个策略一方面使得用户能够在社区互相学习提示词的使用技巧,从而激发用户的兴趣,刺激产品的传播;另一方面通过庞大的用户数量积累了独有的数据集,进而可以根据用户需求有针对性地训练模型并快速进行产品迭代,形成正反馈循环。

Stable Diffusion 的厉害之处在于它可以在运行于大多数配备有合适 GPU 的个人计算机上,而且,它开源了项目代码和模型权重。这样一来,开发者就可以在它的基础上进行二次开发、做插件、做工具,这就有了如今结合 Stable Diffusion 流行起来的 Stable Diffusion WebUI、LoRA、ControlNet 等开源项目。这就相当于给 Stable Diffusion 的发展增加了大量的盟友,极大地丰富了它的功能和特性。

对于想要使用 Stable Diffusion 来进行 AI 绘画的用户来说,开源意味着更大的灵活性和自由度,我们可以借助 Stable Diffusion 丰富的相关模型和扩展插件来满足我们自己独特的 AI 绘画创作需求,这也是我们选择介绍 Stable Diffusion 的重要原因之一。

Stable Diffusion 是一款在 2022 年发布的支持由文本生成图像的 AI 绘画工具,它主要用于根据文本描述生成对应图像的任务,也可以应用于其他任务,比如对原图像内的部分遮罩区域进行重绘的内补绘制功能(Inpainting)、在原图像外部范围进行延伸画图的外补绘制功能(Outpainting)、在提示词(Prompt)引导下基于输入图像生成新图像的图生图功能等。

2.Stable Diffusion 模型

St able Diffusion 最核心的部分是它的模型,要理解 Stable Diffusion 所使用的潜在扩散模型背后的技术细节需要一定的算法基础,因此我们在这里只用尽量简要的语言介绍一下扩散模型的训练过程,帮助大家对它建立一个大概的印象。

(1) 扩散模型的训练需要先找到大量高质量的图像数据,训练时先进行正向扩散,即对每张图像按照高斯噪声公式逐步向数据中添加噪声,直到整张图像变成一张全是噪声的图像(噪声数据)。在这个训练的过程中,会记录所有步骤,然后用神经网络来反向学习噪声分布和数据分布之间的关系,即学习如何给一个全是噪声的图像降噪,生成一张高清图像,如图 2 所示:

图2 扩散模型训练过程

(2) 所有高质量图像都经过步骤 (1) 后,就会得到一个训练好的扩散模型,机器就可以通过噪声来对图像进行预测。这样一来,整个绘画的过程就是 AI 用一组随机噪声(随机数)来预测基于它们能画出一个什么样的图像,即从一堆凌乱的随机数中画出图像。这是一个大力出奇迹的过程,但厉害的是最终能产出清晰度非常高和细节较为完美的图像。

来欣赏几张 Stable Diffusion 生成的高质量图片吧~

从左往右 港口;底下洞穴的水晶沉积物

从左往右 甜美风小姐姐;二次元小姐姐

3.Stable Diffusion 的应用场景

Stable Diffusion 作为一款强大的 AI 绘画工具,可以用在哪些场景呢?

  • 数字艺术创作。Stable Diffusion 作为一款 AI 绘画工具,可以辅助绘画工作者进行创作。例如,Stable Diffusion 结合图生图、ControlNet 等能力,可以根据艺术家的涂鸦或线稿,为作品自动上色或生成草稿,大大提高艺术创作的效率。

  • 游戏设计。Stable Diffusion 可以辅助设计师设计游戏中的素材,如角色、场景、道具等。设计师只需要提供概念素材,Stable Diffusion 就可以生成多种不同风格的画面,然后设计师进行选择和修改即可,这样可以节省游戏素材设计的时间成本。

  • 广告创意。Stable Diffusion 可以快速产生多种创意方案和视觉效果供广告人选择和融合,这可以有效地拓展创意设计的思路。

  • 教育应用。Stable Diffusion 绘画工具也可以用于制作绘本,帮助学生学习绘画技巧。例如,Stable Diffusion 可以根据学生的绘画进度和水平提供个性化的绘画指导、练习和作业,这样可以增强学生的学习兴趣和体验。

  • 定制商品。电商平台可以使用 Stable Diffusion 为用户定制各种商品,如衣服、手机壳等。用户只需要提供一张图片或概念素材,Stable Diffusion 就可以生成大量个性化设计方案以供选择,满足用户的个性化定制需求。

  • 界面设计。Stable Diffusion 可以快速生成多种界面样式,供设计师参考,这样可以拓展设计师的创意,尤其在初期概念设计阶段非常有用。

  • 室内设计。Stable Diffusion 还可以生成风格多样的室内装修方案,为设计师提供创意参考。同样,借助 Stable Diffusion 的能力,可以在初期快速给客户提供大量的选择,大大提升设计师的工作效率。

这里也只是列出了 Stable Diffusion 的一部分应用场景,随着相关技术的进步,Stable Diffusion 的应用场景还会越来越广泛,成为大家提高创造力和生产力的好帮手。当然,艺术创意和审美判断仍然需要人类的专业知识和审美眼光,只有人与机器更好地结合、互补,设计领域才可以发展得更好。

如此多应用场景,相信 Stable Diffusion 未来会被更多人使用并且满足更多人的需求,无论你是否会画画,学习使用这个工具会让你的工作效率倍增,且亲手实现自己脑海里的无限 idea。

4.保姆级Stable Diffusion教程

这是一本 为零基础读者量身打造的 Stable Diffusion “喂饭版”教程。 读完就可以上手操作, 帮助你快速掌握新技能。 不论是做设计、做自媒体还是改图、修图,通通一本书就能搞定 !

作者:关键帧

秉承着让大家都能入门学习的理念,作者说:“决不让一位读者卡在安装上!”不管你是什么操作系统,都可以找到对应的安装指导,给大家一个丝滑的入门体验。

全书分为 5 章,包含 Stable Diffusion 的各种使用方法,文生图,只需你来描述它就可以画,同时熟悉界面组成。提示词技巧更是满满干货,作者剖析语法与结构,提供现成可参考的提示词。

还可以局部重绘,给小猫戴上帽子、把手里的苹果换成梨子。给模糊图片修复磨皮:再也不用受困于低分辨率图片啦!更可以从图片中反推出提示词:海量图片均是我的提示词素材。扩展配置,进阶技巧,常用的技能都在这里!

只要掌握创作的底层逻辑和行之有效的方法,Stable Diffusion 绝对可以助你提升工作效率。一键搞定批量渲染,快速确定风格调性,不再人工试错!

作者介绍

关键帧,中科院博士,前阿里巴巴技术专家,公众号“关键帧 Keyframe”主理人,长期从事互联网内容领域基础技术和业务研发及管理工作,热爱系统性分享行业技术经验并广受粉丝好评,热衷于探索 AIGC 技术发展和业务落地,对 AIGC 业务前景有着独特的洞察。

大咖推荐

这本 Stable Diffusion 入门书覆盖内容非常全面,文字通俗易懂,图文并茂,是市面上不可多得的关于 Stable Diffusion 的实操大全,是平面设计工作者和业余绘图爱好者的好帮手。

——易子立,南京大学副教授,图像生成算法 DualGAN 第一作者

《零基础玩转 Stable Diffusion》是一把开启 AI 绘画世界大门的钥匙。作者以实用为核心,分步骤教你如何本地部署并运用 Stable Diffusion,使艺术创作更加自由和高效。本书不仅是艺术爱好者的新宠,也是设计师提升工作效率的利器。让我们一起跟随作者,探索 AI 绘画的无限未来!

——Reynold,公众号“互联网 er 的早读课”主理人

本书从零开始,详细介绍了 Stable Diffusion 的基本概念以及必须掌握的各种丰富设置参数,读者如能按照本书一步步实践,必能熟练掌握 Stable Diffusion 这一强大而免费的 AI 绘画工具。

——城主,公众号“Web3天空之城”主理人

初次涉足 AI 绘画领域,在寻求一本入门书时,一次偶然的机会让我遇到了这本通俗易懂的 Stable Diffusion 教程。在看完几页后,我发现该书对零基础同学非常友好,于是将它推荐给大家。本书介绍基础概念和实际技巧,是你走进 AI 绘画世界的不二之选!

——贾文博,公众号“壹念视觉”主理人

本书以简明实用为特色,“手把手”带领读者探索Stable Diffusion。书中的实用操作指南和丰富的示例可以让大家快速掌握 AI绘画技巧。对所有对AI绘画感兴趣的人来说,这是一份不容错过的AI 绘画入门指南,它将带你进入一个充满创意和惊喜的艺术世界!

——冯振,《OpenCV 4 快速入门》作者,公众号“小白学视觉“主理人

当艺术的奇妙之门向我们敞开,无论你是初涉绘画的新手还是想要提高技能的绘画爱好者,这本《零基础玩转 Stable Diffusion》都将成为你探索 AI 绘画创作世界的“灵魂伴侣”。

——@Jack Cui

随着人工智能技术的普及,AI绘图越来越受到人们的重视,特别是在绘图设计领域中。本书从最基础的软件安装开始,通过大量实操案例,全方位介绍免费AI绘图工具Stable Diffusion的各种使用方法,帮助大家快速掌握AI绘图,相信这本书会是广大AI绘图学习者的福音。

——宁海涛,公众号“DataCharm”主理人,畅销书《科研论文配图绘制指南——基于 Python》作者

这是一本通俗易懂的 AI 绘画实战书,作者以简明干练的写作方式,为读者揭开 AIGC 的一层层神秘面纱。通过阅读本书,你将全面深刻地掌握 Stable Diffusion 绘图软件的部署和使用方法,书中的案例也将从多角度提升你的 AI 绘画实战能力。

——@致敬大神

从零开始探索AI 绘画,必定要有一本好书伴身,相信每一位朋友都能通过这本书体会到 AI 世界的魅力!

——@娜乌斯嘉,AI绘画博主

一键购书,学起来!

本文推荐阅读

《零基础玩转 Stable Diffusion》

]]> http://down.vvipblog.com/ai/aipainting/6335.html/feed 0 AI 人工智能绘画大师 ——Stable Diffusion http://down.vvipblog.com/ai/aipainting/6329.html http://down.vvipblog.com/ai/aipainting/6329.html#respond Fri, 03 May 2024 15:34:01 +0000 http://down.vvipblog.com/?p=6329 描述

Stable Diffusion是一款AI人工智能绘画软件,用户输入语言指令即可自动生成各种风格的绘画图片。StableDiffusion功能强大、使用方便,支持各种尺寸的图片输出。软件经过百度杀毒中心认证,无病毒,安装后无广告,绿色,安全请放心下载。

效果

本软件内置多种模型和插件,用户可以输入不同的语言指令,让软件自动生成不同风格的绘画图片。用户还可以根据自己的需求,选择不同的模型和插件,以达到最佳的生成效果。

人物
风景
动漫
建筑
动物
发挥想象
从今天起,本站专门增设AI绘画专区,提供Stable Diffusion以及Midjourney、Comfyui等AI绘画工具的软件及相关使用教程,敬请期待。
]]>
http://down.vvipblog.com/ai/aipainting/6329.html/feed 0
【安卓APP】【My AI】AI写作、论文、AI朋友全都有,基于turbo3.5,解锁VIP http://down.vvipblog.com/software/android/6322.html http://down.vvipblog.com/software/android/6322.html#respond Tue, 09 Apr 2024 06:46:05 +0000 http://down.vvipblog.com/?p=6322 一款非常智能的助手软件,用户在这里可以和内置的ai机器人进行沟通沟通,不管你想要沟通什么话题,都可以实现,非常的实用。My AI还可以帮助我们进行智能的AI写作,让你快速的进行写作,生成原创的全文。(解锁VIP)


下载地址:

尊敬的VIP,您可以免回复查看隐藏内容

https://wwko.lanzoub.com/iFYo71fe9xve

 

]]>
http://down.vvipblog.com/software/android/6322.html/feed 0