当前位置:   article > 正文

带你从零开始入门AI绘画神器Stable Diffusion

带你从零开始入门AI绘画神器Stable Diffusion

一、本地部署 Stable diffusion

1. 前言

目前市面上比较权威,并能用于工作中的 AI 绘画软件其实就两款。一个叫 Midjourney(简称 MJ),另一个叫 Stable-Diffusion(简称 SD)。MJ 需要付费使用,而 SD 开源免费,但是上手难度和学习成本略大,并且非常吃电脑配置(显卡、内存)。

E 和 Midjourney 相比,Stable Diffusion 最大的优势是开源,这意味着 Stable Diffusion 的潜力巨大、发展飞快。由于开源免费属性,SD 已经收获了大量活跃用户,开发者社群已经为此提供了大量免费高质量的外接预训练模型(fine-tune)和插件,并且在持续维护更新。在第三方插件和模型的加持下,SD 拥有比 Midjourney 更加丰富的个性化功能,在经过使用者调教后可以生成更贴近需求的图片,甚至在 AI 视频特效、AI 音乐生成等领域,Stable Diffusion 也占据了一席之地。

Stable Diffusion 是一种潜在扩散模型(Latent Diffusion Model),能够从文本描述中生成详细的图像。它还可以用于图像修复、图像绘制、文本到图像和图像到图像等任务。简单地说,我们只要给出想要的图片的文字描述在提 Stable Diffusion 就能生成符合你要求的逼真的图像!

2. 电脑配置

电脑配置最核心的关键点:看显卡、看内存、看硬盘、看 CPU。其中最重要的是看显卡。N 卡(英伟达 Nvida 独立显卡)首选,效率远超集显/AMD/Intel 显卡和 CPU 渲染,最低 10 系起步,体验感佳用 40 系,显存最低 4G,6G 及格,上不封顶;内存最低 8G,16G 及格,上不封顶;硬盘可用空间最好有个 500G 朝上,固态最佳。

系统要求:支持 Win10/Win11/macOS(仅限 Apple Silicon,Intel 版本的 Mac 无法调用 Radeon 显卡)和 Linux 系统,苹果版 SD 兼容的插件数量较少,功能性不及 Windows 与 Linux 电脑。

如果身边没有合适的电脑可以考虑购买云主机,比如腾讯 GPU 云服务器。若无法使用独立显卡和云服务,亦可修改启动配置,使用 CPU 渲染(兼容性强,出图速度慢,需要 16G 以上内存)。

从图中可看出,与 AMD 或英特尔的任何产品相比,Nvidia 的 GPU 提供了卓越的性能--有时是以巨大的优势。随着 Torch 的 DLL 修复到位,RTX 4090 的性能比带有 xformers 的 RTX 3090 Ti 高出 50%,而没有 xformers 的性能则高出 43%。生成每张图片只需要三秒多。

3. 安装方法

SD 开源地址: https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki

