Mage SDK · TypeScript

Mage TypeScript SDK

Node.js से इमेज, वीडियो और ऑडियो जनरेट करें, हर Mage मॉडल के लिए टाइप्ड कॉन्फ़िग के साथ। एक ही कॉल सबमिट करती है, इंतज़ार करती है और नतीजा लौटाती है।

API की पाएंTypeScript गाइड पढ़ेंGitHub पर सोर्स
npm install @mage-space/sdk

एक नज़र में

Mage TypeScript SDK, Mage API का आधिकारिक ओपन-सोर्स क्लाइंट है, जो @mage-space/sdk नाम से प्रकाशित है। "npm install @mage-space/sdk" से इंस्टॉल करें, MAGE_API_KEY सेट करें और मॉडल id व कॉन्फ़िग के साथ mage.run कॉल करें, तो 28 में से किसी भी मॉडल से तैयार इमेज, वीडियो या ऑडियो मिल जाता है। यह Node.js 20.19 या उसके बाद के वर्शन पर, या fetch वाले किसी भी सर्वर रनटाइम पर चलता है, और हर जनरेशन का भुगतान Gems में होता है।

सेटअप

TypeScript SDK इंस्टॉल करें और मॉडल चलाएँ

  1. पैकेज इंस्टॉल करें

    अपने प्रोजेक्ट में @mage-space/sdk जोड़ें।

    npm install @mage-space/sdk
  2. अपनी API key सेट करें

    mage.space पर API → API Keys में key बनाएँ और उसे export करें। क्लाइंट MAGE_API_KEY पढ़ता है।

    export MAGE_API_KEY="mage_sk_..."
  3. जनरेट करें

    मॉडल id और उसके कॉन्फ़िग के साथ run कॉल करें। यह नतीजे का इंतज़ार करके उसे लौटाता है; आउटपुट 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 का व्यावहारिक इस्तेमाल

हर उदाहरण ऐसे क्लाइंट से शुरू होता है जो 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],
});
सेव किए गए कैरेक्टर का इस्तेमाल करें
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 जनरेशन सबमिट करता है, API के सुझाए बैकऑफ़ के साथ पोल करता है और पूरा हुआ रिक्वेस्ट result.url के साथ लौटाता है।

ऐसे रीट्राई जिनमें दोबारा पैसे नहीं लगते

हर सबमिशन के साथ एक आइडेम्पोटेंसी की जाती है। नेटवर्क और सर्वर एरर पर बैकऑफ़ के साथ रीट्राई होता है, और दोबारा भेजे गए सबमिशन का शुल्क कभी दोबारा नहीं लगता।

एक कॉल में अपलोड

डेटा URL के लिए बहुत बड़ी फ़ाइलें साइन्ड अपलोड से जाती हैं, जिसमें टिकट, PUT और साइज़ की जाँच आपके लिए संभाली जाती है।

साफ़ एरर

API के इनकार के साथ HTTP स्टेटस, एरर कोड और रिक्वेस्ट id मिलता है; फ़ेल या रद्द हुए जनरेशन और टाइमआउट के अपने अलग एरर टाइप हैं।

हर मॉडल के लिए टाइप्ड

MangoConfig, CherryConfig और बाकी सब API रेफ़रेंस से जनरेट होते हैं, इसलिए आपका एडिटर फ़ील्ड ऑटोकम्प्लीट करता है और गलत विकल्प पकड़ लेता है।

ज़ीरो डिपेंडेंसी

ESM, बिना किसी रनटाइम डिपेंडेंसी के। यह Node.js के बिल्ट-इन fetch का इस्तेमाल करता है, और हर कॉल AbortSignal लेती है।

रेफ़रेंस

TypeScript SDK एक नज़र में

वही मेथड हर मॉडल पर काम करते हैं; मॉडल पहला आर्ग्युमेंट होता है।

मेथडयह क्या करता है
mage.run(model, config)जनरेशन सबमिट करें, उसका इंतज़ार करें और पूरा हुआ रिक्वेस्ट पाएँ।
mage.generate(model, config)जनरेशन सबमिट करें और रिक्वेस्ट तुरंत पाएँ।
mage.requests.get / cancel / waitid से किसी रिक्वेस्ट को पढ़ें, रोकें या उसका इंतज़ार करें।
mage.uploads.upload(data)100 MB तक की फ़ाइल अपलोड करें और उसका URL पाएँ।
mage.characters / mage.referencesसेव किए गए कैरेक्टर और रेफ़रेंस की सूची देखें, बनाएँ और हटाएँ।
mage.account.get()आपका Gems बैलेंस।
mage.architectures.list()विकल्पों और कीमतों के साथ लाइव मॉडल कैटलॉग।

मॉडल

इन मॉडल से शुरू करें

इमेज · 37 Gems से शुरू

Guava API

ऐसी फ़ोटोरियलिज़्म जो असली तस्वीर जैसी लगे

इमेज · 135 Gems से शुरू

Mango API

हमारी फ़्लैगशिप इमेज फ़ैमिली

इमेज · 68 Gems से शुरू

Nano Banana 2 API

साफ़, पढ़ने योग्य टेक्स्ट, 4K तक

वीडियो · 618 Gems से शुरू

Cherry API

हमारी फ़्लैगशिप वीडियो फ़ैमिली

