Référence API

Référence complète de l'API REST Sprite AI. Endpoints pour générer sprites et animations, formats de requête et de réponse, paramètres et exemples d'appels.

GET/api/me

Votre compte. Forfait, solde et limite de débit.

curl https://www.sprite-ai.art/api/me \
-H "Authorization: Bearer sai_sk_your_key_here"
200 OK
{
"user_id": "...",
"email": "you@example.com",
"plan": "studio",
"rate_limit_per_minute": 60,
"monthly_token_allotment": 1000,
"monthly_tokens_used": 340,
"purchased_token_balance": 0,
"total_token_balance": 660,
"monthly_renews_at": "2026-07-01T00:00:00.000Z",
"billing_period": "monthly"
}

GET/api/balance

Le solde de jetons seulement, un sous-ensemble de /api/me.

curl https://www.sprite-ai.art/api/balance \
-H "Authorization: Bearer sai_sk_your_key_here"
200 OK
{
"plan": "studio",
"total_token_balance": 660,
"purchased_token_balance": 0,
"monthly_token_allotment": 1000,
"monthly_tokens_used": 340,
"monthly_renews_at": "2026-07-01T00:00:00.000Z",
"billing_period": "monthly"
}

GET/api/asset-types

Les types d'assets, avec leur coût en jetons et leur plage de tailles.

curl https://www.sprite-ai.art/api/asset-types \
-H "Authorization: Bearer sai_sk_your_key_here"
TypeCoût en jetonsTaille
character132–400 px
item132–400 px
creature132–400 px
tile18–512 px
background18–512 px
ui18–512 px
effect18–512 px

GET/api/limits

Bornes des requêtes et coûts en jetons pour votre clé.

curl https://www.sprite-ai.art/api/limits \
-H "Authorization: Bearer sai_sk_your_key_here"
200 OK
{
"rate_limit_per_minute": 60,
"sprite": { "min_size": 8, "max_size": 512, "prompt_max_length": 1500 },
"animation": { "min_frames": 4, "max_frames": 24, "frames_must_be_even": true }
}

POST/api/sprites

Génère un sprite fixe. Synchrone, le PNG revient dans la réponse. Coûte 1 jeton.

ChampTypeRequisDescription
promptstringOuiQuoi dessiner. 3 à 1 500 caractères.
asset_typestringNonDéduit du prompt si omis.
widthintegerNon8–512 px. Par défaut 64.
heightintegerNon8–512 px. Par défaut 64.
directionstringNonDirection du regard, p. ex. south.
camera_perspectivestringNonp. ex. side, top_down, isometric.
publicbooleanNonAjoute à la galerie publique. Par défaut false.
reference_asset_idstringNonUUID d'un sprite à vous, utilisé comme référence de style.
palette_idstringNonUne palette de votre bibliothèque (voir Palettes). Le sprite est dessiné dedans, y reste contraint et s'en souvient. Animations, restyles et combinaisons gardent donc les mêmes couleurs.
curl https://www.sprite-ai.art/api/sprites \
-H "Authorization: Bearer sai_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "prompt": "a knight with a blue cape", "asset_type": "character" }'
201 Created
{
"id": "a1b2c3d4-...",
"status": "completed",
"width": 64,
"height": 64,
"assetType": "character",
"tokensSpent": 1,
"image": { "format": "png", "pngBase64": "iVBORw0KGgoAAAANS..." }
}

Le PNG est dans image.pngBase64. Il n'y a pas d'URL hébergée.

POST/api/sprites/import

Ajoute un sprite que vous avez déjà (un PNG local ou tout sprite pixel) et renvoie un id que vous pouvez animer (source_generation_id) ou utiliser comme référence de style (reference_asset_id). Gratuit. Importer ne dépense aucun jeton et ne lance aucune IA.

L'image doit être un sprite unique (PNG, JPEG ou WebP), 16–256 px de côté, pas une sprite sheet. Les sprites importés sont toujours privés.

