GPT-6 Sol、Claude Opus 5.5 已上线GPT-6 Sol 价格仅为 5.6 Sol 的一半

虚拟换装 API:用 GPT Image 2 替换服装

一张照片加一句提示词就能换装。下面是请求代码、我们在 2026 年 10 月 28 日跑的三次换装,以及结果会在哪里跑偏。

Kiki, OmniaKey COO7 分钟阅读
本页内容

可以,用一句文字提示就能换。GPT Image 2 的改图接口在一张照片上换了衣服。我们 2026 年 10 月 28 日跑的三次换装里,姿势、脸和背景都保持不变。它没有单独的服装输入,但加一张服装照片后,裙长跟着参考图变了。每张结果都要用眼睛检查。

请求就是 OmniaKey 媒体 API 的一次图片编辑:一张原图、一句提示词,再加可选的参考图。我们在 2026 年 10 月 28 日核对了下面的函数:提示词和代码里的样例不同,用的是一件黄色雨衣;发的是基础模特的一张 1024 像素 JPEG 图,返回的是 1024x1536 的 PNG。

改图能给试衣做什么,不能做什么

图片编辑从一张原图和一句提示词开始。操作名是 edit,原图以 Base64 内联发送,提示词写清要换的衣服。OmniaKey 的图片 API 文档(2026 年 10 月 28 日核对)还允许在 images 数组里放多张参考图。返回的是一张新图,所以衣服变了,人还留在原处:我们的几次跑图里,脸、姿势、头发和影棚背景都保持不变。

试衣有两个地方要留意:接口没有单独的服装字段,模型从你的描述或第二张照片里读衣服,再画出自己的版本;新图也会动到你没点名的细节。试衣功能应该把结果展示出来,让买家自己判断像不像。同一个操作也能做移除画面里的物体;如果主要是按指令改图,可以看FLUX Kontext 替代方案指南。

把照片和换装提示词发出去

向 https://api.omniakey.com/v1/media/tasks 发 POST,带上 Bearer key、JSON 请求体和 Idempotency-Key 头。OmniaKey 的图片 API 文档(2026 年 10 月 28 日核对)说创建任务返回 HTTP 202 和任务 id。任务状态是 queued 或 processing 时继续轮询任务地址。succeeded 表示素材已就绪,失败的任务会带 error.code 和 error.message,并且不扣费。

任务字段这样填:

字段值
modelgpt-image-2
typeimage
operationedit
input.prompt换装提示词
input.image原图,用 data 和 mime_type 对象
input.images额外参考图
parameters.sizeWIDTHxHEIGHT
parameters.qualitylow、medium、high 或 auto
parameters.n1

整个请求要控制在 1 MiB 以内,因为内联 Base64 也算在这 1 MiB 里。采样数必须是 1,接口固定返回不透明 PNG,所以尺寸要从下载后的文件里读。

下面是这个函数:

python
import base64
import json
import os
import time
import urllib.request
import uuid

API = "https://api.omniakey.com/v1/media/tasks"
KEY = os.environ["OMNIAKEY_API_KEY"]


def request(method, url, body=None, extra_headers=None):
    headers = {"Authorization": f"Bearer {KEY}", "User-Agent": "omniakey-example/1"}
    data = None
    if body is not None:
        headers["Content-Type"] = "application/json"
        data = json.dumps(body).encode()
    headers.update(extra_headers or {})
    req = urllib.request.Request(url, data=data, headers=headers, method=method)
    with urllib.request.urlopen(req, timeout=120) as resp:
        return json.load(resp)


def edit_image(source_path, prompt, out_path, size="1024x1536", quality="medium"):
    with open(source_path, "rb") as f:
        image = base64.b64encode(f.read()).decode()
    body = {
        "model": "gpt-image-2",
        "type": "image",
        "operation": "edit",
        "input": {"prompt": prompt, "image": {"data": image, "mime_type": "image/jpeg"}},
        "parameters": {"size": size, "quality": quality},
    }
    task = request("POST", API, body, {"Idempotency-Key": str(uuid.uuid4())})["id"]
    for _ in range(150):
        time.sleep(4)
        state = request("GET", f"{API}/{task}")
        if state["status"] not in ("queued", "processing"):
            break
    if state["status"] != "succeeded":
        raise RuntimeError(state.get("error") or state["status"])
    asset_url = state["assets"][0]["url"]  # 签名链接约一小时有效,先下载
    req = urllib.request.Request(asset_url, headers={"User-Agent": "omniakey-example/1"})
    with urllib.request.urlopen(req, timeout=120) as resp, open(out_path, "wb") as f:
        f.write(resp.read())
    return task
if __name__ == "__main__":
    task = edit_image(
        "vto-base.jpg",
        "Change the outfit: she now wears a red satin slip dress with thin straps that falls to mid-calf. Keep the same pose, face, hair, body, the plain light-gray studio background and the lighting exactly as they are. Photorealistic, no text, no logos.",
        "vto-slip.png",
        size="1024x1536",
    )
    print("task", task)

签名素材链接约一小时有效,文件保留 24 小时(同一份文档,2026 年 10 月 28 日核对)。任务成功后要马上下载。我们 2026 年 10 月 28 日核对时用的是黄色雨衣那句提示词,发的是基础模特的一张 1024 像素 JPEG 图,返回的是 1024x1536 的 PNG。脚本带了 User-Agent 头:Python 默认的 User-Agent 在我们这次调用里被 HTTP 403 拒绝,加上这个头就通过了。

我们跑的三次换装

