GPT-6 Sol e Claude Opus 5.5 disponíveisGPT-6 Sol pela metade do preço do 5.6 Sol

API de provador virtual: troque o look da modelo com o GPT Image 2

Uma foto e um prompt mudam o look. Aqui estão o código do pedido, três trocas que rodamos em 28 de outubro de 2026 e onde a edição desvia.

Kiki, OmniaKey COO7 min de leitura
Nesta página

Dá, com um prompt de texto. O endpoint de edição do GPT-Image 2 trocou a roupa em uma foto e manteve pose, rosto e fundo nas nossas três trocas de 28 de outubro de 2026. Não existe campo dedicado para a peça de roupa, mas uma segunda foto da peça mudou o comprimento do vestido na nossa execução. Confira cada resultado no olho.

O pedido é uma edição de imagem na API de mídia da OmniaKey: uma foto de origem, um prompt e imagens de referência opcionais. Conferimos a função abaixo em 28 de outubro de 2026 com outro prompt (uma capa de chuva amarela) em um JPEG de 1024 pixels da modelo base, e ela devolveu um PNG de 1024x1536.

O que uma edição faz e não faz por um provador virtual

Uma edição de imagem parte de uma foto de origem e de um prompt. A operação é edit, a origem vai embutida em Base64 e o prompt descreve o novo look; a documentação da API de imagens da OmniaKey (conferida em 28 de outubro de 2026) também aceita várias imagens de referência em um array images. O resultado é um quadro novo, então a roupa muda e a pessoa fica como está: nas nossas execuções, rosto, pose, cabelo e fundo de estúdio se mantiveram.

Dois limites pesam num provador: não há campo separado para a peça, então o modelo desenha a roupa a partir da sua descrição ou de uma segunda foto, e o quadro novo pode mexer em detalhes que você não citou. Um recurso de provador deve mostrar o resultado para revisão e deixar o cliente julgar se ficou parecido. A mesma operação também serve para remover um objeto de uma cena; para edições guiadas por instrução, veja o guia de alternativa ao FLUX Kontext.

Envie a foto e o prompt do look

Faça um POST em https://api.omniakey.com/v1/media/tasks com uma chave bearer, um corpo JSON e o cabeçalho Idempotency-Key; a documentação da API de imagens da OmniaKey (conferida em 28 de outubro de 2026) diz que a criação retorna HTTP 202 e um id de tarefa. Consulte a URL da tarefa enquanto o status for queued ou processing; succeeded significa que os arquivos estão prontos, e uma tarefa failed traz error.code e error.message e não é cobrada.

Preencha os campos da tarefa assim:

CampoValor
modelgpt-image-2
typeimage
operationedit
input.prompta instrução do look
input.imagea foto de origem como objeto data e mime_type
input.imagesfotos de referência extras
parameters.sizeWIDTHxHEIGHT
parameters.qualitylow, medium, high ou auto
parameters.n1

O pedido inteiro precisa ficar abaixo de 1 MiB, porque o Base64 embutido entra nessa conta. O número de amostras tem de ser 1, e a API sempre devolve um PNG opaco, então leia as dimensões reais no arquivo baixado.

Aqui está a função:

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"]  # link assinado: vale cerca de uma hora, baixe agora
    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)

A URL assinada do arquivo vale cerca de uma hora e o arquivo fica guardado por 24 horas, segundo a mesma documentação, então baixe assim que a tarefa der certo. Nossa conferência de 28 de outubro de 2026 usou o prompt da capa de chuva amarela num JPEG de 1024 pixels da modelo base e devolveu um PNG de 1024x1536. O script manda um cabeçalho User-Agent: o padrão do Python foi recusado com HTTP 403 na nossa execução, e incluir o cabeçalho resolveu.

Três trocas de look que rodamos

As três trocas partiram da mesma foto sintética: uma mulher de camiseta branca de gola careca e calça jeans azul-escura, num estúdio cinza-claro liso, gerada em 1024x1536 e qualidade medium nas nossas execuções de 28 de outubro de 2026.

A troca 1 pediu um vestido slip de cetim vermelho, com alças finas, que cai até a metade da panturrilha. O vestido saiu, e pose, rosto, cabelo e fundo ficaram iguais. Os tênis brancos viraram sandálias de tiras brancas sem que a gente pedisse.

A troca 2 pediu um blazer de lã verde-escuro sobre uma camisole de seda creme, com calça reta preta. As três peças apareceram, e os tênis brancos ficaram.

A troca 3 pediu uma blusa de manga comprida listrada na horizontal em azul-marinho e branco, com um coração vermelho bordado pequeno no peito esquerdo. As listras e o coração ficaram no peito esquerdo; o jeans azul-escuro e os tênis brancos ficaram.

Quatro retratos de estúdio: a camiseta branca e o jeans originais, um vestido slip de cetim vermelho, um blazer verde-escuro e uma blusa listrada
Original e três trocas de look só com texto. Mesma pose, rosto e fundo de estúdio em todas.

