modelos

OpenAI: GPT Image 2.5 Flare

Markdown · JSON

OpenAI: GPT Image 2.5 Flare

O GPT Image 2.5 Flare gera e edita imagens a partir de texto e referências, com foco na criação visual quotidiana rápida. Suporta tamanhos personalizados, fundos transparentes, máscaras e níveis de qualidade até max para esboços, ilustrações e peças de campanha.

Sobre o modelo

Esta descrição apresenta as capacidades do modelo. As entradas, saídas e opções disponíveis no Ailoot para o método selecionado estão indicadas abaixo.

O GPT Image 2.5 Flare é a edição de geração e edição de imagens da OpenAI posicionada para trabalho quotidiano rápido e de alta qualidade. Aceita texto e imagens e devolve resultados em imagem. Utilize-o para esboços visuais, ilustrações, conceitos de produto e tarefas criativas recorrentes em que um briefing precisa de se transformar rapidamente numa imagem utilizável. O Flare é separado do Sunburst, cujo posicionamento destaca a precisão de edição. Escolha o Flare para criação rotineira de imagens e o Sunburst quando a edição precisa for a prioridade.

Comece pelo tema principal, ação, ambiente, composição e tratamento visual. Para uma ilustração de campanha, peça um ciclista a atravessar uma pequena ponte com luz quente de fim de tarde, silhueta marcante e céu livre para texto posterior. Um briefing conciso de exploração pode deixar em aberto decisões estéticas; um briefing de produção deve identificar os pormenores e o posicionamento importantes. Os fluxos diretos de geração e edição permitem instruções com até 32 000 caracteres e um a dez resultados, sendo útil comparar algumas variações em função da mesma finalidade.

A edição pode receber até dezasseis imagens de referência. Atribua a cada referência uma função clara, em vez de esperar que o modelo decida se uma imagem representa a identidade do tema, o cenário ou o estilo. Uma máscara pode orientar a alteração de uma região; com múltiplas imagens, aplica-se à primeira. A imagem e a máscara precisam de formato e dimensões correspondentes e a máscara tem de conter um canal alfa. O guia exige que a origem e a máscara tenham menos de 50 MB. Uma máscara é uma orientação, e não uma promessa de preservação exata dos limites, por isso indique tanto a alteração desejada como o que deve permanecer reconhecível.

O Flare suporta qualidade low, medium, high, xhigh, max e automática, com auto como predefinição. Uma qualidade inferior pode servir um esboço visual rápido; as definições superiores podem ser comparadas para o detalhe de uma peça final. A qualidade é independente do tamanho e da compressão de saída. Os tamanhos padrão incluem 1024 × 1024, 1536 × 1024 e 1024 × 1536, com dimensões automáticas ou personalizadas também disponíveis. Escolha a orientação em função do posicionamento final e do espaço útil da cena.

A largura e a altura personalizadas têm de ser múltiplos de dezasseis, sem qualquer lado acima de 3840 píxeis. A proporção permitida vai de 1:3 a 3:1 e a área total tem de ser de pelo menos 655 360 e no máximo 8 294 400 píxeis. As quatro condições aplicam-se em conjunto. O guia identifica resoluções acima de 2560 × 1440 como experimentais. Utilize um enquadramento válido e adequado à composição e inclua no briefing quaisquer pormenores sensíveis ao recorte, em vez de tratar uma resolução maior como melhoria automática da composição.

O formato do resultado é PNG por predefinição, com alternativas JPEG e WebP. JPEG e WebP permitem compressão entre 0 e 100. Para um fundo transparente, selecione PNG ou WebP; também são suportados fundos opacos e automáticos. Uma peça transparente pode ser colocada numa composição posterior, enquanto uma imagem opaca inclui o seu próprio fundo. Selecione formato, fundo e compressão de acordo com a necessidade real de entrega e guarde o ficheiro concluído com o briefing e as definições escolhidas.

O fabricante documenta geração e edições diretas de imagem, além de uma ferramenta conversacional de imagem que pode manter resultados selecionados para alterações seguintes. Nesse fluxo, a ação pode ser automática, geração forçada ou edição forçada quando uma imagem está no contexto. O streaming pode mostrar até três imagens parciais antes do resultado final. Estas pré-visualizações representam progresso, e não entregas concluídas adicionais. Para trabalho iterativo, continue a partir da imagem escolhida e descreva uma alteração visível, como deslocar um objeto ou ajustar o tratamento de cor. A interface do fabricante também suporta processamento em lote.

