Tek çağrı, hazır medya
run üretimi gönderir, API'nin önerdiği geri çekilme süreleriyle durumu yoklar ve result.url içeren tamamlanmış isteği döndürür.
Bir bakışta
Mage TypeScript SDK, Mage API'nin resmi ve açık kaynaklı istemcisidir ve @mage-space/sdk adıyla yayımlanır. "npm install @mage-space/sdk" ile kur, MAGE_API_KEY değerini ayarla ve bir model kimliği ile yapılandırmayla mage.run çağırarak 28 modelden herhangi birinden hazır görsel, video veya ses al. Node.js 20.19 veya üstünde ya da fetch destekleyen herhangi bir sunucu çalışma ortamında çalışır; her üretim Gems ile ödenir.
20.19+
Node.js
0
Çalışma zamanı bağımlılıkları
28
Tip tanımlı modeller
MIT
Açık kaynak
Kurulum
@mage-space/sdk paketini projene ekle.
npm install @mage-space/sdkmage.space'te API → API Keys bölümünden bir anahtar oluştur ve dışa aktar. İstemci MAGE_API_KEY değerini okur.
export MAGE_API_KEY="mage_sk_..."run fonksiyonunu bir model kimliği ve yapılandırmasıyla çağır. Sonucu bekler ve döndürür; çıktı result.url adresindedir.
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);Örnekler
Her örnek, MAGE_API_KEY değerini okuyan bir istemciyle başlar.
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],
});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;
}
}Neden SDK
run üretimi gönderir, API'nin önerdiği geri çekilme süreleriyle durumu yoklar ve result.url içeren tamamlanmış isteği döndürür.
Her istek bir idempotency anahtarı taşır. Ağ ve sunucu hataları geri çekilmeyle yeniden denenir, yeniden denenen istek için tekrar ücret alınmaz.
Data URL için fazla büyük dosyalar imzalı yükleme üzerinden gider; bilet, PUT isteği ve boyut kontrolü senin yerine halledilir.
API ret yanıtları HTTP durumunu, hata kodunu ve istek kimliğini taşır; başarısız veya iptal edilen üretimlerin ve zaman aşımlarının kendi hata türleri vardır.
MangoConfig, CherryConfig ve diğerleri API referansından üretilir; böylece editörün alanları tamamlar ve geçersiz seçenekleri yakalar.
Çalışma zamanı bağımlılığı olmayan ESM. Node.js'in yerleşik fetch'ini kullanır ve her çağrı bir AbortSignal alır.
Referans
Aynı yöntemler her modeli kapsar; model ilk argümandır.
| Yöntem | Ne yapar? |
|---|---|
| mage.run(model, config) | Bir üretim gönderir, bitmesini bekler ve tamamlanan isteği döndürür. |
| mage.generate(model, config) | Bir üretim gönderir ve isteği hemen döndürür. |
| mage.requests.get / cancel / wait | Bir isteği kimliğiyle okur, durdurur veya bekler. |
| mage.uploads.upload(data) | En fazla 100 MB'lık bir dosya yükler ve URL'sini döndürür. |
| mage.characters / mage.references | Kayıtlı karakterleri ve referansları listeler, oluşturur ve siler. |
| mage.account.get() | Gems bakiyen. |
| mage.architectures.list() | Seçenekleri ve fiyatlarıyla güncel model kataloğu. |
Modeller
Görsel · 37 Gem'den başlayan fiyatlarla
Fotoğraf sanılacak kadar gerçekçi görseller
Görsel · 135 Gem'den başlayan fiyatlarla
Amiral gemisi görsel model ailemiz
Görsel · 68 Gem'den başlayan fiyatlarla
Net, okunaklı metin, 4K'ya kadar
Video · 618 Gem'den başlayan fiyatlarla
Amiral gemisi video model ailemiz
Video · 245 Gem'den başlayan fiyatlarla
Tüm video özellikleri, daha uygun fiyata
Ses · 19 Gem'den başlayan fiyatlarla
Tek bir prompt'tan sesler, müzik ve ses efektleri
SSS
Hayır. Bir API anahtarı Gems'ini harcar, bu yüzden onu sunucularında tut. API CORS başlıkları göndermez, bu nedenle tarayıcılar onu doğrudan çağıramaz; bunun yerine kendi arka ucunu çağır ve SDK'yı orada kullan.
Paket yalnızca ESM'dir. Node.js 20.19 ve üzeri, onu CommonJS'ten require() ile de yükleyebilir.
Evet, route handler'lar ve server action'lar gibi sunucu kodunda çalışır. SDK, fetch ve AbortSignal gibi standart Web API'leri üzerine kurulduğu için fetch destekleyen diğer sunucu ortamlarında da çalışması beklenir; yine de CI testleri Node.js üzerinde yapılır.
Evet. SDK'lar ve ComfyUI düğümleri GitHub'da MIT lisanslıdır ve kurulumları ücretsizdir. Yalnızca çalıştırdığın üretimler için, her modelin belirtilen fiyatı üzerinden Gems ile ödersin.
Evet. Yeni modelin kimliğini bir metin olarak ver, çalışır; SDK yapılandırmayı her modelin ortak kullandığı alanlara göre kontrol eder. API referansı değiştiğinde bir bot tipleri günceller, böylece yeni modeller kendi tipleriyle bir sonraki sürümde gelir.
Her gönderim bir Idempotency-Key taşır. SDK her çağrı için yeni bir anahtar oluşturur ve o çağrıyı kendisi yeniden denediğinde aynı anahtarı kullanır. Böylece yeniden denenen gönderim orijinal isteği döndürür ve ek ücret almaz.
0.x sürümünde beta aşamasındalar, bu yüzden bir alt sürüm onları değiştirebilir. API'nin kendisi ayrı sürümlenir ve v1 içinde kararlı kalır.
Abonelik veya aylık ücret yoktur. Her üretim, modelin listelenen fiyatı üzerinden Gem ile ödenir; standart pakette 1.000 Gem 1 $ tutarındadır. Her model sayfasında varsayılan ayarların fiyatı yer alır ve her yanıt tam ücreti bildirir. Başarısız olan üretimin ücreti iade edilir; Mage'in içerik politikasına takılanın iade edilmez. Bakiyenin karşılayamadığı istek, hiçbir ücret alınmadan reddedilir.
Hayır. API yalnızca Gem ile çalışır. Üyelik planları ve uygulama içi sınırsız üretim API isteklerine uygulanmaz; yani Gem'i olan her Mage hesabı API'yi kullanabilir.
Evet. Mage ile oluşturduğun içerikler, API ve MCP sunucusu üzerinden oluşturdukların da dahil, ticari olarak kullanılabilir. Atıf yapmanı memnuniyetle karşılarız ama zorunlu değil.
Tek hesap, tek Gems bakiyesi, tüm modeller. Yalnızca ürettiğin kadar öde.