Toda pessoa e cena aqui é sintética, e rodamos cada prompt uma vez, então cada imagem é uma amostra.

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

Uma foto da peça como segunda referência

Para chegar mais perto, envie a peça como segunda imagem. Colocamos a foto da pessoa primeiro, um vestido slip de cetim vermelho em flat-lay em segundo e usamos input.images com este prompt: "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."

O vestido chegou ao chão, perto do comprimento da foto em flat-lay. A versão só com texto do mesmo vestido parou na metade da panturrilha. Na nossa amostra única, a foto da peça trouxe o comprimento que as palavras deixaram solto.

Três painéis: um vestido slip vermelho em flat-lay, o mesmo vestido na modelo chegando ao chão e uma versão só com texto terminando na metade da panturrilha
Esquerda: a foto da peça que enviamos. Meio: com duas imagens, o vestido segue o comprimento da foto. Direita: o mesmo vestido descrito só em palavras.

Onde o resultado desvia

O desvio apareceu nas partes que ficaram fora do prompt: a troca do vestido slip mudou os sapatos, e o prompt citava só o vestido. Confira rosto, mãos, barra, sapatos e qualquer estampa no tamanho real antes de mostrar o resultado a um cliente. Não testamos peça com logo estampado, a estampa exata de uma foto de produto nem mais de duas imagens.

Quando uma API dedicada de provador encaixa melhor

Uma API dedicada de provador recebe a pessoa e a peça como entradas separadas. A página "Generate Virtual Try-On Images" do Vertex AI, do Google (última atualização em 26 de outubro de 2026; conferida em 28 de outubro de 2026), diz: "You provide an image of a person and an image of a clothing product." A mesma página lista personImage e productImages como campos Base64, um sampleCount de 1 a 4 e o ID de modelo virtual-try-on-001. Ela também traz um aviso de que a documentação do Vertex AI não é mais atualizada.

Escolha esse tipo de endpoint quando a foto da peça for a fonte da verdade e você precisar de várias amostras por pedido. Escolha a edição do GPT-Image 2 quando um único fluxo para trocas de look e outras edições importar mais do que amostras por chamada.

A página de preços da OpenAI (conferida em 28 de outubro de 2026) diz que o gpt-image-2 é cobrado por tokens: a página lista tarifas por token e nenhuma tabela por imagem, e aponta para uma calculadora no guia de geração de imagens. O preço atual da OmniaKey está na página de preços.

Um modelo de prompt para trocar o look

Use a forma que funcionou nas nossas execuções: nomeie a peça primeiro e depois trave a pessoa e o cenário.

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.

  • Peça: uma frase com cor, tecido e comprimento. "A red satin slip dress with thin straps that falls to mid-calf" deu uma troca clara.
  • Travas: pose, rosto, cabelo, corpo, fundo e luz. Liste tudo explicitamente no prompt.
  • Fechamento: "Photorealistic, no text, no logos." Nossos prompts terminaram assim.
  • Sapatos: nomeie se precisam ficar, por exemplo "keep the white sneakers". A troca do vestido slip mudou o calçado quando ele ficou de fora.

Acrescente uma segunda imagem quando o comprimento importar mais do que as palavras: pessoa primeiro, peça em segundo, e cite "the first image" e "the second image" no prompt, como fizemos. Para a ordem geral dos prompts, veja o guia de prompts do GPT Image 2.

Perguntas frequentes

Existe um endpoint dedicado de provador virtual na API do GPT Image 2?

Não. A página do modelo na OmniaKey (conferida em 28 de outubro de 2026) lista texto para imagem e edição de imagem. Nas nossas execuções, um provador foi uma edição com um prompt de texto e uma segunda imagem opcional.

Posso enviar uma foto da peça?

Sim, como segunda imagem de referência em input.images. Na nossa execução de 28 de outubro de 2026, ela mudou o comprimento do vestido para acompanhar a foto em flat-lay.

O rosto fica igual?

Nas nossas três trocas e na execução com duas referências, ficou, no olho. Confira cada resultado no tamanho real antes de mostrar.

Cerca de uma hora, segundo a documentação da API de imagens da OmniaKey conferida em 28 de outubro de 2026, e o arquivo fica guardado por 24 horas. Baixe assim que a tarefa der certo.

Qual tamanho devo pedir?

Passe size como WIDTHxHEIGHT, por exemplo 1024x1536, e leia as dimensões reais no PNG baixado. Nossas execuções usaram 1024x1536 na qualidade medium.

Comece com uma foto e um prompt de look. A página do GPT-Image 2 cobre o modelo; os preços atuais ficam à parte.

Modelos deste artigo

API de provador virtualGPT Image 2edição de imagemtroca de lookAPI

Artigos relacionados

Artigos recentes