Examine as letras, o posicionamento dos objetos, os pormenores do tema e a composição da imagem no tamanho previsto. O GPT Image pode continuar a ter dificuldades com posicionamento exato de texto, composições estruturadas e identidade visual repetida entre gerações. Mantenha uma variação aceite como referência seguinte e restrinja a edição posterior ao problema importante. A função de geração quotidiana do Flare é útil para uma sequência clara de briefing, alternativas visuais, seleção e aperfeiçoamento, com a peça final avaliada em relação à finalidade criativa real.

Ailoot · Imagens POST /v1/images/generations gpt-image-2.5-flare

gpt-image-2.5-flare

OpenAI /gpt-image-2.5-flare

Introdução

O GPT Image 2.5 Flare gera e edita imagens a partir de texto e referências, com foco na criação visual quotidiana rápida. Suporta tamanhos personalizados, fundos transparentes, máscaras e níveis de qualidade até max para esboços, ilustrações e peças de campanha.

Entradas aceites
Texto
Resultados
Imagens

Disponível no Ailoot · entradas e métodos

Ailoot · Imagens POST /v1/images/generations
Entrada
text
Saída
image
Formato de saída
Ficheiro de imagem
CampoTipoRequisitoValores e limitesPredefinição
CampomodelTipostringRequisitoObrigatórioValores e limites
gpt-image-2.5-flare
Predefinição—
CampopromptTipostringRequisitoObrigatórioValores e limites
Comprimento mínimo: 1
Predefinição—
CamponTipointegerRequisitoOpcionalValores e limites
Mínimo: 1
Predefinição1
Camporesponse_formatTipostringRequisitoOpcionalValores e limites
url, b64_json
Predefinição—
CampostreamTipobooleanRequisitoOpcionalValores e limitesPredefiniçãofalse
CamposizeTipostringRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
CampoqualityTipostringRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
CampobackgroundTipostringRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
Campooutput_formatTipostringRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
Campooutput_compressionTipointegerRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
CampomoderationTipostringRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
Campoinput_fidelityTipostringRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
CampostyleTipostringRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
Campopartial_imagesTipointegerRequisitoOpcionalValores e limites
Depende do modelo
Predefinição—
Combinações de materiais de entrada

Texto para imagem · Obrigatório: prompt

Parâmetros e ciclo de vida do método
ParâmetroContrato
Parâmetromaterial_typesContratotext
ParâmetrorequiredContratomodel, prompt
Parâmetrooptional_controlsContratonull
Parâmetrocontent_typeContratoapplication/json

Ciclo de vida: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · task_id efetivamente devolvido ou registo na biblioteca de multimédia

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

As estruturas dos métodos e os ID são exatos; a capacidade do fornecedor é distinta da admissão dos pedidos.

Tarifários

Tarifas dos métodos Ailoot

Ailoot ImagensPOST /v1/images/generations
Texto de entrada
0,005 US$ / 1K
Entrada, imagem
0,008 US$ / 1K tokens
Saída, imagem
0,03 US$ / 1K tokens

O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →

Exemplos de pedidos

Ailoot · Imagens

curlPython SDKNode.js SDK
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
export AILOOT_API_KEY
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 image brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-image-2.5-flare", "prompt": ""}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
from openai import OpenAI
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")

