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.
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.
3.10+
Python
httpx
Klient HTTP
28
Typowane modele
MIT
Open source
Konfiguracja
Dodaj mage-space do swojego projektu.
pip install mage-spaceUtwórz klucz w API → API Keys na mage.space i wyeksportuj go. Klient odczytuje MAGE_API_KEY.
export MAGE_API_KEY="mage_sk_..."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
Każdy przykład zaczyna się od klienta, który odczytuje 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)Dlaczego SDK
run wysyła generację, odpytuje API z zalecanym przez nie opóźnieniem (backoff) i zwraca ukończone zgłoszenie z result.url.
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.
Pliki zbyt duże na data URL trafiają przez podpisany upload, a bilet, żądanie PUT i sprawdzenie rozmiaru obsługujemy za Ciebie.
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.
Mage i AsyncMage mają te same metody. Klient asynchroniczny sprawdza się w serwerach WWW, notebookach i potokach, które uruchamiają wiele generacji naraz.
Każdy model ma swój TypedDict, np. MangoConfig, generowany na podstawie dokumentacji API. Otaguj nim konfigurację, a type checker sprawdzi pola.
Dokumentacja
Te same metody obsługują każdy model; model jest pierwszym argumentem.
| Metoda | Co 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 / wait | Odczytaj, 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.references | Wyś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
Obraz · od 37 Gems
Fotorealizm, który uchodzi za prawdziwe zdjęcie
Obraz · od 135 Gems
Nasza flagowa rodzina modeli obrazu
Obraz · od 68 Gems
Wyraźny, czytelny tekst, do 4K
Wideo · od 618 Gems
Nasza flagowa rodzina modeli wideo
Wideo · od 245 Gems
Wszystkie funkcje wideo w bardziej przyjaznej cenie
Audio · od 19 Gems
Głosy, muzyka i efekty dźwiękowe z jednego promptu
FAQ
Tak. AsyncMage ma te same metody co Mage, wywoływane przez await, i działa jako asynchroniczny menedżer kontekstu.
Python 3.10 i nowsze. Jego jedyne zależności to httpx i typing-extensions.
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.
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.
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.
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.
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.
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.
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.
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.
Jedno konto, jedno saldo Gems, wszystkie modele. Płacisz tylko za to, co wygenerujesz.