放弃这艘船,跳上这艘!
如果你喜欢其他功能,我在这个仓库中重新创建了大部分功能。
简而言之:
我自己"从头开始"的自我重新缩放CFG / 防烧版本。虽然不多,但这是诚实的工作。
使用曲速驱动节点,不再有烧毁现象,生成速度提高160%。
现在包括自定义注意力修改器和有趣的预设以及温度缩放。
刚刚测试过,它也适用于pixart sigma。
只要不使用任何增强功能/切断uncond(这是同一回事),它就可以与SD3一起使用。20步效果很好。
注意:
预设是通过eval()解释的。确保你信任发送预设给你的人,因为它可能被用来执行恶意代码。
更新:
使用方法:
就是这样!
- "boost"开关会在sigma接近1时关闭负面引导。这会使推理速度翻倍。
- 负强度在cond和uncond之间进行线性插值。通常情况下,我这样做会将事物烧毁。但由于它最初是一个防烧功能,所以它就是有效的。这个想法受到了负面提示权重仓库的启发。
- 我为那些感兴趣的人保留了高级节点。对于不想实验的人来说,它不会有益处。
对于100步,这是sigma达到1的位置:
注意:曲速驱动节点大大提高了速度。如果与AYS调度器一起使用,平均速度是正常速度的160%(查看工作流图像)。
使用boost和我的另一个节点CLIP Vector Sculptor text encode并使用"mean"归一化选项时,质量似乎略有提升。
只是一个注意事项:
你的CFG将不再是你的CFG。它被转变为一种引导CFG/最终强度/亮度/饱和度的方式。所以在尝试时不要犹豫改变你的习惯!
其余解释:
当这个节点连接时,它会将你的采样器的CFG scale转变为其他东西。 这种方法通过评估每一步的潜在平均最小/最大值来重新缩放CFG。目标是达到期望的输出强度(强度指整体亮度/饱和度/清晰度)。 基本强度是我任意选择的,你的采样器的CFG scale将使这个目标变化。 我将"中心"CFG设置为8。这意味着在4时,你将瞄准期望范围的一半,而在16时,它将翻倍。这使得在正常值附近时感觉略微像平常。
采样过程中CFG的行为被自动为每个通道设置,使其行为不同,因此给出与通常不同的输出。 根据我通过打印测试结果的观察,它似乎在开始时约为16,在中间附近降至约4,最后在~7左右结束。 自我做了上千次不同方式的测试以来,这些值可能已经改变,但这只是为了给你一个概念,只是我目测CLI的输出。
我使用上下25%的topk平均值作为参考,以留有一些操作余地。
它使采样生成整体质量更好的图像。我得到的伪影更少,如果不是没有的话,我更有创意的提示也倾向于给出更随机的,以一种好的方式,不同的结果。
我将这种更随机但积极的行为归因于它似乎是从高开始,然后由于变低,它自我纠正并即兴发挥,更多地利用采样过程。
它使用起来非常简单,从我的角度来看,使采样变得更有趣 :)
你可以在model_patches类别中找到它。
总之:尝试时将CFG设置为8。不再有烧毁的图像和伪影。CFG也更敏感,因为它是围绕8的比例。
像4这样的低scale也给出非常好的结果,因为你的CFG不再是CFG。
更新:
更新:
- 生成速度比正常快至28.5%
- 负面权重
2024年4月5日:
- 更新到最新的ComfyUI版本。如果你遇到错误:请更新你的ComfyUI
2024年4月15日
添加了"no uncond"节点,完全禁用负面并将速度翻倍,同时在后cfg函数中重新缩放潜在空间,直到sigma达到1(或实际上是6.86%)。它本身并不完美,我正在寻找解决方案来改善最终结果。如果你不使用其他东西,它似乎与dpmpp3m_sde/exponential一起工作得更好。如果你使用PAG节点,那么你不需要关心采样器,但会以正常速度生成。结果会简单地不同(我个人喜欢它们)。请改用曲速驱动- 要使用PAG节点
而不完全减慢速度(如果使用no-uncond节点)或至少利用boost功能:- 在"pag_nodes.py"文件中查找"disable_cfg1_optimization=True"- 将其设置为"disable_cfg1_optimization=False"。这不再需要了,因为开发者已经修改了它 :) - 对于其他节点中的负面线性插值功能,scale已被除以二。所以如果你过去使用10,现在设置为5。
2024年4月16日
- 添加了"uncond_start_percentage"作为实验性功能。这允许稍后开始引导,作为尝试在有限区间应用引导改善扩散模型的样本和分布质量的一种方式。这里可以找到更准确的实现 :)
2024年4月17日
- 重新设计了高级节点并进行清理
- 为每个选项添加了计时
- 添加了后重缩放节点,允许在某些特殊情况下更多地对抗深度炸图
- 添加了带有开始/结束滑块的Comfy SAG节点的调整版本
- 更改了开始/结束滑块,它们现在直接与sigma值相关,而不是百分比。⚠
2024年5月1日
- 实际工作的禁用uncond
- 添加了"warp drive"预设以简单测试。
2024年5月3日
- 允许通过移除或断开节点来取消补丁
turn off the negative
。 - 添加了"Warp drive"节点。它使用我自己烹饪的新方法,使用前一步来确定负面。将大约3/4步骤的生成时间减半。
- 添加了10-12步的示例工作流,但当然你可以根据需要增加步数。一般来说,目标不是减少步数,而是展示它的兼容性。 14.05.24:
- 修复了小内存泄漏问题 😀
- 由于更新导致问题,暂时禁用了定时SAG节点。
- 新增节点:预设加载器。可以完成其他功能,还能做更多事情,如修改注意力机制!主要在SDXL上测试过 😀!
- 有些预设比其他预设慢。就像扰动注意力引导一样。大多数预设速度相同。
- 关于一些预设:
- 对于SD 1.5,"crossed conds customized 3"效果似乎很棒!
- "Enhanced_details_and_tweaked_attention"在创意生成上效果更好,在角色生成上效果较差。
- "Reinforced_style"不调节CFG,使负面提示词更加重要,适用于12步生成,速度稍慢。
- "The red riding latent"仅适用于SDXL。这是一个几乎毫无意义的注意力调整混合。最适合12步生成,对创意提示词效果很好。倾向于给角色更多红色衣服。因此得名。
- "Excellent_attention"是下面描述的节点的默认设置。不要删除它,否则节点将无法工作。🙃
- "Potato Attention Guidance"非常适合快乐人物的肖像...
- 还有很多其他预设。我生成了一些示例,可以在示例网格文件夹中找到。
- 这些预设大多在SDXL上测试过。我对它们在SD 1.5上的效果知之甚少。
- 预设是.json文件,可以包含通过eval()执行的字符串。⚠
- 当预设来自他人时,运行前一定要检查内容!我本想分享一个名为"actually shut down the computer in one minute"的预设,计划60秒后关机,以提醒大家注意,但这样做可能弊大于利。
- 新增节点:"Excellent attention",由我自己开发,基于这篇令人惊讶的易于理解的研究论文! 简而言之:
- 试试看。去做吧。
- 此节点允许在自注意力和交叉注意力上禁用输入层8。
- 还可以在交叉注意力中间层0上应用自定义修改。"patch_cond"和"patch_uncond"开关与此修改有关。
- 虽然这种修改确实不会消耗太多资源,但轻量级补丁使用的VRAM更少。
- 乘数影响交叉注意力并增强对提示词的遵循。但效果确实很明显。在"light patch"开关打开时效果更好。
- 我主要在SDXL上测试过。
- 您可以在"grids_example"文件夹中找到此节点设置的网格示例。
- 由于某些原因,Juggernaut模型无法与之配合使用,我不知道为什么。
- 可自定义的注意力修改器:
- 查看工作流程中的"attention_modifiers_explainations"。👀 这基本上是一个教程。
- 通过使用基本上是暴力测试的节点来试验每个层的实际作用!(注意力修改器测试节点)
- 例如,这就是如何实现扰动注意力引导
示例
10步生成,只有2步启用负面提示。速度提高约170%。在RTX4070上用时2.5秒
精选24步生成,完全禁用uncond(这些图像也是工作流程):
专业提示:
你知道我的首要工作是编写创意模型合并函数吗?
虽然代码太混乱无法共享,但我确实公开并分享了我的模型。你可以在这个画廊中找到它们!😁
感谢ComfyUI的存在,使这些事情变得如此简单!