---
description: "写真拍摄企划怎么真的出图：接 Agent 基础能力的 gpt-image-2.5，没有真人照片走生成接口，有真人照片走编辑接口、身份原图在前构图参考在后；宫格不写比例和行列，出完先自检格数和脸再给用户"
---

# 出图

出图统一走 Agent 基础能力的[生成、编辑图片](../../agent-io/reference/image.md)：base URL、key、HTTP/2、超时、`b64_json` 解码都照那页办，这里只写本 skill 自己的规矩。

## 什么时候出 { #when }

- 自主模式：用户回了 A/B/C，或者明确说「出图」「出一张」「看看」「生成预览」「8 宫格」
- 抽卡模式：走完流程自动出
- 出图前[分享文案](../shooting/reference/share-card.md)必须已经写好、给用户看过；用户说「只出图」「不要文案」时跳过
- 方向卡上的代码块是给用户复制去别的生图模型自己出图的；AI 自己出图照本页

## 选接口 { #endpoint }

- **没有真人照片**（通用模特、纯方案预览）：用生成接口 `/v1/images/generations`
- **有真人照片**：用编辑接口 `/v1/images/edits`，参考图放进 `images[]`，本地图写成 data URI
- **参考图的顺序**：先放每个出镜人物的身份参考，一人一张，按 P01、P02 排；需要保持构图、动作时，再把派生图（8 宫格、上一张）放在最后
- **prompt 开头写明每张参考图干什么**，比如「第 1 张是 P01 的身份参考，第 2 张是 P02 的身份参考，只取脸型、五官、年龄感和辨识度，忽略头发和表情；第 3 张只作构图和姿势参考，不从它取任何一张脸」
- 身份参考按[真人身份参考](identity-reference.md#calling)选：用户显式升级过的用升级的，否则一律用最初上传的原图；不按「最近一张」挑

## 宫格 { #grid }

- 8 宫格对应 8 张 Shot，一格一张；[换装](../wardrobe/index.md)是 6 宫格，[参考图美化](../beauty-prep.md)是 3 宫格
- prompt 里不写单格比例、单格尺寸、整板比例和行列数，只要求：格数正确，每格清晰独立、像一张正常照片而不是细长切条，按左上起的阅读顺序排，整体好读
- 对用户也不承诺「单格 4:5」这类尺寸；用户只说「8 宫格」时不主动补比例
- 请求里的 `size` 是整张图的比例：用户指定了画幅就照写，没指定写 `"1:1"`
- 模型不画文字、数字、Logo、水印；要编号就在回复文字里按阅读顺序说
- 每格是真正不同的 Shot：不跨格合并人物、服装、动作和道具，不多出格子
- 真人宫格的总身份锁和逐格重置见[真人身份参考](identity-reference.md#identity-lock)；保存工程时直接用 `prepare-grid` 打印的 prompt

## 出完先自检 { #qa }

不合格的直接丢掉重出，不给用户看：

- 恰好 8 格（换装恰好 6 格，美化恰好 3 格）
- 每格边界清楚，没有窄条、过度压缩或混乱拼贴，单格读得清
- 计划露脸的格子脸认得出，和参考是同一个人
- 没漏人、多人、复制人，没换衣服，地点和时代没泛化

## 放大单张 { #detail }

- 用户点名「放大第几张」「单独出几张」「全部单独出」时才出
- 用编辑接口：身份参考在前，整张 8 宫格放最后当构图参考；prompt 写明只看自然阅读顺序的第几格、只取构图和姿势，脸重新从身份参考恢复，不继承格子里已经生成的脸
- 竖幅 `size` 写 `"4:5"`，横幅写 `"3:2"`；为目标画幅自然重新取景、延展环境，不机械外扩画布，不重排动作和站位
- 保存工程时 `shot_board.py select` 生成这份 prompt，出完用 `complete` 登记，见[拍摄与八宫格](../shooting/index.md#scripts)

## 存文件 { #save }

- 解码后存 PNG，文件名带上主题和格数，别覆盖上一版
- 保存工程时宫格用对应脚本的 `register-grid` 登记进工程目录
