Pular para o conteúdo
Toda a documentação

Referência

POST /v1/images/generations

Crie imagens a partir de um prompt de texto, no formato da OpenAI: o images.generate do SDK funciona só trocando a URL base. As imagens voltam na resposta, e não guardamos nenhuma cópia.

Verificado em 6 de novembro de 2026

Criar uma imagem

import base64
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://nokeep.ai/v1",
    api_key=os.environ["NOKEEP_API_KEY"],
)

result = client.images.generate(
    model="z-image-turbo",
    prompt="A lighthouse on a rocky coast at dusk",
    size="1024x1024",
)

with open("picture.webp", "wb") as f:
    f.write(base64.b64decode(result.data[0].b64_json))

Modelos

ModeloBom paraPor imagemTamanhoPrompt mais longo
chromaUm modelo aberto que lê prompts longos e detalhados.$0.03Até 1280 pixels por lado, devolvida a 1,5x7.500 caracteres
z-image-turboO mais rápido aqui, para imagens fotográficas em volume.$0.03Até 1280 pixels por lado7.500 caracteres
wai-illustriousAnime e ilustração.$0.03Até 1280 pixels por lado1.500 caracteres
krea-2-turboMantém personagens conhecidos e um estilo da casa, em 1K ou 2K.$0.08 (1K), $0.12 (2K)1:1, 3:2, 16:9, 21:9, 9:16, 2:3, 3:4, 4:55.000 caracteres

GET /v1/models lista os mesmos preços e limites.

Requisição

CampoRecebeO que faz
modelObrigatórioUm dos ids de modelo acima.
promptObrigatórioO que desenhar, enviado ao modelo como foi escrito. Acima do limite do modelo é recusado, nunca cortado.
sizeWIDTHxHEIGHT ou autoO tamanho da imagem. O padrão é 1024x1024. Veja Tamanhos.
aspect_ratio1:1, 3:2, 2:3, 4:3, 3:4, 4:5, 16:9, 9:16, 21:9Uma proporção, no lugar de size. Ela vence quando as duas são enviadas.
n1 a 4Quantas imagens. Você paga pelas que voltam.
response_formatb64_json ou urlO padrão é b64_json. url devolve uma URL data:, não um link para um arquivo guardado.
output_formatwebp, png ou jpegO padrão é webp.
resolution1K ou 2KSó krea-2-turbo, e o preço depende dela.
seedUm número inteiroO mesmo seed e prompt geram uma imagem parecida. Com n, cada imagem soma um ao seed.
negative_promptTextoO que deixar de fora. A verificação de limites rígidos não o lê, e nem todo modelo o considera.
steps1 a 50Mais passos demoram mais. Nem todo modelo usa.
cfg_scaleAcima de 0, até 20Quão de perto seguir o prompt. Nem todo modelo usa.

Qualquer outro campo, como quality, style ou user, é descartado e informado no cabeçalho x-nokeep-ignored. Um campo que carrega uma imagem, como image, é recusado com 400 unsupported_input: estes modelos trabalham só com texto.

Tamanhos

  • Um lado pode ter no mínimo 256 pixels, e o lado mais longo no máximo três vezes o mais curto. Fora disso é 400 unsupported_size.
  • Um tamanho maior é ajustado para caber em 1280 pixels por lado, mantendo a proporção. O 1536x1024 da OpenAI é desenhado em 1280x848, por exemplo.
  • chroma devolve 1,5x os pixels em que desenha, sem custo extra, então 1024x1024 volta como 1536x1536.
  • krea-2-turbo desenha em proporções nomeadas, então um size vira a mais próxima.
  • O size ou aspect_ratio da resposta sempre diz o que você recebeu.

Resposta

JSON
{
  "created": 1793960000,
  "data": [
    {
      "b64_json": "UklGRk…"
    }
  ],
  "model": "z-image-turbo",
  "output_format": "webp",
  "size": "1024x1024",
  "usage": {
    "images": 1,
    "nokeep_credits": 30
  }
}

Os cabeçalhos x-nokeep-credits e x-nokeep-balance dizem quanto a chamada custou e quanto sobrou, como no chat. Uma imagem é cobrada quando volta. Uma imagem com falha ou recusada não custa nada.

O que os modelos geram

Conteúdo adulto está no escopo nos modelos que o host marca como sem censura. z-image-turbo não é um deles, e foi o que mais se conteve nos nossos testes, então pode voltar mais suave do que o pedido.

Quatro limites rígidos continuam: conteúdo sexual envolvendo menores, conteúdo sexual de pessoas reais, dano em massa e alvo sendo uma pessoa real. Um prompt que cruza um deles recebe 422 hard_limit e não custa nada. A verificação lê o prompt; veja Limites rígidos. O host de um modelo também pode recusar uma requisição ou segurar um resultado: isso é 422 content_refused, também sem custo.

Limites e erros

Uma chave pode fazer 60 requisições de imagem por minuto, dentro de suas 120 requisições no total. Passando disso vem 429 rate_limited com Retry-After. A página de erros lista todos os códigos.

Para testar seu código sem gastar nada, envie sk-nokeep-test como chave. Ela roda todas as verificações acima e responde com uma imagem de um pixel.

curl
curl https://nokeep.ai/v1/images/generations \
  -H "Authorization: Bearer $NOKEEP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "chroma",
  "prompt": "A lighthouse on a rocky coast at dusk",
  "n": 2,
  "aspect_ratio": "16:9",
  "output_format": "png",
  "seed": 42
}'