在线生图

九月

Civitai曾作者榜第二/XL榜第二 元素法典制作组 SD潜工具书/WaytoAGI维护者 兴趣使然的模型师 咕咕咕
219
粉丝
1
关注
149.4K
运行
4.2K
下载人数
1.9K
获赞

AI小工具

查看全部
Stable Diffusion WebUI 从入门到卸载②

Stable Diffusion WebUI 从入门到卸载②

受限于字数限制:前置内容Stable Diffusion WebUI 从入门到卸载| 吐司tusi.cn 模型训练的问题 部分模型训练的时候出现的问题也会导致提示词出现不听话的情况。 许多tag 有着逻辑上合理的“前置”关系,比如存在sword 这个tag 的作品往往还存在weapon 这个tag、存在sleeves past finger 这个tag 的作品往往还存在sleeve past wrists 这个tag。 这样在训练集中往往共存且有强关联的tag,最终会让模型处理包含它的咒语时产生一层联想关系。 不过上述联想关系似乎不够令人感兴趣,毕竟这些联想的双方都是同一类型,哪怕sword 联想了weapon 也只是无伤大雅。那么是否存在不同类型的联想呢? 答案是存在的: masterpiece, 1 girl, blue eyes, white hair, white dress, dynamic, full body, simple background masterpiece, 1 girl, blue eyes, white hair, white dress, (flat chest), dynamic, full body, simple background 不难发现flat chest 除了影响人物的胸部大小之外还影响了人物的头身比,让人物的身高看上去如同儿童身高一般,如果调整画布为长画布还会更明显。因此称flat chest 与child 有着联想关系。人物胸部大小和身高是不同的两个类型,两个看似类型完全不同的词也可以产生联想关系。对flat chest 加大权重,会让这种联想关系会表现地更为突出。 它的原理和上述同类型的联想一样,都是训练来源导致的。平胸美少女和儿童身高在同一个作品内出现的概率非常大,模型训练的时候不做好区分就会混在一起产生联想关系。这种联想关系在社区中曾被称为“零级污染”。 这种现象在不同的模型中的表现是不同且普遍存在的: 例如:在cf3模型中,出现了又rain的情况下一定会存在雨伞的关联现象。rain和unbrella产生了联想关系。 9. 如何使用LoRA ①首先,把你的LoRA模型放到指定文件夹(你的webui根目录\models\Lora)里面文件夹和我的不一样没关系,只要把模型放到这里就行了。如果下载了太多的LoRA模型不好找,那么就可以像我一样加入文件夹分类 ②按照图片提示,依次点击LoRA列表按钮——想要使用的LoRA,在正面提示词栏里出现<lora:colorloss-000020:1>这种格式的提示词即为下一次生成所要加载的LoRA。 ③如果你使用安装了Kitchen主题或者用了kitchen主题套壳的整合包,那么你的LoRA在这里 10.  画大大大大大大的图 Tiled VAE 扩展插件: pkuliyi2015/multidiffusion-upscaler-for-automatic1111 Tiled VAE能让你几乎无成本的降低显存使用 ● 您可能不再需要--lowvram 或--medvram。 ● 以highres.fix 为例,如果您之前只能进行1.5 倍的放大,则现在可以使用2.0 倍的放大。 使用方法: 勾选红框所示的勾选框以启动Tiled VAE 在第一次使用时,脚本会为您推荐设置。 因此,通常情况下,您不需要更改默认参数。 只有在以下情况下才需要更改参数:当生成之前或之后看到CUDA内存不足错误时,请降低tile 大小 当您使用的tile 太小且图片变得灰暗和不清晰时,请启用编码器颜色修复。 stableSR 扩展插件:pkuliyi2015/sd-webui-stablesr: StableSR for Stable Diffusion WebUI 功能:更强大的图片放大 扩展详细用法请看以下链接: sd-webui-stablesr/README_CN.md at master · pkuliyi2015/sd-webui-stablesr · GitHub 11.  元素同典:真正的parameters魔法入门 提示词入门教程·上篇:《元素同典:确实不完全科学的魔导书》 我们保留了一点点Junk Data:请选择你的模型 1.  Stable Diffusion的工作原理 ①首先我们输入的提示词(prompt)会首先进入TE(TextEncoder),而clip就是stable diffusion所使用的TE。TE这部分的作用就是把tag转化成U-net网络能理解的embedding形式,当然了,我们平时用的emb模型,就是一种自然语言很难表达的promot。(简单的说就是将“人话”转换成AI能够理解的语言) ②将“人话”转换成AI能够理解的语言之后,U-net会对随机种子生成的噪声图进行引导,来指导去噪的方向,找出需要改变的地方并给出改变的数据。我们之前所设置的steps数值就是去噪的次数,所选择的采样器、CFG等参数也是在这个阶段起作用的。(简单的说就是U-net死盯着乱码图片,看他像什么,并给出更改的建议,使得图像更加想这个东西) ③一张图片中包含的信息是非常多的,直接计算会消耗巨量的资源,所以从一开始上面的这些计算都是在一个比较小的潜空间进行的。而在潜空间的数据并不是人能够正常看到的图片。这个时候就需要VAE用来将潜空间“翻译”成人能够正常看到的图片的(简单的说就是把AI输出翻译成人能看到的图片) 经过以上三个步骤,就实现了“提示词→图片”的转化,也就是AI画出了我们想要的图片。这三个步骤也就对应了模型的三个组成部分:clip、unet、VAE 2. 好模型在哪里? 同时满足:提示词准确、少乱加细节、生成图好看、模型本身没有问题的模型,我们就能称之为好模型。 提示词准确:顾名思义,就是tag提示词的辨别能力越高越好。提示词辨别能力差,那么我们就难以达到想要的效果。 少乱加细节:指的是产生提示词中并不包含的细节,并且我无法通过提示词来消除这些不相干的细节,这会影响提示词对于生成图的控制能力。 生成图好看:这没什么好说的,生成图无论如何都是炸的话,那这个模型也就没有存在的必要了。 模型本身没有问题:一般而言是指不含有Junk data和VAE没有问题的模型 3. 讨厌的junk data junk data就是指垃圾数据,这些数据除了占用宝贵的硬盘空间外毫无作用。一个模型里只有固定的那些内容才能够被加载,多出的全是垃圾数据。一般而言一个7Gb的SD1.5模型,实际生成图片所用到的只有3.98Gb。模型并不是越大越好 这些东西大部分都是EMA,模型在Merge后EMA将不再准确反映UNET,这种情况下EMA不止没啥用,还会影响模型的训练。所以在尝试融合模型时期,请先使用工具删除模型EMA权重(后面讲模型融合的时候会提到) 4. 你的AI浓度超标了! 曾经时间大家的模型同质化都是比较严重的,按照出图效果分类可以将这一部分融合模型模型分为:橘子、蜡笔、Anything、cf等多种系列,每一种系列中的不同模型实际上都效果相差不大,完全没有必要去下载全部的模型。 不了解AI的人所说的“AI浓度超标”“AI味”,其实指的是橘子(AOM)这一系列模型的风格,具体效果是人物身体的表面有一种油光,多了解之后你就会发现,类似这种一整个系列都会有相似的风格。 5. 你的VAE?不,是你的VAE! VAE重复问题在SD1.5是比较严重的,例如Anything V4.5 VAE,实际上和novelai的VAE是完全相同的,有不少模型自带的VAE是使用了其他的VAE并且只是更改了文件名称而已,实际上这些VAE的哈希值都是完全相同的。相同的VAE无需重复下载,这些完全重复的VAE除了占用宝贵的硬盘空间外毫无作用。 下面是笔者这里所有的VAE的哈希对照:(当然并不是全部,肯定还有其他的) 掌控全局:ControlNet控制网 ControlNet是stable diffusion的一个插件,它可以通过添加条件图片的形式来自定义很多内容达到自己想要的效果 扩展插件: Mikubill/sd-webui-controlnet ControlNet的保存库: lllyasviel/ControlNet 1.  ControlNet基本功能 想要使用控制网,首先需要点击启用(Enable)不然再怎么调整都是没有任何效果的(不启用怎么可能有效果) 图片位置:你可以选择需要使用的图片导入至此,用以制作模板 预处理:指你想要如何处理上传的模板图片。对应的控制网模型需要与之相对应的模板。 CN模型:选择你要使用的模型,例如人物姿态控制就需要使用openpose,想要切换图片的白天黑夜状态就需要使用shuffle,不同的模型对应不同的功能 选择优先考虑对象:给提示词更好的表现还是给控制网更好的表现 选择缩放模型:你可以类比为windows系统的壁纸,可以调整生成图和模板分辨率不同的时候如何处理。 Control Type:图上没标注,为不同模型的预设设置,很方便。 另外还有这三个选项也是很常用的:从左到右的顺序是控制网权重、控制网介入时机、控制网引导退出时机。实际效果顾名思义即可。 2.  推荐教程 我这里不可能讲解的面面俱到,而且很多内容仅停留在会用上,你可以查看一些up的视频来学习 大江户战士的个人空间_哔哩哔哩_bilibili ControlNet1.1场景氛围转换_哔哩哔哩_bilibili 我们可以炼丹了,你不觉得这很酷吗?(lora) 1. 没有脚本,炼个P 这里推荐使用秋叶的LoRA模型训练包 https://www.bilibili.com/video/BV1AL411q7Ub/ 也可以使用Kohya的训练脚本 kohya-ss/sd-scripts (github.com) 或者是HCP-diffusion(相信会用这个的大概不会来看这个入门级文章的吧) 7eu7d7/HCP-Diffusion: A universal Stable-Diffusion toolbox (github.com) 不推荐使用任何预设参数的一键炼丹炉 2. 开始训练的准备工作 ①首先你需要一个6GB以上显存的NVIDIA显卡,如果没有,可以尝试云端炼丹 ②你需要一个祖宗级基础模型sd1.5 2.0、novelai,不推荐使用任何融合模型。 ③如果使用非秋叶包,那么你还需要在webui上使用tagger插件 ④准备训练集: 训练集打标可以使用秋叶整合包中的tagger模块,也可以使用webui中的tagger插件。但是需要注意:任何AI打标都不可能100%准确,有条件尽可能人工筛查一遍,剔除错误标注 一般而言需要准备一个训练集文件夹,然后文件夹中套概念文件夹 命名格式为:x_概念tag x为文件夹中图片的重复次数(repeat) 【这个参数不在训练UI里调节,而是直接在文件夹名称上调节】 训练集是LoRA训练的重中之重,训练集直接决定了LoRA模型的性能 3. 你所热爱的,就是你的参数 ①学习率设置 UNet和TE的学习率通常是不同的,因为学习难度不同,通常UNet的学习率会比TE高。 我们希望UNet和TE都处于一个恰好的位置,但是这个值我们不知道。 如果你的模型看起来过度拟合,它可能训练Unet过头了,你可以降低学习率或更少的步数来解决这个问题。如果你的模型生成噪点图/混乱难以理解的图片,那至少需要在学习率的小数点后面加个0再进行测试。 如果模型不能复刻细节,生成图一点都不像,那么就是学习率太低了,尝试增加学习率 降低TE学习率似乎对分离对象有好处。如果你在生成图片过程中发现了多余的物品,那么就需要降低TE学习率 如果您很难在不对提示进行大量权重的情况下使内容出现,那么你就需要提高TE学习率。 更好的方法是先使用默认参数训练测试,然后再根据测试的结果来调整对应的参数。(秋叶训练包里的默认参数都是自带的) ②优化器 AdamW8bit:默认优化器,一般而言不了解/不知道测试结果的直接使用这个优化器即可 AdamW:占用显存更高,但是比8bit效果更好一点 DAdaptation:自适应调整学习率,显存占用极高。有不少人使用这个优化器来摸最开始使用的学习率 SGDNesterov8bit:极慢,不推荐使用 SGDNesterov:极慢,不推荐使用 AdaFactor:(笔者没用过)似乎效果比DAdaptation好很多 Lion:占用显存较高,效果极好,但是比较难以控制,需要bs或者等效bs大于64才能达到极佳的效果。 Lion8bit:占用显存可能更低 ③调度器设置 linear:不断下降,直到最后为零。 cosine:学习率呈余弦波形上下波动。 cosine_with_restarts:(没用过带其他人补充) polynomial:类似linear,但曲线更漂亮 constant:学习率不会改变。 constant_with_warmup:类似于constant,但从零开始,并在warmup_steps期间线性增加,直到达到给定值。 ④噪声设置 noise_offset:在训练中添加噪声偏移来改良生成非常暗或者非常亮的图像,如果启用推荐为0.1 金字塔噪声:增加模型生成图亮度对比和层次感,效果极佳建议开启 4. 过拟合和污染 ①触发词和过拟合,并没有十分严格的界定,除非一些lora是过拟到非常糟糕,直接吐原图那种。毕竟训练人物特征本身就需要一定的“过拟合” ②训练中常见污染,主要是因为打标器认不出或者遗漏(训练集质量),还有大模型的部分问题导致更容易被诱发的特征,包括: 1. 混入其中的奇怪动物。 2. 喜欢侧视和背视。 3. 双马尾/兽耳。 4. 胳膊喜欢披点东西(比如外套)。 出现此类情况可以先先检查训练集和标注,然后再更换模型测试 另外:角色的不对称特征请处理使其尽量在同一侧,且不要开启训练时镜像处理。 5. 删标法之争,没有绝对的对与错 在角色训练方面,一直有两种不同的观点 删除所有特征标:多用于多合一,优点是调用方便,一两个tag就能得到想要的角色特征,但缺点是 1. 一些特征可能受底模影响发生偏移。 2. 要换衣服和nsfw比较困难。 3. 容易出现不同概念的相互污染。 4. 提示词会不准确 删除部分特征标:仅删除多个决定角色特征的tag标注 全标:优点是提示词准确,但是部分角色效果可能不好出现(还原性较差) 是否删标取决于自己想要什么:假设说我的训练图是一个红色的苹果,如果我们标注这个苹果是红色的,那么你可以在生成图片的时候生成出绿色的苹果。如果我们只标注苹果,那么这个红色的就作为苹果的固有属性,只要出现苹果,那么就是红色的。 6. LoRA进阶训练方法 分层训练:https://www.bilibili.com/video/BV1th411F7CR/ 完美炼丹术,差异炼丹法:https://www.bilibili.com/video/BV11m4y147WQ/ LoRA BW插件:https://github.com/hako-mikan/sd-webui-lora-block-weight 模型Merge,并不科学但确实有效 1. 你权重乱了 融合模型前请先去除模型中的EMA权重: 模型在Merge后EMA将不再准确反映UNET,这种情况下EMA不止没啥用还会占用宝贵的硬盘空间 2. 传统模型merge ① 选择模型 A、B、C ②设置新模型名字 一般来说可以设置为xxxMix(xxx为你想要的名称,Mix代表融合模型) 在这里设置模型的名字。 ③设置Merge比例 传统融合有两种方式,分别为: 加权和Weighted sum:将两个模型权重的加权和作为新模型的权重,仅需要填入模型A和B,公式:A*(1-M) + B*M,倍率(M)为模型B所占比例 加上差值Add difference:将模型B与C的差值添加到模型A,需要同时填入模型A、B和C,公式:A + (B-C)*M,倍率(M)为添加的差值比例 ④选择fp16 请直接选择fp16,默认情况下,webui 会将所有加载的模型转换为FP16使用。所以很多时候更高的精度是没啥意义的,不使用--no-half这些模型将完全相同。而实际上哪怕使用--no-half,模型的差别也并不会很大,所以直接选择fp16测试效果即可。 ⑤Merge 点击它后等待一会即可,模型在你的webui根目录下的models/Stable-diffusion文件夹。 需要注意的是:传统融合效果并非比现在的mbw等操作效果差 3.  Merge Block Weighted 扩展插件: bbc-mc/sdweb-merge-block-weighted-gui 插件基本功能: 开始合并:点击后直接开始融合 清空数值:将下方的滑条全部置为0.5 刷新模型列表:刷新模型列表。在webui开启状态下,如果模型文件夹新加入了模型,那么将会无法自动识别。如果原模型区域找不到新加入的模型,那么点击这里即可刷新模型列表 模型A:选择需要融合的模型A 模型B:选择需要融合的模型B 输出模型文件名:你要输出的模型文件名称,通常为xxxMix 预设权重:官方预设融合权重,选择后直接加载进下面的滑块 权重框:输入自定义的融合权重,输入完成后点击下面的按钮直接加载进滑块 文本编码器比例:A和B模型的语义分析模块的融合比 跳过或重置CLIP position_ids键值:防止clip偏移导致模型出现各种提示词识别问题,强烈建议选择:强制重置Force Reset MBE能达到的效果: 画风更换、人体修复、剔除污染层等 更详细的MBW详解: Merge Block Weight 魔法密录1.0正式版 4.  LoRA的注入与提取 扩展插件:hako-mikan/sd-webui-supermerger插件基本功能除了MBW以外还有LoRA处理的相关功能:当然更多进阶的功能可以到插件仓库去查阅README.md,这里不做更详细的讲解。通过两个ckp大模型之间做差可以得到一个LoRA。需要注意的是这里需要在filename(option)这一栏输入想要的名称,不然无法提取 点击下面的LoRA然后在上面选择模型,就可以把LoRA注入到ckp大模型里(同样需要在filename(option)这一栏输入想要的名称,不然无法注入)。需要注意的是,这里只能注入LoRA,并不能操作Loha等一系列其他模型,如有报错请检查模型格式是否正确。 注意:部分模型做差提取LoRA后使用和原ckp模型效果差距很大,部分LoRA注入后和直接使用效果差距也会很大,具体是否可用请根据不同的模型自行测试 5. 灾难性遗忘与模型融合 限制很多模型灾难性遗忘(本来模型会的被炼到不会了)现象较为严重(排除掉lora的一些特定需求 其余的微调大部分层次的训练都可能有这个现象),而模型融合会放大这个现象。(比如模型只能出1girl) 更多的功能,更多的插件,无限的可能 注意:安装扩充功能可能会导致Stable Diffusion WebUI启动变慢,甚至无法启动,并且哪怕使用启动器也无法扫描出异常。 请不要自行下载DreamBooth的WebUI插件!!! 请不要自行下载TensorRT 的WebUI插件!!! 请不要自行下载TemporalKit 的WebUI插件!!! 请不要自行下载Deforum 的WebUI插件!!! 自行下载这些插件并且炸了的唯一最佳解决方法:完全删除并重装WEBUI 1. 用Webui图形界面安装 ①最简单的方法就是点击Extensions → Available的Load from:,就会列出可下载安装的扩充功能,点击安装 ②部分不在列表的插件,需要将Github库链接直接填入WebUI插件下载区,等待自动加载完毕即可 ③安装完成后必须点击这里重启UI网页界面(小退)才能使用,有的插件则是需要“大退”,即关闭Webui实例,重新启动。 ④更新扩展插件推荐使用启动器,而非Webui内的检查更新。webui内的检查更新大概率会卡住。 2. 使用git安装 ①(安装前需要关闭你的webui实例)在你的webui根目录/extensions文件夹打开终端,运行git clone指令,安装扩充功能。 例如: git clone https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111.git ②打开WebUI,你就会看到新安装的扩展功能 ③windows系统插件更新同样可以使用启动器进行更新 3. 使用压缩包安装 ①github界面点击【Download ZIP】 注意:请在尝试了其他安装方式并且均失败的情况下再选择直接下载zip解压 ②完整解压后放在扩展文件夹:你的WebUI所在文件夹/extensions(需要关闭你的webui实例) ③重新开启webui后能在插件列表中看到即为安装成功 4. 停用、卸载、删除插件 ①对于暂时不使用插件,点击扩展前面的✔并且重启用户界面即可 ②删除、卸载插件最简单的方法是在启动器界面点卸载(卸载插件前请关闭你的Webui实例) 请远离玄学民科 1.  说明 AI绘画使用的超低门槛与实际研究群体的超高门槛之间存在着非常严重的断层。这就意味着玄学民科的内容会非常的多。 模型理论科普V2.0.0627 这个文档反驳了非常多的玄学民科内容,然而还有更多的玄学民科内容还在等着我们去科普 2.  现状 SD目前并没有专门的交流社区/或者说即使有交流社区那么环境也是比较差的(例如猫鼠队),而一般的网站又过于简单零碎各自为阵的群聊也有一部分人在输出玄学民科内容,并且还有相当的一部分人进行吹捧。而刚接触的新人也没啥分辨能力,自然而然的会出现,玩了几个月发现自己玩的都是垃圾,或者自己也加入输出这种内容等等情况。 彻底卸载Stable Diffusion Webui 1.  删除环境/软件 python、git等软件都可以在windows系统内设置界面直接卸载,直接打开设置-应用-安装的应用搜索卸载即可 2. 删除Webui本体 直接删除Webui目录文件夹即可。 注意这里有一个魔鬼细节:请不要在windows资源管理器内直接右键删除文件夹,如果这样直接删除,那么大概率需要几个小时的时间来检索文件目录。长期使用的stable diffusion Webui本体很可能有几十万个文件,检索相当耗时。 推荐三种方法: ①打开终端使用命令行删除 ②使用FastCopy直接删除所有(注意不要点左下角的擦除&删除) ③如果你听了我的建议整个Webui相关的东西都放在了同一个盘符中,那么推荐使用快速格式化,这样删除是最快最方便的。 3. 删除缓存文件 ①Webui缓存 C:\Users\你的用户名\.cache 这其中这4个文件夹是Stable Diffusion Webui所创建的缓存文件,只需要删除这四个文件夹就可以了,多出来的文件夹是你安装的许多其他的东西。 ②pip下载缓存 C:\Users\用户名\AppData\Local\pip\cache 如果找不到AppData文件夹那么请修改文件夹选项:隐藏文件和文件夹-显示隐藏的文件、文件夹和驱动器。 cache文件夹可以直接全部删除不会影响其他的东西 Stable diffusion相关词汇表 ● artificial intelligence generated content (AIGC): 生成式人工智能 ● ancestral sampling: 祖先采样,又称向前采样 ● annotation: 标示 ● batch count: 批量数量 ● batch size: 批量大小 ● checkpoint: 存盘点,模型格式,附文件名为.ckpt。 ● classifier-free guidance scale (CFG scale): 事前训练的条件控制生成方法。 ● CodeFormer: 2022年由Shangchen Zhou等人发表的脸部修复模型。 ● conditioning:制约训练 ● ControlNet: 2022年由Lvmin Zhang发表,通过加入额外条件来控制扩散模型的神经网络结构。 ● cross-attention: 分散注意 ● dataset: 数据集 ● denoising: 去噪,降噪 ● diffusion: 扩散 ● Denoising Diffusion Implicit Models (DDIM): 去噪扩散隐式模型,2022年由Jiaming Song等人发表的采样方法。 ● Dreambooth: Google Research和波士顿大学于2022年发表的深度学习模型,用于调整现有的文生图模型。 ● embedding: 嵌入 ● epoch: 时期 ● Euler Ancestral (Euler a): 基于k-diffusion的采样方法,使用祖父采样与欧拉方法步数。可在20~30步数生出好结果。 ● Euler: 基于k-diffusion的采样方法,使用欧拉方法步数。可在20~30步数生出好结果。 ● fine-tune: 微调 ● float16 (fp16): 半精度浮点数 ● float32 (fp32): 单精度浮点数 ● generate:生成图片 ● Generative Adversarial Network (GAN):生成对抗网络,让两个神经网络相互博弈的方式进行学习的训练方法。 ● GFPGAN: 腾讯于2021年发表的脸部修复模型。 ● hypernetwork: 超网络 ● image to image: 图生图 ● inference: 模型推理 ● inpaint: 内补绘制 ● interrogator: 图像理解 ● k-diffusion: Karras等人于2022年发表的PyTorch扩散模型,基于论文〈Elucidating the Design Space of Diffusion-Based Generative Models〉所实作。 ● latent diffusion: 潜在扩散 ● latent space: 潜在空间 ● learning rate: 学习率 ● Lora beYond Conventional methods, Other Rank adaptation Implementations for Stable diffusion (LyCORIS) ● low-rank adaptation (LoRA): 低秩自适应,2023年由Microsoft发表,用于微调大模型的技术。 ● machine learning: 机器学习 ● model:模型 ● negative prompts: 负向提示词 ● outpaint: 外补绘制 ● pickle: 保存张量的模型格式,附文件名为.pt ● postprocessing: 后处理 ● precision: 精度 ● preprocessing: 预处理 ● prompts: 提示词 ● PyTorch: 一款开源机器学习库 ● safetensors: 由Huggingface研发,安全保存张量的模型格式。 ● sampling method: 采样方法 ● sampling steps: 采样步数 ● scheduler: 调度器 ● seed: 种子码 ● Stable Diffusion: 稳定扩散,一个文生图模型,2022年由CompVis发表,由U-Net、VAE、Text Encoder三者组成。 ● text encoder: 文本编码 ● text to image: 文本生成图片,文生图 ● textual inversion: 文本倒置 ● tiling: 平铺 ● token: 词元 ● tokenizer: 标记解析器 ● Transformers: HuggingFace研发的一系列API,用于辅助PyTorch、TensorFlow、JAX机器学习,可下载最新预训练的模型。 ● U-Net:用于影像分割的卷积神经网络 ● unified predictor-corrector (UniPC): 统一预测校正,2023年发表的新采样方法。 ● upscale: 升频,放大 ● variational auto encoder (VAE): 变分自动编码器 ● weights: 权重 ● xFormers: 2022年由Meta发表,用于加速Transformers,并减少VRAM占用的技术。
提示词入门教程·下篇:《元素同典:确实不完全科学的魔导书(2024重制版)》

