真·晕晕无双 真·晕晕无双
痛苦的思索永无尽头
关注数: 40 粉丝数: 475 发帖数: 10,367 关注贴吧数: 21
【技术分享】你应当知道的关于逐块融合的那些事儿 这应该是整个简繁中文互联网社区中少数深入讲解逐块融合的帖子,我也是耗费了大量时间去查阅了许多外文资料和参考才勉强理解了一些浅薄的知识。 如果这个我的讲解内容对你有所帮助,那就再好不过了。 在这个帖子里我要讲述的东西是会涉及到一些进阶概念的,要看懂我在说什么,你首先需要理解stable diffusion的几大组件构成原理以及明白权重集合块的概念。 关于这些概念,可以去B站找到飞鸟白菜这个up主的最新一期视频进行了解。 关于最近出现的逐块融合的概念,我们不谈更加玄学的元素,仅从块层面进行一些讲解。 我们知道,任何一种针对UNET进行配置的权重集本质上都是同一类型的存在,只是它们包含的权重范围不同。 基于这一点我们可以非常自由的在块层面上进行融合/删减/增加等操作。 但进行这些操作之前我们首先需要知道那些块到底是什么,而这一点显然是不可能的。 我在中文英语日语等搜索引擎都去查找过这些块到底是什么,它们是如何工作的。 然而搜索结果中谈论到这些块是基本上都是基于经验推测而来的发言。 也就是说,目前为止这些块都是黑盒。 但经过网络上各路大神的实验,我们也逐渐通过人工学习在很浅薄的层面上理解了一部分内容,这也给我接下来要讲的东西铺好了基石。 再次感谢网络上的大神们的无私分享。 这里主要通过SuperMerger插件支持的两种权重集来开展讲解: 1、大模型/完整权重集/ckpt 这些权重集是最完整的,拥有26个块,这些块具体是什么我们可以在SuperMerger插件的最下方看到。 通过各种实验,我们可以模糊的将这些块的影响范围分为以下三种: (1).图像构成——IN04-08 (2).色调纹理——IN09-11 OUT10-11 (3).角色形象——OUT03-09 这里总共只有17个?是的,还有一些我还没搞清楚它们的影响范围。 但有这17个也已经是重大进步了,我们可以基于这些已经探明的块来进行许多深入操作。 2、lora 这些权重集是精简的,拥有17个块。 这些块分别是BASE,IN01,IN02,IN04,IN05,IN07,IN08,MID,OUT03,OUT04,OUT05,OUT06,OUT07,OUT08,OUT09,OUT10,OUT11 虽然缺少了一部分块,但还记得我上面说的关于权重集的本质吗?是的,lora的块与ckpt的块的作用是一模一样的。 我们依然可以根据上方完整权重集的经验来配置lora这种精简权重集。 既然上方的基础理论都讲完了,就让我们进入实践环节吧。 以下例子都是使用的同一套参数与同一个种子,不使用任何额外的权重集与controlnet等插件。 以AOM3A1B为例子,它原始情况的生成的图片风格如下。而我们可以尝试去替换它的角色形象层,我将两个lora的角色块分别以0.5合并为1.0的强度替换进去。 可以看到画面出现了非常大的改变,其中最明显的就是角色,然而背景也在一定程度发出现了变动。到这一步还不够,我觉得画面中色调对比度太高了,我又把pastel的色调块以0.5的强度替换进去。 嗯,这样就是舒服了。到最后我还是觉得构图方式不够令人满意,我又把counterfeitV2.5的构图块替换进去。 这下画面彻底大变样了,这种变化你是否喜欢呢?总结: 我们可以发现根据经验来获得的这些块的影响范围并不是那么的精确,而是比较模糊的。 在我们替换不同范围块的时候会一并改变其他的内容,仅通过块操作并不能做到那么那么的精确。 但事实上目前已经有新的针对块之中的元素进行配置的方法了,但是经过我的调研,可以说元素配置还没有被社区摸索总结出什么有用的经验。 目前针对元素层的配置还属于玄学范畴,以后相关内容足够丰富了我再来发帖讲解吧。 总之通过这些块层面的操作,我们可以在没有几千张上万张A100显卡可用于大规模训练的情况下深度定制我们想要的模型效果。 并且由于可配置lora等轻量化的权重集,整个互联网开源社区未来的可能性甚至是足以比肩甚至超越大公司的。 但要做到这一点需要大量爱好者的钻研与技术分享,期待正在阅读这篇帖子的你也能参与进来。
AI作品的权力问题 近期看到美国官员的司法解释明确表明了AI作品不受法律保护,AI作品从生成的那一刻开始就自动进入公共版权领域。 我第一次看到这个新闻的时候感觉没毛病,但后来越想越不对劲。 人类创作的同人作品、临摹作品、翻唱二创等等都享有一定程度的著作权,而AI作品真就一点权力都没有了吗? 我想要搞清楚美国的这个司法解释的背后逻辑。 目前主流的图像生成AI技术是diffusion模型。 其原理是分析训练素材的像素分布规律,而后总结为特征,将这种特征使用高维空间中的数学向量储存为权重集。 而生成图片的过程就是将预训练的权重配置进去,输入一个随机高斯噪声与词元编码的向量到U-Net去噪声生成符合向量的图像。 我们可以发现,所谓机器学习的本质是学特征规律,AI绘画的本质是从随机高斯噪声中还原出的符合词元向量的图像。 如果说学习规律本身是不道德的,甚至是违法的。那么人类观察其他艺术家的作品,临摹其他艺术家的作品是否也是不道德甚至违法的? 如果说从随机高斯噪声中还原出来的图像不是一种艺术作品,那这种形式的工作到底与人类从一张白纸上画出来的作品有什么本质上的区别呢? 在我看来,这个司法解释的背后的深层逻辑还是在于著作权与人权有重叠的部分,人类及其构成的组织才是权利与责任的主体。 而AI不是一个人或组织,是一个纯粹的工具,工具哪来的权力与责任呢? 或许这个问题要等到真正意义上的强人工智能出现,让AI褪去一部分工具属性的时代会有更合理的解释吧。
【每日小姿势】提示词的稀释与强调 众所周知,我们使用webui生成图片时是需要通过提示词来控制画面效果的。 那么是不是说只要提示词写的越多效果就越好呢? 相信许多人有过这样的想法,但最终实践下来会发现实际表现甚至可能是负面的——写得越多,效果越差。 这是为什么呢? 这里就需要讲到今天第一个知识点了,提示词的稀释。 假设一个图有100万个像素可以用来匹配不同的特征向量,你只写8个提示词时,平均每个提示词可以得到的像素是12.5万个。 当你写了80个提示词时,每个提示词可以得到的像素就是1.25万个了。 当然这是一种非常不严谨没有任何依据可循的类比,实际上完全不是这样的。 但道理是相通的,提示词写得越多,画面就越趋于平均化。 结果是缺乏重点,画面效果就差了。 再就是今天的第二个知识点,提示词的强调。 很多人都知道可以用括号,花括号,中括号等符号来强化或削弱甚至是控制提示词起效的步骤。 但还有很多人忽略了一点,强调本身也是可以被稀释的。 当你给画面质量添加了1.3的系数后,又给场景添加了1.5的系数。 没错,这样写确实能让你的场景更加完整的呈现在画面上。 但实际上此时画面质量就已经被降级了,你的画面强调系数被场景强调系数给稀释了。 为了解决这个问题,我是推荐这样写: 正面: (masterpiece,best quality,official art,extremely detailed CG unity 8k wallpaper:1.6), // 画面质量 (illustration,morning,city,street:1.5), // 画面风格与场景特征 (solo,1girl,bishojo:1.5), // 角色特征 负面: (worst quality,low quality,normal quality:1.8), // 画面质量 (bad composition,bad structure,bad proportion,bad posture,rerspective error,wrong number of limbs, wrong number of fingers:1.7), // 角色和场景的错误 (watermark:1.6), // 画面的额外错误 给每一级别的强调系数都归类合并,精细化操作提示词的权重来控制你的画面。 既然稀释是不可避免的,那就用这种方式来尽可能降低稀释带来的不确定性。 并且严格按照这种强调系数分级的写法还有许多额外的好处:能100%的解决提示词过多时画面平均化的问题,因为从一开始就确定好了什么东西是必须被最优先强调的,定死了画面效果的下限。 总结: 1、提示词不是越多越好,有限的画面中一定存在像素资源分配问题。 2、提示词的权重和类别需要进行更加严格的管理,降低不确定性与提高画面效果的下限。
【授人以渔】手把手教你怎么训练一个简单易用的负面嵌入模型 既然都点进来了,那应该也知道这帖子是打算干啥的了,不废话直接开始吧。 在开始前你需要知道的: 我教你的是针对某一模型的专用负面嵌入,所以你要选中你想针对的大模型来生成素材和训练。 全程不可更换大模型,否则会导致炉子炼炸。 第一步: 你要准备一套你自己常用的负面词条集。第二步: 将上面准备好的这套负面词条集全部塞进webui的正面提示词输入框里,再设置你平时跑图时的参数。 注意这里要把生成批次和每批数量都拉满,可以生成800张素材,素材量不怕多就怕少。 分辨率选择512*512,这个是适合8g显存来训练的大小。 但无论你是1066还是4090的显卡,我都不推荐大于或小于这个尺寸。别的分辨率最终效果都不如512*512的,我也不知道为什么。 提示词相关性调整为1,这样能使样本的多样性被最大化。 随后点击生成按钮,等待800张素材被训练出来。第三步: 点开webui的训练选项卡,在创建embedding这里输入你的词条名称(注意,同时也是这个嵌入式模型的触发词)。 再把你刚刚用来生成训练素材的提示词全部输入到下方初始化文字的输入框里。 而次元的向量数个人建议填10左右,这个是我摸索下来比较合适的。 再就是点击创建一个空的embedding,右边会提示你的embedding被创建在了什么目录下。第四步: 点开右边的训练,不用看右边的超网络模型的训练,只看左边的embedding就好。 在embedding选项里选中你刚刚创建的嵌入式模型。 下方的参数大部分都不要改,只需要改我提到的这几个就好: 1、数据集目录输入你刚刚生成的素材目录,此目录不可存在素材以外的图片,否则严重影响最终模型效果。 2、最大迭代步数填写为6400,这个和向量数以及素材量有关,6400对于800张素材与10的向量是比较合适的。 3、每N步保存图片和保存备份这个建议填写为1600。 点击训练embedding,开始炼丹并等待完成。第五步: 去生成图片吧,正常输入正面提示词,而负面提示词输入框只需要填写你刚刚生成的这个嵌入式模型的名称就好了。 直接512*512跑10张图片看看效果。 如果一切正常的话,此时你的图片应当效果不错。 下面这个是我根据不同的提示词练出来的三个不同的负面嵌入的效果图。
【模型分享】viewer-mix_v1.3与其专用负面嵌入 viewer-mix_1.3版本的改动: 1、将vae文件烘焙进去了。 2、调整了原料的比例重新进行混合,优化了色调和氛围,使其看起来整体光影效果更具戏剧性。 当然做这些调整是有代价的,人体和场景都出现剧烈的崩坏,原来针对1.0版本的负面词条已经不起作用了。 这促使了专门为viewer-mix_v1.3而训练的负面嵌入模型——veryBadImageNegative的诞生。 veryBadImageNegative的灵感来自于EasyNegative,两者都是专门针对某一特定模型而训练的负面嵌入式模型。 veryBadImageNegative提供了1.0和1.1两个版本,这两个版本有一些微妙的差别。 对于这些模型我均提供了从1600-6400步的的不同版本,选择适合你的就好。 理论上训练步数越大的,修正效果越强,但相应的整体风格也就更加顽固,难以被改变。 关于风格强度这一块我也没摸透,建议活用权重来调整,例如:(veryBadImageNegative_v1.0-6400:0.8)。 这样写的效果就是将词条的效果降低到原有的80%。 最后是使用方法: 1、将veryBadImageNegative等嵌入式模型放到stable-diffusion-webui\embeddings目录中 2、在负面词条输入框里写入触发词(触发词就是嵌入式模型的文件名) 最后是一些例图,所有例图都放在了我的分享文件中。 你想要例图的标签和参数的话直接把【分享文件中的例图】拉到webui的图片信息中就能看到,不再额外提供参数文档了。 上传到贴吧的图都是压缩过的,丢失掉了参数信息操作,不要对贴吧的图做这种操作! PS1:关于如何训练这些嵌入式模型的教程我还在筹备中,本周末会发布(咕)。 PS2:训练这些负面图集对个人的承受能力有一些考验,因为会生成大量的令人作呕的扭曲图像……
【技术调研】该如何训练一个十分糟糕的嵌入式(embedding)模型? 近期在调试viewer-mix的新版本的时候,发现不管怎么改词条、改参数、调整不同模型的混合比都难有更进一步的提升了。 由此我想到了Bad artist和easyNegative这两个嵌入式模型,在尝试后虽然效果显著,但是因为是用别的模型训练出来的所以总归风格迁移比较严重。 而这一点对我来说是不可接受的。 注:Bad artist是基于anything-v3,easyNegative是基于Counterfeit-V2.5。 所以我想,我应该基于我自己的模型来进行训练,于是就开始干了。 首先是去网上找了几篇如何训练嵌入式模型的文章开始阅读,但都讲得十分模糊浅显,并不能解答我的许多疑问。 这个没办法,求人不如求己,还是亲自上手试错才能最快得到进步。 而在这趟踩坑过程中主要是遇到和解决了以下几个问题: 1、我该如何高效获得训练素材? 我的素材的起点是来自于自己搜集的一套负面提示词,最初的想法是一条一条放到正面提示词输入框里慢慢跑。 但显然效率太低了,于是我把目光投向了脚本,然后我惊喜的发现webui自带了一个非常好用的脚本,可以通过换行词条自动跑图。 于是这个问题就被解决了,自动化造福人类啊然后我获得了一大堆令人不安的诡异素材2、我该怎么处理这些素材? 首先是预处理,因为我这些词条每条跑5张,最终总共有800张左右的素材,所以不需要开启镜像翻转来增加素材量。 但是生成deepbooru词条文本还是有必要的。在预处理完成后我获得了这样的一堆图片和描述文件。3、该怎么设置嵌入式模型的参数? 我参考了Bad artist,将模型的向量设置为2,打算和这个模型一样训练15000步,并且每1850步保存一次副本,用以检验这个步数是否合适。 基本上就是照抄新手上路毕竟还是需要老司机带一带。然后我在设置中将deepbooru的词条阈值设置成了0.7。最后再设置一下训练参数就开始跑了。整个训练过程需要将近两个小时,慢慢等吧。 接下来就是检验效果了,我在这里不卖关子了,直接说结论: 这个嵌入式模型作为首次尝试模型训练的成果来说还是比较喜人的,确实达成了一部分我预想中的目标。 但是似乎是我在生成素材时没有考虑过一部分词条的学习效率(例如水印基本就没学到),还有pastel本身自带的的色块和色彩饱和度等问题我压根没考虑过,总的来说这次尝试并不算是成功的。 但正所谓失败是成功之母,再接再厉吧接下来有时间我会持续改进的。 所有图片的正面关键词都是一模一样的,而负面关键词只有这个嵌入式模型。 每一个阶段步数生成5张512*512的来验证效果,二楼开始上图。
【入门知识】为什么我的画面效果看起来如此糟糕? 近期发现不少新手明明用了那些爆款模型却无法实现别人的画面效果的情况。 这里简单说一下,主要其实就两个知识点。 1、没有输入正/负面画面质量提示词 这个很简单的,给你的正面提示词输入框的最前面加上:masterpiece,best quality,official art,extremely detailed CG unity 8k wallpaper, 然后个你的负面提示词输入框的最前面加上:low resolution,Very low resolution,Low image quality,Very poor picture quality,Poor quality detail picture,Vague details,Mosaic pictures,Problems in drawing,Overfitting,Bad painting,Bad painting details,Low quality painting details,Normal quality, 然后就可以解决了,如果个别模型特别顽固,那就给词条加权重。 2、还有个别模型,对,说的就是那个近期大热爆款counterfeit-V2.5。counterfeit这个系列的模型都比较特殊,模型原作者使用了这个模型本身跑出来的低质量图集喂给了嵌入式模型EasyNegative,等于说是让AI来改进AI自身。 直接导致了EasyNegative这个嵌入式模型和counterfeit这个系列模型形成了高度耦合的关系,结果就是当你使用counterfeit-V2.5而不配套使用EasyNegative时画面效果会十分糟糕。 不排除今后还会有大热门模型也学习EasyNegative的这种操作,实际上这十分有效,我们也可以看到counterfeit-V2.5这个模型的出图品质是多么让人惊叹。
【技术调研】初步探索AI制图更多的可能性 我对AI制图技术产生兴趣是在去年novelai爆火后开始的,但直到上周开始才正式打算体验一下。 总的来说是抱着一种猎奇的,尝试新鲜事物的心态开始的。 但很快就沉迷其中了,这门新奇的技术还挺好玩的 在摸索清楚了绘图方面的一些参数和标签玩法后,我开始尝试起了模型合并。 模型合并这个玩法在我上手之前是完全想象不到可以这么简单方便且高效的。 正常来讲,训练模型对普通人来说是比较困难的。 不是专门做相关技术行业的人很难去获得大量训练素材和调试好训练参数。 但是stable diffusion webui的这个模型合并功能在一定程度上打破了这个技术壁垒,这个功能可以让别人已经训练好的模型成为普通用户手中的原料,通过简易的比例调整便可以合成一个新的模型。 比如我想针对pastel这个模型进行一些改进,那我就可以去寻找pastel模型不擅长的方向上做的更好的模型,然后适当的融合一些进去。 融合完成后会发现一些微妙的化学反应,更加写实的光影和更加严谨的建筑物和摆件等特性加入后,变得有一些油画、水彩的质感。 下面是一些16:9宽画幅例图,我是倾向于使用这种尺寸的图像来测试模型的效果。 因为宽阔画面中能容纳更多的构成元素,而元素越多越复杂就越考验模型的还原能力。 最终从效果图上来看,依然是第一眼没问题,但仔细一看存在大量的光影和透视错误。 拼凑不同的模型并不能带来绘图性能的提升,只是调整模型生成的图像风格而已,关于这一点只能说比较遗憾了。
初次尝试模型合并的一些分享和体会 pastel这个模型玩了一个礼拜,感觉有点腻了,想着给这个模型做一些调整。 于是开始了新一轮的折腾,思路上就是搞清楚自己想干什么,该怎么干。 我为什么想要改这个模型呢? 因为同一个风格看的有点腻了 该从何处下手? 从这个模型让我不满意的地方下手 具体哪里不满意? 1、对有具体的物件(如建筑,摆件等)还原的比较糟糕 2、在生成宽画幅图片时,场景中的构成元素还原质量不稳定 那么我就开始去找对的上眼缘的模型。 我第一个找上的是AOM2,这个模型可谓是2023年最火爆的了,我经常看的AI绘图相关讨论社群全都被这个模型刷屏了。 这个模型的优点是人体还原效果较为稳定,出图的光影效果和材质质感方面无可挑剔,风景建筑和摆件等元素竟然也不差。 简直就是完美的AI制图模型了,太厉害了。 但是AOM2也不能完全满足我的需求,AOM2的图片效果都太柔和了,我更希望能看到有锐利边缘风格。 于是我又找到了最近几天比较火的Counterfeit-V2.5,这个模型在光影还原度上几乎要达到照片级别了,甚至会让我感觉真实的有点太过了。 而这个模型的出图效果是较为锋利的,且对比AOM2在材质效果上多了一些笔触质感,可以有效中和我对AOM2一部分遗憾。 于是这个融了三个模型的新模型被我弄出来了,最终效果我是比较满意的。 因为本质是改良pastel,所以成分上占大头的还是pastel,而且vae也是用的pastel原版。 具体配比大概是: (pastel * 0.7 + AOM2 * 0.3) * 0.7 + Counterfeit-V2.5 * 0.3 这帖子能发出来的话,我就在下面发一些我改版的pastel和原版的同标签同参数的对比。 下面我发的图片都是一次生成,没有图生图或蒙版重绘。 每次生成10张,每一批里挑选相对质量最高的一张。 注意,并不存在所谓的融合模型比原版模型更好的说法。 都是取舍,你想要什么来弥补那也必然会丢失掉原模型的一部分特点,想要提高AI绘图的质量终究是需要回到算法和训练本身的。
首页 1 2 下一页