T5xxl-Unchained Lora + Workflow
详情
下载文件
关于此版本
模型描述

Flux 修复更新 - 7/2/25 - 晚间:
T5XXL 的 Flux 加载器存在一个 Bug,因此我进行了调整,使其在今日晚间推送中正常工作。
可能也需要对 SD3 和 SD35 做类似的处理。
工作流发布 - 7/2/25 - 早晨:
当前工作流需要安装 comfy-clip-shunts 节点插件。你并不一定非得使用 shunts,但它附带了支持 t5-unchained 的 clip 加载器。
这些加载器之所以能工作,是因为它们本质上用直接链接使用方式的函数调用取代了原始的 SD 函数调用。
对于 shunts,你可以使用标准的 bert-uncased 或 bert-cased,而不是 beatrix,但结果准确性会稍差一些。
带 unchained 的 shunt 代码:
https://github.com/AbstractEyes/comfy-clip-shunts/tree/dev
完整未训练的 unchained 模型:
https://huggingface.co/AbstractPhil/t5xxl-unchained
我这里加载了大量 clip 模型。omega 24 的表现非常好,因为它们更接近原始的 vit-l-14 和 laion vit-bigG。
https://huggingface.co/AbstractPhil/clips
由 res4lyf 增强和改进,我建议你安装它:
https://github.com/ClownsharkBatwing/RES4LYF
特别感谢 Kaoru8 提供的 base t5xxl-unchained 转换和仓库。它没有在原始 T5 基础上进行额外训练,但已成功转换,我输入的训练数据显然有效。
https://huggingface.co/Kaoru8/T5XXL-Unchained
还不错……一周内就做出了一个可用的 SD35 原型。
到下周此时,我希望 Flux 变体能完全正常运行,clip 套件也能进入原型阶段。
我真的需要一些时间休息。这似乎对我的心理健康造成了很大压力,因此我要花些时间恢复和调整。
我将把精力集中在工具开发和小型微调上,而不是全量微调。这些大型微调成本高昂,而且当程序无法正常运行时,对身心消耗极大。
是的,这是一个 T5 LoRA。它被当作 T5xxl 的 lora_te3 来使用,即“T5xxl”文本编码器。我已从原始的 SD35 训练 LoRA 中提取了 lora_te3 层,并重新保存。过程其实很简单,不清楚是否存在缺陷。我怀疑它只能在 ComfyUI 或 Forge 中加载,但这里提供给你。
你可以使用标准的 LLM 推理方式,与加载了 LoRA 权重的 T5xxl-unchained 进行对话;它能很好地进行摘要。
800MB 的 LoRA。这个过程比我想象中简单得多。
https://huggingface.co/AbstractPhil/SD35-SIM-V1/tree/main/REFIT-V1
from safetensors.torch import load_file, save_file
# 加载 safetensors 模型
input_path = "I:/AIImageGen/AUTOMATIC1111/stable-diffusion-webui/models/Lora/test/sd35-sim-v1-t5-refit-v2-Try2-e3-step00003000.safetensors"
output_path = "I:/AIImageGen/AUTOMATIC1111/stable-diffusion-webui/models/Lora/test/t5xxl-unchained-lora-v1.safetensors"
model = load_file(input_path)
# 过滤掉 TE1 和 TE2 张量
filtered = {k: v for k, v in model.items() if not (k.startswith("lora_te1") or k.startswith("lora_te2") or k.startswith("lora_unet")) }
print(f"已过滤 {len(model) - len(filtered)} 个张量。")
print(f"剩余张量:{filtered.keys()}")
# 保存结果
save_file(filtered, output_path)
print(f"✅ 已将移除 TE1/TE2 张量的清理模型保存至:\n{output_path}")
如果需要,你可以自行提取。最新的 T5 仍在训练中。
要正常运行,需要正确的 T5xxl 分词器和配置文件,以及 T5xxl 模型权重。
若没有基础的 t5xxl-unchained、分词器和正确的维度配置,你将收到尺寸不匹配的错误。
你需要大型的 T5xxl fp16 或 fp8 模型。它是在 fp16 下训练的,因此使用它进行微调效果更好。你或许只需告诉 ComfyUI 或 Forge 对其进行降尺度。
https://huggingface.co/AbstractPhil/t5xxl-unchained/resolve/main/t5xxl-unchained-f16.safetensors
当 clip 套件准备就绪后,它将在程序中自动缩放,并支持硬件级量化热转换(Q2、Q4、Q8 等),并可在 ComfyUI 中直接保存。
届时你将只需一个模型,所有转换都将通过 META C++ 库在运行时自动完成。
https://huggingface.co/AbstractPhil/t5xxl-unchained/blob/main/config.json
https://huggingface.co/AbstractPhil/t5xxl-unchained/blob/main/tokenizer.json
若要修改 Forge,可将这些文件替换为上述地址中的文件;唯一例外是 sd3_conds.py,需直接修改其代码中的模板。
如需,可备份原始配置文件,不过这并不重要。原始形式的 t5xxl-unchained 行为与原始 t5xxl 完全一致。
------------------------------------------------------------------------
configs
------------------------------------------------------------------------
modules/models/sd3/sd3_conds.py
backend/huggingface/stabilityai/stable-diffusion-3-medium-diffusers/text_encoder_3
backend/huggingface/black-forest-labs/FLUX.1-dev/text_encoder_2/config.json
backend/huggingface/black-forest-labs/FLUX.1-schnell/text_encoder_2/config.json
-------------------------------------------------------------------------
tokenizers
-------------------------------------------------------------------------
backend/huggingface/black-forest-labs/FLUX.1-dev/tokenizer_2/tokenizer.json
backend/huggingface/black-forest-labs/FLUX.1-schnell/tokenizer_2/tokenizer.json
backend/huggingface/stabilityai/stable-diffusion-3-medium-diffusers/tokenizer_3/tokenizer.json

