API Справочник
Конечные точки, ключи, ограничения. Справочник для AI-изображений — конечные точки генерации, удаления, расширения — с аутентификацией, CORS и лимитами скорости.
Morph предоставляет набор AI-мощных изображений по адресу api.morph.cool. Эти конечные точки управляют AI-функциями Artboard и могут использоваться разработчиками для интеграций.
https://api.morph.coolВсе запросы используют HTTPS. HTTP-запросы отклоняются.
Аутентификация
AI-эндпоинты для изображений (генерация, удаление, расширение) не требуют аутентификации для базового использования. Они ограничены по IP-адресу. Эндпоинты, которые модифицируют данные пользователя (конверсии, bell, leaderboard), требуют JWT-токена, передаваемого как Bearer-токен в заголовке Authorization.
Authorization: Bearer <jwt_token>
Ограничения по скорости
Все конечные точки ограничены по частоте запросов, чтобы предотвратить злоупотребления. Превышение лимита возвращает 429 статус с JSON-ошибкой.
- Точки доступа Artboard AI — 10 запросов в минуту на IP-адрес (на основе KV).
- Логирование конвертации — требует аутентификации, отдельный лимит IP не применяется.
- Сообщение об ошибках — 30 запросов в минуту на IP-адрес.
- Список ожидания — 10 запросов в минуту на IP.
Создать изображение
POST /artboard/generate
Генерация изображений по тексту и наложение. Отправьте холст с маской, чтобы заполнить выбранные области на основе текстового запроса. Также поддерживается режим описания, который возвращает текстовое описание изображения.
| Поле | Тип | Описание |
|---|---|---|
| подсказка | string | Текстовое описание того, что нужно сгенерировать. Не требуется в режиме описания. |
| canvasImageобязательно | string | Base64-кодированное PNG содержимого холста. |
| maskImage | string | Base64-кодированное PNG выделенной маски. Белый = область для заполнения. Требуется для inpainting, не нужно для describe. |
| режим | string | Установите значение "описать" для режима описания изображения. Пропустите для генерации. |
Ответ генерации:
{
"result": "<base64_png_string>"
}
Опишите ответ:
{
"result": "A detailed text description of the image content."
}
Проверка: В режиме описания PNG-изображение должно быть не менее 64×64 пикселей. Изображения меньшего размера возвращают ошибку REGION_TOO_SMALL.
Удаление объекта
POST /artboard/remove
AI-удаление объектов. Закрасьте объект на маске, и модель заполнит область контекстно подходящим содержимым.
| Поле | Тип | Описание |
|---|---|---|
| canvasImageобязательно | string | Base64-кодированное PNG изображение холста. |
| maskImagerequired | string | Base64-кодированная PNG-маска. Белый цвет = область для удаления. |
Ответ:
{
"result": "<base64_png_string>"
}
Генеративное расширение
POST /artboard/expand
Расширьте холст в заданном направлении. ИИ заполняет новую область содержимым, соответствующим существующему изображению. Использует расширение пикселей края для контекста.
| Поле | Тип | Описание |
|---|---|---|
| canvasImageобязательно | string | Base64-кодированное PNG холста. Должно быть 64–4096 пикселей по каждой стороне. |
| направлениеобязательное | string | Одно из: left, right, top, bottom, all. |
| expandPxобязательно | number | Пиксели для расширения. Диапазон: 64–512. |
| подсказка | string | Необязательный текстовый запрос для руководства сгенерированным контентом. |
Ответ:
{
"result": "<base64_png_string>"
}
Проверка: Исходное изображение должно быть 64–4096 пикселей по каждой стороне. Расширенный холст не должен превышать 4096 пикселей в любом измерении. Нарушения возвращают ошибки REGION_TOO_SMALL или CANVAS_TOO_LARGE.
Ответы на ошибки
Все конечные точки возвращают JSON-ответы об ошибках с полем error:
{
"error": "RATE_LIMITED"
}
Распространенные коды ошибок:
- ОГРАНИЧЕНИЕ_ПО_СЧЕТЧИКУ — слишком много запросов. Подождите и повторите попытку.
- РАЗМЕР_РЕГИОНА_СЛИШКОМ_МЕЛКИЙ — размеры изображения ниже 64×64 пикселей минимального требования.
- ХОЛСТ_СЛИШКОМ_БОЛЬШОЙ — расширенный холст превышает лимит в 4096 пикселей.
- ОТСУТСТВУЮЩИЕ_ПОЛЯ — обязательное поле не было предоставлено.
Примечания
- Модель ИИ — все endpoints для inpainting используют Stable Diffusion v1.5 через Cloudflare Workers AI. Количество шагов инференса ограничено 20.
- Формат изображения — все изображения должны быть закодированными в base64 PNG.
- Приватность — изображения обрабатываются в памяти и не хранятся, не логируются и не используются для обучения моделей.
- CORS — конечные точки принимают запросы с
morph.cool,www.morph.coolиlocalhost:5173. - Таймаут — клиент должен установить таймаут в 30 секунд. Обработка на стороне сервера редко превышает 15 секунд.