ChampTypeRequisDescription
imagestringOuiLe sprite, en base64 ou en URL data:image/...;base64.
titlestringNonÉtiquette du sprite. Par défaut "Imported sprite".
asset_typestringNonÉtiquette de type d'asset (métadonnée seulement).
palette_idstringNonUne palette de votre bibliothèque. Le sprite en est marqué pour que les outils suivants la respectent. Les pixels ne changent pas.
curl https://www.sprite-ai.art/api/sprites/import \
-H "Authorization: Bearer sai_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "image": "<png base64>", "title": "hero" }'
201 Created
{
"id": "a1b2c3d4-...",
"status": "completed",
"width": 64,
"height": 64,
"title": "hero"
}

GET/api/sprites/{id}

Récupère un de vos sprites existants.

curl https://www.sprite-ai.art/api/sprites/a1b2c3d4-... \
-H "Authorization: Bearer sai_sk_your_key_here"

GET/api/sprites

Liste vos sprites et animations, du plus récent au plus ancien.

ParamètreTypeDescription
limitinteger1–100. Par défaut 20.
offsetintegerPour la pagination. Par défaut 0.
statusstringFiltre par statut.
asset_typestringFiltre par type, p. ex. animation.
curl "https://www.sprite-ai.art/api/sprites?limit=20" \
-H "Authorization: Bearer sai_sk_your_key_here"

POST/api/palettes/generate

Quelques options de palette pour une description, rien d'enregistré. Montrez-les à la personne, laissez-la en choisir une ou redemander, puis enregistrez son choix avec POST /api/palettes. Le prompt est lu comme un thème, une couleur principale et des ambiances. Un nombre dans le texte fixe le nombre de couleurs. Gratuit.

ChampTypeRequisDescription
promptstringOuiÀ quoi sert la palette, p. ex. "mossy dungeon, 16 colours".
countintegerNonCouleurs par option, 4-64. Par défaut, le nombre dans le prompt. Sans nombre nulle part, les options viennent une par taille, 8, 16, 24 et 32.
optionsintegerNonNombre d'options, 2-4. Par défaut 4.
200 OK
{
"prompt": "mossy dungeon, 16 colours",
"read_as": "theme forest, main colour green, mood dark",
"options": [
  { "option": 1, "colors": ["#1a2a1c", "..."], "recipe": { "count": 16, "seed": 91827364, "theme": "forest", "primary": "green", "moods": ["dark"] } },
  { "option": 2, "colors": ["..."], "recipe": { "count": 16, "seed": 5550123, "theme": "forest", "primary": "green", "moods": ["dark"] } }
]
}

POST/api/palettes

Enregistre le choix. Passez la recipe de l'option choisie telle que renvoyée, ou des colors explicites, et un name. Une recette est régénérée côté serveur, donc la palette enregistrée est exactement l'option montrée. L'id renvoyé est le palette_id pour POST /api/sprites et POST /api/sprites/import. Gratuit.

ChampTypeRequisDescription
namestringOuiUn nom court, 80 caractères max.
recipeobjectL'un des deuxLa recette de l'option choisie, venant de /api/palettes/generate.
colorsstring[]L'un des deux2-256 couleurs #rrggbb au lieu d'une recette.
201 Created
{
"id": "5f0c2a7e-...",
"name": "Mossy dungeon",
"colors": ["#1a2a1c", "..."],
"count": 16,
"source": "generated",
"created_at": "2026-09-11T22:00:00.000Z"
}

GET/api/palettes

Vos palettes, de la plus récente à la plus ancienne, sous la forme { "palettes": [ ... ] } avec la même structure que ci-dessus. GET /api/palettes/{id} en renvoie une. Chaque objet sprite porte paletteId, null quand le sprite n'a pas de palette.

POST/api/animations

Lance une tâche d'animation à partir d'un sprite source. Asynchrone. Renvoie un id tout de suite, puis vous l'interrogez jusqu'à la fin (~15 s). Les animations tournent une à la fois par compte, donc un lot de N finit en environ N x 15 s. Le coût en jetons suit frame_count.

Référencez la source par source_generation_id, l'id d'un sprite à vous, venant de POST /api/sprites (génération) ou de POST /api/sprites/import. Aucun octet d'image ne passe par cet appel. Nous les récupérons côté serveur. La source doit être un sprite fixe unique, 256 px de côté au plus, pas une sprite sheet ni une animation existante.

