☰
InstantID角色一致性实战:SDXL单图人脸保持与工作流调参
2026/10/26 3:53:17 网站建设 项目流程

1. 角色一致性的真问题:InstantID 到底补上了哪一块

做角色出图做到第三个月,你几乎一定会遇到同一个问题:提示词写得再细,脸还是每次都换人。今天的鼻子偏高,明天的眼距偏宽,后天连脸型都变了。Stable Diffusion 加 ControlNet 能固定构图、固定姿态、固定线稿,却固定不了一张脸——因为 ControlNet 系列约束的是空间结构信息(边缘、深度、姿态骨架),而"这个人长什么样"属于身份特征,它压根不在那些条件图里。InstantID 就是专门来填这个缺口的一块拼图:它把一张人脸照片压缩成身份向量,在采样过程中把这个向量注入 UNet,同时用一条轻量的 IdentityNet 支路约束五官的关键点位置,从而在保持 SDXL 出图质量的前提下,让不同提示词、不同构图、不同姿态下的脸保持一致。

先说清楚适合谁看。如果你只是想给文章配一张好看的插图,随便抽卡就行,不需要这套东西。但如果你在做连载漫画角色、虚拟主播形象、电商模特换装、游戏 NPC 立绘、小说人物可视化,那"同一个角色在不同场景里必须是同一张脸"就是硬需求,这篇内容值得你花时间。下面我会把模型放置、参数含义、工作流搭建、常见问题的排查链路全部拆开讲,参数给的是可以直接抄的起点值,但每一项我都会说明它为什么这么设,方便你在自己的机器上微调。

1.1 三张图三个人的根因:提示词根本约束不了身份

很多人第一反应是"把外貌描述写得更细一点"。我试过写满两百字的外貌描述:瞳色、脸型、眉形、鼻梁高度、唇形厚薄,甚至连雀斑位置都写进去了。结果是——同一段提示词跑十次,出来十个人。原因不难理解:CLIP 文本编码器把这段描述压缩成一个语义向量,它理解的是"一个亚洲女性、鹅蛋脸、大眼睛"这类类别级概念,而不是"某一个具体的人"。文本编码的粒度天然就到不了个体身份这一层,这是架构决定的,不是提示词功底问题。

第二个常见做法是死磕种子(seed)。固定种子确实能让画面结构稳定,但只要你改动提示词里的任何一个词,哪怕是加一句"她在下雨的街道上",整个潜空间的演化路径就变了,脸跟着一起变。种子只能保证"同样的输入得到同样的输出",它给不了"不同的输入得到同一张脸"。

第三个做法是训练角色 LoRA。这条路是有效的,一个角色喂 15 到 30 张图,训 1500 到 2500 步,能拿到相当稳定的脸。但它有两个门槛:一是需要素材,你手里至少得有十几张同一角色的不同角度照片或绘图;二是需要时间,一次训练从打标到收敛,半天到一天很正常,而且换一个角色就要重来一遍。做长期项目值得,做快速验证太重。

InstantID 走的是第四条路:零训练、单图输入、即插即用。给它一张正脸照片,它就能在几十秒内把这个人的身份特征迁移到任意提示词的生成结果上。代价是它的"像"是有上限的——它能抓住骨相、五官比例、气质,但对极其细微的特征(比如某颗痣的具体位置)不如 LoRA 精准。理解这个边界,你才不会对它产生不切实际的期待。

1.2 两条支路一起工作:IP-Adapter 身份注入与 IdentityNet 结构约束

拆开来看,InstantID 在采样管线里插了两刀,这两刀的分工必须搞清楚,否则后面调参数你会完全靠猜。

第一刀是身份注入,形式上是 IP-Adapter 的变体。人脸照片先经过人脸检测与对齐,裁出标准的人脸区域,然后送进一个图像编码器提取身份 embedding。这个 embedding 通过交叉注意力注入到 UNet 的每一层,效果类似于"给模型看了一眼这个人的长相,让它照着画"。它决定了像不像,权重越高,脸越贴参考图,但过高会带来塑料感和僵硬感。

第二刀是 IdentityNet,形式上是一个体积很小的 ControlNet。它接收的是人脸关键点(眼睛、鼻尖、嘴角这些位置),在采样前期约束五官的空间布局。它决定了脸的位置和朝向对不对,防止出现"身份对了但五官错位、眼睛长到额头上"这类崩坏。它的强度过高会把构图锁成证件照,过低则容易在大幅度姿态下脸部扭曲。

