Перейти к основному содержанию
POST
/
v2
/
images
/
generations
Создать генерацию изображения (OpenAI-совместимый API)
curl --request POST \
  --url https://polza.ai/api/v2/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "dall-e-3",
  "prompt": "A white siamese cat sitting on a windowsill",
  "n": 1,
  "size": "auto",
  "quality": "auto",
  "response_format": "url",
  "style": "vivid",
  "output_format": "png",
  "background": "auto",
  "output_compression": 75,
  "user": "user-123"
}
'
import requests

url = "https://polza.ai/api/v2/images/generations"

payload = {
"model": "dall-e-3",
"prompt": "A white siamese cat sitting on a windowsill",
"n": 1,
"size": "auto",
"quality": "auto",
"response_format": "url",
"style": "vivid",
"output_format": "png",
"background": "auto",
"output_compression": 75,
"user": "user-123"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'dall-e-3',
prompt: 'A white siamese cat sitting on a windowsill',
n: 1,
size: 'auto',
quality: 'auto',
response_format: 'url',
style: 'vivid',
output_format: 'png',
background: 'auto',
output_compression: 75,
user: 'user-123'
})
};

fetch('https://polza.ai/api/v2/images/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://polza.ai/api/v2/images/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'dall-e-3',
'prompt' => 'A white siamese cat sitting on a windowsill',
'n' => 1,
'size' => 'auto',
'quality' => 'auto',
'response_format' => 'url',
'style' => 'vivid',
'output_format' => 'png',
'background' => 'auto',
'output_compression' => 75,
'user' => 'user-123'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://polza.ai/api/v2/images/generations"

payload := strings.NewReader("{\n \"model\": \"dall-e-3\",\n \"prompt\": \"A white siamese cat sitting on a windowsill\",\n \"n\": 1,\n \"size\": \"auto\",\n \"quality\": \"auto\",\n \"response_format\": \"url\",\n \"style\": \"vivid\",\n \"output_format\": \"png\",\n \"background\": \"auto\",\n \"output_compression\": 75,\n \"user\": \"user-123\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://polza.ai/api/v2/images/generations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"dall-e-3\",\n \"prompt\": \"A white siamese cat sitting on a windowsill\",\n \"n\": 1,\n \"size\": \"auto\",\n \"quality\": \"auto\",\n \"response_format\": \"url\",\n \"style\": \"vivid\",\n \"output_format\": \"png\",\n \"background\": \"auto\",\n \"output_compression\": 75,\n \"user\": \"user-123\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://polza.ai/api/v2/images/generations")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"dall-e-3\",\n \"prompt\": \"A white siamese cat sitting on a windowsill\",\n \"n\": 1,\n \"size\": \"auto\",\n \"quality\": \"auto\",\n \"response_format\": \"url\",\n \"style\": \"vivid\",\n \"output_format\": \"png\",\n \"background\": \"auto\",\n \"output_compression\": 75,\n \"user\": \"user-123\"\n}"

response = http.request(request)
puts response.read_body
{
  "created": 1589478378,
  "data": [
    {
      "url": "https://oaidalleapiprodscus.blob.core.windows.net/...",
      "b64_json": "iVBORw0KGgoAAAANSUhEUgAAAAUA...",
      "revised_prompt": "A fluffy white siamese cat with blue eyes sitting peacefully on a wooden windowsill..."
    }
  ],
  "usage": {
    "input_units": 1,
    "output_units": 1,
    "duration_seconds": 5,
    "input_tokens": 10,
    "output_tokens": 0,
    "total_tokens": 10,
    "cost_rub": 1.5,
    "cost": 1.5
  }
}
OpenAI-совместимый эндпоинт для генерации изображений. Поддерживает формат запросов GPT image models, DALL-E 3, DALL-E 2.
Этот эндпоинт совместим с OpenAI SDK и подходит для быстрой миграции существующего кода. Если вы разрабатываете новый софт — рекомендуем использовать Media API, который предоставляет единый интерфейс для всех медиа-операций.
Этот эндпоинт доступен по пути /v2/images/generations. При использовании OpenAI SDK с base_url="https://polza.ai/api/v1" запросы автоматически направляются на правильный путь.

Параметры

Обязательные

ПараметрТипОписание
modelstringМодель для генерации (например, gpt-image-1, dall-e-3)
promptstringТекстовое описание изображения

Опциональные

ПараметрТипПо умолчаниюОписание
sizestringautoРазмер изображения
qualitystringautoКачество генерации
response_formatstringurlФормат ответа: url, b64_json
stylestringvividСтиль: vivid, natural (только DALL-E 3)
userstringИдентификатор конечного пользователя

size

Размер генерируемого изображения:
ЗначениеОписание
autoПровайдер сам определит размер (по умолчанию)
256x256Маленький квадрат
512x512Средний квадрат
1024x1024Большой квадрат
1536x1024Горизонтальный
1024x1536Вертикальный
1792x1024Широкий горизонтальный
1024x1792Высокий вертикальный

quality

Качество генерации:
ЗначениеОписание
autoАвтоматический выбор (по умолчанию)
lowНизкое качество (быстрее)
mediumСреднее качество
highВысокое качество
standardСтандартное (для DALL-E)
hdHD качество (для DALL-E 3)

Примеры

curl -X POST "https://polza.ai/api/v2/images/generations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-1",
    "prompt": "Космический пейзаж с планетами",
    "size": "1024x1024",
    "quality": "high"
  }'
