Create

Articles

关于喵?!多概念lora的一些细节

关于喵?!多概念lora的一些细节

lora模型链接:https://tusi.cn/models/718595960474874205 喵?!lora使用了约18万张图片进行训练,其中大部分是一些热门动漫/游戏/画师的作品/掺杂了小部分的AI作品 所以大部分热门游戏的角色该lora配合hansv35使用时都可以直出,不需要使用xxx角色lora(不过这不是喵?!lora的主要作用) 喵?!lora和hansv35都是多画风的,而它们可以在一起使用,以达到风格混合的操作。和novelai3不一样的是。在novelai3中{风格A+风格B=风格C},而在这里它是{风格A+风格B=风格AB}。原因可能是它的训练量不够吧。 喵?!有四个质量词,分别是Best-A,Medium-B,Low-C,Bad-D。在正常使用时只需要将质量词置入提示词的第一位即可。 它还有约300个画风词。例如Chen_bin,shiratama\(shiratamaco\)这些...在使用时需要将画风词置入提示词的第二位。需要注意的是,置入在第二位的画风词为主导画风(在不增加其他风格提示词的权重的情况下)。 例如 仅shiratama\(shiratamaco\)风格 仅Chen_bin风格 在shiratama\(shiratamaco\)提示词的第二位提示词使用了Chen_bin风格 由于第二位提示词是主要控制整个画面风格的提示词。如果这个风格提示词在第二位那它就是整个画面的主要风格,不过它依然会被其他风格提示词影响。 当然,还有一些其他的奇妙操作。例如分步渲染强混合两种风格像这样[Chen_bin|shiratama\(shiratamaco\)],还可以和底模的风格进行混合(没想到吧!)例如与hansv35的3D_Style,进行混合[Chen_bin|3D_Style],很怪吧!还有一些更高级的操作例如break语句精确控制等高阶提示词编写方法。(虽然在吐司大部分情况下用不了就是了)。 其他: 喵?!lora是变速箱的升级版。因为底模的不同,所以不算同版本。 喵?!仅兼容hansv35。在其他的任何模型上使用都会导致画风的偏移。严重的会无法出图,画面崩坏(所以不要想着融我lora了,只能融到hansv35里的) 关于新版本:我的版本更新与hans同步更新,当hans更新新的二次元底模版本时,我会使用他的底模进行训练。这时,更新的lora版本是完整版。平时更新的都是裁剪版。因为我的数据集已经及其庞大了(百万级)。 有这么大的数据集为什么不训练全量微调:一个字,穷,全量微调训练起来速度太慢了,烧钱。我又没有自己的显卡。烧不起。 关于喵?!lora的训练参数以及训练方法(我是臭民科。别杠,杠就是你对) Unetlr=4e-5(学习率和bs挂钩) textlr=4e-6(学习率和bs挂钩) batchsize=5(低bs训练,追求更好的细节) gradient_checkpointing=true(不开爆显存) gradient_accumulation_steps=1(不开爆显存) optimizer_type=AdaFactor(问就是习惯,用其他的咳嗽(lion,aw8b,轮椅神童都用过,别杠,杠就是你对)) resolution="1024,1024"(懂的都懂,不懂的说了也不懂) enable_bucket=true(分桶训练,将数据集按照分辨率划分成不同的桶) min_bucket_reso=768(最小桶分辨率) max_bucket_reso=1_536(最大桶分辨率) 不开金字塔与噪声偏移 max_train_epochs=1(我的训练方法只训练一个ep,出了就是成了,一切关于训练是否拟合的计算在处理数据集时就已经计算好了) 数据集处理操作 由于喵?!lora是一个多概念lora。它的每个概念的被训练量都是不同的。 而我根据每个数据集的评级(best-A,medium-b,low-C,Bad-D)给他们设定合适的re 平衡大数据文件夹和小数据文件夹的原始step量。让他们尽量平衡(而不是re1训练,出来的大概率会有些画风训练过量,而有些欠拟合) 再加入泛化集。不让训练的某个概念影响到原始画风。(如果你跑图的时候什么风格词都不加,跑出来的大概率是泛化集的东西 在进行数据集处理时我先使用超分辨率工具将所有任意h或w低于832的图片进行超分 随后再压缩回任意等宽高最高h,w至1536(因为我的bucket分辨率为1536) 随后进行数据集校验(使用脚本跑一遍检查图片格式是否正常图片是否损坏图片是否有对应的标注是否有其他怪东西等操作) 数据集打标(第一位为质量词,为我的主观评级“说人话就是第一眼看起来好不好看”,第二位为画师名称,这方面不细说懂得都懂。) (当然我在训练其他lora的时候还有一些其他的奇妙操作(例如多次训练,混合训练等奇妙操作)这些就不讲了,对我有用对其他人就不一定了。每个人的训练方法都不一样。能训练出一个好的模型,那它就是好(如果几张图开256dim的话当我没说)
tag语法

tag语法

分隔:不同的关键词tag之间,需要使用英文逗号,分隔,逗号前后有空格或者换行是不碍事的 ex:1girl,loli,long hair,lowtwintails(1个女孩,loli,长发,低双马尾) 混合:WebUi使用|分隔多个关键词,实现混合多个要素,注意混合是同等比例混合,同时混。 ex: 1girl,red|blue hair, longhair(1个女孩,红色与蓝色头发混合,长发) 增强/减弱:有两种写法 第一种(提示词:权重数值):数值从0.1~100,默认状态是1,低于1就是减弱,大于1就是加强 ex: ,(loli:1.21),(one girl:1.21),(cat ears:1.1),(flowerhairpin:0.9) 第二种(((提示词))),每套一层()括号增强1.1倍,每套一层[]减弱1.1倍。也就是套两层是1.1*1.1=1.21倍,套三层是1.331倍,套4层是1.4641倍。 ex: ((loli)),((one girl)),(cat ears),[flowerhairpin]和第一种写法等价 所以还是建议使用第一种方式,因为清晰而准确 渐变:比较简单的理解时,先按某种关键词生成,然后再此基础上向某个方向变化。 [***1:***2:数字],数字大于1理解为第X步前为关键词1,第X步后变成关键词2,数字小于1理解为总步数的百分之X前为关键词1,之后变成关键词2 ex:a girl with very long [white:yellow:16] hair等价为 开始a girl with very long whitehair 16步之后a girl with very long yellow hair ex:a girl with very long [white:yellow:0.5] hair等价为 开始a girl with very long whitehair 50%步之后a girl with very long yellowhair 交替:轮流使用关键词 ex:[cow|horse] in afield比如这就是个牛马的混合物,如果你写的更长比如[cow|horse|cat|dog] in afield就是先朝着像牛努力,再朝着像马努力,再向着猫努力,再向着狗努力,再向着马努力
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
黏土风格火了!这些lora效果网友都在找(建议收藏)

黏土风格火了!这些lora效果网友都在找(建议收藏)

"黏土风格"是一种艺术表现形式,它通过对黏土的塑造和处理,创造出具有特定外观和感觉的作品。这种风格在近年来的短视频创作、图像编辑、手工艺品制作等领域中尤为流行。 毒法师对黏土这种风格和纹理也是抵抗不住,熟悉毒法师的小伙伴都知道,我在流光器韵这个系列的LORA模型主打一个材质和纹理,所以最近也练了不同观感的几个黏土LORA,这里集中为大家介绍下使用方法和效果。 一、风格介绍 在手工艺品制作中,"黏土风格"通常指的是使用黏土材料制作的各种作品。这种风格的手工艺品具有较强的可塑性和创造性,可以让人们根据自己的想象和需求,打造出独一无二的作品。 基于黏土这种特殊的材质,毒法师也是炼制了不同造型不同效果的几个LORA模型,目前有如下几个: 1.黏土神兽 2.黏土小人鱼 3.黏土风格打工人 4.黏土僵尸小女孩/小男孩 5.黏土惊悚僵尸 6.黏土调皮北鼻 这几个LORA模型总体上都是粘土风格,但是在黏土的细腻程度、色彩以及纹理方面有较大差异,有的粗糙、有的细腻,有的色彩丰富、有的色彩单一,当然,造型也是大不一样,可用于游戏角色、海报画面,甚至是文创IP,只为满足大家不同的使用场景和期望的效果。 二、使用说明 目前这些LORA有的已经发布,有的还没有发布,毒法师这里以前两个为例介绍下画面效果和使用方法。 1.模型获取: 怎么获取这些LORA模型呢?请移步毒法师主页,https://tusi.cn/u/662557069739585057/models 可以在主页看到这些黏土风格的LORA模型,使用可以在线跑图,也可以下载后在本地使用,个人经验,在线和本地跑图效果会有细微差别,不过主体风格是保持一致的。 2.使用操作: 底模的选择,使用写实类底模一般都能够出效果,不过不同的底模画面效果肯定会有差异,推荐使用GhostMix鬼混、麦橘系列以及天海Tenkai的模型,这几款毒法师在线跑图效果都很美丽。如黏土小人鱼这个,不仅可以出IP效果,使用写实真人模型,可以出真人效果。 提示词的书写:这个没什么可说的,毒法师所有的LORA模型主打一个懒人使用、新手无门槛、单词恐惧患者友好,所以你只需要输入基本提示词即可,如1girl、1boy,dragon等等,简化到基本可以不写,当然,权重开大的话,你真的可以不写。 另外,每个模型毒法师都会在线跑一些图,也会在每个模型的说明中有不同的关键词,调用更多效果,具体可以在模型的说明中查看。如黏土小人鱼这个,你可以加object on head,粘黏土神兽可以加teeth等。 权重的选择,这几款的权重在0.65-0.85效果最好,但要注意,不同底模你的权重可能需要灵活调整,当然,权重的高低根据你想要的效果调整,如果连权重高LORA模型效果明显这种基本都不知道的话,可以退出了。 其他参数的选择不用纠结,在线基本默认即可,如果要调建议采样用DPM++ 2M SDE Karras、restart、Euler a等。 看起来复杂,用起来基本都是无脑直接出效果,信我,用过你会欲罢不能。
【吐司创造营】第一期第二课:文生图专题!先从了解各项参数开始!

【吐司创造营】第一期第二课:文生图专题!先从了解各项参数开始!