提示:这两条支路是独立的,你可以只开身份注入不开 IdentityNet,也可以反过来。遇到"脸对但构图死板"就降 IdentityNet,遇到"构图活了但脸崩"就升 IdentityNet,别两个一起猛调。

这里有个容易混淆的点:InstantID 的 IdentityNet不负责身体姿态,也不负责构图。它只管脸。所以你看到有人抱怨"用了 InstantID 之后人物姿势不听话了",八成是他同时挂了一个 OpenPose 或者 Depth 单元,把参考图的整体结构也一起搬过来了。这两件事要分开看。

1.3 哪些场景不该硬上 InstantID

工具用错地方比不用更浪费时间,我列几个明确不适用的场景。

需要 100% 像素级还原的场景。比如你要把某个已有插画角色做成周边,要求五官比例分毫不差。InstantID 是生成式的,它会重新"理解"并绘制这张脸,每次都有细微差别。这种需求更适合直接训练 LoRA,或者在生成后用局部重绘一点点修。

参考图质量极差的场景。低分辨率、大面积遮挡、侧脸超过 60 度、戴墨镜口罩、浓妆导致轮廓失真,这些都会让身份 embedding 提取失真。人脸检测那一步失败的话,后面全是白费。参考图质量对最终效果的影响,比任何参数都大。

多角色同框场景。默认的 InstantID 作用在整个潜空间上,画面里出现两个人,两个人的脸会一起被拉成同一个身份。多人场景需要配合区域提示或者分区域重绘,这个后面第五节会专门讲。

二次元角色。InstantID 的身份 embedding 是基于真实人脸训练的,喂二次元立绘进去,提取出来的向量很不可靠。二次元角色一致性更适合用角色 LoRA,或者用基于插画训练的 IP-Adapter 变体。

2. 环境准备的三个硬门槛:模型、目录、显存

这一节讲的是"插件装了但点了没反应"这类问题的根源。我见过太多人卡在这里,排查半天以为是版本不兼容,结果只是模型放错了文件夹。

2.1 主模型必须是 SDXL 系,SD1.5 从根上就不支持

这是最容易忽略的前提。InstantID 的权重是挂在 SDXL 的 UNet 结构上的,它的通道数、注意力维度都是按 SDXL 设计的。你拿一个 SD1.5 的写实大模型去跑,加载权重时会直接报维度不匹配,或者更糟——不报错但输出全是噪点。

所以第一步是选主模型。优先选 SDXL 底模的写实向模型,分辨率先定在 1024×1024 这个档位。如果你做人像竖图,832×1216 是常见比例,横图用 1216×832。不要用小分辨率去跑 SDXL,SDXL 在 512 尺度下训练不足,脸容易糊成一团,你后面调多少参数都救不回来。

项目推荐配置说明
底模SDXL 写实向 CheckpointSD1.5 不兼容,直接排除
推理分辨率1024×1024 或 832×1216低于 768 长边脸部细节会崩
采样步数25 到 30步数太少 IdentityNet 约束来不及生效
采样器DPM++ 2M Karras稳定性好,适合叠加 ControlNet
CFG4 到 5过高会放大 InstantID 的塑料感

2.2 目录放错是最高频的"装了没反应"

InsightFace 的人脸分析模型、InstantID 的 ControlNet 权重、身份注入的 IP-Adapter 权重,这三样东西分属不同目录,混放就会静默失效。我按常见工具的组织方式给一份目录参考(不同界面版本的路径命名会有差异,以你本地实际结构为准,但层级关系基本一致):

# 人脸检测与识别模型(InsightFace 用) models/insightface/models/antelopev2/ ├── 1k3d68.onnx # 68点三维关键点 ├── 2d106det.onnx # 106点二维关键点 ├── genderage.onnx # 性别年龄(可不用) ├── glintr100.onnx # 人脸识别主干,最关键 └── scrfd_10g_bnkps.onnx # 人脸检测框 # InstantID 的 ControlNet 权重(IdentityNet) models/controlnet/instantid/ └── diffusion_pytorch_model.safetensors # 身份注入的 IP-Adapter 权重 models/ipadapter/ └── ip-adapter.bin

判断是否加载成功有个很直接的方法:把参考图丢进去跑一次预处理器,看它输出的裁剪后的人脸预览图。如果预览图里是一张端正的脸,说明检测和对齐都成功了;如果预览图是黑的、是原图未裁剪、或者提示找不到人脸模型,那就是路径或权重问题,这时候调后面任何参数都没意义。

