写在最前,感谢香农,感谢所有训练者,数学是穷人的核武器
对AIMETATRON的 红工 |红潮 进行了分层量化 因为我只下了这一个krea2
保留大部分质量的同时立省百分之五十显存
16GB显存畅玩2k 8G畅玩1k(仅限于v1及后续版本)
请使用dpmpp_2m系列采样器,量化过程中不可避免出现坏步,但利用高阶微分方程求解技术,结合历史多步数据进行“预测-校正”的确定性数值积分完全可以消融。
如果您是第一次使用krea2的gguf格式,请进行如下操作
方案一:手动修改官方节点代码(快速适用)
进入 ComfyUI 的
custom_nodes目录,找到ComfyUI-GGUF文件夹。
完整路径示例:...\ComfyUI\custom_nodes\ComfyUI-GGUF\用文本编辑器(如 Notepad++、VS Code 等)打开
loader.py文件。定位到第 12 行附近,找到
IMG_ARCH_LIST的定义。在该列表中添加
"krea2",修改后的内容应为:python
IMG_ARCH_LIST = {"flux", "sd1", "sdxl", "sd3", "aura", "hidream", "cosmos", "ltxv", "hyvid", "wan", "lumina2", "qwen_image", "krea2"}保存文件,重启 ComfyUI,再次加载 Krea-2 的 GGUF 模型即可正常使用。
注意:此修改仅影响当前 ComfyUI 实例。如果后续官方节点更新覆盖了该文件,需要重新添加。
方案二:安装第三方支持节点(推荐,无需手动改代码)
社区已有开发者提供了专门为 Krea-2 打过补丁的 ComfyUI-GGUF 分支,您可以直接安装使用:
安装步骤:
进入 ComfyUI 的
custom_nodes目录。执行以下命令克隆该仓库(或手动下载并解压到该目录):
bash
git clone https://github.com/RealRebelAI/ComfyUI-GGUF_KREA-2.git重启 ComfyUI。
该节点已预先在 IMG_ARCH_LIST 中添加了 "krea2",并且针对 Krea-2 模型的加载逻辑做了适配,开箱即用,无需手动修改任何代码。
v2.5.1版本-此版本为非标准krea2-必须下载附件中的节点并解压放入以下文件夹
···\ComfyUI\custom_nodes更加精准的测试了损失的流转,并对原始线性层使用了大量低秩分解技术,这个版本的矩阵形状和存储格式与原始模型或者说和krea2这个模型没有太大的关系
原理图如下:

将大型只作为查表依据的adaln_proj矩阵近似为小矩阵,在运算时逆转该过程,结合1200步的训练,使用fp32精度作为比较值其相似度已经为1,同时信噪比,DB>47,优于原模型的信噪比损失。
将大量在量化时产生的离群值进行剥离,对于每一层量化进行相似比较与逐层QAT的量化恢复训练。此方法为v2训练时对于离群值的取舍困难导致。总有坏步,如果增大步数要不过拟合要不爆炸,简直恶心。

为此 完全放弃对block内的transformer网络进行训练,转为block作为残差连接的第一层保留其fp8精度,后续层统一使用q4精度进行量化退火训练,使用32样本64步进行退火(GSQ方法),其相似度cos>0.999。
对比图

v2.0版本
该版本只可使用大于等于10G的显卡!
进行了更详细的cos余弦相似度测验,以及经过了300步的自蒸馏量化恢复训练(QAT)样本数>4600份,
经过测试,该方法(ptq混合量化)在高噪(sigema>0.9)与低噪(sigma<0.3)环境下表现优异(cos相似度>0.95)中噪表现一般(sigma∈(0.3,0.9))cos相似度均值0.85,且中噪阶段出现大量坏块(cos相似度<0.85 且最低相似度<0.45)
所以增加wo矩阵的无损q8格式的同时,使用qat自蒸馏方法进行削峰填谷,且一次喂给模型12个教师模型蒸馏出的流场,修复效果明显,最低坏步几乎消失(cos相似度<0.5),坏步在(sigma∈(0.3,0.9)中出现概率由未进行QAT量化适应性训练时的64个样本出现8次下降到2次

v2.0出图


非推理时占用:

2k图片首次推理时占用(LLM未卸载):

热加载完成后再次推理(LLM卸载后)

对模型的Attention wv(注意力层)MLP down(MLP缩放层)和其他微型层(norm, modulation, embedding )进行了Q8量化的保留,对【wq, wk, wo(q、k、o), gate, mlp.gate, mlp.up】等巨型层进行了激进的Q2量化缩放,效果远远大于更大尺寸的Q4量化,且不依赖NVFP4对A卡友好。
原理公式:

注意力机制中(QKV)v对于每次传播系数的影响最大,在llm中v在每次对话中累计其计算复杂度为logN2,但在DIT架构中,由于都是一次性生图/视频,完全没有多轮对话这回事,其计算复杂度完全可以视为2N,所以这里保留了V的的权重系数。
而mlpdown同理他几乎不参与加权计算而作为最终乘数,保留其权重作为残差连接的最后一层,在解码时保留了最终的画质。
从 F16 / Q4_K_S / 混合版 GGUF 中逐 tensor 反量化,对 block 0/7/14/21/27 五层采样:

经架构放大系数 A计算后
误差到输出的传播增益:
wq/wk:A = 0.022(精确值)。误差进 logits 后乘 1/d=1/128=0.088,再过 softmax(雅可比 ≤0.25):0.088×0.25=0.022,衰减 45 倍
wv / mlp.down:A = 1.0。
wo / gate / up:A ≈ 0.08~0.12(经验标定,与 FLUX GGUF 配方一致)
最终误差推算为 百分之八到十二
也就是说减少一半多的体积只减少至多百分之十二的画质
输出端有效误差最大值(python验算)

最终生图效果对比(相同工作流、提示词、随机种子、生成步数)
图片实测 :造像
FP8/INT8:

Q2精度混合:

Q4量化:

图片实测 :人体(多人)
FP8/INT8:

Q4:

Q2混合精度:

复杂场景
int8/q8

Q2混合精度:

Q4:

可以明显注意到,人体错误相对于Q4的减小乃至于完全消失,光影更符合人类逻辑,但物体细节尤其是织物细节/花纹,相对于Q4依旧是缺乏的,当然~可以配合seedvr2.5使用~
请多多反馈意见!可以期待更新BF16-Q2的混合精度版本~因为小水管下载BF16太慢了,工具链还在完善,完成后放出完整量化工具链,明天把纯Q2传了,Q2的意义在于使用更多lora
Description
进行了约300步QAT自蒸馏微调(每次12样本),削弱了差步骤影响,同时增加了wo权重的q8保留,模型更加贴近原版,但8g显存不再可用,最小显存推荐为12gb
FAQ
Comments (3)
Does not appear to work with ForgeUi Neo with Krea settings. Just letting people know.
I'm moving on from GGUF anyway.
для ForgeUi Neo нужно расширение чтобы работал GGUF
@lentor Так как Krea2 — новая модель, нужно изменить код распознавания названия внутри плагина. Это очень просто, в инструкции описаны два способа.






