API Dokumentacja
Endpointy, klucze, limity. Odwołanie do endpointów AI dla obrazów — generuj, usuń, rozszerz — z uwierzytelnieniem, CORS i limitami częstotliwości.
Morph udostępnia zestaw punktów końcowych AI dla obrazów pod adresem api.morph.cool. Te punkty końcowe są używane przez funkcje AI Artboard i mogą być wykorzystywane przez deweloperów budujących integracje.
https://api.morph.coolWszystkie żądania korzystają z HTTPS. Żądania HTTP są odrzucane.
Uwierzytelnianie
Endpointy AI do obrazów (generowanie, usuwanie, rozszerzanie) nie wymagają uwierzytelniania dla podstawowego użytku. Są one ograniczane przez adres IP. Endpointy modyfikujące dane użytkownika (konwersje, dzwonek, tabela wyników) wymagają tokena JWT przekazanego jako Bearer token w nagłówku Authorization.
Authorization: Bearer <jwt_token>
Limitowanie stawek
Wszystkie punkty końcowe są ograniczone w celu zapobieżenia nadużyciom. Przekroczenie limitu zwraca status 429 z błędem w formacie JSON.
- Endpointy Artboard AI — 10 żądań na minutę na adres IP (obsługiwane przez KV).
- Logowanie konwersji — wymaga uwierzytelnienia, bez osobnego limitu IP.
- Błędne raportowanie — 30 żądań na minutę na adres IP.
- Lista oczekujących — 10 żądań na minutę na adres IP.
Generuj obraz
POST /artboard/generate
Generowanie obrazów na podstawie tekstu i inpainting. Prześlij obraz kanwy z maską, aby wypełnić wybrane obszary na podstawie tekstu. Dostępna jest również tryb opisu, który zwraca opis obrazu.
| Pole | Typ | Opis |
|---|---|---|
| prompt | string | Opis tekstu do wygenerowania. Nie jest wymagany w trybie opisu. |
| canvasImagewymagane | string | Base64-encoded PNG zawierający zawartość kanwy. |
| maskImage | string | Zakodowany w Base64 PNG maski wyboru. Biały = obszar do wypełnienia. Wymagany dla inpainting, nie potrzebny dla opisu. |
| tryb | string | Ustaw na "opisz" w trybie opisu obrazu. Pomijaj przy generowaniu. |
Odpowiedź generacji:
{
"result": "<base64_png_string>"
}
Opisz odpowiedź:
{
"result": "A detailed text description of the image content."
}
Weryfikacja: W trybie opisu, obraz PNG musi mieć co najmniej 64×64 pikseli. Obrazy mniejsze zwracają błąd REGION_TOO_SMALL.
Usuwanie obiektów
POST /artboard/remove
Usunięcie obiektu z AI. Narysuj maskę na obiekcie i model wypełni obszar odpowiednim kontekstem.
| Pole | Typ | Opis |
|---|---|---|
| canvasImagewymagane | string | Base64-encoded PNG of the canvas. |
| maskImagerequired | string | Maska PNG zakodowana w Base64. Biały = obszar do usunięcia. |
Odpowiedź:
{
"result": "<base64_png_string>"
}
Generative Expand
POST /artboard/expand
Rozszerz płótno w danym kierunku. AI wypełnia nową obszar treścią, która pasuje do istniejącego obrazu. Używa rozszerzania krawędzi pikseli dla kontekstu.
| Pole | Typ | Opis |
|---|---|---|
| canvasImagewymagane | string | Base64-encoded PNG canvas. Musi mieć szerokość i wysokość od 64 do 4096px. |
| kierunekwymagany | string | Jeden z: left, right, top, bottom, all. |
| expandPxrequired | liczba | Piksele do rozszerzenia. Zakres: 64–512. |
| prompt | string | Opcjonalny prompt tekstu, aby kierować wygenerowaną treścią. |
Odpowiedź:
{
"result": "<base64_png_string>"
}
Weryfikacja: Źródłowy obraz musi mieć wymiary od 64 do 4096px na każdej stronie. Rozszerzone płótno nie może przekroczyć 4096px w żadnym wymiarze. Naruszenia powodują błędy REGION_TOO_SMALL lub CANVAS_TOO_LARGE.
Błędy
Wszystkie punkty końcowe zwracają odpowiedzi błędu w formacie JSON z polem error:
{
"error": "RATE_LIMITED"
}
Typowe kody błędów:
- PRZEKROCZONY_LIMIT — za dużo żądań. Poczekaj i spróbuj ponownie.
- REGION_TOO_SMALL — wymiary obrazu poniżej 64×64px minimum.
- CANVAS_TOO_LARGE — rozszerzony płótno przekracza limit 4096px.
- BRAKUJĄCE_POLA — wymagane pole nie zostało podane.
Uwagi
- Model AI — wszystkie punkty końcowe inpainting używają Stable Diffusion v1.5 przez Cloudflare Workers AI. Liczba kroków wnioskowania jest ograniczona do 20.
- Format obrazu — wszystkie obrazy muszą być zakodowanymi w base64 PNG.
- Prywatność — obrazy są przetwarzane w pamięci i nie są przechowywane, logowane ani wykorzystywane do trenowania modeli.
- CORS — punkty końcowe akceptują żądania z
morph.cool,www.morph.coolilocalhost:5173. - Timeout — klient powinien ustawić 30-sekundowy timeout. Przetwarzanie po stronie serwera rzadko przekracza 15 sekund.