Руководство
Интерфейс генерации изображений
Параметры запросов генерации изображений, ограничения размеров и правила ответов
Интерфейс генерации изображений
Общие соглашения (базовый адрес, аутентификация, структура ответа, ограничение частоты запросов) см. в разделе Аутентификация и базовые соглашения.
Создание изображения
/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Параметры ответа
| Параметр | Тип | Описание |
|---|---|---|
created | integer | Время генерации (Unix-секунды) |
model | string | Некоторые модели возвращают ID фактически выполненной модели |
data | array | Список результатов генерации |
data[].url | string | Адрес изображения; присутствует при возврате в виде URL, может быть краткосрочным подписанным адресом |
data[].b64_json | string | Данные изображения в Base64; присутствует при возврате в виде Base64 |
data[].size | string | Некоторые модели возвращают фактический размер сгенерированного изображения |
size | string | Поле верхнего уровня — фактический размер генерации, например 1024x1024, 1376x768 |
quality | string | Поле верхнего уровня — фактический уровень качества, например auto, low |
output_format | string | Поле верхнего уровня — фактический формат вывода, например png |
background | string | Поле верхнего уровня — способ обработки фона, например auto, opaque |
moderation | string | Поле верхнего уровня — уровень модерации содержимого; возвращается некоторыми моделями |
usage | object | Расход для изображений; для изображение-в-изображение дополнительно учитываются токены входного изображения |
Один запрос может вернуть только 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 | Ответ / причина | Действие |
|---|---|---|
400 | Model name not specified, model name cannot be empty | В теле запроса отсутствует model |
400 | invalid_parameter (param=size) | Используйте размер, поддерживаемый текущей моделью |
400 | unknown_parameter (param=response_format) | Удалите это поле и используйте формат возврата по умолчанию |
400 | InvalidParameter / upstream_error | Вышестоящая модель отклонила размер, число пикселей или другие параметры; скорректируйте согласно message |
400 | invalid_parameter (param=n) | Измените на n=1 |
400 | image is required (code=convert_request_failed) | В запросе изображение-в-изображение отсутствует референсное изображение; добавьте image согласно примеру ниже |
400 | n must be an integer between 1 and 128 (code=invalid_request) | n вне диапазона; измените на 1–128 |
429 | credit_balance_exhausted / insufficient_quota | Недостаточно баланса на текущем канале; выберите другой доступный канал или обратитесь в поддержку платформы |
401 | Invalid token | API Key отсутствует, указан неверно или истёк |
500 | {"error":{"code":"convert_request_failed","message":"not supported model for image generation, only imagen models are supported"}} | Текущая модель не поддерживает интерфейс генерации изображений; используйте модель изображений с поддержкой этого интерфейса |
503 | model_not_found / No available channel | В текущей группе нет доступного канала для этой модели; выберите модель того же типа |
Полное описание см. в разделе Коды ошибок и диагностика.
Изображение в изображение (редактирование изображений)
/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>.
