SDK Mage · TypeScript

L'SDK TypeScript di Mage

Genera immagini, video e audio da Node.js con configurazioni tipizzate per ogni modello Mage. Una sola chiamata invia la richiesta, attende e restituisce il risultato.

Ottieni una chiave APILeggi la guida TypeScriptCodice sorgente su GitHub
npm install @mage-space/sdk

In breve

L'SDK TypeScript di Mage è il client ufficiale open source per l'API di Mage, pubblicato come @mage-space/sdk. Installalo con "npm install @mage-space/sdk", imposta MAGE_API_KEY e chiama mage.run con l'id di un modello e una configurazione per ottenere immagini, video o audio da uno qualsiasi dei 28 modelli. Funziona con Node.js 20.19 o successivo, o con qualsiasi runtime server con fetch, e ogni generazione si paga in Gems.

Configurazione

Installa l'SDK TypeScript ed esegui un modello

  1. Installa il pacchetto

    Aggiungi @mage-space/sdk al tuo progetto.

    npm install @mage-space/sdk
  2. Imposta la tua chiave API

    Crea una chiave in API → API Keys su mage.space ed esportala. Il client legge MAGE_API_KEY.

    export MAGE_API_KEY="mage_sk_..."
  3. Genera

    Chiama run con l'id di un modello e la sua configurazione. Attende il risultato e lo restituisce; l'output si trova in 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);

Esempi

L'SDK TypeScript in pratica

Ogni esempio parte da un client che legge MAGE_API_KEY.

Invia ora, attendi dopo
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),
});
Carica un file
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],
});
Usa un personaggio salvato
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' });
Gestisci gli errori
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;
  }
}

Perché l'SDK

Cosa fa l'SDK al posto tuo

Una chiamata, contenuto pronto

run invia la generazione, fa polling con il backoff consigliato dall'API e restituisce la richiesta completata con result.url.

Retry che non si pagano mai due volte

Ogni invio include una chiave di idempotenza. Gli errori di rete e del server vengono ritentati con backoff, e un invio ritentato non viene mai addebitato di nuovo.

Upload in una sola chiamata

I file troppo grandi per un data URL passano da un upload firmato, con ticket, PUT e controllo delle dimensioni gestiti al posto tuo.

Errori chiari

I rifiuti dell'API includono stato HTTP, codice di errore e ID della richiesta; generazioni fallite o annullate e timeout hanno tipi di errore dedicati.

Tipizzato per ogni modello

MangoConfig, CherryConfig e gli altri sono generati dal riferimento API, così il tuo editor completa i campi e segnala le opzioni non valide.

Zero dipendenze

ESM senza dipendenze runtime. Usa il fetch integrato in Node.js e ogni chiamata accetta un AbortSignal.

Riferimento

L'SDK TypeScript in breve

Gli stessi metodi valgono per ogni modello; il modello è il primo argomento.

MetodoCosa fa
mage.run(model, config)Invia una generazione, attende il completamento e restituisce la richiesta completata.
mage.generate(model, config)Invia una generazione e restituisce subito la richiesta.
mage.requests.get / cancel / waitLeggi, interrompi o attendi una richiesta tramite id.
mage.uploads.upload(data)Carica un file fino a 100 MB e restituisce il suo URL.
mage.characters / mage.referencesElenca, crea ed elimina personaggi e riferimenti salvati.
mage.account.get()Il tuo saldo di Gems.
mage.architectures.list()Il catalogo dei modelli in tempo reale con opzioni e prezzi.

Modelli

Inizia con questi modelli

Immagine · da 37 Gems

API Guava

Un fotorealismo che sembra una vera fotografia

Immagine · da 135 Gems

API Mango

La nostra famiglia di modelli immagine di punta

Immagine · da 68 Gems

API Nano Banana 2

Testo nitido e leggibile, fino a 4K

Video · da 618 Gems

API Cherry

La nostra famiglia di modelli video di punta

Video · da 245 Gems

API Lemon

Tutte le funzioni video, a un prezzo più accessibile

Audio · da 19 Gems

API Seed Audio

Voci, musica ed effetti sonori da un unico prompt

FAQ

Domande frequenti

Posso usare l'SDK TypeScript di Mage nel browser?

No. Una chiave API spende i tuoi Gems, quindi tienila sui tuoi server. L'API non invia header CORS, quindi i browser non possono chiamarla direttamente: chiama invece il tuo backend e lascia che sia lui a usare l'SDK.

L'SDK TypeScript funziona con CommonJS?

Il pacchetto è solo ESM. Da Node.js 20.19 in poi è possibile usarlo anche con require() da CommonJS.

L'SDK TypeScript funziona con Next.js?

Sì, nel codice server, come i route handler e le server action. L'SDK si basa su fetch e su API Web standard come AbortSignal, quindi dovrebbe funzionare anche con altri runtime server con fetch, anche se la CI lo testa su Node.js.

Gli SDK di Mage sono gratuiti e open source?

Sì. Gli SDK e i nodi ComfyUI hanno licenza MIT su GitHub e installarli è gratis. Paghi solo le generazioni che esegui, in Gems, al prezzo indicato per ogni modello.

I nuovi modelli Mage funzionano con un SDK più vecchio?

Sì. Passa l'id del nuovo modello come stringa e il modello viene eseguito: l'SDK controlla la configurazione in base ai campi che tutti i modelli hanno in comune. Un bot aggiorna i tipi ogni volta che cambia il riferimento API, quindi i nuovi modelli arrivano con i propri tipi nella release successiva.

Come evitano gli SDK di pagare due volte per una richiesta ripetuta?

Ogni invio include una Idempotency-Key. L'SDK crea una nuova chiave per ogni chiamata e la riutilizza quando ripete quella stessa chiamata, così un invio ripetuto restituisce la richiesta originale e non addebita nulla.

Gli SDK sono stabili?

Sono in beta alla versione 0.x, quindi una versione minor può ancora modificarli. L'API ha un versionamento separato e resta stabile all'interno della v1.

Quanto costa l'API di Mage?

Non ci sono abbonamenti né canoni mensili. Ogni generazione si paga in Gems al prezzo indicato per il suo modello, e 1.000 Gems costano 1 $ con il pacchetto standard. La pagina di ogni modello riporta il prezzo con le impostazioni predefinite e ogni risposta indica l'addebito esatto. Se una generazione fallisce, viene rimborsata; se la blocca la content policy di Mage, no. Una richiesta che il tuo saldo non copre viene rifiutata prima di qualsiasi addebito.

Mi serve un abbonamento a Mage per usare l'API?

No. L'API funziona solo con i Gems. I piani di abbonamento e la generazione illimitata nell'app non valgono per le richieste API, quindi qualsiasi account Mage con dei Gems può usarla.

Posso usare a fini commerciali i contenuti generati con l'API?

Sì. I contenuti che crei con Mage, anche tramite l'API e il server MCP, possono essere usati a fini commerciali. L'attribuzione è gradita ma non obbligatoria.

Inizia a creare con Mage

Un solo account, un solo saldo di Gems, tutti i modelli. Paghi solo ciò che generi.

Ottieni una chiave APILeggi la guida TypeScript

Correlati