该文章由【吐司创造营】直播的部分脚本编成,部分操作向和演示向内容无法用文本撰写,故推荐配合回放观看效果更佳。部分观点来源网络,如有错误欢迎指正! 本期文章对应回放为👉:BV1Kw4m1d7TV 什么是文生图 根据输入text用text encoder提取text embeddings,同时初始化一个随机噪音noise(latent上的,512x512图像对应的noise维度为64x64x4,这也是为什么我们训练1.5模型的时候设置图片大小需要是64的倍数),然后将text embeddings和noise送入扩散模型UNet中生成去噪后的latent,最后送入autoencoder的decoder模块得到生成的图像。 checkpoin大模型 定义出图风格,文件大小一般在2GB-10GB不等,以safetensors或者ckpt的后缀结尾,为什么内存差距这么大,这里要讲到一个知识点叫EMA。我们看一下比较经典的一个案例吧,SD1.5的初始下载模型有两个命名,一个是SD1.5-pruned-8GB,一个是SD1.5EMA-4GB,这俩啥意思呢,模型的pruning就是带EMA的版本,EMA是一种训练策略,在训练的时候模型会有一个主模型例如Unet,同时也会保存一个copy即EMA_Unet,这个EMA_Unet可以简单地看作是Unet的一个权值平均化的版本,可以使得训练更加稳定。但是SD-WebUI是默认fp16精度不使用EMA的,所以这一部分的数据就多出来了,那随着现在训练门槛的降低(至少没有之前高)很多融合模型在融合的时候哪怕融了带EMA的A模型然后加入了不带EMA的B模型,那这个EMA就多出来了,是无效数据,但是它占内存,本质上其实出图效果没有太大差别。SD1.5大模型2G左右,XL是6个G左右。 lora微调模型 稳定扩散模型的训练方法,它在不干涉神经网络运算层的情况下,插入一些低阶的运算层,通过训练这些低阶运算层来影响出图。可以指定人物、元素、场景、画风、细节。市面上的lora我简单分为3类,普通lora,用的最多的,功能性lora,调整身材比例,面部大小等等,其他lora,如加细节,加姿势等。我建议大家在使用的时候去看一下模型主页作者有没有特殊说明给一些推荐的lora权重,吐司的默认lora权重是0.8,还是比较合适的。(这里强调一下过拟合的概念,比如说打标不清晰不精准造成模型出图混乱的;或者神经网络模型遭受灾难性遗忘现象,模型在接受新任务训练后可能会严重失去其在任务上的泛化能力。这通常意味着新任务可能会覆盖过去学习的权重,从而降低过去任务的模型性能。如果不解决这个问题,单个神经网络将无法适应持续学习的场景,因为它在学习新事物时会忘记现有的信息/知识。简单的说就是容量有限的情况下,系统为了执行一个新的任务,就必须擦除旧有的数据。)但它并不是一无是处嗷,我们刚刚说到还有一种功能性lora,本质上就是差异炼丹,就需要一些炼的非常过头的模型。 VAE vae模型是一种基于变分自编码器的神经网络模型,它的作用就是从你输入的数据中学习,然后再对新样本进行生成和重建,从而增加视觉效果,所以我们简单点把它理解成一个滤镜和微调模型就行了,那么吐司提供的这些vae当中要注意一下如果你的大模型是选用的SDXL模型,那么也要选择相对应的VAE模型。对于具体VAE模型的选取原则,还是要参考作者的模型说明,VAE被破坏的时候出图会发灰,有的作者在训练的时候会再添加一次VAE,但有的作者不会,那如果说你判断不了作者有没有在训练的时候内置VAE,你就出图试试,如果说出来的图片色彩发灰,明度偏暗,可以外部挂载一个VAE改善一下出图色彩质量。那这边推荐几个通用的VAE,如果是二次元向的推荐animevae.pt,ClearVAE.safetensors;真人向推荐vae-ft-mse-840000-ema-pruned.ckpt。 clip跳过层 它是语言与图像的对比预训练,让SD数据库里的处理模块使语言和图像建立关系,数值越高关键词和图片的关系就会越低,数值越低,关键词和图片的关系就会越高。推荐是2-4。 提示词 其实比较简单,主要说一下吐司上面这三个小按钮。第一个解析图片提示词,可以上传一张图片提取提示词,比较类似sdwebui的deepbooru反推功能。第二个是导入参数,它可以自动提取你剪辑版里的sd参数,复制到这里点确定可以自动填入。第三个是一个随机提示词按钮,没有灵感的时候就随机出图,但这个随机提示词是只改变正向提示词的,负向提示词是固定不动。今天来讲一下这个BREAK,提示词书写的界面中主要含有的信息有两个,其一是我们输入在提示框中的信息,第二是显示在右上角的当前句子包含的token数量,token的长短取决于该单词的常见程度的,越常见的单词其token数量也就越短。当提示词每超过75就会对其进行截断,将截断之前的prompt作为一整个句子参与图像生成,后续的prompt依次进行上述操作,由于每一个句子中位置靠前的自然权重会稍高于位置靠后的词,所以有以下两个结论:由于两个句子之间的存在隔离,所以位置在75的提示词天然就会与位置在76的提示词有一定的隔离;(比如说green_dress在位置72,blue_hair在位置80,所以二者之间产生了天然隔离)由于句子进入模型参与影响有先后顺序,所以靠前句子的影响因素大于靠后的句子(这个逻辑上可以直接类比到位置靠前的提示词天然权重大于位置靠后的提示词)。BREAK字面上是打断的意思嘛,它的作用就是隔断上下文,BREAK会强制结束当前这个句子,即使这个句子中只有一个1girl,也会被填充成75个token。 采样算法 怎么选择最优质的采样算法主要是从收敛,时间,步数还有你的显存来决定,那吐司因为是线上集群都是超好的显卡我们就不考虑显卡的因素。 给大家整理了一下如果你想使用快速、新颖且质量不错的图片,那么出色的选择是DPM++ 2M Karras,20 – 30 步比如说2.5D或者3D的出图,或者人像。 如果您想要高质量的图像并且不关心收敛,那么好的选择是具有10-15 步的DPM++ SDE Karras(注意:这是一个较慢的采样器),或者说是DDIM,那著名的墨幽大大就是比较推荐在使用他的大模型的时候用DDIM这个采样器。DDIM其实是最古老的一版采样器了,比较过时,如果不是作者特意要求的话,不建议当首选。(啥是收敛:在扩散过程中,SD利用文本向量和噪声图像作为条件输入,给出每一步变换的概率分布。这样,SD可以根据文本指导噪声图像向目标图像收敛,并保持图像的清晰度和连贯性。) Euler a这个采样器就是比较快和稳,而且比较适合二次元出图。 迭代采样步数 越高画面细节越多,越慢,一般范围在15-40。 📢 :迭代是重复反馈的动作,神经网络中我们希望通过迭代进行多次的训练以到达所需的目标或结果。 每一次迭代得到的结果都会被作为下一次迭代的初始值。 一个迭代= 一个正向通过+ 一个反向通过;更多的迭代步数可能会有更好的生成效果,更多细节和锐化,但是会导致生成时间变长。而在实际应用中,30 步和50 步之间的差异几乎无法区分。太多的迭代步数也可能适得其反,几乎不会有提高。 进行图生图的时候,正常情况下更弱的降噪强度需要更少的迭代步数(这是工作原理决定的)。可以在设置里更改,让程序确切执行滑块指定的迭代步数。 CFG 它控制生成图片与提示词的接近程度。数值越高,画面越贴近提示词的描述;数值越低,画面更有变化性更偏向于让AI自由发挥。建议3-15,中值一般是6-8。 高清放大 “4x-UltraSharp”、“R-ESRGAN 4x+”擅长处理写实图像,“R-ESRGAN 4x+ Anime6B”、"4x-AnimeSharp"擅长动画图像。 重绘幅度 越低与原图越相似,越高越和原图没关系。 高清人物立绘制作 【纯演示向】 ADetailer:吐司的ADetailer也是可以添加lora的,这里的lora比较推荐用一些脸膜。本质上的提示词逻辑跟文生图的提示词没有什么特殊的地方,但是更建议写一些对面貌的描述词,比如说发色、瞳色这种能增强特征的提示词,如果说不填写的话,则是继承文生图的prompt词。 置信度是指控制模型检测结果的可信度,sedwebui的AD修复的时候是会显示有一个红色的框,那么增大数值可获得更高的修复准确度,同时这个框的识别就越准确,如果说你的画面中有多人出现的情况但你只想修复最前面的一个人脸,那么这个值就要拉高。那同样的如果你想修复多个人脸,降低数值可增大修复范围。(这一部分推荐去听回放,有演示讲的更清楚。) 重绘蒙版模糊可以理解为ps里的边缘羽化强度,数值越小越锐利,越大越模糊,想衔接更自然的话,这个值可以稍微调大一点。 重绘噪声强度:对于面部修复的结果影响仅限于产生不同的面部特征。推荐0.4-0.6。 Adetailer的模型如何选择,我这边截取了原作者在github上给的一些模型分类和作用大家可以参考一下。 【上节课有人要的论文整理】 SD 1.4官方项目:CompVis/stable-diffusion SD 1.5官方项目:runwayml/stable-diffusion SD 2.x官方项目:Stability-AI/stablediffusion diffusers库中的SD代码pipelines:diffusers/pipelines/stable_diffusion SD核心论文:High-Resolution Image Synthesis with Latent Diffusion Models SD Turbo技术报告:adversarial_diffusion_distillation
模型理论科普·第一辑

模型理论科普·第一辑

本文仅为科普说明,并非研究性/新技术的讲解 如有理论错误,欢迎联系修改。 本文中所有资料均可被自由引用。 最终解释权归作者 所有。 特别鸣谢:元素法典作者群/秋叶甜品店 潜工具书: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,更新最新版本后应该解决了这一问题
AI模型的实际运用方式之一
lora摸鱼炼丹心得

lora摸鱼炼丹心得

边摸鱼边炼丹。 底层原理听不懂,浅显道理容易误导。 建议炼丹时长两月半以下食用。 将训练模型比作做饭,将调参比作初始炖汤的水温\预定佐料,将其中练度比作爆炒的力度。 炼丹是很基于经验、尝试、实验的,并不代表通晓某知识就能出“仙丹”,也可能出“咸蛋”。 炼丹被很多人称为玄学。 玄学:指的是难以数学规律,自然规律,经验规律,被人轻易理解的事。 很多时候,咱们的数据集不一样: 如炼 真人——二次元——2.5D动漫——实物——风景———多概念 概念——动作——画风——风格——背景——服装——角色——人脸——表情包 鬼知道炼什么鬼哦,所以数据集不同,同参未必具有普遍适用性,问就是推荐默认跑一遍。 炼丹:训练模型,一般指训练lora。 lora:lycris,locon,loha本质都是lora,即大模型的低阶(秩)适应,相对大模型的微调。 打标:让文本与图像建立联系,文本与图像对齐特征,便于学习。 数据集:数据集<——图片\样本<——特征集\属性集<——特征。 训练:让机器学习特征。 有时,调参靠实验,优化数据集和打标可能更好。 超参数:在机器学习模型训练前由人为设定的参数,这称调参。 1.学习率:lr,步长。 太小不合适,太大的直接会炖糊\色块堆积。 2.批次大小\并行数量:bs,每批次处理的样本\图片数量。 bs调大会降低总迭代步数,一般会减少时间,bs&训练集足够大,1步1小时也可能的。 总步数不是恒稳的,而时间是恒稳的。 总步数:样本×rep×epo/bs。 提高bs:可能大概也许作用——>抹平差异特征+学习共有特征。 小样本不必大bs,大样本则可大。 一报告称,提高bs需提高lr。 3.练度:练度<——repeat+epochs。 4.repeat:rep,重复,模型在每个epoch内多次看到图片的次数。 提高作用:可能大概也许作用——>多概念平衡数据集+增强每个样本的特征学习记忆。 5.epochs:epo,纪元\轮次,按rep过一轮数据集,遍历数据集所有图片。 提高作用:可能大概也许作用——>学习共有特征+增强所有样本的特征学习记忆。 同参下试了:epo的提高比rep的提高容易过拟合(可能也许大概 6.过拟合:把训练集的特征记得太死,以至于不具有泛化性,忘记了之前会的(先验知识)。 一个叫"过拟合"的学生,月考嘎嘎猛,高考名落孙山,他就叫过拟合。 所以太像会容易过拟合,其实只要弹得动,轻微过拟合没事。 这并非一定是弊端,比如有些表情包大概是要练到过拟合的。 又像又弹得动,鱼和熊掌不一定兼得,毕竟lora可以降低权重,减轻效果。 7.炸炉\练烂:练烂是过拟合吗?答:练都练烂了,还过不过拟合,是,不是,它最好单独拿出来。 炼什么是什么(举例) ——>有人炼角色,调用1gril自带角色特征,很难出其它girl,只记得学的1girl,不记得其它1girl。 ——>我自己炼画风,epo越后面,一样权重跑同seed图,未添加衣服词+(nude:1.5),越后面epo衣服残留越重,无法换装。 但是吧,画风一般不必要换装的把? ——>全是upper_body的图炼,结果很难出full_body的图,它忘记了之前的full_body, 但,还有close-up,比如大头表情包就是需要就是抑制全身,所以忘记就罢了。 8.正则化:防止过拟合——>防止忘记先验知识,防止过拟合同学只记得涩涩,而不记得考试要考什么了。 咋用?它不一定好用,所以未必要用。 ——>炼1girl,正则集放其它girl。 ——>炼up_body,防止忘记full_body,在正则集放full_body。 ——>以此类推,我放些垃圾,那么他会不会变得"至臻完美、璞玉浑金"呢? 答:过拟合同学想起了要考试了,那他就能一定不名落孙山吗?说不定有用。 9.泛化性:对未知\新的输入响应良好。即为文生图,我理解为(lora) ——>在未知(未训练)(加触发词)的提示词(tag)的输入,响应良好。省流:好。 10.通用性:在24年3月份之前有三个倍受推崇的二次元系列XL。 a31,kohaku,pony. 与众不同的是三个XL,训练量都是M(百万)级。 所以微调量级是属于另起炉灶的,这三个系列训练的lora一般来说是不能够很有效的互相适配的,或者性能削弱\无效,省流:不咋通用,但不一定呢。 对于仨系列的lora,适合对应的专门专用,它不会如1.5那么通用。 原因简单:训练量巨大,以至于“跳出三界之外,不在五行之中”。 1.5的lora通用可以是泛用,但≠泛化,叫泛用性吧。 1.5的lora通用主要是1.5底膜基本由nai1或者1.5微调\训练\融合而来,而且微调量级一般不大,根据血缘关系远近lora通用性降低。 lora的泛化应该可以理解为出图好 ——>我理解这是在(加触发词)配合未训练(未知)的提示词(tag)下也能出图不错\有效,省流:好就行。 11.鲁棒性:不丢失特征,稳定、靠谱。省流:棒。 12.还原度:以训练tag,测试还原。省流:像。 13.dim(rank):资讯\信息\参数的承载量,越大不一定越好,但小一定够妙。 ——>我自己试了,大dim更容易拟合到画风,其余不知。 14.关于lora调用的触发词:训练可能会设置触发词,或者将训练标签里的高频词写成lora调用时的触发词,所以您可以看看作者的模型介绍,大多情况下,不写触发词,lora调用不容易有效,而不是lora不好。 15.关于loss 引入:“训练损失”,“测试损失“两个词。 明面上的值我称为“训练损失”,虽然可以通过查看loss曲线查看收敛情况,但loss值它真的真的很有用,它告诉不了一点是否过拟合、有没有炼烂、炼糊、练好。 至于好不好还得自己跑图测试靠自己评判“测试损失”,人们常用XYZ图表脚本。
吐司食用指南🍞——名词解释篇·提示词与反向提示词
真正的立绘法——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)
给所有想学习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出好图的模型十有八九质量都很烂”
【吐司创造营】第三期第四课:520浪漫特辑!多人图片的实现方法!