三次换装都从同一张合成照片开始:一位穿白色圆领 T 恤和深蓝牛仔裤的女性,站在浅灰色纯色影棚里。原图 1024x1536,质量 medium,来自我们 2026 年 10 月 28 日的跑图。

第一次要红色缎面细吊带裙,裙摆到小腿中部。裙子出来了,姿势、脸、头发和背景都没变。白色运动鞋变成了白色细带高跟,这不是我们要求的。

第二次要深绿色羊毛西装外套,里面配米色真丝吊带,下身黑色直筒裤。三件都出现了,白色运动鞋保留。

第三次要海军蓝和白色横条纹长袖上衣,左胸有一个小小的红色刺绣爱心。条纹和爱心都落在左胸;深蓝牛仔裤和白色运动鞋保留。

四张棚拍人像:原图的白色 T 恤和牛仔裤、红色缎面吊带裙、深绿色西装外套,以及条纹上衣
原图与三次纯文字换装。四张图的姿势、脸和影棚背景一致。

这里的人物和场景都是合成的,每条提示词只跑了一次,所以每张图都是一个样本。

Generated with GPT-Image 2 via the OmniaKey API on October 28, 2026, size 1024x1536, quality medium.

把服装照片作为第二张参考图

想要更贴近,可以把衣服当第二张图发进去。我们把人物照放在第一位,平铺的红色缎面吊带裙放在第二位,用 input.images 配这句提示词:

Dress the woman in the first image in the red satin slip dress shown in the second image. Keep her pose, face, hair, body, the plain light-gray studio background and the lighting exactly as they are. Photorealistic, no text, no logos.

裙子落到地面,长度接近平铺照片。同一件裙子只用文字描述时,裙摆停在小腿中部。我们这一次的样本里,服装照片带出了文字没说清的长度。

三联图:平铺的红色吊带裙、模特身上落到地面的同款裙子,以及只靠文字描述、裙摆到小腿中部的版本
左:我们发进去的服装照片。中:两张图一起发,裙长跟着照片走。右:同一件裙子只用文字描述。

哪里跑偏了

跑偏出现在提示词没写到的部分:吊带裙那次改了鞋,而提示词只写了裙子。给买家看之前,把脸、手、裙摆、鞋和图案放大检查一遍。带印花 logo 的服装、商品图上的精确面料花纹、超过两张参考图,这三样我们没有测试。

什么时候该用专门的试衣 API

专门的试衣 API 把人和衣服分成两个输入。Google 的 Vertex AI 页面 “Generate Virtual Try-On Images” 写着下面这句话。页面最后更新于 2026 年 10 月 26 日,我们在 2026 年 10 月 28 日核对:

You provide an image of a person and an image of a clothing product.

同一页列出 personImage 和 productImages 两个 Base64 字段,还有 1 到 4 的 sampleCount。模型 ID 是 virtual-try-on-001。页面还注明 Vertex AI 文档不再更新。

如果服装照片就是标准,而且一次要出多张样图,选这类接口;如果想把换装和其他编辑放在同一条流程里,选 GPT Image 2 的改图。普通改图一次出一张,Vertex 那页允许 1 到 4 张。

OpenAI 的定价页(2026 年 10 月 28 日核对)说 gpt-image-2 按 token 计费:页面列出的是 token 单价,没有单张价格表,并指向图像生成指南里的一个计算器。OmniaKey 的当前价格在价格页。

换装提示词模板

用我们跑通的结构:先写衣服,再锁住人和场景。

Change the outfit: she now wears [garment, colour, fabric, length]. Keep the same pose, face, hair, body, the plain light-gray studio background and the lighting exactly as they are. Photorealistic, no text, no logos.

  • 衣服:一句话写清颜色、面料和长度。“A red satin slip dress with thin straps that falls to mid-calf”带来了清楚的换装。
  • 锁定项:姿势、脸、头发、身体、背景、光线。把这些逐项写进提示词。
  • 收尾:写“Photorealistic, no text, no logos.”,我们几次提示词都用了这个结尾。
  • 鞋子:必须保留就点名,例如“keep the white sneakers”。吊带裙那次没写鞋,鞋就变了。

长度比文字更重要时,加第二张图:人物放第一,衣服放第二。提示词里用“the first image”和“the second image”指代,就像我们那次一样。提示词的整体顺序,可以看GPT Image 2 提示词指南。

常见问题

GPT Image 2 API 有专门的虚拟试衣接口吗?

没有。OmniaKey 的模型页(2026 年 10 月 28 日核对)列出文生图和图片编辑。我们几次跑图里,试衣就是一次编辑:一句文字提示,外加一张可选的参考图。

可以发服装照片吗?

可以,放在 input.images 里当第二张参考图。我们 2026 年 10 月 28 日那次跑图,裙长跟着平铺照片变了。

脸会保持不变吗?

我们三次换装和两张参考图那次,用眼睛看都保持了。每张结果都要放大检查。

结果链接能放多久?

约一小时(OmniaKey 图片 API 文档,2026 年 10 月 28 日核对),文件保留 24 小时。任务成功后马上下载。

该请求多大尺寸?

size 写成 WIDTHxHEIGHT,例如 1024x1536,再从下载的 PNG 里读实际尺寸。我们几次跑图都用 1024x1536、质量 medium。

先拿一张照片和一句换装提示词开始。GPT Image 2 页面介绍模型,当前价格单独列出。

文中提到的模型

virtual try-on APIGPT Image 2image editingoutfit changeAPI

相关文章

最新文章