AIGC初体验——Stable Diffusion制作超棒图像

最近两天,笔者体验了AIGC中最热门的AI绘画,结果让笔者非常兴奋(可别想歪了,不是lsp )。笔者兴奋的是AI的创造力(Creativity)和专业性(Expertise)。对比之前出了几期漫画,迹寒花费了大量时间,效果差强人意。反之,AIGC相对而言是比较新兴的技术,如果能把握这个风口,或许能有很不错的效果。

话不多说,我们先上图。

一、什么是Stable Diffusion(SD)?

Stable Diffusion 是Stability AI公司于 2022 年发布的深度学习文字到图像生成模型。它主要用于根据文字的描述产生详细图像,能够在几秒钟内创作出令人惊叹的艺术作品。

截至目前为止,三个最流行的AI作画产品是 Stable Diffusion、 Midjourney和 DALL·E 2。与Midjourney和OpenAI的DALL·E 2相比,SD最大的优势是其开源性。任何用户都可以免费下载、使用并发布AI作品。

在短短三个月时间内,SD就在github收获了33K个star,其热门程度远超同期的Kafka、Spark、Bitcoin等知名项目,如下图所示。

img

SD的优势在于:

  • 提供了一个基于网页浏览器的前端交互WebUI,用户只需要简单的输入prompt和设置参数就可以生成难以置信的图片(傻瓜式操作);

  • 只需文本提示输入就能够模拟和重建几乎任何以视觉形式表达的概念;

  • 提供了多种功能,如 文本到图片转换txt2img、图片到图片转换img2img等,能满足使用者的多种需求;

  • 通过调节相关参数可以生成不同的效果,用户可以根据自己的需要在和喜好在本地客户端进行AI创作;

  • 可扩展性极强,用户可以自由地下载SD模型,LoRA模型,ControlNet模型,还包括模型融合等高级功能;

  • AI绘图社区支持,专门的模型下载网站HuggingFace和绘画分享网站Civitai(C站)

做一下笔记
文本到图片转换:用户输入提示和反向提示,设置模型参数就可以生成图片;
图片到图片转换:这个功能非常非常有趣,用户可以放入一张已有图片,来生成不同风格的新图片;另外用户也可以通过特定插件将图片反推出提示词来;图片裁剪、缩放、重绘,结合ControlNet可以实现在同一画面内容下的多种风格;提升图像分辨率等。

下面我们讲解如何安装SD~

二、安装和使用

(1)安装

首先大家最关注的想必是硬件要求啦。不用担心,不要4090Ti,普通的16xx系列N卡足够了,显存(VRAM)最好大于6GB,但利用xFormer,4GB的显卡也是够用的,硬盘最好50GB以上。

笔者的配置是Intel Core i5-12490F,16GB内存,Geforce RTX 3060Ti显卡,8GB显存,NVMe SSD硬盘,Windows 11。仅供参考。

有的读者可能说,“看不太懂英文,有汉化版吗?” “想抄近路,不想花太多时间”答案是yes。

B站上有一个**@秋葉aaaki**大佬做了一个汉化整合包,传送门
笔者自己没试过,但是听说很方便,可以自动进行“疑难诊断”,还是蛮不错的。缺点是安装包巨大+百度网盘,用过都吐槽~

如果和我一样想体验100%纯英文的开源氛围(后续有汉化包),那么请往下看:

1)在电脑上安装Python 3.10.6(更高或更低的版本都不行),下载git。

然后前往http://github.com/AUTOMATIC1111/stable-diffusion-webui下载项目,并解压到合适的位置(不建议C盘)。如果是不带WebUI的版本,请前往http://github.com/Stability-AI/stablediffusion

2) 在项目目录下运行webui-user文件

Linux下:

./webui-user.sh

Windows下(win+R组合键运行cmd):

.\webui-user

然后它就会自动下载依赖,耗时N长时间(可能需要梯子)。

img

当你看到这个界面就表示安装成功了。说实话,安装了一晚上,第二天早上起来看超感动/(ㄒoㄒ)/~~

(2)文生图功能初体验

然后我们来介绍一下页面吧~

第一步,选择模型。

这里的话,笔者推荐初学者下载Counterfeit-v2.5Anything-v3.0两个模型,下载可以前往http://huggingface.co。你要说为什么的话,当然是这两个模型最受欢迎啦~

img

sd-v1-5系列是默认模型,出图效果不佳,适合训练。