注意:antelopev2 这一套模型体积不小,首次使用需要联网拉取。如果你的环境不能联网,就手动下载完整目录放进去,缺任何一个 onnx 文件都可能导致检测环节直接失败。

2.3 显存预算:把每一份占用都算清楚

很多人问"8G 能不能跑"。这不是一句话能回答的,得看你怎么算。我按 fp16 精度粗略拆一下 SDXL + InstantID 的显存占用(数值为常见实践经验,不同实现会有几百 MB 浮动):

组件显存占用(约)备注
SDXL UNet5.0 到 6.5 GBfp16,是最大头
双文本编码器1.5 GB采样前编码完可卸载
InstantID ControlNet2.5 GB只在前期步数生效
IP-Adapter 身份注入0.8 到 1.5 GB与步数区间相关
InsightFace0 到 2 GB可强制走 CPU,速度影响不大
激活值与中间张量1.5 到 3 GB随分辨率平方增长

加起来 1024×1024 单图推理大约需要 10 到 12 GB。12G 卡跑起来比较从容;8G 卡需要开启顺序 CPU 卸载或低显存模式,速度会掉到原来的一半左右,但能出图。关键结论是:分辨率的提升对显存的消耗远大于步数,从 1024 提到 1536 长边,激活值那一项可能翻倍,先别急着拉高,用高清修复分两步走更稳。

2.4 把人脸检测固定到 CPU 上,省下的显存很值

这一步很多教程不提,但实际很管用。人脸检测和身份向量提取是一次性的预处理操作,不在采样循环里,所以它跑在 CPU 上只影响那零点几秒,却能把一两 GB 显存腾给 UNet。我在 12G 卡上遇到显存不足时,第一件事就是把 InsightFace 的执行设备设成 CPU,比降分辨率对画质的影响小得多。如果你的界面没有这个选项,宁可把批量大小降到 1,也别动分辨率。

3. 参数面板逐项拆:每个数字到底在动什么

参数不是玄学,每一个都能对应到管线里的某个具体动作。这一节我按重要性排序,把最影响结果的几项讲透。

3.1 参考图预处理:裁剪策略决定了身份向量的质量

参考图不是直接喂进去的,中间要经过检测框确定、关键点对齐、按比例外扩、缩放裁切这几步。这里面有两个参数值得手动干预。

一个是外扩比例。默认裁剪会框得比较紧,只保留面部核心区域。如果你想保留一点下颌线和发际线,可以适当把外扩调大(常见取值 1.2 到 1.5,数值越大框越松)。框太紧会丢掉脸型信息,生成的脸容易偏胖或偏瘦;框太松会把背景和发型一起卷进身份向量,导致服装和背景被污染。

另一个是参考图本身的构图。我的经验是:正脸、光线均匀、无遮挡、分辨率不低于 512×512、表情中性。侧脸超过 45 度时,关键点只有一半可见,IdentityNet 的约束会失效,生成结果的朝向容易跟提示词打架。如果你手里只有侧脸,可以先用图像工具做一次水平翻转或者轻微正面化,效果比硬跑强。

3.2 身份权重与 IdentityNet 强度:一个管像不像,一个管正不正

这两个参数是最容易混的,我把它们的调节方向做成对照表,出问题时照着往对应方向拨:

现象身份注入权重IdentityNet 强度说明
完全不像0.8 到 1.00.7 到 0.8两项一起升,先升身份权重
脸像但五官错位保持不变升到 0.85靠结构约束拉回位置
表情僵硬像证件照降 0.1 到 0.2降到 0.5 到 0.6降低结构约束的锁死
皮肤塑料、过度平滑降到 0.65 到 0.75保持 0.7权重过高是主因
服装背景被参考图带偏降到 0.6保持改用更紧的人脸裁剪

我自己的稳定起点是:身份注入 0.8,IdentityNet 0.7。这个组合在写实向底模上,既能保证脸像,又留出足够的自由度让模型自己处理光影和皮肤质感。低于 0.6 基本就开始飘了,高于 0.95 会明显感到画面被"贴"上了一张脸,皮肤没有毛孔、眼神发直。

3.3 时序控制:让 InstantID 只在前期发力

身份注入有个少有人用的开关:注入的起始与结束步数占比。默认是 0 到 1,也就是全程生效。这个默认值不是最优解。

