文章目录
- 前言
- ComfyUI InstantID 文生图与图生图完整操作指南
- 一、环境准备:模型下载与目录配置
- 1.1 模型下载来源
- 1.2 核心模型列表与下载地址
- 1.3 模型目录配置(关键!)
- 二、ComfyUI 节点安装
- 2.1 安装步骤
- 2.2 节点确认
- 三、基础调整:文生图模板改造(含 InstantID 集成)
- 3.1 打开默认模板
- 3.2 添加 InstantID 核心节点
- 3.3 加载face来源图
- 四、模型替换与节点重连
- 4.1 替换 SDXL 真人模型
- 4.2 添加 SDXL VAE 节点
- 4.3 关键节点重连(核心步骤)
- 4.4 参数调整(优化生成效果)
- 五、face功能扩展:添加遮罩与图层控制
- 5.1 添加face相关节点
- 5.2 face节点连接
- 5.3 工作流确认
- 5.4 资源下载
- 六、运行与效果验证
- 七、后续优化与资源
- 附录:关键节点功能速查
- 总结
前言
本文在学习使用comfyUI,在了解初步文生图的基础上,比较感兴趣部分进行学习,在搜索相关的资料之后。整理出来学习过程中出现问题。
ComfyUI InstantID 文生图与图生图完整执行指南
本文档基于 InstantID 技术,详细介绍在 ComfyUI 中实现文生图+人脸控制及脸部特征提取功能的完整流程,包括环境准备、节点安装、模型配备、参数调整等关键步骤,附操作细节与问题解决提示。
一、环境准备:模型下载与目录配置
搭建 InstantID 能力需先下载指定模型,并按路径放置(路径错误会导致功能失效)。
1.1 模型下载来源
优先从 Hugging Face 下载,若网络受限,可启用Hugging Face 镜像站(HF-Mirror),核心模型均来自 InstantX
仓库:
- 主仓库地址:InstantX/InstantID at main(镜像站)
- 其他辅助模型:SDXL 真人模型、VAE 模型、InsightFace 面部分析模型
1.2 核心模型列表与下载地址
模型类型 | 模型文件名 | 下载路径(HF-Mirror) | 用途 |
---|---|---|---|
InstantID 核心 | ip-adapter.bin | InstantX/InstantID → main 目录 | 人脸特征控制 |
InstantID ControlNet | diffusion_pytorch_model.safetensors | InstantX/InstantID → main 目录 | 人脸姿态与细节控制 |
面部分析模型 | 1k3d68.onnx /2d106det.onnx 等 | InsightFace 预训练模型(自动下载或手动获取) | 人脸关键点检测与分析 |
SDXL 真人模型 | 例如 LEOSAM HelloWorld_SDXL | liblibai(免费,热度排序) | 生成高真实度人物图像 |
SDXL VAE 模型 | sdxl_vae.safetensors | Hugging Face 或 GitHub SD 项目仓库 | 修复图像色彩与细节 |
镜像站搜索,对应的模型。haggingface网站一样搜索方法进行下载。就是下面
1.3 模型目录配置(关键!)
下载后需按以下路径放置模型,确保 ComfyUI 能正确识别:
ComfyUI-master/
├─ models/
│ ├─ instantid/ # InstantID 核心模型
│ │ └─ ipadapter/
│ │ └─ ip-adapter.bin # 从 InstantID 仓库下载
│ ├─ controlnet/ # ControlNet 模型
│ │ └─ diffusion_pytorch_model.safetensors # 从 InstantID 仓库下载
│ ├─ insightface/ # 面部分析模型(避免多一层目录!)
│ │ └─ antelopev2/ # 解压后直接放此目录,不含子文件夹
│ │ ├─ 1k3d68.onnx
│ │ ├─ 2d106det.onnx
│ │ └─ ...(其他 3 个 onnx 模型)
│ ├─ checkpoints/ # SDXL 真人模型
│ │ └─ LEOSAM HelloWorld_SDXL大模型.safetensors
│ └─ vae/ # VAE 模型
│ └─ sdxl_vae.safetensors
⚠️ 常见问题:若面部分析节点报错,大概率是 insightface/antelopev2
目录下多了一层解压文件夹(如 antelopev2/antelopev2/xxx.onnx
),需删除多余层级。(这个本人在实际安装中遇到)
二、ComfyUI 节点安装
需安装 2 个关键节点:ComfyUI_InstantID
(原生支持 InstantID)和 ComfyUI LayerStyle
(换脸图层控制)。
2.1 安装步骤
- 打开 ComfyUI,点击左上角「节点管理」(ComfyUI-Manager);
这之前有些文章介绍,可以查看这个链接:ComfyUI自定义节点安装教程 - 在「搜索框」输入节点名称,找到对应节点后点击「安装」:
- 节点 1:
ComfyUI_InstantID
(作者:Matteo,功能:原生 InstantID 支持,无需依赖 diffusers) - 节点 2:
ComfyUI LayerStyle
(作者:chflame163,功能:类似 PS 图层样式,支持换脸遮罩控制)
- 节点 1:
- 安装完成后,重启 ComfyUI 使节点生效。
2.2 节点确认
在「已安装节点」列表中,确认以下节点存在:
ComfyUI_InstantID
:包含Load InstantID Model
、InstantID Face Analysis
、Apply InstantID Advanced
等核心节点;ComfyUI LayerStyle
:包含LayerMask: SegmentAnythingUltra V2
等换脸相关节点。
三、基础配置:文生图模板改造(含 InstantID 集成)
从 ComfyUI 默认文生图模板开始,逐步集成 InstantID 节点,实现「文本+人脸控制」的图像生成。
3.1 打开默认模板
- 启动 ComfyUI 后,默认加载「文生图模板」,包含以下核心节点:
Checkpoint 加载器(简易)
、CLIP 文本编码
、空 Latent 图像
、K 采样器
、VAE 解码
、保存图像
;
- SD1.5 模型,需替换为 SDXL 真人模型)。就是先删除原模板中失效的模型(默认
3.2 添加 InstantID 核心节点
从左侧节点栏拖拽以下节点到画布:
Load InstantID Model
:加载 InstantID 核心模型;- 配置:「模型」选择
ComfyUI-master/models/instantid/ipadapter/ip-adapter.bin
;
- 配置:「模型」选择
InstantID Face Analysis
:人脸关键点检测与分析;- 配置:「provider」选择
CPU
(或CUDA
,需显卡支持),「image」后续连接换脸来源图;
- 配置:「provider」选择
加载 ControlNet 模型
:加载 InstantID ControlNet 模型;- 配置:「ControlNet」选择
ComfyUI-master/models/controlnet/diffusion_pytorch_model.safetensors
;
- 配置:「ControlNet」选择
Apply InstantID Advanced
:InstantID 高级应用节点(核心控制);- 初始配置:
ip_weight=0.8
、cn_strength=0.8
、start_at=0.0
、end_at=1.0
(后续可微调)。
- 初始配置:
3.3 加载face来源图
添加「加载图像」节点:
- 拖拽
加载图像
节点到画布; - 点击「选择文件上传」,上传你得用于「脸部的来源图片」(需包含清晰人脸);
- 将「加载图像」的「图像」输出端,连接到
InstantID Face Analysis
的「image」输入端。
四、模型替换与节点重连
将默认模板的 SD1.5 模型替换为 SDXL 真人模型,并补充 VAE 节点,确保 InstantID 与新模型兼容。
4.1 替换 SDXL 真人模型
- 拖拽
Checkpoint 加载器(简易)
节点到画布; - 配置:「模型」选择
ComfyUI-master/models/checkpoints/LEOSAM HelloWorld_SDXL大模型.safetensors
(或其他 SDXL 真人模型); - 「CPU/VAE」暂时留空,后续连接独立 VAE 节点。
4.2 添加 SDXL VAE 节点
- 拖拽
加载 VAE
节点到画布; - 配置:「vae 名称」选择
ComfyUI-master/models/vae/sdxl_vae.safetensors
; - 作用:修复 SDXL 模型生成图像的色彩偏差(如偏灰、偏色)。
4.3 关键节点重连(核心步骤)
按以下逻辑连接各节点(参考示意图),确保数据流向正确:
输出节点 | 输出端 | 输入节点 | 输入端 |
---|---|---|---|
Checkpoint 加载器 | model | K 采样器 | model |
Checkpoint 加载器 | clip | CLIP 文本编码(正负) | clip |
CLIP 文本编码(正面) | conditioning | Apply InstantID Advanced | positive |
CLIP 文本编码(负面) | conditioning | Apply InstantID Advanced | negative |
Load InstantID Model | model | Apply InstantID Advanced | model |
InstantID Face Analysis | image_kps | Apply InstantID Advanced | image_kps |
加载 ControlNet 模型 | control_net | Apply InstantID Advanced | control_net |
Apply InstantID Advanced | conditioning | K 采样器 | positive |
空 Latent 图像 | latent | K 采样器 | latent |
K 采样器 | latent | VAE 解码 | latent |
加载 VAE | vae | VAE 解码 | vae |
VAE 解码 | image | 保存图像 | image |
4.4 参数调整(优化生成效果)
- K 采样器配置:
采样器名称
:选择euler
(快速测试,稳定);步数
:20(基础值,可增至 30 提升细节);cfg
:2-3(控制文本与图像的关联度,过高易失真);降噪
:1.0(默认,文生图模式);
- 空 Latent 图像部署:
宽度/高度
:1024×1024(SDXL 模型推荐尺寸,避免拉伸);
- 提示词优化:
- 正面提示词:
masterpiece, teenage, beautiful scenery, nature glass bottle landscape, purple galaxy bottle
(可根据需求修改); - 负面提示词:
text, watermark, low quality, blurry
(过滤低质量元素)。
- 正面提示词:
直接运用文生图进行图片生成,脸部特征。
五、face效果扩展:添加遮罩与图层控制
在基础文生图+InstantID 配置上,增加 LayerStyle 节点,实现精准替换(替换指定face区域)。
5.1 添加face相关节点
从左侧节点栏拖拽以下节点:
LayerMask: SegmentAnythingUltra V2
:face区域分割(生成遮罩);- 配置:
sam_mode=m_vit_l(1.25GB)
、threshold=0.30
、detail method=VITMatte
; - 作用:精准识别图像中的人脸区域,生成遮罩用于face;
- 配置:
VAE 编码
:将face来源图编码为 Latent 格式;设置 Latent 噪声
:控制face区域的融合度;- 配置:
降噪=0.5
(平衡真实度与融合度)。
- 配置:
5.2 face节点连接
- 将「加载图像」(face来源图)的「图像」输出端,连接到
LayerMask: SegmentAnythingUltra V2
的「image」输入端; LayerMask
的「mask」输出端,连接到Apply InstantID Advanced
的「mask」输入端;VAE 编码
的「latent」输出端,连接到K 采样器
的「latent」输入端(替换原空 Latent 图像);- 确保
设置 Latent 噪声
的「latent」输出端,连接到K 采样器
的「noise」输入端。
5.3 工作流确认
完整face工作流包含以下节点链:加载图像(来源图)
→ InstantID Face Analysis
→ LayerMask
→ Apply InstantID Advanced
→ K 采样器
→ VAE 解码
→ 保存图像
5.4 资源下载
通过下面是直接工作流材料下载,直接能够导入。
链接: link
六、运行与效果验证
- 启动生成:点击画布右上角的「运行」按钮,等待生成完成(根据显卡性能,1024×1024 图像约 10-30 秒);
- 效果查看:生成完成后,在「保存图像」节点的预览窗口查看结果,确认:
- face是否与来源图一致;
- 否符合文本提示词(如“purple galaxy bottle”);就是背景
- 无明显face痕迹(可微调
ip_weight
/cn_strength
优化融合度);
- 参数微调建议:
- 若face不清晰:提高
ip_weight
(如 0.9); - 若背景与文本偏差大:降低
cn_strength
(如 0.7); - 若face区域有边缘瑕疵:调整
LayerMask
的threshold
(如 0.25-0.35)。
- 若face不清晰:提高
七、后续优化与资源
- 工作流导出:完成配置后,可凭借 ComfyUI 的「保存工作流」功能导出为 JSON 文档,后续直接导入启用;
- 模型扩展:可尝试其他 SDXL 真人模型(如
RealVisXL
、JuggernautXL
),或 InstantID 衍生模型(如InstantX/FLUX.1-dev-Controlnet-Union
); - 问题排查:若节点报错,优先检查:
- 模型路径是否正确(无多余目录);
- 节点是否全部安装并重启 ComfyUI;
- 显卡显存是否充足(SDXL 模型建议 8GB 以上显存)。
附录:关键节点机制速查
节点名称 | 核心功能 | 关键参数 |
---|---|---|
Load InstantID Model | 加载 InstantID 特征模型 | 模型路径(ip-adapter.bin) |
InstantID Face Analysis | 脸关键点检测 | provider(CPU/CUDA) |
Apply InstantID Advanced | face与文本控制 | ip_weight、cn_strength |
LayerMask: SegmentAnythingUltra V2 | 人脸区域分割生成遮罩 | threshold、detail method |
加载 VAE | 修复图像色彩偏差 | VAE 模型路径 |
K 采样器 | 图像生成核心计算 | cfg、步数、采样器 |
总结
这篇文章主要在问文生图基础上,添加instantID节点进行face。后续的图生图的face,本文没有详细描述,不过直接参考链接免费资源图片face工作流json档案
重要报错模型文件安放位置,和节点安装。重要网络难题。大模型档案许可通过镜像站下载。