ChampTypeRequisDescription
source_generation_idstringOuiUUID d'un sprite généré ou importé par vous.
presetstringOuiPréréglage de mouvement (Walk, Run, Idle, ...) ou Custom.
frame_countintegerNonPair, 4–16. Par défaut 8. Détermine le coût en jetons.
custom_promptstringCustom seulementMouvement en texte libre. Requis quand preset est Custom.
palette_extrasintegerNonCouleurs que l'animation peut ajouter au-delà de celles du sprite source, 0-256. 0 garde sa palette exacte. Montez-le seulement quand le mouvement apporte des couleurs que le sprite n'a pas (feu, lueur magique, étincelles). Omettez-le pour le défaut réglé du préréglage. Attack 12, Custom 12, tous les autres 0.
framing_marginintegerNonPourcentage d'agrandissement du canevas avant l'animation, 0-25, pour qu'un saut ou un effet projeté ait de la place au lieu d'être coupé au bord du sprite. Le résultat revient à la taille agrandie. Omettez-le pour un mouvement sur place comme la marche ou l'attente. Par défaut 0.
framing_anchorstringNonOù le sprite se place dans ce canevas agrandi, parmi top-left, top, top-right, left, center, right, bottom-left, bottom ou bottom-right. bottom garde les pieds au sol dans un saut. Un coin du bas opposé au regard du sprite ouvre de la place devant pour un effet projeté. Par défaut center.
publicbooleanNonAjoute à la galerie publique. Par défaut false.
curl https://www.sprite-ai.art/api/animations \
-H "Authorization: Bearer sai_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "source_generation_id": "a1b2c3d4-...", "preset": "Walk", "frame_count": 8 }'
202 Accepted
{ "id": "a1b2c3d4-...", "status": "processing" }

GET/api/animations/{id}

Interroge une tâche d'animation. En cours, elle renvoie processing avec un progress optionnel (0–1). Quand status est completed, la sprite sheet est dans image.spritesheetBase64. Sur failed, les jetons sont remboursés automatiquement. Interrogez toutes les 5 secondes environ.

# poll every ~5s until status is completed or failed
curl https://www.sprite-ai.art/api/animations/a1b2c3d4-... \
-H "Authorization: Bearer sai_sk_your_key_here"
200 OK (completed)
{
"id": "a1b2c3d4-...",
"status": "completed",
"frameWidth": 64,
"frameHeight": 64,
"frameCount": 8,
"fps": 12,
"image": { "format": "png", "spritesheetBase64": "iVBORw0KGgoAAAANS..." }
}

Un seul PNG en bande horizontale. Découpez-le avec frameCount, frameWidth, frameHeight.

POST/api/animations/{id}/cancel

Annule une tâche en cours et rembourse ses jetons. Si la tâche est déjà terminée ou échouée, renvoie une erreur, puisqu'il n'y a rien à annuler.

curl -X POST https://www.sprite-ai.art/api/animations/a1b2c3d4-.../cancel \
-H "Authorization: Bearer sai_sk_your_key_here"
200 OK
{ "id": "a1b2c3d4-...", "status": "cancelled" }

POST/api/restyles

