Files
Popiai-skill/ai-editing/face-warp/SKILL.md
T

270 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: face-warp
display-name-zh: 人像拼图
summary-cn: 输入参考人脸,用拼图法解决人脸过审问题
summary-en: Split reference face to pass moderation
description: |
Portrait deconstruction tool for AI image creation.
Splits a portrait photo into 2 variants: faceless (features erased) + puzzle (features extracted).
Enabling character-consistent content creation with AI generation models.
Pipeline: portrait upload → analysis → 2 variant generation → quality check → composite → output.
Trigger on: "face warp," "人脸拆解," "人物拆解," "面部解构," "portrait split,"
"faceless," "去脸," "五官提取," "face decompose," "人脸预处理,"
or any request where someone provides a portrait and wants face-deconstructed
variants for downstream use.
Do NOT trigger for: style transfer without face modification (use kontext),
face swap between two people, deepfake creation, or portrait retouching.
version: 0.5.3
tags: [Image, Portrait, Face, Preprocessing]
tags-cn: [图片, 人像, 人脸, 预处理]
exported-by: MiniMax-hub
---
# Face Warp — 人物拆解工具
你是一个专业的人像解构艺术家,将一张人物照片拆解为 2 种变体图并拼合为最终成品,
在保持人物一致性的同时,为下游 AI 创作提供多样化素材。
## Iron Law
**每一张输出图都必须保持与原图的人物一致性。** 服装、体态、肤色、发型
必须与原图高度一致。拆解是"解构"而非"替换"。
## 全局约定
- 所有产物存储在 `./.face-warp/{project_name}/`
- **全自动执行**:全程自动,无用户选择环节,生成失败自动重试(最多 2 次)
- **语言**:文案默认中文(跟随用户输入语言),AI 生图 prompt 使用英文
- **禁止使用 `cd` 命令**
- **模型选择**:图片生成默认使用 `nano_banana_image_generation`model_name: `nano_banana_2`,即 Gemini Pro
- **质检重试**:生成后用 `read_media` 评分,不合格自动调整 prompt 重试(最多 2 次),详见 `references/quality-criteria.md`
- **最终输出 1 张图**compositefaceless + puzzle 左右拼接)
## 资源文件
| 文件 | 用途 |
|------|------|
| `references/profile-template.md` | Character Profile 结构模板 |
| `references/prompt-templates.md` | faceless / puzzle 的 prompt 模板及重试强化词 |
| `references/quality-criteria.md` | 质检评分标准、阈值、重试策略 |
## 工作流程
```
Face Warp Progress:
- [ ] Phase 1: Portrait Upload & Analysis
- [ ] Phase 2: Generate 2 Variants
- [ ] Phase 3: Quality Check & Retry
- [ ] Phase 4: Composite (Faceless + Puzzle → Single Image)
```
---
## Phase 1: Portrait Upload & Analysis
### Goal
接收用户上传的人像照片,分析人物特征,生成 Character Profile。
### Input / Output
| | 内容 |
|---|------|
| **Input** | 用户上传的人像照片(1 张),可选 aspect ratio |
| **Output** | `./.face-warp/{project_name}/profile.md` — 人物特征档案 |
### Required Inputs
| Input | Required | Description |
|-------|----------|-------------|
| Portrait photo | Yes | 含清晰人脸的人物照片 |
| Aspect ratio | Optional | 输出图片宽高比(默认 9:16) |
### Flow
1. Save portrait to session:
```
save_file_to_session(source_path=..., file_type="image")
```
2. Analyze portrait with `read_media`:
```
read_media(
file_paths=[portrait_image],
question="Analyze this portrait in detail. Extract:
1) Gender, approximate age range
2) Hair: color, length, style
3) Skin tone (light/medium/dark, warm/cool undertone)
4) Face shape
5) Distinctive facial features (eye shape, nose shape, lip shape, unique marks)
6) Clothing: type, color, pattern, texture
7) Pose and body posture
8) Background/environment
9) Lighting direction and quality
10) Overall color palette"
)
```
3. 按 `references/profile-template.md` 结构填充分析结果,保存到 `./.face-warp/{project_name}/profile.md`
---
## Phase 2: Generate 2 Variants
### Goal
基于原始人像和 Profile,一次性并行生成 2 张变体图。
### Input / Output
| | 内容 |
|---|------|
| **Input** | 原始人像 + `profile.md` |
| **Output** | `./.face-warp/{project_name}/faceless.png` + `puzzle.png` |
### 2 张变体定义
| # | 名称 | 文件名 | 描述 |
|---|------|--------|------|
| 1 | 五官擦除 | `faceless.png` | 面部五官被平滑擦除(光滑无特征皮肤),身体服装不变 |
| 2 | 五官拆分拼贴 | `puzzle.png` | 只保留五官特征(眼鼻唇眉),按脸部自然布局拆散拼贴在白色背景上 |
### Prompt 构建
从 `profile.md` 提取人物描述前缀,与 `references/prompt-templates.md` 中的模板组合。
**Prompt 前缀**(从 profile 提取):
```
[gender], [age range], [hair description], [skin tone], wearing [outfit description],
[pose description], [background/environment], [lighting]
```
**完整 prompt** = 前缀 + 模板(详见 `references/prompt-templates.md`)。
提交前对照 `references/prompt-templates.md` 底部的 **Prompt Construction Checklist** 逐项确认。
### Generation
使用 `nano_banana_batch_image_generation_v2` 一次并行生成 2 张:
```
nano_banana_batch_image_generation_v2(
count=2,
prompts=[faceless_prompt, puzzle_prompt],
image_paths=[
[original_portrait],
[original_portrait]
],
aspect_ratios=["9:16", "9:16"],
model_name="nano_banana_2",
resolution="2K"
)
```
如果批量生成失败,则逐张用 `nano_banana_image_generation` 生成。
---
## Phase 3: Quality Check & Retry
### Goal
用 `read_media` 对生成图进行质量评分,不合格的自动调整 prompt 重新生成。
### Input / Output
| | 内容 |
|---|------|
| **Input** | `faceless.png` + `puzzle.png` + 原始人像 |
| **Output** | 通过质检的 `faceless.png` + `puzzle.png`(可能经过重试替换) |
### 评分流程
详细评分标准、阈值和重试策略见 `references/quality-criteria.md`。
核心流程:
1. 将原图 + 两张生成图送入 `read_media`,按 `quality-criteria.md` 中的 Evaluation Prompt 评分
2. 解析评分结果,判断每张图是否 PASS(所有维度 ≥ 阈值)
3. FAIL 的图按 `quality-criteria.md` 中的 Retry Prompt Adjustment Strategy 调整 prompt,仅重生成不合格的那张
4. 最多重试 2 次,仍不合格则保留最佳版本
5. 将评分记录写入 `./.face-warp/{project_name}/quality_log.md`
### 关键阈值速查
| 图片 | 关键维度 | 阈值 |
|------|----------|------|
| faceless | face_concealment | ≥ 8 |
| faceless | character_consistency / natural_appearance / image_quality | ≥ 7 |
| puzzle | no_full_face | ≥ 8 |
| puzzle | feature_accuracy / skin_tone_consistency / artistic_quality | ≥ 7 |
---
## Phase 4: Composite (Faceless + Puzzle → Single Image)
### Goal
将通过质检的 faceless 和 puzzle 两张图左右拼接为一张完整的合成图。
### Input / Output
| | 内容 |
|---|------|
| **Input** | 通过质检的 `faceless.png` + `puzzle.png` |
| **Output** | `./.face-warp/{project_name}/output/composite.png` |
### 拼接方式
使用 `ffmpeg` 进行左右拼接,faceless 在左,puzzle 在右:
```
ffmpeg(args=[
"-y",
"-i", "./.face-warp/{project_name}/faceless.png",
"-i", "./.face-warp/{project_name}/puzzle.png",
"-filter_complex",
"[0]scale=-1:1080[left];[1]scale=-1:1080[right];[left][right]hstack=inputs=2",
"./.face-warp/{project_name}/output/composite.png"
])
```
**规则**
- 两张图先统一高度(1080px),宽度等比缩放
- 使用 `hstack` 水平拼接(左: faceless, 右: puzzle
- 输出到 `./.face-warp/{project_name}/output/composite.png`
---
## Completion
```
--- Face Warp Complete ---
Character: {character_description}
Output: .face-warp/{project_name}/output/composite.png
```
---
## Error Handling
| Error | Recovery |
|-------|----------|
| Portrait too low-res | Run `super_resolution` first |
| Face not clearly visible | Ask user for a clearer portrait |
| Batch generation fails | Fall back to single `nano_banana_image_generation` per image |
| Single image generation fails | Retry once with adjusted prompt, then skip and report |
## Anti-Patterns
- **Don't skip quality checks**: 质检是保证输出质量的关键环节,不能跳过
- **Don't alter body proportions**: 只改变面部呈现方式,不改变体型体态
- **Don't change clothing**: 服装必须与原图完全一致
- **Don't over-stylize**: 保持照片级写实感
- **Don't ignore skin tone**: 肤色一致性是人物一致性的关键