提示词入门教程·下篇:《元素同典:确实不完全科学的魔导书(2024重制版)》

字数原因,链接上篇:提示词入门教程·上篇:《元素同典:确实不完全科学的魔导书》 除此之外还可以尝试其它不是Prompt S/R 的选项,比如用Seed 比较不同种子,用Step 比较不同步数,诸如此类。更深一步则是进行多组分析,以及通过排列组合或其它统计方法来确定多个要素之间的作用等。 如果不做定性/定量分析,那么可能将持续沉浸在知其然不知其所以然的程度,也可能仅满足于妙手偶得而产生相对片面的理解。 始终记得赛博魔法的本质是科学。 力大砖飞,超级步数出奇迹 【此部分现已不建议参考】 在上文基础部分,笔者推荐在简单情况下将步数设为不算高的数值,因为在简单画面的情况下步数过高也似乎没有什么好细化的。 但要是在一个细节稍复杂的场景里把步数做得很高很高那么会发生什么? (masterpiece), best quality, 1 girl, red eyes, white hair, white gown, forest, blue sky, cloud, sun, sunlight 不难发现画面的确变得精细了。空中的云变得更真实,人物背景从简单的树林过度到有层次的树林再变成土丘上的树林。当然,最显著的还是人物体态的变化——虽然手部的举起与放下之间似乎无法分辨出什么规律,但似乎也有着被进一步细化的情况。总得来说,简略与详细都有独到之处,是萝卜白菜各有所爱的程度,也难怪大多数情况下认为步数过高没有特别的收益... 等等。我们刚刚是不是提到了手? (masterpiece), best quality, 1 girl, red eyes, white hair, white gown, hands 人物整体在20 步就已经奠定完毕,后续步数没有显著改动,但是手却不一样。20 步的手就是一团错位的麻花,40 步虽然显得扭曲但是已经能和胳膊接上,60 步除了部分手指以外都做得不错,80 步更是在此基础上进一步降低了融化程度。虽然80 步的手也没有达到理想中的效果,但是不难发现高步数下,人物手部的表现有着明显提升。 这个结论在绝大多数情况都适用——如果想要特别细化手部表现力,那么请忽略上述步数建议,将步数拉到80 甚至更高。而进一步推论是,高步数在合适prompt 的引导下,对于大多数细小、解构复杂的区块都效果拔群,只是对于大块非复杂场景方面的营造存在显著边际效应。 魔法公式入门 首先,prompt 并不可以随意堆积,不是越多越好。 模型读取promot 有着明确的先后顺序,这体现为理解顺序的不同。比如又一个著名的“少女与壶”试验所展示的: masterpiece, 1 girl, red eyes, white hair, blue pot masterpiece, blue pot, 1 girl, red eyes, white hair masterpiece, blue pot, ((1 girl)), red eyes, white hair masterpiece, blue pot, ((1 girl)), red eyes, white hair 在种子相同且其它参数也完全相同的情况下,仅仅是颠倒了1 girl 与blue pot 的顺序,构图就产生了极大的变化。 不难发现,1 girl 在前的情况下,画面围绕着人物展开,blue pot 体现为环绕着人物的场景物件。而blue pot 在前的情况下,画面围绕着盆展开,人物反而退出了画面中心,甚至哪怕加大1 girl 权重也无法让人物比盆在画面中更重要。 这其中的原理不适合在入门魔导书中详细解释,但可以提供启发—— prompt 的顺序将影响画面的组织方式,越靠前的prompt 对构图的影响越“重”,而越靠后的则往往会成为靠前prompt 的点缀或附加物。顺序对于构图的影响在大多数情况下甚至大于权重的影响。 对于SD1.5来说可以使用早期法典时期搞出来的三段式提示词, 前缀+需要重点突出的物件/背景+人+人物特征/元素+人物动态+服饰整体+服饰细节元素+大背景+背景元素+光照效果+画风滤镜+微小辅助元素+后缀 而到了SDXL,请根据模型作者所标注的提示词顺序来进行编辑,有些人会在使用SDXL模型的时候继续沿用SD1.5的习惯格式而不用模型卡的推荐设置,这会导致出图达不到预期。请记住:在SDXL的模型中,不存在“三段式”或者所谓“4W1H”这种提示词的固定格式,一切需要按照模型卡来 当然出图达不到预期这只是现象,这实际上只是模型作者在训练的时候使用的标注格式不同。 比如kohakuXL就是使用的如下: <|special|>, <|characters|>, <|copyrights|>, <|artist|>, <|general|>, <|quality|>, <|meta|>, <|rating|> 那么我在使用其他的tag格式的时候,出图就很难达到预期(有些效果出不来,有些效果乱出)。 下面是另外两个模型的tag格式。 而最近讨论度较高的ArtiWaifu Diffusion,则是有着更严格的格式限制 奏咒术一曲蔌蔌,浩渺无声 我曾见过,你们新魔法师永不会相信的东西。在⚪山上面堆积着的咒语,在论文式长文中崩坏的结构。然而所有这些都将随时光而去,就像咒语中的音节。 一个词要见另一个词并不容易 掌握上文的顺序公式,其实也只是开始中的开始。 大致顺序固然很重要,但它太过大致了。不难发现实际应用并不是那么简单的“后者叠加在前者之上”关系,与理想中的一一对应式叠加相差甚远。 既然现实与理想不符合,那么是时候看看为什么会这样了。 试一下吧。假设现在我们需要生成一个在有着许多花的平原里的二次元美少女,这个美少女没有花发饰。假设我们同时还需要在画面中生成特别特别多的花,那么就应该给flower 一个比较高的权重,比如1.35。 masterpiece, 1 girl, blue eyes, white hair, (flower:1.35), in field, blue sky, sun, cloud 情况不符合没有花发饰的预期。事实上不仅仅是这一张图,上述咒语生成的大多数图片都会让人物带上发花装饰。这不难理解,flower 的权重过大,导致它在画面中倾向于占有更大的比率、更强的表现,迫使元素与元素被错误地绑定了——是与上文提及的元素不绑定相反的情况。 降低flower 的权重可以一定程度上解决问题,但在实际应用中,很可能出现某个物件必须要有较高权重才能达成预期效果的情况,或者权重已经非常低了依然出现这种尴尬情况。既然不可以降低权重,那还能怎么办呢? 两倍的长度,一半的意义 那么有没有办法让花也不出现在衣服上? 如果继续维持权重不可改变的限制,也不应用其它技巧,那么最简单的思考方向是让flower 和一切形容人物的咒语部分都拉开更远的距离,加上一些用于描绘其它画面元素的词就能做到。但如果情况要求不应该为画面引入新元素,就不能这么做。 注意到此时加入词的目的仅仅是为了拉开两个词的距离。但首先(虽然其实已经有些迟了),我们应当定义一下什么是“距离”。 这个数字会出现在WEB-UI 的负面咒语输入框右上角。它严格的叫法其实是这段咒语“生成的向量/token 数”,但作为不需要深究法杖炼成原理、只需要掌握应用赛博魔法师,我们只需要清楚它代表一段咒语的“物量”就行了。(在实际使用中clip的有效token数就是75,当token数量大于75的时候webui会采用clip拼接的方式处理提示词,也就是绘本分在多段clip里,我们这里的定义只要两个词跨过75、150、225……这几个点,那么就说明这两个词“距离远”) 物量可以用来衡量咒语的长度,而两个词之间的间隔物量数就是它们的距离。 新加入的词本身应该是尽可能无意义的,并且在此基础上多占用一些物量来产生距离骗过自然语言处理部分,我们将这样的词称之为占位词。诸如 what which that 等在自然语言中无明显指代对象的词都一定程度上可以用作占位词,所以当你在一些老旧的提示词中找到了诸如“//////////”这种无异于的字符,不用怀疑这就是占位词。现在我们有更好的方式来强行进行clip分段,这就是BREAK这个词的作用 masterpiece, 1 girl, blue eyes, white hair, BREAK, in field, blue sky, sun, cloud, BREAK, (flower:1.35) 花彻底从人物身上移开了。虽然AI 的不稳定性让它依然有作为服饰或发花出现的情况,但概率被进一步降低了。 占位词可以用于进一步调整词与词的距离,从而加强切割某些不希望绑定在一起的元素,是“元素污染”情况的又一有力解决方案。这就是“最简发花”试验。 词与词之间也不能毫无节制地加入占位词来降低关系。根据测试,词与词之间的关联度似乎和距离有着一定程度上的反比例关系或保底关联度,因此加入过多占位词不会有额外的好处,适量添加即可。当然占位词现在已经不再使用了,直接用BREAK就行。 而更深入的原因还可以是,WEB-UI 对于词的分割是每75 物量一组,使用占位词来略过接近75 物量的部分,可以避免连续的描述状态被切割。连续的描述状态被切割会导致无法预期的糟糕后果,所以应当避免。 赛博音节会梦见电子杖心吗 从SD 框架的自然语言处理部分可以提取出关联性和占位词的应用,而从训练集则还可以提取出其它知识。 如上文所述,NAI 的重要训练来源是danbooru.donmai.us,而其它绝大多数模型也或多或少与这个网站的素材有所关联。如果各位赛博魔法师们真的前去调查了它的tag 标识,那么不难发现一些有趣的现象——许多tag 有着逻辑上合理的“前置”关系,比如存在sword 这个tag 的作品往往还存在weapon 这个tag、存在sleeves past finger 这个tag 的作品往往还存在sleeve past wrists 这个tag。 这样在训练集中往往共存且有强关联的tag,最终会让模型处理包含它的咒语时产生一层联想关系。 不过上述联想关系似乎不够令人感兴趣,毕竟这些联想的双方都是同一类型,哪怕sword 联想了weapon 也只是无伤大雅。那么是否存在不同类型的联想呢? 答案是存在的: masterpiece, 1 girl, blue eyes, white hair, white dress, dynamic, full body, simple background masterpiece, 1 girl, blue eyes, white hair, white dress, (flat chest), dynamic, full body, simple background 不难发现flat chest 除了影响人物的胸部大小之外还影响了人物的头身比,让人物的身高看上去如同儿童身高一般,如果调整画布为长画布还会更明显。因此称flat chest 与child 有着联想关系。人物胸部大小和身高是不同的两个类型,两个看似类型完全不同的词也可以产生联想关系。对flat chest 加大权重,会让这种联想关系会表现地更为突出。 它的原理和上述同类型的联想一样,都是训练来源导致的。平胸美少女和儿童身高在同一个作品内出现的概率非常大,而模型训练的时候又没有很好的进行区分。这种联想关系在社区中曾被称为“零级污染”。除此之外最为常见的还是再CF3模型里,rain提示词必定会出现伞这一现象。 掌握了联想关系的知识之后的用途仅限于灵活应用它来更准确地营造画面,联想词之间极易互相强化,进而提高画面的稳定性。例如给人物稳定添加一把剑的最好做法不是仅加上sword,而是加上weapon, sword。同理,其他存在强联想且希望出现的元素也可以同时在咒语内连续出现。 为了在画面内取消两个词之间的联想,最简单但不一定有效的做法是将被联想词写入负面咒语并加上较高权重。如果没有效果,那么不妨试一试在咒语内加上被联想词的对立面,比如用aged up 对抗flat chest 对于child 的强联想。 向着魔导科学的最根源 嘟嘟嘟——魔导列车启动啦!请各位乘客注意安全,系好安全带,防止双轨漂移时被甩出车gdjhgvdjkhgvdfhdgvjfhhd 重新解析咒语构成 既然上文补充了标准顺序公式遗漏的细节,那现在能不能让它再给力一点? 当然能! 无数个疑问都指向了由词性分析与联想关系理论所引发的新思考方式。既然用于描述一个元素的词与用于描述另一个元素的词之间的距离会影响叠加的程度,那么不如直接将一切元素与其对应描述词的组合都抽象为一个“物”。人是一个物,人身上的一些小挂饰也是一个物(无论这个挂饰的数量是多少),背景里的建筑也是一个物,诸如此类。物! 每个物都有能力成为主要描绘对象。如果是人,那么可以是人的立绘或特写,如果是挂饰,可以是它的展览模样,甚至背景大建筑也可以成为全景的视觉中心。而当画面中存在多个物时,将不可避免地分出主要的物和次要的物,次要的物还可以有相对它而言更次要的物。这和此前的基础顺序公式不同,因为基础顺序公式默认一切事物都可以互相叠加——但事实证明不是那样。 无法被叠加的次要物 不难注意到有些“物”像是无视了叠加式构图原则那样,除非权重高到让它占满屏幕,否则往往只能作为配角存在、难以被其它“物”作为叠的目标。这些“物”天生有着被视作次要的特征,和许多能做主能做次的物并不相同。 那么什么因素决定哪些物更倾向于被视为次要呢?终极答案是生活经验。 当1 girl 和earring 简单结合时,无论两者谁先谁后,最后都会变成“一个二次元美少女带着耳环”的样子,不会在简短描述下就轻易地出现诸如“美少女向前抬手捧着耳环、耳环在镜头前是一个特写、美少女的身体被景深虚化”的情况。因为在我们的生活常识中,大多数这两个“物”结合的情况都是前者,后者在作品描绘里出现的情况极少,因而这两者即使是顺序调换也只是让美少女是否摆出展示耳环的姿势,无法轻易地切换主次(继续深讲就到训练集的部分了,虽然它的本质是训练集与LatentDiffusion 对于自然语言的处理,但考虑到大多数组成训练集的作品都取自于生活经验/ 常见创作想象,且自然语言处理本就是努力拟合生活经验的过程,所以实际上并无明显不同,因而在此打住话题) masterpiece, 1 girl, earring masterpiece, earring, 1 girl 但当1 girl 和lake 结合就不一样了。lake 虽然往往被当做背景,但它完全可以成为风景画的主要描述对象,所以在除去刻意设置了镜头的情况下——当1 girl 在前,重要的“物”为人物,所以画面往往会让人物占据主要部分(包括人物全身像站在景物前、人物半身像加远景,甚至人物直接泡水),而当lake 在前,重要的“物”为湖,湖在我们的生活经验中的确可以成为主要对象,因此画面往往会让人物显得更小、更融入风景或距离视角更远。 masterpiece, 1 girl, lake masterpiece, lake, 1 girl 当“物”的数量大于2,这个规律也依然适用, 1 girl 和lake 和bike 以及earring 之间的排列组合符合上述情况:earring 总是忽略顺序作为次要装饰在人物的耳边,人物、湖、自行车则根据顺序不同而有不同的强调位置,其中bike 即使靠后也往往不会过度隐入lake。 masterpiece, 1 girl, lake, bike, earring 但更重要的是,运用得当的次要物可以一定程度上打破叠加式顺序结构。因为AI 会努力把所有咒语中的内容都画出来,而次要物们恰好大多数是小块结构。在如第二张图一样的远景中画出让earring 被AI 认为是不可能的,所以它会强行打破叠加式结构,让人物被聚焦到画面相对更前的位置,作为对次要物的强调。 masterpiece, lake, earring, bike, 1 girl lake 在前,但是效果更接近于想象中lake 在后的情况。在这种强调情况下,甚至1 girl 在前也无法让它显著地再次提高强调。 masterpiece, lake, 1 girl, earring, bike 无论怎么说,它从原理和实际表现效果都和人有(一点点)相似之处。虽然AI 绘画看上去是一步成型,但它一定程度上还是会根据“物”与“物”之间的关系来决定构图,并结合场景与反常情况无视部分顺序。 其中“物1、2、3...”是逻辑上能轻易成为主要聚焦点、占据大画面比率的物件,“次要物”则反之。物按照希望的构图主次顺序排列,而将次要物顺序放在其附着对象之后是为了结构简洁明确,也是为了避免超出预期的反常强调。 “次要物”往往都具有能以各种存在形式附着于多种主要物件之上的特性,因此单个主要物的多个次要物按顺序集群排列,有助于避免相对重要的次要物错误绑定的情况。 归根结底,这就是训练集“不平衡”造成的,除非自行训练,不然很难避免这种情况的产生 当然了,再往后我们甚至就可以推导出NAI1.0训练的时候提示词大致的顺序了,这再很多其他模型上是并不适用的,《元素同典》之前是编辑再nai1的时代,很多东西都是围绕nai1这一个模型来研究的。 是结束也是开始 以上内容显然也不是一切的答案,毕竟它标志的是入门而不是大成——本魔导书所详细解释的一切内容都是入门级内容。它更像是对于如何理解AI 运作方式的思考帮助,而不是能无脑解决所有难题的万用工具,实际操作依然需要更多经验总结来灵活变通。 但仅仅是入门也许并不能满足某些有着雄心壮志、求知欲强的赛博魔法师。赛博魔法似乎无法被穷尽,该如何再次启程呢? 这里不作过多展开,仅留下一些思考线索: 长咏唱能绑定元素,但为什么它的不稳定度反而比其它咏唱方式还高? 分步绘画的画面在分步前后之间有什么关系? 为什么分布绘画能一定程度上“识别”从何处替换物? 每1 step 在不同完成度下对于AI 而言到底意味着多大的变化? 不同种子同咒语的镜头为何在绝对意义上频频产生混乱? 叠加式构图中“叠加”的根源是什么? 当一个prompt 含有多个元素意义时,AI 会如何对颜色、形状等分别处理? 为什么超高步数可以修手?为什么修手一定要那么高的步数? 权重到底意味着什么?数量?画面占比?结构复杂度? 重复输入prompt 到底意味着什么? 单个单词也会被拆分吗? ...... 魔法的殿堂恢宏而瑰丽,无尽的回廊里昭示着无限的可能性。 朝更远处进发吧。 ♿ 蚌埠感言♿ 非常感谢各位的观看,但是非常感谢,总之非常感谢。 前面忘了,中间忘了,后面忘了。 一开始这本魔导书是一位可爱JK的个人经验集,但后来又不知道怎么回事莫名其妙变成了为新人提供从入门到精通的一条路径。又更后来,笔者仔细想了想,世界之大无奇不有,五花八门的技巧总会迭代,我们何德何能敢说读完这一本就算精通啊?所以就变成了从麻瓜到入门() 安装、第一句话、注意事项、技巧补充、公式总结,一切都是那么水到渠成。有许多技术都是随着本魔导书的编写一同被研究而出的,就比如标准顺序公式、分步描绘应用和通用顺序公式。当时笔者还在群内说,通用顺序公式就是入门时期的最强武器了,写完通用顺序公式就结束吧,这个阶段也没什么可写的啦—— 结果,就在2022 年11 月2 日晚上20 点左右,笔者为这魔导书编写感言的时候,关于emoji 的认知出现了。这确确实实是打乱了一切,我们都绷不住了。紧急加章之后,在“啊差不多得了,这个世界还是毁灭了算了吧”这样的想法之下,我们为这本确实不完全科学的魔导书重新写下了另一版感言——也就是你现在正读到的这一版。 😅 抱歉,流汗黄豆请不要出现,我们讨厌你。 总之,这本魔导书在这里也算是完结了,感谢所有在编写过程中支持笔者的大家。我们下一本典(也许没有)再见! 当然,某种超自然神秘的力量促使我在2年之后的2024重写这一样一本AI绘画提示词的入门文档。那可能是法典组所践行的,“开拓”的意志吧
真正的立绘法——AI生成立绘图方法

