SDK Mage · Python

Le SDK Python de Mage

Génère des images, des vidéos et de l'audio depuis Python avec des clients synchrone et asyncio, et des configurations typées pour chaque modèle Mage.

Obtenir une clé d'APILire le guide PythonCode source sur GitHub
pip install mage-space

En un coup d’œil

Le SDK Python de Mage est le client officiel et open source de l'API Mage, publié sous le nom mage-space. Installe-le avec « pip install mage-space », définis MAGE_API_KEY, puis appelle mage.run avec un identifiant de modèle et une configuration pour obtenir des images, des vidéos ou de l'audio finalisés avec l'un des 28 modèles. Il fonctionne avec Python 3.10 ou version ultérieure, et chaque génération est payée en Gems.

Configuration

Installe le SDK Python et lance un modèle

  1. Installer le paquet

    Ajoute mage-space à ton projet.

    pip install mage-space
  2. Définir ta clé d’API

    Crée une clé dans API → API Keys sur mage.space et exporte-la. Le client lit MAGE_API_KEY.

    export MAGE_API_KEY="mage_sk_..."
  3. Générer

    Appelle run avec un identifiant de modèle et sa configuration. Il attend le résultat et le renvoie ; le fichier généré se trouve dans 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"])

Exemples

Le SDK Python en pratique

Chaque exemple part d’un client qui lit MAGE_API_KEY.

Envoyer maintenant, attendre plus tard
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"]),
)
Téléverser un fichier
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"]],
})
Utiliser un personnage enregistré
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"})
Gérer les erreurs
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)

Pourquoi le SDK

Ce que le SDK gère pour toi

Un appel, un média prêt

run envoie la génération, interroge l'API avec le backoff qu'elle recommande et renvoie la requête terminée avec result.url.

Des nouvelles tentatives sans double paiement

Chaque envoi porte une clé d'idempotence. Les erreurs réseau et serveur sont retentées avec backoff, et un envoi retenté n'est jamais facturé deux fois.

Uploads en un appel

Les fichiers trop volumineux pour une data URL passent par un upload signé, avec le ticket, le PUT et la vérification de taille gérés pour toi.

Des erreurs claires

Les refus de l'API incluent leur statut HTTP, leur code d'erreur et leur identifiant de requête ; les générations échouées ou annulées et les délais dépassés ont leurs propres types d'erreur.

Synchrone et asyncio

Mage et AsyncMage partagent toutes leurs méthodes. Le client asynchrone convient aux serveurs web, aux notebooks et aux pipelines qui lancent de nombreuses générations à la fois.

Configurations typées

Chaque modèle a son TypedDict, comme MangoConfig, généré à partir de la référence de l'API. Annote une configuration avec lui et ton vérificateur de types contrôle les champs.

Référence

Le SDK Python en un coup d'œil

Les mêmes méthodes couvrent tous les modèles ; le modèle est le premier argument.

MéthodeCe qu'il fait
mage.run(model, config)Envoie une génération, attend son résultat et renvoie la requête terminée.
mage.generate(model, config)Envoie une génération et renvoie aussitôt la requête.
mage.requests.get / cancel / waitLit, arrête ou attend une requête à partir de son identifiant.
mage.uploads.upload(data)Envoie un chemin, des octets ou un fichier jusqu'à 100 Mo et renvoie son URL.
mage.characters / mage.referencesListe, crée et supprime les personnages et références enregistrés.
mage.account.get()Ton solde de Gems.
mage.architectures.list()Le catalogue des modèles en temps réel, avec options et prix.

Modèles

Commence avec ces modèles

Image · à partir de 37 Gems

API Guava

Un photoréalisme digne d'une vraie photo

Image · à partir de 135 Gems

API Mango

Notre famille d'images phare

Image · à partir de 68 Gems

API Nano Banana 2

Texte net et lisible, jusqu'en 4K

Vidéo · à partir de 618 Gems

API Cherry

Notre famille de vidéos phare

Vidéo · à partir de 245 Gems

API Lemon

Toutes les fonctions vidéo, à un prix plus doux

Audio · à partir de 19 Gems

API Seed Audio

Voix, musique et effets sonores à partir d'un seul prompt

FAQ

Questions fréquentes

Le SDK Python prend-il en charge asyncio ?

Oui. AsyncMage a les mêmes méthodes que Mage, à attendre avec await, et fonctionne comme gestionnaire de contexte asynchrone.

Quelles versions de Python le SDK prend-il en charge ?

Python 3.10 et versions ultérieures. Ses seules dépendances sont httpx et typing-extensions.

Puis-je utiliser le SDK Python dans un notebook ou un pipeline de données ?

Oui. Utilise Mage dans des scripts et des notebooks, ou AsyncMage avec asyncio pour lancer de nombreuses générations à la fois. Le compte peut avoir jusqu'à 20 générations en cours simultanément.

Les SDK Mage sont-ils gratuits et open source ?

Oui. Les SDK et les nœuds ComfyUI sont sous licence MIT sur GitHub, et leur installation est gratuite. Tu paies uniquement les générations que tu lances, en Gems, au prix indiqué pour chaque modèle.

Les nouveaux modèles Mage fonctionnent-ils avec un ancien SDK ?

Oui. Passe l’identifiant du nouveau modèle sous forme de chaîne et il s’exécute ; le SDK vérifie sa configuration avec les champs communs à tous les modèles. Un bot met à jour les types dès que la référence de l’API change, donc les nouveaux modèles arrivent avec leurs propres types dans la version suivante.

Comment les SDK évitent-ils de payer deux fois une requête renvoyée ?

Chaque envoi comporte une Idempotency-Key. Le SDK crée une nouvelle clé à chaque appel et la réutilise quand il relance lui-même cet appel : un envoi renvoyé retourne donc la requête d’origine et ne coûte rien.

Les SDK sont-ils stables ?

Ils sont en bêta en version 0.x, donc une version mineure peut encore les modifier. L’API elle-même suit son propre versionnement et reste stable dans la v1.

Combien coûte l'API Mage ?

Il n'y a ni abonnement ni frais mensuels. Chaque génération est payée en Gems au prix indiqué pour son modèle, et 1 000 Gems coûtent 1 $ avec le pack standard. La page de chaque modèle indique son prix avec les réglages par défaut, et chaque réponse précise le montant exact débité. Une génération qui échoue est remboursée ; celle que la politique de contenu de Mage bloque ne l'est pas. Une requête que ton solde ne peut pas couvrir est refusée avant tout débit.

Faut-il un abonnement Mage pour utiliser l'API ?

Non. L'API fonctionne uniquement avec des Gems. Les abonnements et leur génération illimitée dans l'appli ne s'appliquent pas aux requêtes API : n'importe quel compte Mage avec des Gems peut donc l'utiliser.

Puis-je utiliser les résultats de l'API à des fins commerciales ?

Oui. Tu peux utiliser à des fins commerciales les contenus créés avec Mage, y compris via l'API et le serveur MCP. La mention de la source est appréciée, mais pas obligatoire.

Lance-toi avec Mage

Un seul compte, un seul solde de Gems, tous les modèles. Ne paie que ce que tu génères.

Obtenir une clé d'APILire le guide Python

À voir aussi