【吐司创造营】第三期第四课:520浪漫特辑!多人图片的实现方法!

该文章由【吐司创造营】直播的部分脚本编成,部分操作向和演示向内容无法用文本撰写,故推荐配合回放观看效果更佳。部分观点来源网络,如有错误欢迎指正! 本期文章对应回放为👉:BV1sE421G7UA 文生图 主要是通过【条件合并】这个节点来实现双人效果。有以下几点需要注意的地方 将人物主体单独列出,然后通过条件合并节点合并 将1中合并的两个主体作为一个整合提示词输入到下一层的提示词中 设置背景提示词,并与2中的合并条件再次合并 将3中的合并条件作为正向提示词输入到ksampler采样器中 条件采样区域控制实际上提示词影响的图片范围 宽度/高度:你想占据的画布尺寸 xy:用来调整画面走向。是以图片左下角为轴心,横向为X,纵向为Y轴。 如图设置,画面人物将会是均分效果(画布宽度为1024x1024) 【更方便的高清放大——SD放大:纯演示向】   图生图 主要是通过【混合遮罩】这个节点来实现双人效果。有以下几点需要注意的地方 纯块遮罩:带有亮度信息和尺寸信息 目标遮罩:输入的纯块遮罩可以理解为你生成图片的画布,所以纯块遮罩的尺寸等于最后生成图片的尺寸 源遮罩:输入的纯块遮罩代表你想要控制画面遮住或者绘制的那部分的大小 源遮罩和目标遮罩的明度:怎么控制遮罩是遮住还是控制画面 明度0,遮罩为黑色,画面被遮住不受影响 明度1,遮罩为白色,受影响被绘制的部分 遮罩混合有XY两个控制器:调整源遮罩的位置。是以图片左下角为轴心,横向为X,纵向为Y轴。 混合方式:输入源遮罩的纯块遮罩的明度。 明度为0,使用multiply 明度为1,使用add IPA用来复刻上传的单人图片的风格,openpose用来控制最后生成的双人图像的姿势
【吐司创造营】第三期第一课:从0开始学ComfyUI!了解这些效率UpUp!

【吐司创造营】第三期第一课:从0开始学ComfyUI!了解这些效率UpUp!

该文章由【吐司创造营】直播的部分脚本编成,部分操作向和演示向内容无法用文本撰写,故推荐配合回放观看效果更佳。部分观点来源网络,如有错误欢迎指正! 本期文章对应回放为👉:BV1zE421L76b 概念 节点:ComfyUI的核心部分是一个可以自由拖动、放大缩小的操作区域,中间分布着各种连接在一起的功能组件,也就是"节点"(nodes). 端口:一个节点必须先通过左边的端口接收上一个节点的信息开始工作,工作完成后通过右边的端口把它完成的工作传输给下一个节点。端口颜色不一样不能链接,一个输出端口的数据可以输出到多个接收端口上。 Loaders分类内的各种节点一般被用于加载Stable Diffusion生成过程中需要用到的各种模型一一不只是Checkpoint大模型,包括LoRA、VAE乃至ControlNet在内的各种模型都可以借助它里面的节点来加载。 Conditioning分类内的各种节点一般被用于为Stable Diffusion的生成过程添加各种"条件",并对这些条件进行编辑、重组。提示词(Prompt)可以被当做一种文本条件,通常是这些条件里最为核心的一部分。 Latent分类内的各种节点主管与"潜空间"有关的操作。反映到具体本操作上,包括图像的编解码(VAE)、尺寸定义及缩放等。如果你了解了Latent的原理,你会对它在这些流畅中的"作用"有更清晰的认知。 CLIP也是一种机器学习模型,全称叫做"对比性语言-图像预训练"(Contrastive Language-Image Pre-training),是StableDiffusion模型中用于理解图像和文本间关联的部分。此处的连线,可以理解为利用模型内置的CLIP来帮助后续的提示词框解读我们输入的文本信息,并将其转化为"条件"(Conditioning)输送至后续节点。 VAE即"变分自编码器"(Variational Auto Encoder),可以将一张图片转换为潜空间变量(或逆向转换),是像素空间与潜空间的桥梁。在Stable Diffusion中,我们的所有生成操作都是在潜空间内完成的,因而需要VAE将运算的潜空间数据转换为我们肉眼可以辨析的"图片"。 Strength_model/strength_clip:这两个权重数值分别被用于调节模型内的CLIP与主模型的权重。在大多数UI中,这两个选项会被"合并"为一个数字。例如,将LoRA强度设置为0.8与将strength_model和strength_clip都设置为0.8相同。 调度器: Norma:平均降噪,泛用式调度器,是一个线性的降噪。 Karras:曲线降噪,较为平滑,是一个S型的降噪。 Exponential急速降噪:断崖式的降噪,收敛较快。 采样器:采样器和调度器在SD中是一起的,Comfy里分开了 randomize:每次生成后都随机一个新种子 fixed:固定种子 increment:生成后种子数+1 decrement:生成后种子数-1   Comfy基础操作
【吐司创造营】特训班第二课:正则化训练!Lora的更多训练方法等你来解锁!

【吐司创造营】特训班第二课:正则化训练!Lora的更多训练方法等你来解锁!

该文章由【吐司创造营】直播的部分脚本编成,部分操作向和演示向内容无法用文本撰写,故推荐配合回放观看效果更佳。部分观点来源网络,如有错误欢迎指正! 本期文章对应回放为👉:BV1Vt421j7hc 概念 本质上是dreambooth的内容,通过添加额外的约束和惩罚项,来改进学习算法的表现,以减少过度拟合问题,能提高模型的泛化能力。正则化是一种先验知识。就像临摹字帖,提前学习数据,让AI知道它的训练范围在哪儿。   好处 避免了过拟合可能会带来的各种崩坏情况; 给机器一个参考图片,机器就会根据参考图片去学习; 提高模型的精准度 数据集质量不高或者数量少,就需要正则化来限制模型的复杂程度,避免过拟合   正则化图片的选取原则 正则化图片放训练集以外的内容但是和原训练集有某些共通之处 图片数量一般多余数据集 不需要打标 训练细节且原本模型里面体现不出来的特征 相同底模,对想泛化的特征出图   多类型lora的详细用法 多合一lora:通过不同触发词来调用 强调面部特征 10_face 10_body 多服装进一个lora 10_reddress 10_bluedress 强调姿势 5_dance 10_body   功能性lora:加强特征 加强某个关键词的特征,让他更稳定效果更好,如果prompt词里面出现了正则化里的关键词,则效果会被放大 正则化- 先验损失权重prior_loss_weight:默认1,正则本身的影响权重,1的话代表你在正则里放的图片和训练集里图片的权重是一样的,你的正则100%影响你的训练集 dim和alpha尽量小一点,让原本画风对他的污染效果变低   手动正则法:泛化特征,在少量数据集的情况下使用 数据集更少的情况下可以使用镜像翻转,数据集不足势必要在更多地方花更多的时间。比如粗略的用1张图出lora,然后通过lora出图再作为训练集进行下一步的训练。通过控制repeat数可以控制三个文件夹中图片的权重。 原因:不适用系统正则是因为图片少,正则的权重不好控制,不如直接调控repeat 内容: 4-5张各种姿势,内容可以通用。 使用nsfw的内容可以不污染服装,脸部需要涂黑(遮罩)并且绑定在faceless上,只要不输入faceless是不会出现黑块的。 保证reg文件夹中的图片数×repeat等于或略微大于body文件夹中的图片数×repeat 、 tag原则 发色瞳色等简单特征全部删除 为头部、上半身、下半身、脚分别设置触发词 细节,头饰、纹身之类的建议保留 补充 locon:随机洗像素,也是提高泛化性的一个手段,不用卷积会更偏向原数据集的图片,缺点是人物姿势比较固定,比较适合炼画风,更有随机性。 卷积和正则化都是降低模型的拟合度增加模型的泛化性,让模型更有随机性,不适合人物的训练。
【吐司创造营】特训营第一课:模型训练!你想知道的都在这里!

【吐司创造营】特训营第一课:模型训练!你想知道的都在这里!