f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Set your actual UTF-8 image brief file")
request={'model': 'gpt-image-2.5-flare', 'prompt': ''}
request["prompt"]=f.read_text(encoding="utf-8")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.images.generate(**request)
Path("sdk-result.txt").write_text(str(result),encoding="utf-8")
save_images([{"b64_json":getattr(item,"b64_json",None),"url":getattr(item,"url",None)} for item in result.data])
import OpenAI from "openai";
import { readFileSync, writeFileSync } from "node:fs";
const key=process.env.AILOOT_API_KEY;
if(!key) throw new Error("Set your actual Ailoot API key");
const client=new OpenAI({baseURL:"https://api.ailoot.ai/v1",apiKey:key,maxRetries:0});
const request={"model": "gpt-image-2.5-flare", "prompt": ""};
if(!process.env.AILOOT_PROMPT_FILE)throw new Error("Set your actual UTF-8 image brief file");
request.prompt=readFileSync(process.env.AILOOT_PROMPT_FILE,"utf8");
const result=await client.images.generate(request);
writeFileSync("sdk-result.json",JSON.stringify(result,null,2));
if(!result.data?.length) throw new Error("No completed images");
for(let index=0;index<result.data.length;index++) {
  const item=result.data[index];let encoded=item.b64_json,uri=item.url||"",raw;
  if(!encoded && uri.startsWith("data:image/")) {
    const comma=uri.indexOf(",");if(comma<0 || !uri.slice(0,comma).includes(";base64")) throw new Error("Unsupported image data URI");
    encoded=uri.slice(comma+1);
  }
  if(encoded) {
    if(encoded.length%4!==0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(encoded)) throw new Error("Invalid Base64");
    raw=Buffer.from(encoded,"base64");
  } else if(uri) {
    const u=new URL(uri,"https://api.ailoot.ai");
    if(u.protocol!=="https:" || u.username || u.password) throw new Error("Invalid returned URL");
    const owned=u.origin==="https://api.ailoot.ai" && u.pathname.startsWith("/v1/media/assets/") && u.pathname.endsWith("/content");
    const response=await fetch(u,{headers:owned?{Authorization:"Bearer "+key}:{},redirect:"manual"});
    if(!response.ok) throw new Error("Image content download failed: "+response.status);
    raw=Buffer.from(await response.arrayBuffer());
  } else throw new Error("Image has neither bytes nor URL");
  if(!raw.length) throw new Error("Empty image result");
  const ext=raw.subarray(0,4).equals(Buffer.from([137,80,78,71]))?"png":raw[0]===255&&raw[1]===216?"jpg":raw.toString("ascii",0,4)==="RIFF"&&raw.toString("ascii",8,12)==="WEBP"?"webp":raw.toString("utf8").trimStart().startsWith("<svg")||raw.toString("utf8").trimStart().startsWith("<?xml")?"svg":"bin";
  writeFileSync(`image-${index}.${ext}`,raw);
}
console.log("Every returned image saved; sdk-result.json retains complete metadata");

Receber e guardar os resultados

Ailoot · Imagens

Descarregue cada imagem devolvida ou guarde o respetivo conteúdo Base64

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Guardar todos os resultados concluídos

Guarde cada imagem concluída; obtenha cada URL devolvido ou descodifique o respetivo conteúdo Base64.

Guarde todos os itens de dados. Descodifique cada b64_json ou obtenha todos os URL assinados devolvidos. Escolha a extensão do ficheiro a partir do MIME/dos bytes reais.

Se for necessário verificar a resposta original

Se o resultado de uma geração ou edição de imagem requerer verificação, guarde o operation_id/X-Client-Request-ID original e as informações do resultado devolvidas. Recupere os resultados existentes que lhe pertencem através da biblioteca de multimédia, usando valores task_id ou asset_id reais. Não volte a enviar o pedido de geração/edição nem construa um URL de consulta periódica a partir de operation_id.

Campos da resposta
CampoTipo
CampocreatedTipointeger
Campodata[].urlTipostring
Campodata[].b64_jsonTipobase64 string
CampousageTipoobject
Erros e passos seguintes
RespostaCondiçãoPasso seguinte
Resposta400 · invalid_request_errorCondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidosPasso seguinteCorrija os campos indicados antes de um novo pedido de criação.
Respostaserver_errorCondiçãoA resposta devolvida indica que a operação ou o resultado requer verificaçãoPasso seguinteGuarde o ID original da operação/tarefa devolvido, os cabeçalhos do pedido e a resposta; continue a consultar essa operação original através das consultas suportadas. Não volte a enviar o pedido de criação.

Aliases

Aliases do modelo

Ailoot gpt-image-2.5-flare
Ailoot Ultra gpt-image-2.5-flare, openai/gpt-image-2.5-flare

Aliases dos caminhos dos métodos

/v1/images

IDs de chamada relacionados

openai/gpt-image-2.5-flare, gpt-image-2.5-flare, gpt-image-2.5-flare

Ailoot Ultra · Imagens POST /v1/images/generations gpt-image-2.5-flare

gpt-image-2.5-flare

OpenAI /gpt-image-2.5-flare
ID do modelo
  • gpt-image-2.5-flare
  • openai/gpt-image-2.5-flare

Introdução

O GPT Image 2.5 Flare gera e edita imagens a partir de texto e referências, com foco na criação visual quotidiana rápida. Suporta tamanhos personalizados, fundos transparentes, máscaras e níveis de qualidade até max para esboços, ilustrações e peças de campanha.

Entradas aceites
Texto
Resultados
Imagens

Disponível no Ailoot · entradas e métodos

