OpenAI Images API 图片变体怎么生成
OpenAI Images API 图片变体怎么生成:先将已有商品图或视觉草图处理为合规的方形 PNG,再固定批次数量和尺寸,调用接口生成多张相近方案,并在返回后立即保存结果进行对比。
准备
图片变体接口用于以一张已有图片为基础生成相近版本。当前 Python SDK 的 create_variation 调用只支持 dall-e-2,输入必须是有效的方形 PNG,文件小于 4MB。
- 准备一张已确认主体、角度和基础风格的源图。
- 将源图裁成正方形,并导出为 PNG;不要只修改文件扩展名。
- 安装 OpenAI Python SDK,并通过环境变量配置 API 密钥。
- 先确定本轮只筛选什么,例如背景氛围、配色方向或陈列感觉,避免把多个目标混在一起。
接口可设置 n 为 1 到 10,size 可选 256x256、512x512 或 1024x1024。返回格式可选 URL 或 Base64 数据;若选择 URL,要在生成后尽快下载,因为该链接有效期为 60 分钟。
分步操作
- 检查源图。确认文件为 PNG、画布为正方形、体积小于 4MB。商品主体尽量完整,边缘不要被裁断。
- 确定本轮数量和尺寸。初次筛选可用
n=4;需要细看材质和边缘时使用1024x1024。 - 调用变体方法。打开图片文件,以二进制方式传给
client.images.create_variation,并明确指定模型、数量、尺寸与返回格式。 - 保存全部结果。不要只保留第一张。为每个结果按批次和序号命名,方便回看同一轮方案。
- 按固定标准筛选。先看主体识别是否保住,再看构图、材质、背景和是否能用于目标版位。把入选图与源图并排比较。
可复制模板或示例
下面示例请求 4 张 1024 方形变体,并把 Base64 返回内容写入本地 PNG 文件。
import base64
from pathlib import Path
from openai import OpenAI
client = OpenAI()
source_path = Path("source-square.png")
output_dir = Path("variations-batch-01")
output_dir.mkdir(exist_ok=True)
with source_path.open("rb") as image_file:
result = client.images.create_variation(
image=image_file,
model="dall-e-2",
n=4,
size="1024x1024",
response_format="b64_json"
)
for index, item in enumerate(result.data, start=1):
image_bytes = base64.b64decode(item.b64_json)
(output_dir / f"variation-{index:02d}.png").write_bytes(image_bytes)
建议每一轮只改变一个决策条件。例如第一轮只判断“是否保留主体轮廓”,第二轮再从入选图中挑一张继续探索。这样能分辨结果差异来自源图本身还是筛选标准变化。
翻车怎么改
常见故障:请求报错,或接口不接受源图。
原因:源文件不是 PNG、画布不是正方形、文件超过 4MB,或调用时使用了变体接口不支持的模型。
修正动作:在图像工具中重新裁切为方形画布,导出真正的 PNG 并压缩到 4MB 以下;调用 create_variation 时指定 dall-e-2。重新发送前,先在本地打开导出的 PNG,确认没有误导出为空白图或损坏文件。
常见故障:返回的图和源图差异过大,无法用于商品图方案迭代。
原因:源图中主体太小、轮廓不清晰或画面同时包含过多视觉重点。变体接口没有用于附加文字指令的参数,不能依靠一次调用精确锁定局部修改。
修正动作:先制作主体更明确、干扰元素更少的方形源图,再生成一批变体;若目标是只改局部区域,应改用图片编辑流程,而不是继续扩大变体批次。
完成前检查
- 发布前验收:源图已确认为方形 PNG,且文件小于 4MB。
- 本次调用使用的是
dall-e-2,n在 1 到 10 之间,尺寸为接口支持的三种方形规格之一。 - 每张返回图已保存到可追溯的批次目录,不依赖即将失效的临时 URL。
- 入选图与源图并排检查过主体外形、关键细节、裁切边缘和目标使用尺寸下的清晰度。
- 已记录本轮入选原因和淘汰原因,下一轮只基于入选图继续迭代。
下一步
把这篇的方法练一遍
提示词和步骤可以带到创作里直接试做一版。