Hyper-LoRA人物一致性生成
Hyper-LoRA专门用于SDXL的人物一致性生成插件。
插件
插件地址:https://github.com/bytedance/ComfyUI-HyperLoRA
路径:新建节点->HyperLoRA
特点
可以指定场景、穿着元素
可以通过提示词改变年龄
可以一键生成同款卡通形象
可以指定两个人物样貌融合起来
安装
1、正常用manager安装插件。
2、下载模型。
首先,下载 CLIP 处理器 到 models/hyper_lora/clip_processor/clip_vit_large_14_processor
其次,下载 CLIP ViT 模型 和 配置 到 models/hyper_lora/clip_vit/clip_vit_large_14
然后,下载 antelopev2 并解压到 models/insightface/models,
最后,下载 HyperLoRA 模型 到 models/hyper_lora/hyper_lora,所有文件都下载。
HyperLoRA有两个版本:sdxl_hyper_id_lora_v1_fidelity提供了更好的保真度,而sdxl_hyper_id_lora_v1_edit提供了更好的可编辑性。
节点
HyperLoRA Config 配置设置(一般默认即可,修改后会导致报错)
enum_field('image_processor',options=list_models('hyper_Lora/clip_processor'),tooltip='选择用于图像预处理的CLIP处理器模型。"),
enum_field('image_encoder',options=list_models("hyper_Lora/clip_vit'),tooltip='选择用于图像编码的cLIPViT模型。'),
int_field('resampler.dim',default=1024,minimum=64,maximum=2048,step=32,tooltip='Resampler主特征维度影响特征表达能力。'),
用途: 决定了Resampler模块的主特征维度大小,较大的维度可以表示更丰富的特征,但也增加了计算复杂度。
int_field('resampler.dim_head',default=64,minimum=32,maximum=512,step=32,tooltip='每个注意力头的维度,影响多头注意力机制的表达能力。'),
在多头注意力机制中,每个注意力头处理的特征维度。较大的维度可以捕捉更复杂的特征关系。
int_field('resampler.heads',default=12,minimum=4,maximum=32,step=4,tooltip='Resampler的多头注意力头数。'),
决定了多头注意力机制中的头数,更多的头可以捕捉更多的特征子空间。
int_field('resampler.depth',default=4,minimum=4,maximum=16,step=2,tooltip='Resampler的层数深度,决定网络复杂度。'),
决定了Resampler模块的层数,更多的层可以增加模型的表达能力,但也增加了计算复杂度。
int_field('resampler.ff_mult',default=4,minimum=2,maximum=8,step=2,tooltip='前馈网络扩展倍数影响Resampler中MLP层的宽度。'),
决定了前馈网络(MLP)的扩展倍数,较大的倍数可以增加MLP层的宽度,从而增强特征的非线性表达能力。
enum_field('encoder_types',options=['clip','arcface','clip+ arcface'],tooltip='选择编码器类型可选CLIP、ArcFace或两者结合。'),
确定使用哪种编码器或编码器组合来提取特征。CLIP适合通用图像特征,ArcFace适合人脸特征,两者结合可以同时利用两者的优点。
enum_field('face_analyzer',options=list_models('insightface/models'),tooltip='选择用于人脸分析的insightface模型。'),
int_field('id_embed_dim',default=512,minimum=128,maximum=1024,step=32,toltip='身份嵌入向量维度,影响身份特征表达。'),
决定了身份嵌入向量的维度大小,较大的维度可以表示更丰富的身份特征。
int_field('num_id_tokens',default=4,minimum=4,maximum=128,step=4,tooltip='身份token数量用于身份特征分割。'),
决定了身份特征分割的数量,更多的token可以更细粒度地表示身份特征。
int_field('hyper_dim',default=128, minimum=32,maximum=1024,step=32,tooltip='HyperLoRA隐空间维度影响生成能力。'),
决定了HyperLoRA隐空间的维度大小,较大的维度可以增强模型的生成能力。
int_field('Lora_rank',default=4,minimum=2,maximum=32,step=2,tooltip='LoRA秩rank},影响参数高效性与表达能力。'),
决定了LoRA模块的秩大小,较小的秩可以提高参数的高效性,但可能牺牲一定的表达能力。
bool_field('has_base_lora',default=False,tooltip='是否启用基础LoRA结构提升兼容性。)
决定是否在模型中加入基础LoRA结构,以提升模型的兼容性和适应性。
HyperLoRA Loader 选择生成模式
sdxl_hyper_id_lora_v1_edit:编辑模式,改变人物年龄表情戴眼镜等情况使用
sdxl_hyper_id_lora_v1_fidelity:忠诚模式,最大还原人物相貌
HyperLoRA ID Cond 在这一步把上一步处理好的脸部生成角色特征
grayscale:黑白模式,开启后参考的脸部变成黑白色,如果参考图有丰富的妆容,开启后可以减少影响
HyperLoRA Base Cond
HyperLoRA Generate ID LoRA 在这一步把角色特征生成角色Lora
HyperLoRA Generate Base LoRA
HyperLoRA Apply LoRA 在这一步应用上一步生成的Lora
weight:权重,一般设置在0.7-0.85之间,数值越大,脸部相似度就越好
HyperLoRA Face Attr 在这一步传入人物照片处理脸部
HyperLoRA Uni Loader
HyperLoRA Uni Generate ID LoRA
使用
必需添加触发词 fcsks fxhks fhyks 来触发生效,否则没有效果。
clip跳过层要设置成-2
LoRA权重通常在0.75到0.85之间,如无特殊需求,一般选择0.85即可。
HyperLoRA 并不是与所有 SDXL 基础模型都兼容。
欧美人物推荐模型:CyberRealistic XL v1.1,RealVisXLv4.0
亚洲人物推荐模型:HelloWorld XL 3.0,ArienMixXL v4.0
由于训练出的人脸分辨率有限,建议使用FaceDetailer插件来修复小脸或使用ControlNet来提高稳定性。此外,将HyperLoRA与InstantID的ControlNet结合通常可以进一步提高面部相似度。