Modifie un sprite à vous en gardant le personnage. Changez son style, mettez-le dans une nouvelle pose ou échangez l'objet qu'il tient. mode dit lequel. Asynchrone comme les animations. Renvoie un id tout de suite, puis vous l'interrogez jusqu'à la fin (~15 s au palier normal, jusqu'à une minute en pro). Le coût dépend du palier. 2 jetons en normal, 9 en pro. Préréglages et prompts personnalisés coûtent le même prix.

Référencez la source par source_generation_id, l'id d'un sprite à vous, venant de POST /api/sprites (génération) ou de POST /api/sprites/import. Aucun octet d'image ne passe par cet appel. Nous les récupérons côté serveur. La source doit faire 32-256 px de côté. Le résultat revient à la taille de la source, sauf si framing_margin agrandit le canevas d'abord.

ChampTypeRequisDescription
source_generation_idstringOuiUUID d'un sprite généré ou importé par vous, 32-256 px de côté.
presetstringpreset ou custom_promptStyle verrouillé parmi fire, ice, gold, zombie, holy, cursed, poison, royal, shadow, steampunk. Un préréglage implique toujours mode restyle.
custom_promptstringpreset ou custom_promptQuoi changer, dans vos mots, 500 caractères max. Lu avec mode.
modestringNonrestyle (repeint, les couleurs peuvent changer), pose (bouge le personnage, garde tout le reste), item (échange un objet nommé), custom. Par défaut restyle.
tierstringNonnormal ou pro. Pro reste plus fidèle au personnage et gagne sur les échanges d'objet. Normal gagne sur les poses. CHANGE LE PRIX. Par défaut normal.
palette_extrasnumberNonCouleurs que la modification peut utiliser au-delà de celles du sprite, 0-256. 0 garde sa palette exacte. Par défaut selon le mode, restyle 16, pose 0, item 12, custom 12.
framing_marginnumberNonPourcentage d'agrandissement du canevas avant la modification, 0-25, pour qu'une pose ait de la place. Le résultat revient à la taille agrandie. Par défaut 0.
framing_anchorstringNonOù le sprite se place dans ce canevas agrandi, p. ex. bottom pour garder les pieds du personnage au sol. Par défaut center.
publicbooleanNonAjoute à la galerie publique. Par défaut false.
curl https://www.sprite-ai.art/api/restyles \
-H "Authorization: Bearer sai_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "source_generation_id": "a1b2c3d4-...", "preset": "gold" }'
202 Accepted
{ "id": "a1b2c3d4-...", "status": "processing" }

GET/api/restyles/{id}

Interroge une tâche de restyle. En cours, elle renvoie processing. Quand status est completed, le sprite est dans image.pngBase64 en résolution native. Sur failed, les jetons sont remboursés automatiquement. Interrogez toutes les 3 secondes environ.

# poll every ~3s until status is completed or failed
curl https://www.sprite-ai.art/api/restyles/a1b2c3d4-... \
-H "Authorization: Bearer sai_sk_your_key_here"
200 OK (completed)
{
"id": "a1b2c3d4-...",
"status": "completed",
"width": 64,
"height": 64,
"isPublic": false,
"slug": null,
"image": { "format": "png", "pngBase64": "iVBORw0KGgoAAAANS..." }
}

POST/api/restyles/{id}/cancel

Annule un restyle en cours et rembourse ses jetons. Si la tâche est déjà terminée ou échouée, renvoie une erreur, puisqu'il n'y a rien à annuler.

curl -X POST https://www.sprite-ai.art/api/restyles/a1b2c3d4-.../cancel \
-H "Authorization: Bearer sai_sk_your_key_here"
200 OK
{ "id": "a1b2c3d4-...", "status": "cancelled" }

POST/api/combines

Place un objet d'un de vos sprites dans un autre de vos sprites. Le premier sprite garde son identité et ses dimensions exactes. Le second est celui d'où l'objet est copié, donc sa forme et ses couleurs sont ce que vous obtenez. Le résultat est verrouillé aux palettes des deux sprites, donc un objet ne revient jamais repeint dans les couleurs du personnage. Asynchrone comme les restyles. Renvoie un id tout de suite, puis vous l'interrogez jusqu'à la fin (~20 s en normal, 3-4 minutes en pro). Le coût dépend du palier. 3 jetons en normal, 9 en pro.

Utilisez-le quand l'objet existe comme sprite. Pour un échange vers quelque chose que vous n'avez qu'en mots, utilisez plutôt POST /api/restyles avec mode: "item".

Les deux sprites sont référencés par id, venant de POST /api/sprites (génération) ou de POST /api/sprites/import. Aucun octet d'image ne passe par cet appel. Nous les récupérons côté serveur, ce qui veut aussi dire que les deux sprites doivent être à vous. Chacun doit faire 32-256 px de côté, et les deux ids doivent différer. Le résultat revient à la taille du premier sprite, même quand framing_margin agrandit le canevas d'abord.

ChampTypeRequisDescription
source_generation_idstringOuiUUID du sprite qui garde son identité. Ses dimensions sont celles du résultat.
item_generation_idstringOuiUUID du sprite d'où l'objet est copié. Doit différer de source_generation_id.
promptstringOuiOù va l'objet, 500 caractères max. Dites le placement, pas l'objet. L'objet vient de l'image.
tierstringNonnormal ou pro. Normal met l'objet dans les mains du personnage et est le défaut. Pro reste plus fidèle au personnage mais place l'objet moins bien. CHANGE LE PRIX.
palette_extrasnumberNonCouleurs que la combinaison peut utiliser au-delà de l'union des deux sprites, 0-256. 0 la verrouille exactement à leurs palettes. Par défaut 4.
framing_marginnumberNonPourcentage d'agrandissement du canevas avant la modification, 0-25, pour qu'un objet tendu ait de la place. Le sprite revient quand même à la taille du premier sprite. Par défaut 0.
framing_anchorstringNonOù le sprite se place dans ce canevas agrandi, p. ex. bottom pour garder les pieds du personnage au sol. Par défaut center.
publicbooleanNonAjoute à la galerie publique. Par défaut false.
curl https://www.sprite-ai.art/api/combines \
-H "Authorization: Bearer sai_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "source_generation_id": "a1b2c3d4-...", "item_generation_id": "e5f6a7b8-...", "prompt": "holding this shield in his free hand" }'
202 Accepted
{ "id": "a1b2c3d4-...", "status": "processing" }

GET/api/combines/{id}

Interroge une tâche de combinaison. En cours, elle renvoie processing. Quand status est completed, le sprite est dans image.pngBase64 à la taille du premier sprite. Sur failed, les jetons sont remboursés automatiquement. Interrogez toutes les 3 secondes environ. En palier normal, c'est souvent fini au premier ou au deuxième appel. Pro prend des minutes.

curl https://www.sprite-ai.art/api/combines/a1b2c3d4-... \
-H "Authorization: Bearer sai_sk_your_key_here"
200 OK
{
"id": "a1b2c3d4-...",
"status": "completed",
"width": 64,
"height": 64,
"isPublic": false,
"slug": null,
"image": { "format": "png", "pngBase64": "iVBORw0KGgo..." }
}

POST/api/combines/{id}/cancel

Annule une combinaison en cours et rembourse ses jetons. Si la tâche est déjà terminée ou échouée, renvoie une erreur, puisqu'il n'y a rien à annuler.

curl -X POST https://www.sprite-ai.art/api/combines/a1b2c3d4-.../cancel \
-H "Authorization: Bearer sai_sk_your_key_here"
200 OK
{ "id": "a1b2c3d4-...", "status": "cancelled" }

POST/api/touch-ups

Répare une partie d'un sprite à vous et laisse chaque autre pixel intact. Donnez-lui une région et une phrase. La zone choisie est redessinée dans les couleurs du sprite, et tout ce qui est en dehors revient identique à l'octet près. Le résultat est enregistré comme un nouveau sprite id que vous pouvez animer, pivoter ou changer de style. Synchrone, environ 15 à 30 secondes. Coût : 1 jeton.

Cet outil répare un détail. Ce n'est pas un outil d'échange d'objet. Quand on lui a demandé de changer une arme, il a dessiné la nouvelle une fois sur quatre, alors que POST /api/restyles avec le préréglage item l'a fait à tout coup. Utilisez la retouche pour des yeux, un visage, une main, une bosse sur un casque. Le sprite revient à sa taille d'origine, et le prix est le même en 64 px ou en 512 px.

ChampTypeRequisDescription
source_generation_idstringOuiUUID d'un sprite fixe à vous, 32-1024 px de côté.
promptstringOuiQuoi corriger, 1-300 caractères. P. ex. "glowing red eyes in the visor".
regionobjectOuiLa zone à réparer, en pixels du sprite, { x, y, width, height }, origine en haut à gauche.
publicbooleanNonPublie le résultat dans la galerie publique. Par défaut false.

La région est rognée au sprite, et la boîte rognée est renvoyée dans la réponse pour que vous puissiez la dessiner sur le résultat. Le plafond de la région est d'environ 200x200 pixels, peu importe la taille du sprite. Une fenêtre est découpée autour, puis recomposée. Un grand sprite passe, une grande région est refusée. Pour changer un sprite entier, utilisez POST /api/restyles.

curl https://www.sprite-ai.art/api/touch-ups \
-H "Authorization: Bearer sai_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
  "source_generation_id": "a1b2c3d4-...",
  "prompt": "glowing red eyes in the visor",
  "region": { "x": 32, "y": 10, "width": 12, "height": 11 }
}'
201 Created
{
"id": "f7a8b9c0-...",
"status": "completed",
"width": 64,
"height": 64,
"region": { "x": 32, "y": 10, "width": 12, "height": 11 },
"isPublic": false,
"slug": null,
"image": { "format": "png", "pngBase64": "iVBORw0KGgoAAAANS..." }
}

