Редактирование

FLUX 2 Edit

Редактирование изображения текстовой инструкцией.

flux-2/edit
Цена
1,64 ₽
за мегапиксель

Списывается при постановке задачи в очередь, возвращается, если генерация не удалась.

Пример результата

Пример: FLUX 2 Edit

Попробовать

Исходное изображение
Дополнительные настройки
Стоимость
≈ 8,22 ₽

Результат появится здесь. Плейграунд использует тот же 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()));