Mage SDK · TypeScript

Mage TypeScript SDK

Generuj obrazy, wideo i audio z poziomu Node.js dzięki typowanym konfiguracjom każdego modelu Mage. Jedno wywołanie wysyła zadanie, czeka i zwraca wynik.

Zdobądź klucz APIPrzeczytaj przewodnik po TypeScriptKod źródłowy na GitHubie
npm install @mage-space/sdk

W skrócie

Mage TypeScript SDK to oficjalny klient open source dla API Mage, opublikowany jako @mage-space/sdk. Zainstaluj go poleceniem „npm install @mage-space/sdk”, ustaw MAGE_API_KEY i wywołaj mage.run z ID modelu i konfiguracją, aby otrzymać gotowe obrazy, wideo lub audio z dowolnego z 28 modeli. Działa na Node.js 20.19 lub nowszym albo w dowolnym środowisku serwerowym z fetch, a każde generowanie jest płatne w Gems.

Konfiguracja

Zainstaluj SDK TypeScript i uruchom model

  1. Zainstaluj pakiet

    Dodaj @mage-space/sdk do swojego projektu.

    npm install @mage-space/sdk
  2. Ustaw klucz API

    Utwórz klucz w API → API Keys na mage.space i wyeksportuj go. Klient odczytuje MAGE_API_KEY.

    export MAGE_API_KEY="mage_sk_..."
  3. Generuj

    Wywołaj run z ID modelu i jego konfiguracją. Metoda czeka na wynik i go zwraca; wynik znajdziesz w result.url.

    import Mage from '@mage-space/sdk';
    
    const mage = new Mage(); // reads MAGE_API_KEY
    
    const request = await mage.run('mango', {
      prompt: 'Editorial portrait in soft daylight, 35mm film look',
      aspect_ratio: '4:5',
      model_id: 'mango-v3',
    });
    
    console.log(request.result.url);

Przykłady

SDK TypeScript w praktyce

Każdy przykład zaczyna się od klienta, który odczytuje MAGE_API_KEY.

Wyślij teraz, poczekaj później
import Mage from '@mage-space/sdk';

const mage = new Mage(); // reads MAGE_API_KEY

const submitted = await mage.generate('cherry', {
  prompt: 'Waves rolling onto a black sand beach at sunset',
  resolution: '720p',
  duration: '5',
});

const final = await mage.requests.wait(submitted.request_id, {
  timeout: 15 * 60_000,
  onUpdate: (request) => console.log(request.status),
});
Prześlij plik
import { readFile } from 'node:fs/promises';
import Mage from '@mage-space/sdk';

const mage = new Mage(); // reads MAGE_API_KEY

const clip = await mage.uploads.upload(await readFile('clip.mp4'), {
  contentType: 'video/mp4',
});

await mage.run('cherry', {
  prompt: 'Restyle this clip as a watercolor painting',
  videos: [clip.url],
});
Użyj zapisanej postaci
import Mage from '@mage-space/sdk';

const mage = new Mage(); // reads MAGE_API_KEY

await mage.characters.create({
  name: 'Ana',
  handle: 'ana',
  image: 'https://example.com/ana.png',
});

await mage.run('mango', { prompt: '@ana walking through a night market' });
Obsługa błędów
import Mage, { MageAPIError, MageGenerationError } from '@mage-space/sdk';

const mage = new Mage(); // reads MAGE_API_KEY

try {
  await mage.run('mango', { prompt: 'A lighthouse at night' });
} catch (error) {
  if (error instanceof MageAPIError && error.code === 'insufficient_gems') {
    // Top up Gems, then try again.
  } else if (error instanceof MageGenerationError) {
    console.log('No output:', error.code);
  } else {
    throw error;
  }
}

Dlaczego SDK

Co SDK robi za ciebie

Jedno wywołanie, gotowe media

run wysyła generację, odpytuje API z zalecanym przez nie opóźnieniem (backoff) i zwraca ukończone zgłoszenie z result.url.

Ponowienia, które nigdy nie kosztują podwójnie

Każde zgłoszenie ma klucz idempotentności. Błędy sieci i serwera są ponawiane z opóźnieniem (backoff), a ponowione zgłoszenie nigdy nie jest rozliczane drugi raz.

Przesyłanie plików jednym wywołaniem

Pliki zbyt duże na data URL trafiają przez podpisany upload, a bilet, żądanie PUT i sprawdzenie rozmiaru obsługujemy za Ciebie.

Czytelne błędy

Odmowy API zawierają status HTTP, kod błędu i identyfikator żądania, a nieudane lub anulowane generacje i przekroczenia czasu mają własne typy błędów.

Typy dla każdego modelu

MangoConfig, CherryConfig i pozostałe są generowane z dokumentacji API, więc edytor podpowiada pola i wychwytuje nieprawidłowe opcje.

Zero zależności

ESM bez zależności uruchomieniowych. Korzysta z wbudowanego w Node.js fetch, a każde wywołanie przyjmuje AbortSignal.