Ailoot Ultra · Imagens POST /v1/images/generations
Entrada
text
Saída
image
CampoTipoRequisitoValores e limitesPredefinição
CampomodelTipostringRequisitoObrigatórioValores e limites
gpt-image-2.5-flare
Predefinição—
CampopromptTipostringRequisitoObrigatórioValores e limites
Comprimento máximo: 32 000
Predefinição—
CamposizeTipostringRequisitoOpcionalValores e limites
Condições: Utilize auto ou WIDTHxHEIGHT com ambas as dimensões divisíveis por 16. O lado maior tem, no máximo, 3,840 píxeis e o tamanho total, no máximo, 8,300,000 píxeis.
Predefiniçãoauto
CampobackgroundTipostringRequisitoOpcionalValores e limites
transparent, opaque, auto
Predefiniçãoauto
CampomoderationTipostringRequisitoOpcionalValores e limites
low, auto
Condições: Utilize auto para a moderação normal de conteúdo.
Predefinição—
CamponTipointegerRequisitoOpcionalValores e limites
Mínimo: 1
Máximo: 10
Predefinição1
CampoqualityTipostringRequisitoOpcionalValores e limites
auto, high, medium, low
Predefiniçãoauto
Campooutput_compressionTipointegerRequisitoOpcionalValores e limites
Mínimo: 0
Máximo: 100
Condições: Aplica-se à saída JPEG e WebP; envie o valor inteiro documentado.
Predefinição100
Campooutput_formatTipostringRequisitoOpcionalValores e limites
webp, png, jpeg
Predefiniçãopng
CampostreamTipobooleanRequisitoOpcionalValores e limites
false
Condições: Esta rota devolve uma única resposta JSON concluída.
Predefiniçãofalse
Parâmetros e ciclo de vida do método
ParâmetroContrato
Parâmetrocontent_typeContratoapplication/json
ParâmetrorequiredContratoprompt, model
Parâmetromaterial_typesContratotext
ParâmetrooptionalContratosize, background, moderation, n, quality, output_compression, output_format, stream
ParâmetroconditionsContratoUm fundo transparente exige PNG ou WebP., A compressão de saída aplica-se a JPEG ou WebP., O método selecionado gera a partir de texto. Os controlos de edição e transmissão em fluxo descritos para o fabricante são capacidades separadas.

Ciclo de vida: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · task_id efetivamente devolvido ou registo na biblioteca de multimédia

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Tarifários

Cálculo do custo final

As tarifas apresentadas permitem estimar o custo antes da geração. O montante final cobrado é calculado a partir do custo registado para a geração original. A duração medida do resultado e as quantidades previstas não correspondem à quantidade final faturável.

As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.

Modo rápido
Não especificado Quando o modo rápido está selecionado
Modo flex
Não especificado Quando o modo flex está selecionado
Esforço máximo de raciocínio
Não especificado Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)

Tarifas estimadas para comparação

Preços por configuração

Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.

ConfiguraçãoTabela de tarifasQuantidade previstaCusto
ConfiguraçãoTarifas base por tokenTabela de tarifasTarifa baseQuantidade prevista—Custo
Entrada · Tokens de entrada · Estimativa apenas para comparação — / 1K tokens
Saída · Tokens de saída · Estimativa apenas para comparação — / 1K tokens
Entrada · Leitura da cache · Estimativa apenas para comparação — / 1K tokens
Entrada · Escrita na cache · Estimativa apenas para comparação — / 1K tokens
Entrada · Escrita na cache, 1 hora · Estimativa apenas para comparação — / 1K tokens
ConfiguraçãoCusto estimado de geraçãoTabela de tarifas—Quantidade previstaestimativa para uma geraçãoCusto
Saída · Custo estimado de geração · Estimativa apenas para comparação $0.24576 estimativa antes da geração

Esta estimativa não é um encargo adicional nem uma tarifa fixa para a geração concluída.

O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →

Exemplos de pedidos

Ailoot Ultra · Imagens

curl
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'prompt': 'A cute baby sea otter', 'model': 'gpt-image-2.5-flare', 'size': '1024x1024', 'n': 1, 'background': 'auto', 'moderation': 'auto', 'output_format': 'png'}

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT

Receber e guardar os resultados

Ailoot Ultra · Imagens

Descarregue cada imagem devolvida ou guarde o respetivo conteúdo Base64

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Outras leituras de conteúdo
Ler os recursos existentes de que é titular
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
Guardar todos os resultados concluídos

Guarde cada imagem concluída; obtenha cada URL devolvido ou descodifique o respetivo conteúdo Base64.