采样前期(大概前 30% 到 40% 的步数)决定的是构图和大的形体结构,中后期决定的是细节和质感。身份特征如果全程注入,模型在细化皮肤、发丝、眼神这些地方时也会被身份向量牵着,结果就是那种挥之不去的平滑感。我通常把注入区间设成0 到 0.6 或 0 到 0.7,让 InstantID 负责把脸"定下来",把后期的质感细化交还给底模。实测这个调整对手部细节和皮肤纹理的改善非常明显,而且相似度几乎不掉。

3.4 CFG 与步数的搭配:给约束留出生效时间

CFG 在 InstantID 场景下不是越高越好。CFG 本质上是放大条件引导的力度,而 InstantID 的身份向量本身就是一种强条件,两者叠加容易过头。我在 SDXL 上常用的区间是CFG 4 到 5,超过 6 就开始出现色彩过饱和、皮肤发红的问题。

步数同理。步数太少(低于 20),IdentityNet 的约束在采样早期来不及充分作用,脸会来不及收敛;25 到 30 是比较舒服的区间。多个 ControlNet 同时挂的时候,步数可以再往上给到 30 到 35。

3.5 负面提示词的两个坑

第一个坑是在负面里写 face 相关词。有些通用负面提示词模板里带了 "bad face"、"deformed face"、"ugly face" 这类词。在 InstantID 场景下,这些词会和身份注入打架,因为模型一边被要求"画这张脸",一边被要求"别画坏脸",结果就是折中的一张模糊平均脸,相似度直接掉一档。用 InstantID 时,负面提示词里要把所有跟脸相关的词删干净。

第二个坑是负面词写得太长。负面提示词同样要走文本编码,堆几百个词会稀释掉真正重要的那几条。留四五条真正有效的就够了,比如画面质量类、水印类、多余的肢体类。

4. 三条能直接跑的工作流:单图、换姿势、局部修

前面讲的都是零件,这一节把它们装成能跑的车。三条链路覆盖了绝大多数实际需求,你可以按需取用。

4.1 单参考图的最小可用链路

这是基础链路,节点顺序按数据流走:底模加载 → 双文本编码器 → 提示词正负编码 → 空潜空间(按目标分辨率)→ 参考图加载 → 人脸检测与身份向量提取 → 身份注入模块(挂到 UNet 的交叉注意力)→ IdentityNet(作为 ControlNet 应用,条件图就是参考图的人脸关键点)→ 采样器 → VAE 解码 → 保存。

这里有两个接线细节必须确认,接错了就是白跑:

第一,IdentityNet 的条件图要用预处理器的输出,不能直接接原始照片。原始照片是像素图,IdentityNet 要的是关键点渲染图,中间必须经过那个预处理器节点。有些界面会自动处理,有些不会,接错了生成结果会变成一堆彩色噪点。

第二,身份注入要应用在模型上,而不是接在采样器的 latent 上。它的作用点是 UNet 的注意力层,属于模型级的修改。如果节点接在潜空间链路上,采样器会直接报类型不匹配。

跑通之后先别急着调参,用同一张参考图、同一组种子,连跑三张,看脸的稳定程度。如果三张之间差异就很大,说明参数还没稳,先别进入批量阶段。

4.2 换姿势和换场景:InstantID 与结构 ControlNet 的分工

这是最常被问的组合题:我有参考人脸,还想让角色做出特定动作。答案是挂两个 ControlNet 单元,分工明确。

单元 0 放 InstantID,条件图用参考人脸,只负责身份。单元 1 放 OpenPose 或者 Depth,条件图用姿态参考或场景参考,负责身体结构。两个单元的输出会叠加到 UNet 上,互不干扰——因为它们作用的信息维度不同,一个是身份向量,一个是空间结构。

这里有几个参数要配合调。IdentityNet 的强度可以压到 0.65 左右,把结构约束的主要工作交给 OpenPose,否则两张条件图都在约束脸部区域,容易把脸拉变形。另外,姿态参考图里的人脸朝向如果和参考照片差异很大(比如参考照是正脸,姿态图是仰头),生成结果的脸会明显变形,这种时候建议先用姿态图生成一张正脸的基础图,再做局部重绘。

4.3 局部重绘:只动该动的地方

批量出图时最实用的技巧是"整图 + 局部重绘"两段式。先用 InstantID 生成一张整体构图满意的图(此时脸可能有点小瑕疵),然后把人脸区域框出来做局部重绘,重绘提示词只写与脸相关的细节(皮肤质感、眼神光、表情),去噪强度控制在 0.3 到 0.45,重绘时继续挂 InstantID 保身份。