模型默认保存在models/子目录下。

第二步,输入prompt。

注意只能是英文哦。有两种模式:

1)自然语言,例如“a girl standing on the beach alone in Bikini under clear blue sky”,需要使用者有一定英语语法基础。优势是符合阅读习惯,能准确描述画面细节。

2)提示词并且用“,”分割,例如“1girl, solo, standing, Bikini, beach, blue_sky, photorealistic, 4K”,使用者只要知道单词就行,能够描述更多的细节。

贴心的迹寒整理了一份常用prompt英汉对照表整理放在文末啦~

img

关于语法部分我们下一节专门讲。

**第三步,输入反向提示语(**Negative Prompt)。

反向提示语是指你不希望出现的特征,在模型中相应提示语的权重会被抑制。

img

右上角有我们当前输入的字符数,最多不超过75个字符。

第四步,设置参数:

采样器(Sampler):默认选择“Euler a”,大部分情况下还是不错的。但是老司机更喜欢DPM++系列模型。

img

采样器比较

Euler 最简单最快。
Euler a 更多样,不同步数可以生产出不同的图片。但是太高步数 (>30) 效果不会更好。
DDIM 收敛快,但效率相对较低,因为需要很多 step 才能获得好的结果,适合在重绘时候使用。
LMS 是 Euler 的衍生,它们使用一种相关但稍有不同的方法(平均过去的几个步骤以提高准确性)。大概 30 step 可以得到稳定结果
PLMS 是 Euler 的衍生,可以更好地处理神经网络结构中的奇异性。
DPM2 是一种神奇的方法,它旨在改进 DDIM,减少步骤以获得良好的结果。它需要每一步运行两次去噪,它的速度大约是 DDIM 的两倍,生图效果也非常好。但是如果你在进行调试提示词的实验,这个采样器可能会有点慢了。
UniPC 效果较好且速度非常快,对平面、卡通的表现较好,推荐使用。

图片尺寸(Width/Height):大小默认为512x512,也就是长宽比1:1。如果你想专门给人物进行特写的话,推荐512x768(2:3)或者512x640(4:5), 如果是横版壁纸,推荐1024x768和1280x1024等等。

生成批次(Batch count): 按照顺序生成一组图片,最小为1,最大为100。

每批数量(Batch size):单轮次生成图片的数量,可以看作并行出图。最小为1最大为8,所以生成图片填不满一个九宫格,很难受。掌握一个原则:显存足够的话的调大“每批数量”,否则乖乖增加“生成批次”。

采样步数(Sampling Steps):Stable Diffusion 的工作方式是从以随机高斯噪声起步,向符合提示的图像一步步降噪接近。随着步数增多,可以得到对目标更小、更精确的图像。但增加步数也会增加生成图像所需的时间。增加步数的边际收益递减,取决于采样器。一般开到 20~30。

  • 不同采样步数与采样器之间的关系:

提示词相关性(CFG Scale): 图像与你的提示的匹配程度。增加这个值将导致图像更接近你的提示,但它也在一定程度上降低了图像质量。可以用更多的采样步骤来抵消。过高的 CFG Scale 体现为粗犷的线条和过锐化的图像。一般开到 7~11。

随机数种子(Seed):-1表示任意随机数,这个值一般不用改。但是如果你想每次都出一样的图的话就固定一个值吧~

脚本(Scripts):按照脚本方式生成图片。默认选”无“。有“提示矩阵”,“从文件或文档加载提示词”、“x/y/z图表”等选项。

img

另外,中间有三个复选框。

面部修复:用于真人面部修复,二次元的话修复效果不明显;

可平铺(Tiling):如果需要将多张图片拼接在一起或做成壁纸,那么这个选项将非常有用;

Highres. fix: 高清修复。默认情况下,文生图在高分辨率下会生成非常模糊的图像。如果使用高清修复,会型首先按照指定的尺寸生成一张图片,然后通过放大算法将图片分辨率扩大,以实现高清大图效果。最终尺寸为(原分辨率*缩放系数 Upscale by)。启用之后会多出来一些选项:

img

**放大算法(Upscaler):**Latent 在许多情况下效果不错,但重绘幅度小于 0.5 后就不甚理想。ESRGAN_4x、SwinR 4x 对 0.5 以下的重绘幅度有较好支持。

**Upscale by:**放大倍数。默认为2。

Hires step 表示在进行这一步时计算的步数。

