海艺思创

首页/ AI绘图教程/ OpenAI Images API 图片编辑和遮罩怎么用

AI绘图教程

OpenAI Images API 图片编辑和遮罩怎么用

OpenAI Images API 图片编辑和遮罩怎么用

准备清单

只想把商品图中的包装颜色换掉、把海报角落的一件道具移除,却发现结果连背景和主体也跟着改变,通常不是提示词写得不够长,而是输入图片、遮罩和验收范围没有对齐。OpenAI Images API 的编辑调用需要图片与提示词;遮罩则用全透明区域标出需要编辑的位置。局部修改能否可控,先取决于你是否能明确回答三件事:原图里哪一块必须保留,哪一块允许变化,改完后要用什么标准判断合格。

  • 原图:保留一份未经裁切和压缩的版本,并记录实际像素尺寸。例如原图是 1600×1200,遮罩画布也必须是 1600×1200。
  • 编辑目标:一轮只写一个主要变化,如“把左下角的蓝色标签改为米白色”或“移除右侧桌面上的纸杯”。不要同时换产品颜色、重做背景和修改光线。
  • 保留范围:提前列出不能变化的部分,如产品轮廓、瓶身比例、背景透视、人物姿势、海报留白或已有文字区域。
  • 遮罩文件:准备带 Alpha 透明通道的 PNG。资料包所示接口要求遮罩小于 4MB,且尺寸必须与输入图片完全相同。
  • 结果用途:写清结果是用于商品详情页、海报排版还是内部草稿。不同用途的检查重点不同,不能只看单独预览是否好看。

使用 GPT Image 模型时,输入图片可为 PNG、WebP 或 JPG,单张文件需小于 50MB,最多可传入 16 张图片;本篇的局部重绘流程只使用一张原图和一张遮罩。若改用 DALL-E 2,图片限制不同,只能传一张小于 4MB 的正方形 PNG,因此不要把两套文件规则混用。局部改完后如果还需要统一处理背景尺寸、输出格式或透明模式,可参考OpenAI Images API 生成背景图中的参数检查方法。

遮罩制作

遮罩不是给模型看的黑白示意图,而是一张与原图同画布尺寸的 PNG。这个接口认的是透明度:Alpha 为零的全透明部分,表示需要编辑的位置。最稳妥的做法是以原图为底创建同尺寸画布,先让整张遮罩保持不透明,再把允许改动的区域擦成完全透明,导出前确认 PNG 保留了透明通道。

  1. 复制画布尺寸:在图像编辑工具中新建遮罩时,直接读取原图宽高,不要凭肉眼新建一个近似比例的画布。哪怕只差一个像素,也不适合作为这次调用的遮罩。
  2. 圈定修改区域:只选中真正要变动的物体或局部背景。比如只改包装袋颜色,就覆盖包装袋本身;若颜色变化会影响贴地阴影,可把紧贴物体的少量阴影一并纳入,避免边缘颜色不连贯。
  3. 转为全透明:将选区内像素擦除或删除,使该区域在透明通道预览中显示为完全透明。不要只涂成白色、黑色或灰色,因为颜色并不等同于透明度。
  4. 检查边界:把遮罩叠放到原图上查看,确认透明区没有压到产品轮廓、人物手部或海报中必须保留的文字。边缘过大容易扩大改动范围,边缘过小则可能留下旧颜色或残影。
  5. 导出复核:导出为 PNG 后重新打开文件,在透明背景预览下确认目标区确实透明;再检查文件小于 4MB,且画布宽高与原图一致。

遮罩负责回答“改哪里”,提示词负责回答“改成什么”。两者不能互相替代。遮罩很小但提示词要求“重做整个画面”,结果仍可能偏离预期;遮罩覆盖很大但提示词只写“更好看”,也无法得到可复核的局部修改。初次测试时,选择边界清楚、面积较小的区域更容易判断流程是否正确。

局部编辑步骤

调用前先给文件和版本命名,例如 poster_v01.jpgposter_v01_mask.pngposter_v01_prompt.txt。这样当第二次结果不理想时,你能判断问题来自遮罩、提示词还是参数,而不是覆盖掉原来的可用版本。

  1. 固定原图:选择目前最接近目标的图片作为输入,确认它没有被聊天软件二次压缩,也没有在导出时改掉尺寸。
  2. 核对遮罩:比对两张文件的宽高,打开遮罩查看 Alpha 通道,确认完全透明的位置正是本轮允许修改的位置。
  3. 写编辑说明:按“修改对象、目标状态、保留项、限制项”的顺序写提示词。修改对象要能在遮罩区域里找到,保留项要写已经满意且不应重画的内容。
  4. 发起编辑:将原图作为 image、遮罩作为 mask,并传入 prompt 调用 client.images.edit。示例使用 gpt-image-1.5,并把图像匹配强度设为高;该参数不适用于 gpt-image-1-mini
  5. 保存返回结果:资料包说明 GPT Image 模型会返回 Base64 编码的图片数据,因此后续程序应按 Base64 图片保存流程处理,不要沿用旧模型临时 URL 的处理假设。
  6. 并排验收:将原图、遮罩和结果图以相同缩放比例并排放置。先查看透明区内的修改是否到位,再查看遮罩外是否有意外变化。
from openai import OpenAI

client = OpenAI()

with open('product.jpg', 'rb') as image_file, open('mask.png', 'rb') as mask_file:
result = client.images.edit(
model='gpt-image-1.5',
image=image_file,
mask=mask_file,
prompt='只修改遮罩对应的包装袋颜色,其他区域保持不变。',
input_fidelity='high',
size='1024x1024',
output_format='png',
n=1,
)

