gpt-image-1, o mais recente gpt-image-2, e os modelos da série nano-banana / nano-banana-2-lite / nano-banana-2 / nano-banana-pro que são acessados pela mesma interface.
Este documento apresenta principalmente o fluxo de uso da API OpenAI Images Edits, permitindo que utilizemos facilmente a funcionalidade de edição de imagens da OpenAI.
申请流程
Para usar a API OpenAI Images Edits, primeiro acesse o Painel de Controle da Ace Data Cloud para obter seu Token de API, que deve ser guardado para uso futuro.
Se você ainda não estiver logado ou registrado, será redirecionado automaticamente para a página de login, onde será convidado a se registrar e logar; após a conclusão, você será retornado automaticamente à página atual.
Um Token de API é suficiente para acessar todos os serviços da plataforma, não sendo necessário solicitar um para cada serviço. A primeira solicitação oferece um crédito gratuito, permitindo uma experiência sem custo; quando o crédito estiver baixo, você pode recarregar o saldo geral no painel de controle.
📘 Documentação completa: OpenAI Images Edits API →
GPT-Image-2 模型
gpt-image-2 apresenta melhorias significativas em relação ao gpt-image-1 no cenário de edição de imagens:
- Estrutura mais estável: ao trocar pele, cores ou fundo, quase não há destruição do layout e composição da imagem original.
- Texto preservado com mais precisão: imagens que contêm texto, como infográficos, pôsteres e menus, mantêm o texto claro e legível após a edição.
- Suporte a URL direta: além do tradicional upload de arquivos
multipart/form-data,gpt-image-2também suporta a entrada de URL de imagem via JSON, sem a necessidade de baixar a imagem localmente, sendo ideal para integração em pipelines de servidor. - Suporte a base64 direta: de acordo com o padrão oficial, o campo
imagetambém pode receber base64 diretamente (data:image/png;base64,...ou base64 puro), permitindo a edição de imagens locais sem a necessidade de upload prévio para um servidor de imagens. - Suporte a reedição em alta resolução: é possível enviar uma imagem original de 1K e solicitar saída em 2K / 4K através do parâmetro
size, com o modelo ampliando a imagem durante o processo de edição.
线路变体(:official / :reverse)
gpt-image-2 utiliza a linha padrão por padrão. É possível escolher explicitamente a linha através do sufixo do nome do modelo:
gpt-image-2:official: canal oficial, estável e em conformidade. Os custos são determinados pelo Token de entrada de texto, Token de entrada de imagem durante a edição e Token de saída de imagem, sendo o valor final calculado com base no uso real retornado na resposta; o preço exibido na página para qualidade/tamanho é apenas uma estimativa; com base no pacote de uso máximo, o preço para o cliente é cerca de 80% do preço padrão oficial da OpenAI. O serviço automaticamente tolera falhas entre canais disponíveis, com capacidade e custos baseados nos resultados reais retornados.gpt-image-2:reverse: completamente equivalente aogpt-image-2padrão, com melhor custo-benefício, mantendo o mesmo preço.
:official计费公式 Custo final = Token de entrada de texto + Token de entrada de imagem (apenas edição) + Token de saída de imagem. O preço exibido dequality × sizeé uma estimativa antes da solicitação, e a cobrança real é baseada nousageda resposta bem-sucedida. Por exemplo,low,1024x1024geralmente custa cerca de 0.0505 Créditos para a saída de imagem, além de um pequeno número de Tokens de entrada; ao usarauto, o modelo pode escolher uma qualidade mais alta, e o limite de pré-autorização será verificado de forma conservadora em um nível mais alto.
支持的 size 取值
A validação de formato para o size na interface de edição é a mesma da interface de geração — gpt-image-2 aceita size como auto, vazio ou no formato LARGURAxALTURA, qualquer outra forma resultará em um erro 400. O gpt-image-2 padrão e :reverse cobram de forma unificada por imagem; :official calculará simultaneamente os Tokens de entrada de texto, entrada de imagem de referência e saída de imagem, onde a imagem original, tamanho e qualidade podem influenciar o custo final.
Limites de tamanho: tamanhos personalizados devem ter largura e altura como múltiplos de 16, com lado maior ≤ 3840 e total de pixels ≤ 8.294.400; exceder esses limites resultará em erro 4xx.
Por exemplo: se a imagem original éA seguir, vamos sentir a capacidade de edição do1024x1024esizeé2048x2048, o modelo irá redesenhar e gerar uma imagem 2K de acordo com as instruções de edição; sesizefor3840x2160, a saída será uma imagem 4K em modo paisagem. Ogpt-image-2padrão e:reversetêm a mesma cobrança para os três tamanhos;:officialserá baseado no uso real de Tokens. Omissão do camposizeé equivalente a passar explicitamenteauto:gpt-image-2irá primeiro ler a intenção de tamanho explícita nas instruções, incluindo pixels, proporção, orientação, nível de resolução (por exemplo, 4K / alta resolução) ou nomeação de tela. Quando a intenção de tamanho é identificada, o tamanho específico planejado será adotado; se não houver requisitos de tamanho nas instruções ou se a avaliação automática não for possível, o tamanho da primeira imagem de referência será utilizado. O tamanho final específico será normalizado para múltiplos de 16, respeitando os limites de lado maior e total de pixels antes da submissão da solicitação; para controle absoluto, por favor, passe diretamenteLARGURAxALTURA. Após a conclusão da geração, não haverá tentativas automáticas devido a diferentes pixels de saída, evitando custos de geração duplicados. Sobre o parâmetronA interface de ediçãogpt-image-2suportan > 1: uma única solicitação pode retornar a quantidade correspondente de resultados de edição. Por padrão,gpt-image-2e:reversecobram com base no número de sucessos;:officialcobra com base no uso real de Tokens da resposta total (valores dende 1 a 10). Isso também se aplica agpt-image-1/gpt-image-1.5, bem como às sériesnano-banana/nano-banana-2-lite/nano-banana-2/nano-banana-pro. Observe queresponse_format=b64_jsonsuporta apenasn=1, e paran>1, utilize o retorno padrão de URL. Se algumas imagens falharem na geração, apenas a parte bem-sucedida será retornada e cobrada.
gpt-image-2 através de dois exemplos reais em diferentes ângulos.
Método de chamada um: JSON + URL da imagem (recomendado)
Envie a solicitação diretamente no formatoapplication/json, preenchendo o campo image com a URL de uma imagem, o modelo irá buscar essa imagem e editá-la de acordo com o prompt.
Por exemplo, a imagem original abaixo foi gerada com o gpt-image-2 como um guia de ciências:


Dica: O campoimagetambém suporta a entrada de um array, por exemplo,"image": ["url1", "url2", "url3"], permitindo enviar até 16 imagens de referência ao mesmo tempo, para que o modelo possa considerar várias imagens na edição.
Envio direto em base64: Oimage(e cada item do array) pode ser uma URL ou base64 —data:image/png;base64,...ou base64 puro, adequado para imagens locais que não desejam ser carregadas em um servidor de imagens primeiro. Por exemplo:
Método de chamada dois: JSON + várias imagens de referência
Ogpt-image-2 suporta a referência a várias imagens ao mesmo tempo para gerar o resultado final, por exemplo, combinar várias fotos de produtos em uma única cesta de presentes:
Exemplo de cenário: mudar estilo + manter estrutura
Aqui está outro exemplo, substituindo uma estante de madeira por uma prateleira flutuante moderna, mas mantendo rigorosamente a quantidade e a disposição dos livros em cada prateleira. Imagem original (estante de madeira gerada comgpt-image-2):

task_id: e9544dba-727e-44a2-81e1-223d49869380):

Método de chamada três: multipart/form-data (compatível com OpenAI SDK)
Se você já está usando o SDK oficial do OpenAI Python, o método de uploadmultipart/form-data existente também é aplicável, basta alterar model para gpt-image-2:
OPENAI_BASE_URL deve ser definido como https://api.acedata.cloud/openai, e OPENAI_API_KEY deve ser definido como o token obtido:
Modelos da série Nano Banana
A sérienano-banana também se conecta ao /openai/images/edits no cenário de edição, basta alterar model para qualquer um dos listados na tabela abaixo.
Importante: Faixa de suporte de parâmetros Nano Banana se conecta ao protocolo OpenAI através de uma camada de adaptação, suportando apenas os seguintes parâmetros:model,prompt,image,n.
imagepode ser enviado como arquivo viamultipart/form-data(arquivos locais serão automaticamente convertidos para base64), ou pode ser passado como uma string de URL de imagem diretamente no campo do formulário.- Não suporta parâmetros como
mask,size,response_format, etc.; se preenchidos, serão ignorados.n > 1é suportado (1–10), retornará e cobrará pela quantidade correspondente de resultados de edição.- A estrutura de retorno segue o formato OpenAI (
data[].url), mascreatedé fixo em0, e não retornaráb64_json,revised_promptsempre será igual aopromptoriginal.
Chamada via formulário + URL da imagem