真正的立绘法——AI生成立绘图方法

模型:【立绘法】VUPportrait/l2d立绘- A33 |吐司tusi.cn 站内小工具(只能达到25%的效果):虚拟主播人设设计|吐司tusi.cn 推荐模型&展示图片 【均为本人粗制滥造随机出图,部分细节问题可通过图生图修改(例如:手、头发的错误)】 旧的AnythingV3(FT)模型:(已删,想要此效果可以尝试AnythingV5) 新的VUPportrait/l2d专用模型:(推荐,更便于拆分和后续制作) 【立绘法】VUPportrait/l2d立绘- A33 |吐司tusi.cn 目前只推荐使用A3.33/VUPportrait专用模型其余社区模型均不建议用于AI立绘制作。如果使用其他或者旧模型,会出现各种问题(例如经典的“怀旧服”“AI画风”,或者其他不可控因素) 制作方法 ● 提示词: 非lora立绘法起手式:(注意这里请不要使用立绘lora) official art,1girl, simple background,[(white background:1.5)::0.2],open-mouth,(whitebackground:1.2)+具体人设tag 想加的可以加一个加个(实际上加不加都行)<lora:charturnbetalora:0.2>这个lora,在秋叶视频有这个lora的分享 ● contronet设置 其次是对应的contronet设置,具体参数如下图所示,预处理选无,模型使用openpose,模板图在最下面,分三种体型 在吐司工作台就选择点击controlNet选择openpose直接上传控制图就好了 ● 其他设置 采样方式随意,目前测试Euler和DMP一系列还有UniPC都是没啥问题的 必须开启高清修复,放大倍率推荐为2,重绘倍率开0.6以上 输出图尺寸推荐为320*640放大后为640*1280 【也可以跟图中一样,放大倍率4,输出尺寸160*320。放大后统一为640*1280】 附带图片 体型分别为:萝莉/少女(少年)/成女(成男) AI面补 这里附带AI面补的相关内容,效果并不是很好,有条件请自行制作模型 yuyuyzl/EasyVtuber: tha3, but run 40fps on 3080 with virtural webcam support (github.com)
提示词入门教程·上篇:《元素同典:确实不完全科学的魔导书(2024重制版)》

提示词入门教程·上篇:《元素同典:确实不完全科学的魔导书(2024重制版)》