POST/api/rotations

Transforme un sprite fixe à vous en un jeu complet de 8 directions, S, SE, E, NE, N, NW, W, SW, même personnage et même palette. Renvoie une bande horizontale de 8 frames égales dans cet ordre de rotation, plus un score de fidélité. La sprite sheet est calibrée contre la source et un essai au score faible est refait automatiquement. Synchrone. Une requête, la bande finie dans la réponse, environ une minute et jusqu'à 2,5 minutes quand le contrôle qualité force un second essai. Coût : 12 jetons.

La source doit être un sprite fixe, 32-256 px de côté, pas une animation. Le résultat est enregistré comme une ligne d'animation, donc GET /api/sprites/{id} et l'URL de téléchargement traitent la bande comme une sprite sheet. Découpez-la tous les frameWidth pixels pour obtenir chaque direction.

ChampTypeRequisDescription
source_generation_idstringOuiUUID d'un sprite fixe à vous, 32-256 px de côté.
publicbooleanNonPublie le jeu dans la galerie publique. Par défaut false.
curl https://www.sprite-ai.art/api/rotations \
-H "Authorization: Bearer sai_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "source_generation_id": "a1b2c3d4-..." }'
201 Created
{
"id": "c9d0e1f2-...",
"status": "completed",
"frameWidth": 64,
"frameHeight": 64,
"frameCount": 8,
"fps": 6,
"directions": ["s", "se", "e", "ne", "n", "nw", "w", "sw"],
"calibrationScore": 0.94,
"isPublic": false,
"image": { "format": "png", "spritesheetBase64": "iVBORw0KGgoAAAANS..." }
}

