Mage SDK · Python

Python SDK Mage

Generuj obrazy, wideo i audio w Pythonie dzięki klientom sync i asyncio oraz typowanym konfiguracjom dla każdego modelu Mage.

Zdobądź klucz APIPrzeczytaj przewodnik po PythonieKod źródłowy na GitHubie
pip install mage-space

W skrócie

Python SDK Mage to oficjalny klient API Mage typu open source, dostępny jako mage-space. Zainstaluj go poleceniem "pip install mage-space", ustaw MAGE_API_KEY i wywołaj mage.run z identyfikatorem modelu i konfiguracją, aby otrzymać gotowe obrazy, wideo lub audio z dowolnego z 28 modeli. Działa na Pythonie 3.10 lub nowszym, a każda generacja jest płatna w Gems.

Konfiguracja

Zainstaluj Python SDK i uruchom model

  1. Zainstaluj pakiet

    Dodaj mage-space do swojego projektu.

    pip install mage-space
  2. Ustaw klucz API

    Utwórz klucz w API → API Keys na mage.space i wyeksportuj go. Klient odczytuje MAGE_API_KEY.

    export MAGE_API_KEY="mage_sk_..."
  3. Generuj

    Wywołaj run z ID modelu i jego konfiguracją. Metoda czeka na wynik i go zwraca; wynik znajdziesz w 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"])

Przykłady

Python SDK w praktyce

Każdy przykład zaczyna się od klienta, który odczytuje MAGE_API_KEY.

Wyślij teraz, poczekaj później
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"]),
)
Prześlij plik
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"]],
})
Użyj zapisanej postaci
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"})
Obsługa błędów
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)

Dlaczego SDK

Co SDK robi za ciebie

Jedno wywołanie, gotowe media

run wysyła generację, odpytuje API z zalecanym przez nie opóźnieniem (backoff) i zwraca ukończone zgłoszenie z result.url.

Ponowienia, które nigdy nie kosztują podwójnie

Każde zgłoszenie ma klucz idempotentności. Błędy sieci i serwera są ponawiane z opóźnieniem (backoff), a ponowione zgłoszenie nigdy nie jest rozliczane drugi raz.

Przesyłanie plików jednym wywołaniem

Pliki zbyt duże na data URL trafiają przez podpisany upload, a bilet, żądanie PUT i sprawdzenie rozmiaru obsługujemy za Ciebie.

Czytelne błędy

Odmowy API zawierają status HTTP, kod błędu i identyfikator żądania, a nieudane lub anulowane generacje i przekroczenia czasu mają własne typy błędów.

Sync i asyncio

Mage i AsyncMage mają te same metody. Klient asynchroniczny sprawdza się w serwerach WWW, notebookach i potokach, które uruchamiają wiele generacji naraz.

Typowane konfiguracje

Każdy model ma swój TypedDict, np. MangoConfig, generowany na podstawie dokumentacji API. Otaguj nim konfigurację, a type checker sprawdzi pola.

Dokumentacja

Python SDK w skrócie

Te same metody obsługują każdy model; model jest pierwszym argumentem.

MetodaCo robi
mage.run(model, config)Wysyła generowanie, czeka na nie i zwraca ukończone żądanie.
mage.generate(model, config)Wysyła generowanie i od razu zwraca żądanie.
mage.requests.get / cancel / waitOdczytaj, zatrzymaj lub poczekaj na żądanie według ID.
mage.uploads.upload(data)Prześlij ścieżkę, bajty lub plik do 100 MB i zwróć jego adres URL.
mage.characters / mage.referencesWyświetla, tworzy i usuwa zapisane postaci oraz referencje.
mage.account.get()Twoje saldo Gems.
mage.architectures.list()Aktualny katalog modeli z opcjami i cenami.

Modele

Zacznij od tych modeli

Obraz · od 37 Gems

Guava API

Fotorealizm, który uchodzi za prawdziwe zdjęcie

Obraz · od 135 Gems

Mango API

Nasza flagowa rodzina modeli obrazu

Obraz · od 68 Gems

Nano Banana 2 API

Wyraźny, czytelny tekst, do 4K

Wideo · od 618 Gems

Cherry API

Nasza flagowa rodzina modeli wideo

Wideo · od 245 Gems

Lemon API

Wszystkie funkcje wideo w bardziej przyjaznej cenie

Audio · od 19 Gems

Seed Audio API

Głosy, muzyka i efekty dźwiękowe z jednego promptu

FAQ

Najczęściej zadawane pytania

Czy Python SDK obsługuje asyncio?

Tak. AsyncMage ma te same metody co Mage, wywoływane przez await, i działa jako asynchroniczny menedżer kontekstu.

Jakie wersje Pythona obsługuje SDK?

Python 3.10 i nowsze. Jego jedyne zależności to httpx i typing-extensions.

Czy mogę używać Python SDK w notebooku lub potoku danych?

Tak. Używaj Mage w skryptach i notebookach albo AsyncMage z asyncio, aby uruchamiać wiele generacji naraz. Konto może mieć w toku do 20 generacji jednocześnie.

Czy SDK Mage są darmowe i open source?

Tak. SDK i węzły ComfyUI mają licencję MIT na GitHubie, a ich instalacja jest darmowa. Płacisz tylko za wykonane generowania, w Gems, według ceny podanej przy każdym modelu.

Czy nowe modele Mage działają ze starszym SDK?

Tak. Przekaż ID nowego modelu jako ciąg znaków, a zostanie uruchomiony; SDK sprawdza jego konfigurację względem pól wspólnych dla wszystkich modeli. Bot aktualizuje typy za każdym razem, gdy zmienia się dokumentacja API, więc nowe modele dostają własne typy w następnym wydaniu.

Jak SDK chroni przed podwójną opłatą za ponowione żądanie?

Każde zgłoszenie zawiera nagłówek Idempotency-Key. SDK tworzy nowy klucz dla każdego wywołania i używa go ponownie, gdy samo ponawia to wywołanie, więc ponowione zgłoszenie zwraca pierwotne żądanie i nic nie kosztuje.

Czy SDK są stabilne?

Są w wersji beta (0.x), więc wersja minor może jeszcze coś w nich zmienić. Samo API ma osobne wersjonowanie i pozostaje stabilne w ramach v1.

Ile kosztuje Mage API?

Nie ma subskrypcji ani opłaty miesięcznej. Każda generacja jest płatna w Gems według ceny danego modelu, a 1000 Gems kosztuje 1 USD w standardowym pakiecie. Strona każdego modelu podaje cenę przy ustawieniach domyślnych, a każda odpowiedź zawiera dokładną kwotę opłaty. Za nieudaną generację zwracamy koszt, ale nie w przypadku zablokowania jej przez politykę treści Mage. Zapytanie, na które nie wystarcza Twojego salda, zostanie odrzucone, zanim cokolwiek zostanie pobrane.

Czy potrzebuję członkostwa w Mage, żeby korzystać z API?

Nie. API działa wyłącznie na Gems. Plany członkowskie i ich nielimitowane generowanie w aplikacji nie dotyczą zapytań API, więc może z niego korzystać każde konto Mage z Gems.

Czy mogę używać wyników z API komercyjnie?

Tak. Treści tworzone w Mage, także przez API i serwer MCP, możesz wykorzystywać komercyjnie. Podanie autorstwa jest mile widziane, ale nie jest wymagane.

Zacznij tworzyć z Mage

Jedno konto, jedno saldo Gems, wszystkie modele. Płacisz tylko za to, co wygenerujesz.

Zdobądź klucz APIPrzeczytaj przewodnik po Pythonie

Powiązane