API Referentie
De eindpunten, de sleutels, de beperkingen. Referentie voor de AI-afbeeldings eindpunten — genereren, verwijderen, uitbreiden — met auth, CORS en snelheidsbeperkingen.
Morph biedt een reeks AI-gebaseerde afbeeldingsendpoints aan op api.morph.cool. Deze endpoints voeden Artboard's AI-functies en kunnen worden gebruikt door ontwikkelaars die integraties bouwen.
https://api.morph.coolAlle verzoeken gebruiken HTTPS. HTTP-verzoeken worden geweigerd.
Authenticatie
AI-beeldendpunten (genereren, verwijderen, uitbreiden) vereisen geen authenticatie voor basisgebruik. Ze zijn beperkt op basis van IP-adres. Endpoints die gebruikersgegevens wijzigen (conversies, bel, leaderboard) vereisen een JWT-token dat wordt doorgegeven als Bearer-token in de Authorization-header.
Authorization: Bearer <jwt_token>
Tarieven
Alle eindpunten zijn beperkt om misbruik te voorkomen. Overschrijding van de limiet retourneert een 429 status met een JSON-fout.
- Artboard AI endpoints — 10 aanvragen per minuut per IP (KV-gebaseerd).
- Conversielogboek — vereist authenticatie, geen aparte IP-limiet.
- Foutrapportage — 30 aanvragen per minuut per IP.
- Wachtlijst — 10 aanvragen per minuut per IP.
Afbeelding genereren
POST /artboard/generate
Text-to-image generatie en inpainting. Stuur een canvas-afbeelding met een masker om geselecteerde gebieden in te vullen op basis van een tekstprompt. Ook ondersteunt een beschrijfmodus die een tekstbeschrijving van de afbeelding retourneert.
| Veld | Type | Omschrijving |
|---|---|---|
| prompt | string | Tekstbeschrijving van wat te genereren. Niet vereist in beschrijfmodus. |
| canvasImagevereist | string | Base64-gecodeerde PNG van de inhoud van het canvas. |
| maskImage | string | Base64-gecodeerde PNG van de selectiemasker. Wit = gebied om te vullen. Vereist voor inpainting, niet nodig voor beschrijven. |
| modus | string | Stel in op "beschrijven" voor modus met beeldbeschrijving. Laat weg voor generatie. |
Reactie op generatie:
{
"result": "<base64_png_string>"
}
Beschrijf reactie:
{
"result": "A detailed text description of the image content."
}
Validatie: Bij beschrijvingsmodus moet de PNG minimaal 64×64 pixels zijn. Kleinere afbeeldingen retourneren een REGION_TOO_SMALL-fout.
Object Verwijderen
POST /artboard/remove
AI-geactiveerde objectverwijdering. Schilder over een object in de masker en het model vult het gebied met contextueel geschikte inhoud.
| Veld | Type | Omschrijving |
|---|---|---|
| canvasImagevereist | string | Base64-gencodeerde PNG van het canvas. |
| maskImagerequired | string | Base64-gecodeerde PNG-masker. Wit = gebied om te verwijderen. |
Antwoord:
{
"result": "<base64_png_string>"
}
Generatieve Expand
POST /artboard/expand
Verbreed het canvas in een bepaalde richting. De AI vult het nieuwe gebied met inhoud die overeenkomt met de bestaande afbeelding. Gebruikt randpixeluitbreiding voor context.
| Veld | Type | Omschrijving |
|---|---|---|
| canvasImagevereist | string | Base64-gecodeerde PNG van het canvas. Moet 64–4096px aan elke zijde zijn. |
| richtingvereist | string | Een van: left, right, top, bottom, all. |
| expandPxvereist | number | Pixels om uit te breiden. Bereik: 64–512. |
| prompt | string | Optioneel tekstprompt om de gegenereerde inhoud te begeleiden. |
Antwoord:
{
"result": "<base64_png_string>"
}
Validatie: De bronafbeelding moet 64–4096px aan elke zijde zijn. Het uitgebreide canvas mag niet meer dan 4096px in een enkele dimensie overschrijden. Schendingen retourneren REGION_TOO_SMALL of CANVAS_TOO_LARGE fouten.
Foutreacties
Alle eindpunten retourneren JSON-foutberichten met een error-veld:
{
"error": "RATE_LIMITED"
}
Veelvoorkomende foutcodes:
- RAATBEPERKT — te veel verzoeken. Wacht en probeer opnieuw.
- REGION_TOO_SMALL — afbeeldingsdimensies onder 64×64px minimum.
- CANVAS_TOO_LARGE — uitgebreide canvas overschrijdt de limiet van 4096px.
- MISSING_FIELDS — een vereist veld is niet ingevuld.
Opmerkingen
- AI-model — alle inpainting-eindpunten gebruiken Stable Diffusion v1.5 via Cloudflare Workers AI. Inference-stappen zijn beperkt tot 20.
- Beeldformaat — alle afbeeldingen moeten base64-gecodeerde PNG's zijn.
- Privacy — afbeeldingen worden verwerkt in het geheugen en worden niet opgeslagen, gelogd of gebruikt voor modeltraining.
- CORS — endpoints accepteren verzoeken van
morph.cool,www.morph.coolenlocalhost:5173. - Time-out — de client moet een time-out van 30 seconden instellen. Serverzijde verwerking duurt zelden langer dan 15 seconden.