前言 元素同典:确实不完全科学的魔导书【原文】如下,本文章内容大量借鉴/引用元素同典原本的内容,故本问内容所有资料同样均可被自由引用。最终解释权归元素法典策划组&千秋九所有 元素同典:确实不完全科学的魔导书 这是一篇提示词指南,旨在为刚刚接触AI绘画 的萌新快速上手AI 作画。 笔者(在本处与下文代指本文的所有笔者)将简单分析 parameters 中乱七八糟的基础逻辑和应用,如有错误或疏漏之处,也请多多包涵,或者直接对元素法典策划组进行发癫也行。欢迎各位在批注中留下对于本文的建议/意见。 本文基于无数高阶魔法师的经验与对 parameters 相关的内容进行挖掘所得成果总结而成,且包含许多个人理解和主观观点。非常欢迎各位前往元素法典交流群讨论。 由于本魔导书内容较多且篇幅较长,请妥善利用目录功能及文档内搜索功能寻找需要的资料。 准备工作:神奇AI绘画在哪里? 本段内容直接复制Stable Diffusion潜工具书的内容,不想看可以不看,“透明版本”链接: Stable Diffusion 潜工具书 ● SD WebUI 有能力的可以自行部署stable dffusion相关UI,不过一般而言更推荐下面的整合包(工具) - git仓库AUTOMATIC1111/stable-diffusion-webui SD WebUI秋叶整合包与SD Webui绘世启动器 - 【AI绘画·11月最新】Stable Diffusion整合包v4.4发布! - 【AI绘画】绘世启动器正式发布!! SD WebUI秋叶整合包A卡适配版 - 【AI绘画】Stable Diffusion A卡专用整合包(DirectML) SD WebUI贴吧一键整合包 搭载了dreambooth等插件,方便的自己炼制大模型(最低要求12G显存)。能够有效避免自行安装dreambooth插件时出现的各种问题。同时贴吧整合包适配A和和I卡,更方便使用 - WebUI | SD - WebUI 资源站(123114514.xyz) WebUI设置、预设文件搬迁(更换整合包) - 【AI绘画】换整合包/自部署WebUI如何搬家设置与模型? ● ComfyUI - git 仓库:comfyanonymous/ComfyUI: The most powerful and modular stable diffusion GUI with a graph/nodes interface. SD Comfy秋叶整合包: - 【AI绘画】ComfyUI整合包发布!解压即用一键启动工作流版界面超多节点☆更新☆汉化秋叶整合包 SD ComfyUI 无限圣杯AI节点: 无限圣杯工具是由只剩一瓶辣椒酱-幻之境开发小组开发的一款基于SD ComfyUI 核心的Blender AI 工具,它将以开源&免费的方式提供给blender 用户使用。 - 无限圣杯AI节点(ComfyUI) 使用者手册(shimo.im) Comfy的其他整合包/工作流: - 懒人一键制作Ai视频Comfyui整合包AnimateDiff工作流_哔哩哔哩_bilibili Comfy使用其他模型 - city96/ComfyUI_ExtraModels: Support for miscellaneous image models. 书写你的第一段咒语 当代赛博法师使用电子魔杖、虚拟魔导书来无中生有创造出美丽的图案,尽管更多人可能认为我们在成为弗兰肯斯坦。 咒语是什么? 在AI绘画中,我们使用一段prompt 来引导AI 使用“噪点图”反向扩散从而召唤出我们最后的图像。 Prompt (提示词,又译为关键词)通常由英文构成,主要内容为以逗号隔开的单词/词组/短句(二次元模型),有一些模型可以使用自然语言进行描述。除了英文之外prompt 还可以识别一些特殊符号。 AI 会通过寻找符合关键词描述的方向而有明确指向地去噪点(diffuse)。同样,如果包含Negative Prompt(负面关键词),AI 就会尽可能避免含有负面相关要素的部分。换句话说,prompt 就像是哈利波特里面的咒语,它直接决定了最终我们会得到什么。 AI 对于关键词的辨识以从前到后为顺序,以逗号为分割。对于基本操作,可以以大括号、小括号、中括号调整权重。在 WEB-UI 中,小括号增加为1.1 倍权重,中括号减弱为0.91 倍权重(相当于除1.1),多次嵌套括号效果相乘。但大括号在WEB-UI 中默认并没有用,在NovelAI 上则会增加为1.05 倍权重。 Cheat sheet: a (word) - increase attention to word by a factor of 1.1 a ((word)) - increase attention to word by a factor of 1.21 (= 1.1 * 1.1) a [word] - decrease attention to word by a factor of 1.1 a (word:1.5) - increase attention to word by a factor of 1.5 a (word:0.25) - decrease attention to word by a factor of 4 (= 1 / 0.25) a \(word\) - use literal () characters in prompt With (), a weight can be specified like this: (text:1.4). If the weight is not specified, it is assumed to be 1.1. Specifying weight only works with () not with []. If you want to use any of the literal ()[] characters in the prompt, use the backslash to escape them: anime_\(character\). On 2022-09-29, a new implementation was added that supports escape characters and numerical weights. A downside of the new implementation is that the old one was not perfect and sometimes ate characters: "a (((farm))), daytime", for example, would become "a farm daytime" without the comma. This behavior is not shared by the new implementation which preserves all text correctly, and this means that your saved seeds may produce different pictures. For now, there is an option in settings to use the old implementation. NAI uses my implementation from before 2022-09-29, except they have 1.05 as the multiplier and use {} instead of (). So the conversion applies: their {word} = our (word:1.05) their {{word}} = our (word:1.1025) their [word] = our (word:0.952) (0.952 = 1/1.05) their [[word]] = our (word:0.907) (0.907 = 1/1.05/1.05) See https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features for full details and additional features. 因此,一针见血的关键词才是我们所需要的,不建议咏唱不必要的咒语音节。 擦亮你的法杖 工欲善其事,必先利其器。 伏地魔都会追随老魔杖,那赛博法师又怎能不入乡随俗? 在AI绘画中,如果说prompt 是咒语,那旁边的参数面板就是法杖。 这一些参数就是你的杖芯、杖柄,或许还有其他世界穿越来的附魔也说不定? 选择你的采样方法与调度类型:Sampler & Scheduler 开始调整所有参数之前,请选择你的采样方法。“请选择你的捍卫者”。 WEB-UI 都内置了许多采样方法,包括且不限于最常用的Euler A 和Euler, 以及原生默认的LDM 等 。 采样方法组成了图片生成的第一大要素,它决定同样的prompt 下AI 会选择以何种方式去噪点化以得到最终图片。同时,它还会决定运算速度。 其中,你是否注意到某些采样器名字里带了一个字母a: Euler a / DPM2 a / DPM++ 2S a。这些就是Ancestral 采样器,这些采样器会在每个采样步对图像添加噪声,就是其采样结果图片不会收敛。 调度类型简单而言就是去噪速度。常见的调度类型有:Karras / Sgm_uniform / Exponential / ddim_uniform……,目前推荐使用Exponential 方法,可以得到更好效果。 迭代数量/采样次数:Sampling Steps 首先,在介绍关于迭代的理论之前,需要说明的是迭代并不总是越多越好。 对于不同的模型也有不同的理论: 例如 DPM A 和Euler A 都是所谓的非线性 迭代方法,它们的结果并不会因为迭代增加而无休止地变得更加优秀,在大于一定的迭代值之后反而质量会快速下滑。 而DDIM / Euler 等线性 迭代方法则恰恰相反,质量往往依托于迭代的次数。但也存在边际效应的问题,当迭代大于一定程度时,再增加迭代次数也不会让画面产生显著变化。 因此,实际使用时往往需要根据画布大小和目标是否复杂来综合考虑。对于正常画布,使用Euler A /UniPC 等低数要求算法的迭代次数通常推荐 12 或以上(笔者本人一般使用Euler A 20Steps),而使用DPM2 A 等高步数要求算法则往往要求更高一些。使用LCM等优化方式,迭代次数可以非常低,部分模型甚至可以“一步出图” 我的魔导书在哪里? 咒语的基础理论已经了解了,但此时此刻我们对于魔法的释放还是一头雾水:哪里去获得prompt?又有哪些prompt 是我们真的需要的? 在最理想的情况下,一位赛博魔法师首先应当试着去理解danbooru.donmai.us,这是NAI 和一些二次元模型的重要训练来源,也是绝大多数关键词的出处(至少覆盖80%+),所以在里面找到的引用数大于2000 的tag 在绝大部分二次元模型里基本都可以直接当作prompt 使用往往都能出效果,你甚至还能发现诸如颜文字当做prompt 的惊人用法——而这都是可行的。但danbooru 的访问需要跨越屏障,较为不便。 而除此之外还应该自己去收集可以用做prompt 的材料,但是一个人上路太孤独了,拿着这把全村最好的法杖吧! Stable Diffusion 潜工具书 去寻找各种各样的帖子或者指南。抽丝剥茧地借鉴前人经验,批判思考地获取其中的精华(前人可能会因错误习惯而被干扰),也能得到不少效果很棒的prompt。 闭目凝神,咏唱咒语 总而言之,你查阅资料或突发奇想,得到了一些咒语。将它填入第一栏,然后再在第二栏填入随处可见的通用反咒(Negative Prompt),点击Generate,你的第一段咒语就完成了(笔者在此演示最简单的召唤术): masterpiece, 1 girl, cute face, white hair, red eyes 以防有人没查到——反咒是: 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, bad feet 如果充分理解了前文内容,并且咏唱地不那么夸张,那么第一次施法往往将无惊无险地获得成功。现在你已经脱离麻瓜范畴,拥有成为魔法学徒的潜质了,向着魔法的大门前进吧! 咒法二次不完备进阶 Once we accept our limits, we go beyond them. 我们至今为止的所有努力,并非全部木大。 权与重 上文提到了关于()、[] 的使用。以防刚把魔杖捂热的新魔法师看到这里已经忘了它们是什么意思—— 一对小括号意味着把括起来的prompt 权重* 1.1,中括号则是/ 1.1,大括号在WEB-UI 中无调整权重作用,且会被作为文本而解析。 如果因为某些需求而要大量抬升权重,可以对prompt 进行多次括号,比如((((prompt)))),这意味着将它的权重* 1.1 四次,也就是1.4641。但这个写法太吓人了,数括号也很浪费时间,所以应该直接为一个prompt 赋予权重: (prompt:权重乘数) 外层一定是小括号而非其它括号。比如(red hair:1.5) 将直接给red hair 赋予* 1.5 权重,清晰简洁,便于自己回顾和他人理解,强烈推荐。 但务必请不要做出诸如((red hair:1.5)) 的奇怪写法。虽然在大多数情况下,它们的确会产生互相叠乘的正常效果,但在某些离谱的情况下则会导致权重无效。 而除了整词权重之外,也可以进行部分权重,比如如下例子: 1 girl, white long (messy:1.2) hair, red eyes 将专门对messy 部分赋予* 1.2 权重,其它部分不受影响。 高权重的元素会在画面中有着更大的占比或更强烈的存在感或更多的数量,是能可观地影响构图的原因之一。笔者非常不建议给出十分离谱的权重值,这个也包括负面权重,三个小括号也只有1.3 左右,而一般来说1.6 就已经很极端了,再高至例如2.0 只会在大多数情况下让咒语变成召唤古神。 高级咒术解析 上述的小括号、中括号与带权重小括号都属于低阶语法,比如(((prompt)))。而接下来要介绍的是更长更复杂一些的高阶语法。 高阶语法都以[] 作为外层包括,包括分步描绘、融合描绘两种,使用高阶语法时这一对中括号不会让权重降低。高阶语法内可以嵌套低阶语法,低阶语法内也可以嵌套高阶语法——但为了交流方便不建议嵌套,高阶语法之间能否互相嵌套因具体情况不同而异,下文会做出介绍。 下列介绍全部基于编纂本篇时推出的最新版 WEB-UI,对于Comfy 或较远古版WEB-UI 可能不适用。 首先介绍分步描绘的各种形式: [from:to:step] [from::step] (to 为空) [:to:step] (from 为空) [to:step] (奇怪但没问题的格式,非常不建议) 它的作用是让prompt 在达到 step 之前被视为from,在达到后视为to。若是在对应位置留空则视为无对应元素。step 为大于1 的整数时表示步数,为小于1 的正小数时表示总步数的百分比。 比如a girl with [green hair:red hair flower:0.2] 会在前20% 步数被视为a girl with green hair,在后80% 步数被视为a girl with red hair flower。需要注意这两个描述之间的兼容性和覆盖——在步数合适的情况下,最后形成的人物会拥有绿色头发和红色花饰,但也可能因为颜色溢出导致头发也变为红色,毕竟后80% 没有绿色头发的限定,AI 完全可以自己理解一个随机的发色。 在最新版中,分步描绘可以嵌套,形如[from:[to:end:step2]:step1] 的语句是可以被正确识别的。且分步描绘现在支持逗号分割,形如[1 girl, red hair: 2 girls, white hair:0.3] 的语句也可以被正确识别。 分步描绘不特别擅长细化细节,与其分步描绘不如将细化部分直接写入持续生效的部分。分步描绘更擅长在画面初期建立引导,大幅影响后续构图或画面生成。 需要注意的是,分步描绘具有视觉延后性——当要求AI 在比如第20 步开始描绘另一个不同的物体时,可能在比如第24 步(或更晚)才能从人眼视觉上感知到另一个物体勉强出现在画面中。是因为steps的原因,很多时候前面的step,人眼可能是看不出来新的事物的(这跟你不开启LCM等加速的情况下step开到5以内是一个道理)。 然后介绍融合描绘的两种形式: [A | B] 它还有可无限延长版: [A | B | C | ...] 对于形如[A | B] 的第一种,AI 将在第一步画A、第二步画B、第三步画A...交替进行。而对于无限延长版,则变为第一步画A、第二步画B、第三步画C...循环往复交替进行。 融合描绘不可嵌套,但同样支持逗号分割。融合描绘擅长将两种事物混合为一起,比如a [dog | frog] in black background。 这两个高阶语法有着明显的区别,尤其是在高步数下更不可以一概而论。分步描绘的40 步A 再加上40 步B 最后可能形成一个带有B 基底特征的A,但它会表现出明显的分立感。而融合描绘的40 步A 再加上40 步B 最后将形成简直像是化在一起的融合体。 短元素,中元素与长元素 咏唱大致有着三种不同形式——最常见的直接咏唱、稍不常见的短句咏唱和堪称行为艺术一般的长咏唱。 假设要生成一个有着黄色头发、蓝色眼眸、白色上衣、红色裙子、黑色裤袜的全身坐姿二次元美少女,且强调服饰颜色,那么这三种咏唱分别看上去大概是这样的: 直接咏唱(pitch 式咏唱): masterpiece, best quality, 1 girl, (blue eyes), (yellow hair), (white clothes), (red skirt), (black leggings), sitting, full body 短句咏唱(AND 强调咏唱): masterpiece, best quality, 1 girl, (blue eyes) AND (yellow hair), (white clothes) AND (red skirt) AND (black leggings), sitting, full body 长咏唱(自然语言咏唱): masterpiece, best quality, (1 girl with blue eyes and yellow hair wearing white clothes and red skirt with black leggings), sitting, full body 注意短句咏唱的AND 必须是三个大写字母,AND 两侧的小括号是不必要的(但建议加上),这是一个专用语法。此外,该语法并不能应用于所有采样方法,例如DDIM 就不支持AND,会导致报错。 我的法杖不听话了? 有的时候会返回黑色图片或者直接没了,黑色图片俗称黑图。 图直接没了的最简单直接的原因是显存爆了,查看后台是否出现类似于CUDA out of memory,如果出现那就真的是显存爆了,提高配置或降低画布大小吧。 不过在更多时候,法杖不听话的表现并不是黑图。例如在比2k*2k 稍小一些的1.2k*1.2k 画布中,可能会出现如下情况: masterpiece, 1 girl, white hair, red eyes 明明要求1 girl,但为什么它生成了2 个人? 简单来说就是图太大了,超过了模型适合的使用范围。但对于这段如此简单的咒语而言,将画布缩减为1.2k*1.2k 依然显得有些太过自由了。画完一个美少女之后该怎样填充剩下的画布呢?AI 可能会使用纯色背景、构筑一个简单的空间,但它更可能会做的事情是——把已有的东西重复再画一份。(如果往深处讲,那就要涉及到目前SD 训练模型时的方法导致目前AI 的局限性。SD 训出来的模型其实并不理解数字,对于AI 而言1 girl 和2 girls 并不互相冲突,再加上懂得都懂的那些训练集里的各种共有tag 会给它们一定程度上的联系,所以在无物可画但必须要填充画面时倾向于多画一份。) 所以要解决这个问题也不难。减小画布,限制它的自由度即可。 masterpiece, 1 girl, solo, white hair, red eyes, black gown, in room, chair, vase, red carpet High res. fix 也能解决此类问题,但它是利用先在小分辨率渲染再放大到目标分辨率的方法。最符合字面意义的做法还是直接从根源下手。 最后是一些碎碎念... 不必为每个prompt 都加上过多小括号来提高权重,如果你发现你真的需要给绝大多数元素都加上四五个小括号才能让你想要的东西确保出现,那么更建议酌情普遍删掉一些括号,改为拉高CFG Scale ,比如12 甚至14。在极端情况下,给单个prompt 加上过多权重,可能会导致古神。 除非明确清楚重复prompt 意味着什么、且有强烈的对应需求,否则不建议重复输入prompt。重复输入prompt 的语义相当复杂,不在入门范畴内。 不必保持如此神秘的敬畏... 既知が世界だ,未知はいらない! 未知的,不需要。已知的,才是世界! 魔法的极致或许是科学 了解各类prompt 的存在并不意味着就掌握了一切,摘抄别人的prompt 囫囵吞枣地使用也不是上乘。如果想要让AI 创作出更佳的作品,那么还需要深入了解各个prompt 到底有着何等作用,以备日后使用。各个prompt 之间的互相影响如同魔法反应一样,大多数情况下并不像是仅仅简单字面意义上的互相叠加那样简单。 举个例子,比如an extremely delicate and beautiful girl 其实就会导致不少风格化表达被覆盖;而light 用作颜色在很多情况下不是指淡而是发光,甚至在某些稀有的组合里还专指黄光;让一个角色手上握着武器可能不仅仅要holding weapon 还需要加上weapon 本身,诸如此类。 因此,各类科学分析方法甚至是研究方法都是有必要的。 元素魔法?定性定量分析法! 授人与鱼不如授人与渔。 对于同一组prompt 而言,魔法师们常以良品率作为无意识的定性分析的结果,但对于其它方面也可以进行分析,比如单个prompt。 SD 模型基于种子(seed)来进行生成,如果条件都相同,则生成的图必然相同。利用这个特性可以对不同的prompt 进行定定性分析,填写一个种子,固定其它参数,固定绝大多数prompt,然后调整/添加想要测试的那一个prompt,来确定它的作用、效果。 想知道一个prompt 是否真的有意义吗?是否真的有传言所说的种种作用?它和某些组合的搭配真的很好吗?来定性分析它吧。 介绍如何使用Script 中的X/Y plot(X/Y 坐标图)来辅助分析。注意seed。 在输入框输入等待被替换的prompt,然后使用X/Y 的Prompt S/R 功能。 在右侧的X values 中进行填写。第一个prompt 是被替换位点,而后面的则是希望替换为的prompt,最后生成即可得到结果。 字数限制请看下篇:提示词入门教程·下篇:《元素同典:确实不完全科学的魔导书》
给所有想学习AI辅助绘画的人的入门课

