1.clipԴ?源码븴??
2.NovelAI怎么达到naifu的效果 NovelAIWebUI调参方法
3.Proximal Policy Optimization(近端策略优化)
4.Chrome升级后 overflow-x: clip 失效了
5.看到一张图不知道怎么画?Stable Diffusion反推提示词插件!
clipԴ?复现븴??
回顾之前的文章,我们成功将训练稳定扩散(SD)模型时所需的源码显存降低至G以下,使用的复现是批量大小为2的设置。现在,源码让我们探讨如何用中文召唤神奇宝贝,复现农产品溯源码而非英语。源码
数据准备阶段,复现可以选择通用翻译软件进行翻译,源码市面上有很多选择。复现对于懒人来说,源码这里提供了一个链接,复现包含翻译文件和提取码。源码
为支持中文,复现最直接的源码方法是对输入提示进行翻译,但翻译中难免会出现诸如“总线”翻译成“bus”、“罐头”翻译成“can”等问题。因此,从根本上解决问题,需要训练自己的中文模型。
参考IDEA研究院的太乙-Stable Diffusion模型,我们采用训练自己的中文模型策略。在稳定扩散的三要素中,原始SD训练中为了保持强大的文本能力,选择冻结VQGAN和Clip-TextEncoder,usbview源码仅训练Diffusion。而对于接受中文的SD模型,我们需要两个步骤:选择支持中文编码的模型,以及进行相应的编码。
支持中文编码的模型有很多,如CLIP结构的模型。这里,我们选择chinese-clip作为中文编码器,因为它既能与原始SD模型适配,又能考虑编码效果。
确定编码器后,进行编码操作。在配置文件中,文本编码器类(cond_stage_config)通常为ldm.modules.encoders.modules.FrozenCLIPEmbedder。打开对应类后,发现它将CLIP文本的last_hidden_state用作文本表示,在扩散模型中与图像进行交叉注意力。
我们模仿CLIP-encoder编写中文Clip的encoder,最终结果如下图所示。在配置文件中,记得更新cond_stage_config为新的chinese_clip。
接下来,在主训练脚本中进行调整,仅训练encoder部分。qqjay源码训练结果显示,diffusion模型参数未更新,而encoder部分有更新。训练过程中,显存消耗情况良好。
总结,我们介绍了训练中文SD模型的策略,并尝试复现了方案。对于希望省时省力的读者,可参考提供的代码。下一次文章,我们将探讨SD模型中模态间和模态内的融合技巧。敬请期待。
NovelAI怎么达到naifu的效果 NovelAIWebUI调参方法
今天要为大家带来的是NovelAI怎么达到naifu的效果 NovelAIWebUI调参方法,一起来看看吧。(本文转载自b站用户:秋叶aaaki)
最近有很多人在由初步尝试naifu带来的乐趣以后,不满足与naifu的参数限制想要更高级的面板于是转而使用了WebUI。
但是很多人在刚开始使用WebUI的时候会发现:这怎么画的这么难看 比naifu差远了
今天来带领大家调整WebUI达到naifu的效果
可能也有人看过其他UP主做的视频、专栏设置过了,那么请直接看第三部分我来讲解这样有什么限制、真的能完全还原吗?(不能哦)
一. 设置
打开WebUI,点击Settings。
往下翻,把这两个设置改为和我一样的allen源码
Eta noise seed delta:
Stop At last layers of CLIP model:2
改完后 不要忘记回到最顶上点这个保存!!!
二. 验证
tag: masterpiece, best quality, 1girl, cat ears, hair_bow, school uniform, twintails
负面tag:lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry
Steps: ,Cfg: , 分辨率:x,种子:
如果你画出了和我这张一样的图,恭喜你,修改成功!
三. 限制
这么更改,其实还是在某些情况无法还原的。这种情况就是在大量使用强调符号的情况下
也就是naifu版本的{ },webui版本的( )。如果使用这个括号,那么他们强调的倍率是不一样的,无法简单的只替换符号
在naifu版本的代码中,大括号是1.倍的
而在webui版本中,他是1.1倍的!
使用这两个括号导致的区别是基本上教你改设置的绝大部分视频、专栏都没有强调过的,而往往在实际使用中,这个强调用的括号是被广泛使用、甚至是滥用的情况
这就导致了naifu版本的咒语、无论怎么调整也在webui版本里无法复现!
那么如何进行括号的转换呢?推荐大家看看这位up主写的,
点击查看
教你如何在WebUI中生成接近NovelAI官网的效果并进行相似度测试
这里直接复制过来做个总结
{ xxxx} = (xxxx:1.^大括号数量)
也就是1.的n次方
例子如下(复制的上面专栏)
{ masterpiece}=(masterpiece:1.)
{ { masterpiece}}=(masterpiece:1.)怎么算的?(1. = 1*1.*1.)
(但是我这么换算以后,生成的websitepanel 源码图仍然有极其细微的差别目前还没搞明白为什么)
如果你真的想%还原而不去手动计算那复杂的乘法,只有改代码一条路啦~
代码的具体位置我在上面的截图中已经截到了,直接去搜索然后改就可以了
四. 其他技术细节
是个什么登西?
在naifu源码里,这个是噪声随机数种子加上的一个数字,也就是对应的Eta noise seed delta
以上就是NovelAI怎么达到naifu的效果 NovelAIWebUI调参方法的全部内容,希望对大家有帮助。更多攻略资讯关注游戏网。
Proximal Policy Optimization(近端策略优化)
近端策略优化(PPO)算法是强化学习领域中广泛应用的一种方法,其理论基础源自TRPO。在探索如何通过现有数据提升策略并控制策略更新的幅度方面,PPO提出了一种简化且高效的方法。相较于TRPO,PPO采用了一阶泰勒展开,并通过技巧确保新旧策略之间的距离不会过大,从而达到与TRPO相同的效果,但操作更为简便快捷。
PPO算法分为基于惩罚和基于Clip两种实现。基于惩罚的PPO将KL散度作为惩罚函数,而非硬约束,基于Clip的PPO则将优化函数转换为Clip函数,取得了良好的效果。本文着重介绍基于Clip的PPO。
在策略梯度方法中,目标是最大化策略收益,转化为优化策略参数的函数。PPO中的策略优化函数包含控制新旧策略距离的超参数。其中,clip函数用于限制新旧策略距离,确保策略更新不会过于激进,破坏策略近似条件。
clip函数在PPO中起到关键作用。当剪切值大于0时,策略应增加该动作的概率,即调整策略向旧策略靠近;反之,调整策略远离旧策略。在实际应用中,clip函数通过图像直观表示,使策略更新过程清晰明了。
引入clip函数后,优化函数变为直接使用梯度进行策略更新,回归到策略梯度的基本原理。PPO的具体步骤包括:通过clip函数限制策略更新幅度,然后利用损失函数调整策略参数,最终实现策略的优化。
在PPO的实现中,开源代码简洁高效,为强化学习研究者提供了便利。stable_baselines3是强化学习库中的一款工具,封装了多种流行算法,如DQN、PPO等,简化了模型训练过程。通过stable_baselines3,用户无需自行复现代码,即可调用这些算法评估模型性能,节省研究时间。
在使用stable_baselines3时,只需设置关键参数,模型即可自动开始训练,并实时输出训练进度和收益情况。训练完成后,模型效果可通过可视化展示,同时模型也能够被保存,便于后续使用。
Chrome升级后 overflow-x: clip 失效了
遇到页面布局问题,问题出在Chrome升级后overflow-x: clip失效。查看同事和自己浏览器版本,发现问题只在升级后的Chrome.0..中出现。
页面使用flex弹性布局,结构简单,左边定宽,右边自适应。复现问题后,发现右边元素未如预期自适应,而是被table撑大,剩余内容被裁剪。原因是table宽度超过剩余空间,且右边元素flex-shrink: 0,不会缩小,导致问题。
通常处理方法是使用overflow-x: hidden隐藏超出区域或overflow-x: auto让右侧区域可滚动。然而,这里使用了overflow-x: clip,根据MDN文档解释,clip会在溢出截断边缘上的溢出内容被截断。距元素内边距框指定宽度范围内的内容溢出。clip与hidden的区别在于clip还禁止所有滚动,包括程序性滚动,且不会创建新的格式化上下文。
查阅Chrome 版本发布说明,未发现与overflow-x: clip相关改动。代码中也未找到特别使用overflow-x: clip的理由。因此,暂时将overflow-x: clip替换为overflow-x: hidden解决问题。问题得到解决,页面布局恢复正常。
若有关于使用overflow-x: clip的问题或建议,欢迎分享。
看到一张图不知道怎么画?Stable Diffusion反推提示词插件!
在AI绘画过程中,有时会遇到无法复现他人作品的挑战,尤其是当别人提供的提示词或模型不匹配时。面对这种情况,一个有效策略是尝试反推画面内容。 但传统方法如CLIP和DeepBooru在反推效果上往往不尽人意。举个例子,假设你看到了一张描绘一个小女孩在田野中仰望外星飞船的画面。使用CLIP反推后,得到的提示词“a girl standing in a field looking at a large object in the sky with a bird flying over it”将外星飞船误识别为鸟类。而DeepBooru给出的提示词更为单词堆砌,但相对更接近画面描述。 现在,介绍一款性能更优的反推插件——tagger。您可以在GitHub上找到其安装地址:/toriato/stable-diffusion-webui-wd-tagger。安装时,通过“扩展-从网址安装”,将链接复制并点击安装即可。注意,若已开启远程访问,请先关闭再重启,以确保在本地安装成功。安装完成后,刷新界面,您会发现新增了tagger插件按钮。 使用tagger插件反推后,获得的提示词为“cloud, sky, 1girl, day, aircraft, outdoors, brown hair, windmill, scenery, from behind, field, flower, solo, airship, airplane”,比DeepBooru更加精准。然而,有趣的是,将“windmill”误删后重新生成的,结果是展示了一个大风车,这或许是一个小小的幽默插曲。 总之,面对AI绘画中难以复现的挑战,通过反推策略并利用性能更优的插件,如tagger,可以有效提升作品的复现精度。尽管偶尔会出现一些小插曲,但每一次尝试都是对技能的提升和理解的深化。