该文章由【吐司创造营】直播的部分脚本编成,部分操作向和演示向内容无法用文本撰写,故推荐配合回放观看效果更佳。部分观点来源网络,如有错误欢迎指正! 本期文章对应回放为👉:BV1BZ421e7fE 概念 基本定义:将提供数据、引导机器学习的过程叫做训练,训练得到的结果叫做模型,用模型解决问题的过程叫推理。 数据集=图像+文本,图片里蕴含的"像素分布规律",解释这些不同颜色的像素点是如何排列组合形成各种事物的。 Embedding:嵌入向量的本质是一串很长的数字序列,每个数字对应一个维度,用于描述某一种向量空间里的特征。向量指一个同时具有大小和方向的量。 提示词:分解为token(机器学习里的一个最小语义单位),文本编码器会将token里的含义转换成一组拥有768个维度的词元向量token embeddings,vae变分自编码器把向量转换回肉眼可以分辨的正常图片。 生图还原度:将提示词里的各种描述信息转换成了一个个向量然后和训练时掌握的各种规律一一对号入座。 训练方法 Dreambooth——Checkpoint Lora——Lora Textual Inversion——Embedding 正式训练流程 训练集准备:训练集注重的是质量,数量则保持在15 -30张图片以上即可。 一个characters 人物角色需要10 到50 张训练图片, styles 某种风格则需要100 到4000 张,某种concepts 概念则需要50 到2000 张。 eg.如果是训练脸部模型,则需要照片的主体区域大部分为人脸,各个角度,多种表情,不同光线下的,清晰的脸部图片。构图简单一些,尽量少一些背景元素对前景人脸的干扰,避免重复高度相似的图像,以避免过拟合。可以适当有一两张全身像。 其他主题也是一样的考虑,训练什么,训练集的图片中的主体就突出什么。围绕不同角度,多进行取材。避免画面中其他元素的干扰。 图片预处理:让训练集更符合模型训练本身的规范,即裁剪和打标。   裁剪:SD1.5 最低512*512,SDXL 1024*1024,可以裁剪成长方形,但一定要是64x的倍数。   打标:不是越多越好,机器打标不一定100%准确,模型标签的筛选有一个非常简单好记的原则,需要什么就删除什么(绑定在模型上,不需要输入词就可以生成);触发词不能是通用词语需要是词典里没有的单词,不然会让AI产生混乱。任何你没有标注的内容,就是模型要学习的主要对象的天生内在的独有特征。风格、概念的打标不用太过于细致,调一个相对低的打标阈值。 Mixed precision混合精度:no、fp16、bf16 三个选项。此为设置训练期间权重数据的混合精度类型,用以节省CRAM。最初,权重数据是32位的(即在设置为no 情况下)。fp16 是一种精度减半的数据格式,它可以节省大量VRAM (显存)并提高速度,但效果没有bf16 好。bf16 是NVIDIA RTX30 系列显卡以后的版本才有的,是一种用于处理与32 位数据相同的数字宽度的数据格式。如果你的硬件支持bf16,最好选择它。如果VRAM 小于16G 的话,请选择fp16。  Save precision储存精度:float、fp16、bf16三个选项。此为指定要保存到LoRA 文件中的权重数据的精度。float 是32 位,fp16 和bf16 是16 位。 默认值为fp16。同样,bf16 的效果要好于fp16,但需要硬件的支持。如果你想缩小模型的文件尺寸,该选项将起到一定的帮助(如果你通过DreamBooth 或Fine-tuning 方式存储模型文件为Diffusers 格式,则设置该选项无效)。 正则化:用于避免图像过拟合的方式(见第二课)  调度器:一般设置为constant 或者constant_with_warmup。 如果下面的Optimizer 优化器设置为Prodigy神童,则Prodigy 在学习率调度器为constant 的设置下可以很好地工作,学习率统一设置为1。如果设置为constant_with_warmup 以配合Prodigy,则需要更多的学习步数。大约10 % 学习率预热LR warmup 时,可能需要一两个额外的epoch 轮数来补偿。 LR warmup (% of steps)滑块:1~100数值选择。此为学习率预热步数,一般以总学习步数的百分比形式出现,即总学习步数的前百分之多少步为逐渐预热期。所谓逐渐预热是指学习率从0直至事先设定的最高学习率的逐渐提高过程(学习率的提高代表着学习速度的提高,即学习得越来越不细腻)。 调度程序中选择了constant_with_warmup 则设置此项,如果你的调度程序不是constant_with_warmup,则可以忽略它。默认为10,即10%。  优化器:决定了AI如何在这个过程里把控学习的方式,直接影响到学习效果。此项默认为AdamW8bit。优化器是确定在训练期间如何更新神经网络权重的设置。LoRA 学习最基础用的是“AdamW”(32位)或“AdamW8bit”(8位)。 AdamW8bit 使用较少的VRAM 并且具有足够的精度,因此如果你不确定哪个更适合,请使用“AdamW8bit” 。另外,融合了Adam方法,根据学习进度适当调整学习率的“Adafactor”也经常被使用(使用Adafactor优化器时,学习率调度设置则被忽略)。 “Lion”是一个相对较新的优化器,尚未得到充分验证,据称AdamW 更好。“SGDNesterov” 学习准确率不错,但速度较慢。DAdaptAdam 是比较稳妥的通用的选择,Prodigy 则是Dadaptation 的升级版,适合在SDXL 的环境,它会随着步数增加寻找最优的学习率,在训练SDXL 的LoRA 模型时选择它可以达到很好的结果。 学习率:AI学习这些训练集图片的强度,学习率越高,AI就更能学的进去。(学习率越大学习速度越快但学得也越粗犷,反之越细腻但效率也越低。) 过拟合:AI过于紧密或精确的匹配训练用的数据集导致它无法良好地根据新的数据生成新的结果。 关于Optimizer 优化器额外的解释和建议 Lion 的训练结果经常给人一种很奇特的感觉,比如你要想训练一个有着白色头发的角色,结果训练出来的模型的头发却呈现出了彩虹色的混乱效果,于此同时用其他优化器训练同样的训练集则会得到正确的白色头发效果,这足以证明Lion 可能存在某种不一样的地方,会为模型添加某些独特的元素,但现在尚无人能总结出确切的规律。 Lion 的学习速度相当快; AdaFactor 在训练时需要很长的时间,每训练一步时间都很长。它可能更适合风格或概念类的模型这种需要更多步数的训练; DAdaptation 目前已经被重命名为DAdaptAdam。它是一种自适应的优化器,即它会动态地自动地调整训练中的数值,省去你手动操作繁琐工作。 只要训练集本身没有问题,它通常会让你以最少的时间付出给出非常好的结果。目前为止,它应该算是最好用的优化器了。 DAdaptation 需要特定的参数设置才能起作用: --optimizer_args “de Couple=True” “weight_decay=0.01” “betas=0.9,0.999” 。 Scheduler 调度程序必须设置为constant 常量。 在使用DAdaption 时,很多网上提供的经验显示U-Net 和TE 的学习率似乎最好都是1.0,这个大家可以自己去尝试看看。不过,有一个问题需要注意, DAdaptation 对VRAM 的需求很重。它在batch size 为1 (512x512) 的情况下,使用6.1GB 的VRAM,因此6GB VRAM 用户将无法使用它。 在这种情况下,AdaFactor 可能是一个较好的替代方案。在尝试了各种Alpha 值来对应Dadaptation 之后,似乎Alpha 1 和Alpha 64( Network Rank (Dimension) 为128)。建议将Alpha 的值保持在Network Rank (Dimension) 的1 到一半之间(也就是说Rank 为128,则Alpha 的值设置为1~64。如果Rank 为32,则Alpha 的值设置为1~16); Prodigy 可是被视为DAdaptation 的升级版本,因此它与DAdaptation 一样, DAdaptation 的所有属性和注意事项也同样适用于Prodigy,VRAM 的使用率和训练速度大致也相同,设置也非常相似。同样的,Prodigy 具有自适应能力,可以随时自动调整数值以优化训练,似乎调整起来比Dadaptation 更精准。 Prodigy 可以用于SDXL 的LoRA 训练和LyCORIS 训练。在少量的测试中,我们发现在使用已经训练成功的LoRA 所配套各种参数和训练集的情况下,把DAdaptAdam 替换成Prodigy 可以得到更好的结果,进一步的确认还需要之后大量的训练实验来确定。尽管在之前的很多次训练尝试中,我们已经能够确认DAdaptAdam 是目前为止最好用的优化器,但是这不妨碍它的升级换代产品Prodigy 在未来成为更优秀的优化器的可能性,让我们拭目以待。Prodigy 可以设置如下的optimizer arguments 优化器参数:--optimizer_args “decouple=True” “weight_decay=0.01” “d_coef=2” “use_bias_correction=True” “safeguard_warmup=False” “betas=0.9,0.999”; 拟合状态判断 Network Rank (Dimension) :1~1024数值选择:LoRA 网络的“秩数”或“维度”(Rank 或DIM)。在LoRA 神经网络中,Rank 可以粗略地指代LoRA 网络的中间层的神经元数目。Rank 常用4~128,不是越大越好。神经元数量越多,可以保留的学习信息越多,但学习到学习目标以外的不必要信息的可能性也会增加。一般设置为64,再高必要性就不大了,超过了128 之后基本不会有什么变化。如果是32,越高的DIM 导致越多的占用VRAM 和越大的模型文件。此项的默认值为8 ;dim越高,要微调的数据量就越多,进而能够容纳更复杂的概念。复杂画风,二次元复杂程度比三次元低。   如何判断rank是否合适 需要增加Rank的情况:训练集图片增加(100张以上);训练复杂概念及画风;疑似欠拟合(学不像) 需要降低Rank的情况:出现突兀细节;出图效果混乱;疑似过拟合   Network Alpha(alpha for LoRA weight scaling):越接近rank则lora对原模型权重的影响越小,越接近0则lora对权重的微调作用越显著;0.1~1024数值选择。(实际上是1~1024 取值)这一参数的引入是为了防止保存LoRA 时权重四舍五入为0,即下溢。由于LoRA 的特殊结构,神经网络的权重值往往很小,如果变得太小,可能会变得与零无法区分,这与没有学习到任何东西的结果是一样的。 因此,提出了这种方法,以使LoRA 保持较大的权重值。在学习过程中,系统总是以恒定的速率将权重削弱一定的百分比,以使权重适当变小,但是削弱的步伐太激进则会下溢。Network Alpha 则决定了这个“权重削弱率”( weight weakening rate )。 权重削弱率是通过公式“Network_Alpha/Network_Rank”来表达的,值在0 到1 之间。 Network Alpha 值越小, “权重削弱率” 则越小,导致LoRA 神经网络的权重值就会保存越大,训练的LoRA 模型越有创造力。但是太小也不好,当到达了Alpha 的默认值1 时,则会与训练集风格差距太远。如果LoRA 训练学习后的准确率不令人满意,则有可能是权重太小以至于崩溃为0。在这种情况下,可以选择尝试降低Alpha 值,以降低削弱率,从而增加权重值来解决。Alpha 的值应该设置得比Rank 值小,如Rank 的一半(适合训练人物LoRA 模型),即Rank 若为64,Network Alpha 设置为32 ,此时的情况下所使用的权重削弱率为32/64 = 0.5 。如果Network Alpha 和Rank 具有相同的值,则该效果自动关闭。Alpha 不能高于Rank 值,虽然可以指定更高的数字,但很可能会导致意外的LoRA。另外,在设置Network Alpha 时,需要考虑到对LR 的影响。比如,权重削弱率为0.5(设置Alpha 为32,DIM 为64),这意味着实际LR 仅为LR 设置值的一半效果。一般在网络上普遍的建议是Alpha 的值是Rank 的一半,且尽量都为16 的倍数。 Enable buckets : “桶”,顾名思义就是“一个桶的容器”。 LoRA 的训练集图像不必具有统一的尺寸,但不同尺寸的图像不能同时进行训练。 因此,在学习之前,需要将图像按照大小分类到不同的“桶”中。尺寸一样图片放在同一个桶中,尺寸不同的图片放在不同的桶中。默认为勾选开启,即系统会自动把不同尺寸的图片放在不同的“桶”中。如果训练集的图像原本尺寸相同,你便可以关闭此选项,但保持打开状态并不会有任何影响;此选项,使得在准备训练集阶段特地将图片尺寸手动剪裁为512*512、或512*768 等等这样的工作变得毫无意义。因为,通过bucket “桶”这个概念可以很好地保留不同尺寸的图像,节省了事先准备的时间,更重要的是保留了图片中应有的细节。  Weights(权重)、Blocks(块)、Conv( Convolutional Neural Network,或CNN,卷积神经网络),这三个子标签是U-Net 中每个块的learning weight 学习权重和Rank 秩的设置。从U-Net 网络结构图中可以看到,U-Net 总共由25 个block “块”(或称为“层”)组成:12个IN 块、1个MID 块和12个OUT 块。这是U-Net 网络的标准结构。如果你想改变每个块的学习率权重,你可以在这里单独设置。选择这三个中的任意一个,下面的设置区域将显示相应设置内容。这些设置适用于高级用户属于更细腻的设置。一般情况下是不需要的,如果你确定了解这些细节,并能对微调这些细节十分了解,再对此区域进行设置。  Blocks: Block dims/Block alphas:在这里,你可以为U-Net 网络的25个块中的每一个设置不同的Rank(DIM)值和Alpha (Network Alpha)值:IN 0~11、MID 和OUT 0~11。(通常Rank 较高的块则可以容纳更多的信息。)此处需要指定25 个数字,即对应U-Net 中的25个块,为每个块都要指定一个数值。但由于LoRA 是将Attention 块作为学习目标的,而Attention 块并不存在于IN0、IN3、IN6、IN9、IN10、IN11、OUT0、IN1 这些块中,因此这25 个数字中的第1、4、7、11、12、14、15 和16 的块在学习过程中将被忽略。尽管如此,你仍需要填写出全部的25 个数字,以“,”半角逗号分割。(确实,此设置的用户界面不够友好,希望以后这个设置能更好用一些)此设置适用于高级用户。 一般情况下,你可以在此处留空。 如果未指定,则Network Rank(DIM)和Network Alpha 处设置的值将应用于所有25个块。  Conv: Conv dims, Conv, alphas:LoRA 针对Attention 注意力块进行训练,Attention 中有一个Conv 卷积神经网络(Convolutional Neural Networks, CNN) ,它也是通过额外的学习进行更新的。 其中使用的“过滤器”的大小是1x1 正方形。另一方面,除了Attention 之外的一些块(Res、Down 块)和OUT 中的一些Attention 块使用的是3x3 “过滤器”进行卷积。 本来这些块并不是LoRA 的默认学习目标,但是通过指定这个参数,Res 块的3x3 卷积也可以作为学习目标。因此,由于学习目标的数量增加了,便可以进行更精确的LoRA 学习。设置方法,同之前的Blocks: Blocks dims, Blocks alphas ,也需要设置25 个值,以“,”半角逗号分割。同样,此设置适用于高级用户。 一般情况下,你可以在此处留空。如果未设置,则Conv 不进行学习。  Clip skip :0~12 数值。Stable Diffusion 使用“CLIP” 来进行提示词的文本的数字化编码。CLIP 也是一种深度神经网络,它由12 个相似的层组成。文本(实际上是token)最初通过这12 个层转换为数字序列的表达,即向量形式的表达。在第12 层,即最后一层输出出来的向量则被发送到U-Net 网络中的Attention 块进行处理。根据经验:如果你选择基础模型是真实质感的,最好选择Clip skip= 1,如果选择的基础模型是绘画与动漫质感的,最好选择Clip skip= 2。  Noise offset type: Original/Multires。噪点偏移类型。此处用于指定在向训练图像添加额外噪点时使用哪种offset 偏移方法。默认为Original。 Multires 则以稍微复杂的方式添加噪点。复杂一点的噪声将更有利于训练出能生成整体更明亮或更昏暗的图像的模型。Stable Diffusion 有一个大多数人都没有注意到的有趣的小瑕疵。如果你试图让它生成特别暗或特别亮的图像时,它几乎总是生成总亮度的平均值相对接近于0.5 的图像(一个完全黑色的图像是0,一个完全白色的图像是1)。这是由Stable Diffusion 模型的噪点预测器的本质所决定的。所以接近办法也自然地是在噪点预测环节进行调整,即添加某些额外的噪点,即Noise offset 噪点偏移。  Noise offset : recommended values are 0.05~0.15 :这是当噪点补偿类型选择为Original “原始”时的附加选项。 如果你在此处输入大于0 的值,则会添加额外的噪点。 设置为0 ,根本不添加噪声。设置为1 增加了强烈的噪音。有报道称,添加约0.1 的噪声可以使LoRA 的颜色更加鲜艳。 默认值为0。  Multires noise discount :recommended values are 0.8. For LoRAs with small datasets, 0.1-0.3 :0~1 数值。与多分辨率噪点迭代选项结合使用。 该值用于在一定程度上减弱各分辨率下的噪点量。 0 到1 之间的值。数字越小,噪点越弱。 衰减量根据分辨率而变化,并且低分辨率的噪点被衰减得更多。默认值为0,通常建议0.8,如果训练图像较少,建议将值降低到0.3 左右。 Multires noise iterations :enable multires noise (recommended values are 6-10) : 0~64 数值。当噪点补偿类型选择Multires “多分辨率”时,则展示该设置项。 Multires “多分辨率”会产生多种分辨率的噪点,并将它们加在一起以创建最终的附加噪点。如果你在此处输入大于0 的值,则会添加额外的噪点,数值则代表分辨率噪点的种类的数量。默认为0,为0 时不添加额外的噪点。 建议设置为6 ~10 中的数值。   进程中如何判断LORA的完成度 loss值:越低说明拟合程度越高,0.08左右最好。   可用于吐司在线训练工作台参数
【吐司创造营】第一期第四课:ControlNet!一网打尽全16种控制方式!