目前大家普遍采用的 Stable Diffusion Web UI 是发布于开源程序分享网站 Github 的 Python 项目,和平常软件安装方法有所不同,不是下载安装即可用的软件,需要准备执行环境、编译源码,针对不同操作系统(操作系统依赖)、不同电脑(硬件依赖)还有做些手工调整,这需要使用者拥有一定的程序开发经验(可以现学),已经有很多大佬们写了详细的安装教程。(如 https://www.tonyisstark.com/846.html @托尼不是塔克)

如果像我一样是小白不会装,现在可以直接使用大佬们做的一键启动程序包,比如国内@秋葉 aaaki 大大开发的整合包,极大的降低了安装门槛(强烈推荐!)

(详见 https://www.bilibili.com/video/BV1ne4y1V7QU )一键启动包只是封装了可视化的一键界面,不影响出图效果,只是降低了本地部署的门槛。

Nvidia 显卡用户须知:在使用 SD 前,请登录 Nvidia 官网 https://www.nvidia.cn/geforce/drivers/下载安装对应显卡最新版驱动程序 ,与 https://blog.csdn.net/weixin_44177494/article/details/120444922显卡支持的最新版 CUDA 驱动。

4. 启动 SD

进入 SD 安装文件夹,双击 webui-user.bat,待其加载完成方可使用浏览器(Chrome/Edge)登录默认的加载 IP:http://127.0.0.1:7860/

5. 界面汉化

如果需要中文语言包,可以下载如下中文语言包扩展,下载界面网址为: https://github.com/VinsonLaro/stable-diffusion-webui-chinese

方法 1:通过 WebUI 拓展进行安装

  1. 打开 stable diffusion webui,进入"Extensions"选项卡

  2. 点击"Install from URL",注意"URL for extension's git repository"下方的输入框

  3. 粘贴或输入本 Git 仓库地址 https://github.com/VinsonLaro/stable-diffusion-webui-chinese

  4. 点击下方的黄色按钮"Install"即可完成安装,然后重启 WebUI(点击"Install from URL"左方的"Installed",然后点击黄色按钮"Apply and restart UI"网页下方的"Reload UI"完成重启)

  5. 点击"Settings",左侧点击"User interface"界面,在界面里最下方的"Localization (requires restart)",选择"Chinese-All"或者"Chinese-English"

  6. 点击界面最上方的黄色按钮"Apply settings",再点击右侧的"Reload UI"即可完成汉化

二、界面基础

1. 了解界面

接下来是具体的使用方法简介。目前 SD 并不存在通行可靠的使用规范,每个人的电脑配置、需求都不尽相同,cpkd/Safetensors 大模型、VAE、embeding、lora 等 AI 模型、各类插件、提示词、输出参数的组合牵一发则动全身,需要大家有足够的耐心查阅插件开发者的说明文档和来自 https://civitai.com/等分享网站的使用心得 ,大家可以先到 civitai 上搜索中意的图例,复用原作者的出图提示词、参数和模型,再以此修改,这样学习的效果最为直观。

文生图:根据文本提示生成图像

图生图:根据提供的图像作为范本、结合文本提示生成图像

更多:优化(清晰、扩展)图像

图片信息:显示图像基本信息,包含提示词和模型信息(除非信息被隐藏)

模型合并:把已有的模型按不同比例进行合并生成新模型

训练:根据提供的图片训练具有某种图像风格的模型

描述语分为正向/负向描述,它们也叫 tag(标签)或 prompt(提示词)

正面提示词:相比 Midjourney 需要写得更精准和细致,描述少就给 AI 更多自由发挥空间。

负面提示词:不想让 SD 生成的内容。

正向:masterpiece, best quality, 更多画质词,画面描述

反向:nsfw, lowres, bad anatomy, bad hands, text, error, missing fingers,extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry,根据画面产出加不想出现的画面。

生成按钮下面的 5 个小图标(从左到右依次分别是)

  1. 复原上次生成图片的提示词(自动记录)

  2. 清空当前所有提示词

  3. 打开模型选择界面

  4. 应用选择的风格模板到当前的提示词

  5. 存档当前的正反向提示词

2. 采样方法

  1. 建议根据自己使用的 checkpoint 使用脚本跑网格图(用自己关心的参数)然后选择自己想要的结果。

  2. 懒得对比:请使用 DPM++ 2M 或 DPM++ 2M Karras(二次元图)或 UniPC,想要点惊喜和变化,Euler a、DPM++ SDE、DPM++ SDE Karras(写实图)、DPM2 a Karras(注意调整对应 eta 值)

  3. eta 和 sigma 都是多样性相关的,但是它们的多样性来自步数的变化,追求更大多样性的话应该关注 seed 的变化,这两项参数应该是在图片框架被选定后,再在此基础上做微调时使用的参数。

3. 采样步数

此参数控制这些去噪步骤的数量。通常越高越好,但在一定程度上,我们使用的默认值是 25 个步骤。以下是不同情况下使用哪个步骤编号的指南:

  1. 如果您正在测试新的提示,并希望获得快速结果来调整您的输入,请使用 10-15 个步骤

  2. 当您找到您喜欢的提示时,请将步骤增加到 25

  3. 如果是有毛皮的动物或有纹理的主题,生成的图像缺少一些细节,尝试将其提高到 40

面部修复:修复人物的面部,但是非写实风格的人物开启面部修复可能导致面部崩坏。

平铺:生成一张可以平铺的图像

高分辨率重绘:使用两个步骤的过程进行生成,以较小的分辨率创建图像,然后在不改变构图的情况下改进其中的细节,选中该选项会有一系列新的参数,

其中重要的是:

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

放大倍数: 通常 2 倍即可

重绘幅度:决定算法对图像内容的保留程度。该值越高,放大后图像就比放大前图像差别越大。低 denoising 意味着修正原图,高 denoising 就和原图就没有大的相关性了。一般来讲阈值是 0.7 左右,超过 0.7 和原图基本上无关,0.3 以下就是稍微改一些,0 什么都不会改变,1 会得到一个完全不同的图像。具体的执行步骤为 重绘强度 * 重绘步数。

长宽尺寸(分辨率)

长宽尺寸并非数值越大越好,最佳的范围应在 512 至 768 像素之间,比如正方形图多是 512*512 和 768*768,人像肖像 512x768,风景画 768×512,可按比例加大或减小,这个值必须是 8 的倍数。如果不希望主题对象出现重复,应在此范围内选择适当的尺寸。如果需要更高分辨率的图片,建议先使用 SD 模型生成图片,然后再使用合适的模型进行 upscale。

生成批次:每次生成图像的组数。一次运行生成图像的数量为生成批次 * 每批数量。

每批数量:同时生成多少个图像。增加这个值可以提高性能,但你也需要更多的 VRAM。图像总数是这个值乘以批次数。除 4090 等高级显卡以外通常保持为 1。

提示词相关性 CFG:较高的数值将提高生成结果与提示的匹配度。

OpenArt 上使用的默认 CFG 是 7,这在创造力和生成你想要的东西之间提供了最佳平衡。通常不建议低于 5。

CFG 量表可以分为不同的范围,每个范围都适合不同的提示类型和目标

  1. CFG 2 – 6:有创意,但可能太扭曲,没有遵循提示。对于简短的提示来说,可以很有趣和有用

  2. CFG 710:推荐用于大多数提示。创造力和引导一代之间的良好平衡

  3. CFG 10-15:当您确定提示是详细且非常清晰的,您希望图像是什么样子时

  4. CFG 16-20:除非提示非常详细,否则通常不推荐。可能影响一致性和质量

  5. CFG >20:几乎无法使用

随机种子(Seed):生成每张图片时的随机种子,这个种子是用来作为确定扩散初始状态的基础。不懂的话,用随机的即可。

3. 提示词生成

开始不知道怎么写提示词,可以先参考优秀的风格模板作为起手式,还可以借助描述语工具和网站,多出图多研究,掌握了出图规律,慢慢就可以自己写提示词啦,写提示词要尽可能写的详细。跑 AI 的过程就像抽卡,抽出一堆卡,选出你审美范畴里觉得好看的。

找 tag 关键词网站:

  1. chatgpt https://chat.openai.com/

  2. NovelAI: https://spell.novelai.dev

4. Prompt 格式优化

第一段:画质 tag,画风 tag

第二段:画面主体,主体强调,主体细节概括(主体可以是人、事、物、景)画面核心内容

第三段:画面场景细节,或人物细节,embedding tag。画面细节内容

第二段一般提供人数,人物主要特征,主要动作(一般置于人物之前),物体主要特征,主景或景色框架等

举个例子:(具体场景还是要灵活应用,多尝试,找到合适自己的节奏和风格)

第一段:masterpiece, best quality, 4k, ( Pixar - style :1.4)

第二段:1boy,(Cute,handsome,wearing outdoor sportswear :0.7), 3D,(Face close-up :1.2), (at night, surrounded by glowing plants, flowers, flying fireflies, bonfires), (Ultra detailed, aesthetic, beautiful composition, rich bright colors, volumetric soft light).

第三段:Inspired by Alice in Wonderland, magic, fairy tales. unreal Engine, octane render, cuteness render, awe inspiring, beautiful,

5. Prompt 规则细节

①越靠前的 Tag 权重越大。

②生成图片的大小会影响 Prompt 的效果,图片越大需要的 Prompt 越多,不然 Prompt 会相互污染。

③Stable-diffusion 中,可以使用括号人工修改提示词的权重,方法如下:

(word) - 将权重提高 1.1 倍
((word)) - 将权重提高 1.21 倍(= 1.1 * 1.1)
[word] - 将权重降低至原先的 90.91%
(word:1.5) - 将权重提高 1.5 倍
(word:0.25) - 将权重减少为原先的 25%

请注意,权重值最好不要超过 1.5

④Prompt 支持使用 emoji,可通过添加 emoji 达到表现效果。如

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/162703
推荐阅读
相关标签