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.
Nesta página
- O que uma remoção por instrução faz
- A requisição
- Três remoções na mesma foto de parque
- O que conferir depois de cada remoção
- O que não testamos
- Um modelo de instrução
- Perguntas frequentes
- Dá para remover uma pessoa de uma foto com uma API?
- O endpoint aceita máscara?
- Quanto tempo duram os links do resultado?
- Qual tamanho devo pedir?
- Uma instrução consegue remover dois objetos?
Uma instrução de texto por objeto bastou no endpoint de edição do GPT-Image 2. Em três execuções feitas em 28 de outubro de 2026, tiramos uma mulher com o cachorro dela, uma lixeira azul e uma pipa vermelha de uma mesma foto de parque, uma frase para cada. Todo vazio ficou combinando com o entorno, e o banco, as árvores e a linha do horizonte continuaram onde estavam.
A chamada envia um prompt e uma imagem de origem e devolve uma foto nova, completa. Abaixo estão o Python que rodamos, os três resultados em tamanho real e as conferências que pegam um preenchimento que é melhor refazer.
O que uma remoção por instrução faz
Você manda uma foto e uma frase. A frase nomeia o objeto, diz o que deve ocupar o lugar dele e lista o que precisa ficar. O modelo redesenha aquela área e devolve uma imagem inteira nova, então não existe uma etapa separada de composição.
A chamada é a mesma tarefa de mídia de qualquer outra edição na OmniaKey: modelo gpt-image-2, type image, operation edit, a foto de origem no campo input image em Base64 e a frase no input prompt. Nos parameters, size vai como WIDTHxHEIGHT e quality aceita low, medium, high ou auto; n precisa ser 1. As duas operações aparecem na página do modelo.
O texto é o comando. "A pipa vermelha pequena no céu" é um trabalho diferente de "aquela coisa vermelha", e um preenchimento como "grama e pedras de calçamento" decide o que ocupa o espaço depois. Nosso guia de prompts do GPT Image 2 mostra a ordem das frases, e o guia da alternativa FLUX Kontext usa o mesmo tipo de instrução no GPT Image 2.
A requisição
Um arquivo Python resolve tudo: codifica a foto, cria a tarefa, consulta até ela terminar e baixa o PNG.
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"] # signed link: valid for about an hour, so download now
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(
"park-base.jpg",
"Remove the blue trash bin completely. Fill its spot with grass and paving stones so it matches the surroundings. Keep everything else exactly the same. Photorealistic, no text, no logos.",
"park-no-bin.png",
size="1536x1024",
)
print("task", task)
Conferimos a função em 28 de outubro de 2026 com outro prompt, uma capa de chuva amarela, num JPEG de 1024 pixels do modelo base, e ela devolveu um PNG 1024x1536.
- A chamada de criação devolve HTTP 202 e um id de tarefa (documentação de imagem da OmniaKey, conferida em 28 de outubro de 2026). Consulte essa tarefa até o status sair de queued ou processing; succeeded significa que os assets estão prontos, e uma tarefa que falhou traz código e mensagem de erro e não é cobrada.
- A URL assinada do asset expira em cerca de uma hora, enquanto o arquivo em si fica guardado por 24 horas. Baixe na hora, com um GET simples que não envia a API key.
- O Base64 inline conta para o limite de 1 MiB por requisição, então reduza a foto do celular antes.
- Envie um cabeçalho
User-Agent: em 28 de outubro de 2026, uma requisição com o User-Agent padrão do Python voltou HTTP 403, e o cabeçalho resolveu. - O size é explícito, então uma foto deitada sai em 1536x1024. O GPT Image devolve sempre um PNG opaco, então leia as dimensões reais do arquivo baixado.
Sobre custo, a página de preços da OpenAI lista o GPT Image 2 a $8.00 por milhão de tokens de imagem de entrada e $30.00 por milhão de tokens de imagem de saída, com as tarifas de lote pela metade (conferido em 28 de outubro de 2026). A página não tem tabela por imagem; o guia de geração de imagens dela tem uma calculadora para uma imagem. O preço atual da OmniaKey está na página de preços.
Três remoções na mesma foto de parque
As quatro imagens saem de um único quadro base: uma alameda de parque urbano em dia de sol, um banco de madeira no centro, uma lixeira de metal azul à esquerda, uma mulher passeando com um cachorrinho marrom na direção da câmera e uma pipa vermelha pequena no alto de um céu limpo. Base e resultados foram feitos em 1536x1024, quality medium, com o GPT Image 2 via OmniaKey em 28 de outubro de 2026; a cena e as pessoas são sintéticas. Mandamos uma frase por objeto e rodamos cada uma uma vez.
| Removido | Instrução enviada | O que voltou |
|---|---|---|
| Mulher e cachorro | "Remove the woman and the small brown dog completely. Fill the path and the grass naturally so they match the surroundings. Keep the bench, the blue bin, the trees, the kite and the sky exactly the same. Photorealistic, no text, no logos." | Mulher e cachorro fora; alameda e grama preenchidas; banco, lixeira, árvores, pipa e céu mantidos |
| Lixeira azul | "Remove the blue trash bin completely. Fill its spot with grass and paving stones so it matches the surroundings. Keep everything else exactly the same. Photorealistic, no text, no logos." | Lixeira fora; o lugar dela ficou com grama e calçamento; a mulher e o cachorro continuaram |
| Pipa vermelha | "Remove the small red kite from the sky. Keep the sky natural and everything else exactly the same. Photorealistic, no text, no logos." | Pipa fora; céu natural; o resto do quadro sem mudança |