from openai import OpenAI

client = OpenAI(
    base_url="https://polza.ai/api/v1",
    api_key="YOUR_API_KEY"
)

response = client.images.generate(
    model="gpt-image-1",
    prompt="Футуристический город на закате",
    size="1792x1024",
    quality="high"
)

print(response.data[0].url)

Поведение при таймауте

Генерация выполняется синхронно с таймаутом 120 секунд.

Успешная генерация (до 120 сек)

Возвращается объект с результатом:
{
  "created": 1706123456,
  "data": [
    {
      "url": "https://cdn.polza.ai/...",
      "revised_prompt": "Улучшенный промпт..."
    }
  ],
  "usage": {
    "input_tokens": 10,
    "output_tokens": 0,
    "total_tokens": 10,
    "cost_rub": 2.50,
    "cost": 2.50
  }
}

Таймаут (более 120 сек)

Если генерация не успевает завершиться за 120 секунд, запрос автоматически переходит в асинхронный режим:
{
  "id": "gen_abc123...",
  "status": "pending",
  "model": "dall-e-3",
  "created": 1706123456
}
Используйте GET /v1/media/{id} для проверки статуса. Рекомендуется polling с интервалом 3-5 секунд.

Статусы генерации

СтатусОписание
pendingВ очереди
processingГенерация выполняется
completedГотово
failedОшибка

Авторизации

Authorization
string
header
обязательно

API ключ передаётся в заголовке: Authorization: Bearer <POLZA_AI_API_KEY>

Тело

application/json
model
string
обязательно

ID модели для генерации изображений

Пример:

"dall-e-3"

prompt
string
обязательно

Текстовое описание изображения для генерации (до 32000 символов для GPT image models, 4000 для dall-e-3)

Пример:

"A white siamese cat sitting on a windowsill"

n
number
по умолчанию:1

Количество генерируемых изображений (1-10, для dall-e-3 только 1)

Требуемый диапазон: 1 <= x <= 10
Пример:

1

size
enum<string>
по умолчанию:auto

Размер генерируемого изображения. auto для GPT image models

Доступные опции:
auto,
256x256,
512x512,
1024x1024,
1536x1024,
1024x1536,
1792x1024,
1024x1792
Пример:

"auto"

quality
enum<string>
по умолчанию:auto

Качество изображения. auto/high/medium/low для GPT image models, hd/standard для DALL-E

Доступные опции:
auto,
low,
medium,
high,
standard,
hd
Пример:

"auto"

response_format
enum<string>
по умолчанию:url

Формат ответа - URL или base64-encoded JSON

Доступные опции:
url,
b64_json
Пример:

"url"

style
enum<string>
по умолчанию:vivid

Стиль изображения (только для dall-e-3)

Доступные опции:
vivid,
natural
Пример:

"vivid"

output_format
enum<string>

Формат выходного изображения (для gpt-image-1)

Доступные опции:
png,
jpeg,
webp
Пример:

"png"

background
enum<string>

Фон изображения: transparent, opaque или auto (для gpt-image-1)

Доступные опции:
transparent,
opaque,
auto
Пример:

"auto"

output_compression
number

Степень сжатия выходного изображения (0-100, для gpt-image-1)

Требуемый диапазон: 0 <= x <= 100
Пример:

75

user
string

Уникальный идентификатор конечного пользователя для отслеживания и предотвращения злоупотреблений

Пример:

"user-123"

Ответ

Успешная генерация изображения. При таймауте (>120 сек) возвращается ImagePendingResponsePresenter с taskId для проверки статуса через GET /v2/media/{id}

created
number
обязательно

Unix timestamp времени создания

Пример:

1589478378

data
object[]
обязательно

Массив сгенерированных изображений

usage
object

Информация об использовании ресурсов