Перейти к основному содержанию
LocoPal AiLocoPal Ai
Подключение к APIИнтерфейсы моделей и генерации

Руководство

Интерфейс генерации изображений

Параметры запросов генерации изображений, ограничения размеров и правила ответов

Показать Markdown

Интерфейс генерации изображений

Общие соглашения (базовый адрес, аутентификация, структура ответа, ограничение частоты запросов) см. в разделе Аутентификация и базовые соглашения.

Создание изображения

POST/v1/images/generations

Способ аутентификации

Authorization: Bearer <API_KEY>, используется платформенный API Key, созданный на странице «Ключи API» в консоли.

Тело запроса · application/json

Prop

Type

Ограничения моделей изображений на размеры, количество и формат возврата различаются; сначала проверьте через /v1/models и ориентируйтесь на ошибки валидации параметров, возвращаемые интерфейсом.

Пример запроса

Сначала проверьте через /v1/models ID модели изображений, доступной текущему ключу, и подставьте его в model. size должен входить в набор значений, поддерживаемых этой моделью — минимальное число пикселей у разных моделей сильно различается, и при неверном значении сразу вернётся ошибка параметров, а не произойдёт тихое понижение.

Ответ может быть в виде адреса или в виде Base64 — в зависимости от модели и канала.

Запрос

curl -X POST "https://locopalai.com/v1/images/generations" \
  -H "Authorization: Bearer $LOCOPAL_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "model": "从 /v1/models 选择的图片模型 ID",
  "prompt": "白色桌面上的一个红苹果,柔和自然光,产品摄影",
  "size": "当前模型支持的尺寸",
  "n": 1
}
JSON

Параметры ответа

ПараметрТипОписание
createdintegerВремя генерации (Unix-секунды)
modelstringНекоторые модели возвращают ID фактически выполненной модели
dataarrayСписок результатов генерации
data[].urlstringАдрес изображения; присутствует при возврате в виде URL, может быть краткосрочным подписанным адресом
data[].b64_jsonstringДанные изображения в Base64; присутствует при возврате в виде Base64
data[].sizestringНекоторые модели возвращают фактический размер сгенерированного изображения
sizestringПоле верхнего уровня — фактический размер генерации, например 1024x1024, 1376x768
qualitystringПоле верхнего уровня — фактический уровень качества, например auto, low
output_formatstringПоле верхнего уровня — фактический формат вывода, например png
backgroundstringПоле верхнего уровня — способ обработки фона, например auto, opaque
moderationstringПоле верхнего уровня — уровень модерации содержимого; возвращается некоторыми моделями
usageobjectРасход для изображений; для изображение-в-изображение дополнительно учитываются токены входного изображения

Один запрос может вернуть только url или только b64_json — в зависимости от модели и канала; ориентируйтесь на фактические поля ответа, а при наличии обоих предпочитайте url.

Тело ответа

Возврат адреса (форма url):

{
  "created": 1789567052,
  "data": [
    {
      "size": "2048x2048",
      "url": "https://media.example.com/image-public-id.jpeg"
    }
  ],
  "model": "Doubao-Seedream-4.5"
}

Возврат Base64 (форма b64_json, фрагмент):