【吐司创造营】第一期第四课:ControlNet!一网打尽全16种控制方式!

 该文章由【吐司创造营】直播的部分脚本编成,部分操作向和演示向内容无法用文本撰写,故推荐配合回放观看效果更佳。部分观点来源网络,如有错误欢迎指正! 本期文章对应回放为👉:BV1Ep421y7KX 一、ControlNet定义 以特定信息引导,实现一些我们通过文生图、图生图不好精准控制的特征。 预处理器可以从图片里提取特征信息,训练过的controlnet模型读取这些信息,并引导SD生成过程。 ControlNet 的核心能力就是能让我们通过设置各种条件来让AI更可控地生成最终图像结果。这些条件就是通过调节预处理器参数来实现的,所以我们首先要先了解下ControlNet 各种预处理器的功能。   二、参数详解 控制权重:主要影响控制力度 引导实际:生成过程中controlnet的生效时间 控制模式:更倾向于提示词还是controlnet 改变控制力度的方式: 加大力度: 提高权重 降低开始引导步数并提高结束引导步数 选用controlnet更重要模式 降低力度: 减小权重 提高开始引导步数并降低结束引导步数 选用提示词更重要模式   三、ControlNet详解 ControlNet的大致分类 轮廓类 Canny:边缘检测预处理器可很好识别出图像内各对象的边缘轮廓,常用于生成线稿。控制线条轮廓,线条粗细是一样的,白底黑线线稿应该用inver,反色成黑底白线才可以正常识别,线条不宜太过密集。 MLSD:M-LSD 线条检测用于识别画面里的直线条,生成房间、直线条的建筑场景效果比较好。M-LSD 直线线条检测预处理后只会保留画面中的直线特征,而忽略曲线特征。 Lineart:跟canny比较像,但是会有一些艺术化的处理,它的使用场景会更加细分,包括Realistic 真实系和Anime 动漫系2 个方向。Lineart 是有的明显笔触痕迹线稿,更像是现实的手绘稿。 SoftEdge:控制线条轮廓,但更加柔和,放松,线条有粗有细;几种预处理器没有太大差别,与canny对比,对轮廓线条的还原更生动,不会太过于刻板。它的特点是可以提取带有渐变效果的边缘线条,由此生成的绘图结果画面看起来会更加柔和且过渡自然。在官方介绍的性能对比中,模型稳定性排名为PiDiNetSafe > HEDSafe > PiDiNet > HED,而最高结果质量排名HED > PiDiNet > HEDSafe > PiDiNetSafe,综合考虑后PiDiNet 被设置为默认预处理器,可以保证在大多数情况下都能表现良好。 Scribble:涂鸦引导画面生成,应用一些灵魂画手,它检测生成的预处理图更像是蜡笔涂鸦的线稿,在控图效果上更加自由。 Segmentation:语义分割,用颜色把不同类型的对象分割开,它可以在检测内容轮廓的同时将画面划分为不同区块,并对区块赋予语义标注,从而实现更加精准的控图效果,让AI能正确识别对象类型和需求生成的区界。比如说绿色代表的是草地,蓝色代表的是天空。 景深类 Depth:深度图,通过提取原始图片中的深度信息,生成具有原图同样深度结构的深度图,越白的越靠前,越黑的越靠后。leres精度高,midas较为泛用,精度越高的预处理,花费时间一般越久。 对比来看,LeReS 和LeReS++的深度图细节提取的层次比较丰富,其中LeReS++会更胜一筹。而MiDaS 和ZoE 更适合处理复杂场景,其中ZoE 的参数量是最大的,所以处理速度比较慢,实际效果上更倾向于强化前后景深对比。   NormalMap:法线贴图,法线贴图能根据原始素材生成一张记录凹凸信息的法线贴图,便于AI给图片内容进行更好的光影处理,它比深度模型对于细节的保留更加的精确。法线贴图在游戏制作领域用的较多,常用于贴在低模上模拟高模的复杂光影效果。更精准的识别物体的凹凸体积关系,甚至是材质,常见用于室内设计,产品设计。对比Bae 和Midas 预处理器的出图效果,也能看出Bae 在光影反馈上明显更胜一筹。 对象类 Openpose:姿势生成,可生成图像中角色动作姿态的骨架图,控制姿势、手部、面部。   重绘类 Inpaint:类似局部重绘,但是融合会更好。局部重绘这里提供了3 种预处理器,Global_Harmonious、only 和only+lama,整体来看出图效果上差异不大,但在环境融合效果上Global_Harmonious 处理效果最佳,only 次之,only+lama 最差。 Tile:无缝拼接,用来添加细节和高清放大;Tile 中同样提供了3 种预处理器:colorfix、colorfix+sharp、resample,分别表示固定颜色、固定颜色+锐化、重新采样。看到三种预处理器的绘图效果,相较之下默认的resample 在绘制时会提供更多发挥空间,内容上和原图差异会更大。 Shuffle:随即洗牌,打乱噪声和像素点,提取颜色信息和色彩。随机洗牌是非常特殊的控图类型,它的功能相当于将参考图的所有信息特征随机打乱再进行重组,生成的图像在结构、内容等方面和原图都可能不同,但在风格上你依旧能看到一丝关联。 pix2pix:指令性的controlnet,指导图生图,它的功能可以说和图生图基本一样,会直接参考原图的信息特征进行重绘,因此并不需要单独的预处理器即可直接使用。比如说着火。 特殊类 Reference:参考信息,根据原有的图像信息去生成。这里提供了3 个预处理器adain、adain+attn、only。其中adain、adain+attn 是V1.1.171 版本后新增的预处理器,其中adain 表示Adaptive Instance Normalization 自适应实例规范化,+attn 表示Attention 链接。 Recolor:重新上色,黑白图像变成有颜色的。它的效果是给图片填充颜色,非常适合修复一些黑白老旧照片。但Recolor 无法保证颜色准确出现特定位置上,可能会出现相互污染的情况,因此实际使用时还需配合如打断等提示词语法进行调整。这里也提供了intensity 和luminance2 种预处理器,通常推荐使用luminance,预处理的效果会更好。 T2I-Adapter 文生图适配器:它的作用是为各类文生图模型提供额外的控制引导,同时又不会影响原有模型的拓展和生成能力。 IP-Adapter 图生图适配器:要用来提升文生图模型的图像提示能力 Clip_vision:腾讯出的,color adapter是用图控制色彩,style adapter是用图控制风格。
