ComfyUI的额外模型
本仓库旨在为ComfyUI添加对各种不同图像扩散模型的支持。
安装
只需使用以下命令将此仓库克隆到您的custom_nodes文件夹中:
git clone https://github.com/city96/ComfyUI_ExtraModels custom_nodes/ComfyUI_ExtraModels
您还需要在VENV/conda环境中运行pip install -r requirements.txt
来安装提供的文件中的依赖项。如果您下载了ComfyUI的独立版本,请按照以下步骤操作。
独立版ComfyUI
我没有完全测试过这个,所以如果您知道自己在做什么,在安装ComfyUI时请使用常规的venv/git clone
安装选项。
转到解压ComfyUI_windows_portable
的位置(run_nvidia_gpu.bat文件所在的地方),并打开命令行窗口。在空白处按CTRL+SHIFT+右键
,然后点击"在此处打开PowerShell窗口"。
假设您尚未通过管理器安装,请将仓库克隆到自定义节点文件夹。
git clone https://github.com/city96/ComfyUI_ExtraModels .\ComfyUI\custom_nodes\ComfyUI_ExtraModels
要在Windows上安装依赖项,请在同一窗口中运行以下命令:
.\python_embeded\python.exe -s -m pip install -r .\ComfyUI\custom_nodes\ComfyUI_ExtraModels\requirements.txt
.\python_embeded\python.exe -s -m pip install bitsandbytes --prefer-binary --extra-index-url=https://jllllll.github.io/bitsandbytes-windows-webui
要更新,请像之前一样打开命令行窗口,然后运行以下命令:
cd .\ComfyUI\custom_nodes\ComfyUI_ExtraModels\
git pull
或者,假设管理器有更新功能,可以使用管理器。
PixArt
模型信息/实现
- 使用T5文本编码器而不是CLIP
- 有512和1024版本,需要特定的预定义分辨率才能正常工作
- 与SD1.5具有相同的潜在空间(适用于SD1.5 VAE)
- 注意力需要优化,没有xformers图像质量会更差。
使用方法
- 从PixArt alpha仓库下载模型权重 - 您很可能需要1024px的版本 -
PixArt-XL-2-1024-MS.pth
- 将它们放在您的checkpoints文件夹中
- 使用正确的PixArt checkpoint加载器加载它们
- 按照本说明的T5v11部分设置T5文本编码器
[!提示] 如果您使用的是最新版本的节点,应该能够使用默认的KSampler来使用该模型。 理论上,这应该允许您使用更长的提示以及进行img2img等操作。
限制:
PixArt DPM Sampler
要求负面提示比正面提示短。PixArt DPM Sampler
只能使用批量大小为1。PixArt T5 Text Encode
来自参考实现,因此不支持权重。T5 Text Encode
支持权重,但我无法保证实现的正确性。
[!重要]
安装xformers
是可选的,但强烈推荐,因为torch SDP只是部分实现(如果有的话)。
PixArt Sigma
Sigma模型的工作方式与普通模型相同。在发布的检查点中,支持512、1024和2K版本。
您可以在这里找到1024检查点。将其放在您的模型文件夹中,并在模型加载器/分辨率选择节点中选择适当的类型。
[!重要] 请确保为PixArt Sigma选择SDXL VAE!
PixArt LCM
如果您使用的是最新版本,LCM模型也可以工作。使用方法:
- 下载PixArt LCM模型并将其放在您的checkpoints文件夹中。
- 添加一个
ModelSamplingDiscrete
节点,并将"sampling"设置为"lcm" - 调整KSampler设置 - 将采样器设置为"lcm"。您的CFG应该相当低(1.1-1.5),步数应该在5左右。
其他一切都可以与上面的示例相同。
HunYuan DiT
腾讯HunYuan DiT的WIP实现
使用说明:
- 从这里下载第一个文本编码器并将其放在
ComfyUI/models/clip
中 - 重命名为"chinese-roberta-wwm-ext-large.bin" - 从这里下载第二个文本编码器并将其放在
ComfyUI/models/t5
中 - 将其重命名为"mT5-xl.bin" - 从这里下载模型文件并将其放在
ComfyUI/checkpoints
中 - 将其重命名为"HunYuanDiT.pt" - 下载/使用任何SDXL VAE,例如这个
您也可以尝试以下替代模型文件,以获得更快的加载速度/更小的文件大小:
- 转换后的第二个文本编码器 - 重命名为
mT5-xl-encoder-fp16.safetensors
并放在ComfyUI/models/t5
中
您可以使用"simple"文本编码节点仅使用一个提示,或者可以使用常规节点将不同的文本传递给CLIP/T5。
DiT
模型信息/实现
- 使用类别标签而非提示词
- 仅限256x256或512x512图像
- 与SD1.5使用相同的潜在空间(可与SD1.5 VAE配合使用)
- 支持FP16,但无其他优化
使用方法
- 从DiT仓库下载原始模型权重,或从Huggingface下载转换后的FP16 safetensor文件。
- 将它们放入你的checkpoints文件夹。(如果之前放在
ComfyUI\models\dit
中,可能需要移动它们) - 加载模型并如下图所示选择类别标签
- 确保在KSampler的Negative输入中使用空标签条件!
ConditioningCombine节点应该可以用于组合多个标签。区域相关的节点不起作用,因为该模型目前无法处理动态输入维度。
T5
T5v11
可以从DeepFloyd/t5-v1_1-xxl仓库下载模型文件。
你需要下载以下4个文件:
config.json
pytorch_model-00001-of-00002.bin
pytorch_model-00002-of-00002.bin
pytorch_model.bin.index.json
将它们放入ComfyUI/models/t5
文件夹。你可以把它们放在名为"t5-v1.1-xxl"的子文件夹中,不过这无关紧要。其他DeepFloyd仓库中有int8 safetensor文件,但对我来说不起作用。
为了更快的加载速度/更小的文件大小,你可以选择以下替代下载:
- FP16转换版本 - 布局与原版相同,下载两个safetensor文件以及
*.index.json
和config.json
文件。 - BF16转换版本 - 合并为单个safetensor,只需要
model.safetensors
(+文件夹模式下的config.json
)。
要将T5移动到不同的驱动器/文件夹,操作方式与移动checkpoints相同,但在extra_model_paths.yaml
中添加 t5: t5
,并在base_path
变量指定的替代路径中创建一个名为"t5"的目录。
使用方法
加载到CPU上时,会使用约22GB的系统RAM。根据使用的权重不同,在加载过程中可能会稍微多用一些。
如果你有第二个GPU,选择"cuda:1"作为设备将允许你将其用于T5,从而释放一些VRAM/系统RAM。建议使用FP16作为dtype。
在bnb4bit模式下加载时,只需要约6GB VRAM,使其能够在12GB显卡上工作。唯一的缺点是它会一直保留在VRAM中,因为BitsAndBytes不允许临时将权重移至系统RAM。切换到不同的工作流程应该仍然能按预期释放VRAM。Pascal卡(1080ti, P40)似乎在4bit上有困难。如果遇到问题,请选择"cpu"。
在Windows上,你可能需要更新版本的bitsandbytes来支持4bit。尝试运行python -m pip install bitsandbytes
[!重要]
你可能还需要升级transformers并安装spiece用于分词器。pip install -r requirements.txt
MiaoBi
原始来源:
- 作者:Github ShineChen1024 | Hugging Face ShineChen1024
- https://github.com/ShineChen1024/MiaoBi
- https://huggingface.co/ShineChen1024/MiaoBi
使用说明
- 下载clip模型并重命名为"MiaoBi_CLIP.safetensors"或你喜欢的名字,然后放入
ComfyUI/models/clip
。 - 下载unet模型并重命名为"MiaoBi.safetensors",然后放入
ComfyUI/models/unet
。 - 或者,将整个huggingface仓库克隆/下载到
ComfyUI/models/diffusers
并使用MiaoBi diffusers加载器。
这是妙笔的测试版本。妙笔,一个中文文生图模型,与经典的stable-diffusion 1.5版本拥有一致的结构,兼容现有的lora,controlnet,T2I-Adapter等主流插件及其权重。
This is the beta version of MiaoBi, a chinese text-to-image model, following the classical structure of sd-v1.5, compatible with existing mainstream plugins such as Lora, Controlnet, T2I Adapter, etc.
示例提示词:
- 一只精致的陶瓷猫咪雕像,全身绘有精美的传统花纹,眼睛仿佛会发光。
- 动漫风格的风景画,有山脉、湖泊,也有繁华的小镇子,色彩鲜艳,光影效果明显。
- 极具真实感的复杂农村的老人肖像,黑白。
- 红烧狮子头
- 车水马龙的上海街道,春节,舞龙舞狮。
- 枯藤老树昏鸦,小桥流水人家。水墨画。
VAE
支持几种自定义VAE模型。还可以选择在加载时使用不同的数据类型,这对于测试/比较很有用。您可以使用"ExtraVAELoader"节点加载以下列出的模型。
像PixArt/DiT这样的模型不需要特殊的VAE。除非特别说明,请像使用其他模型一样使用以下之一:
一致性解码器
现在这个功能可以工作了,感谢@mrsteyk和@madebyollin的努力 - 包含更多信息的Gist。
- 从这个HF仓库下载转换后的safetensor VAE。如果您之前下载了OpenAI模型,它将无法工作,因为它是一个TorchScript文件。您可以放心删除它。
- 将文件放入您的VAE文件夹
- 使用ExtraVAELoader加载它
- 将其设置为fp16或bf16以避免耗尽VRAM
- 如果需要,使用平铺VAE解码
去闪烁解码器 / 视频解码器
这是内置于Stable Video Diffusion模型中的VAE。
作为普通VAE似乎不太好(有色彩问题,对细节处理得不太好)。
尽管如此,为了完整起见,运行它的代码大部分已经实现。要获取权重,只需从sdv模型中提取它们:
from safetensors.torch import load_file, save_file
pf = "first_stage_model." # 键前缀
sd = load_file("svd_xt.safetensors")
vae = {k.replace(pf, ''):v for k,v in sd.items() if k.startswith(pf)}
save_file(vae, "svd_xt_vae.safetensors")
AutoencoderKL / VQModel
来自compvis/latent diffusion仓库的kl-f4/8/16/32
。
来自taming transformers仓库的vq-f4/8/16
,vq和kl模型的权重都可以在这里获得。
vq-f8
可以接受来自SD unet的潜在表示,但就像xl使用v1潜在表示一样,输出largely garbage。其余的如果没有匹配的使用正确通道数的UNET,则完全无用。