По возможностям
Изображения
Выберите модель, скопируйте запрос и получите изображение. Всё, что ниже, подстраивается под выбранную модель.
#1. Выберите модель
gemini-2.5-flash-image-preview$0.0125 / запросАсинхронная задачаЛимиты и статус
Доступных моделей для этой задачи: 12. При переключении код ниже меняется.
#2. Скопируйте запрос
Замените YOUR_API_KEY своим ключом и выполните запрос. Показаны параметры, которые принимает эта модель.
https://www.aisplice.store/v1/images/tasksBearer API keyАсинхронная задачаПараметрыПоказаны только параметры, опубликованные для этой модели.
# Requires curl and jq
API_KEY="${API_KEY:-YOUR_API_KEY}"
# 1. Submit once
SUBMITTED=$(curl --fail-with-body -sS https://www.aisplice.store/v1/images/tasks \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: model-docs-$(date +%s)-$$" \\
-d '{
"model": "Nano Banana",
"prompt": "A cinematic scene with careful composition",
"size": "auto",
"resolution": "1K",
"n": 1
}')
TASK_ID=$(printf '%s' "$SUBMITTED" | jq -r '.task_id // .id // empty')
if [ -z "$TASK_ID" ]; then
printf '%s\n' "$SUBMITTED" >&2
exit 1
fi
echo "task_id=$TASK_ID"
# 2. Poll until terminal
while true; do
STATUS_JSON=$(curl --fail-with-body -sS \
"https://www.aisplice.store/v1/images/tasks/$TASK_ID" \
-H "Authorization: Bearer $API_KEY")
STATUS=$(printf '%s' "$STATUS_JSON" | jq -r '.status // empty' | tr '[:upper:]' '[:lower:]')
echo "status=$STATUS"
case "$STATUS" in
completed|succeeded|success) break ;;
failed|failure|cancelled|canceled)
printf '%s\n' "$STATUS_JSON" | jq .
exit 1
;;
esac
sleep 3
done
# 3. Fetch the final result
curl --fail-with-body -sS \
"https://www.aisplice.store/v1/images/tasks/$TASK_ID/content" \
-H "Authorization: Bearer $API_KEY" | jq .Для продакшена рекомендуются публичные URL медиафайлов. Сначала загрузите локальный файл, затем укажите public_url в запросе к модели. Избегайте больших тел в Base64.
Руководство по загрузкеВсе параметры
Все поля, которые принимает эта модель, и допустимые значения.
Все параметры
Все поля, которые принимает эта модель, и допустимые значения.
modelТочный идентификатор модели для этого запроса.
gemini-2.5-flash-image-previewpromptИнструкция с описанием желаемого результата.
sizeСоотношение сторон или размеры результата.
auto1:12:33:23:44:34:55:49:1616:921:9resolutionЗапрошенное разрешение результата.
1KnimagesOptional reference images, up to 14.
Жизненный цикл ответа
Статусы задачи, конечные состояния и примеры ответов с результатом.
Жизненный цикл ответа
Статусы задачи, конечные состояния и примеры ответов с результатом.
{
"id": "task_xxx",
"task_id": "task_xxx",
"object": "image.task",
"model": "Nano Banana",
"status": "queued"
}{
"created": 1720000000,
"data": [
{
"url": "https://media.example/result.png"
}
]
}Ожидание
queued · submitted · in_progress · processing
Успех
completed · succeeded · success
Ошибка
failed · failure · cancelled · canceled
#3. Получите результат
Запрос на отправку сразу возвращает task_id. Проверяйте задачу каждые несколько секунд, пока status не станет completed, или передайте webhook_url — и мы сообщим вам, когда всё будет готово.
GET https://www.aisplice.store/v1/images/tasks/{task_id}
GET https://www.aisplice.store/v1/images/tasks/{task_id}/content
Оплата только при успехе
#Если что-то пошло не так
- 400 с названием поля: эта модель не принимает такой параметр; используйте значения, указанные на шаге 2.
- Модель отклонила содержимое: переформулируйте промпт; отклонённые запросы не оплачиваются.
- 402: баланса не хватает на этот запрос; пополните его в разделе «Кошелёк» и повторите.
- 429: снизьте частоту и повторите через Retry-After секунд.
- 503 model_not_found: имя модели неверное или модель недоступна; выберите модель на шаге 1.
#Референсные изображения
Передавайте публичные URL изображений в поле для референсных изображений, указанном на шаге 2. Локальный файл сначала загрузите и используйте полученный URL.
Встраивание в ваш продуктКакие параметры показать пользователям сразу, а какие оставить на потом.
Какие настройки показать пользователям в первую очередьНачните с промпта и одной настройки, влияющей на цену; остальное добавляйте, когда базовый сценарий заработает.+
Творческий замысел
Поля вроде prompt должны быть в интерфейсе: пользователь сразу понимает, на что они влияют.
Множитель стоимости
Поля вроде duration, resolution, size и count стоит добавлять, только когда ценообразование уже можно понятно объяснить.
Переключатель режима
Поля вроде image, mask или ID для продолжения меняют сам сценарий работы и должны появляться только в отдельных режимах.
Служебные параметры
Поля вроде webhook_secret нужны интеграторам, а не обычным пользователям, поэтому не выносите их в стандартный интерфейс.
prompt- Когда показывать
- Всегда. Это основные входные данные для задач генерации изображений.
- Рекомендуемое значение по умолчанию
- Обязательно в интерфейсе.
- Почему это важно
- Напрямую определяет результат; если его скрыть, функцией нельзя будет пользоваться.
size- Когда показывать
- Показывайте в первом релизе, если стоимость зависит от размера результата.
- Рекомендуемое значение по умолчанию
- Начните с одного рекомендуемого соотношения сторон, например 1:1.
- Почему это важно
- Влияет и на стоимость, и на композицию результата, поэтому простой выбор размера нужен пользователям сразу.
quality- Когда показывать
- Показывайте, только когда пользователи явно попросят более качественный или более дешёвый вариант.
- Рекомендуемое значение по умолчанию
- Оставьте на сервере значение модели по умолчанию.
- Почему это важно
- Влияет на цену и задержку, но обычно не нужен в интерфейсе с первого дня.
n- Когда показывать
- Показывайте, только если пакетная генерация — основной сценарий.
- Рекомендуемое значение по умолчанию
- По умолчанию 1.
- Почему это важно
- Сразу умножает стоимость и может перегрузить первое знакомство с продуктом.
mask / image- Когда показывать
- Показывайте только в продуктах для редактирования или работы с референсными изображениями.
- Рекомендуемое значение по умолчанию
- Скрывайте в режиме генерации изображений по тексту.
- Почему это важно
- Эти поля превращают генерацию в редактирование, поэтому им не место в базовом сценарии.
Phase 1
- prompt
- one size or one duration default
- submit -> poll -> content
Phase 2
- one quality or resolution selector
- clear pricing hint
Phase 3
- advanced controls such as reference media, continuation, webhook, or vendor-specific tuningОдин источник истины для результатов
Проблема не решена?
Пришлите нам ID запроса или текст ошибки, и мы разберёмся.