婚纱照生成(风格化 + 本地换脸)
把两人的证件照或合照,结合用户描述的地点、环境与风格,生成精修后的高清婚纱照。两种还原模式:
- 风格化还原(底图):以原照为参考图,用图像生成做图生图,保留两人的脸型与身材轮廓并套上场景;脸为"神似",不逐像素复制。
- 本地换脸(可选,默认开启):在风格化底图之上,用本地开源 facefusion 把两人各自的脸换到底图对应位置,达到身份级一致。仅在本地运行,照片不上传任何第三方。
何时使用
用户说出以下任一类话时启动:
- 帮我生成婚纱照 / 做一张婚纱照 / 出一套婚纱风格图
- 把我们照片套到 XX 景点 / 海边 / 古城 / 把这张合照变成婚纱照
- 婚纱照精修 / 给我们做个婚纱风格预览
- 婚纱照换脸 / 像素级换脸 / 把我俩的脸换上去
临近但不触发:普通人像修图、婚庆文案写作、真实婚纱摄影预约、证件照换底色——这些不在本 Skill 范围。
输入
开始生成前,必须拿到两类输入:
- 照片(必需):支持本地路径或 http(s) URL。
- 接受:结婚证证件照、两人全身照、任意清晰两人合照。
- 开启换脸时,建议每人提供 1 张正脸照(换脸必需);若想要侧脸/回眸/半侧脸姿态,再补每人 1 张侧脸照,能明显提升侧脸还原度。
- 只给 1 张也能出图;提示用户再补一张可获得更好的身材参考,但不阻塞。
- 用户要求侧脸姿态但没给侧脸照:按@references/photo-analysis.md的话术提示一次,不阻塞,并提前说明效果边界。
- 没有照片时,先请用户提供,不凭空生成人物。 - 场景 / 风格描述(必需,至少一项):
- 地点 / 背景:如三亚海边日落、故宫红墙、森系草坪、韩式极简棚拍。
- 风格 / 氛围(可选):复古、电影感、清新、奢华。
- 服装 / 姿态(可选):婚纱礼服、中式秀禾、牵手漫步。
工作流程
- 收齐输入。缺照片或缺场景描述时,用一句话追问最少必要信息,不要一次问很多问题。
- 朝向分析。加载
@references/photo-analysis.md,判断每张照片中人物的朝向(正脸/微侧/45°/大侧脸/背面);若用户要求侧脸姿态,按该文档流程收集侧脸照并登记。 - 组装生成提示词。加载
@references/scene-prompts.md,按场景模板 + 朝向词(第 2 步结论)+ 人物保留指令 + 精修指令拼出最终 prompt。 - 告知积分消耗。图像生成每次约消耗 5—10 积分;换脸本身不消耗积分(纯本地推理)。在调用图像生成前明确告诉用户这笔消耗,等用户确认或继续后再生成。
- 调用图像生成(图生图)生成底图。参数设置:
-image:用户照片(1—3 张,传数组;正脸+侧脸时优先传正脸,保证脸型轮廓)。
-prompt:第 3 步拼好的提示词(含 no watermark 指令)。
-input_fidelity:设为高(high),让底图人物的脸型与身材尽量贴近原图。
-quality:high。
-size:竖版婚纱照用 1024x1536,横版大场景用 1536x1024;用户未指定时默认竖版。
-style:可填用户指定的风格词,否则留空由 prompt 主导。
-footnote:不要设置此参数——它是水印参数,设了会在图片上打水印。成片必须无水印。 - 本地换脸(默认开启;用户明说"不要换脸/只要神似"时跳过)。加载
@references/face-swap.md,执行scripts/swap_faces.py。facefusion 一次运行只换一个身份,脚本按人分别换脸:
- 每人源图 1—2 张(正脸 + 可选侧脸),同一人的正脸+侧脸自动平均身份,改善侧脸贴合。
- 目标限定:默认--face-selector-gender auto(用源脸性别过滤目标,男换男、女换女);映射不符时用--gender-a/--gender-b显式指定。
- 前置自检:facefusion + ffmpeg/ffprobe + 隔离 venv 已就绪(首次需下载模型权重,见参考文档)。任一缺失则跳过换脸、回退风格化底图并告知用户原因与恢复方式。
- 隐私:仅换本人 / 已授权人脸;全程本地,照片不外传。 - 精修(可选但推荐)。换脸后用
scripts/swap_faces.py --enhance叠加 face_enhancer 一并提升面部清晰度;或把换脸结果作为image二次图生图精修(肤色匀净、光影电影感、去瑕疵、去水印)。精修调用同样不设footnote参数,保证成片无水印。 - 交付。用下方输出模板回应用户,附成片。
提示词装配
完整 prompt = 场景模板 + 朝向词(按需)+ 人物保留指令 + 精修指令。具体模板与取值见 @references/scene-prompts.md(朝向词见该文件"朝向词库")。装配规则:
- 人物保留指令必须存在:the two people from the reference photo, keeping their facial features and body shapes(保证风格化还原不跑偏)。
- 朝向词:只有正脸源图时写 facing the camera(避免大侧脸);有侧脸源图时可按用户要求写微侧/45° 姿态(见 photo-analysis.md)。
- 场景描述用具体名词,避免好看、漂亮这类空词。
- 精修指令固定包含:专业级人像精修、肤色自然匀净、电影级调色、超高清晰度、无水印(no watermark)。
输出模板
生成完成后按此结构回复:
📸 婚纱照已生成
- 场景 / 风格:<用户描述>
- 参考照片:<张数> 张
- 还原方式:<本地换脸(身份级)/ 风格化(神似)>
- 成片说明:<一句话描述画面>
- 精修:<已精修 / 未精修>
- 提示:<换脸则注"脸为本地换脸、身份级一致";风格化则注"神似、非像素级">
示例(换脸):
📸 婚纱照已生成
- 场景 / 风格:三亚海边日落
- 参考照片:2 张(各一人正脸)
- 还原方式:本地换脸(身份级)
- 成片说明:两人赤脚站在浪边,夕阳把婚纱染成暖金色,海面泛光。
- 精修:已精修(face_enhancer + 电影级调色)
- 提示:脸为本地换脸、身份级一致;全程本地处理,未外传。
边界与停止条件
- 换脸仅在本地进行;只用本人 / 已授权人脸,不换他人或未授权人脸。
- 不生成涉及未成年人、不当或侵权内容的图像;遇到此类请求直接拒绝并说明。
- 照片仅作为本次生成调用的输入,不另存、不外传、不用于其他用途。
- facefusion / ffmpeg / 模型未就绪时:跳过换脸、回退风格化底图并告知,不拿旧图或占位图顶替。
- 图像生成工具不可用时(无额度、服务异常):停止生成,告知用户原因与恢复方式。
- 用户拒绝积分消耗:停止生成,不强行出图。
- 不自动把成片发布到任何平台或发送消息;交付即结束。
质量自查(每次使用本 Skill 时过一遍)
- [ ] 已拿到至少 1 张照片和至少一项场景描述
- [ ] 已做朝向分析;用户要侧脸姿态时已收集/提示侧脸照(见 photo-analysis.md)
- [ ] 已告知积分消耗并获继续确认
- [ ] prompt 含人物保留指令、朝向词(按需)与具体场景名词
- [ ]
input_fidelity设为高、quality为 high - [ ] 若开启换脸:facefusion + ffmpeg/ffprobe + venv 已自检通过;模型就绪或已提示首次下载
- [ ] 分人换脸正确(每人分别运行;gender auto 或显式
--gender-a/--gender-b映射无误) - [ ] 换脸生效(输出与输入不同;脚本已做静默失败检测)
- [ ] 成片按输出模板交付,并注明还原方式
- [ ] 成片无水印(未设置
footnote参数,prompt 含 no watermark) - [ ] 未触碰照片以外的文件,未外传照片
首次使用须知
- 模型首次下载耗时:本地换脸(facefusion)首次运行时需从 GitHub 下载模型权重(人脸检测 + inswapper 换脸 + 可选增强器),正常网络下几分钟完成,慢速网络可能需 1—2 小时。下载完成后后续使用无需重复下载。
- GPU 加速(未来迭代):本机有 GTX 1650 但未装 CUDA 工具链,当前走 onnxruntime CPU 推理(慢但可用)。安装 CUDA Toolkit 后可加
--execution-providers cuda走 GPU 加速,换脸速度可提升数倍至数十倍。这是本 Skill 可迭代的升级方向之一。 - 外部换脸 API(未来迭代):若对换脸速度或保真度有更高要求,可在本地换脸之外增加"外部 face-swap API"作为备选路线(需 API Key + 账号,按张计费,照片会经外部服务)。两条路线均可在本 Skill 基础上迭代,不影响现有流程。