curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-3-image",
"prompt": "Сверхширокий кинематографический кадр окутанной туманом прибрежной дороги на рассвете, один ретроавтомобиль с включёнными фарами",
"aspect_ratio": "21:9",
"resolution": "2k"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "flux-3-image",
"prompt": "Сверхширокий кинематографический кадр окутанной туманом прибрежной дороги на рассвете, один ретроавтомобиль с включёнными фарами",
"aspect_ratio": "21:9",
"resolution": "2k"
}
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "flux-3-image",
prompt: "Сверхширокий кинематографический кадр окутанной туманом прибрежной дороги на рассвете, один ретроавтомобиль с включёнными фарами",
aspect_ratio: "21:9",
resolution: "2k"
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
FLUX 3 Image
FLUX 3 Image Генерация изображений
Генерация по тексту, редактирование одного изображения и до 10 референсов, с различными соотношениями сторон и разрешением до 4k.
POST
/
v1
/
images
/
generations
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-3-image",
"prompt": "Сверхширокий кинематографический кадр окутанной туманом прибрежной дороги на рассвете, один ретроавтомобиль с включёнными фарами",
"aspect_ratio": "21:9",
"resolution": "2k"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "flux-3-image",
"prompt": "Сверхширокий кинематографический кадр окутанной туманом прибрежной дороги на рассвете, один ретроавтомобиль с включёнными фарами",
"aspect_ratio": "21:9",
"resolution": "2k"
}
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "flux-3-image",
prompt: "Сверхширокий кинематографический кадр окутанной туманом прибрежной дороги на рассвете, один ретроавтомобиль с включёнными фарами",
aspect_ratio: "21:9",
resolution: "2k"
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Этот эндпоинт работает асинхронно. При успешной отправке возвращается
task_id. Получайте статус и изображения через запрос состояния задачи. Остановите опрос при статусе completed или failed. Генерация в 4k может занять несколько минут; рекомендуемый общий тайм-аут ожидания — 10 минут.curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-3-image",
"prompt": "Сверхширокий кинематографический кадр окутанной туманом прибрежной дороги на рассвете, один ретроавтомобиль с включёнными фарами",
"aspect_ratio": "21:9",
"resolution": "2k"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "flux-3-image",
"prompt": "Сверхширокий кинематографический кадр окутанной туманом прибрежной дороги на рассвете, один ретроавтомобиль с включёнными фарами",
"aspect_ratio": "21:9",
"resolution": "2k"
}
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "flux-3-image",
prompt: "Сверхширокий кинематографический кадр окутанной туманом прибрежной дороги на рассвете, один ретроавтомобиль с включёнными фарами",
aspect_ratio: "21:9",
resolution: "2k"
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Заголовки запроса
string
обязательно
Bearer-аутентификация в формате
Bearer <token>, где <token> — ваш APIMart API Key.Параметры запроса
string
обязательно
Фиксированное значение:
flux-3-image.string
обязательно
Описание сцены для генерации по тексту или инструкции по редактированию. Негативные промпты не поддерживаются; описывайте то, что хотите получить.Используйте теги и JSON bbox в
prompt, чтобы задать композицию или области локального редактирования. Примеры приведены ниже.string[]
Список референсных изображений, максимум 10. Поддерживаются общедоступные HTTP(S) URL или ввод в Base64.Без референсов выполняется генерация по тексту. Одно изображение можно передать для редактирования, несколько — для использования в качестве референсов.
string
по умолчанию:"auto"
Соотношение сторон результата. Поддерживаемые значения:
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, 9:21 или auto.Также принимается формат 16x9. При auto:- Редактирование или несколько референсов: используется соотношение сторон первого референса.
- Генерация по тексту: определяется промптом; если соотношение не определено, используется
1:1.
string
Совместимый параметр соотношения сторон. Может заменять
aspect_ratio и принимает те же значения. Рекомендуется использовать только одно из этих полей.Размеры в пикселях, например 1024x1024, не поддерживаются и возвращают HTTP 400. Выбирайте разрешение с помощью resolution.string
по умолчанию:"1k"
Уровень разрешения результата. Поддерживаются
768sq, 1k, 1.5k, 2k и 4k без учёта регистра. 768 эквивалентен 768sq.Этот параметр определяет тарифную категорию. Если он не указан, генерация и оплата выполняются как для 1k. Неподдерживаемые значения, например 3k, возвращают HTTP 400.integer
по умолчанию:"2"
Допустимый уровень контента с точки зрения безопасности: 0–4. Значение 0 — самое строгое.
boolean
по умолчанию:"true"
Разрешать ли поиск в интернете или поиск изображений перед генерацией. Для отключения передайте
false.Требуется логическое значение, а не строки "false" или "true".integer
по умолчанию:"1"
Каждый запрос создаёт 1 изображение; поддерживается только
1. Для нескольких изображений отправляйте отдельные задачи. Значения больше 1 возвращают HTTP 400.Неподдерживаемые параметры
Следующие параметры при передаче возвращают HTTP 400, а не игнорируются:width,height- Размер в пикселях в
size, например1024x1024 seed,steps,guidanceoutput_format,negative_prompt,prompt_upsampling,mask_url
resolution, для определённого соотношения сторон — aspect_ratio.
Редактирование референсного изображения
{
"model": "flux-3-image",
"prompt": "Сделай автомобиль на изображении красным, сохрани исходную дорогу, фон и освещение",
"image_urls": ["https://example.com/car.jpg"],
"aspect_ratio": "auto",
"resolution": "2k"
}
image_urls, всего не более 10 изображений.
Несколько референсов
Редактирование, локальное редактирование и композиция используют тот же эндпоинт и модель этой страницы с оплатой поresolution. Референсы нумеруются по порядку: ref_image_0 для первого, ref_image_1 для второго. В промпте также можно писать Image 1 / Image 2.
{
"model": "flux-3-image",
"prompt": "Преобразуй Image 1 в стиль Image 2.",
"image_urls": [
"https://example.com/subject.jpg",
"https://example.com/style.jpg"
],
"aspect_ratio": "auto"
}
Локальное редактирование (bounding box)
Начнитеprompt с инструкций на естественном языке и обозначьте элементы с помощью <тегов>, например <car_1>. Затем в той же строке добавьте JSON-массив, по одному объекту на рамку. bbox не является отдельным параметром запроса.
| Поле | Описание |
|---|---|
id | Соответствует тегу элемента в промпте, без угловых скобок. |
from | Источник элемента, например ref_image_0; для новых или перерисовываемых элементов используйте null. |
src_bbox | Рамка в исходном изображении; также должна быть null, если from равен null. |
tgt_bbox | Рамка в результате; совпадение с src_bbox сохраняет позицию, отличие перемещает элемент. |
desc | Описывает, как изменить элемент или что сохранить. |
src_bbox, tgt_bbox, bbox) используют [верх, лево, низ, право], то есть [y1, x1, y2, x2], на нормализованной сетке 0–1000: [0,0] в левом верхнем углу, [1000,1000] в правом нижнем. Это не пиксельные координаты.
В примере автомобиль внутри рамки становится красным, а фон описан как сохраняемый. URL и положения рамок приведены для иллюстрации; замените их с учётом вашего изображения.
{
"model": "flux-3-image",
"prompt": "В <ref_image_0> сделай автомобиль <car_1> красным и сохрани фон <background_1>. [{\"id\":\"car_1\",\"from\":null,\"src_bbox\":null,\"tgt_bbox\":[250,300,750,800],\"desc\":\"Красный автомобиль с сохранением исходной формы и ориентации.\"},{\"id\":\"background_1\",\"from\":\"ref_image_0\",\"src_bbox\":[0,0,1000,1000],\"tgt_bbox\":[0,0,1000,1000],\"desc\":\"Сохранить исходную дорогу, фон и освещение.\"}]",
"image_urls": [
"https://example.com/car.jpg"
],
"aspect_ratio": "auto",
"resolution": "2k"
}
Перемещение элемента
Поместите следующий объект в массив bbox в конце промпта.from задаёт исходное изображение, src_bbox — прежнее положение, tgt_bbox — новое. В текстовой инструкции также используйте соответствующий тег <knight_1>.
{
"id": "knight_1",
"from": "ref_image_0",
"src_bbox": [
500,
150,
850,
350
],
"tgt_bbox": [
194,
55,
544,
255
],
"desc": "Миниатюрная серая фигурка рыцаря амигуруми."
}
Композиция при генерации по тексту
Композицию можно задавать и без референсов. Каждая рамка используетid, bbox и desc. Явно укажите aspect_ratio, так как координатная сетка растягивается с соотношением сторон.
{
"model": "flux-3-image",
"aspect_ratio": "1:1",
"prompt": "Минималистичная иллюстрация чёрного бегущего силуэта <silhouette_1> на однотонном жёлто-зелёном фоне <background_1>. [{\"id\":\"background_1\",\"bbox\":[0,0,1000,1000],\"desc\":\"Неоновый жёлто-зелёный фон с лёгкой текстурой бумаги.\"},{\"id\":\"silhouette_1\",\"bbox\":[150,150,850,850],\"desc\":\"Чёрный бегущий силуэт с точечной текстурой.\"}]"
}
Примечания
-
JSON bbox является частью строки
prompt. При ручном составлении JSON запроса экранируйте внутренние двойные кавычки как\". SDK или методы сериализации JSON могут сделать это автоматически. -
Также перечислите области, которые должны остаться без изменений, и опишите требования к сохранению в
desc. -
Теги элементов в промпте должны однозначно соответствовать значениям
idв JSON. Идентификаторы референсов, такие как<ref_image_0>, указывают на входные изображения. -
У этой модели нет параметра
mask, аmask_urlне поддерживается; передачаmask_urlвозвращает HTTP 400. Редактирование bbox не использует параметр загрузки маски.
Ответ на отправку
integer
Код состояния ответа.
200 означает успех.array
Запрос результатов задачи
curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01K... \
--header 'Authorization: Bearer <token>'
{
"code": 200,
"data": {
"status": "completed",
"result": {
"images": [
{
"url": ["https://example.com/generated-image.jpg"]
}
]
}
}
}
data.result.images[0].url. Если статус задачи — failed, проверьте возвращённое сообщение об ошибке и прекратите ожидание изображения.
Разрешение и оплата
Оплата за изображение. Цена зависит только отresolution, а не от соотношения сторон или количества референсов. Доплаты за референсы нет.
| Уровень разрешения | Примерный размер результата |
|---|---|
768sq | Около 768×768 |
1k (по умолчанию) | Около 1MP |
1.5k | Около 2MP |
2k | Около 4MP |
4k | Около 16MP |
Частые ошибки параметров
| Запрос | Результат и действие |
|---|---|
resolution: "3k" | HTTP 400; используйте один из 5 поддерживаемых уровней |
size: "1024x1024" | HTTP 400; задайте соотношение сторон и выберите разрешение через resolution |
n: 2 | HTTP 400; за запрос создаётся только 1 изображение |
| 11 референсов | HTTP 400; передайте не более 10 |
grounding: "false" | HTTP 400; используйте логическое значение false |