{
  "background": "auto",
  "created": 1789071752,
  "data": [
    { "b64_json": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAADwf7zU..." }
  ]
}

Адрес, возвращаемый в форме url, может быть краткосрочным подписанным адресом — своевременно сохраните или зарегистрируйте его; данные в форме b64_json декодируйте самостоятельно и храните надлежащим образом. Не предполагайте, что все модели изображений принимают response_format или одинаковые размеры. На практике gpt-image-1-mini отклоняет response_format, а Doubao-Seedream-4.5 сейчас требует не менее 3686400 пикселей: 2048x2048 принимается, а 1024x1024 возвращает ошибку параметров.

Ответ с ошибкой

{
  "error": {
    "message": "当前图片模型不支持请求的尺寸",
    "type": "invalid_request_error",
    "code": "invalid_parameter",
    "param": "size"
  }
}
HTTPОтвет / причинаДействие
400Model name not specified, model name cannot be emptyВ теле запроса отсутствует model
400invalid_parameter (param=size)Используйте размер, поддерживаемый текущей моделью
400unknown_parameter (param=response_format)Удалите это поле и используйте формат возврата по умолчанию
400InvalidParameter / upstream_errorВышестоящая модель отклонила размер, число пикселей или другие параметры; скорректируйте согласно message
400invalid_parameter (param=n)Измените на n=1
400image is required (code=convert_request_failed)В запросе изображение-в-изображение отсутствует референсное изображение; добавьте image согласно примеру ниже
400n must be an integer between 1 and 128 (code=invalid_request)n вне диапазона; измените на 1–128
429credit_balance_exhausted / insufficient_quotaНедостаточно баланса на текущем канале; выберите другой доступный канал или обратитесь в поддержку платформы
401Invalid tokenAPI Key отсутствует, указан неверно или истёк
500{"error":{"code":"convert_request_failed","message":"not supported model for image generation, only imagen models are supported"}}Текущая модель не поддерживает интерфейс генерации изображений; используйте модель изображений с поддержкой этого интерфейса
503model_not_found / No available channelВ текущей группе нет доступного канала для этой модели; выберите модель того же типа

Полное описание см. в разделе Коды ошибок и диагностика.

Изображение в изображение (редактирование изображений)

POST/v1/images/edits

Генерация нового изображения на основе существующего: загрузите одно или несколько референсных изображений, и модель по prompt перерисует сцену, сменит стиль или выполнит локальную перерисовку.

Тело запроса · multipart/form-data

Prop

Type

Запрос обязательно должен содержать референсное изображение; без него интерфейс сразу вернёт ошибку параметров, не обращаясь к модели.

Пример запроса

Изображение-в-изображение использует multipart/form-data: передавайте поля по одному через -F, а не через -d. Референсное изображение загружается как image=@путь/к/файлу.

Если нужно несколько референсных изображений, запишите поле в виде массива image[] и повторите его. Здесь нет JSON-тела запроса; Content-Type устанавливается автоматически curl -F, не задавайте его вручную.

Изображение в изображение

curl -X POST "https://locopalai.com/v1/images/edits" \
  -H "Authorization: Bearer $LOCOPAL_API_KEY" \
  -F "model=从 /v1/models 选择的图片模型 ID" \
  -F "prompt=把这张照片改成柔和的水彩画风格" \
  -F "size=1024x1024" \
  -F "image=@./reference.png"

При нескольких референсных изображениях повторите поле:

  -F "image[]=@./reference-a.png" \
  -F "image[]=@./reference-b.png"

Тело ответа

Та же структура, что и в разделе Создание изображения; изображение возвращается в виде b64_json или url:

{
  "background": "opaque",
  "created": 1789651524,
  "data": [
    { "b64_json": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAADwf7zU..." }
  ],
  "output_format": "png",
  "quality": "low",
  "size": "1024x1024",
  "usage": {
    "input_tokens": 1041,
    "input_tokens_details": { "image_tokens": 1032, "text_tokens": 9 },
    "output_tokens": 439,
    "total_tokens": 1480
  }
}

usage.input_tokens_details.image_tokens отражает расход на референсные изображения: чем больше изображений или чем больше их размер, тем выше число входных токенов.

Передача референсного изображения по публичному адресу

Модели с поддержкой входных референсных изображений также позволяют передавать их в JSON-теле POST /v1/images/generations через images; элементы — публичные адреса изображений https://:

curl -X POST "https://locopalai.com/v1/images/generations" \
  -H "Authorization: Bearer $LOCOPAL_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "model": "从 /v1/models 选择的图片模型 ID",
  "prompt": "把这张照片改成柔和的水彩画风格",
  "images": ["https://example.com/reference.png"]
}
JSON

Референсное изображение должно напрямую загружаться сервером; если адрес недействителен или требует входа, запрос завершится ошибкой загрузки на вышестоящей стороне. Структура ответа совпадает с разделом Создание изображения.

Связь с библиотекой материалов

Сгенерированные изображения не попадают в библиотеку материалов автоматически. Если позже видеозадача должна использовать изображение как референсное, сначала добавьте его через интерфейсы библиотеки материалов и дождитесь статуса Active, затем ссылайтесь на него через asset://<asset_id>.

Эта страница была полезной?

На этой странице