【吐司创造营】第一期第三课:图生图专题!在吐司能实现的多种效果!

【吐司创造营】第一期第三课:图生图专题!在吐司能实现的多种效果!

该文章由【吐司创造营】直播的部分脚本编成,部分操作向和演示向内容无法用文本撰写,故推荐配合回放观看效果更佳。部分观点来源网络,如有错误欢迎指正! 本期文章对应回放为👉:BV1SA4m1A7kp 一、 图生图生成原理 有两个非常重要的空间,pixel space 像素空间,和latent space 潜空间,文生图的流程是,先输入提示词,通过clip encoder 就是编码器,转换成sd可以理解的数据传入潜空间,在潜空间中会生成一个随机的噪声,然后通过大模型进行干预,采样器开始降噪,经过几十次的迭代后,生成我们想要的图像,最后通过解码器vae decoder到pixel space像素空间,就是我们能看到的图。 二、吐司通过图生图能实现的效果 那回到我们吐司的工作台来,我们可以通过吐司图生图达到哪些效果呢。 快速抽卡:这里教大家一个如何节省算力快速抽到自己喜欢的卡然后单独进行高清放大的方法,首先我们设置都最低,然后下面的批量数量调整为4,开始低成本抽卡,抽到自己喜欢的之后,再单独选择右上角的高清放大,将它单独送到高清修复里面,然后就可以得到一张比较满意的高清大图。 像素修复:这个比较经典的案例大家可能前段时间经常看到,就是修复一些比较古早的人物角色或者说道具,那我们今天就以修复英雄联盟的游戏装备图标来给大家展示一下图生图的具体用法,期间会用到几个controlnet给大家也做一个预习吧,具体的controlnet的实际应用记得准时来下周的controlnet专题课程。 前期准备:模糊游戏装备图 反推提示词 大模型:ReV Animated lora:玉器/木雕文玩0.8 controlNet:无缝拼接——tile_colorfix+sharp 色彩继承——t2ia_color_grid VAE:vae-ft-mse-840000-ema-pruned.ckpt 高清修复:修复方式:4x-AnimeSharp 重绘噪声强度:0.5 这个方法可以用于各种类似的使用场景,比如说老照片修复。 外部图片放大:如果我有一张sd里的图片,我想在吐司发帖存档怎么办,今天就跟大家传授一下这个小方法。首先还是图生图,这边我们复制一下你在sd里的使用参数然后复制到吐司中来,自动填充了,这里注意一下我们把重绘幅度调整到0.1,基本上不变然后出图,可以看到跟我们的原图差别不大。然后再对这张图片进行单独的高清放大。这张图现在就变成一张可以在吐司发帖的图片了,大家可以发帖然后存在自己的个人账户里。 二转三或者三转二:这个大家在comfy工作流里看的比较多,但其实最基本的webui也可以实现类似的效果,比如说,我想把一个人变成迪士尼风格,只需要调整一下大模型和lora。   三、技术详解 我们第一节课有讲21年到24年3月份的一个ai技术发展时间线,然后我们应该如何选择和利用这些新技术。 首先我们梳理一下基础模型: SD1.4:官方出的,这个比较少见了,有少数大模型创作者还在更新这个算法的模型,可以忽略。 SD1.5: 官方出的,目前应用最广的基础模型,其基础尺寸为512px,虽然新的技术在不断出现,但估计这个算法还得在一段时间内占据主流。 SD2.0/SD2.1:官方出的,其基础尺寸为768px,剔除了一下NSFW的内容,但是导致人体结构出图效果很差,在SD2.1的时候对该问题进行了修复。 SDXL: 官方出的,逐步占据主导地位,基础尺寸为1024px,其整体图片质量要高于前面3种模型,但生成速度也相对慢不少。 LCM: 清华大学开发的一种可以用更少的采样步数来快速生成图片的技术,但其图片质量要明显比前面基础算法的逊色,目前有少量应用在SD1.5上的模型,不过用在SDXL上的也不算多,因为它刚出来没几天,就有更好用的turbo问世了。 Turbo: 官方出的,主要应用于SDXL基础模型的快速图片生成技术,少见于其它算法,需要的采样步数比LCM还要少,有的模型2步即可生成不错的图片,但其质量也稍逊色于基础的SDXL。 (LCM和Turbo这两个技术的出现象征着ai生图进入实时出图阶段) Lightning: 字节跳动开发的,截止今日最新的快速出图技术,2-8步即可出图,其整体质量高于LCM和Turbo,估计会逐渐替代两者,但在它流行前会不会出现更好的技术还不好判断,因为AIGC技术的更新速度太快了。 Stable Cascade:官方出的模型,其用法与SD不同,官方声称可以更快的生成更清晰的大图像,但我在使用中并没有感受到它快,图片质量好倒是真的。comfy已有专门用于cascade的节点。 有一个up主做了一个测试,保证输入完全一样的情况下,只切换模型,然后肉眼观察出图质量。这边直接上最后的结果。 LayerDiffusion:是由那个开发出Controlnet的作者张吕敏,最新推出的一种透明图像生成技术,它的核心所在是“潜在透明度”,即将Alpha 通道整合到预训练模型的潜在结构中,使模型能够生成带有透明度的图。不仅可以生成一般物体,而且对于玻璃、发光这种透明/半透明的对象,以及头发丝这种精细的内容,生成的效果依旧完美。极大提升了出图效率,而且真正做到了“毫无抠图痕迹”,再也不用担心有白边了。除了直接生成透明底图像,LayerDiffusion 还支持生成分层图像。包括根据一个透明底图像生成完美融合的背景,并将该背景提取为完整独立的图层;以及根据背景图像+提示词生成前景主体,并将该主体提取为透明底图层。 Playground:PlaygroundAI发布的开源模型,官方声称其优于SDXL,1024px的基础尺寸,官方说直出效果比SDXL好,它的使用方法与SDXL一样,有兴趣的同学可以尝试下,抱脸上搜索playground即可,注意需要及时更新comfy才能适配新算法的模型。可能因为没有及时适配的原因暂时无法在webUI中使用。 Pony Diffusion: 一个叫做Pony Diffusion V6 XL的大模型,仅仅上架C站不到半个多月,就获得了1.7万(17k)的下载量,熟悉C站的朋友应该知道,这是个很惊人的数字。Pony用于SDXL的微调,有一些以Pony为基础制作的大模型,多是与Pony Diffusion配合使用,可使用SDXL的VAE,但使用SDXL的Lora效果不一定好。Pony模型需要一些固定提示词,否则出来的图片会很糟糕,在收集Pony模型资料时可以留意下。 作者自己表示:该模型结合了自然语言提示和标签进行训练,能够理解两者,因此大多数情况下使用正常语言描述预期结果是有效的,尽管您可以在主要提示之后添加一些标签以提升它们。该模型在基于作者个人偏好的约260 万张美学排名的图像上进行训练,动漫/卡通/拟人/小马数据集的比例约为1:1,安全/可疑/成人评分的比例也是1:1。 大约50% 的所有图像都附有高质量详细字幕,这使得自然语言能力非常强大。所有图像都已用字幕(当可用时)和标签进行训练,移除了艺术家姓名,并根据我们的同意/不同意计划过滤了源数据。 已过滤掉涉及未成年角色的任何成人内容。 Stable Video Diffusion:官方的模型,可以用来生成简单的视频。 Stable Zero123: 还是官方的模型,可以为物体生成不同角度的图片,它目前只能针对简单的物体。   大语言模型: 好说完这些我们来看一下大语言模型Grok,马斯克,OpenAI 曾经的联合创始人,更是连夜发布了他新创办的AI 公司xAI 的首款产品Grok。 Grok-1这种方式可以适应多种不同的任务和应用场景,更适合那些想要用开源模型打造自己专有模型的开发者。 技术架构上,和GPT-4一样,Grok-1采用了大规模参数的专家混合模型(Mixture-of-Experts, MoE)架构,可以将大型网络分解为多个“专家”子模块,每个子模块负责处理不同类型的信息或任务。底层技术上,Grok-1选择使用了基于JAX(一个由Google开发的用于高性能机器学习研究的库)和Rust(一种注重安全性和并发的系统编程语言)的自定义训练堆栈。这并不是大型语言模型中常见的选择。大多数知名的大模型比如OpenAI的GPT系列或Google的大模型通常是基于TensorFlow或PyTorch这样的主流深度学习框架开发的,且有丰富的API和社区支持,能让模型开发和训练变得更高效。   优势: 语言更诙谐幽默,更人性化,不那么机器人化。 Grok 支持多个「对话」同时输出,一边写代码一边回答问题,也不在话下,大大提高了用户的工作和娱乐效率。Grok 支持展开多个对话|xAI如果用户对现有的「回答」不满意,还可以展开时间线,直观地导航到不同版本的「回答」,还可以随时切换、修改历史对话记录。这一功能在长对话场景中,具有非常强大的管理优势。 支持超长提示词理解(Super Prompt):可以处理25k 的token 的字符。 快速响应:提供即时反馈,可以实现近乎零延迟的交互。 庞大的数据库:目前微调的数据来源是886.03 GB 版本的「The Pile」数据库,以及整个X 平台的海量数据。 支持语音输入提示词,输出回复。 「实时」搜索引擎,数据来源优先从X 上获取。 个性鲜明:搞笑且机智,远离枯燥的「政治正确」。 功能预测 API 功能确定会推出。 未来一定会支持图像生成,图像识别,语音识别等多模态,当前模型已经具备一些相关能力。 轻量版Grok 将会在特斯拉上实现本地化运行。
人物姿势提示词

人物姿势提示词