这里的 sizeoutput_formatqualitybackground 等选项需要与实际模型兼容。不要看到参数报错就反复改提示词,先确认模型与参数组合。需要透明输出时,接口资料要求所用模型支持透明背景,并选择支持透明通道的 PNG 或 WebP;gpt-image-2gpt-image-2-2026-04-21 不支持透明背景。

可复制提示词

提示词应像一份局部修改工单,不要只写“换颜色”或“修一下”。方括号内容替换为你的真实需求;没有必要的项目可以删除,避免把互相冲突的要求堆进同一轮。

任务:只编辑遮罩标记的区域。
修改对象:[要修改的物体或局部背景]。
目标结果:[新的颜色、材质、物体状态或需要移除的内容]。
保留不变:[遮罩外必须保留的主体、构图、光线、背景、比例和细节]。
边缘要求:[与周围光线、阴影、透视和材质自然衔接]。
限制:不要新增其他物体,不要改变遮罩外区域,不要改变画面尺寸,不要生成文字、字母、数字、标识、Logo 或水印。

商品图改色示例:

只编辑遮罩标记的包装袋区域。将包装袋由深蓝色哑光材质改为浅米白色哑光材质,保留包装袋原有的形状、褶皱、位置和受光方向。保留瓶子、桌面、背景、产品数量、镜头角度和全部未遮罩区域不变。新颜色应与袋口边缘和贴地阴影自然衔接,不新增道具,不改变产品轮廓,不生成文字、字母、数字、标识、Logo 或水印。

海报局部移除示例:

只编辑遮罩标记的右下角纸杯。移除该纸杯,并用与周围桌面一致的材质、纹理、光线和透视补全该区域。保留主产品、人物、背景、构图、色彩和左侧留白不变。桌面边缘与阴影过渡自然,不新增替代物,不改变遮罩外区域,不生成文字、字母、数字、标识、Logo 或水印。

结果修补示例:

以当前图片为基础,只修正遮罩区域与周围画面的交界。保留已经完成的局部修改及所有未遮罩区域不变,统一边缘颜色、阴影方向、材质细节和透视关系。不要重新设计主体,不要增加新物体,不要修改构图和尺寸。

当任务涉及真实商品外观、包装图案或必须准确的文字信息时,局部生成结果应作为设计草稿或后期素材,而不是未经核对就直接替代实物展示。模型可能改变细小边缘、图案和文字,成图是否可用于发布仍要由人工验收决定。

翻车修正

遮罩外也被改了:先缩小透明区域,确认没有把主体边缘、阴影或大面积背景误擦成透明;再把提示词里的“保留不变”改得具体,例如明确保留产品位置、镜头角度和背景。不要同时更换模型、尺寸和提示词,否则无法定位原因。

目标区域几乎没变化:检查遮罩中的目标区域是否真的是 Alpha 为零的全透明,而不是涂成单色或半透明。随后确认遮罩与原图是否同尺寸,最后把提示词中的目标从“优化一下”改成可观察的变化,如具体颜色、材质或要移除的物体。

边缘有色边或阴影断裂:不要立刻扩大到整张图。先判断变化是否应该影响物体边缘、接触阴影或反光;确有需要时,只把相邻的小范围纳入透明区,并在提示词中要求与原有光线、阴影和材质衔接。保存上一版遮罩,方便比较扩大范围是否真的改善结果。

请求直接报错:优先检查遮罩是否为小于 4MB 的 PNG、尺寸是否一致;再检查原图格式和大小是否符合当前模型要求。若设置了透明背景、输出格式、质量或输入保真度,也要核对它们是否被所选模型支持。

结果文件无法按预期取得:若使用 GPT Image 模型,按 Base64 图片数据处理返回结果。资料包明确区分了 GPT Image 模型与旧模型的返回方式,不能把只适用于 DALL-E 2 的 response_format 和临时 URL 逻辑照搬过来。

包装文字或细节变形:不要让遮罩覆盖无需改动的标签、条码或细节区域;若只想改变背景色,就把遮罩收回到背景。对必须准确的产品信息,优先保留原始实拍部分,并在后期软件中完成可控的文字和标识处理。

完成前检查

  • 原图与遮罩的像素宽高是否完全一致,遮罩是否为带透明通道的 PNG 且小于 4MB。
  • 遮罩的全透明区域是否只覆盖本轮允许修改的位置,没有误覆盖主体轮廓、关键文字或不该变化的背景。
  • 原图格式、文件大小、模型、尺寸、输出格式和其他参数是否属于当前模型支持的组合。
  • 提示词是否同时写清了修改对象、目标状态、必须保留项和不应出现的内容。
  • 结果图中,遮罩区域是否确实完成了预期改动,而不是只发生了无关风格变化。
  • 遮罩外的产品数量、外形比例、主体位置、构图和背景是否保持稳定。
  • 改动边缘的颜色、光线、阴影、材质和透视是否连续,没有明显色边、残影或断裂。
  • 商品图中的包装、标签、图案和可读信息是否经过人工核对,没有错误、缺失或变形。
  • 海报图中的留白、主体层级和后续排版空间是否仍然可用,而不是只在全尺寸预览下看起来正常。
  • 最终文件是否已按发布场景检查尺寸、格式、透明通道和缩小预览效果。
  • 是否保存原图、遮罩、完整提示词、模型和参数记录,便于下一轮只修改一个变量。

局部编辑的核心不是追求一次改完,而是建立可回退的循环:固定原图,明确透明遮罩范围,使用可验收的提示词,再根据结果只调整遮罩或提示词中的一个主要问题。这样处理商品图和海报时,才不会为了修一个小区域而失去整张图原本已经正确的部分。

下一步

把这篇的方法练一遍

提示词和步骤可以带到创作里直接试做一版。

去创作 看同栏目更多