一、本地部署 Stable Diffusion
前言
目前市面上比较权威,并能用于工作中的AI绘画软件其实就两款。一个叫Midjourney(简称MJ),另一个叫Stable-Diffusion(简称SD)。MJ需要付费使用,而SD开源免费,但是上手难度和学习成本略大,并且非常吃电脑配置(显卡、内存)。
和Midjourney相比,Stable Diffusion 最大的优势是开源,这意味着Stable Diffusion的潜力巨大、发展飞快。由于开源免费属性,SD 已经收获了大量活跃用户,开发者社群已经为此提供了大量免费高质量的外接预训练模型(fine-tune)和插件,并且在持续维护更新。在第三方插件和模型的加持下,SD拥有比Midjourney更加丰富的个性化功能,在经过使用者调教后可以生成更贴近需求的图片,甚至在 AI 视频特效、AI音乐生成等领域,Stable Diffusion 也占据了一席之地。
Stable Diffusion是一种潜在扩散模型(Latent Diffusion Model),能够从文本描述中生成详细的图像。它还可以用于图像修复、图像绘制、文本到图像和图像到图像等任务。简单地说,我们只要给出想要的图片的文字描述在提Stable Diffusion就能生成符合你要求的逼真的图像!
电脑配置
电脑配置最核心的关键点:看显卡、看内存、看硬盘、看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%。生成每张图片只需要三秒多。
安装方法
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 驱动。
启动SD
进入SD安装文件夹,双击 webui-user.bat,待其加载完成方可使用浏览器(Chrome/Edge)登录默认的加载IP http://127.0.0.1:7860/
界面汉化
如果需要中文语言包,可以下载如下中文语言包扩展,下载界面网址为: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"即可完成汉化
二、界面基础
了解界面
接下来是具体的使用方法简介。目前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.建议根据自己使用的checkpoint使用脚本跑网格图(用自己关心的参数)然后选择自己想要的结果。
2.懒得对比:请使用DPM++ 2M或DPM++ 2M Karras(二次元图)或UniPC,想要点惊喜和变化,Euler a、DPM++ SDE、DPM++ SDE Karras(写实图)、DPM2 a Karras(注意调整对应eta值)
3.eta和sigma都是多样性相关的,但是它们的多样性来自步数的变化,追求更大多样性的话应该关注seed的变化,这两项参数应该是在图片框架被选定后,再在此基础上做微调时使用的参数。
采样步数
稳定扩散通过从充满噪音的画布开始创建图像,并逐渐去噪以达到最终输出。此参数控制这些去噪步骤的数量。通常越高越好,但在一定程度上,我们使用的默认值是25个步骤。以下是不同情况下使用哪个步骤编号的一般指南:
-
如果您正在测试新的提示,并希望获得快速结果来调整您的输入,请使用10-15个步骤
-
当您找到您喜欢的提示时,请将步骤增加到25
-
如果是有毛皮的动物或有纹理的主题,生成的图像缺少一些细节,尝试将其提高到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量表可以分为不同的范围,每个范围都适合不同的提示类型和目标
CFG 2 – 6:有创意,但可能太扭曲,没有遵循提示。对于简短的提示来说,可以很有趣和有用
CFG 710:推荐用于大多数提示。创造力和引导一代之间的良好平衡
CFG 10-15:当您确定您的提示是详细且非常清晰的,您希望图像是什么样子时
CFG 16-20:除非提示非常详细,否则通常不推荐。可能影响一致性和质量
CFG >20:几乎无法使用
随机种子(Seed):生成每张图片时的随机种子,这个种子是用来作为确定扩散初始状态的基础。不懂的话,用随机的即可。
提示词生成
开始不知道怎么写提示词,可以先参考优秀的风格模板作为起手式,还可以借助描述语工具和网站,多出图多研究,掌握了出图规律,慢慢就可以自己写提示词啦,写提示词要尽可能写的详细。跑AI的过程就像抽卡,抽出一堆卡,选出你审美范畴里觉得好看的。
找tag关键词网站:
可参考Civitai | Stable Diffusion models, embeddings, hypernetworks and more中优秀作品的提示词作为模板。
其他网站还有:
ChatGPT:https://chat.openai.com/
AI Creator:https://ai-creator.net/arts
NovelAI:https://spell.novelai.dev
魔咒百科词典:https://aitag.top
AI咒术生成器:https://tag.redsex.cc/
AI词汇加速器 AcceleratorI Prompt:
词图 PromptTool:https://www.prompttool.com/NovelAI
鳖哲法典:http://tomxlysplay.com.cn/#/
Danbooru tag:Tag Groups Wiki | Danbooru (donmai.us)
Prompt格式优化
第一段:画质tag,画风tag
第二段:画面主体,主体强调,主体细节概括(主体可以是人、事、物、景)画面核心内容
第三段:画面场景细节,或人物细节,embedding tag。画面细节内容
第二段一般提供人数,人物主要特征,主要动作(一般置于人物之前),物体主要特征,主景或景色框架等
举个例子
标签:Diffusion,ControlNet,模型,Stable,使用,生成,图像,字长,SD From: https://blog.csdn.net/m0_58477260/article/details/140732804