Introduction
Seedance 1.5 Pro Spicy image vers vidéo fait de l’image envoyée la première image du clip et l’anime jusqu’à 12 secondes. Avec camera_fixed activé, la composition fournie reste celle de tout le clip.
Seedance 1.5 Pro Spicy est la variante sans censure, réglée par LoRA de la génération Seedance 1.5 Pro de ByteDance, publiée comme un point de terminaison unique d’image vers vidéo. image_url est le seul champ obligatoire, et les clips durent de 4 à 12 secondes en 480p, 720p ou 1080p, avec un son généré dans la même passe.
Fonctionnalités et points forts
Un cadre verrouillé laisse un petit mouvement porter le clip
Passez camera_fixed à true et le cadre s’arrête net tandis que le sujet continue de bouger à l’intérieur. Dans les plans rapprochés et posés, ce qui compte : une caméra errante transforme un regard tenu en clip musical, tandis qu'un cadre verrouillé laisse une respiration, une cheville qui bouge ou une main sur une couette porter tout le clip.
Ce que montre l’image est déjà dans le clip
Tenue, pose, peau et exposition arrivent avec l’image avant même la lecture du prompt. C’est pourquoi le travail piloté par l’image résiste à des briefs qu’une page blanche ne passerait pas, et pourquoi une image nette et bien exposée vaut mieux que toute retouche du prompt après coup.
Des limites fermes à connaître
Cette génération s’arrête à 1080p et douze secondes, sans point de terminaison de références. Si un plan demande de la 4K ou trente secondes, Seedance 2.5 Spicy y va, mais sans caméra verrouillable. aspect_ratio vaut adaptive par défaut et suit le format de votre image.
Paramètres de requête
| Paramètre | Obligatoire | Description |
|---|---|---|
image_url | Oui | Obligatoire, et seul champ obligatoire. |
prompt | Non | Facultatif ici, et avec |
last_image_url | Non | Image de fin facultative. Elle décide de l’image sur laquelle le plan atterrit : une transition, une paire avant-après, ou une boucle qui ouvre et ferme sur la même photo. |
aspect_ratio | Non | Cadrage de sortie, adaptatif par défaut, ce qui suit le ratio de l’image fournie et vous épargne un recadrage préalable. |
duration_seconds | Non | Durée du clip fini en secondes entières, de 4 à 12, 5 par défaut, et c’est la quantité facturée. |
resolution | Non | Résolution de sortie : 480p, 720p par défaut, ou 1080p. |
generate_audio | Non | Détermine si une bande-son native est rendue en synchronisation avec l’image. Actif par défaut, et il fait passer la requête dans un palier tarifaire supérieur. Valeur par défaut: |
camera_fixed | Non | Inactif par défaut. Valeur par défaut: |
seed | Non | Seed entière ; omettez-la et chaque tirage tire la sienne. Fixez-la, tout le reste étant constant, pour juger ce qu’une retouche de prompt a réellement changé. |
Tarification
| Résolution | Générer l’audio: Non | Générer l’audio: Oui |
|---|---|---|
| $0.012 / seconde | $0.024 / seconde |
| $0.026 / seconde | $0.052 / seconde |
| $0.052 / seconde | $0.104 / seconde |
Cas d’utilisation
Clips en vue subjective
Des pieds au bout d’un lit, une main sur la couette, un regard tenu droit dans l’objectif : des plans qui ne fonctionnent que si la caméra se comporte comme une personne allongée immobile. camera_fixed rend cela possible, et non approximatif.
Des boucles qui ne dérivent pas
Envoyez la même image en image_url et en last_image_url, activez camera_fixed et limitez le mouvement à une respiration ou un transfert de poids. Un cadre verrouillé et un petit mouvement reviennent près de leur point de départ : le raccord vers le début est invisible.
Une retouche client sans nouveau tournage
Fixez le seed d’une prise validée, changez une proposition, par exemple la main qui va à gauche au lieu de droite ou une lumière plus chaude, et relancez. Caméra verrouillée et cadre fixé, la deuxième version reste reconnaissable comme le même plan.
Guide de prompt et conseils pratiques
Composez l’image de départ comme un plan fixe
Cadrez l’image comme vous voulez voir tout le clip, car avec camera_fixed c’est exactement ce que vous obtenez. Laissez assez d’espace pour que le sujet bouge sans l’aide de la caméra. Chaque côté doit mesurer entre 300 et 6000 pixels.
Chaque verbe appartient au sujet
Caméra verrouillée, le prompt ne décrit que du mouvement dans le cadre : une respiration, une main, une cheville, un regard tenu. Une consigne de caméra et une caméra verrouillée se contredisent. La couche propre à Seedance refuse toujours une étroite bande de formulations, surtout le baiser : mettez ce moment dans l’image plutôt que dans la phrase.
Adaptez l’exemple fourni
L’exemple publié utilise camera_fixed true, duration_seconds 5, generate_audio true et resolution 720p.
Camera stays locked off. Her crossed ankles rock slowly and one foot flexes. She slides one hand out from behind her head and rests it on her stomach, her fingers tracing a slow circle on the camisole, while her other hand stays tucked behind her head. Her chest rises with a long breath. Nothing else in frame moves except the light shifting on the sheets.
L'image de départ fournit la composition et la tenue, camera_fixed garde le cadre parfaitement immobile, et le prompt ne bouge que ses chevilles, sa main et sa respiration.
Testez court avant de payer douze secondes
Un plan porté par une seule image dérive d’autant plus qu’il dure : validez d’abord le mouvement à 4 ou 5 secondes. generate_audio fait passer la requête à un palier tarifaire supérieur ; coupez-le tant que vous ne vérifiez que le cadrage.
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": "bytedance/seedance-1.5-pro-spicy/image-to-video",
"input": {
"aspect_ratio": "adaptive",
"duration_seconds": 5,
"generate_audio": true,
"image_url": "https://example.com/reference.png",
"resolution": "720p"
}
}'
# 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.
















