(零)AI绘图
如果你对这方面是零基础,可以阅读本篇的内容,至少可以上手。
更多不断丰富的内容参考:🔗《继续Stable-Diffusion WEBUI方方面面研究(内容索引)》
最近比较热门的人工智能,可以单纯通过输入一段文字(提示词),或者通过一张图片生成新的绘图作品。
根据基础模型和人物模型的不同,可以生成动漫,Q版,3D,仿真各种类型的任意图片。
例,比如仿真风格:
例,比如3D国风:
例,额这是什么风格,我没看过那么多动漫,所以还请赐教。
例子太多了,可以自行在网上搜出一大把。
上面例子还是习惯的替换成我老婆的脸,至少不重复。
(一)简单介绍
(1.1)Stable-Diffusion
稳定扩散(Stable Diffusion)原名是潜扩散模型(Latent Diffusion Model, LDM)。
引用:”扩散模型的兴起可以被视为人工智能生成艺术领域最近取得突破的主要因素……”
感兴趣可以参考这篇: 🔗《Diffusion 和Stable Diffusion的数学和工作原理详细解释》
当然,我们通常谈到这个名字时,指的是具体的项目:🔗https://github.com/CompVis/stable-diffusion
这类Python对不搞计算机和人工智能的同学来说太繁琐了,
其实对于研究人员和科学家也繁琐,要不怎么有Anaconda和Jupyter Notebook这类工具呢……
这个是开源项目,有兴趣的可以自己研究。
(1.2)Stable-Diffusion WEB UI
所以不通过命令行,不去管各种环境,对普通大众才是最简单的使用方式。
于是我们一般用的都是 Stable-Diffusion WEB UI :浏览器的Stable-Diffusion用户界面(基于Gradio库)。
项目位置:🔗https://github.com/AUTOMATIC1111/stable-diffusion-webui
作者的官方截图:
(1.3)SD-WebUI启动器和整合包
估计是考虑到WEBUI也需要简单的配置,以及需要模型,以及各种懒人的懒是无下限的。
所以居然还有大神(秋葉aaaki)制作了启动器,这下真的可以”一键使用“了。
SD-WebUI启动器 的官网……呃,没有官网。
作者自己写的唯一发布途径:🔗https://www.bilibili.com/video/BV1ne4y1V7QU
然后是V4更新:https://www.bilibili.com/video/BV1iM4y1y7oA
从里面你可以找到启动器本身,以及作者自己推荐的:NovelAI模型(7GB)整合包的下载连接。
💡 简单说通过整合包,你可以不懂任何原理,就开始AI作图了。
启动器还可以管理SD-WebUI的版本,各种模型以及插件。
截图(2.0新版主界面):
(二)使用
(2.1)启动 & 控制台 & WEBUI
假设你是通过上面的启动器的,选择了适合自己的显卡显存,至少有一个Stable-Diffusion模型(比如整合包那个)。
然后点击”一键启动“了,则会出现一个控制台(CMD窗口)。
Python 3.10.8 (tags/v3.10.8:aaaf517, Oct 11 2022, 16:50:30) [MSC v.1933 64 bit (AMD64)]
Commit hash: 5ab7f213bec2f816f9c5644becb32eb72c8ffb89
Installing requirements
Installing requirements for Batch Face Swap
Installing requirements 1 for Infinite-Zoom
Launching Web UI with arguments: --medvram --theme dark --xformers --opt-channelslast --api --autolaunch
=====================================
AUTOMATIC1111/stable-diffusion-webui
portable packed by bilibili@秋葉aaaki
version: v2
本整合包完全免费
=====================================
dirname: D:\xxxxxx\localizations
localizations: {'简体中文': 'D:\\xxxxxx\\localizations\\简体中文.json'}
ControlNet v1.1.134
ControlNet v1.1.134
Loading weights [7f96a1a9ca] from D:\xxxxxx\models\Stable-diffusion\Anything_v5.safetensors
Creating model from config: D:\xxxxxx\configs\v1-inference.yaml
LatentDiffusion: Running in eps-prediction mode
DiffusionWrapper has 859.52 M params.
Applying xformers cross attention optimization.
Textual inversion embeddings loaded(4): bad-hands-5, EasyNegative, ulzzang-6500-v1.1, yaguru magiku
Model loaded in 2.4s (load weights from disk: 0.2s, create model: 0.5s, apply weights to model: 0.5s, apply channels_last: 0.5s, apply half(): 0.7s).
Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
Startup time: 18.9s (import torch: 2.3s, import gradio: 1.1s, import ldm: 0.8s, other imports: 1.8s, setup codeformer: 0.1s, load scripts: 4.1s, load SD checkpoint: 2.7s, create ui: 5.4s, gradio launch: 0.3s, scripts app_started_callback: 0.2s).
控制台中如果没有出错的信息,默认会自动打开浏览器,出现Stable-Diffusion的页面。
由于我们用了整合包里面的扩展插件,所以这里页面是中文的了。
文生图这页里面,简单输入提示词,就可以成功生成图片了。
PS:图生图也是一样的,只是需要选一张已有的图片作为参考。
OK,大功告成,洗洗睡觉了……
(2.2)模型
(2.2.1)基础模型(stable-diffusion模型)
啊嘞嘞!等一下,你会说左上角能选的,根本没有我用的这个模型,OK?
是的,如果你下载的是整合包,则只有NovelAI模型。
因为是个动漫模型不能生成上面例子里面的仿真的猫猫狗狗。
基础模型(stable-diffusion模型)决定了生成图片的最基本风格,
所以你可以多找几个基础模型来生成动漫/真实的不同风格的图片。
需要注意的是,在你决定商用之前需要仔细看这些模型的协议和模型内容,是否版权完善。
关于模型和下载,你可以参考这里:🔗https://openai.wiki/painting/sd
或者在抱脸一类模型网站上下载优秀的模型,比如国风3:🔗https://huggingface.co/xiaolxl/GuoFeng3
由于最丰富的模型网站civitai国内无法访问,只好通过抱脸获取模型。
比如你可以了解(但不局限于)这些模型:
- 原始基础:SD v1.5
- 常见动漫:OpenJourney,Anything,NovalAI(就那整合包啊),RedShift ……
- 仿真风格:Dreamlike-Photoreal,BasilMix(融合亚洲脸),ChilloutMix(清凉组合/亚洲),URPM(注意NSFW)
(2.2.1.1)模型文件位置
请注意这一步提到的是基础模型(stable-diffusion模型),通常都是几个GB大小。
通常名称是 xxx.ckpt
或者 xxx.safetensors
(如果有.safetensors可优先选它)。
将下载的模型放入{你的项目位置}\models\Stable-diffusion
目录当中,
刷新一下或者下次打开就可以看到了。
(2.2.1.2)模型选择 & 模型预览图
One more thing……
可以点击这个红色,呃粉色?的(Show extra networks)按钮。
然后选择 模型(ckpt) 这一页,通过点击预览图也可以切换基础模型。
作用和在左上角下拉列表选择基础模型是一样的。
最开始也许没有预览图,你可以选个模型生成一张图。
然后鼠标指向这个模型预览图名字那里,点击出现的”用当前生成图片替换预览“,这样就有预览图了。
(2.2.1.3)模型的VAE
目前通常模型都集成了VAE,完全不用我们管。
但如果模型没有对应的VAE则出图质量不高或比较奇怪,这部分在另外的文章有讲到。
(2.2.2)小模型(LoRA模型)
LoRA: Low-Rank Adaptation (of Large Language Models)是一种使用少量图像来训练模型的方法。
我们简称它为小模型,因为它是对基础模型(大模型)的微调,不用改变整个大模型就能改变人物和风格。
可以参考:🔗https://zhuanlan.zhihu.com/p/612992813 或其他资料,这里咱先不讨论原理。
最近的SD-WEB UI已经原生支持了LoRA模型,不再需要插件了。
- LoRA模型大小从几MB到100多MB。
- 可以加载多个不同的LoRA模型配合不同的权重叠加使用。
- 训练比较快(几到几十分钟),使用少量图像(10多张),效果比较好。
- 目前SD-WEB UI不能训练LoRA模型。
- 适合训练人物。
训练请参考下面的项目,训练本身内容也很多,这里不详细写。
脚本训练:🔗https://github.com/Akegarasu/lora-scripts
GUI训练:🔗https://github.com/bmaltais/kohya_ss
我们可以简单理解为,这是个性化的人物模型。
💡没有或不使用LoRA模型也是可以生成图片的,所以这一章节可以跳过。
下载LoRA模型同样可以参考这里:🔗https://openai.wiki/painting/sd
或者国风3也提供了LoRA模型:🔗https://huggingface.co/xiaolxl/GuoFeng3
注意版权,比如各地girllikeness模型……
- 参考:https://openai.wiki/lora-model-part-1.html,以及part2,3。
- 参考:https://www.bilibili.com/read/cv20039815。
- 参考:https://aigallery.design/chinese-diffusion-models.html,呃,明星?
(2.2.2.1)模型文件位置
请注意这一步提到的是loRA模型,一般几十到几百MB大小。
文字里面通常包括lora字样,以便区别基础模型。
通常名称是xxx.safetensors
。
将LoRA模型放入{你的项目位置}\models\Lora
目录当中,
同理刷新一下或者下次打开就可以看到了。
(2.2.2.2)模型选择 & 模型预览图
和基础模型一样击这个粉色的(Show extra networks)按钮。
然后选择 LoRA 这一页。
生成预览图的方式和基础模型一样,这里就不重复说了。
选用模型的方式是点击模型,这时提示词(prompt)中就会加入这个LoRA模型的提示词,
比如吉卜力风格的LoRA就是加入 <lora:Studio Ghibli:1>
,再点击一下同一个模型,提示词中就会取消它。
💡可以用多个LoRA模型的提示词噢!
(2.2.3)小模型(嵌入式模型/Embedding/Textual Inversion)
【抄的】是一种使用文本提示来训练模型的方法。它根据模型引用给定的图像并选择最匹配的图像。
现在有了LoRA模型,大家应该不会再用它来训练了吧。
- Embedding模型大小只有几十KB。
- 可不能设置权重,似乎关键词位置也会影响效果。
- 训练很慢(整天),效果……可能我不太会吧,和LoRA用同样的资源图片训练20000多迭代后,人物依然怪异得很。
- 在SD-WEB UI里可以直接训练Embedding模型,
- 适合训练人物。
- 将Embedding模型放入
{你的项目位置}\embeddings
目录当中,
(2.2.4)小模型(超网络模型/Hypernetwork)
(抄的)是一种使用神经网络来生成模型参数的方法。它可以用来从模型内部找到更多相似的东西,使得生成为近似内容图像。
- Hypernetwork模型大小大约几十MB。
- 我没试过训练它,抱歉……
- 在SD-WEB UI里可以直接训练Hypernetwork模型,
- 适合训练风格,画风。
- 将Hypernetwork模型放入
{你的项目位置}\models\Hypernetwork
目录当中,
(2.3)文生图(绘图方式)
就是通过文字描述来生成对应的图片。
(2.3.1)提示词
提示词是核心,选择合适的提示词才能生成更好的图片。
提示词需要用英文的,当然也有中文提示词的相关项目,有兴趣可以自己研究。
输入提示词时候,有时可以看到联想的内容,这也是插件的功劳。
提示词 prompt(上面的框框)描述希望图片生成为什么样子的词语(highres, beautiful, masterpiece)。
反向提示词 negative prompt(下面的框框)不希望图片出现的内容(lowres, ugly, blurry…)。
-
(强调) / [弱化]:权重:提示词中出现:
(photorealistic:1.4)
是强调photorealistic
,并且权重是1.4
(光标放单词上后,就可以Ctrl+上/下箭头快速调节呢)。圆括号越多越强调——而方括号则是弱化,越多方括号越弱。 -
LoRA模型提示词:提示词中出现:
<lora:xxxxx:1.0>
就是LoRA模型的提示词,后面1.0
也是权重,调节同上。
💡 我们也可以通过 图片信息 这一页,查看一张AI生成的图片(原图)是用哪些提示词,哪些参数生成的。
以此来了解别人生成的很不错的图片的信息,自己用来参考。
(2.3.2)模板风格
模板风格就是一组有名字的【提示词+反向提示词】。
比较完美的一组正反提示词,可以保存成一个“模板风格”,今后重复调用。
用模板风格可以存储别人的提示词配置用来生成同样的效果。
可以参考:Danbooru 标签超市 ,或提示词学徒库 。
或小日子过得不错的另类:🇯🇵寻找图像提示🔞NSFW。
我们可以保存多组提示词切换着用。
选择模板风格后,点一下这个小本子一样的图标,就可以把选中的模板风格的提示词内容,加入到左边的输入框中。
(2.3.3)修复(Restore or Fix)
-
面部修复(Restore faces):通常都勾选,由于神经网络无法完全捕捉人脸的微妙细节和变化,导致产生了不自然或扭曲的结果。实测似乎还带了美颜的效果(汗),总之人像的话选中它就对了。
面部修复对比(左关,右开)例子: -
高清修复(Hires. fix):由于Stable-Diffusion模型的原因(512x512)不适合直接生成高分辨率照片。
所以可以设置低分辨率并选中这个选项。有人说慎选,其实可以自己尝试【生成低分辨率+高清修复】vs【直接高分辨率】哪个更好。
工作原理可看WEBUI仓库的WIKI。
高清修复对比(关,开,直接生成高分辨率)例子: 💡直接生成高分辨率就算随机种子一致结果也不同了……
(2.3.4)采样方法
-
采样方法(Sampler) :通常:DPM++ SDE karras ,参考Stable diffusion webui如何工作以及采样方法的对比
-
采样迭代步数(Steps) :迭代多少次,通常至少20起步。
(2.3.5)其它参数
-
分辨率(Width and Height):长x宽。概念大家都知道。 在AI作图中并不是分辨率选得高图就仅仅变大(处理时间变长)而已。模型会适合一定范围内的分辨率(通常都不大),所以我们一般只选择384x512 -> 600x800 这种不太高的分辨率。如果要生成大图则需要配合前面的【高清修复】,或则使用【附加功能】的图片放大,或则两者配合。
-
生成批次/每批数量(Batch count / Batch size) :重复生成多少次 x 每次生成几张 = 本次最后生成的图片数量,都设为1就是单张。注意【每批数量】是很考验显存的,如果显卡不是很强悍(显存不够大)那还是别设置高了(会OOM报错的)。
-
提示词相关性(CFG Scale):图像与你的提示的匹配程度。参考Stable Diffusion 新手入门手册,通常5-8,设太高会偏执的要画提示词内容,结果可能很怪,可同时增加【采样迭代步数】来缓和。
-
随机种子(seed):这怎么解释,后面的骰子图标是填入-1(随机),回收站图标是填入上次用过的值。
💡做到这里就可以生成图片了。
(2.4)图片文件输出
输出的图片会保存到{你的项目位置}\outputs
的子目录中。
比如文生图就是txt2img,图生图就是img2img。
单张图片在xxx-images下面。
批量图片会合成一张大的网格图放在xxx-grids下面。
(三)进阶(继续阅读)
这篇主要记录了我首次接触AI绘图,把软件用起来必要的基本步骤。
如果还有兴趣请看:🔗《继续Stable-Diffusion WEBUI方方面面研究》
内容是用索引的形式,记录了Stable-Diffusion WEBUI和插件的许多高级操作。
里面引用了很多高人的文章,他们的内容十分详细。
最终目的是,更完善的绘图成果。比如:更好的提示词,人物姿态手部动作,合成视频插件,生成高清墙纸,训练自己的模型 等等……
同时我发现这样零散的记录似乎不合理,所以准备把上面提到的这篇也改造成我自己写的内容的索引。
目标是从索引可以找到全部文章内容,而不是文章之间疯狂互相引用:)文章来源:https://www.toymoban.com/news/detail-448348.html
😜Happy Creating……文章来源地址https://www.toymoban.com/news/detail-448348.html
到了这里,关于浅谈【Stable-Diffusion WEBUI】(AI绘图)的基础和使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!