重绘幅度(Denoising strength):字面翻译是降噪强度,表现为最后生成图片对原始输入图像内容的变化程度。该值越高,放大后图像就比放大前图像差别越大。低 denoising 意味着修正原图,高 denoising 就和原图就没有大的相关性了。一般来讲阈值是 0.7 左右,超过 0.7 和原图基本上无关,0.3 以下就是稍微改一些。实际执行中,具体的执行步骤为 Denoising strength * Sampling Steps。

第五步,生成图片

点右上角最大的按钮生成就可以了,之后应该会看到一个蓝色的进度条。图片会生成在下方。你也可以选择中止或者跳过。

图片默认自动保存在\outputs文件夹下。可以在“设置-保存路径”下进行修改。

img

在“生成”按钮下面有一些小图标。

↙️:获取上一次图片生成参数;

️:清空提示词内容;

:将预设样式插入到当前提示词后;

:将当前提示词存储为预设样式。可以从下面预设样式下拉框中选择;

:显示/隐藏扩展模型(显示扩展图

img

(3)常见问题和经验

笔者之前安装了Python3.11,安装的时候报错了。按照要求将Python3.11换成3.10.6还是报错,环境变量也改了。找了一圈没有结论,最后发现SD会把python环境拷贝到/venv目录下,将目录下内容全部删除就好了。

因为SD涉及到的模型和目录较多,为了防止大家懵圈,迹寒做了一张表,建议大家收藏:

类型文件格式目录说明
Checkpoint*.ckpt, *.safetensorsmodels/Stable-diffusion模型文件较大,几百M到数G
vae*.ckpt, *.safetensorsmodels/VAE增加图片亮度,恢复眼睛和文字等细节
Textual Inversion*.ptembeddings文件很小,作为可选tag插件
Lora(LoRA)*.ptmodels/Lora微调模型,风格化
Hypernetworks*.pt, *.ckpt, *.safetensorsmodels/hypernetworks和Lora工作方式相近

有时候SD提示:Something went wrong Expecting value: line 1 column 1 (char 0) 错误
解决方法:不挂梯子重启。真正原因暂时还不清楚。重启之后生成任意一张图片再打开梯子即可。
为了优化显存的使用,推理加速,可以下载可以在启动时候加入-xformers 参数。将会自动下载。其它优化方法请参考github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Optimizations。

三、如何写提示词

(1)语法糖

首先我们讲一讲提示词语法,它是一种人能看懂的单词或句子的组合。

","分割符号

使用逗号 , 用于分割词缀,且有一定权重排序功能,逗号前权重高,逗号后权重低。例:girl, beautiful

建议的通用范式

建议用以下归类的三大部分来准备相关提示词
前缀(画质词+画风词+镜头效果+光照效果) + 主体(人物&对象+姿势+服装+道具) + 场景(环境+细节)

更改提示词权重

使用小括号()增加模型对被括住提示词的注意 (提高权重)。

权重取值范围 0.4-1.6,权重太小容易被忽视,太大容易拟合图像出错。例:(beautiful:1.3) 。括号允许嵌套。

各种权重类语法公式明细:

  • (PromptA:weight):用于提高或降低该提示词的权重比例,注:数值大于1提高,小于1降低
  • (PromptB):PromptB的权重为1.1=(PromptA:1.1)
  • {PromptC}: PromptC的权重为1.05=(PromptB:1.05)
  • [PromptD]: PromptD的权重减弱0.952=(PromptC:0.952)
  • ((PromptE)=(PromptE:1.1*1.1)
  • {{PromptF}}=(PromptF:1.05*1.05)
  • [[PromptG]]=(PromptG:0.952*0.952)

调取LoRA或Hypernetworks模型

使用尖括号 <> 调取LoRA或超网络模型。
按照下述形式输入:<lora:filename:multiplier><hypernet:filename:multiplier>可调取相应模型,例:<lora:cuteGirlMix4_v10:0.5> 。冒号后面的数字表示使用LoRA或Hypernetworks模型的百分比(0-1)。

很坑的一点是“:”必须是英文冒号且后面不能有空格,一旦有空格就会报错“Can’t find Lora with name X”

img

  1. 分布与交替渲染

使用方框号 [] 可应用较为复杂的分布与交替需求。

  • [A:B:step] 代表执行A效果到多少进度,然后开始执行B。例:[blue:red:0.4],渲染蓝色到40%进度渲染红色。注:step > 1 时表示该组合在前多少步时做为 A 渲染,之后作为 B 渲染。step < 1 时表示迭代步数百分比。
  • [A:0.5] 这样写的含义是从50%进度开始渲染A
  • [A::step] 渲染到多少进度的时候去除A
  • [A|B] A和B交替混合渲染
  1. 反向提示词

反向提示词(Negative prompt),就是我们不想出现什么的描述。例:NSFW 不适合在工作时看的内容,包括限制级,还有低画质相关和一些容易变形身体部位的描述等。

注:在C站可下载一个叫 Easynegative 的文件,它的作用是把一些常用的反向提示词整合在一起了,让我们只需输入简单的关键词就能得到较好效果。把它放到/enbeddings 文件夹,需要触发时在 negative prompt 中输入 EasyNegative 即可生效。除此之外还有badhandv4等。

一些注意说明

  1. AI 会按照 prompt 提示词输入的先后顺序和所分配权重来执行去噪工作;
  2. AI 也会依照概率来选择性执行,如提示词之间有冲突,AI 会根据权重确定的概率来随机选择执行哪个提示词。
  3. 越靠前的 Tag 权重越大;比如景色Tag在前,人物就会小,相反的人物会变大或半身。
  4. 生成图片的大小会影响 Prompt 的效果,图片越大需要的 Prompt 越多,不然 Prompt 会相互污染。
  5. Prompt 支持使用 emoji,且表现力较好,可通过添加 emoji 图来达到效果。如 形容喜欢表情, 可修手。
  6. 连接符号,使用 +, and, |, _ 都可连接描述词,但各自细节效果有所不同。

img

  • 用加号连接:(red hair:1.1)+(yellow hair:1.25)+(green hair:1.4)
  • 用 and 连接:(red hair:1.1) AND (yellow hair:1.25) AND (green hair:1.4)
  • 用逗号连接:(red hair:1.1),(yellow hair:1.25),(green hair:1.4)
  • 用下划线连接:(red hair:1.1)(yellow hair:1.25)(green hair:1.4)
  • 用竖线连接:(red hair:1.1)|(yellow hair:1.25)|(green hair:1.4)
  • 什么都不加直接连接:(red hair:1.1)(yellow hair:1.25)(green hair:1.4)

(2)典型提示词

提高图像质量的提示词:

prompt(P)描述
HDR, UHD, 8K(HDR、UHD、4K、8K和64K)这样的质量词可以带来巨大的差异提升照片的质量
best quality最佳质量
masterpiece杰作
Highly detailed画出更多详细的细节
Studio lighting添加演播室的灯光,可以为图像添加一些漂亮的纹理
ultra-fine painting超精细绘画
sharp focus聚焦清晰
physically-based rendering基于物理渲染
extreme detail description极其详细的刻画
Professional加入该词可以大大改善图像的色彩对比和细节
Vivid Colors给图片添加鲜艳的色彩,可以为你的图像增添活力
Bokeh虚化模糊了背景,突出了主体,像 iPhone 的人像模式
(EOS R8, 50mm, F1.2, 8K, RAW photo:1.2)摄影师对相机设置的描述
High resolution scan让你的照片具有老照片的样子赋予年代感
Sketch素描
Painting绘画

反向提示词:

negative prompt(NP)描述
mutated hands and fingers变异的手和手指
deformed畸形的
bad anatomy解剖不良
disfigured毁容
poorly drawn face脸部画得不好
mutated变异的
extra limb多余的肢体
ugly丑陋
poorly drawn hands手部画得很差
missing limb缺少的肢体
floating limbs漂浮的四肢
disconnected limbs肢体不连贯
malformed hands畸形的手
out of focus脱离焦点
long neck长颈
long body身体长

是不是很长,迹寒按照方便复制的格式重写了下:

mutated hands and fingers, deformed, bad anatomy, disfigured, poorly drawn face, 

关于AI绘画技术储备

学好 AI绘画 不论是就业还是做副业赚钱都不错,但要学会 AI绘画 还是要有一个学习规划。最后大家分享一份全套的 AI绘画 学习资料,给那些想学习 AI绘画 的小伙伴们一点帮助!

对于0基础小白入门:

如果你是零基础小白,想快速入门AI绘画是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:stable diffusion安装包、stable diffusion0基础入门全套PDF,视频学习教程。带你从零基础系统性的学好AI绘画!

需要的可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

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.AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述
这份完整版的学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值