Mage SDK · Python

De Mage Python SDK

Genereer afbeeldingen, video en audio vanuit Python met sync- en asyncio-clients en getypeerde configs voor elk Mage-model.

Vraag een API-sleutel aanLees de Python-handleidingBroncode op GitHub
pip install mage-space

In één oogopslag

De Mage Python SDK is de officiële open-sourceclient voor de Mage API, gepubliceerd als mage-space. Installeer hem met "pip install mage-space", stel MAGE_API_KEY in en roep mage.run aan met een model-id en een config om kant-en-klare afbeeldingen, video of audio te krijgen van een van de 28 modellen. Hij draait op Python 3.10 of nieuwer en elke generatie betaal je met Gems.

Instellen

Installeer de Python SDK en draai een model

  1. Installeer het pakket

    Voeg mage-space toe aan je project.

    pip install mage-space
  2. Stel je API-sleutel in

    Maak een sleutel aan via API → API Keys op mage.space en exporteer die. De client leest MAGE_API_KEY.

    export MAGE_API_KEY="mage_sk_..."
  3. Genereer

    Roep run aan met een model-id en de bijbehorende config. De functie wacht op het resultaat en geeft het terug; de output staat in 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"])

Voorbeelden

De Python SDK in de praktijk

Elk voorbeeld begint met een client die MAGE_API_KEY leest.

Nu versturen, later wachten
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"]),
)
Een bestand uploaden
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"]],
})
Een opgeslagen personage gebruiken
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"})
Fouten afhandelen
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)

Waarom de SDK

Wat de SDK voor je regelt

Eén aanroep, kant-en-klare media

run verstuurt de generatie, pollt met de backoff die de API aanbeveelt en levert de voltooide aanvraag op met result.url.

Nieuwe pogingen zonder dubbel te betalen

Elke aanvraag heeft een idempotentiesleutel. Netwerkfouten en serverfouten worden met backoff opnieuw geprobeerd en een opnieuw verstuurde aanvraag wordt nooit nogmaals in rekening gebracht.

Uploads in één aanroep

Bestanden die te groot zijn voor een data-URL gaan via een ondertekende upload. Het ticket, de PUT en de groottecontrole worden voor je afgehandeld.

Duidelijke foutmeldingen

Weigeringen van de API bevatten hun HTTP-status, foutcode en aanvraag-ID. Mislukte of geannuleerde generaties en time-outs hebben elk hun eigen fouttype.

Sync en asyncio

Mage en AsyncMage hebben dezelfde methoden. De async-client past goed bij webservers, notebooks en pipelines die veel generaties tegelijk draaien.

Getypeerde configs

Elk model heeft een TypedDict, zoals MangoConfig, gegenereerd uit de API-referentie. Annoteer een config ermee en je typechecker controleert de velden.

Referentie

De Python SDK in één oogopslag

Dezelfde methoden gelden voor elk model; het model is het eerste argument.

MethodeWat het doet
mage.run(model, config)Verstuur een generatie, wacht erop en geef het voltooide verzoek terug.
mage.generate(model, config)Verstuur een generatie en geef het verzoek direct terug.
mage.requests.get / cancel / waitEen verzoek opvragen, stoppen of erop wachten via id.
mage.uploads.upload(data)Upload een pad, bytes of bestand van maximaal 100 MB en krijg de URL terug.
mage.characters / mage.referencesOpgeslagen personages en referenties weergeven, aanmaken en verwijderen.
mage.account.get()Je Gems-saldo.
mage.architectures.list()De actuele modelcatalogus met opties en prijzen.

Modellen

Begin met deze modellen

Afbeelding · vanaf 37 Gems

Guava API

Fotorealisme dat voor een echte foto doorgaat

Afbeelding · vanaf 135 Gems

Mango API

Onze vlaggenschip-afbeeldingsfamilie

Afbeelding · vanaf 68 Gems

Nano Banana 2 API

Scherpe, leesbare tekst, tot 4K

Video · vanaf 618 Gems

Cherry API

Onze vlaggenschip-videofamilie

Video · vanaf 245 Gems

Lemon API

Alle videofuncties, tegen een vriendelijkere prijs

Audio · vanaf 19 Gems

Seed Audio API

Stemmen, muziek en geluidseffecten vanuit één prompt

FAQ

Veelgestelde vragen

Ondersteunt de Python SDK asyncio?

Ja. AsyncMage heeft dezelfde methoden als Mage, met await, en werkt als async contextmanager.

Welke Python-versies ondersteunt de SDK?

Python 3.10 en nieuwer. De enige afhankelijkheden zijn httpx en typing-extensions.

Kan ik de Python SDK in een notebook of data pipeline gebruiken?

Ja. Gebruik Mage in scripts en notebooks, of AsyncMage met asyncio om veel generaties tegelijk te draaien. Het account kan tot 20 generaties tegelijk laten lopen.

Zijn de Mage SDK's gratis en open source?

Ja. De SDK's en de ComfyUI-nodes hebben een MIT-licentie op GitHub en installeren kost niks. Je betaalt alleen voor de generaties die je uitvoert, in Gems, tegen de vermelde prijs van elk model.

Werken nieuwe Mage-modellen met een oudere SDK?

Ja. Geef de id van het nieuwe model door als string en het draait; de SDK controleert de config aan de hand van de velden die alle modellen delen. Een bot werkt de types bij zodra de API-referentie verandert, dus nieuwe modellen komen met hun eigen types mee in de volgende release.

Hoe voorkomen de SDK's dat je twee keer betaalt voor een opnieuw verzonden verzoek?

Elke aanvraag bevat een Idempotency-Key. De SDK maakt per aanroep een nieuwe sleutel en gebruikt die opnieuw als hij die aanroep zelf opnieuw probeert. Zo geeft een herhaalde aanvraag het oorspronkelijke verzoek terug en worden er geen kosten in rekening gebracht.

Zijn de SDK's stabiel?

Ze zijn in bèta op 0.x, dus een minor-versie kan ze nog wijzigen. De API zelf heeft een aparte versienummering en blijft stabiel binnen v1.

Hoeveel kost de Mage API?

Er is geen abonnement of maandelijks bedrag. Elke generatie betaal je in Gems tegen de vermelde prijs van het model, en 1.000 Gems kosten $1 met het standaardpakket. Op elke modelpagina staat de prijs met standaardinstellingen en elke respons toont de exacte kosten. Een mislukte generatie wordt terugbetaald; een generatie die door het contentbeleid van Mage wordt geblokkeerd niet. Een aanvraag die je saldo niet dekt, wordt geweigerd voordat er iets in rekening wordt gebracht.

Heb ik een Mage-lidmaatschap nodig om de API te gebruiken?

Nee. De API werkt alleen met Gems. Lidmaatschappen en hun onbeperkte generatie in de app gelden niet voor API-aanvragen, dus elk Mage-account met Gems kan de API aanroepen.

Mag ik API-uitvoer commercieel gebruiken?

Ja. Content die je met Mage maakt, ook via de API en de MCP-server, mag je commercieel gebruiken. Naamsvermelding wordt gewaardeerd, maar is niet verplicht.

Begin met bouwen met Mage

Eén account, één Gems-saldo, alle modellen. Je betaalt alleen voor wat je genereert.

Vraag een API-sleutel aanLees de Python-handleiding

Gerelateerd