# 长图生成规范

生成需要拼接的长图时，采用**叠罗汉式串行生成**，每张图参考上一张图生成，确保风格一致、衔接自然。

## 铁律：执行前必须分析+确认

**收到长图需求后，禁止直接开始生成！必须先完成以下步骤：**

### 第一步：分析提示词结构

仔细阅读提示词，识别以下信息：
1. **分屏数量**：提示词中有几个明确的段落/模块？
2. **每屏内容**：每一屏具体要展示什么？
3. **全局风格**：色调、风格、光影等统一要素
4. **衔接元素**：段落之间用什么元素过渡？

### 第二步：输出分屏规划表

必须用表格形式输出规划，让用户一目了然：

```markdown
| 屏数 | 内容概要 | 关键元素 |
|-----|---------|---------|
| 1 | 主视觉+标题 | xxx |
| 2 | xxx特写 | xxx |
| ... | ... | ... |

**全局风格**：xxx风格、xxx色调、xxx布光
**输出比例**：3:4
**预计生成**：N张图 → 拼接为长图
```

### 第三步：等待用户确认

**必须等用户说"OK"、"开始"、"没问题"后才能开始生成！**

用户可能会：
- 调整分屏数量
- 修改某屏内容
- 补充遗漏的要素

## 核心原则：叠罗汉式串行生成

**为什么用串行而不是并发？**
- 每张图的顶部颜色需要与上一张图的底部颜色衔接
- 只有等上一张图生成完成，才能提取其底部色调
- 串行生成确保每一屏之间的过渡自然无缝

**为什么参考上一张而不是首图？**
- 参考首图会导致中间屏幕风格跳跃
- 叠罗汉式参考让风格逐屏延续，过渡更平滑
- 每张图只需关心与相邻图的衔接

## 生成前校验清单

| 检查项 | 要求 | 示例 |
|-------|------|------|
| **比例统一** | 所有分图使用相同 `-r` 参数 | 全部 `-r 3:4` |
| **风格描述统一** | 使用相同的风格关键词 | 全部 `电影级美食摄影风格` |
| **色调统一** | 定义主色调范围 | 全部 `深红色、暖棕色、金色` |

## Agent 执行流程（铁律）

```
1. 收到长图需求
2. 【分析】仔细阅读提示词，识别分屏结构
3. 【规划】输出分屏规划表（表格形式）
4. 【确认】等待用户确认后才开始生成（铁律！）
5. 定义全局风格变量（主色调、风格词）
6. 串行生成每一屏：
   a. 首屏：用 text_to_image.py 生成，定调
   b. 第2屏：用 image_to_image.py 参考第1屏生成
   c. 第3屏：用 image_to_image.py 参考第2屏生成
   d. 以此类推...每屏参考上一屏
7. 每屏生成后等待完成，再生成下一屏（串行，不可并发）
8. 全部完成后，使用 --blend 20 拼接输出
```

## 图生图 Prompt 规范

**核心要点：顶部衔接上一张底部**

后续图片的 prompt 必须包含：
1. **顶部衔接声明**：明确顶部颜色/氛围与上一张底部衔接
2. **风格继承**：参考上一张图的整体风格、光影
3. **本屏内容**：描述当前屏幕要展示的内容

**Prompt 模板：**
```
参考模板图的整体风格、色调和光影氛围。本屏顶部与上一屏底部自然衔接。{本屏具体内容描述}
```

**更精确的写法（推荐）：**
```
参考模板图的{风格}、{色调}、{光影}。顶部延续上一屏底部的{颜色/氛围}。{本屏具体内容描述}
```

## 分屏位置规范

| 位置 | 处理方式 |
|------|---------|
| **首屏** | 顶部正常开始，底部内容自然过渡（无需刻意留白） |
| **中间屏** | 顶部衔接上一屏底部颜色，底部内容自然过渡 |
| **尾屏** | 顶部衔接上一屏底部颜色，底部正常收尾 |

**关键：不要预留固定百分比的留白区域，让内容自然过渡即可**

## 执行示例

```bash
# 步骤1：生成首屏（文生图，定调）
python .opencode/skills/image-service/scripts/text_to_image.py "高端美食摄影风格，深红暖棕金色调，电影级布光..." -r 3:4 -o 01_hero.png
# 等待完成

# 步骤2：生成第2屏（参考第1屏）
python .opencode/skills/image-service/scripts/image_to_image.py 01_hero.png "参考模板图的美食摄影风格、深红暖棕色调、电影级布光。顶部延续上一屏底部的暖色氛围。本屏内容：酥皮特写..." -r 3:4 -o 02_crisp.png
# 等待完成

# 步骤3：生成第3屏（参考第2屏）
python .opencode/skills/image-service/scripts/image_to_image.py 02_crisp.png "参考模板图的美食摄影风格、深红暖棕色调、电影级布光。顶部延续上一屏底部的色调。本屏内容：牛排特写..." -r 3:4 -o 03_tenderloin.png
# 等待完成

# ...以此类推

# 最后：拼接（推荐 blend 20）
python .opencode/skills/image-service/scripts/merge_long_image.py 01_hero.png 02_crisp.png 03_tenderloin.png ... -o final.png --blend 20
```

## 铁律

1. **必须串行生成**：每屏生成完成后再生成下一屏，禁止并发
2. **叠罗汉式参考**：第N屏参考第N-1屏，不是全部参考首屏
3. **顶部衔接**：每屏的顶部颜色/氛围必须与上一屏底部衔接
4. **不留固定留白**：不要预留4%/8%等固定留白，让内容自然过渡
5. **脚本区分**：首屏用 `text_to_image.py`，后续全部用 `image_to_image.py`
