Μετάβαση στο περιεχόμενο

Mage SDK · TypeScript

Το Mage TypeScript SDK

Δημιούργησε εικόνες, βίντεο και ήχο από το Node.js με τυποποιημένες ρυθμίσεις για κάθε μοντέλο της Mage. Μία κλήση υποβάλλει, περιμένει και επιστρέφει το αποτέλεσμα.

npm install @mage-space/sdk

Με μια ματιά

Το Mage TypeScript SDK είναι ο επίσημος client ανοιχτού κώδικα για το Mage API, δημοσιευμένος ως @mage-space/sdk. Εγκατάστησέ το με «npm install @mage-space/sdk», όρισε το MAGE_API_KEY και κάλεσε το mage.run με ένα id μοντέλου και μια ρύθμιση, για να πάρεις έτοιμες εικόνες, βίντεο ή ήχο από οποιοδήποτε από τα 28 μοντέλα. Τρέχει σε Node.js 20.19 ή νεότερο, ή σε οποιοδήποτε περιβάλλον διακομιστή με fetch, και κάθε δημιουργία πληρώνεται σε Gems.

  • 20.19+Node.js
  • 0Εξαρτήσεις χρόνου εκτέλεσης
  • 28Μοντέλα με τύπους
  • MITΑνοιχτός κώδικας

Ρύθμιση

Εγκατάστησε το TypeScript SDK και τρέξε ένα μοντέλο

  1. Εγκατάσταση του πακέτου

    Πρόσθεσε το @mage-space/sdk στο έργο σου.

    npm install @mage-space/sdk
  2. Ορισμός του κλειδιού API

    Δημιούργησε ένα κλειδί στο API → API Keys στο mage.space και κάνε export. Ο client διαβάζει το MAGE_API_KEY.

    export MAGE_API_KEY="mage_sk_..."
  3. Δημιουργία

    Κάλεσε το run με ένα id μοντέλου και τη ρύθμισή του. Περιμένει το αποτέλεσμα και το επιστρέφει· η έξοδος βρίσκεται στο 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);

Παραδείγματα

Το TypeScript SDK στην πράξη

Κάθε παράδειγμα ξεκινά από έναν client που διαβάζει το MAGE_API_KEY.

Υποβολή τώρα, αναμονή αργότερα
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),
});
Μεταφόρτωση αρχείου
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],
});
Χρήση αποθηκευμένου Character
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' });
Διαχείριση σφαλμάτων
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;
  }
}

Γιατί το SDK

Τι αναλαμβάνει το SDK για εσένα

  • Μία κλήση, έτοιμο πολυμέσο

    Το run υποβάλλει τη δημιουργία, κάνει polling με το backoff που προτείνει το API και επιστρέφει το ολοκληρωμένο αίτημα με το result.url.

  • Επαναλήψεις χωρίς διπλή χρέωση

    Κάθε υποβολή φέρει ένα idempotency key. Τα σφάλματα δικτύου και διακομιστή επαναλαμβάνονται με backoff και μια υποβολή που επαναλαμβάνεται δεν χρεώνεται ξανά.

  • Uploads με μία κλήση

    Τα αρχεία που είναι πολύ μεγάλα για data URL περνούν από υπογεγραμμένο upload, με το ticket, το PUT και τον έλεγχο μεγέθους να γίνονται για σένα.

  • Σαφή σφάλματα

    Οι απορρίψεις του API περιλαμβάνουν το HTTP status, τον κωδικό σφάλματος και το request id· οι αποτυχημένες ή ακυρωμένες δημιουργίες και τα timeouts έχουν δικούς τους τύπους σφαλμάτων.

  • Τυποποιημένο για κάθε μοντέλο

    Τα MangoConfig, CherryConfig και τα υπόλοιπα παράγονται από την τεκμηρίωση του API, ώστε ο editor σου να συμπληρώνει πεδία και να εντοπίζει μη έγκυρες επιλογές.

  • Μηδενικές εξαρτήσεις

    ESM χωρίς εξαρτήσεις χρόνου εκτέλεσης. Χρησιμοποιεί το fetch που είναι ενσωματωμένο στο Node.js και κάθε κλήση δέχεται ένα AbortSignal.

Αναφορά

Το TypeScript SDK με μια ματιά

Οι ίδιες μέθοδοι καλύπτουν κάθε μοντέλο· το μοντέλο είναι το πρώτο όρισμα.

ΜέθοδοςΤι κάνει
mage.run(model, config)Υποβάλλει μια δημιουργία, περιμένει να ολοκληρωθεί και επιστρέφει το ολοκληρωμένο αίτημα.
mage.generate(model, config)Υποβάλλει μια δημιουργία και επιστρέφει αμέσως το αίτημα.
mage.requests.get / cancel / waitΔιαβάζει, σταματά ή περιμένει ένα αίτημα με βάση το id.
mage.uploads.upload(data)Ανεβάζει αρχείο έως 100 MB και επιστρέφει το URL του.
mage.characters / mage.referencesΕμφανίζει, δημιουργεί και διαγράφει αποθηκευμένα Characters και References.
mage.account.get()Το υπόλοιπο των Gems σου.
mage.architectures.list()Ο ζωντανός κατάλογος μοντέλων με επιλογές και τιμές.

Μοντέλα

