Files
daily-opencode-workspace/.opencode/skills/image-service/references/long-image-guide.md

136 lines
5.1 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.
# 长图生成规范
生成需要拼接的长图时,采用**叠罗汉式串行生成**,每张图参考上一张图生成,确保风格一致、衔接自然。
## 铁律:执行前必须分析+确认
**收到长图需求后,禁止直接开始生成!必须先完成以下步骤:**
### 第一步:分析提示词结构
仔细阅读提示词,识别以下信息:
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`