{ "综合": { "站立": "standing", "弯腰": "bent over", "弓背": "arched back", "拉伸": "stretching", "躺着": "lying on back", "趴着": "on stomach", "侧躺": "on side", "坐着": "sitting", "w坐割座": "wariza", "跨坐": "straddling", "四肢着地": "all fours", "jack-o": "jack-o' challenge", "双腿过头": "legs over head", "胎儿姿势": "fetal position", "自拍": "selfie", "通过腿看": "looking through legs", "二郎腿": "crossed_legs", "跪姿": "kneel", "萝莉坐": "kneeling&setting on floot", "裸露的肩膀": "bare shoulders", "坐在地上": "sitting on the ground", "提裙": "Skirt lift", "一字马": "standing split", "手臂在背后": "arms behind back ", "狗趴式": "doggystyle", "鸭子坐(女子座)": "wariza", "泡温泉": "half body under water", "张开腿": "spread legs", "趴着翘臀": "top-down_bottom-up", "開腳": "open your legs wide", "漏腋": "armpits", "坐在地上(XWX)": "w-sitting on the ground", "战斗姿态": "fighting_stance", "坐在椅子上": "sitting on chair", "瑜伽": "yoga", "绝对空域(大腿三角)": "thigh gap", "骑马": "horse riding", "掀裙子": "skirt_lift", "行走": "walk", "鸭子坐": "wariza", "正骑乘": "girl on top", "祈祷": "pray", "蹲着": "squatting", "坐在床上": "sitting on bed", "翘PP": "top-down bottom-up", "抱膝": "huddle, clasp knees", "公主抱": "princess carry", "侧躺着": "Lie on your side,", "**": "groping", "撩起衣服": "clothes_lift", "盘腿坐": "indian style,", "动态姿势": "dynamic pose", "敬礼": "salute" }, "姿态": { "侧身坐": "yokozuwari", "鸭子坐": "ahirusuwari", "盘腿": "indian style", "跪着": "kneeling", "躬躯": "arched back", "膝枕": "lap pillow", "学猫叫": "paw pose", "单膝跪地": "one knee", "蜷起身子侧躺": "fetal position", "仰卧": "on back", "俯卧": "on stomach", "坐着": "sitting", "屈膝抱腿坐": "hugging own legs", "立式跨骑": "upright straddle", "站着": "standing", "蹲着": "squatting", "绑在十字架上": "crucifixion", "双腿缠绕": "leg lock", "四肢着地": "all fours", "戴耳机": "hand on headphones", "鬼姿势": "ghost pose", "回头": "turning around", "歪头": "head tilt", "前倾": "leaning forward" }, "手势": { "嘘手势": "shushing", "翘大拇指": "thumbs up", "手放脑后": "arms behind head", "手放身后": "arms behind back", "手插口袋": "hand in pocket", "双手插口袋": "hands in pocket", "十指相扣": "interlocked fingers", "V字手势": "victory pose", "手在地板上": "hand on floor", "手在额头上": "hand on forehead", "手在肚子上": "hand on own stomach", "手在肩膀上": "arm over shoulder", "手搭别人的腿": "hand on another's leg", "手搭别人的腰": "hand on another's waist", "双手合十": "own hands clasped", "翼展双臂": "wide open arms", "手放嘴边": "hand to mouth", "手枪手势": "finger gun", "猫爪手势": "cat pose" }, "视线": { "远眺": "looking afar", "照镜子": "looking at mirror", "看手机": "looking at phone", "看向别处": "looking away", "透过刘海看": "visible through hair", "透过眼镜看": "looking over glasses", "面向观者": "look at viewer", "靠近观者": "close to viewer", "动态角度": "dynamic angle", "舞台角度": "dramatic angle", "凝视": "stare", "向上看": "looking up", "向下看": "looking down", "看向旁边": "looking to the side", "移开目光": "looking away" }, "整体": { "嗅闻": "smelling", "公主抱": "princess carry", "拥抱": "hug", "背对背": "back-to-back", "耶": "peace symbol", "调整过膝袜": "adjusting_thighhigh", "抓住": "grabbing", "战斗姿态": "fighting_stance", "走": "walking", "跑": "running", "跨坐": "straddling", "跳": "jump", "飞": "fly", "靠墙": "against wall", "躺": "lie", "从背后抱": "hug from behind", "遛狗": "walk a dog", "提裙": "skirt lift", "泡温泉": "half body under water", "骑马": "horse riding", "自拍": "selfie", "一字马": "standing split", "敬礼": "salute", "祈祷": "pray", "冥想": "doing a meditation" }, "上半身": { "伸懒腰": "stretch", "托腮": "gill support", "牵手": "holding hands", "单手叉腰": "hand_on_hip", "双手叉腰": "hands_on_hips", "招手": "waving", "撮头发": "hair scrunchie", "拉头发": "hair_pull", "抓别人的头发": "grabbing another's hair", "竖中指": "middle_finger", "弯腰": "bent over", "亲吻脸颊": "kissing cheek", "亲吻额头": "kissing forehead", "踮起脚尖吻": "tiptoe kiss", "头顶水果": "fruit on head", "咬手套": "glove biting", "脸贴脸": "cheek-to-cheek", "手牵手": "hand on another's hand", "双手交叉": "crossed arms", "双手张开伸直": "spread arms", "挥动手臂": "waving arms", "伸出手臂": "outstretched arm", "用手臂支撑": "carrying", "搂着手臂": "arm hug", "拿着": "holding", "拿着餐刀": "holding knife", "拿着枪": "holding gun", "拿着杯子": "holding cup", "拿着食物": "holding food", "拿着书": "holding book", "拿着魔杖": "holding wand", "打着伞": "holding umbrella", "捧着花": "holding flower", "拿着麦克风": "holding microphone", "抱着物品": "object hug", "抱着心": "holding heart" } }
衣服提示词

衣服提示词

{ "综合1": { "比基尼": "bikini", "系绳比基尼": "string bikini", "解开比基尼": "untied bikini", "前系带比基尼上着": "front-tie bikini top", "侧系带比基尼下着": "side-tie bikini bottom", "微小比基尼": "micro bikini", "泳装": "swimsuit", "连体泳衣": "one-piece swimsuit", "学校泳衣": "school swimsuit", "竞赛泳衣": "competition swimsuit", "运动服": "sportswear", "排球服": "volleyball uniform", "旗袍": "china dress", "水手服": "serafuku", "校服": "school uniform", "布鲁玛": "buruma", "高领衬衫": "collared shirt", "紧身衣": "leotard", "无肩带紧身衣": "strapless leotard", "高叉紧身衣": "highleg leotard", "丁字紧身衣": "thong leotard", "衣服下紧身衣": "leotard under clothes", "紧身衣服": "taut clothes", "紧身衬衫": "taut shirt", "薄纱连衣裙": "sheer tulle dress", "雪纺连衣裙": "chiffon dress", "紧身衣裤": "bodysuit", "背心": "tank top", "连身裙": "dress", "露背连身裙": "backless dress", "绕颈连身裙": "halter dress ", "毛衣连身裙": "sweater dress", "露背装": "backless outfit", "睡袍": "nightgown", "毛衣": "sweater", "高领毛衣": "turtleneck sweater", "罗纹毛衣": "ribbed sweater", "露肩毛衣": "off-shoulder sweater", "开胸毛衣": "open-chest sweater", "肩膀切口": "shoulder cutout", "臀部切口": "hip vent", "心型切口": "heart cutout", "后背切口": "back cutout", "下胸切口": "underboob cutout", "束腹": "corset", "小可爱露腹短上衣": "crop top", "赛车服(By KimZuo)": "racing suit", "护士服(By Yao_men)": "nurse", "乳胶紧身衣(By Yao_men)": "latex", "白大褂(By Yao_men)": "lab_coat", "便利店工作服(By 糯米)": "convenience store uniforms", "夏日长裙": "summer long skirt", "西装": "business suit", "浴衣": "yukata", "圣诞装": "santa", "哥特洛丽塔风格": "gothic_lolita", "马猴烧酒风格": "mahou shoujo" }, "综合2": { "女仆装": "Maid dress", "西服(black黑)-by bilibili-跑酷": "black suit", "啦啦隊": "cheerleading", "迷你比基尼": "micro bikini", "頸帶": "neck ribbon", "无胸罩": "no_bra", "黑丝连体衣": "conjoined black silk", "兜帽斗篷": "Cape hood", "修女服": "nun gown", "军装": "military uniform", "汉服": "hanfu", "破损的衣物": "torn clothes", "婚纱": "wedding_dress", "黑色礼服": "black skirt dress, flower pattern in dress,black gown", "披风": "cloak", "白色风衣": "white_windbreaker", "风衣": "wind coat", "奶牛比基尼": "cow_bikini", "露背毛衣": "Open-backed sweater", "曬痕": "tan line", "透明衣服": "see-through", "运动制服": "gym_uniform", "晚礼服": "evening dress", "礼服": "full dress", "战斗服": "combat suit", "小披风": "poncho", "休闲服(素上衣、牛仔裤)": "casual wear", "实验袍": "lab coat", "学校制服": "school_uniform", "甜美可爱的洛丽塔": "sweet_lolita", "网纹衣": "fishnet top", "魔女风格服": "Witch dress", "巫女服": "Miko clothing", "无裆内裤": "crotchless panties", "大衣": "overcoat", "湿润的衣服": "wet clothes", "长袍": "robe", "战壕风衣": "trench_coat", "抹胸": "strapless tank top, navel cutout", "派克大衣": "parka", "洛丽塔风格": "lolita_fashion", "无内衣": "no underwear", "水手裙": "sailor dress", "紧身连体衣": "zentai", "皮衣": "leather jacket", "防弹衣": "bulletproof_vest,", "蛛网纹路": "spider web print", "sweet_lolita,": "sweet_lolita", "A": "Maid dress", "史莱姆装": "slime dress", "撕裂的衣服": "torn clothes", "无": "less clothes\n" }, "综合3": { "乳胶衣": "latex", "中式死库水(辉木)": "Chinese style,One-piece swimsuit,Clothes with gold patterns", "雨衣": "Raincoat", "不知火舞": "Mai Shiranui", "睡衣": "pajamas", "街头风格服饰": "street wear", "透明晚礼服by czz": "[see-through:evening dress:0.3]", "修女": "loli,one girl,domineering lady, nun", "短款和服": "kimono", "浴袍": "bathrobe", "铠甲": "armor", "外套": "coat", "连帽衫(带帽卫衣)": "hoodie", "圆领卫衣": "sweatshirt", "蓝白条纹比基尼": "blue and white striped bikini", "神父/修生黑袍": "Cassock", "动力甲": "power armor", "长袖运动服(直译为立领长风衣)": "Standing collar long windbreaker", "旗袍(效果好)": "cheongsam", "浸湿(如果有内衣会透的更明显)": "soaked", "工装": " dungarees", "透过衣服能看到胸罩": "bra visible through clothes", "蕾丝边胸罩": "lace-trimmed bra", "一些风格服饰": "indian clothes,chinese clothes,Cleopatra,", "肚皮舞者": "Belly Dancer", "中国的衣服裙子": "chinese clothes,china dress,", "连体白丝": "conjoined white silk", "透明水手服": "see-through serafuku", "高叉泳衣": "highleg swimsuit", "礼服长裙": "revealing dress", "病号服": "hospital gown", "白色衣服": "White clothes", "希腊服饰": "Greek clothes", "紧身连衣裤": "leotards", "V领针织毛衣(无袖背心)": "V-NECK SWEATER VEST", "南瓜裙": "Pumpkin skirt", "万圣节服装": "halloween_costume", "软壳外套": "soft shell coat", "内衣": "underwear", "外骨骼": "exoskeleton", "罩衫": "frock", "道袍": "Taoist robe", "军大衣": "Army overcoat", "荷叶边衬衫": "frillded shirt", "黑色连衣裙+白色打底T恤搭配(请勿去掉tag括号)": "(((black sundress with round neck,white T-shirt bottom)))", "外骨骼机甲": "Exoskeleton Mecha", "拼接款": "mosaic", "战袍": "Battle Robe", "性感内衣": "sexy lingerie", "机械服装": "mechanical clothes", "机械战甲": "[Battle Robe:Exoskeleton Mecha:0.3]" }, "裙子": { "裙子": "skirt", "百褶裙": "pleated skirt", "格子裙": "plaid skirt", "超短裙": "miniskirt", "包臀裙": "sheath dress", "连衣裙": "one-piece dress", "花卉图案连衣裙(白)": "white skirt dress, flower pattern in dress,white gow", "花卉图案连衣裙(黑)": "black skirt dress, flower pattern in dress,black gow", "多層裙子": "layered skirt", "分层式半身裙(贵族气质)(by残阳)": "layered skirt", "夏日连衣裙": "summer dress", "腰围裙": "waist apron", "蓬蓬裙": "pettiskirt", "芭蕾舞裙": "tutu", "格子裙": "plaid skirt", "围裙": "apron", "铅笔裙": "pencil skirt", "迷你裙": "miniskirt", "透明硬纱/蕾丝花边": "Organza lace", "哥特式洛丽塔": "lolita gothic", "现代洛丽塔": "lolita fasion", "紧身连衣裙": "Dirndl", "铠装连衣裙": "armored dress", "盔甲裙": "armored dress", "长裙": "Long skirt", "雨裙": "Rainskirt", "中式旗袍死库水": "chinese clothes+leotard", "带褶连衣裙": "pleated dress", "无肩带礼服": "strapless dress", "露肩连衣裙": "off-shoulder dress", "婚纱": "wedding dress", "汉服": "Han Chinese Clothing", "微型短裙": "microskirt", "黑百褶裙": "black pleated skirt", "吊带裙": "suspender skirt" }, "上装": { "过手袖": "sleeves_past_fingers", "背心": "tank top", "白衬衫": "white shirt", "水手衬衫": "sailor shirt", "T恤": "T-shirt", "毛衣": "sweater", "夏日长裙": "summer dress", "连帽衫": "hoodie", "毛领": "fur trimmed colla", "兜帽斗篷": "hooded cloak", "夹克": "jacket", "皮夹克": "leather jacket", "探险家夹克": "safari jacket", "兜帽": "hood", "牛仔夹克": "denim jacket", "高领夹克": "turtleneck jacket", "消防员夹克": "firefighter jacket", "透明夹克": "see-through jacket", "战壕大衣": "trench coat", "实验室外套": "lab coat", "羽绒服": "Down Jackets", "防弹盔甲": "body armor", "防弹衣": "flak jacket", "大衣": "overcoat", "粗呢大衣": "duffel coat" }, "服装": { "透视装": "transparent clothes", "燕尾服": "tailcoat", "女仆装": "Victoria black maid dress", "水手服": "sailor suit", "学生服": "school uniform", "职场制服": "bussiness suit", "西装": "suit", "军装": "military uniform", "礼服": "lucency full dress", "汉服": "hanfu", "旗袍": "cheongsam", "和服": "japanses clothes", "运动服": "sportswear", "工装服": "dungarees", "婚纱": "wedding dress", "银色连衣裙": "silvercleavage dress", "长袍": "robe", "围裙": "apron", "快餐制服": "fast food uniform", "JK制服": "JK", "健身服": "gym_uniform", "巫女服": "miko attire", "海军陆战队服": "SWAT uniform", "无袖连衣裙": "sleeveless dress", "雨衣": "raincoat", "机甲衣": "mech suit", "巫师法袍": "wizard robe", "刺客装束": "assassin-style" }, "下装": { "牛仔短裤": "denim shorts", "百褶裙": "pleated skirt", "热裤": "short shorts", "铅笔裙": "pencil skirt", "皮裙": "leather skirt", "黑色紧身裤": "black leggings", "和服下的裙子": "skirt under kimono" }, "其他服装": { "褶边": "frills", "花边": "lace", "哥特风格": "gothic", "洛丽塔风格": "lolita fashion", "西部风格": "western", "湿身": "wet clothes", "露单肩": "off_shoulder", "露双肩": "bare_shoulders", "格子花纹": "tartan", "横条花纹": "striped", "披甲": "armored skirt", "盔甲": "armor", "金属盔甲": "metal armor", "狂战士铠甲": "berserker armor", "腰带": "belt", "围巾": "scarf", "披肩": "cape", "皮草披肩": "fur shawl" } }
如何让你的WEBUI,无任何副作用的实现2倍提速
如何 DIY 模板小工具
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占用的技术。
吐司食用指南🍞——基本功能介绍篇·文生图与图生图