给所有想学习AI辅助绘画的人的入门课

重绘学派法术绪论 V1.X 本文档是基于【腾讯文档】重绘学派法术绪论1.1更改的Invoke版,相比于WebUI,InvokeAI更加的适合专业的AI辅助绘画。本文将会基于InvokeAI V3.7.0的UI界面讲解,是AI辅助绘画的入门级文档。在修习本课程之前,请确保你已经修习过了了提示词基础,或者已经会使用你接下来将要使用的模型(提示词格式正确,且可以根据自己的想法进行图生图) 警告: 在本地部署使用过程中请时刻关注你得GPU/硬盘等硬件状态,并在必要的时候强行停止AI生成以防止您的GPU/其他设备损坏。 本文档内容完全公开、免费,InvokeAI为开源软件。如发现有人售卖此文档或此文档的部分内容、售卖Invoke安装包/整合包或所谓“破解版”,请立即退款并举报商家。 文档基于公开材料和经验编写,作者不对内容准确性负责。 另外因您的数据的产生、收集、处理、使用等任何相关事项存在违反法律法规等情况而造成的全部结果及责任均由您自行承担。 前言: 图生图时常被轻视,有人觉得不稳定,有人觉得效果差,还有人觉得它难以控制,不像正统文生图那样确定,因此有兴趣的人愈少,使用者更是寥寥。 然而重绘学派的实际价值却并不低,相反,它还能做到更多单纯文生图做不到的事情。借助图生图,可以在AI随机的海洋中强行撞出一条路来,能化不可能为可能。重绘,实际上就是借助更多的输入、借助对输入图片预先的修改、借助在AI生成过程中的人工干预,达到一种介乎人与机器之间的效果,使其逐渐倾向于能够精准控制,这是图生图的本质,而重绘学的终极——其实是手绘。想象你可以具体到单独控制每一个像素点,这不就是人工绘画吗? 不过重绘毕竟是介于两者之间的,不是人人都有绘画的天分,但人人都有的基本智能——光这就已经超出了机器太多。只要将其赋予一部分给AI,给它一把推力,人机协同便能产生1+1>2的效果。 本文将分为三个部分,分别从工具、应用、研究三部分讲述重绘学派的基础,其中工具部分不讲具体运用,只讨论使用方法;应用部分以课题的方式展开,通过几个具体案例,提供几种用法的参考;研究部分是一些对于重绘法术中不明晰的地方的探讨。如果仅仅希望了解如何使用,那么可以只读前两章;如果希望灵活使用,则不要局限于第二章的用法,应该将各种材料有机的结合,开发自己的用法。若有问题,可查阅研究部分-常见错误一节。重绘学派法术变化万千,恕本文不能一一包含。 落辰星2023年7月1日 工具部分 1. invokeAI:工欲善其事必先利其器 1.1. InvokeAI invoke是一个线上可用,带有本地部署UI的开源软件,线上使用需要付费且很贵。本地部署则需要使用自己的显卡,推荐使用RTX4090。 本地UI链接:https://github.com/invoke-ai/InvokeAI ● 硬件需求 说明:最低推荐配置的意思是配置低于这个就完全不建议入坑AI绘画了,如果强行想要使用,有些也是没问题的,但是还是建议硬件水平低于最低推荐配置时更换为更为强劲的硬件。当然使用云端部署也是没问题的(纯新人建议使用windows server) ● 软件需求 Linux:用Linux当主力系统的还用我教? Windows:最低要求为Windows 10 64比特,请确保系统已更新至最新版本。windows7就不要想了,建议直接升级到win10/win11 macOS:没用过,不会 当然,你部署好Invoke的第一步,大概率是想要调成中文:(在这里调) 1.2. 推荐模型 SDAS Prem:https://tusiart.com/models/697051880532204841 ANYT Simpler:https://tusiart.com/models/647970544756545190 暂时不推荐使用别的模型,暂时不推荐使用SDXL的模型 2.文生图:有总比没有强 传统的文生图,如果你学习过AI绘画,那么应该会非常熟练的调整这些参数。虽然这里的图生图可以调整的东西,以及相关的插件或者其他,都不如使用Webui,但是也够用了,没必要单独再开一个webui来处理文生图 3.图生图:最简单的重绘工具 图生图是最简单的重绘工具,讲解将从这里开始,首先,我们来看看图生图的界面: 界面中间的左侧是上传参考图的位置,支持直接拖入,也可以从右侧的历史记录里拖入,最左侧是生成的图片 ①为生成尺寸设定,当拉动拉条时,参考图上会显示比例关系。 ②为当参考图与设定尺寸不符合时的处理方法,仅调整大小就是拉伸,会改变比例;下方是为图生图的灵魂,重绘幅度设定,根据具体的需要,重绘度的变化较大,所以绝对值参考意义较小。应该看相对值,太过了减小,不足加大。0表示完全为原图,1表示完全为新图。经验上以0.5为区分:0.5以前都能保持原图大部分内容,反之则再创作更多。界面下方则是插件,与文生图一致,不多赘述。 ③为生成的AI参数,分别可以更改模型,采样器,steps和CFG 4.统一画布:你的最强画笔在这里 4.1. 选择框 选择框是一切的基础,任何模式的范围都是以选择框为依据,进行AI处理的时候,只会对选择框内的部分进行处理。画布分别有:局部重绘、图生图、外扩重绘、文生图等功能 而根据选择框的不同,有4种不同的模式,这4种不同的模式均为自动切换,你只需要注意选择框的位置即可: 当选择框完全在已经存在的图内并且涂有蒙版时,则是局部重绘模式;当选择框完全在已经存在的图内并且没涂蒙版的时候,则是图生图模式;当选择框完全在已有图的外面时,则是文生图;当选择框一半在已有图内一半在外面时,则是外扩重绘。 4.2. 工具区 看图基本就知道是干嘛的,下面的顺序是从左到右 左侧:蒙版/画笔切换、蒙版选项、画笔、橡皮、颜料桶、删除区域、吸色管、画笔调节。 中间:选择拖动,和重置视图。 右边是合并图层、保存至右侧快捷栏、复制到剪贴板、下载、撤销/重做、上传图片、删除图片、设置 两个二级菜单分别如上图可见。分别是蒙版选项和画笔选项。 4.3. Countrol Controlnet本质是提供额外的参数以施加多维控制,所有的controlnet模型都需要参考图,可以看作一类特殊的图生图。ControlNet使用需要下载专用的ControlNet模型,并且许多模型在SDXL中效果并不好用。模型是可选的,无需一股脑的全下了,看清楚自己需要什么模型,用的时候临时下也不迟。 另外invoke也提供了IPAdapter和T2IAdapter使用: 4.4. Photoshop 这里虽然说不需要跟Webui中实现部分操作一样硬性需求PS。但是按照惯例这里提一下:这里以本机装的2022版为例,说明一些基础的不能再基础的操作。 ①为菜单栏,你可以在这里找到各种操作,如果你看不到某些工作区,布局也是在这里设置。 ②为快捷工具栏,需要用到的大部分工具都在这里选择,然后再到图上涂抹。 ③为调色盘区域。 ④为图层工作区,添加图层添加蒙版都在这里。 应用举例 1.图生图基本理论 在开始本章之前,需要说几个常识,也是图生图修图的基础。本章中各种方法,根本思想都起源于下面的简单事实。当然,很多人早就知道了,也可以直接略过。 SD模型对于画面占比越大的事物越容易画好,反之占比越小就越画不好,举个例子,中远景人物崩脸的概率显著高于特写,另一个例子是,以画不好手出名的AI,在强调手的tag下,例如beckoning之类,出好手的概率顿时暴增,这是由扩散模型本身的性质决定的,而我们可以顺应这种特性。例如,将手部裁剪下来,这不就是一张手部特写图了吗?再请AI重绘,抽卡难度瞬间下降。同理,AI画大的事物清晰,小的不清晰,同样将小的物品转化为大物品经过重绘再放回原图,就可以保证处处清晰。 1.图生图也是需要提示词的,虽然在多维度约束下,提示词对于AI的参考意义一定程度上被削弱,但这仍然是参考的主要成分。提示词可以反推,但相比反推模型,一定是你的眼睛分辨更加精准,只有传递给模型正确的指引——至少不要和重绘内容打架,才能抽卡出好的结果。图生图使用的提示词应该是希望AI画成的内容,比如说,图生图更换风格,那么你就需要描述画面中不希望改动的内容,并且加上风格词,甚至还需要加权;再比方说,将车局部重绘成马,那么你的提示词就应该是有关马的详细描述;最好,当你发现局部重绘的对象丧失了与全图的关联,那么你还需要适当描述一点蒙版以外的内容,便于模型理解。 2.图生图修图的本质是施加多维约束。试想,当你写上提示词生图的时候、当你涂上蒙版重绘的时候,你究竟告诉了AI多少信息?这些信息能够唯一的锁定你要的东西吗?显然不是的,一个很简单的道理,如果你不告诉画师更具体的要求,那么他就只能猜来猜去,当你所给信息较少,那么实际上只是在挤眉弄眼的暗示,怎么可能一发命中呢。所以越强的约束操控者的自主性越强,相应的,AI的发散性就越差。如果你不满AI的天马行空了,那就应该有色蒙版/PS/controlnet结合着灵魂画技给它比划,总好过使眼色对吧。 3.图生图需要将原图反推为潜空间数据,因此占用会比文生图更高,并且参考图尺寸越大占用越高。对于局部重绘,占用会比单纯图生图再略高,但这并不意味着低显存就不能局部重绘,实际上Invoke只会将选取框内的内容裁剪下来重绘。另外由于图生图会经过两次VAE,在使用VAE异常的模型时,每次重绘都会导致画面变得更灰。 4.图生图的模型选择要符合参考图画风,或者至少接近、不矛盾。例如你不能用SD1.5原模来重绘一张纸片人图。但不代表就必须要一模一样,相反用截然不同的模型来出图和重绘,偶尔还能做出风格交融的效果。 5.用图生图的方法应该具有一种阶段性的思想,即:不强求一次成图,可以分别抽出好的背景、好的人物、好的构图、好的姿势,通过图生图将它们有机结合在一起。而且也并非只能出全图,比如可以让AI产生某些素材,用来贴进画面。最后,实际上模型的能力也是有限的。当模型中根本就没有相关数据,那么这就是不可能画出来的,比如某些特殊视角、构图。那么此时,就只有通过手中的笔了。 2.修手:对AI任何不满意的地方都可以通过AI解决 本章第一个案例是修手,毕竟,SD画不好手是老生常谈的问题,好不容易出了一张满 意的图却坏了手,这也是常见的事。 如法炮制,另一边也修好了 3.添加元素:你可以随意的控制这个世界 本课题中,我们将从背景图开始,通过逐渐添加元素完成一张图。首先,用ControlNet的涂鸦模型通过灵魂画技随便整张背景。 然后我们就可以涂一块区域进行生图(当然,灵魂画手稍微画一下效果比这更好,涂色块纯粹是因为我懒),当然你还可以进行其他操作,比如加个广告牌加个鸟等,总是这些都是相当简单的。 4.差分:任何事物随意更换 也是灵魂画手即可,略微画一下我想要的表情,并且输入提示词,然后选框+蒙版直接生图即可: 5. 更改画风:你的烂模型拯救助手 简单换个模型,然后低去噪强度图生图就可以用了,甚至都不需要统一画布 6.LoRA协同:1+1当然可以等于2 先来看原始图,这是两个LoRa的效果,这两个lora同时调用会发生什么我想不用多说。 那么步骤的开始,是先跑一张合适的底图,先单独调用左图lora,使用合适的动作 tag,得到下图左,然后再画右图LoRA的角色,生图就大功告成了。   可见思路就是跑出合适构图的雏形,再将具体所要的人物通过局部重绘加入画面中。 7.画多人:超高的可控性,超高的上限 无论是SD1.5还是SDXL,画多人图都是很困难的,更别提我还想要指定的特征。但是在图生图里,一切都是相当简单的: 跟LoRA协同一样,我们可以先画左侧的人物(甚至可以直接文生图),然后再利用图生图画上右侧的人物。 这里需要注意一个点:画多人的时候,如果是进入了外扩绘制模式,那么效果是很差的。这时候我们就需要点一下油漆桶,先涂满色块,然后再从色块上绘画(这时候可以使用蒙版重绘),这样效果才是好的。 8.远景图/全身图:你想要的都能画 首先原图是这个:这个原图上面已经出现过了 远景你可以使用外扩重绘(简单色块涂鸦即可),下图是外扩了一部分,并且涂鸦了下半身的内容: 点击生图,生成如下图所示的图。我们可以利用这个功能一点一点的实现扩大画布(远景大图)、画出全身等效果 9.命题作文:谁都可以妙手生花 本课题将综合运用各种图生图功能,以达到目的为准,不拘一格,可谓是命题作文, 题材不限。那么先说命题,一个坐在窗边望着窗外的少女,视角是从窗外看的。 首先灵魂画手,先简单涂鸦出我想要的内容: 其次,拖入ControlNet使用涂鸦模型,生成大概下面这种图(左图),然后反复进行图生图增加一些细节(右图)。 房间内确实细化了一些,但有个问题是,它把我要的窗帘吞掉了。这个时候画上去就行(简单灵魂画手涂鸦即可,提示词记得改成窗帘,不然不容易出图),点击生成即可。 研究部分 1.图生图是难以复刻但并非完全无法复刻 如下所示,进行了两次同参数图生图(右2图),固定种子,可见,图生图和文生图一样是可以稳定复现的。 但通常情况下,即使拿到别人图生图的原图,图里并不会存储参考原图、重绘度,蒙版 处理方式等信息,参数不足无法保持一致,局部重绘更是几乎无法复刻,因为蒙版为手画, 不可能完全一致,这都是导致图生图难以复刻的原因。但这不代表图生图是完全无法复刻的 随机黑箱!图生图与文生图一样,确定的参数产生确定的结果 2.高清修复与图生图的关系   有人注意到,在以前的WebUI的图生图中没有高清修复(现在有没有不是很清楚),这是因为高清修复本身就是图生图。来看一 组对比,我们固定包括种子在内的参数,先生成一张小图,再同种子高清修复,再用此前的小图进行图生图放大(保持放大算法与高清修复一致),左侧为原图,右侧为两次放大的效果: 你玩过Comfy那就更好解释了:玩过的话应该会知道非潜空间的高清修复应该是怎么连的
模型理论科普·第二辑

