Guide
Images multiples et vidéos de référence
Images de référence multiples, vidéo de référence, vidéo de profondeur, audio, limites de capacités, reprise des tâches et facturation
Images multiples et vidéos de référence
Cette page répond aux questions d'intégration programmatique de « plusieurs images de référence + une vidéo de référence », notamment les limites de capacités, les règles d'ordre, la vidéo de profondeur, l'audio, la reprise des tâches et la facturation. Le tableau complet des champs du corps de requête et les exemples copiables se trouvent dans Interface de génération vidéo, et l'import des ressources dans Interfaces de la bibliothèque de ressources.
Conclusions à retenir
- Plusieurs images et une vidéo de référence utilisent le même tableau
content: chaque image occupe un élémentimage_url, la vidéo occupe un élémentvideo_url. - « Vidéo de profondeur » n'a pas de champ
deep_videodistinct ; soumettez-la comme une vidéo de référence ordinaire, avecroledéfini surreference_video. - L'ordre du tableau est l'ordre des ressources. Il est recommandé d'indiquer explicitement dans le prompt « image 1, image 2, image 3, vidéo de référence », sans compter sur le serveur pour deviner l'ordre d'après les noms de fichier.
generate_audio: falsesignifie désactiver la sortie audio du résultat généré ; cela ne signifie pas conserver la piste audio d'origine de la vidéo de référence d'entrée, ni copier l'audio d'entrée dans la vidéo finale.- Les limites précises de nombre d'images, de nombre de vidéos, de taille de fichier, d'encodage et de concurrence dépendent du catalogue de modèles et des réponses réelles de l'interface ; la plateforme ne garantit pas un ensemble de limites uniformes pour toutes les variantes de Seedance.
- Si vous devez absolument conserver les mouvements, les positions de caméra et les coupes du plan d'origine, la vidéo de référence ne peut servir que de référence au modèle. La requête publique actuelle ne dispose d'aucun paramètre générique pour « forcer une coupe à la Nième seconde » ; la synchronisation précise ne peut pas être garantie uniquement par les champs de l'interface.
1. Vérifier les capacités du modèle actuel
Lisez d'abord le catalogue de modèles visible pour la clé actuelle :
curl "https://locopalai.com/v1/models" \
-H "Authorization: Bearer $LOCOPAL_API_KEY"Le catalogue confirme seulement « si le modèle est visible et pour quelles interfaces il est disponible » ; c'est data[].id qui constitue le model à renseigner dans la requête. Les limites concrètes telles que le nombre d'images de référence, la vidéo de référence, l'audio de référence, le ratio de sortie, la durée et la résolution dépendent de la page de détail du modèle et des erreurs de paramètres renvoyées par l'interface ; la plateforme ne devine pas à la place du modèle les limites non listées dans le catalogue.
| Capacité | Comment la vérifier | La plateforme peut-elle garantir de manière uniforme |
|---|---|---|
| Images de référence | Détail du modèle + validation réelle des paramètres | Impossible de garantir un nombre maximal uniforme entre modèles |
| Vidéo de référence | Soumettre reference_video lorsque le détail du modèle le prend explicitement en charge | Impossible d'uniformiser entre modèles |
| Audio de référence | Soumettre reference_audio lorsque le détail du modèle le prend explicitement en charge | Impossible d'uniformiser entre modèles |
| Ratio de sortie | Détail du modèle | Se référer aux valeurs listées dans le détail |
| Durée de sortie | Détail du modèle | Se référer au détail et aux erreurs réelles de paramètres |
| Résolution de sortie | Détail du modèle | Aucune garantie uniforme de 720p |
| Résolution, fréquence d'images, encodage et taille de la vidéo d'entrée | Détail du modèle ou réponse d'erreur | La plateforme ne garantit rien d'uniforme entre modèles |
2. Import et référencement des ressources de référence
Les illustrations de personnages fictifs, les vues multiples d'un personnage et les images de scène sans personne ne sont pas des ressources soumises à autorisation de portrait ; importez-les comme des ressources virtuelles ordinaires :
POST /api/v1/materials/groups
POST /api/v1/materials/assets
GET /api/v1/materials/assets/{asset_id}Une fois le statut de la ressource passé à Active, l'URL de l'image dans la requête vidéo peut être remplacée par :
asset://asset-20260911035115-etexuLorsque les images sont importées une par une, chacune obtient un asset_id distinct. Les images de personnage et les images de scène peuvent être placées dans le même groupe virtuel ou dans des groupes séparés ; lors de la soumission de la vidéo, référencez-les via des éléments content différents. L'import, l'interrogation répétée et les réponses d'erreur sont décrits dans Interfaces de la bibliothèque de ressources.
En cas de soumission réussie, status vaut généralement Processing, puis passe à Active une fois le traitement terminé ; en cas d'échec, status vaut Failed et error_message en donne la cause. La validation est asynchrone ; la plateforme ne garantit pas une durée uniforme pour toutes les images, le programme doit interroger le même asset_id et ne pas soumettre à nouveau pendant Processing.
3. Plusieurs images + une vidéo de référence
La requête suivante exprime « 1 image de personnage + 2 images de scène + 1 vidéo de référence ». Les indices du tableau commencent à 1 :
content[1]est l'image 1, l'image du personnage ;content[2]est l'image 2, la scène 1 ;content[3]est l'image 3, la scène 2 ;content[4]est la vidéo de référence.
content[0] est le prompt textuel et n'entre pas dans la numérotation des images.
{
"model": "从 /v1/models 选择的视频模型 ID",
"content": [
{
"type": "text",
"text": "图片1是人物身份参考,图片2和图片3是场景参考。参考视频用于动作、机位和镜头节奏参考;保持人物身份和场景关系一致。"
},
{ "type": "image_url", "role": "reference_image", "image_url": { "url": "asset://人物素材ID" } },
{ "type": "image_url", "role": "reference_image", "image_url": { "url": "asset://场景素材ID1" } },
{ "type": "image_url", "role": "reference_image", "image_url": { "url": "asset://场景素材ID2" } },
{ "type": "video_url", "role": "reference_video", "video_url": { "url": "https://你的对象存储域名/reference-depth.mp4" } }
],
"duration": 7,
"resolution": "720p",
"ratio": "9:16",
"generate_audio": false,
"watermark": false
}En cas de création réussie, l'ID de tâche est renvoyé ; interrogez ensuite uniquement cette tâche :
curl "$LOCOPAL_BASE_URL/v1/video/generations/$LOCOPAL_TASK_ID" \
-H "Authorization: Bearer $LOCOPAL_API_KEY"| Statut | Traitement côté client |
|---|---|
queued | Acceptée, continuez d'interroger le même ID de tâche |
in_progress | Génération en cours, mettez à jour la progression, ne créez pas de nouvelle tâche |
completed | Lisez metadata.url et téléchargez ou transférez dès que possible |
failed | Lisez error.code et error.message |
unknown | Conservez l'ID de tâche et interrogez plus tard |
Si la réponse indique explicitement que le modèle actuel ne prend pas en charge la bibliothèque de ressources, utilisez plutôt une adresse d'image HTTPS publique prise en charge par ce modèle ou changez de modèle ; ne contournez pas la validation des ressources. Les exemples complets de réponse de création et d'interrogation sont décrits dans Interface de génération vidéo.
4. Limites des vidéos de référence, du son et de la vidéo de profondeur
Une vidéo de référence n'est pas une piste de contrôle précise
Dans la structure de l'interface publique, la vidéo de profondeur en niveaux de gris reste une reference_video ordinaire. Sauf si le détail du modèle actuel déclare séparément une capacité de contrôle de profondeur, la plateforme n'interprète pas les valeurs de gris comme une contrainte de profondeur et ne garantit pas une reproduction stricte de la profondeur, de la trajectoire des mouvements ou des coupes de la vidéo d'origine.
Une vidéo de référence peut aider le modèle à comprendre les mouvements, la position de caméra, la composition et le rythme, mais la vidéo finale est toujours régénérée par le modèle. La requête publique actuelle ne comporte ni piste de timecode générique ni champ de coupe forcée ; s'il faut s'approcher d'une coupe à un instant donné, vous ne pouvez l'indiquer que dans le prompt et vérifier la vidéo finale après génération ; si une précision à l'image près est indispensable, cela doit être réalisé lors du montage ou de la composition externe.
Piste audio d'entrée et generate_audio
Lorsque la vidéo de référence comporte une piste audio d'origine, la lecture ou non de cette piste par le modèle dépend de l'implémentation de la vidéo de référence du modèle actuel. La signification certaine de generate_audio: false est la désactivation de la sortie audio du résultat généré ; elle ne garantit ni la copie de la piste audio de la vidéo d'entrée, ni l'utilisation de la piste d'entrée comme audio de référence indépendant.
- Si l'objectif est de « générer une vidéo sans son », vous pouvez passer
generate_audio: false; - Si l'objectif est de « conserver le son d'origine », ne vous fiez pas uniquement à ce champ : après avoir téléchargé la vidéo finale, traitez-la avec votre propre processus de composition audio-vidéo, ou choisissez une configuration dont le détail du modèle déclare explicitement la prise en charge de l'audio de référence et de l'audio de sortie ;
- Si le détail du modèle ne déclare pas la prise en charge de l'audio de référence, ne soumettez pas de
reference_audiosupplémentaire.
5. Limites actuellement non garanties de manière uniforme
| Élément | Règle |
|---|---|
| Nombre d'images de référence | Déterminé par les capacités du modèle et la validation réelle du service ; lorsque le catalogue n'indique aucune limite, la plateforme ne s'engage pas sur un chiffre uniforme |
| Nombre de vidéos de référence | Soumission possible uniquement lorsque le détail du modèle le déclare ; le nombre et la durée totale dépendent des limites réelles du modèle |
| Durée totale de la vidéo d'entrée | Aucune garantie uniforme entre modèles ; un dépassement renvoie une erreur de paramètre |
| Résolution, fréquence d'images, encodage et taille de fichier d'entrée | Se référer au détail du modèle et aux réponses d'erreur réelles ; la documentation ne fait pas de suppositions |
| Durée de sortie | Utiliser les paliers déclarés dans le détail du modèle |
| Résolution de sortie | Utiliser les valeurs déclarées dans le détail du modèle ; il ne faut pas déduire de la présence de 720p dans le nom du modèle que toutes les variantes le prennent en charge |
| URL signées HTTPS | Doivent permettre à la plateforme de télécharger directement pendant la création et le traitement de la tâche ; la plateforme ne fixe pas de durée de validité uniforme entre modèles ; il est recommandé d'utiliser une durée couvrant tout le cycle de vie de la tâche, ou d'utiliser asset:// |
| Vidéo de profondeur | Par défaut, une reference_video ordinaire ; pas de champ deep_video distinct |
| Coupe précise | L'interface publique actuelle ne comporte pas de paramètre générique de timecode forcé |
À propos de « le groupe actuel prend-il en charge cet ensemble de requêtes »
Le groupe d'appel et le groupe de ressources sont deux concepts différents ; il ne faut pas juger de la prise en charge des images multiples ou des vidéos de référence uniquement d'après le nom du groupe dans la console. L'ordre réel de vérification est le suivant :
- le modèle choisi existe dans
/v1/models; - le détail du modèle autorise explicitement les images de référence et la vidéo de référence ;
- le statut de la ressource référencée est
Active; - l'interface de création renvoie
queued, ce qui indique que la requête a été acceptée ; - si le résultat final est
failed, lisezerror.codeeterror.messagepour déterminer s'il s'agit d'un problème de combinaison ou de ressource.
La plateforme ne basculera pas silencieusement un modèle qui ne prend pas en charge les vidéos de référence vers un autre modèle, afin d'éviter des coûts et des résultats imprévisibles.
6. Reprise des tâches, limitation de débit, idempotence et facturation
Interrogation et reprise
Après que l'interface de création a renvoyé id, vous devez l'enregistrer immédiatement ; si le réseau est interrompu mais que l'ID de tâche a déjà été obtenu, interrogez uniquement la tâche d'origine. L'interface publique actuelle ne propose pas de moyen générique de retrouver une tâche à partir de « prompt + ressources + paramètres » ; si la connexion est interrompue avant le retour de la réponse de création et qu'aucun ID de tâche n'a été obtenu, la plateforme ne peut pas garantir la récupération de la tâche d'origine à partir du seul corps de requête. L'appelant doit donc enregistrer sa requête métier dans sa propre base de données et stocker immédiatement l'ID de tâche dès réception de la réponse d'acceptation.
Interrogation répétée, limitation de débit et conservation
La plateforme ne publie pas uniformément le nombre de requêtes simultanées et la fréquence d'interrogation par clé API pour tous les groupes d'appel ; le client doit respecter la réponse 429 et utiliser une interrogation avec repli exponentiel, de préférence toutes les 5 à 15 secondes. Après la génération de la vidéo finale, téléchargez-la ou transférez-la dès que possible ; ne considérez pas l'URL renvoyée comme une adresse permanente. Si la tâche est encore interrogeable mais que metadata.url a expiré, interrogez d'abord à nouveau la tâche d'origine ; si le lien ne peut être restauré, l'interface publique ne garantit pas de pouvoir régénérer la même adresse.
Idempotence et numéro de requête client
L'interface vidéo publique actuelle ne promet aucun champ d'idempotence officiel contrôlable par l'utilisateur, et ne garantit pas qu'un numéro de requête personnalisé permette une déduplication selon le corps de requête. L'appelant peut utiliser son propre numéro de requête métier pour enregistrer les associations, mais ne doit pas le considérer comme une clé d'idempotence que la plateforme reconnaîtra nécessairement ; côté plateforme, seule la réception d'un ID de tâche constitue une base de reprise fiable.
Changement de clé API
L'appartenance des tâches et des ressources est déterminée par le compte de la plateforme ; sous le même compte, après un changement de clé, vous pouvez continuer à interroger la tâche d'origine en réessayant l'interrogation avec la clé utilisée lors de la création de la tâche. Si la nouvelle clé n'appartient pas au même compte, l'interrogation renvoie 401 ou 404 ; dans ce cas, ne recréez pas la tâche pour contourner l'échec d'interrogation.
Facturation, échecs et remboursements
La facturation de l'import, de la validation, du téléchargement des vidéos de référence et de la génération vidéo dépend du modèle actuel et de la configuration tarifaire de la plateforme. La tâche vidéo est réglée à l'achèvement selon l'usage réel ; une création réussie n'entraîne pas de pré-autorisation, et une seule ligne de frais réels apparaît dans la facture après l'achèvement ; avant la soumission, le solde est vérifié pour couvrir l'estimation, et s'il est insuffisant, un message lisible est renvoyé directement sans créer de tâche. Les données de coût n'apparaissent dans la réponse d'interrogation qu'après le règlement :
- La réponse de création indique seulement que la tâche a été acceptée ; il n'y a alors aucune donnée de règlement, donc aucun champ de frais n'est renvoyé ; ne jugez pas le coût de cette exécution d'après la réponse de création ;
- La réponse d'interrogation renvoie
usageaprès le règlement de la tâche :usage.total_tokensest le nombre de tokens vidéo facturés cette fois (l'amont ne rapporte qu'un nombre de tokens, enregistré selon la base de facturation de la plateforme dansusage.prompt_tokens,usage.completion_tokensvalant0),usage.quotacorrespond aux crédits consommés,usage.amountest le montant en yuans converti à partir de ces mêmes crédits (usage.currencyvaut toujoursCNY) ; - Un échec de validation des paramètres (HTTP
400/403) signifie que la requête n'a pas été acceptée et n'entraîne pas de frais de génération ; - Une fois l'ID de tâche renvoyé, la facturation éventuelle et le remboursement en cas d'échec sont traités selon les règles de facturation du modèle et de la plateforme ;
- Les règles de facturation et de remboursement en cas d'échec de validation, d'échec de génération ou d'annulation de tâche ne peuvent pas être déduites du seul statut de la tâche ;
- Pour vérifier les frais, conservez l'ID de tâche, l'ID de modèle, la date de création et le compte associé à la clé API, puis vérifiez avec
usage.quota/usage.amountde la réponse d'interrogation dans la facturation de la console, ou contactez le support de la plateforme.
7. Réponses d'erreur courantes
{
"error": {
"code": "invalid_parameter",
"message": "当前模型不支持参考视频,或参考素材数量超出限制",
"type": "invalid_request_error",
"param": "content"
}
}| HTTP | Recommandation de traitement |
|---|---|
400 | Vérifiez le modèle, les rôles, l'ordre du tableau, l'URL, le nombre, la durée et la résolution |
401 | Vérifiez si la clé API est absente, expirée ou dépourvue des droits sur le modèle actuel |
404 | Vérifiez l'ID de tâche, l'ID de ressource ou l'ID de modèle |
429 | Repliez-vous comme indiqué, réduisez la concurrence, ne recréez pas la tâche |
500 / 503 | Si un ID de tâche existe, continuez d'interroger la tâche d'origine ; sans ID de tâche, enregistrez la requête métier et vérifiez manuellement si elle a été acceptée |
Processus d'intégration des ressources de portrait et des vidéos de référence
Processus complet et exécutable, de la création du groupe et de l'import des images à la soumission multi-images avec vidéo de référence
Atelier et Agent de LocoPal Creation
Utiliser l'Agent, les ressources et l'historique de génération dans l'atelier web