Conserve a resposta completa e os cabeçalhos, todos os resultados efetivamente produzidos, os identificadores originais devolvidos e todos os campos de utilização. Recupere a operação original sem voltar a enviar o pedido de criação.

Se for necessário verificar a resposta original

Guarde o X-Client-Request-ID devolvido para reconciliação. Consulte apenas os valores task_id/asset_id efetivamente devolvidos ou a sua biblioteca de multimédia; nunca construa um URL de tarefa a partir do ID da operação e nunca volte a enviar o pedido de criação.

Campos da resposta
CampoTipo
CampocreatedTipo
Campodata[].urlTipo
Campodata[].b64_jsonTipo
CampousageTipo

Aliases

Aliases do modelo

Ailoot gpt-image-2.5-flare
Ailoot Ultra gpt-image-2.5-flare, openai/gpt-image-2.5-flare

Aliases dos caminhos dos métodos

/v1/images

IDs de chamada relacionados

openai/gpt-image-2.5-flare, gpt-image-2.5-flare, gpt-image-2.5-flare

Ailoot Ultra · Imagens POST /v1/images/generations openai/gpt-image-2.5-flare

openai/gpt-image-2.5-flare

OpenAI /openai/gpt-image-2.5-flare
ID do modelo
  • gpt-image-2.5-flare
  • openai/gpt-image-2.5-flare

Introdução

O GPT Image 2.5 Flare gera e edita imagens a partir de texto e referências, com foco na criação visual quotidiana rápida. Suporta tamanhos personalizados, fundos transparentes, máscaras e níveis de qualidade até max para esboços, ilustrações e peças de campanha.

Entradas aceites
Texto · Imagens
Resultados
Imagens

Disponível no Ailoot · entradas e métodos

Ailoot Ultra · Imagens POST /v1/images/generations
Entrada
text, image
Saída
image
CampoTipoRequisitoValores e limitesPredefinição
CampomodelTipostringRequisitoObrigatórioValores e limites
openai/gpt-image-2.5-flare
Predefinição—
CampopromptTipostringRequisitoObrigatórioValores e limites
Comprimento mínimo: 1
Predefinição—
Campoaspect_ratioTipostringRequisitoOpcionalValores e limites
1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9, auto
Predefinição—
CampoqualityTipostringRequisitoOpcionalValores e limites
auto, low, medium, high, xhigh, max
Predefinição—
CampobackgroundTipostringRequisitoOpcionalValores e limites
auto, transparent, opaque
Predefinição—
CamponTipointegerRequisitoOpcionalValores e limites
Mínimo: 1
Máximo: 10
Predefinição—
Campoinput_referencesTipoarrayRequisitoOpcionalValores e limites
Número mínimo de elementos: 0
Número máximo de elementos: 16
Predefinição—
Campooutput_compressionTipointegerRequisitoOpcionalValores e limites
Mínimo: 0
Máximo: 100
Predefinição—
CampoproviderTipoobjectRequisitoOpcionalValores e limitesPredefinição—
Parâmetros e ciclo de vida do método
ParâmetroContrato
Parâmetrocontent_typeContratoapplication/json
ParâmetrorequiredContratomodel, prompt
Parâmetromaterial_typesContratotext, image

Ciclo de vida: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · task_id efetivamente devolvido ou registo na biblioteca de multimédia

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Tarifários

Cálculo do custo final

As tarifas apresentadas permitem estimar o custo antes da geração. O montante final cobrado é calculado a partir do custo registado para a geração original. A duração medida do resultado e as quantidades previstas não correspondem à quantidade final faturável.

As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.

Modo rápido
Não especificado Quando o modo rápido está selecionado
Modo flex
Não especificado Quando o modo flex está selecionado
Esforço máximo de raciocínio
Não especificado Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)

Tarifas estimadas para comparação

Preços por configuração

Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.

ConfiguraçãoTabela de tarifasQuantidade previstaCusto
ConfiguraçãoTarifas base por tokenTabela de tarifasTarifa baseQuantidade prevista—Custo
Entrada · Tokens de entrada · Estimativa apenas para comparação — / 1K tokens
Saída · Tokens de saída · Estimativa apenas para comparação — / 1K tokens
Entrada · Leitura da cache · Estimativa apenas para comparação — / 1K tokens
Entrada · Escrita na cache · Estimativa apenas para comparação — / 1K tokens
Entrada · Escrita na cache, 1 hora · Estimativa apenas para comparação — / 1K tokens
ConfiguraçãoCusto estimado de geraçãoTabela de tarifas—Quantidade previstaestimativa para uma geraçãoCusto
Saída · Custo estimado de geração · Estimativa apenas para comparação $0.24576 estimativa antes da geração

