Создаёт изображения по описанию и редактирует загруженные: меняет детали по заданию или объединяет до 10 картинок в одну сцену. Цена зависит от разрешения: 1K — 10 ₽, 2K — 20 ₽ за изображение.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
FLUX 3 Image рисует изображения по текстовому описанию и правит готовые картинки по заданию. Модель хорошо держит композицию и надписи, а в режиме правки умеет собрать одну сцену из нескольких изображений: например, поставить товар с одного фото в интерьер с другого. Её берут для рекламных макетов, карточек товаров, обложек и иллюстраций.
Режим выбирается сам по запросу:
image_urls не передан или пустой. Модель рисует новое изображение по prompt.image_urls есть хотя бы одна ссылка (до 10). Модель меняет изображения по prompt или объединяет их в одну картинку.Каждый запрос создаёт асинхронную операцию: сразу приходит id и статус queued, а готовое изображение нужно забрать отдельным запросом по этому id.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус операции.Режимы:
image_urls;image_urls;image_urls.{
"tool": "flux-3-image",
"input": {
"...": "..."
}
}
tool - slug нейросети, всегда "flux-3-image".input - параметры запуска, все поля передаются прямо внутри этого объекта.aspect_ratio - при создании, edit_aspect_ratio - при правке. Поле чужого режима можно не передавать, оно ни на что не влияет.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
prompt | string | Да | Что нарисовать или что изменить. От 3 до 5000 символов. В правке на изображения можно ссылаться по номеру: @image1, @image2 - номер совпадает с порядком ссылок в image_urls. |
image_urls | string[] | Нет | Внешние http/https ссылки на изображения .jpg, .jpeg, .png, .webp, до 10 штук. Каждое - не меньше 256 px по каждой стороне и не больше 4 мегапикселей. Без ссылок - создание, со ссылками - правка. |
aspect_ratio | enum | Нет | Только при создании. Соотношение сторон: 21:9, 2:1, 16:9, 3:2, 7:5, 4:3, 5:4, 1:1, 4:5, 3:4, 5:7, 2:3, 9:16, 1:2. Если не передать - 1:1. |
edit_aspect_ratio | enum | Нет | Только при правке. auto - пропорции первого изображения, или любое значение из списка aspect_ratio. Если не передать - auto. |
resolution | enum | Нет | Размер готового изображения и цена: 1k (10 ₽) или 2k (20 ₽). Если не передать - 1k. |
output_format | enum | Нет | Формат файла: jpeg или png. Если не передать - jpeg. |
prompt_expansion_mode | enum | Нет | on - модель дополнит описание деталями перед генерацией и сохранит роли изображений, off - будет следовать только вашему тексту. Если не передать - off. |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "flux-3-image",
"input": {
"prompt": "Уютная мастерская часовщика вечером: мастер в очках склонился над карманными часами, тёплый свет настольной лампы, на стене вывеска \"ВРЕМЯ ЕСТЬ\"",
"aspect_ratio": "16:9",
"resolution": "1k",
"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: 'flux-3-image',
input: {
prompt: 'Уютная мастерская часовщика вечером: мастер в очках склонился над карманными часами, тёплый свет настольной лампы, на стене вывеска "ВРЕМЯ ЕСТЬ"',
aspect_ratio: '16:9',
resolution: '1k',
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': 'flux-3-image',
'input': {
'prompt': 'Уютная мастерская часовщика вечером: мастер в очках склонился над карманными часами, тёплый свет настольной лампы, на стене вывеска "ВРЕМЯ ЕСТЬ"',
'aspect_ratio': '16:9',
'resolution': '1k',
'output_format': 'jpeg',
},
},
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": "flux-3-image",
"input": {
"prompt": "Перекрась флакон духов в изумрудное полупрозрачное стекло с золотой крышкой. Форму, положение флакона, лицо и позу человека не меняй",
"image_urls": [
"https://cdn.example.com/source-image-1.jpg"
],
"edit_aspect_ratio": "auto",
"resolution": "2k",
"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: 'flux-3-image',
input: {
prompt: 'Перекрась флакон духов в изумрудное полупрозрачное стекло с золотой крышкой. Форму, положение флакона, лицо и позу человека не меняй',
image_urls: ['https://cdn.example.com/source-image-1.jpg'],
edit_aspect_ratio: 'auto',
resolution: '2k',
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': 'flux-3-image',
'input': {
'prompt': 'Перекрась флакон духов в изумрудное полупрозрачное стекло с золотой крышкой. Форму, положение флакона, лицо и позу человека не меняй',
'image_urls': ['https://cdn.example.com/source-image-1.jpg'],
'edit_aspect_ratio': 'auto',
'resolution': '2k',
'output_format': 'png',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
Номер в @image1, @image2 - это порядок ссылки в image_urls.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "flux-3-image",
"input": {
"prompt": "Поставь кресло с @image2 в гостиную с @image1 у окна, сохрани свет и ракурс комнаты",
"image_urls": [
"https://cdn.example.com/source-image-1.jpg",
"https://cdn.example.com/reference-image-2.png"
],
"edit_aspect_ratio": "4:3",
"resolution": "1k",
"prompt_expansion_mode": "on"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'flux-3-image',
input: {
prompt: 'Поставь кресло с @image2 в гостиную с @image1 у окна, сохрани свет и ракурс комнаты',
image_urls: [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/reference-image-2.png',
],
edit_aspect_ratio: '4:3',
resolution: '1k',
prompt_expansion_mode: 'on',
},
}),
})
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': 'flux-3-image',
'input': {
'prompt': 'Поставь кресло с @image2 в гостиную с @image1 у окна, сохрани свет и ракурс комнаты',
'image_urls': [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/reference-image-2.png',
],
'edit_aspect_ratio': '4:3',
'resolution': '1k',
'prompt_expansion_mode': 'on',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "flux-3-image",
"cost": 10,
"balance_after": 490,
"created_at": "2026-10-06T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "flux-3-image",
"cost": 10,
"created_at": "2026-10-06T12:00:00Z",
"completed_at": "2026-10-06T12:00:20Z",
"result": {
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/flux-3-image/image-1.jpeg"
]
},
"error_message": null
}
{
"id": "op_uuid-123",
"status": "failed",
"tool": "flux-3-image",
"cost": 10,
"created_at": "2026-10-06T12:00:00Z",
"completed_at": "2026-10-06T12:00:08Z",
"result": null,
"error_message": "Не удалось сгенерировать изображение по этому запросу"
}
Сохраните 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()
В обоих режимах приходит одно изображение:
{
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/flux-3-image/image-1.jpeg"
]
}
type - всегда "image".urls - массив с одной ссылкой на готовое изображение в формате из output_format.Если операция завершилась с ошибкой, result будет null, а причина придёт в error_message.
Цена за одно изображение зависит только от resolution и одинакова для создания и правки:
resolution | Цена |
|---|---|
1k | 10 ₽ |
2k | 20 ₽ |
resolution не передан, считается 1k - 10 ₽.1k удобно для перебора идей, 2k - для финального варианта. Если нужен ещё больший размер, увеличьте готовое изображение отдельной нейросетью-апскейлером.POST /api/v1/operations не идемпотентен: повторный запрос создаёт новую операцию и списывает деньги ещё раз.queued, затем проверяйте статус по id раз в 2-3 секунды.http/https ссылками на .jpg, .jpeg, .png или .webp, не больше 10 ссылок в image_urls.edit_aspect_ratio: "auto" результат получает пропорции первого изображения, поэтому главное изображение ставьте первым.prompt в кавычках.validation_error.