FLUX 2 Edit
Редактирование изображения текстовой инструкцией.
flux-2/editСписывается при постановке задачи в очередь, возвращается, если генерация не удалась.
Пример результата

Попробовать
Дополнительные настройки
Результат появится здесь. Плейграунд использует тот же API, что и код ниже, и списывает стоимость с вашего баланса.
Параметры запроса
Поля JSON-тела запроса. Другие поля модель не принимает: запрос с ними вернёт ошибку 400.
- promptстрокаобязательный
Что изменить на изображении.
До 50 000 символов - image_urlsсписок ссылокобязательный
Ссылки на исходные изображения (https:// или data:), до 4 шт.
До 4 шт. - image_sizeстрока или объектнеобязательный
Размер результата: одно из названий или свой размер {"width": …, "height": …}. Без него — по размеру исходного изображения.
- Значения:
square_hd(1024×1024),square(512×512),portrait_4_3(768×1024),portrait_16_9(576×1024),landscape_4_3(1024×768),landscape_16_9(1024×576) или {"width", "height"}, стороны 512–2048 px- Цена:
- За начатые мегапиксели результата и каждого исходного изображения.
- num_imagesцелое числонеобязательный
Сколько изображений сгенерировать.
- По умолчанию:
1- Диапазон:
1–4- Цена:
- Умножается на число изображений.
- seedцелое числонеобязательный
Зерно генерации: тот же seed и тот же запрос дают тот же результат.
- output_formatстроканеобязательный
Формат файла результата.
- По умолчанию:
png- Значения:
jpeg,png,webp
- num_inference_stepsцелое числонеобязательный
Число шагов генерации: больше — детальнее, но дольше.
- По умолчанию:
28- Диапазон:
4–50
- guidance_scaleчислонеобязательный
Насколько строго следовать описанию.
- По умолчанию:
2.5- Диапазон:
0–20
- accelerationстроканеобязательный
Ускорение генерации: выше — быстрее, детали могут упроститься.
- По умолчанию:
regular- Значения:
none,regular,high
- enable_prompt_expansiontrue / falseнеобязательный
Дописать описание автоматически для лучшего результата.
- По умолчанию:
false
Подключение по API
Ключ создаётся в личном кабинете. Подробности — в документации.
curl
curl -X POST https://themegabrain.ru/api/gateway/v1/queue/flux-2/edit \
-H "Authorization: Bearer $MEGABRAIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"матрёшки на заиндевевшем подоконнике, мягкий утренний свет, фото","image_urls":["https://example.com/photo.jpg"],"image_size":"landscape_4_3"}'
# Затем опрашивайте status_url и заберите результат по response_url:
curl https://themegabrain.ru/api/gateway/v1/queue/requests/$REQUEST_ID -H "Authorization: Bearer $MEGABRAIN_API_KEY"Python
import os, time, requests
BASE = "https://themegabrain.ru/api/gateway/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['MEGABRAIN_API_KEY']}"}
job = requests.post(f"{BASE}/queue/flux-2/edit", headers=HEADERS, json={
"prompt": "матрёшки на заиндевевшем подоконнике, мягкий утренний свет, фото",
"image_urls": [
"https://example.com/photo.jpg"
],
"image_size": "landscape_4_3"
}).json()
while requests.get(job["status_url"], headers=HEADERS).json()["status"] not in ("COMPLETED", "FAILED"):
time.sleep(2)
print(requests.get(job["response_url"], headers=HEADERS).json())JavaScript
const BASE = 'https://themegabrain.ru/api/gateway/v1';
const headers = {
Authorization: `Bearer ${process.env.MEGABRAIN_API_KEY}`,
'Content-Type': 'application/json',
};
const job = await fetch(`${BASE}/queue/flux-2/edit`, {
method: 'POST',
headers,
body: JSON.stringify({
"prompt": "матрёшки на заиндевевшем подоконнике, мягкий утренний свет, фото",
"image_urls": [
"https://example.com/photo.jpg"
],
"image_size": "landscape_4_3"
}),
}).then(r => r.json());
let status = job.status;
while (status !== 'COMPLETED' && status !== 'FAILED') {
await new Promise(r => setTimeout(r, 2000));
({ status } = await fetch(job.status_url, { headers }).then(r => r.json()));
}
console.log(await fetch(job.response_url, { headers }).then(r => r.json()));