去噪强度这个数很关键。低于 0.25 基本改不动,模型觉得没必要变;高于 0.5 就会把脸重画一遍,身份容易跑掉。0.35 附近是个甜点,既能修掉瑕疵,又能守住身份。我一般会先用 0.35 试一张,不满意再微调到 0.3 或 0.4。

还有一个替代思路是使用面部细化插件做收尾,但要注意:这类插件默认去噪强度往往偏高(0.4 以上),会把脸重画成另一张更好看但不像的脸。用的时候必须把强度压到 0.25 到 0.3,并且重绘提示词要和主图保持一致。

5. 生成结果出问题时的完整排查链路

这一节按"从输入端往输出端"的顺序排,遇到问题从上往下依次排除,比乱调参数效率高得多。

5.1 第一层:脸根本没被识别到

先看预处理器的输出预览图。如果预览图是黑的、是整个原图、或者是空白,那问题在输入端,不在参数。

常见原因有四个:一是参考图里人脸占比太小,检测器找不到,解决方法是手动裁剪,让人脸占据画面 60% 以上;二是侧脸角度过大,关键点检测失败;三是戴口罩、墨镜、刘海遮眼这类遮挡;四是 InsightFace 模型文件缺失或路径错误,这个在日志里会有明确提示。

这一层没通过,调任何权重都是白费功夫。我踩过最冤的一次坑是:参考图是一张逆光照片,人脸检测框只框到了半张脸,生成结果一直是半个脸的怪异构造,我却在那边反复调 IdentityNet 强度,调了一个晚上。

5.2 第二层:脸识别到了,但不像

如果预览图正常,但生成的脸和参考图差距明显,按这个顺序查。

先看提示词里有没有外貌描述在抢戏。如果你写了"圆脸、小眼睛、塌鼻梁",而参考图是"瓜子脸、大眼、高鼻梁",模型会在这两股力量之间取折中,结果两边都不像。用 InstantID 时,提示词里要尽量少写具体面部特征,把脸交给身份向量,你只写发型、妆容、表情、光线。

再看身份权重是否偏低。0.8 是起点,如果还是不像可以往 0.9 走,但要同时观察皮肤质感是否开始变塑料。

第三种可能是主模型风格不匹配。如果你用的是偏二次元或者偏插画的底模,它本身画人脸的先验就离真实照片很远,身份向量的注入会被稀释。这种情况换一个写实向底模,比调任何参数都有效。

5.3 第三层:像了,但脸僵、皮肤假、眼神死

这是最典型的一组问题,几乎所有人都会遇到。

皮肤没有毛孔、像磨皮过度。首要原因是身份权重过高,其次是注入区间覆盖了全程。按 3.2 和 3.3 节的思路,把权重降到 0.7 到 0.75,注入区间收到 0 到 0.65,同时在正面提示词里补上皮肤质感相关的描述(毛孔、细纹、皮肤纹理),负面词里加上"过度平滑、塑料感"这类方向。

表情僵硬、像证件照。这是 IdentityNet 强度过高的典型表现,它把五官关键点钉死在参考图的位置上,模型不敢动。把 IdentityNet 降到 0.55 到 0.6,同时在提示词里明确写表情(微笑、皱眉、侧目),必要时在参考图预处理阶段换一张表情更放松的照片。

眼神空洞。眼睛是采样后期才细化的区域,而身份注入在后期可能已经退出了。把注入结束步占比从 0.6 调到 0.75,或者单独对眼部做一次小范围局部重绘,去噪 0.3 左右。

5.4 第四层:构图、服装、背景被参考图带跑

如果你发现生成的衣服和参考照片一模一样,或者背景里出现了参考图里的窗帘、书架,说明身份向量里混进了非人脸信息。

根因通常是参考图裁剪框太松。按 3.1 节把外扩调小,让人脸裁剪紧贴面部轮廓。如果调紧之后还是污染,可以在预处理前手动把参考图裁成方形纯人脸图,背景统一抹掉。这一步虽然土,但效果立竿见影。

还有一种可能是你误开了整图 IP-Adapter 的另一个变体。InstantID 的身份注入理论上只用脸部区域,但某些实现会附带一张整图条件,检查一下节点里是否同时接了整图输入,去掉即可。