Gerado com o GPT-Image 2 via API da OmniaKey em 28 de outubro de 2026, tamanho 1536x1024, qualidade medium.
O segundo quadro perde a mulher e o cachorro enquanto a alameda e a grama se fecham atrás deles, e o banco, a lixeira, as árvores, a pipa e o horizonte ficam. O terceiro tira a lixeira e reconstrói o lugar dela com grama e calçamento, com a mulher e o cachorro ainda no quadro. O quarto limpa a pipa de um céu que segue igual.
O que conferir depois de cada remoção
Leia cada quadro em tamanho real antes de publicar uma remoção.
- A borda do preenchimento e o resto do quadro. Grama, calçamento ou textura de alameda novos sempre encostam no antigo, e o modelo redesenha a imagem inteira, então compare essa emenda e uma margem ao redor do objeto com a foto de origem; um trecho mole, repetido ou borrado aparece primeiro ali.
- Tudo o que encostava no objeto. Uma guia, uma sombra ou um reflexo precisa ser reconstruído junto.
- A lista do que fica, item por item. A remoção 1 manteve banco, lixeira, árvores, pipa e céu; a remoção 2 manteve a mulher e o cachorro. Nomeie cada item e depois procure por ele no resultado.
Publique a remoção quando o preenchimento aguentar em tamanho real e cada item da lista de preservação continuar no lugar. Se o preenchimento parecer um borrão, rode a mesma frase de novo com o material nomeado, por exemplo "grama e pedras de calçamento".
O que não testamos
Não testamos entrada com máscara, cenas cheias nem objetos muito pequenos, então se a sua foto tem multidão, uma fileira de cercas ou uma tira fina como uma guia, planeje uma segunda execução e leia essa borda em tamanho real.
Um modelo de instrução
Remova [o objeto, com o detalhe que o distingue] por completo. Preencha o lugar dele com [material] para que combine com o entorno. Mantenha [o que precisa ficar] exatamente igual. Fotorrealista, sem texto, sem logos.
- O objeto, com o detalhe que o distingue. "A pipa vermelha pequena no céu" é melhor que "a pipa", e diz ao modelo qual pipa você quer quando o quadro tem várias.
- O preenchimento, em materiais. "Grama e pedras de calçamento" dá ao modelo algo para alinhar com o entorno; só "remove" deixa a escolha para ele.
- A lista do que fica. Nomeie o que precisa sobreviver: o banco, a lixeira azul, as árvores, a pipa, o céu.
- O fecho de estilo. "Fotorrealista, sem texto, sem logos" mantém uma foto com cara de foto.
Para trocar a roupa de uma pessoa o mesmo formato funciona, com a peça nomeada como o objeto que muda; o guia de prova virtual percorre esse caso.
Perguntas frequentes
Dá para remover uma pessoa de uma foto com uma API?
Dá, com uma conferida no resultado. Na remoção 1, a mulher e o cachorro dela saíram do quadro numa etapa, e a alameda e a grama foram reconstruídas atrás deles.
O endpoint aceita máscara?
A documentação da OmniaKey descreve uma imagem de origem e um prompt (conferida em 28 de outubro de 2026). Não há campo de máscara descrito, e nenhuma máscara foi testada. Você nomeia o objeto e a posição dele em palavras, em vez de pintar uma região.
Quanto tempo duram os links do resultado?
O link assinado dura cerca de uma hora (documentação da OmniaKey, conferida em 28 de outubro de 2026), enquanto o arquivo em si fica guardado por 24 horas. Baixe assim que a tarefa der succeeded.
Qual tamanho devo pedir?
Passe size como um WIDTHxHEIGHT explícito, por exemplo 1536x1024 para uma foto deitada, e leia as dimensões reais do PNG baixado. O GPT Image devolve sempre um arquivo opaco, então planeje qualquer corte depois do download.
Uma instrução consegue remover dois objetos?
Na remoção 1, uma frase removeu uma mulher e o cachorro dela juntos. Outros pares não foram testados.
Comece pela página do modelo GPT-Image 2 para ver os parâmetros, e confira os preços atuais antes de planejar a próxima remoção.
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.
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.
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.
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
