Генерирует изображения по текстовому описанию и может переработать загруженные картинки по вашему заданию. Цена зависит от разрешения: 1K - 5 ₽, 2K - 5 ₽, 4K - 10 ₽.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Kling Image O3 генерирует изображения по текстовому описанию. Если загрузить исходные картинки, нейросеть использует их как референсы и перерабатывает по заданию - например, меняет фон, стиль или добавляет новые детали.
Два режима работы:
Режим определяется автоматически: если передать изображения в images, нейросеть работает как редактор. Без изображений - генерирует с нуля.
За один вызов можно получить от 1 до 10 изображений в разрешении до 4K.
Каждый вызов создаёт асинхронную операцию. После запуска нужно отдельно проверять статус по id.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус операции.{
"tool": "kling-image-o3",
"input": {
"...": "..."
}
}
tool - slug нейросети, всегда "kling-image-o3".input - параметры запуска. Все поля передаются напрямую внутри этого объекта.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
prompt | string | Да | Текстовое описание: что нужно сгенерировать или как переработать загруженные изображения. От 3 до 4000 символов. |
images | string[] (url) | Нет | Массив внешних URL изображений-референсов. Если передать хотя бы одно изображение, нейросеть переходит в режим редактирования. Максимум 10 файлов. Допустимые расширения: .jpg, .jpeg, .png, .webp. |
aspect_ratio | enum | Да | Соотношение сторон результата. Варианты: auto, 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3, 21:9. Если выбрано auto и изображения не переданы, используется 16:9. |
resolution | enum | Да | Разрешение результата. Варианты: 1k (1K), 2k (2K), 4k (4K). Влияет на цену. |
num_images | number | Да | Сколько изображений сгенерировать за один запрос. От 1 до 10. Итоговая цена умножается на это значение. |
output_format | enum | Да | Формат выходного файла. Варианты: png (PNG), jpeg (JPEG), webp (WebP). |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "kling-image-o3",
"input": {
"prompt": "Уютная кофейня на углу европейской улочки, утренний свет, акварельный стиль",
"aspect_ratio": "16:9",
"resolution": "2k",
"num_images": 2,
"output_format": "png"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'kling-image-o3',
input: {
prompt: 'Уютная кофейня на углу европейской улочки, утренний свет, акварельный стиль',
aspect_ratio: '16:9',
resolution: '2k',
num_images: 2,
output_format: 'png',
},
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'kling-image-o3',
'input': {
'prompt': 'Уютная кофейня на углу европейской улочки, утренний свет, акварельный стиль',
'aspect_ratio': '16:9',
'resolution': '2k',
'num_images': 2,
'output_format': 'png',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "kling-image-o3",
"input": {
"prompt": "Замени фон на закат над морем, сохрани человека и одежду без изменений",
"images": [
"https://cdn.example.com/source-image-1.jpg"
],
"aspect_ratio": "auto",
"resolution": "2k",
"num_images": 1,
"output_format": "png"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'kling-image-o3',
input: {
prompt: 'Замени фон на закат над морем, сохрани человека и одежду без изменений',
images: [
'https://cdn.example.com/source-image-1.jpg',
],
aspect_ratio: 'auto',
resolution: '2k',
num_images: 1,
output_format: 'png',
},
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'kling-image-o3',
'input': {
'prompt': 'Замени фон на закат над морем, сохрани человека и одежду без изменений',
'images': [
'https://cdn.example.com/source-image-1.jpg',
],
'aspect_ratio': 'auto',
'resolution': '2k',
'num_images': 1,
'output_format': 'png',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "kling-image-o3",
"input": {
"prompt": "Объедини стиль и палитру этих изображений в одну иллюстрацию: персонаж из первого, фон из второго",
"images": [
"https://cdn.example.com/source-image-1.jpg",
"https://cdn.example.com/source-image-2.jpg"
],
"aspect_ratio": "1:1",
"resolution": "4k",
"num_images": 3,
"output_format": "jpeg"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'kling-image-o3',
input: {
prompt: 'Объедини стиль и палитру этих изображений в одну иллюстрацию: персонаж из первого, фон из второго',
images: [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/source-image-2.jpg',
],
aspect_ratio: '1:1',
resolution: '4k',
num_images: 3,
output_format: 'jpeg',
},
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'kling-image-o3',
'input': {
'prompt': 'Объедини стиль и палитру этих изображений в одну иллюстрацию: персонаж из первого, фон из второго',
'images': [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/source-image-2.jpg',
],
'aspect_ratio': '1:1',
'resolution': '4k',
'num_images': 3,
'output_format': 'jpeg',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "kling-image-o3",
"cost": 10,
"balance_after": 495,
"created_at": "2026-03-13T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "kling-image-o3",
"cost": 10,
"created_at": "2026-03-13T12:00:00Z",
"completed_at": "2026-03-13T12:00:32Z",
"result": {
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/kling-image-o3/image-1.jpg",
"https://storage.bratuha.ru/results/kling-image-o3/image-2.jpg"
]
},
"error_message": null
}
После создания операции сохраните id из ответа и проверяйте статус отдельным запросом:
GET /api/v1/operations/{id}
curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/op_uuid-123
const status = await fetch(
'https://bratuha.ru/api/v1/operations/op_uuid-123',
{
headers: { Authorization: 'Bearer brth_ваш_ключ' },
},
)
const result = await status.json()
После завершения Kling Image O3 возвращает:
{
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/kling-image-o3/image-1.jpg",
"https://storage.bratuha.ru/results/kling-image-o3/image-2.jpg"
]
}
type - всегда "image".urls - массив ссылок на готовые изображения. Количество элементов соответствует значению num_images в запросе.Если операция завершилась с ошибкой, result будет null, а текст ошибки вернётся в error_message.
Цена зависит от разрешения и количества изображений. Ставка за одно изображение умножается на значение num_images.
| Разрешение | Ставка за 1 изображение |
|---|---|
1K (1k) | 5 ₽ |
2K (2k) | 5 ₽ |
4K (4k) | 10 ₽ |
Примеры:
Цена не зависит от соотношения сторон, формата выходного файла или режима работы (генерация или редактирование).
POST /api/v1/operations не идемпотентен: повторный запрос создаёт новую операцию.queued, затем проверяете статус по id.images разрешены только внешние http/https URL с расширениями .jpg, .jpeg, .png, .webp.HEIC/HEIF, которые поддерживаются при загрузке файлов в UI, в Public API по URL не принимаются.aspect_ratio выбрано auto, результат будет в формате 16:9.