Pular para o conteúdo principal
A geração de imagens na Venice é síncrona. Envie um prompt para /image/generate e receba sua imagem na mesma resposta, seja como base64 dentro de JSON ou como binário cru quando return_binary for true.

Endpoints

Passo 1: Envie uma requisição de geração

O dimensionamento é específico do modelo. Alguns modelos aceitam width e height explícitos; alguns expõem aspect_ratio; e modelos com tiers de resolução expõem aspect_ratio mais valores de resolution como 1K, 2K ou 4K.
qwen-image, qwen-image-3, qwen-image-3-pro, qwen-image-2-1-turbo e qwen-image-2-1-pro não aceitam mais width ou height. Enviar qualquer um deles retorna 400 com “width and height are no longer supported for this model. Use aspect_ratio instead.” Verifique model_spec.constraints em GET /models?type=image antes de escolher os campos de dimensionamento.
Exemplo de dimensionamento por pixels:
Exemplo de dimensionamento por aspect ratio:
Exemplo de dimensionamento por tier de resolução:
O mesmo padrão se aplica a outros modelos com tier de resolução:
Use Modelos de imagem ou a API de Models para confirmar quais campos de dimensionamento cada modelo aceita. Resposta (200):
O array images contém dados de imagem codificados em base64. Decodifique o primeiro item para salvá-lo ou exibi-lo. timing.total é a duração total da requisição em milissegundos.

Passo 2: Decodifique e salve a imagem

Passo 3: Retorne binário em vez de JSON (opcional)

Se você quer que o corpo da resposta seja o próprio arquivo de imagem, defina return_binary: true. Isso é útil quando você quer fazer streaming ou salvar a imagem diretamente sem decodificação de base64.
Quando return_binary é true, o corpo da resposta é dado bruto image/jpeg, image/png ou image/webp com base no format que você solicitou.
variants é suportado apenas quando return_binary é false.

Passo 4: Liste estilos de imagem disponíveis (opcional)

Se quiser usar style_preset, primeiro busque os estilos disponíveis em /image/styles:
Este endpoint é público e não requer uma chave de API. Resposta (200):
Os nomes dos estilos ficam dentro de data, não no nível superior — leia response.data em vez de iterar diretamente sobre o objeto da resposta. Depois, passe um desses valores na sua requisição de geração:
Use o endpoint de estilos quando quiser nomes exatos de presets em vez de adivinhá-los.

Parâmetros da requisição

A validação é específica do modelo. Verifique Modelos de imagem e a API de Models antes de depender de um parâmetro em vários modelos.

Opções específicas de modelo

Geração em alta resolução

Alguns modelos de imagem suportam aspect_ratio sem um tier resolution selecionável. Por exemplo, qwen-image-2 aceita aspect ratio e mapeia para dimensões de saída específicas do modelo:
Outros modelos de imagem suportam aspect_ratio mais um tier resolution. Por exemplo, gpt-image-2, nano-banana-2 e nano-banana-pro suportam 1K, 2K e 4K:
Use Modelos de imagem para ver quais modelos suportam resoluções maiores e como são precificados.

Intensidade de LoRA

Alguns modelos de imagem aplicam LoRAs adicionais. lora_strength (integer, de 0 a 100) define a intensidade com que eles são aplicados e só afeta os modelos que os utilizam. A API não aceita arquivos LoRA personalizados, e nenhum endpoint lista os LoRAs que um modelo usa. lora_strength é o único controle de LoRA.

Conteúdo adulto e safe mode

safe_mode controla se o conteúdo adulto na saída da geração é borrado. O padrão é true, então imagens classificadas como adultas voltam borradas, a menos que você envie safe_mode: false:
Imagens adultas (NSFW) sem desfoque estão disponíveis para todos os usuários da API. Você não precisa de uma assinatura Pro, e a configuração de filtro adulto no app Venice não afeta as solicitações de imagem feitas pela API. Alguns modelos de imagem são projetados especificamente para geração adulta / sem censura e combinam bem com safe_mode: false. Exemplos na página de preços incluem lustify-sdxl, lustify-v7 e lustify-v8. Veja Modelos de imagem e Preços para a lista atual e os custos por modelo. Para edição de imagens existentes, o modelo de edição padrão é firered-image-edit. As políticas de conteúdo variam conforme o modelo de edição; se você precisa de edição sem censura, use qwen-edit-uncensored via Edição de imagem. Quando safe_mode está habilitado e o modelo retorna saída borrada ou moderada, inspecione os cabeçalhos de resposta x-venice-is-blurred e x-venice-is-content-violation se precisar detectar isso programaticamente.
Usando um app de terceiros? Imagens adultas permanecem borradas, a menos que o app envie safe_mode: false, ou moderation: "low" no endpoint compatível com OpenAI (veja abaixo).

