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.
Nesta página
- O que uma edição faz e não faz por um provador virtual
- Envie a foto e o prompt do look
- Três trocas de look que rodamos
- Uma foto da peça como segunda referência
- Onde o resultado desvia
- Quando uma API dedicada de provador encaixa melhor
- Um modelo de prompt para trocar o look
- Perguntas frequentes
- Existe um endpoint dedicado de provador virtual na API do GPT Image 2?
- Posso enviar uma foto da peça?
- O rosto fica igual?
- Quanto tempo duram os links do resultado?
- Qual tamanho devo pedir?
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:
| Campo | Valor |
|---|---|
model | gpt-image-2 |
type | image |
operation | edit |
input.prompt | a instrução do look |
input.image | a foto de origem como objeto data e mime_type |
input.images | fotos de referência extras |
parameters.size | WIDTHxHEIGHT |
parameters.quality | low, medium, high ou auto |
parameters.n | 1 |
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:
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.

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.

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.
Quanto tempo duram os links do resultado?
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
Artigos relacionados
Guia de prompts do GPT Image 2: estrutura, exemplos e imagens reais
Oito prompts e nove imagens reais: o que o GPT Image 2 acertou no detalhe, o que ele acrescentou e como corrigir.
Alternativa à API do FLUX Kontext: edite imagens com o GPT Image 2
Edição por instrução, sem máscara: o código da requisição, uma cadeia de três edições que rodamos em 28 de outubro de 2026 e o que cada passo preservou.
API de remoção de objetos: apague o que sobra na foto com o GPT Image 2
Uma instrução por objeto bastou para estas três remoções. Veja o código da requisição, os resultados em tamanho real e onde a edição ainda não dá para confiar.
Artigos recentes
- Clapping Cat Meme AI: faça seu pet bater palmas com imagem para vídeo
- Guia de prompts do Kling 3.0: estrutura, exemplos e clipes reais
- Guia de prompts do MiniMax H3: estrutura, exemplos e clipes reais
- Claude Haiku 5.5 vs Sonnet 5.5: programação, custo e velocidade
- Guia de prompts do Wan 3.0: estrutura, exemplos e clipes reais
