Introduction
Video Character Swap reçoit l’identifiant de tâche d’une analyse, les positions retenues parmi ses vignettes et une à trois photos de référence pour chacune, puis renvoie le plan avec ces personnes remplacées. La silhouette entière change, vêtements et morphologie compris ; le décor, le mouvement de caméra, la chorégraphie et la bande son d’origine restent tels qu’ils ont été tournés. Les personnes non listées ne sont pas touchées.
Video Character Swap tient en deux appels. Le premier suit chaque personne dans un plan de 5 à 30 secondes et renvoie une vignette par personne, dans un ordre fixe. Le second reçoit les positions retenues et une à trois photos de référence pour chacune, puis renvoie le plan avec ces personnes remplacées et la bande son d’origine intacte.
Fonctionnalités et points forts
C’est vous qui désignez la personne
La plupart des endpoints de ce type doivent deviner qui vous vouliez dire. Ici, le premier appel vous montre chaque personne trouvée, numérotée, et le second ne touche qu’aux numéros que vous renvoyez. Dans une scène à quatre personnes, vous en remplacez une et les trois autres restent exactement telles qu’elles ont été tournées.
Donnez au modèle de quoi travailler sous le cou
Video Character Swap n’est pas un endpoint mais une paire. Le premier appel, video-analyze, suit toutes les personnes d’un plan de 5 à 30 secondes et renvoie une vignette par personne dans un ordre fixe, facturée au forfait par requête quelles que soient la durée du plan et le nombre de personnes trouvées. Le second appel, video-edit, reçoit l’identifiant de tâche de cette analyse, les positions retenues et une à trois photos de référence pour chacune, puis renvoie un plan unique dont la bande son d’origine est conservée, facturé à la seconde de métrage en 480p ou 720p. Là où la paire head swap ne change que la tête, celle-ci remplace la silhouette entière, vêtements et morphologie compris, tandis que le décor, le mouvement de caméra et la chorégraphie restent tels qu’ils ont été tournés. Les données de suivi elles-mêmes ne vous sont jamais exposées : vous travaillez avec votre propre identifiant de tâche et des positions numérotées à partir de zéro.
Paramètres de requête
| Paramètre | Obligatoire | Description |
|---|---|---|
analysis_task_id | Oui | L’identifiant de tâche de l’appel d’analyse de ce plan. Ses vignettes sont listées dans le même ordre que |
swap_targets | Oui | Une entrée par personne à remplacer ; les personnes omises ne sont pas touchées. 1 éléments minimum · 10 éléments maximum |
video_url | Non | Facultatif. Omettez-le et la vidéo de l’analyse est utilisée. 1 caractères minimum |
resolution | Non | Doit correspondre à la résolution de l’analyse. C’est aussi ce champ qui détermine le palier tarifaire. |
seed | Non | Graine aléatoire ; zéro demande une graine au hasard. |
Tarification
La facturation se fait par blocs entiers de 5 secondes du clip source : un clip de 6 secondes coûte donc autant que 10 secondes. L’estimation affichée avant l’envoi retient la durée réelle d’un clip téléversé, ou le maximum de 30 secondes pour une URL vidéo ; toute différence est libérée au règlement.
| Spécification | Prix |
|---|---|
| $0.064 / seconde |
| $0.12 / seconde |
Cas d’utilisation
Changer de rôle sans retourner le plan
Le décor, le mouvement de caméra et la chorégraphie sont déjà justes. Plutôt que de régénérer tout le plan et de reprendre le travail d’image à zéro, vous remplacez la silhouette qui les interprète.
Tout sujet, avec un interprète consentant
Rien ne change dans la requête, quel que soit le contenu des images. L’exigence d’autorisation décrite plus bas ne change pas non plus : c’est une condition ferme, pas une formalité.
Un même personnage sur toute une série générée
Générez une série de plans avec n’importe quel modèle vidéo, analysez chacun d’eux, puis faites passer le même personnage dans tous, pour que la série se lise comme un seul interprète.
Une foule dont une seule personne change
Analysez une scène à plusieurs personnes, regardez les vignettes et ne renvoyez que la position visée. Toutes les autres restent intactes.
Guide de prompt et conseils pratiques
Vérifiez vos droits sur chaque personne concernée
Le métrage comme les photos de référence montrent des personnes. Il vous faut une autorisation pour l’image que vous déplacez et pour le métrage dans lequel vous la placez. Conservez l’autorisation avec la fiche du travail.
Analysez d’abord, puis lisez l’ordre des vignettes
L’analyse renvoie les vignettes dans un ordre fixe. La première image est object_index 0, la deuxième 1, et ainsi de suite. Cette position est la seule prise dont vous avez besoin : vous la renvoyez dans swap_targets.
Donnez au modèle de quoi travailler sous le cou
Cet endpoint remplace la silhouette entière ; un portrait en buste laisse donc la morphologie et les vêtements à la devinette. Deux ou trois photos en pied sous des angles différents valent mieux qu’un seul gros plan très net.
Démarrage rapide de l’API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "spicyapi/character-swap-v1/video-edit",
"input": {
"analysis_task_id": "example",
"resolution": "720p",
"swap_targets": [
{
"image_urls": [
"example"
],
"object_index": 0
}
]
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
La référence API détaille l’authentification, le schéma complet, le polling et la gestion des erreurs.