Presets de estilo

Se o modelo selecionado suportar, style_preset permite guiar a saída sem reescrever todo o prompt. Você pode buscar nomes de preset válidos em Image Styles:
Veja Image Styles para a lista de estilos atual.

Referências de estilo

style_references vai um passo além de style_preset: em vez de um preset nomeado, ele condiciona a geração a uma ou mais imagens de referência. Cada entrada tem um image e um strength opcional:
O suporte varia por modelo. Verifique GET /models?type=image:
  • model_spec.supportsStyleReferences é true apenas nos modelos que aceitam o campo.
  • model_spec.constraints.maxStyleReferences é o número de entradas que o modelo aceita.
  • model_spec.constraints.supportsStyleReferenceStrength indica se strength tem algum efeito.
Enviar style_references para um modelo sem suporte retorna 400, assim como exceder o limite desse modelo ou enviar uma referência corrompida, inacessível ou grande demais. Alguns modelos cobram uma taxa de referência de estilo por imagem retornada, além do preço base da imagem, por exemplo Krea v2 Large e Krea v2 Medium. A taxa só é cobrada pelas imagens efetivamente retornadas. Veja Modelos de imagem para os preços base por imagem.

Resultados parciais de variantes

Com variants maior que 1, variantes individuais podem ser rejeitadas pela política de conteúdo do provedor enquanto as demais são geradas com sucesso. Nesse caso, o endpoint ainda retorna 200 com menos imagens do que você solicitou:
  • Quando uma ou mais variantes são omitidas, o corpo JSON inclui content_policy_violation_count, o número de variantes omitidas.
  • O cabeçalho de resposta x-venice-content-violation-count traz a mesma contagem.
  • x-venice-is-content-violation e x-venice-is-blurred descrevem as imagens que foram retornadas.
Se todas as variantes solicitadas forem rejeitadas, nenhuma imagem é retornada e a requisição falha com 422. Não presuma que len(images) == variants; compare o tamanho do array com variants e, quando presente, verifique content_policy_violation_count.

Endpoint compatível com OpenAI

Se você já está usando SDKs de imagem da OpenAI ou integrações DALL-E existentes, a Venice também suporta POST /images/generations. Ele oferece um formato de requisição mais simples, mas com menos recursos do que o endpoint nativo da Venice. Requisição:
size se aplica apenas a modelos dimensionados por pixels, que têm um widthHeightDivisor acima de 1 em model_spec.constraints de GET /models?type=image. A maioria dos modelos, incluindo qwen-image-2, dimensiona a saída por proporção e resolução e ignora size. Alguns parâmetros da OpenAI são aceitos por compatibilidade com SDKs, mas são ignorados (n é restrito a 1): Não há controle de tier nesta rota: não existe campo resolution ou aspect_ratio, e quality não pode aumentar nem reduzir a cobrança. Para modelos GPT Image com tiers, use o endpoint nativo /image/generate quando precisar escolher quality, resolution ou aspect_ratio. Use a rota compatível com OpenAI para migrações mais rápidas. Use /image/generate quando precisar de opções específicas da Venice, como cfg_scale, style_preset, style_references, variants ou respostas binárias.

Controlando o embaçamento de conteúdo adulto em /images/generations

O endpoint compatível com OpenAI não aceita safe_mode. Enviá-lo retorna 400 com Unrecognized key(s) in object: 'safe_mode'. Use o parâmetro moderation no estilo OpenAI:
safe_mode funciona apenas no endpoint nativo POST /image/generate. moderation funciona apenas no endpoint compatível com OpenAI POST /images/generations. A mesma divisão se aplica à transparência: /image/generate usa transparent_background: true, enquanto /images/generations usa o parâmetro no estilo OpenAI background: "transparent". Ambos exigem um formato de saída png ou webp e um modelo com supportsTransparentBackground: true. Veja Imagens com fundo transparente.

Dicas de prompting

  1. Comece com o sujeito, depois adicione meio, iluminação, composição e atmosfera.
  2. Coloque detalhes a evitar em negative_prompt em vez de sobrecarregar o prompt principal.
  3. Reutilize seed ao iterar para comparar mudanças de prompt sem alterar totalmente a composição.
  4. Mantenha o dimensionamento ciente do modelo. Alguns modelos usam width/height, alguns usam aspect_ratio e modelos com tier de resolução usam aspect_ratio mais resolution.
  5. Use variants durante a exploração e depois volte para uma única saída quando tiver travado a direção.

Erros

Quando safe_mode está habilitado (ou moderation é auto), inspecione cabeçalhos de resposta como x-venice-is-blurred e x-venice-is-content-violation se precisar detectar resultados de moderação programaticamente.

Modelos disponíveis

Veja Modelos de imagem para a lista de modelos atual, preços e suporte a recursos.