Dokumentacja

SDK TypeScript w skrócie

Te same metody obsługują każdy model; model jest pierwszym argumentem.

MetodaCo robi
mage.run(model, config)Wysyła generowanie, czeka na nie i zwraca ukończone żądanie.
mage.generate(model, config)Wysyła generowanie i od razu zwraca żądanie.
mage.requests.get / cancel / waitOdczytaj, zatrzymaj lub poczekaj na żądanie według ID.
mage.uploads.upload(data)Przesyła plik do 100 MB i zwraca jego URL.
mage.characters / mage.referencesWyświetla, tworzy i usuwa zapisane postaci oraz referencje.
mage.account.get()Twoje saldo Gems.
mage.architectures.list()Aktualny katalog modeli z opcjami i cenami.

Modele

Zacznij od tych modeli

Obraz · od 37 Gems

Guava API

Fotorealizm, który uchodzi za prawdziwe zdjęcie

Obraz · od 135 Gems

Mango API

Nasza flagowa rodzina modeli obrazu

Obraz · od 68 Gems

Nano Banana 2 API

Wyraźny, czytelny tekst, do 4K

Wideo · od 618 Gems

Cherry API

Nasza flagowa rodzina modeli wideo

Wideo · od 245 Gems

Lemon API

Wszystkie funkcje wideo w bardziej przyjaznej cenie

Audio · od 19 Gems

Seed Audio API

Głosy, muzyka i efekty dźwiękowe z jednego promptu

FAQ

Najczęściej zadawane pytania

Czy mogę używać Mage TypeScript SDK w przeglądarce?

Nie. Klucz API wydaje twoje Gems, więc trzymaj go na swoich serwerach. API nie wysyła nagłówków CORS, więc przeglądarki nie mogą wywoływać go bezpośrednio; wywołuj własny backend, a on niech korzysta z SDK.

Czy SDK TypeScript działa z CommonJS?

Pakiet jest tylko w ESM. Node.js 20.19 i nowszy mogą też załadować go przez require() z CommonJS.

Czy SDK TypeScript działa z Next.js?

Tak, w kodzie serwerowym, np. w route handlerach i server actions. SDK jest zbudowane na fetch i standardowych Web API, takich jak AbortSignal, więc inne środowiska serwerowe z fetch też powinny działać, choć CI testuje je na Node.js.

Czy SDK Mage są darmowe i open source?

Tak. SDK i węzły ComfyUI mają licencję MIT na GitHubie, a ich instalacja jest darmowa. Płacisz tylko za wykonane generowania, w Gems, według ceny podanej przy każdym modelu.

Czy nowe modele Mage działają ze starszym SDK?

Tak. Przekaż ID nowego modelu jako ciąg znaków, a zostanie uruchomiony; SDK sprawdza jego konfigurację względem pól wspólnych dla wszystkich modeli. Bot aktualizuje typy za każdym razem, gdy zmienia się dokumentacja API, więc nowe modele dostają własne typy w następnym wydaniu.

Jak SDK chroni przed podwójną opłatą za ponowione żądanie?

Każde zgłoszenie zawiera nagłówek Idempotency-Key. SDK tworzy nowy klucz dla każdego wywołania i używa go ponownie, gdy samo ponawia to wywołanie, więc ponowione zgłoszenie zwraca pierwotne żądanie i nic nie kosztuje.

Czy SDK są stabilne?

Są w wersji beta (0.x), więc wersja minor może jeszcze coś w nich zmienić. Samo API ma osobne wersjonowanie i pozostaje stabilne w ramach v1.

Ile kosztuje Mage API?

Nie ma subskrypcji ani opłaty miesięcznej. Każda generacja jest płatna w Gems według ceny danego modelu, a 1000 Gems kosztuje 1 USD w standardowym pakiecie. Strona każdego modelu podaje cenę przy ustawieniach domyślnych, a każda odpowiedź zawiera dokładną kwotę opłaty. Za nieudaną generację zwracamy koszt, ale nie w przypadku zablokowania jej przez politykę treści Mage. Zapytanie, na które nie wystarcza Twojego salda, zostanie odrzucone, zanim cokolwiek zostanie pobrane.

Czy potrzebuję członkostwa w Mage, żeby korzystać z API?

Nie. API działa wyłącznie na Gems. Plany członkowskie i ich nielimitowane generowanie w aplikacji nie dotyczą zapytań API, więc może z niego korzystać każde konto Mage z Gems.

Czy mogę używać wyników z API komercyjnie?

Tak. Treści tworzone w Mage, także przez API i serwer MCP, możesz wykorzystywać komercyjnie. Podanie autorstwa jest mile widziane, ale nie jest wymagane.

Zacznij tworzyć z Mage

Jedno konto, jedno saldo Gems, wszystkie modele. Płacisz tylko za to, co wygenerujesz.

Zdobądź klucz APIPrzeczytaj przewodnik po TypeScript

Powiązane