5.5 多人同框:为什么两个人的脸变成一个人

这个问题前面提过,这里给方案。默认的 InstantID 作用于整个潜空间,画面里有几个人就有几张同样的脸。

方案一是分区生成:先用提示词生成多人构图,然后用局部重绘逐个替换人脸,每次只框一个人,独立挂 InstantID,这样每个人的身份互不干扰。缺点是耗时翻倍。

方案二是区域提示:把画面按位置划分成若干区域,每个区域绑定不同的身份条件。这需要工具支持区域级条件注入,配置复杂度高一些,但一次成图。

方案三是先分后合:单人单人分别生成,后期合成。适合做海报和排版类的图,不适合需要真实互动的场景(比如两人握手)。

6. 把一致性做进生产:角色档案与验收标准

单张图好看不算本事,跑一百张还能保持同一个人才是工程问题。这一节讲的是怎么把流程标准化。

6.1 建立角色档案:参考图库比参数更重要

我的做法是给每个角色建一个档案目录,里面固定放三类素材。

第一类是主参考图,一张正脸、光线均匀、中性表情的高清照片,这张是所有生成任务的默认输入。第二类是备选参考图,包含 30 度到 45 度的侧脸、不同的光线条件、不同的发型状态,当主参考图在特定姿势下表现不好时切换。第三类是角色说明文档,用文字记录这个角色的固定设定:年龄区间、体型、常见服装、标志性配饰、习惯表情。这份文档的价值在于,它能保证一个月后你回来继续做这个角色时,不会因为记忆偏差而跑偏。

这里有个反直觉的经验:参考图不是越多越好。多张参考图一起输入时,如果它们之间存在明显差异(比如一张是素颜一张是全妆),身份向量会被平均,结果反而不如单张清晰。我试过五张融合,相似度不如精选一张。如果一定要融合,选择同一光线、同一妆容、同一角度的细微变化,融合权重也要拉开主次。

6.2 InstantID 与角色 LoRA 怎么选、怎么叠

这两个不是替代关系,是互补关系。我按需求强度给一个判断标准:

需求推荐方案理由
临时项目、几十张图InstantID零训练成本,改角色只要换照片
长期 IP、上千张图角色 LoRA相似度上限更高,推理更快
既要像又要能换风格两者叠加LoRA 管身份,InstantID 补细节
二次元角色角色 LoRA真实人脸向量对插画无效

叠加使用时要注意权重分配,两个都在抢身份的"话语权"。我的经验是 LoRA 权重保持 0.7 到 0.8 作为身份基底,InstantID 的身份注入降到 0.5 到 0.6 做细节补强,IdentityNet 保持 0.6 左右。这个组合出来的人物既有 LoRA 那种高度稳定的骨相,又能拿到 InstantID 带来的照片级皮肤质感。反过来(InstantID 高、LoRA 低)容易出现两者互相拉扯导致的脸部结构错位,眼睛和鼻子的相对位置会怪。

6.3 批量出图前的自检清单与种子管理

正式批量之前,我会做一次验收,五项全部通过才往下走。

  • 相似度:和参考图并排看,十秒内能认出是同一个人
  • 稳定性:同一提示词换三个种子,脸的辨识度不掉
  • 质感:放大到 100% 看,皮肤有纹理不是一片平滑
  • 完整性:手、耳、发际线没有明显的生成崩坏
  • 一致性:换服装、换场景、换光线下,骨相不变

种子管理这块,我的做法是先用固定种子调参,锁定参数后再放开随机种子。调参阶段固定种子能让你看到参数的真实影响;一旦进入批量,固定种子反而会让你误以为效果很稳,实际换个种子就崩。所以批量阶段我通常会把种子设成随机,同时开批量大小 4 到 8,跑二十组再挑。

还有一个成本上的小技巧:先用低步数(18 到 20 步)批量抽卡,选出构图和脸都满意的,记下种子,再用 30 步加高清修复重跑那几张。这样能省下一大半算力,尤其在你只有一张中端显卡的时候,这个习惯能让你一天多跑好几轮。

最后分享一个我在实际操作中的体会:InstantID 这类工具的上限,八成由参考图决定,两成由参数决定。我见过太多人在参数面板上反复试一整天,其实问题只是参考图那张脸拍歪了。养成一个习惯——每次结果不对,先回头看预处理输出的那张裁剪预览图,确认它是一张干净端正的脸,再往下想。这个动作能帮你省掉绝大部分无效调试。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询