Chamada via formulário + arquivo local
Callback assíncrono
O mecanismo de callback assíncronocallback_url também é eficaz para nano-banana, o fluxo de chamada é idêntico ao de outros modelos, consulte a seção Callback assíncrono abaixo.
Uso básico
Agora você pode usar o código para fazer chamadas, abaixo está um exemplo de chamada usando CURL:authorization, que pode ser selecionado diretamente na lista suspensa. Outro parâmetro é model, model é a categoria do modelo que escolhemos usar no site do OpenAI, aqui temos principalmente 1 tipo de modelo, detalhes podem ser vistos nos modelos que fornecemos. Outro parâmetro é prompt, prompt é a sugestão que inserimos para gerar a imagem. O último parâmetro é image, que é o caminho da imagem a ser editada, a imagem a ser editada é mostrada na figura abaixo:
Dica:image[]pode aparecer várias vezes para enviar várias imagens de referência, por exemplo,-F "image[]=@a.png" -F "image[]=@b.png", os modelos da série GPT Image suportam até 16 imagens (cada uma com no máximo 50MB, nos formatos png/webp/jpg). Exceder a quantidade retornará 400.

OPENAI_BASE_URL, que pode ser definida como https://api.acedata.cloud/openai, e outra variável de credencial OPENAI_API_KEY, cujo valor é obtido a partir de authorization, no Mac OS você pode definir as variáveis de ambiente com o seguinte comando:
gift-basket.png será gerada no diretório atual, o resultado específico é o seguinte:

gpt-image-1 和 gpt-image-2 两种模型,其中 gpt-image-2 是当前推荐使用的模型,详见上文 GPT-Image-2 模型 一节。
异步回调
由于 OpenAI Images Edits API 编辑图片的时间可能相对较长,如果 API 长时间无响应,HTTP 请求会一直保持连接,导致额外的系统资源消耗,所以本 API 也提供了异步回调的支持。 整体流程是:客户端发起请求的时候,额外指定一个callback_url 字段,客户端发起 API 请求之后,API 会立马返回一个结果,包含一个 task_id 的字段信息,代表当前的任务 ID。当任务完成之后,编辑图片的结果会通过 POST JSON 的形式发送到客户端指定的 callback_url,其中也包括了 task_id 字段,这样任务结果就可以通过 ID 关联起来了。
下面我们通过示例来了解下具体怎样操作。
首先,Webhook 回调是一个可以接收 HTTP 请求的服务,开发者应该替换为自己搭建的 HTTP 服务器的 URL。此处为了方便演示,使用一个公开的 Webhook 样例网站 https://webhook.site/,打开该网站即可得到一个 Webhook URL,如图所示:
将此 URL 复制下来,就可以作为 Webhook 来使用,此处的样例为 https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab。
接下来,我们可以设置字段 callback_url 为上述 Webhook URL,同时填入相应的参数,如以下代码所示:
task_id 字段,data 字段包含了和同步调用一样的图片编辑结果,通过 task_id 字段即可实现任务的关联。
错误处理
在调用 API 时,如果遇到错误,API 会返回相应的错误代码和信息。例如:400 token_mismatched:Bad request, possibly due to missing or invalid parameters.400 api_not_implemented:Bad request, possibly due to missing or invalid parameters.401 invalid_token:Unauthorized, invalid or missing authorization token.429 too_many_requests:Too many requests, you have exceeded the rate limit.500 api_error:Internal server error, something went wrong on the server.

