目前市面上比较权威,并能用于工作中的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就能生成符合你要求的逼真的图像!
电脑配置最核心的关键点:看显卡、看内存、看硬盘、看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提供了卓越的性能--有时是以巨大的优势。随着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/下载安装对应显卡最新版驱动程序,与显卡支持的最新版 CUDA 驱动。
进入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个小图标(从左到右依次分别是)
面部修复:修复人物的面部,但是非写实风格的人物开启面部修复可能导致面部崩坏。
平铺:生成一张可以平铺的图像
高分辨率重绘:使用两个步骤的过程进行生成,以较小的分辨率创建图像,然后在不改变构图的情况下改进其中的细节,选中该选项会有一系列新的参数,
其中重要的是:
放大算法:Latent 在许多情况下效果不错,但重绘幅度小于 0.5 后就不甚理想。ESRGAN_4x、SwinR 4x 对 0.5 以下的重绘幅度有较好支持。
放大倍数: 通常2倍即可
重绘幅度:决定算法对图像内容的保留程度。该值越高,放大后图像就比放大前图像差别越大。低 denoising 意味着修正原图,高 denoising 就和原图就没有大的相关性了。一般来讲阈值是 0.7 左右,超过 0.7 和原图基本上无关,0.3 以下就是稍微改一些,0什么都不会改变,1会得到一个完全不同的图像。具体的执行步骤为 重绘强度 * 重绘步数。
开始不知道怎么写提示词,可以先参考优秀的风格模板作为起手式,还可以借助描述语工具和网站,多出图多研究,掌握了出图规律,慢慢就可以自己写提示词啦,写提示词要尽可能写的详细。跑AI的过程就像抽卡,抽出一堆卡,选出你审美范畴里觉得好看的。
第一段:画质tag,画风tag
第二段:画面主体,主体强调,主体细节概括(主体可以是人、事、物、景)画面核心内容
第三段:画面场景细节,或人物细节,embedding tag。画面细节内容
第二段一般提供人数,人物主要特征,主要动作(一般置于人物之前),物体主要特征,主景或景色框架等
1. 越靠前的Tag权重越大。
2. 生成图片的大小会影响Prompt的效果,图片越大需要的Prompt越多,不然Prompt会相互污染。
3.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
4. Prompt支持使用emoji,可通过添加emoji达到表现效果。如 形容表情, 可修手。
5.“+” , “ AND” , “|” 用法:“+”和“ AND ”都是用于连接短Tag,但AND两端要加空格。"+"约等于" and ";“|” 为循环绘制符号(融合符号)(Prompt A: w1)|(Prompt B: w2)
以上表达适用于WebUI,w1、w2为权重。AI会对A、 B两Prompt进行循环绘制。可往后无限加入Prompt。
6.tag不一定是多么充满细节,只要模型稳定。小图+高分辨率重绘。800*400的图变成1600*800,初识小图减少崩坏概率。
7.关键词最好具有特异性,譬如 Anime(动漫)一词就相对泛化,而Jojo一词就能清晰地指向 Jojo动漫的画风。措辞越不抽象越好,尽可能避免留下解释空间的措辞。
主流模型下载网站:
Hugging face是一个专注于构建、训练和部署先进开源机器学习模型的网站:https://huggingface.co/
Civitai是一个专为Stable Diffusion AI艺术模型设计的网站,是非常好的AI模型库:https://civitai.com/
主流模型被删除可以去备用模型站下载:https://www.4b3.com
如何选择合适模型是最重要的。
从你想画的风格(写实、二次元、卡通盲盒等)来选择大模型,再搭配合适的Lora。
Lora是特征模型,体积较小,是基于某个确定的角色、确定的风格或者固定的动作训练而成的模型,可使用权重控制,确定性要远强于embedding。embedding和Lora有功能交集的部分,也有互相不可取代的地方。
在ckpt大模型上附加使用,对人物、姿势、物体表现较好。在webui界面的Additional Networks下勾线Enable启用,然后在Model下选择模型,并可用Weight调整权重。权重越大,该 Lora 的影响也越大。不建议权重过大(超过1.2),否则很容易出现扭曲的结果。
多个Lora模型混合使用可以起到叠加效果,譬如一个控制面部的Lora 配合一个控制画风的 Lora就可以生成具有特定画风的特定人物。因此可以使用多个专注于不同方面优化的Lora,分别调整权重,结合出自己想要实现的效果。
LoHA 模型是一种 LORA 模型的改进。
LoCon 模型也一种 LORA 模型的改进,泛化能力更强。
下载的Lora可放置于SD文件夹/models/Lora内。
1.将ControlNet模型(.pt、.pth、.ckpt或.safetensors)放入models/ControlNet文件夹。
2.打开“txt2img”或“img2img”选项卡,写下您的提示。
3.按“刷新模型”,选择要使用的模型。(若没有出现,请尝试重新加载/重新启动webui)
4.上传您的图像并选择预处理器,完成。
目前,它支持完整型号和修剪型号。使用extract_controlnet.py从原始.pth文件中提取controlnet。
预训练模型:https://huggingface.co/lllyasviel/ControlNet/tree/main/models
开启 :选中此框以启用ControlNet。
颜色反转:交换黑色和白色。例如,它可以在您上传涂鸦时使用。ControlNet 需要黑色背景和白色涂鸦。如果您使用白色背景的外部软件创建涂鸦,则必须使用此选项。如果您使用 ControlNet 的界面创建涂鸦,则不需要使用此选项。
RGB转为BGR :用于检测用户导入图像中的颜色信息。有时图像中的颜色信息可能与扩展所期望的不同。如果您上传图像并使用预处理,则无需选中此框。
低显存:这将减缓ETA进程,但有助于使用更少的计算空间(显存小于8 GB VRAM建议使用),检查您是否用完了 GPU 内存,或者想要增加处理的图像数量。
推测模式:ControlNet自动识别图像(不需要提示和负面提示)与选定的预处理器。它强制 ControlNet 编码器遵循输入控制图(如深度、边缘等),即使没有提示也是如此。使用此模式时使用更高的步进,例如50,但是这个效果不一定好。
权重(Weight):代表使用 ControlNet 生成图片时被应用的权重占比。
引导介入时机(Guidance Start):在理解此功能之前,我们应该先知道生成图片的 Sampling steps 采样步数功能,步数代表生成一张图片要刷新计算多少次,Guidance Start(T) 设置为 0 即代表开始时就介入,默认为 0,设置为 0.5 时即代表 ControlNet 从 50% 步数时开始介入计算。
引导退出时机(Guidance End):和引导介入时机相对应,如设置为1,则表示在100%计算完时才会退出介入也就是不退出,默认为 1,可调节范围 0-1,如设置为 0.8 时即代表从80% 步数时退出介入。
调整大小模式提供了调整ControlNet大小和上传图像的纵横比。
Just Resize:不保留纵横比的情况下,改变ControlNet图像的大小以匹配Txt2Img设置的宽度和高度。这包括拉伸或压缩图像以适应指定的尺寸。
Scale to Fit (Inner Fit):调整ControlNet图像的大小以适应Txt2Image的尺寸。它将调整图像的大小,直到它能够适应Txt2Image设置的宽度和高度。
Envelope (Outer Fit):调整Txt2Image的大小以适应ControlNet图像的尺寸。它将调整图像的大小,直到Txt2Image设置可以适合ControlNet图像。
画布宽度 和 画布高度 提供手动创建绘图或草图以,不上传任何图像(最好使用 Scribble 预处理器以获得良好的输出)。它会调整空白画布的大小来进行绘制,不会影响上传的原始图像。
预览图片处理结果:能够快速查看选择的预处理器是如何将上传的图像或绘图转换为 ControlNet的检测图。对在渲染输出图像之前尝试各种预处理器有用,可节省我们的时间。
隐藏处理结果:删除预览图像。
预处理器和模型是ControlNet的主要选项。
预处理器:用于对输入图像进行预处理,例如检测边缘、深度和法线贴图。None使用输入图像作为控制图。 根据所需的输出,用户可以选择相应的控制方法。
模型:如果您选择了预处理器,您通常会选择相应的模型。但是它并不限制你混合和匹配所有的预处理器和模型,但是混合多了就会产生负面效果,所以最好使用更加匹配的模型并且越少越好。ControlNet模型与在AUTOMATIC1111 GUI顶部选择的稳定扩散模型一起使用。
使用AI绘图工具Stable Diffusion确实能提高美术工作者的生产效率,但是请记住:人工智能,没有人工就没有智能。Stable Diffusion并不是简单易上手的APP,我们需要花费一定的时间和精力去学习和不断调试,才能使其真正为我们所用,高效产出效果符合需求的图片。
最后,我为大家简单罗列一下使用SD的几项核心能力:
1.Github使用能力,使用者在熟练掌握Github开源项目的安装、调参、排错、编程环境设置等技能后,就不会在SD报错时六神无主了。
2.基础出图调试能力,这项能力能够让使用者无需协助就能自行摸索稳定输出可用的图片。
3.Controlnet构图能力,基于Controlnet的构图控制是美术从业者驾驭SD的缰绳,不会用Controlnet,你只会被随机噪声牵着走。
4.学习插件并组合使用的能力。
5.Lora等小模型的训练能力(进阶)。
部分参考知乎文章