वीडियो · 245 Gems से शुरू

Lemon API

वीडियो के सारे फ़ीचर, किफ़ायती दाम पर

ऑडियो · 19 Gems से शुरू

Seed Audio API

एक ही प्रॉम्प्ट से आवाज़ें, संगीत और साउंड इफ़ेक्ट

अक्सर पूछे जाने वाले सवाल

अक्सर पूछे जाने वाले सवाल

क्या मैं Mage TypeScript SDK का इस्तेमाल ब्राउज़र में कर सकता/सकती हूँ?

नहीं। API key आपके Gems खर्च करती है, इसलिए उसे अपने सर्वर पर ही रखें। API कोई CORS हेडर नहीं भेजता, इसलिए ब्राउज़र उसे सीधे कॉल नहीं कर सकते; इसके बजाय अपने बैकएंड को कॉल करें और उसी से SDK इस्तेमाल करवाएँ।

क्या TypeScript SDK CommonJS के साथ काम करता है?

पैकेज सिर्फ़ ESM है। Node.js 20.19 और उसके बाद के वर्शन CommonJS से भी इसे require() कर सकते हैं।

क्या TypeScript SDK Next.js के साथ काम करता है?

हाँ, सर्वर कोड में, जैसे राउट हैंडलर और सर्वर एक्शन। SDK fetch और AbortSignal जैसे स्टैंडर्ड Web API पर बना है, इसलिए fetch वाले दूसरे सर्वर रनटाइम भी काम करने चाहिए, हालाँकि CI में इसे Node.js पर टेस्ट किया जाता है।

क्या Mage SDK मुफ़्त और ओपन सोर्स हैं?

हाँ। SDK और ComfyUI नोड्स GitHub पर MIT लाइसेंस के तहत उपलब्ध हैं, और इन्हें इंस्टॉल करना मुफ़्त है। आप सिर्फ़ अपने जनरेशन के लिए भुगतान करते हैं, Gems में, हर मॉडल की बताई गई कीमत पर।

क्या Mage के नए मॉडल पुराने SDK के साथ काम करते हैं?

हाँ। नए मॉडल की id को स्ट्रिंग के रूप में दें और वह चल जाएगा; SDK उसके कॉन्फ़िग को उन फ़ील्ड से मिलाकर जाँचता है जो सभी मॉडल में समान होते हैं। API रेफ़रेंस बदलने पर एक बॉट टाइप अपडेट कर देता है, इसलिए नए मॉडल अगली रिलीज़ में अपने टाइप के साथ आ जाते हैं।

दोबारा भेजे गए रिक्वेस्ट के लिए SDK दो बार भुगतान होने से कैसे बचाते हैं?

हर सबमिशन के साथ एक Idempotency-Key जाती है। SDK हर कॉल के लिए नई key बनाता है और उसी कॉल को खुद दोबारा भेजते समय वही key इस्तेमाल करता है, इसलिए दोबारा भेजा गया सबमिशन मूल रिक्वेस्ट ही लौटाता है और कोई शुल्क नहीं लगता।

क्या SDK स्टेबल हैं?

वे 0.x पर बीटा में हैं, इसलिए किसी माइनर वर्शन में उनमें बदलाव हो सकता है। API का वर्शन अलग से तय होता है और v1 के भीतर स्टेबल रहता है।

Mage API की कीमत कितनी है?

इसमें कोई सब्सक्रिप्शन या मासिक शुल्क नहीं है। हर जेनरेशन का भुगतान Gems में उस मॉडल की सूचीबद्ध कीमत पर होता है, और स्टैंडर्ड पैक में 1,000 Gems की कीमत $1 है। हर मॉडल पेज पर उसकी डिफ़ॉल्ट सेटिंग की कीमत दी गई है, और हर रिस्पॉन्स में सटीक चार्ज बताया जाता है। फ़ेल हुई जेनरेशन का रिफ़ंड मिलता है, लेकिन जिसे Mage की कंटेंट पॉलिसी ब्लॉक करे उसका नहीं। जो रिक्वेस्ट आपका बैलेंस कवर न कर सके, उसे कोई चार्ज लगने से पहले ही अस्वीकार कर दिया जाता है।

क्या API इस्तेमाल करने के लिए मुझे Mage मेंबरशिप चाहिए?

नहीं। API सिर्फ़ Gems से चलता है। मेंबरशिप प्लान और उनकी ऐप में अनलिमिटेड जेनरेशन API रिक्वेस्ट पर लागू नहीं होतीं, इसलिए Gems वाला कोई भी Mage अकाउंट इसे इस्तेमाल कर सकता है।

क्या मैं API के आउटपुट का व्यावसायिक उपयोग कर सकता/सकती हूँ?

हाँ। Mage से बनाया गया कंटेंट, API और MCP server के ज़रिए बनाया गया कंटेंट भी, व्यावसायिक रूप से इस्तेमाल किया जा सकता है। क्रेडिट देना अच्छा लगेगा, लेकिन ज़रूरी नहीं है।

Mage के साथ बनाना शुरू करें

एक अकाउंट, एक Gems बैलेंस, हर मॉडल। भुगतान सिर्फ़ उतना, जितना आप जनरेट करें।

API की पाएंTypeScript गाइड पढ़ें

संबंधित