吐司食用指南🍞——基本功能介绍篇·文生图与图生图

文生图与图生图 文生图是指在Stable Diffusion根据提示词内容生成图片,图生图则是依据提供的图片与提示词内容共同生成图片,是AI绘画的基本创作方式。进入吐司的工作台就是文生图与图生图的操作界面了。 文生图 首先挑选一个自己喜欢的基础模型并添加任意风格的LoRA,再选择合适的vae(这里推荐小白使用vae-ft-mse-840000-ema-pruned.ckpt) 在提示词中输入自己想要在画面内容(可以通过输入best quality,masterpiece,8k等通用的画面提示词来改善生图的质量),在反向提示词中输入不想在画面中出现的内容(推荐小白使用负面词嵌入) 选择合适的分辨率,可以使用预设选项或者是点击custom自定义 关于采样算法(Sampler)与采样次数的选择,不同的采样算法最好搭配相适应的采样次数才能有更好的效果。 以下是一些具体建议(仅供参考): 出图速度快又有不错的质量推荐使用:DPM++ 2M(搭配20左右的采样步数); 出图速度一般但是质量更好推荐:DPM++2S a,DPM ++ SED Karras(搭配20到40的采样步数); 需要更高采样步数:Euler a (搭配40到60的采样步数); 不推荐的采样方法:DPM 2a,Heun,LMS,LMS Karr,DPM 2,DPM adaptive 提示词相关性(CFG Scale):在sd1.5中生成图像的颜色饱和度与对比度会随着CFG值的增加而增加,一般来说更高的CFG值需要更高的采样步数来保证画面质量,而这通常导致更高的生成时间。所以我们通常建议CFG值设置为7,最好不要超过10。 图生图 图生图与文生图的区别在于你不仅可以通过提示词向AI表达你的想法,你在图生图中提供的图片也会成为AI生成图片的重要参考。就相当于AI对你上传的图片进行“二次创作”。因此我们可以通过图生图实现“真人转二次元”等玩法。 其中重绘幅度可以理解为AI对这个图片重新绘制的强度大小或者对画面更改的百分比,幅度越大生成出来的图像就和原来的差异越大,0就是不会进行重绘。
吐司食用指南🍞——进阶玩法篇·幻术图

吐司食用指南🍞——进阶玩法篇·幻术图

幻术图 1.白底黑字图的准备,白底黑字图要根据自己所构想的画面进行文字字体选择以及排版 2.提示词(英文词可吐司生成同款) 提示词公式:主体描述+环境描述+通用画质 打开吐司在线生图,选择基础模型,Lora可以不用选(Lora一般做纹理补充作用,比如敦煌、国风、剪纸等等可以添加,根据作品来) 添加ControlNet ,选择边缘检测canny,上传黑白底图,其他默认 设置生成参数,就可以愉快的开始抽卡了! 例图生成参数:(ControlNet中选择canny 0.9权重):(Great Wall), Cloudy Mountains, (Movie like Lights), Ancient Architecture, Magnificent Landscape, (Historical Relics), (Masterpiece), (Best Picture Quality), 8k, High Detail, Ultra Detail Negative prompt: face,gril,human,Painting,drawing,(worst quality, Low quality, Normal Quality :2),Low resolution,((monochrome, grayscale)),pixelation,signature,watermark,username,blur,digital,Steps: 30, Sampler: DPM++ 2M Karras, CFG scale: 7.0, Seed: 3003354566, Size: 512x640, Model: revAnimated_v122, Denoising strength: 0.2, Clip skip: 2, ControlNet 0: "preprocessor: canny, model: control_v11p_sd15_canny, weight: 1, starting/ending: (0.0, 1), resize mode: ResizeMode.INNER_FIT, pixel perfect: False, control mode: ControlMode.BALANCED, preprocessor params: (512, 100, 200)", Hires resize: 1024x1280, Hires steps: 16, Hires upscaler: 4x-UltraSharp, Version: v1.5.1.17-2-gaded411, TaskID: 629254653514645043
吐司食用指南🍞——进阶玩法篇·光影字
吐司食用指南🍞——进阶玩法篇·真人转二次元
吐司食用指南🍞——基本功能介绍篇·高级控制(ControlNet)

吐司食用指南🍞——基本功能介绍篇·高级控制(ControlNet)

高级控制(ControlNet) ControlNet(下面简称cn)是真正将AI绘画变得“真正”可控的第一步,让StableDiffusion有了成为生产力工具的资格。 ControlNet作为对大模型进行微调的神经网络,它的作用原理是根据一些额外的信息(通常来自于你上传的图片)来对StableDiffusion的创作过程进行引导,从而实现对生成图片的精准控制。 ControlNet能够实现精准控制的用法,你可以根据你的需求选择适合的ControlNet模型与预处理器来从你上传的图片中提取相应的条件信息。例如openpose就是只会提取你上传的图片中人物的姿势,脸部和手部特征点,过滤掉其他的信息 而且你还可以同时使用多个ControlNet实现更进阶的操作,例如可以将inpaint模型,canny模型,openpose模型三个模型混合使用,再加上具体的蒙版,可以实现模特换衣,换头等操作。还有互相加成的效果,例如openpose加上较低权重的tile模型可以更好的控制人物结构。 详解: Openpose 姿势控制:从真人图片中提取人物姿势,脸部和手部特征点,应用到生成的图片中。 QR code 二维码:用于制作ai二维码,也可以用于“幻术图”等的制作 Brightness 光影控制:通过识别图像中的明暗关系,可用于生成光影字与人物光影图 Canny 边缘检测:检测图像中的边缘细节,达到还原图像中的细节的目的,还可以控制绘制区域。 Depth 深度图生成:检测物品的景深效果,包括前后位置,物体大小,光影等。能较好的还原远近与前后关系 Lineart Anime 动漫线稿上色:提取图像的线稿特征,并在出图中加入动漫风格 Linart 线稿上色:提取图像的线稿特征,还原图像细节(相比于canny自由度更高) mlsd 线段识别:识别图像中的直线(通常用于建筑与物体图) normalbae模型识别:用于生成法线图 Scribble涂鸦上色:对上传的图片进行涂鸦上色,补充细节 Softedge:识别图像中的轮廓 seg语义分割:从像素的角度分割出图片中的不同对象 Shuffle内容重组:内容重组,风格转移 ip2p:可以理解为自然语言ps,例如你上传的图像中有一只猫,你可以通过提示词使用自然语言把猫变狗 Color色彩格子:提取原始图片带有空间结构的的颜色特征,那个地方那个颜色 Tile超清重绘:通过超分辨率,可以使图像增加大量的细节
提示词入门教程·下篇:《元素同典:确实不完全科学的魔导书(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绘画提示词的入门文档。那可能是法典组所践行的,“开拓”的意志吧
吐司食用指南🍞——基本功能介绍篇·ADetailer
吐司食用指南🍞——名词解释篇·关于设置

吐司食用指南🍞——名词解释篇·关于设置

关于设置 图片分辨率设置:可以选择预设好的三种分辨率,也可以点开最右侧的「custom」进行自定义。(自定义参数最好是64的倍数) 采样算法(Sampler):可以简单理解为AI绘画的画笔,不同的采样算法所对应的出图速度与画面质量都是不同的。在文生图中,将会有详细的推荐与介绍。(采样器主要负责去噪的过程。在图像生成前,模型会首先在Latent Space中生成一个完全随机的噪声图像,然后噪声预测器会开始工作,从图像中减去预测的噪声。 随着这个步骤的不断重复,最终我们得到了一个清晰的图像。 Stable Diffusion在每个步骤中都会生成一张新的采样后的图像,整个去噪的过程,即为采样, 使用的采样手段,即为「采样器」或称为「 采样方法」。) 目前在网络上使用最广泛的几种采样方式分别是:Euler a、DPM++ 2M Karras、DPM++ SDE Karras、DDIM: 采样次数:是StableDiffusion根据文本提示从随机噪点到结果收敛所运行的迭代次数。一般来说,越高的采样次数对应着更长的生成时间与更高的准确性。但是采样步数也不是越高越好,过高的采样步数甚至会降低画面的细节。在文生图中,同样也会有详细的推荐与介绍。 提示词相关性(CFG Scale):CFG是控制生成的画面与提示词接近程度的设置。通俗的讲,越低的CFG值AI就更加的“天马行空”,越高的CFG值AI则更倾向于“按部就班”。在文生图中,将会有更详细的推荐与介绍。 随机种子(Seed):在webui里面给到的注释是“一个固定随机数生成器输出的值,以相同参数和随机种子生成的图像会得到相同的结果”,代表的是潜在扩散模型潜在空间里生成的起始随机噪声图。
吐司食用指南🍞——名词解释篇·关于模型