POST/api/normal-maps

Génère une normal map en espace tangent pour un sprite ou une animation à vous, pour l'éclairage dynamique dans un moteur de jeu. Notre propre modèle, entraîné sur de la vraie géométrie 3D plutôt que sur des heuristiques de détection de contours. La sortie encode la forme réelle du sujet, et son canal alpha est une copie au pixel près de la silhouette source. Synchrone. Le PNG fini revient dans la réponse en quelques secondes, aucune tâche à interroger. Coût : 1 jeton par frame.

Une animation source est traitée frame par frame automatiquement (le modèle est déterministe, donc les frames ne scintillent jamais) et revient en bande horizontale de même disposition. Chargez-la dans votre moteur exactement comme l'animation elle-même.

ChampTypeRequisDescription
source_generation_idstringOuiUUID d'un sprite ou d'une animation à vous. Les frames doivent faire 32-256 px de côté.
strengthnumberNonInjection de détail, 0-5, par défaut 0. 0 est le plus fidèle à la géométrie. ~2.5 remet l'ombrage dessiné du sprite pour un rendu fait main.
flip_greenbooleanNonInverse le vert pour les moteurs DirectX / +Y vers le bas (Unreal). Par défaut false = OpenGL / +Y vers le haut (Godot, Unity, WebGL).
columnsnumberNonSeulement pour un sprite fixe qui est en fait une sprite sheet, son nombre de colonnes. Ignoré pour les animations (la disposition est connue). columns x rows <= 24.
rowsnumberNonNombre de lignes de la sheet, avec columns. Par défaut 1.
curl https://www.sprite-ai.art/api/normal-maps \
-H "Authorization: Bearer sai_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "source_generation_id": "a1b2c3d4-..." }'
201 Created
{
"id": "e5f6a7b8-...",
"status": "completed",
"width": 64,
"height": 64,
"frameCount": 1,
"tokensSpent": 1,
"image": { "format": "png", "pngBase64": "iVBORw0KGgoAAAANS..." }
}

