Mage SDK · Python

Mage Python SDK

सिंक और asyncio क्लाइंट और हर Mage मॉडल के टाइप्ड कॉन्फ़िग के साथ Python से इमेज, वीडियो और ऑडियो जनरेट करें।

API की पाएंPython गाइड पढ़ेंGitHub पर सोर्स
pip install mage-space

एक नज़र में

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

सेटअप

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

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

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

    pip install mage-space
  2. अपनी API key सेट करें

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

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

    मॉडल id और उसके कॉन्फ़िग के साथ run कॉल करें। यह नतीजे का इंतज़ार करके उसे लौटाता है; आउटपुट result.url पर मिलता है।

    from mage_space import Mage
    
    mage = Mage()  # reads MAGE_API_KEY
    
    request = mage.run("mango", {
        "prompt": "Editorial portrait in soft daylight, 35mm film look",
        "aspect_ratio": "4:5",
        "model_id": "mango-v3",
    })
    
    print(request["result"]["url"])

उदाहरण

Python SDK व्यवहार में

हर उदाहरण ऐसे क्लाइंट से शुरू होता है जो MAGE_API_KEY पढ़ता है।

अभी सबमिट करें, बाद में इंतज़ार करें
from mage_space import Mage

mage = Mage()  # reads MAGE_API_KEY

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

final = mage.requests.wait(
    submitted["request_id"],
    timeout=900,
    on_update=lambda request: print(request["status"]),
)
फ़ाइल अपलोड करें
from mage_space import Mage

mage = Mage()  # reads MAGE_API_KEY

clip = mage.uploads.upload("clip.mp4")  # a path, bytes, or a binary file

mage.run("cherry", {
    "prompt": "Restyle this clip as a watercolor painting",
    "videos": [clip["url"]],
})
सेव किए गए कैरेक्टर का इस्तेमाल करें
from mage_space import Mage

mage = Mage()  # reads MAGE_API_KEY

mage.characters.create(
    name="Ana",
    handle="ana",
    image="https://example.com/ana.png",
)

mage.run("mango", {"prompt": "@ana walking through a night market"})
एरर संभालें
from mage_space import Mage, MageAPIError, MageGenerationError

mage = Mage()  # reads MAGE_API_KEY

try:
    mage.run("mango", {"prompt": "A lighthouse at night"})
except MageAPIError as error:
    if error.code == "insufficient_gems":
        print("Gems needed:", error.body["error"]["gems_required"])
    else:
        raise
except MageGenerationError as error:
    print("No output:", error.code)

SDK क्यों

SDK आपके लिए क्या-क्या संभालता है

एक कॉल, तैयार मीडिया

run जनरेशन सबमिट करता है, API के सुझाए बैकऑफ़ के साथ पोल करता है और पूरा हुआ रिक्वेस्ट result.url के साथ लौटाता है।

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

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

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

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

साफ़ एरर

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

सिंक और asyncio

Mage और AsyncMage के सभी मेथड एक जैसे हैं। एसिंक क्लाइंट वेब सर्वर, नोटबुक और ऐसी पाइपलाइन के लिए सही है जो एक साथ कई जनरेशन चलाती हैं।

टाइप्ड कॉन्फ़िग

हर मॉडल के लिए एक TypedDict है, जैसे MangoConfig, जो API रेफ़रेंस से जनरेट होता है। कॉन्फ़िग को इससे एनोटेट करें और आपका टाइप चेकर फ़ील्ड जाँच लेगा।

रेफ़रेंस

Python 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

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

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

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

क्या Python SDK asyncio को सपोर्ट करता है?

हाँ। AsyncMage में Mage जैसे ही मेथड हैं, जिन्हें await किया जाता है, और यह एसिंक कॉन्टेक्स्ट मैनेजर के रूप में भी काम करता है।

SDK कौन-से Python वर्ज़न सपोर्ट करता है?

Python 3.10 और उसके बाद के वर्ज़न। इसकी निर्भरताएँ केवल httpx और typing-extensions हैं।

क्या मैं Python SDK को नोटबुक या डेटा पाइपलाइन में इस्तेमाल कर सकता/सकती हूँ?

हाँ। स्क्रिप्ट और नोटबुक में Mage इस्तेमाल करें, या एक साथ कई जनरेशन चलाने के लिए asyncio के साथ AsyncMage। अकाउंट एक समय में अधिकतम 20 जनरेशन चला सकता है।

क्या 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 की पाएंPython गाइड पढ़ें

संबंधित