模型理论科普·第二辑

本文仅为科普、纠错、说明,并非研究性/新技术的讲解 如有理论错误,欢迎联系修改。 本文中所有资料均可被自由引用。 最终解释权归 錾制千秋yuno779 所有。 推荐阅读文档和视频:Finetune&LoRA&LyCORIS 潜工具书:Stable Diffusion 潜工具书(中文最全文档) 1.  融合模型是不是都是垃圾? 首先可以明确的说:融合模型并不都是垃圾,只是有些人融合出的模型,确实垃圾。 首先,融合模型是相当简单直接的一个事,你只需要webui整合包然后动动手指点点鼠标就可以了,搞的人多了自然而然的垃圾就多。现在无论是哪个平台绝大部分模型都是融合的,所有很多人对于融合模型是什么感知并不是很明显。具体自行尝试就可以了,以及还有一个插件叫“SuperMerge”也是很好用的。 有问题的是有一部分人将一个现有的模型融了0.05的其他模型这种“冰红茶滴尿”的行为,这种有的时候因为原模型质量好且只融了0.05,模型其实也不差,但是我们依旧会称这个模型是垃圾模型。 还有一部分人,将一些练的比较差的LoRA融到模型里,导致了模型出图烂,有些时候会出现细节爆炸的情况。这些模型使用还是用于训练,都是很痛苦的。 见得多了就会有刻板印象认为融了LoRA的模型都是垃圾,但并不是说融了LoRA的模型质量都很差。使用LoRA/LyCORIS去炼底模是相当常见的,Kohaku V3/4/5、Kohaku XLdelta、SDAS A3.33等这些模型都是用这样搞得。 另外,绝大部分模型的融合配方其实都保存在了模型里,一查便知这融了什么模型。当然有些操作可以将其删除或者更改,不过除了metadata这种直接的方式查看模型的成分之外,还有其他方法可以找到这个模型的融合配方,麻烦一点而已。 下面是GhostXL的模型融合元数据: 有的人总是标榜自己是什么模型大师什么名校毕业,然后随便融合出来一个模型说这是我自己做的新的模型,并且还不标注融合配方,或者标榜自己的模型有多高的热度多么的nb。 融合模型其实是非常棒的,你可以循序渐进的调整出自己想要的东西,不管是画风还是人物,但是请你再介绍自己融合的模型的时候,留下原模型的名字或作者来表示对他人的尊重。 2. LoRA适配性越高模型质量越好? ● 模型训练在数学上是怎么讲解的 一个很简单的模型:(看不懂回去读高中) F(X)=WX+B 从F(X)为基础训练一个g(X)=W'X+B,只改变上面的W,W→W'这个过程就是微调 ● 而LoRA/LyCORIS可以这样解释 同样是考虑W→W',我们可以将其看成g(X)=WX+B+(W'-W)X,也就是g(X)=F(X)+(W'-W)X,相当于说微调就是在F(X)的基础上,额外加上一个h(X)=△W(X),其中△W=(W'-W) 如果你的模型很大,这就意味着你的h(X)也很大,代表你需要使用更多的资源去微调你的模型,代表你的显卡可能装不下,最开始炼制SDXL使用3090/4090的24G都可以吃满,这个时候我们就不想要花这么大的力气去处理h(X),模型很大那么△W自然也会很大,因为矩阵是相同形状的,但是实际上很多时候我们并不需要这么大的△W。 而LoRA(提供精简版的△W),LyCORIS(各种不同的方式去模拟一个△W),就是用更少的参数量去产生一个h(X)。(也就是PEFT)。本质上LoRA和LyCORIS就是微调,他们做的事情是一样的。在这个前提下,自然就没有“CKPT模型是画板,LoRA是画笔”这个说法 ● LoRA通用性越高越好?(错误) 而LoRA适配性是只有在“模型都有同一个爹”(模型本身差别小)的基础上才会去讨论的。 因为LoRA/LyCORIS的使用可以看作: g(X)=WX+B+(W'-W)X 而这个W就是原本的模型。当这个W改变时(变成N),那么我所达到的效果就会变成这样: g'(X)=NX+B+(W'-W)X 这个时候我们还想达到原来完全相同的效果就成了: g(X)=WX+B+(W'-W)X+(W-N)X 这样这两个我们如果混用LoRA,那么始终就有有一个(W-N)X的差别 g(X)-g'(X)=(W-N)X 如果模型本身差别都很小(比如模型都有同一个爹),那么(W-N)X这一点差别是可以忽略不计的;如果模型本身差距足够大(例如:SDXL的二次元不同派系模型大都是从SDXL1.0基底直接训练的;SD1.5的ink_base和novelAi这些不同的从SD1.5本体直接练的模型),那么这个(W-N)X足够大,混用LoRA就会造成生成图扭曲甚至崩图的情况。 总结下来就是LoRA的适配性(通用性)和模型的质量毫无任何关系 那么我们有的时候需要使用别人已经训练好的LoRA的时候应该怎么办呢? 首先如果你使用的是非常常见的CHECKPOINT模型我们可以直接拿对应模型的LoRA,一些人训练的时候会区分不同的版本。 那如果并不是使用的常见的CHECKPOINT模型,那我们就要给这个模型溯源找近亲。比如你使用的CHECKPOINT模型是从KohakuXL上训练来的,那么这个时候(W-N)X足够小,混用LoRA对于本身的影响并不是很大,这个时候就混用影响并不是很大。 当然二次元方面你也可以使用SD1.5的模型,SD1.5的二次元模型大致上只有Nai一个派系。这些模型的LoRA大都可以混用,因为这些模型都有一个共同的爹(NovelAI V1) 当然了,有一部分人在SD1.5时期玩的多了,就根据片面的现象草草的认为LoRA泛用性跟模型质量有关。这其实是错误的,模型可以泛用其实是“附加题”,跟模型本身质量是没关系的。 3.  模型越大越好?(junkdata!) 老生常谈的问题,看下面秋叶的文章就知道了。当然了,下面举例不想看直接左侧目录跳转下一部分就行了。 【AI绘画】模型修剪教程:8G模型顶级精细?全是垃圾!嘲笑他人命运,尊重他人命运 - 哔哩哔哩 (bilibili.com) 这里举个例子,我把这个模型拆开后直接拿出了没用的键值: None-Bayonetta: embedding_manager.embedder.transformer.text_model.encoder.layers.0.layer_norm2.bias [768] embedding_manager.embedder.transformer.text_model.encoder.layers.0.layer_norm2.weight [768] embedding_manager.embedder.transformer.text_model.encoder.layers.0.mlp.fc1.bias [3072] embedding_manager.embedder.transformer.text_model.encoder.layers.0.mlp.fc1.weight [3072,768] embedding_manager.embedder.transformer.text_model.encoder.layers.0.mlp.fc2.bias [768] embedding_manager.embedder.transformer.text_model.encoder.layers.0.mlp.fc2.weight [768,3072] ……………… ……………… (完整的垃圾数据在https://docs.qq.com/doc/p/048272b6f332c5dfb03d35a723d0bae5ae585426,受限于篇幅原因不写了) 4. 模型prompt写法是不同的 总有人在使用SDXL模型的时候继续沿用SD1.5的习惯格式而不用模型卡的推荐设置,这会导致出图达不到预期。当然出图达不到预期这只是现象,这实际上只是模型作者在训练的时候使用的标注格式不同。 比如kohakuXL就是使用的如下: 1girl,  klee, genshin impact,  XXXXX,  cabbie hat, twintails, coat, watermark, sidelocks, sparkle background, red coat, long hair, bag, hair between eyes, backpack, pointy ears, pocket, clover, hat, holding, sparkle, chibi, red headwear, low twintails, brown gloves, sparkling eyes, gloves, simple background, light brown hair, hat feather, four-leaf clover, artist name, ahoge, feathers, solo, sparkling aura, hat ornament, orange eyes, food in mouth, clover print, white feathers, long sleeves, +_+, masterpiece, newest, absurdres, safe 那么我在使用其他的tag格式的时候,出图就很难达到预期(有些效果出不来,有些效果乱出)。下面是另外两个模型的tag格式。 5.  有些东西压根就不是过拟合! (错误言论)1girl出好图出角色就是过拟合等一系列跟“污染”“过拟合”有关的论点 →污染是现象,但是大多数时候是来自于“欠拟合”或者低品质资料集(该分清楚的标没分清楚) →实际上很少有练到过拟合的模型,大部分人对过拟合的标准低估了 大部分人看到的可能是灾难性遗忘等,模型本来会的被搞到不会了,过拟合一般来说是出完全一模一样复制出来的图。例如下面这个图就是过拟合的(图片来源:2024-02-24直播錄播[Finetune/LoRA/LyCORIS]_哔哩哔哩_bilibili) 左:生成的图      中:原图      右:原图过VAE 另外差异炼丹过程中,虽然也要炼成出原图,但是模型拟合的目的就是自己,因此不能称为过拟合。 ● 1girl出好图 首先1girl出好图也并不能直接说明模型的质量就很烂。 这个说法的出现是因为在很久之前是因为曾有大量模型提示词是几乎没有什么效果并且会乱加不相干的景物细节(写负面提示词都无法去除),生成的图跟在这些模型输入1girl抽卡差不多。而这些模型普遍的特征就是1girl能出比较完善的图,所以有人就通过现象来总结得出结论“1girl出好图的模型十有八九质量都很烂”
模型理论科普·第一辑

模型理论科普·第一辑

本文仅为科普说明,并非研究性/新技术的讲解 如有理论错误,欢迎联系修改。 本文中所有资料均可被自由引用。 最终解释权归作者 所有。 特别鸣谢:元素法典作者群/秋叶甜品店 潜工具书:Stable Diffusion 潜工具书(中文最全文档) 部分引用资料: stable-diffusion-webui-model-toolkit/README.md Skip/Reset CLIP position_ids FIX (rentry.org) 【腾讯文档】元素同典:确实不完全科学的魔导书 一、 使用工具 修复/检查模型所使用的工具的下载和安装 这里模型常用的模型检测与处理工具为: Clip check tensors/model toolkit/model converter 注意:部分插件仅能对于SD1.5的模型使用,SDXL无法使用 1. 工具下载 这3个插件都不是web-ui自带的,所以需要先安装,以下是安装步骤。 Clip check tensors:iiiytn1k/sd-webui-check-tensors (github.com) model toolkit:arenasys/stable-diffusion-webui-model-toolkit model converter(模型格式转换)Akegarasu/sd-webui-model-converter a.使用webUI直接安装 将网址打开后的链接直接填入WebUI插件下载区,等待自动加载完毕即可 b.压缩包下载 【PS:请在任何其他手段均无法下载时使用此方法,极不推荐使用】 github界面点击【Download ZIP】 完整解压后放在扩展文件夹:你的WebUI所在文件夹/extensions 能在顶部栏看到即为安装成功(这里是Kitchen theme折叠了一部分顶部栏) 2. 功能介绍 CLIP tensors checker 用于查询偏移的Clip model toolkit 用于修复损坏的Clip,导出/更换模型的Unet/VAE/Clip等 model converter 转换模型格式、修复clip、压缩模型 二、 模型问题 这部分为模型理论知识以及常见的模型问题 有关Stable Diffusion的部分基本原理可以查看:【AI绘画】大魔导书:AI 是如何绘画的?Stable Diffusion 原理全解(一) - 哔哩哔哩 (bilibili.com) 有能力的也可以查看生肉文章: What are Diffusion Models? | Lil'Log (lilianweng.github.io) 这里只讲解通俗易懂的模型相关的内容,所以这里不会摆出一大堆晦涩难懂的“基础知识”来唬人或者是撑篇幅。 3. 【基础】模型三大件:clip、unet、VAE TextEncoder(Clip):会把tag转化成U-net网络能理解embedding形式 【简单的说就是将“人话”转换成AI能够理解的语言】 U-net:对随机种子生成的噪声图进行引导,来指导去噪的方向,找出需要改变的地方并给出改变的数据 【简单的说就是死盯着乱码图片,看他像什么】 VAE:AI原本的生成图不是人能看的正常图片,VAE的作用就是把AI的这部分输出转化为人能够看的图片。 【简单的说就是把AI输出翻译成人能看到的图片】 模型问题修复前后对比(上面是修复后的) 4. VAE问题 a.VAE问题的原因 模型输出图发灰说明这个模型的VAE出现问题了,常见于融合模型中。不同VAE之间的任何Merge都会导致VAE中的某些东西被破坏。并且很多融合的模型再拿去融合,那么VAE就会跟着破坏。这就是为什么很多模型输出图是灰色的,以及人们热衷于单独使用加外置VAE的原因。 遇到这种情况,一般而言需要修复VAE才能使得模型正常使用。不过web UI提供了外置VAE的选项,可以在生成时忽略模型的VAE而使用外置VAE替代。 例如这种图就是典型的VAE损坏 b.更换模型VAE 更换/使用其他VAE并非很好的解决方案,部分模型在更换VAE后会出现输出图模糊或者线条混乱的情况。 不过不能更换其他VAE并非不能使用原本模型的VAE,Merge模型可以使用原本合并之前的模型VAE,这样效果上就不会出现各种各样的问题。 c.VAE重复 VAE重复:有的人喜欢自己重命名一些现有的VAE,然后把这个VAE当作自己模型的VAE来使用,这就造成了下载了很多VAE,但是一检查哈希发现都是一模一样的。下面是我这里所有的VAE的哈希对照: d.常见误区/错误说法 【1】“VAE没有注入到模型里,可以自由选用想用的VAE”"VAE是加滤镜的" "VAE可有可无"这种说法都是错误的 【2】VAE颜色深度排序相关的内容同样的不科学的,例如什么“NAI的VAE颜色最浅、840000VAE的颜色最深”之类的。随意更换VAE会影响输出图,部分模型的输出模糊或者线条爆炸就是因为这样产生的。使用没有问题的外置VAE发现输出图发灰那是模型本身的问题,与VAE无关。 【3】VAE的作用并非纠正色调或者是“模型滤镜” 5. clip损坏 a.clip偏移 通常意义上的clip损坏指代clip出现偏移,类似于下面这种 这些东西的是一个 值从 0 到 76int64 张量,模型Merge会将这些张量转换为浮点数并引入错误数值。例如在 AnythingV3 中,值 76 变为 75.9975,当由 webui 加载时该值被转换回 int64结果为 就变成了75。(所以上面这张图其实只有值41会影响模型的正常使用,在toolkit上只显示了会影响模型正常使用的clip值,这也是两个检测工具输出不同的原因) b.clip偏移的影响 clip偏移会影响模型对于对应位置的token语义的理解,详情可以查看早期“微笑测试”实验(下面的链接),这里引用部分实验内容。 测试参数如下:seed是固定的、clip skip=1、eta=0 smile sleepy girl standing bear Steps: 40, Sampler: Euler a, CFG scale: 7.5, Seed: 651296271, Face restoration: CodeFormer, Size: 512x512 我们对其修改如下: 1-0:tensor([[ 0,0,2,3,4,5 … 2-0:tensor([[ 0,1,0,3,4,5 … 3-0:tensor([[ 0,1,2,0,4,5 … 3-1:tensor([[ 0,1,2,1,4,5 … 顶部是常规的8528d-fix,smile被忽略。 keychange_8528dfix是修复后的, smile又回来了。 3. break_1-0 smile再次消失 4. break_2-0 sleepy没有体现 5. break_3-0 girl不见了,变成了熊。 6. break_3-1 girl部分的值为1, 女孩没有消失,1的笑容也没有消失。  break_3-1 结果比较难以分辨 【更详细的测试在链接指向的文章】 引用自:[調査] Smile Test: Elysium_Anime_V3 問題を調べる #3|bbcmc (note.com) 当然了,详情也可以查看下面链接的文章 简单说明/修复:Skip/Reset CLIP position_ids FIX (rentry.org) 很久之前有人通过裁剪FP16的方式“修复”clip,不过现在使用toolkit等插件可以很轻松的修复clip。 6. junk data a.垃圾(无效)数据的产生 模型融合经常会出现很多webui在跑图过程中实际用不上的junk data,模型里只有固定的那些内容才能够被加载,多出的全是垃圾数据。很多的融合模型都带有这么一堆的垃圾数据,并且很多人总是认为这些junk data删掉会影响模型本身而不去删除。 【1】其中影响最大的是模型EMA:模型在Merge后EMA将不再准确反映UNET,这种情况下EMA不止没啥用,还会影响模型的训练。如果你希望大家能有效的使用EMA,那么请使用训练模型。(融合模型前建议先把模型的EMA全部删掉,因为只要是Merge模型,那么EMA就可以等同于垃圾数据) 【2】部分将LoRA注入到ckp大模型中的操作会产生一部分无效数据 【3】其他不知道哪来的无法使用的数据(原因有很多,不展开讲,真要塞我甚至可以在模型里塞一个原神) 比如有10G多Junk data的传世经典17G模型: b.模型一般大小 一般模型大小为1.98Gb和3.97Gb有的为7.17G,除非模型各部分精度不同造成的其他模型大小之外,一般而言奇怪大小的模型都会或多或少的存在junk data。 此外,noVAE模型的大小为1.8G左右,noVAE&clip的模型为1.6G 7. 无效精度 a.实际使用更高的精度是没意义的 默认情况下,webui 会将所有加载的模型转换为FP16使用。 所以很多时候更高的精度是没啥意义的,不使用--no-half这些模型将完全相同。而实际上哪怕使用--no-half,模型的差别也并不会很大。很多人对精度本身是没有什么认知的,普遍的直觉是"单精到半精的性能损失是线性的",即一半精度,性能为原本的一半,但在SD推理上事实上的差别是非常小的。 不看标题你能分辨出哪个效果好哪个效果差吗,不叠图的话啥什么都看不出来↓ FP32与FP16的叠图对比:https://imgsli.com/MTgwOTk2 b.作妖的float64 一般而言最常见的是旧版本SuperMerge插件整出来的问题(新版本已修复)。通过检测发现,在一个3.5GB的“FP16”模型里面混又有不少float64的weight,导致了模型出现奇怪的大小。早些时候的toolkit会存在bug无法处理这些float64的weight,更新最新版本后应该解决了这一问题
Stable Diffusion WebUI 从入门到卸载①

Stable Diffusion WebUI 从入门到卸载①

有问题/错误请及时联系千秋九yuno779 修改,谢谢。 前言 介绍说明 Stable Diffusion (稳定扩散) 是一个扩散模型,2022年8月由德国CompVis协同Stability AI和Runway发表论文,并且推出相关程序。 Stable Diffusion WebUI能够支持多系统使用,无论是Linux/Windows还是MacOS,现在都已支持使用。Stable Diffusion WebUI有着极为广泛的插件生态,能够实现远超Midjoruney/NovelAI的自由度和实用价值。 AUTOMATIC1111所开发的Stable Diffusion WebUI是目前使用最为广泛的AI图像生成开源软件,本文章将围绕Stable Diffusion WebUI展开相关内容的说明。 特别致谢 【AI绘画lora交流群】群友帮忙完善了LoRA训练相关的内容 【XDiffusion AI绘画研究交流】帮忙挑刺,找出了一部分文章的错误内容 【元素法典组】 【秋叶的甜品店】 【幻想魔法书—旧日黎明】帮忙制作了文章框架,补充了部分内容 【珊瑚宫︱数字生命研究所】 避坑指南 ①任何在x宝、x鱼等平台售卖AI整合包的,全部都是坑钱的 ②任何AI绘画相关课程都是大冤种课程,也都是坑钱的 ③任何收费出售AI模型、LoRA、付费生成的AI绘画相关内容,都是坑人的 ④任何平台的:例如“我的二次元形象”“无尽三月七”等活动,在一般的SD中只需要一个LoRA就可以轻松解决 ⑤国内所有的AI绘画APP都不要使用、大概率也是坑你钱的 ⑥国内绝大部分模型站都最好不要使用(出现过很多离谱操作),如有需要请使用civitai和huggingface(civitai大家一般都简称C站,C站可能会上不去,huggingface简称抱抱脸,很多时候国内的交流群都比较喜欢用简称来称呼这两个网站) ⑦当civitai上不去的时候可以使用吐司Tusi.cn这个网站网站中的C站镜像。 一些链接: 1.  潜工具书 新人最推荐查看的AI绘画最全工具书 Stable Diffusion 潜工具书 2.  新手入门 推荐关注up:秋葉aaaki 入门可以去看其专栏和视频 秋葉aaaki的个人空间_哔哩哔哩_bilibili 3.  提示词 提示词全解: 元素同典:确实不完全科学的魔导书 元素法典:1和1.5卷因为部分问题不做推荐,新人也不建议查看 元素法典第二卷——Novel AI 元素魔法全收录 元素法典第二点五卷——Novel AI 元素魔法全收录 一些玄学的东西的纠错与解释 浅考sd-webui大括号{}处理 4.  模型站 civitai huggingface AiTool.ai - Explore the world of AI 吐司Tusi.Art 5.  本文参考链接 Stable Diffusion WebUI使用手冊(简体中文) [調査] Smile Test: Elysium_Anime_V3 問題を調べる #3|bbcmc (note.com) THE OTHER LoRA TRAINING RENTRY Home · AUTOMATIC1111/stable-diffusion-webui Wiki (github.com) https://guide.novelai.dev/ 元素同典:确实不完全科学的魔导书 模型理论科普V1.5.0608 Tags基本编写逻辑及三段术式入门与解析v3 如何快速分辨AI生成图V 如何识别AI图片: 目前由AI 绘制的插图完成度已经逼近甚至超越了真人画师,所以粗略查看是无法区分是否由AI 绘制。 1.  误区 a. AI图并非画不好手,也并非是那种油腻的“AI风格” b. 网上的各种分辨网站/软件,经实测识别成功率最高的仅有40%的置信度,所以仅看个乐就行 c. 对于经常玩AI绘画的人来说,AI图基本可以做到一眼分辨 2.  分辨方法 通过模型分辨 部分热度较高的模型都有对应相对固定的风格,能够识别这些风格就能做到接近70%以上的置信率 扩散生成痕迹 AI生成图片并非是理解了图片画什么怎么画,而是通过反向扩散的方法直接生成图片,这种生成痕迹会有一些较为明显的特征 这种痕迹是绝大部分模型都无法避免的,具体来说就是:包括但不限于衣服褶皱、皮肤褶皱、头发效果上出现莫名其妙不合逻辑的纹路、以及部分不应该出现的噪点。其次还有,部分AI图也存在本来不应该在同一位置的物品相连接或者相融合的情况。 图像细节问题 这个方法是最后的方法,再上面两种一眼丁真的方法都不起作用的时候再来用这个。 例如AI会在左右眼形状和高光的一致性、服装对称性、重复形状一致性、几何图形的正确与否等方面出现问题。 SD部署和使用,神奇的AI绘画在这里 1. 部署stable diffusion webui 首先你得有Stable Diffusion WebUI框架和模型,没有部署SD,玩个P的AI绘画。 硬件需求 ● 显卡VRAM在4GB以下的会很容易遇到显存不足的问题,即使使用放大插件也就非常慢(以时间换显存) ● 可以开启CPU模式,但是速度依旧是非常慢。你不希望一个小时一张图的话那就别想着用CPU跑图 操作系统需求 Linux:Debian11(这个我在用) (除此之外我并不知道那些版本可以正常使用,如有需要可以先下载贴吧整合包测试) Windows:最低要求为Windows 10 64比特,请确保系统已更新至最新版本。 windows7就不要想了,建议直接升级到win10/win11 macOS:最低要求为macOS Monterey (12.5),如果可以的话请使用最新版macOS。 建议使用搭载Apple Silicon M芯片(M1、M2) 的Mac机型。 旧款Mac需配备AMD独立显卡,只有Intel核显的不能使用。 整合包部署 如果你是从零开始,这里推荐秋葉aaaki一键包和启动器。 【【AI绘画】Stable Diffusion整合包v4发布!全新加速解压即用防爆显存三分钟入门AI绘画☆可更新☆训练☆汉化】 https://www.bilibili.com/video/BV1iM4y1y7oA/?share_source=copy_web&vd_source=b315aefe546aaa25153160a5d2c908c4备用链接: 【【AI绘画】绘世启动器正式发布!一键启动/修复/更新/模型下载管理全支持!】 https://www.bilibili.com/video/BV1ne4y1V7QU/?share_source=copy_web&vd_source=b315aefe546aaa25153160a5d2c908c4 (除了以上推荐外,还有星空等少数大佬发布启动器或一键包。) 在此建议,有条件在电脑上本地部署,就尽量本地部署。没条件,可以考虑云端部署,请在B站等地搜索相关教程学习部署。目前市面上的APP暂不推荐,很多是收费的,很多只有少量的免费时长。而且大多数APP不具备完整的功能,不适合系统性的学习和进步。 2.  添加ckp大模型 NovelAI 和Anything分别是什么? NovelAI是一个二次元AI生成图片的网站。因为泄漏事件,NAI 使用数千万Danbooru(图站)图片训练的模型被泄漏了两次。 事件报告 泄露Part 1 —— 包含生产模型,程序—— 53.66 GB,其中相关模型有7GB 和4GB 两种。 泄露Part 2 —— 包含历史测试代码和模型,程序—— 124.54 GB,其中相关模型与Part1 相同。 Anything是由元素法典组的千秋九制作的一个融合模型。因为其效果在当时来看较好,并且受到众多营销号的吹捧而广为人知。 如何添加ckp大模型 部署完成后,将下载的模型放到WEBUI根目录中的model/Stable-diffusion文件夹中。ckp大模型的大小一般为1.6G及以上,后缀为.safetensors。 当然了有的整合包自带有ckp大模型,当你看到WEBUI根目录中的model/Stable-diffusion里面有模型文件的时候,那么可以暂时跳过这个步骤,直接使用整合包自带的模型。 注意: ①除非你完全可以信任这个模型,那么请尽量避免使用.ckpt后缀的模型。 ②请不要听从其他人的任何建议,关闭模型检查。请及时拉黑让你开启允许加载不安全模型这个选项的人。 3. 运行WebUI实例 点击启动器上的启动按钮以启动你的webui实例,没有启动器的整合包请按照视频说明启动。如果不使用启动器和整合包,则点击webui-user.bat 4. 常见问题 一般而言,遇到的问题可以根据启动器所提示的内容解决。启动器无法识别的报错可以尝试复制到翻译软件简单翻译一下,若不知道如何解决,则可以到对应的交流讨论区询问。 注意:没人愿意只凭借一个不正常退出的提示截图就给你解决问题,请上传完整的报错截图。没有错误日志就诊断问题无异于闭眼开车。 5. 基础参数说明 以一个普通的WebUI界面为例。如果你的界面色彩不同或选项更少或更多,不用奇怪,这是正常的。笔者下载了一些插件,仅此而已。只需要看看该界面那些参数、选项有什么作用,效果就达到了。 一般而言只需要记住这张图就好了,详细的说明在下面 1.  大模型:不管你的模型是ckpt格式,还是safetensors格式,这里可以选择你的模型,或调换模型。右箭头指向的小三角形,点开就可切换模型。关于模型的作用和推荐,后文讲解。 2.  采样方法:也称采样器。最古老的好像是Euler和Euler a,DDIM曾经相当火。当下用的最多的是DPM++ 2S a Karras、DPM++ 2M Karras、DPM++ SDE Karras,其他采样器也可以尝试,有时会有出色的表现。采样器会影响出图速度,DPM++ 2M Karras、DDIM、UniPC等几个采样器生成速度快,但太低步数图片会崩坏,建议不用高清修复时不低于20步,用高清修复不低于10步。(并非绝对) 3.  采样迭代步数:一般称步数。并非越高越好。不开高修约30至50步够用,开高修15至25步够用。当你已经很熟练,可以无视此条。 4.  图片宽度:简称宽。必须为8的倍数。太小的图不好看,图越大越模型会不知道生成什么导致糟糕的输出。如果没有固定的要求,请按显卡能力和需求适当调整。如果爆显存了,那就调小一些。 5.  图片高度:简称高。必须为8的倍数。太小的图不好看,图越大越吃显存。如果没有固定的要求,请按显卡能力和需求适当调整。如果爆显存了,那就调小一些。 6.  生成批次:批量生产图片时调整这个。 7.  每批数量:很多新手批量生产图片喜欢点这个,这是错误的。它很考验你的显卡,图越大越要慎选。一般默认的1就可以。 8.  提示词相关性(CFG):数值越大tag越精准,数值越小想象越丰富同时越不听话,不建议开启太高的CFG。但如果开启较大CFG出现了糟糕的图片,请改用CFG修复插件:mcmonkeyprojects/sd-dynamic-thresholding: Dynamic Thresholding (CFG Scale Fix) for SD Auto WebUI (github.com) 9.  随机种子:简称种子。一般为-1(随机生成),当需要锁种子调参数做对比,复制生成图的种子填进这里即可。同种子同参数同模型同tag,生成的图片一定是几乎看不出差别的。(因不同显卡不同环境会出现有些微影响,但是并不严重) 10.  正面提示词:一般称tag,或称正面tag、正面。新手建议抄正面tag进行尝试,并在抄来的基础上进行改动,请勿徒手乱捏。很复杂,这里只做简单的解释,详情见提示词教程。 11.  负面提示词:一般称负面tag,或负面。新手建议不要深入研究,用抄来的就好。一般越短的负面越听话,越长的越不听话。同时,负面tag的权重也有影响,过高或者过低都有不利影响。 12.  生成:点击生成前请确认tag是否准备完毕,参数是否在合理的数值,确认无误,即可开启奇妙之旅。 13.  自动填充提示词和参数:很少用。如果你关闭界面时忘了保存,再次生成时想要找到上一次的提示词和参数,点这个是最快捷的方法。 14.  清空提示词:当你要把正面和负面全部删除,点这个是最快捷的方法。 15.  模板风格:非常好用的功能,你可以从中选择想要的已储存的提示词,迅速加载。配合16和17使用。 16.  将已选择的模板风格写入当前提示词:要先选择15模板风格才能生效。 17.  将当前的提示词保存为模板风格:对于经常使用的提示词,在此保存一下,想用的时候14清空提示词,15选择模板风格,16写入提示词,其他只剩调参数。 18.  图片展示区域:你生成的图片在此会展示出来。生成图片的过程中有进度条的,跑到100%就生成完毕了。如果图片不见了,可能是爆显存,请查看该区域下方的提示栏。 19.  Clip跳过层:简称Clip。默认为2,新手请勿调整。 20.  模型的VAE:简称VAE。这里是外挂VAE的地方。 6. 高清修复说明 高清修复Hires.fix是用来生成较大图片防止AI模型乱画的一个功能。一般而言需要配合分块VAE插件使用防止爆显存 一般而言,二次元图片使用Anime6B采样器。除此之外,放大的倍率也不能开太大,不然极其容易出现古神图等情况。 另外,没必要一直开启高清修复。看到了自己想要的构图/大致效果后再开启高清修复可以极大的节省抽卡生成的时间。 你热爱的,就是你的parameters 自从AI绘画出现以来,各种参数的讨论就从未停止过。 1. “我会画画了!”生成你的第一张AI图 在对应的提示词框,然后点击生成就可以生成你的第一张AI图了 提示词: cute little girl,,solo,wind,pale-blonde hair, blue eyes,very long twintails,white hat,blue sky,laugh,double tooth,,lens flare,dramatic, coastal, flying petal, flowery field, sky, sun,field, sunflower, masterpiece, best quality, 反向提示词(mutated hands and fingers:1.5 ),(mutation, poorly drawn :1.2),(long body :1.3),(mutation, poorly drawn :1.2),liquid body,text font ui,long neck,uncoordinated body,fused ears,(ugly:1.4),one hand with more than 5 fingers,one hand with less than 5 fingers, 上面的提示词大体效果是这样的↓ 如果你想要达到更好的效果,那么修改相关的参数就是必不可少的。下面呢就是有关生成个提示词相关参数的部分介绍。 当然了,如果不满足于文章中给的这些内容,你也可以去参考更为详细的元素同典:具体链接在本模块的最下面。 2. 提示词的范例 当然了,新人想要得到比较好的AI生成图可以看以下几个提示词合集。 但是需要知道的一点是:推荐参数绝非必须的数值,这些仅供新人参考,入门后其实是不需要任何推荐参数的。 旧日黎明-献给朋友们的法术书(副本2) 元素法典第二卷——Novel AI 元素魔法全收录 元素法典第二点五卷——Novel AI 元素魔法全收录 下面的内容,就是写详细的讲解“魔法师”是如何写出这些“咒语”来的: 3.  书写你的第一段“咒语” 咒语是什么? 在AI绘画中,我们使用一段prompt 来引导U-net对随机种子生成的噪点图进行“降噪”,从而生成我们想要的东西。 Prompt (提示词,又译为关键词)通常由英文构成,主要内容为以逗号隔开的单词/词组/短句。prompt 也可以包括其它语言的文字,但效果往往不佳。prompt 还可以识别一些特殊符号。 AI 会通过寻找符合关键词描述的噪点图进行有明确指向的去噪点(diffuse)。同样,如果包含Negative Prompt(负面关键词),AI 就会尽可能避免含有负面相关要素的去噪点方式。换句话说,prompt 就像是哈利波特里面的咒语,它直接决定了最终我们会得到什么。 简而言之就是你想要什么那就写道正面提示词里,你不想要什么,那就写到负面提示词里。比如我想要“一个穿着白色裙子带着白色帽子的女孩站在花丛里”那么我们可以写以下提示词: 1girl,white dress,white hat,stand,flowers 这时候点击生成,就会出现左边这样的生成图。 如果理解了这以方面,那么恭喜你,你已经学会了基本简单的提示词写法了。你可以尝试一下自己喜欢的内容,多生成几张AI图尝试尝试这个过程 如果对生成图片的质量不满意,那么怎么办呢?接下来只需要根据图片生成的结果,逐步细化提示词,并且添加质量词和负面提示词就可以了。 比如左边那张图看到天空比较空,那么就可以加上:cloud,sun等这种描述天空效果的提示词。当然如果英语水平限制了你的发挥,那么你也可以使用翻译软件来“施法”。 当然了,你也可以拿着这把“全村最好的剑”: 半自动魔导原典_免费高速下载|百度网盘-分享无限制(baidu.com) 4. 学徒级语法【三段式】&如何写提示词 三段式与基本提示词写法 需要特别注意的是SDXL的模型并不适配SD1.5的语法和提示词顺序,这部分只作为SD1.5的提示词来使用,需要根据模型作者自己训练的方式来决定,所以在使用SDXL的训练模型的时候请注意查看模型卡 简而言之,三段式就是把质量词、主体、背景三者的描述分开进行。很多人在写提示词的时候会受到英语水平的限制,于是就提出了三段式语法,其目的是在较多提示词的时候能够一目了然的分辨内容,方便删减提示词和调整提示词的权重。这在当时元素法典时期使得大家能够快速的分享自己的提示词或者使用其他人的提示词。 质量词和效果词放最前面,人物与人物特征放在中间,背景和光效放以及功能性tag最后面,这是三段式的基础用法。 8k Wallpaper,grand,(((masterpiece))), (((best quality))), ((ultra-detailed)), (illustration), ((an extremely delicate and beautiful)),dynamic angle, rainbow hair,detailed cute anime face,((loli)),(((masterpiece))),an extremely delicate and beautiful girl,flower,cry, water,corrugated,flowers tire,broken glass,(broken screen),transparent glass. 前缀(质量词+画风词+整体效果) 质量词用于提升生成质量: 例如:masterpiece、best quality等 画风词用于凸显图片的画风: 例如: 冰箱贴前缀: [(flat color,vector graphics,outline):1.35),(paper cutting:1.2)::0.6], 立绘法的前缀: official art,1girl, simple background,[(white background:1.5)::0.2],open-mouth,(white background:1.2) 当然了,这些符号的意义将在后面详细讲解,现在看不懂也没关系 效果词为整体画面效果的提示词 例如:炫光lensflare、景深Depthoffield、 角色焦点character focus、从下面看from below等等 注意:部分固定(例如白背景立绘)这种属于风格类提示词,建议放到前缀里而非最后的背景 主体(画面中的主体部分) 主体为图画想要凸显的主体,可以是人物,建筑,景物等,主体部分要进行丰富的描述才能获得细节丰富的图像。 对于角色来说,通常包括了面部,头发,身体,衣着,姿态等描写。 没有角色时,可以将场景中的重要点即高耸如云的城堡,绽放的花朵,破碎的钟表等,想要位于画面中心的物体进行描述。 描述的顺序大致为由主到次,即你想要生成图中占据大部分画面的元素放到最前面。除此之外你想要生成违反生活常识经验/常见创作的元素的图你需要更为详细的描写或者更高的权重。 当1 girl 和earring 简单结合时,无论两者谁先谁后,最后都会变成“一个二次元美少女带着耳环”的样子,不会在简短描述下就轻易地出现诸如“美少女向前抬手捧着耳环、耳环在镜头前是一个特写、美少女的身体被景深虚化”的情况。因为在我们的生活常识中,大多数这两个“物”结合的情况都是前者,后者在作品描绘里出现的情况极少,因而这两者即使是顺序调换也只是让美少女是否摆出展示耳环的姿势,无法轻易地切换主次 继续深讲就到训练集的部分了,虽然它的本质是训练集与LatentDiffusion 对于自然语言的处理,但考虑到大多数组成训练集的作品都取自于生活经验/ 常见创作想象,且自然语言处理本就是努力拟合生活经验的过程,所以实际上并无明显不同。 场景(背景,环境) 场景是主体存在的周围场景,没有场景描述时容易生成纯色背景或者是效果tag相关的背景,且主体会显得很大。部分主体会自带场景内容,例如建筑,景物。 例如:繁花草甸flowerymeadow,羽毛feather,阳光sunlight,河流river,碎玻璃Brokenglass等 此外,元素法典后期的提示词实际上并没有严格遵循三段式,具体原因是大家都开始研究分步语法,分步语法会将背景和主题放到同一模块,成为“两段式”,而非上面所说的三段式。 当然了有关分步渲染的相关内容,在下面【7.WebUI基本进阶用法】会有详细的讲解,现在看不懂也是没有关系的。 (((masterpiece))),(((crystals texture Hair))),(((((extremely detailed CG))))),((8k_wallpaper)), (1 girls:1.5),big top sleeves, floating,beautiful detailed eyes, overexposure,light shafts, soft focus,side blunt bangs, buttons, bare shoulders,(loli), character focus,wings,(((Transparent wings))), [[((Wings made of golden lines,angel wing,gold halo around girl,many golden ribbon,Aureate headgear,gold magic circle in sky,ight, black sky):0.7):((galaxy background, snowflakes, night sky, black pupils, starts sky background, stars behind girl, view on sky,standing):0.8)],Elegant hair,Long hair,The flying golden lines,Messy golden lines,halo,hairs between eyes,Small breasts,ribbons, bowties,red eyes, golden pupil, white hair,flowing hair,disheveled hair,lowing long hair):(Delicate arms and hands):0.9] 隔离元素污染 如果你在别人的提示词中看到了BREAK这个词,或者是看到了++++////\\\\这种毫无意义的符号,无需感到疑惑,这只是占位词。Stable Diffusion模型仅限在提示词中使用75个token,所以超过75个token的提示词就使用了clip拼接的方法,让我们能够正常使用。 BREAK这个词会直接占满当前剩下的token,后面的提示词将在第二段clip中处理。而早期++++////\\\\这些符号,大都是因为不知道BREAK这个词而添加上用于占token的。 输入BREAK之后你可以看到直接占满了剩下的token 为什么要使用占位词/BREAK呢? AI在生成图像的时候会将一些提示词的特征放到其他的物品上,例如我在提示词中写了white clothes和Flower background,那么很有可能在衣服上出现花的装饰。如果我们不想在衣服上出现花的装饰,那么比较简单的方法就是把这两个词放到两段clip中处理。 自然语言“咏唱法” 自然语言的效果实际上是SD模型原本的使用方法,但是由于novelai模型的训练方法和一部分LoRA模型训练的时候训练集的标注以tag为主,所以可能tag的表现更好一些。但既然是Stable diffusion模型,那么使用自然语言本身就没有什么问题,但是不一定真的效果就是更好的。例如下面提示词就混合了自然语言和tag,大家也可以自己尝试一下自然语言去写提示词。 flat design, (official art:1.2) (white background:1.2), depth of field, double exposure, (There is a big world tree with magic:1.2), (She is inside the world tree:1.2), 1girl,solo,fullbody, (She is a angel with beautiful detailed eyes with crystal textured hair with beautiful detailed face with (clothes)+(beautiful transparent wing)), (She is a angel with red eyes with white hair with (clothes)+(light wings)), (She is a girl with long flowing hair with the hair between the eyes), (She with white dress with detached Sleeve with off_shoulder clothes), (She with symmetrical wings with transparent wings with mechanical wings), (She is a sitting girl with small breasts with (wariza:1.2)), (She is far away form viewers and looking at viewers with (from side:0.5)), (She is beside the floating cubes:1.4), (super fucking cool golden light:1.2), (white background:1.2), irradiance particles, ray tracing,(The broken floor:1.3), depth of field, tyndall effect, double exposure, visual impact,((Ink mist,Coloured lead painting,[[Gouache painting]]):1.5) (Glitch Art:1.414) 请不要使用shit山负面 大量的负面提示词会对生成的图片产生灾难性的影响。新的tag串在编写的时候负面提示词是需要放到最后再添加的,因为无论如何负面提示词都会对画面产生一定的影响,并且很多影响是不可预见。这将会导致很多想要达到的效果无论如何也无法实现。实际上当年《元素法典》研究提示词的时候一般的操作是当生成图出现自己不想要的东西的时候再作为补充。 负面embedding也不是越多越好,负面embedding对构图会有影响,很多人以为越多越好从而叠一堆负面embedding,其实不用也一样能出好图。甚至好的手也不依赖负面embedding,有的时候手崩了即使用了负面embedding也不会很好的修复。 放这么多的负面embedding堆在一起,不但会严重影响提示词的准确性,还会严重影响生成图效果和模型,甚至于说能把大部分模型干成同一种风格。 前者未使用负面embedding,后者为使用负面embedding。可以明显的看到,使用embedding生成的图已经明显失去风格化 5. 选择你的捍卫者“采样器”&调度器 采样器sampler就是去噪的方法,WebUI中内置了很多采样器,你也可以自己装载其中没有的其他采样器。包括一般使用的Euler A和UniPC,以及很多人都喜欢使用的DPM系列。 调度类型简单而言就是去噪速度。常见的调度类型有:Karras / Sgm_uniform / Exponential / ddim_uniform……,目前推荐使用Exponential 方法,可以得到更好效果。 对于初学者来说,更推荐使用Euler A或者Unipc等生成图像较快的采样方法。 采样方法组成了图片生成的第一大要素,它决定同样的prompt 下AI会选择以何种方式去噪点化以得到最终图片。同时,它还会决定运算速度。 采样方法组成了图片生成的第一大要素,它决定同样的prompt 下AI 会选择以何种方式去噪点化以得到最终图片。同时,它还会决定运算速度。 通常来讲,Euler A 是兼顾速度和质量的最优之选。而DDIM 和Euler 则在运气较好的情况下尤其以细腻的画风见长。DPM系列则是各有优劣,部分在低steps下有着极其良好的表现(DPM三兄弟在15~20步就差不多了) 当你审美疲劳时,也可以尝试更换方法也许可以带来新的风格。 6. 迭代步数(steps) 不同采样需要的采样steps不同。 例如Euler A/DPM A等都是非线性采样,结果并非随着采样步数的增加而增加质量。恰恰相反在大于一定采样步数只会质量会快速下降。对于此类采样器推荐的最大steps一般为50左右。(不绝对) 而Euler/DDIM等线性采样随着迭代步数的增加质量会增加。当然在早期“修手”的尝试中发现,这类采样器的steps数存在边际效应的问题,大于一定数值之后,增加steps带来的收益也不会很明显。 很多图直至steps500才会有明显的提升,而一般显卡拉500steps需要的耗时太长了,所以并不建议拉太高的steps。 7. WebUI基本进阶用法 ①渲染句式 在webui中,有几种非常好用的句式可以使用: [A:B:X]代表执行A效果到X的进度(如0.4到40%的总步数),B从X的进度开始 [A:0.5]这样写的含义是从50%开始渲染A [A::X]渲染到X的进度的时候停止A的渲染 [A|B]交替渲染A/B ②种子变异 用于轻微调整生成图 大致的效果如图所示:随机差异种子可以选择其他种子,也可以随机抽取(-1),效果图是固定了差异种子 好了,你已经学会基本用法了,尝试分析一下下面这串tag的分步吧[[([(Delicate eyes,glowing eyes,red eyes, black pupil,(beautiful eyes:1.2),(serious),(gradient eyes)):[((messy_hair),(Long hair:1.2),(lightning),Lots of lightning,([white hair|Lavender hair]:1.3)):((Flowing hair:1.2),Long flowing hair,beautiful hair):0.6]:0.7],(Delicate face:1.2),(shoulder cutout),(Gorgeous clothes:1.3),(beautiful arms:1.2),(Characters stay away:1.4),(Small breasts:1.2),[[:((Scepter weapon,The thunder wand,Crystal texture of the hair):1.4):0.5]::0.9],[((lightning),many glowing ribbon,Shine tire,glowing magic circle in sky,(glowing halo around girl:1.3)):((exquisite Magic Circle:1.7),(Many purple flashes:1.4)):0.5],(Gorgeous accessories:1.2),(Gorgeous special effects:1.3),(highres:1.3),(magic:1.3),(glowing light:1.3),(exquisite magic array:1.2),(Strong vision),(Magic in hand:1.3),(starry sky:1.3),(huge Brilliant magic),(glowing light:1.2),(Dimensional space is broken),(lightning:1.3),god rays,night, black pupils,(clock method array:1.2),standing,Hair and lightning blend together,(Lightning ribbon:1.2)):(lightning:1.2):0.8]:(Delicate arms and hands):0.9]] 8. 我的“法术”不听话了? 增加减少权重 有的时候,提示词会出现不听话/失效的现象。 当提示词失效的时候,不妨多增加权重,例如(1girl:1.2)/(1girl) 注意:这里的任何权重等的调整只能使用英文符号,使用全角/中文符号将不会起任何作用 一对小括号()意味着把括起来的prompt 权重* 1.1,中括号[]则是/ 1.1,大括号{}在WEB-UI 中无调整权重作用,且会被作为文本而解析。 如果因为某些需求而要大量抬升权重,可以对prompt 进行多次括号,比如((((prompt)))),这意味着将它的权重* 1.1 四次,也就是1.4641。但这个写法太吓人了,数括号也很浪费时间,所以应该直接为一个prompt 赋予权重: (prompt:权重乘数) 外层一定是小括号而非其它括号。比如(red hair:1.5) 将直接给red hair 赋予1.5 权重,(red hair:0.8)将直接给red hair赋予0.8权重,清晰简洁,便于自己回顾和他人理解,强烈推荐。 而除了整词权重之外,也可以进行部分权重,比如如下例子: 1 girl, white long (messy:1.2) hair, red eyes 将专门对messy 部分赋予* 1.2 权重,其它部分不受影响 高权重的元素会在画面中有着更大的占比或更强烈的存在感或更多的数量,是能可观地影响构图的原因之一。如果出现了(xxx:1.7)还无法正确的表达需要的效果时,那么大概率为模型无法识别这个提示词,或者模型本身的问题。 模型本身问题 例如模型的clip偏移:(这里要用到一个叫做CLIP tensors checker的插件) clip偏移会影响模型对于对应位置的token语义的理解,有的时候就会造成你的提示词识别出现问题,详情可以查看早期“微笑测试”实验,这里引用部分实验内容。 后置链接:Stable Diffusion WebUI 从入门到卸载② | 吐司tusi.cn

帖子