ComfyUI Node
MOSS Storyboard Face Swap
换脸:把参考图的脸换到某一格(或整图)。参考图走 vision 通道,源图走图生图重画。接了 spec 就只换那一格,其余格与宫格线不动。
MOSS Storyboard Face Swap
- model
- clip
- vae
- image
- ref
- mask
- image
- report
◄prompt►
◄steps8►
◄cfg1.0►
◄sampler_nameeuler►
◄schedulersimple►
◄seed0►
◄denoise0.95►
◄vision_megapixels1.05►
◄spec►
◄index0►
◄sample_edge1024►
◄negative►
◄auto_masktrue►
◄face_picklargest►
Categorymoss/storyboard
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | 【接线】MOSS-Image 模型。产线配方:先接 8 步 DMD2 蒸馏 LoRA,再接 Moss-Image-Edit 编辑 LoRA。 | |
| clip | CLIP | 【接线】CLIPLoader,type 必须是 moss_image。 参考图就是从这里进 Qwen3.5 vision tower 的。 | |
| vae | VAE | 【接线】FLUX.2 VAE。源图要它编码成 latent(图生图),结果也要它解码。 | |
| image | IMAGE | 【接线】要换脸的图。接了 spec 时给**整张宫格**,节点自己裁第 index 格;不接 spec 就当单格处理。 | |
| ref | IMAGE | 【接线】身份参考图,**紧特写**最好(脸占画幅越大越好)。 ⚠ 只给一张:实测双视角比单张更差(0.384 vs 0.463,视觉 token 被摊薄)。 | |
| prompt | STRING | 【填什么】重画时用的场景描述,**用英文写**,并且要提到参考图,例如: A medium shot photograph of the man in Picture 1, sitting at a wooden table in a warm cafe, soft warm light on his face. ⚠ 不要自己写 `Picture 1:` 前缀,节点会自动拼。 | |
| steps | INT | 81–200 | 【填什么】默认 8 = 8 步 DMD2 蒸馏 LoRA 的口径。 没接蒸馏 LoRA 时按模型卡 50 步。 |
| cfg | FLOAT | 1.00–30 | 【填什么】默认 1.0 = 蒸馏档。cfg=1.0 时宿主跳过负面分支,负面提示词填了也不生效。 |
| sampler_name | COMBO | euler | 【填什么】默认 euler = 实测配方。 |
| scheduler | COMBO | simple | 【填什么】默认 simple = 实测配方(8 步档)。 |
| seed | INT | 00–4294967295 | 【填什么】随机种。同种子同参数才可复现。 |
| denoise | FLOAT | 0.950.05–1 | 【填什么】降噪强度。这是「换多少」的总闸: · 0.95(默认)= 实测配方,**8 步下等价于 1.0**:源图被完全丢弃,构图由提示词决定,身份由参考图决定。 · ≤0.875 才真的保住源图构图(8 步时 0.875 是分水岭:int(8/0.875)=9>8 才触发 img2img)。 ⚠ 宿主按 int(步数/降噪) 截断 sigma,所以 0.875~0.99 之间在 8 步下**全部等于 1.0**。report 会打印真实生效值。 |
| vision_megapixels | FLOAT | 1.050–4 | 【填什么】每张参考图进 vision tower 前的像素预算。 · 1.05(默认)= 实测产线值,约 1024×1025 · 0 = 原生分辨率,不缩放 · 0.59 = 768²,实测安全线 ⚠ 0.147 是宿主默认值,那个值下身份余弦只有 0.008;0.30 会**变成另一个人**(塌陷带)。 |
| specopt | STRING | 【接线】接 Layout/Sampler 的 spec:给整张宫格 + index,只换那一格。 不接就按单格处理(整张 image 当成一张图)。 | |
| indexopt | INT | 00–143 | 【接了 spec 时生效】换第几格,**0 起、行主序**。 |
| sample_edgeopt | INT | 10240–2048 | 【可留 1024】单格抬到多长边再采样,采样完缩回格子。 4 格 496 长边时一格只有 0.135MP,脸约 50×27 像素——那个尺度认不出是谁。 0 = 不抬(严格按格子尺寸采样,最省显存)。 |
| negativeopt | STRING | 【可选】负面提示词。默认 cfg=1.0 时宿主跳过负面分支,填了也不生效。 | |
| auto_maskopt | BOOLEAN | true | 【默认开】用 insightface 自动找脸并生成蒙版,不需要手画。 ⚠ 需要 `pip install insightface onnxruntime`;没装会明确报错。 接了 `mask` 就以手接的为准(自动让位)。 |
| face_pickopt | COMBO | largest | 【换哪一张脸】一格里有好几个人时用这个点名: largest = 面积最大那张;left / right = 最左 / 最右那张。 report 会写「检测到 N 张脸,用了哪张」,换错人先看这行。 |
| maskopt | MASK | 【接线,强烈建议】只重画蒙版内的区域,蒙版外**逐像素保留**。 ⚠ 不接 = 整格重画:整张图的影调会被重算,**画风与色调一定变**(实测同一张图,仅换提示词,R 通道偏移 +24~+43)。 蒙版可以直接给整张宫格的,节点会按 spec 裁到目标格;带羽化更好,硬边会看到接缝。 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| report | STRING | — |