Ξεκίνα με αυτά τα μοντέλα

  • Εικόνα · από 37 Gems

    Guava API

    Φωτορεαλισμός που περνά για φωτογραφία

  • Εικόνα · από 135 Gems

    Mango API

    Η κορυφαία οικογένεια μοντέλων εικόνας μας

  • Εικόνα · από 51 Gems

    Nano Banana 2 API

    Καθαρό, ευανάγνωστο κείμενο, έως 4K

  • Βίντεο · από 618 Gems

    Cherry API

    Η κορυφαία οικογένεια μοντέλων βίντεο μας

  • Βίντεο · από 245 Gems

    Lemon API

    Όλες οι δυνατότητες βίντεο, σε πιο προσιτή τιμή

  • Ήχος · από 19 Gems

    Seed Audio API

    Φωνές, μουσική και ηχητικά εφέ από ένα μόνο prompt

Συχνές ερωτήσεις

Συχνές ερωτήσεις

Μπορώ να χρησιμοποιήσω το Mage TypeScript SDK στον browser;
Όχι. Ένα κλειδί API ξοδεύει τα Gems σου, γι' αυτό κράτα το στους διακομιστές σου. Το API δεν στέλνει κεφαλίδες CORS, άρα οι browsers δεν μπορούν να το καλέσουν απευθείας· κάλεσε το δικό σου backend και άσε το να χρησιμοποιεί το SDK.
Λειτουργεί το TypeScript SDK με CommonJS;
Το πακέτο είναι μόνο ESM. Από το Node.js 20.19 και μετά μπορείς να το φορτώσεις και με require() από CommonJS.
Λειτουργεί το TypeScript SDK με το Next.js;
Ναι, σε κώδικα διακομιστή, όπως route handlers και server actions. Το SDK βασίζεται στο fetch και σε τυπικά Web APIs όπως το AbortSignal, επομένως θα πρέπει να λειτουργεί και σε άλλα περιβάλλοντα διακομιστή με fetch, αν και το CI το δοκιμάζει στο Node.js.
Είναι τα Mage SDK δωρεάν και ανοιχτού κώδικα;
Ναι. Τα SDK και οι κόμβοι ComfyUI έχουν άδεια MIT στο GitHub και η εγκατάστασή τους είναι δωρεάν. Πληρώνεις μόνο για τις δημιουργίες που εκτελείς, σε Gems, στην τιμή που αναφέρεται για κάθε μοντέλο.
Λειτουργούν τα νέα μοντέλα της Mage με παλαιότερο SDK;
Ναι. Πέρασε το id του νέου μοντέλου ως string και θα τρέξει· το SDK ελέγχει τη ρύθμισή του με βάση τα πεδία που μοιράζονται όλα τα μοντέλα. Ένα bot ενημερώνει τους τύπους κάθε φορά που αλλάζει η τεκμηρίωση του API, οπότε τα νέα μοντέλα έρχονται με τους δικούς τους τύπους στην επόμενη έκδοση.
Πώς αποφεύγουν τα SDK τη διπλή χρέωση όταν ένα αίτημα επαναλαμβάνεται;
Κάθε υποβολή περιλαμβάνει ένα Idempotency-Key. Το SDK δημιουργεί νέο κλειδί για κάθε κλήση και το επαναχρησιμοποιεί όταν επαναλαμβάνει μόνο του την ίδια κλήση, έτσι μια υποβολή που επαναλαμβάνεται επιστρέφει το αρχικό αίτημα και δεν χρεώνει τίποτα.
Είναι σταθερά τα SDK;
Βρίσκονται σε beta στην έκδοση 0.x, επομένως μια δευτερεύουσα έκδοση (minor) μπορεί ακόμη να τα αλλάξει. Το ίδιο το API έχει ξεχωριστή αρίθμηση εκδόσεων και παραμένει σταθερό μέσα στο v1.
Πόσο κοστίζει το Mage API;
Δεν υπάρχει συνδρομή ούτε μηνιαία χρέωση. Κάθε δημιουργία πληρώνεται σε Gems με την τιμή που αναγράφεται για το μοντέλο της, και 1.000 Gems κοστίζουν $1 στο τυπικό πακέτο. Κάθε σελίδα μοντέλου δείχνει την τιμή με τις προεπιλεγμένες ρυθμίσεις και κάθε απάντηση αναφέρει την ακριβή χρέωση. Αν μια δημιουργία αποτύχει, γίνεται επιστροφή· αν την αποκλείσει η πολιτική περιεχομένου του Mage, δεν γίνεται. Ένα αίτημα που το υπόλοιπό σου δεν καλύπτει απορρίπτεται πριν γίνει οποιαδήποτε χρέωση.
Χρειάζομαι συνδρομή στο Mage για να χρησιμοποιήσω το API;
Όχι. Το API λειτουργεί αποκλειστικά με Gems. Τα πλάνα συνδρομής και η απεριόριστη δημιουργία μέσα στην εφαρμογή δεν ισχύουν για αιτήματα API, οπότε οποιοσδήποτε λογαριασμός Mage με Gems μπορεί να το καλέσει.
Μπορώ να χρησιμοποιήσω τα αποτελέσματα του API εμπορικά;
Ναι. Το περιεχόμενο που δημιουργείς με το Mage, μεταξύ άλλων μέσω του API και του MCP server, μπορεί να χρησιμοποιηθεί εμπορικά. Η αναφορά στην πηγή είναι ευπρόσδεκτη αλλά δεν είναι υποχρεωτική.

Ξεκίνα να δημιουργείς με το Mage

Ένας λογαριασμός, ένα υπόλοιπο Gems, όλα τα μοντέλα. Πληρώνεις μόνο για ό,τι δημιουργείς.