API Referência
Os endpoints, as chaves, o limites. Referência para os endpoints de imagem de IA — gerar, remover, expandir — com autenticação, CORS e limites de taxa.
O Morph expõe um conjunto de endpoints de imagem com IA em api.morph.cool. Esses endpoints alimentam os recursos de IA do Artboard e podem ser usados por desenvolvedores que construíram integrações.
https://api.morph.coolTodas as requisições usam HTTPS. Requisições HTTP são rejeitadas.
Autenticação
Endpoints de imagem com IA (gerar, remover, expandir) não exigem autenticação para uso básico. Eles são limitados por endereço IP. Endpoints que modificam dados do usuário (conversões, sino, classificação) exigem um token JWT passado como Bearer token no cabeçalho Authorization.
Authorization: Bearer <jwt_token>
Limites de taxa
Todos os endpoints são limitados por taxa para evitar abuso. Exceder o limite retorna um status 429 com um erro JSON.
- Pontos finais Artboard AI — 10 solicitações por minuto por IP (baseado em KV).
- Registro de conversão — requer autenticação, sem limite de IP separado.
- Relatório de erros — 30 solicitações por minuto por IP.
- Lista de Espera — 10 solicitações por minuto por IP.
Gerar Imagem
POST /artboard/generate
Geração de imagem a partir de texto e inpainting. Envie uma imagem de canvas com uma máscara para preencher regiões selecionadas com base em uma solicitação de texto. Também suporta um modo descrição que retorna uma descrição textual da imagem.
| Campo | Tipo | Descrição |
|---|---|---|
| prompt | string | Descrição de texto do que gerar. Não é necessário no modo descrição. |
| canvasImagerequerido | string | PNG codificado em Base64 do conteúdo da tela. |
| maskImage | string | PNG codificado em Base64 da máscara de seleção. Branco = área a preencher. Necessário para inpainting, não necessário para descrever. |
| modo | string | Defina como "descrever" para o modo de descrição de imagem. Omita para geração. |
Resposta de geração:
{
"result": "<base64_png_string>"
}
Descrever resposta:
{
"result": "A detailed text description of the image content."
}
Validação: No modo descrição, o PNG deve ter pelo menos 64×64 pixels. Imagens menores retornam um erro REGION_TOO_SMALL.
Remoção de Objeto
POST /artboard/remove
Remoção de objeto com IA. Pinte sobre um objeto na máscara e o modelo preenche a área com conteúdo contextualmente apropriado.
| Campo | Tipo | Descrição |
|---|---|---|
| canvasImagerequerido | string | Base64-encoded PNG of the canvas. |
| maskImagerequired | string | Máscara PNG codificada em Base64. Branco = área a remover. |
Resposta:
{
"result": "<base64_png_string>"
}
Expandir Gerativo
POST /artboard/expand
Expandir a tela em uma direção específica. A IA preenche a nova área com conteúdo que corresponde à imagem existente. Usa extensão de pixel de borda para contexto.
| Campo | Tipo | Descrição |
|---|---|---|
| canvasImagerequerido | string | PNG codificado em Base64 da tela. Deve ter entre 64 e 4096px em cada lado. |
| direçãorequerida | string | Um de: left, right, top, bottom, all. |
| expandPxrequerido | número | Pixels para expandir. Intervalo: 64–512. |
| prompt | string | Prompt de texto opcional para orientar o conteúdo gerado. |
Resposta:
{
"result": "<base64_png_string>"
}
Validação: A imagem de origem deve ter 64–4096px em cada lado. A tela expandida não deve exceder 4096px em qualquer dimensão. Violações retornam erros REGION_TOO_SMALL ou CANVAS_TOO_LARGE.
Respostas de Erro
Todos os endpoints retornam respostas de erro JSON com um campo error:
{
"error": "RATE_LIMITED"
}
Códigos de erro comuns:
- REQUISIÇÕES EXCESSIVAS — muitas requisições. Aguarde e tente novamente.
- REGION_TOO_SMALL — dimensões da imagem abaixo de 64×64px mínimo.
- CANVAS_TOO_LARGE — a área expandida excede o limite de 4096px.
- MISSING_FIELDS — um campo obrigatório não foi fornecido.
Observações
- Modelo de IA — todos os endpoints de inpainting usam Stable Diffusion v1.5 via Cloudflare Workers AI. As etapas de inferência são limitadas a 20.
- Formato de imagem — todas as imagens devem ser PNGs codificados em base64.
- Privacidade — as imagens são processadas na memória e não são armazenadas, registradas ou usadas para treinamento de modelos.
- CORS — endpoints aceitam solicitações de
morph.cool,www.morph.coolelocalhost:5173. - Tempo limite — o cliente deve definir um tempo limite de 30 segundos. O processamento do lado do servidor raramente excede 15 segundos.