Esta estimativa não é um encargo adicional nem uma tarifa fixa para a geração concluída.

O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →

Exemplos de pedidos

Ailoot Ultra · Imagens

curl
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'model': 'openai/gpt-image-2.5-flare', 'prompt': 'a red panda astronaut floating in space, studio lighting'}

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT

Receber e guardar os resultados

Ailoot Ultra · Imagens

Descarregue cada imagem devolvida ou guarde o respetivo conteúdo Base64

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Outras leituras de conteúdo
Ler os recursos existentes de que é titular
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
Guardar todos os resultados concluídos

Guarde cada imagem concluída; obtenha cada URL devolvido ou descodifique o respetivo conteúdo Base64.

Conserve a resposta completa e os cabeçalhos, todos os resultados efetivamente produzidos, os identificadores originais devolvidos e todos os campos de utilização. Recupere a operação original sem voltar a enviar o pedido de criação.

Se for necessário verificar a resposta original

Guarde o X-Client-Request-ID devolvido para reconciliação. Consulte apenas os valores task_id/asset_id efetivamente devolvidos ou a sua biblioteca de multimédia; nunca construa um URL de tarefa a partir do ID da operação e nunca volte a enviar o pedido de criação.

Campos da resposta
CampoTipo
CampocreatedTipo
Campodata[].urlTipo
Campodata[].b64_jsonTipo
CampousageTipo

Aliases

Aliases do modelo

Ailoot gpt-image-2.5-flare
Ailoot Ultra gpt-image-2.5-flare, openai/gpt-image-2.5-flare

Aliases dos caminhos dos métodos

/v1/images

IDs de chamada relacionados

openai/gpt-image-2.5-flare, gpt-image-2.5-flare, gpt-image-2.5-flare

FAQ · OpenAI: GPT Image 2.5 Flare
Que entradas e resultados estão disponíveis?

POST /v1/images/generations · gpt-image-2.5-flare: text → image

POST /v1/images/generations · gpt-image-2.5-flare: text → image

POST /v1/images/generations · openai/gpt-image-2.5-flare: text, image → image

Que campos utiliza o pedido?

POST /v1/images/generations · gpt-image-2.5-flare: model, prompt, n, response_format, stream

POST /v1/images/generations · gpt-image-2.5-flare: model, prompt, size, background, moderation, n, quality, output_compression, output_format, stream

POST /v1/images/generations · openai/gpt-image-2.5-flare: model, prompt, aspect_ratio, quality, background, n, input_references, output_compression, provider

Que limites se aplicam?

POST /v1/images/generations · gpt-image-2.5-flare: n.minimum: 1

POST /v1/images/generations · gpt-image-2.5-flare: prompt.maximum_length: 32000; n.minimum: 1; n.maximum: 10; output_compression.minimum: 0; output_compression.maximum: 100

POST /v1/images/generations · openai/gpt-image-2.5-flare: n.minimum: 1; n.maximum: 10; output_compression.minimum: 0; output_compression.maximum: 100

Mais detalhes

Ligue o Ailoot ao Claude Code, OpenCode, Hermes ou à sua aplicação.

A empresa e a sua carteira de projetos

A empresa e a sua carteira de projetos: milhões de clientes; vendas mensais na ordem dos milhares de milhões.

Compre tokens com desconto.

Desconto por subscrição para trabalho regular. Códigos promocionais — até 50% na compra de tokens.

Subscrição
Escolha um plano com desconto para os pedidos regulares.
Código promocional até 50%
Introduza o código na compra. O preço é recalculado conforme a campanha em vigor.
Custos no histórico
O modelo, os tokens e o montante são guardados para cada pedido.

Escolher subscrição · Ver preços dos modelos

Ligue a API ao produto que vende.

SaaS, aplicações e bots — ao abrigo da oferta e do contrato de licença Ailoot. Para revenda, peça uma licença de revendedor.

Aplicação comercial
Integre geração de texto, imagens, vídeo e som nas funcionalidades pagas do seu serviço.
Licença de revendedor
Envie uma descrição do projeto e do modelo de acesso. Peça condições escritas de utilização e revenda.
Documentos no site
A oferta, o contrato de licença e a política de tratamento de dados estão disponíveis antes da ligação.

Pedir licença de revendedor · Oferta e contrato de licença