Редактирование
Nano Banana Edit
Правка изображений по инструкции (Gemini Image).
fal-ai/nano-banana/editЦена
5,17 ₽
за изображение
Списывается при постановке задачи в очередь, возвращается, если генерация не удалась.
Пример результата

Попробовать
Исходное изображение
Стоимость
≈ 5,17 ₽
Результат появится здесь. Плейграунд использует тот же API, что и код ниже, и списывает стоимость с вашего баланса.
Подключение по API
Ключ создаётся в личном кабинете. Подробности — в документации.
curl
curl -X POST https://themegabrain.ru/api/gateway/v1/queue/fal-ai/nano-banana/edit \
-H "Authorization: Bearer $MEGABRAIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"матрёшки на заиндевевшем подоконнике, мягкий утренний свет, фото","image_urls":["https://example.com/photo.jpg"]}'
# Затем опрашивайте 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/fal-ai/nano-banana/edit", headers=HEADERS, json={
"prompt": "матрёшки на заиндевевшем подоконнике, мягкий утренний свет, фото",
"image_urls": [
"https://example.com/photo.jpg"
]
}).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/fal-ai/nano-banana/edit`, {
method: 'POST',
headers,
body: JSON.stringify({
"prompt": "матрёшки на заиндевевшем подоконнике, мягкий утренний свет, фото",
"image_urls": [
"https://example.com/photo.jpg"
]
}),
}).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()));