Treci la conținut

SDK Mage · Python

SDK-ul Mage pentru Python

Generează imagini, video și audio din Python, cu clienți sync și asyncio și configurări tipizate pentru fiecare model Mage.

pip install mage-space

Pe scurt

SDK-ul Mage pentru Python este clientul oficial open source pentru API-ul Mage, publicat ca mage-space. Instalează-l cu „pip install mage-space”, setează MAGE_API_KEY și apelează mage.run cu un id de model și o configurare, ca să primești imagini, video sau audio gata făcute de la oricare dintre cele 28 de modele. Rulează pe Python 3.10 sau mai nou, iar fiecare generare se plătește în Gems.

  • 3.10+Python
  • httpxClient HTTP
  • 28Modele tipizate
  • MITOpen source

Configurare

Instalează SDK-ul Python și rulează un model

  1. Instalează pachetul

    Adaugă mage-space în proiectul tău.

    pip install mage-space
  2. Setează cheia API

    Creează o cheie în API → API Keys pe mage.space și exportă-o. Clientul citește MAGE_API_KEY.

    export MAGE_API_KEY="mage_sk_..."
  3. Generează

    Apelează run cu un id de model și configurația lui. Așteaptă rezultatul și îl returnează; fișierul generat se află la 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"])

Exemple

SDK-ul Python în practică

Fiecare exemplu pornește de la un client care citește MAGE_API_KEY.

Trimite acum, așteaptă mai târziu
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"]),
)
Încarcă un fișier
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"]],
})
Folosește un personaj salvat
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"})
Gestionează erorile
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)

De ce SDK-ul

Ce face SDK-ul pentru tine

  • Un apel, conținut media gata

    run trimite cererea de generare, face polling cu backoff-ul recomandat de API și se rezolvă cu cererea finalizată, împreună cu result.url.

  • Reîncercări care nu se plătesc de două ori

    Fiecare trimitere poartă o cheie de idempotență. Erorile de rețea și de server sunt reîncercate cu backoff, iar o trimitere reîncercată nu este taxată niciodată a doua oară.

  • Încărcări dintr-un singur apel

    Fișierele prea mari pentru un URL de date trec printr-o încărcare semnată, iar tichetul, PUT-ul și verificarea dimensiunii sunt gestionate pentru tine.

  • Erori clare

    Refuzurile API includ statusul HTTP, codul de eroare și ID-ul cererii; generările eșuate sau anulate și expirările de timp au propriile tipuri de erori.

  • Sync și asyncio

    Mage și AsyncMage au aceleași metode. Clientul async se potrivește pentru servere web, notebook-uri și pipeline-uri care rulează multe generări simultan.

  • Configurări tipizate

    Fiecare model are un TypedDict, precum MangoConfig, generat din referința API. Adnotează o configurare cu el, iar verificatorul de tipuri îți verifică câmpurile.

Referință

SDK-ul Python pe scurt

Aceleași metode acoperă toate modelele; modelul este primul argument.

MetodăCe face
mage.run(model, config)Trimite o generare, așteaptă finalizarea ei și returnează cererea completă.
mage.generate(model, config)Trimite o generare și returnează imediat cererea.
mage.requests.get / cancel / waitCitește, oprește sau așteaptă o cerere după id.
mage.uploads.upload(data)Încarcă o cale, bytes sau un fișier de până la 100 MB și returnează URL-ul lui.
mage.characters / mage.referencesListează, creează și șterge personaje și referințe salvate.
mage.account.get()Soldul tău de Gems.
mage.architectures.list()Catalogul de modele actualizat, cu opțiuni și prețuri.

Modele

Începe cu aceste modele

  • Imagine · de la 37 de Gems

    API Guava

    Fotorealism care trece drept fotografie

  • Imagine · de la 135 de Gems

    API Mango

    Familia noastră principală de modele de imagine

  • Imagine · de la 51 de Gems

    API Nano Banana 2

    Text clar și lizibil, până la 4K

  • Video · de la 618 Gems

    API Cherry

    Familia noastră principală de modele video

  • Video · de la 245 de Gems

    API Lemon

    Toate funcțiile video, la un preț mai prietenos

  • Audio · de la 19 Gems

    API Seed Audio

    Voci, muzică și efecte sonore dintr-un singur prompt

Întrebări frecvente

Întrebări frecvente

Acceptă SDK-ul Python asyncio?
Da. AsyncMage are aceleași metode ca Mage, cu await, și funcționează ca manager de context async.
Ce versiuni de Python acceptă SDK-ul?
Python 3.10 și mai noi. Singurele dependențe sunt httpx și typing-extensions.
Pot folosi SDK-ul Python într-un notebook sau într-un pipeline de date?
Da. Folosește Mage în scripturi și notebook-uri, sau AsyncMage cu asyncio ca să rulezi multe generări simultan. Contul poate avea până la 20 de generări în curs în același timp.
Sunt SDK-urile Mage gratuite și open source?
Da. SDK-urile și nodurile ComfyUI au licență MIT pe GitHub, iar instalarea lor este gratuită. Plătești doar generările pe care le rulezi, în Gems, la prețul afișat pentru fiecare model.
Funcționează modelele Mage noi cu un SDK mai vechi?
Da. Transmite id-ul noului model ca șir de caractere și rulează; SDK-ul verifică configurația față de câmpurile comune tuturor modelelor. Un bot actualizează tipurile ori de câte ori se schimbă referința API, așa că modelele noi apar cu propriile tipuri în versiunea următoare.
Cum evită SDK-urile să plătești de două ori pentru o cerere reîncercată?
Fiecare trimitere conține un Idempotency-Key. SDK-ul creează o cheie nouă pentru fiecare apel și o reutilizează când reia el însuși acel apel, așa că o trimitere reîncercată returnează cererea inițială și nu se taxează nimic.
Sunt SDK-urile stabile?
Sunt în beta, la versiunea 0.x, așa că o versiune minoră le mai poate modifica. API-ul în sine are versiuni separate și rămâne stabil în cadrul v1.
Cât costă API-ul Mage?
Nu există abonament sau taxă lunară. Fiecare generare se plătește în Gems, la prețul afișat al modelului, iar 1.000 de Gems costă 1 $ la pachetul standard. Pagina fiecărui model afișează prețul cu setările implicite, iar fiecare răspuns indică taxarea exactă. O generare eșuată este rambursată; una blocată de politica de conținut Mage nu este. O cerere pe care soldul tău nu o poate acoperi este refuzată înainte de orice taxare.
Am nevoie de un abonament Mage ca să folosesc API-ul?
Nu. API-ul funcționează exclusiv cu Gems. Planurile de abonament și generarea nelimitată din aplicație nu se aplică cererilor API, deci orice cont Mage cu Gems îl poate apela.
Pot folosi rezultatele din API în scop comercial?
Da. Conținutul creat cu Mage, inclusiv prin API și serverul MCP, poate fi folosit în scop comercial. Menționarea sursei este apreciată, dar nu este obligatorie.

Începe să construiești cu Mage

Un singur cont, un singur sold de Gems, toate modelele. Plătești doar pentru ce generezi.