POST/api/background-removals

Retire un arrière-plan uni d'un sprite ou d'une animation à vous et renvoie un PNG transparent, enregistré comme un nouveau sprite id que vous pouvez animer, changer de style ou passer en normal map. Deux méthodes, les deux mêmes que l'outil Suppression d'arrière-plan du studio. standard est un chroma key, gratuit. refined est un matting par palette contre les couleurs du sprite, 1 jeton. Refined donne le bord le plus propre sur du pixel art généré par IA. La couleur d'arrière-plan est échantillonnée aux quatre coins, sauf si vous passez matte_color. Synchrone, bien en dessous d'une seconde.

Les sprites générés ici ont déjà un arrière-plan transparent. Cet endpoint sert aux captures d'écran et rendus importés sur une couleur unie. Une source dont les coins sont déjà transparents est refusée. Une animation est traitée comme une seule bande et revient en animation. Les découpes sont toujours privées.

ChampTypeRequisDescription
source_generation_idstringOuiUUID d'un sprite ou d'une animation à vous.
methodstringNonstandard (gratuit, chroma key) ou refined (1 jeton, matting par palette). Par défaut standard.
matte_colorstringNonCouleur d'arrière-plan à retirer, en #rrggbb. Par défaut, échantillonnée aux coins.
tolerancenumberNonstandard seulement. Distance maximale à la couleur d'arrière-plan pour qu'un pixel soit quand même retiré, 0-300. Par défaut 200.
palette_sizenumberNonrefined seulement. Plafond de couleurs du sprite utilisées pour le matting, 16-256. Par défaut 64.
alpha_thresholdnumberNonrefined seulement. Couverture au-dessus de laquelle un pixel de bord reste opaque, 0.3-0.9. Par défaut 0.7.
curl https://www.sprite-ai.art/api/background-removals \
-H "Authorization: Bearer sai_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "source_generation_id": "a1b2c3d4-...", "method": "refined" }'
201 Created
{
"id": "f7a8b9c0-...",
"status": "completed",
"method": "refined",
"width": 64,
"height": 64,
"frameCount": null,
"matteColor": "#ff00ff",
"tokensSpent": 1,
"image": { "format": "png", "pngBase64": "iVBORw0KGgoAAAANS..." }
}

Erreurs

Chaque erreur renvoie la même structure JSON. Testez code, pas message.

{ "code": "invalid_request", "message": "...", "details": {} }
HTTPCodeCause
400invalid_requestLe corps n'a pas passé la validation.
401invalid_api_keyClé absente ou non reconnue.
402insufficient_tokensPas assez de jetons.
402upgrade_requiredForfait payant requis.
403api_key_revokedLa clé a été révoquée.
404not_foundIntrouvable, ou pas à vous.
422nsfw_promptPrompt rejeté par le filtre.
429rate_limitedTrop de requêtes.
500provider_failureRendu échoué. Jetons remboursés.

Packs d'assets

Un prompt peut planifier un pack complet. Le sprite d'ancrage, ses directions, une animation par direction, des restyles et des cartes d'éclairage, chiffrés étape par étape et lancés seulement après votre approbation du total. Les quatre endpoints (POST /api/agent, POST /api/agent/{id}/run, GET /api/agent/{id}, POST /api/agent/{id}/cancel) sont sur la page Agent de sprites.

Mis à jour le 16 septembre 2026

Nous utilisons des témoins (cookies) pour améliorer votre expérience. Les essentiels sont requis pour que le site fonctionne. Acceptez-les tous ou seulement les essentiels.

En savoir plus