> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Guide d'intégration de l'API Flux Videos

> Flux API guide - Ace Data Cloud

L'API Flux Videos utilise `POST /flux/videos` pour effectuer la génération de vidéos, la génération vidéo à partir d'images clés, la continuation vidéo et l'amélioration de brouillons. `action=generate` (par défaut), `mode` sélectionne le mode de génération ; utilisez l'existant `POST /flux/tasks` pour interroger les résultats de manière uniforme.

> Actuellement en bêta. La génération vidéo à partir de texte, la génération vidéo à partir d'images, la continuation vidéo et l'amélioration de brouillons sont ouvertes. HTTP 200 et l'ID de tâche indiquent uniquement que la tâche a été acceptée ; vous devez continuer à interroger le résultat final.

## 1. Obtenir un jeton API

1. Inscrivez-vous ou connectez-vous dans la [console Ace Data Cloud](https://platform.acedata.cloud/console/applications), créez une application et obtenez un jeton API. Un jeton API universel peut appeler les services de la plateforme ; veuillez confirmer que l'application dispose de l'autorisation d'appel au service Flux et d'un solde disponible.
2. Consultez les forfaits et les prix de chaque opération sur la [page du service Flux](https://platform.acedata.cloud/services/flux?tab=pricing). Lorsque le solde est insuffisant, rechargez sur la [page de solde de la console](https://platform.acedata.cloud/console/coin).
3. Les requêtes utilisent `Authorization: Bearer <votre Token>`. Le Token doit être conservé dans les variables d'environnement côté serveur, ne l'écrivez pas dans les pages front-end, les dépôts publics, les captures d'écran ou les URL de rappel.

![Demander un API Token dans la console](https://cdn.acedata.cloud/dvc3cg.jpg)

Le code de cet article lit uniformément les variables d'environnement :

```bash theme={null}
export ACEDATACLOUD_API_TOKEN='替换为你自己的 API Token'
```

| Élément | Valeur |
| - | - |
| Adresse racine de l'API | `https://api.acedata.cloud` |
| Soumettre une tâche vidéo | `POST /flux/videos` |
| Interroger une tâche existante | `POST /flux/tasks` |
| Authentification | `Authorization: Bearer $ACEDATACLOUD_API_TOKEN` |
| Format de requête | `Content-Type: application/json` |

Pour les champs complets et le débogage en ligne, consultez [Flux Videos API](https://platform.acedata.cloud/documents/flux-videos), et pour l'interrogation des tâches, consultez [Flux Tasks API](https://platform.acedata.cloud/documents/flux-tasks).

## 2. Choisir l'opération et l'entrée

| action | mode | Entrée | Résultat |
| - | - | - | - |
| `generate`（valeur par défaut lorsque action est omis） | `t2v` | `prompt` | Générer une vidéo à partir de texte |
| `generate` | `i2v` | `prompt`、`keyframes` | Générer une vidéo à partir d'une ou plusieurs images clés |
| `generate` | `v2v` | `prompt`、`start_video` | Continuer à partir de la vidéo d'entrée |
| `generate` | `draft_enhance` | `draft_task_id` de votre brouillon déjà terminé | Améliorer ce brouillon |

Le modèle de génération est `flux-3`, `action` est `generate` (par défaut). Choisissez la génération vidéo à partir de texte, la génération vidéo à partir d'images, la continuation vidéo ou l'amélioration de brouillons via `mode`.

### Paramètres de génération communs

| Paramètre | Description |
| - | - |
| `mode` | Obligatoire ; `t2v`, `i2v`, `v2v` ou `draft_enhance` |
| `prompt` | Obligatoire pour la génération normale ; l'amélioration de brouillon ne permet pas d'écraser l'invite originale |
| `duration` | Pour t2v/i2v, entier de 5 à 20 secondes ; pour v2v, entier de 5 à 15 secondes, ou `auto` ; la durée finale de sortie peut légèrement différer de la valeur demandée |
| `resolution` | `hd`, `fhd`, `qhd`, `uhd` ; la génération normale utilise `hd` par défaut, l'amélioration de brouillon utilise `fhd` par défaut |
| `aspect_ratio` | `auto`, `21:9`, `2:1`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16`, `9:21` |
| `draft` | Indique s'il faut d'abord générer un brouillon ; les brouillons ne prennent en charge que `hd` |
| `generate_audio` | Indique s'il faut générer un audio synchronisé ; `false` est une valeur valide, veuillez conserver une valeur booléenne explicite |
| `safety_tolerance` | Facultatif ; entier de 0 à 4 |
| `async` | Il est recommandé de le définir sur `true`, pour retourner immédiatement l'ID de tâche de la plateforme, puis interroger le résultat |
| `callback_url` | Facultatif ; adresse HTTP(S) recevant le résultat JSON final ; la tâche sera également acceptée de manière asynchrone après sa définition |

Les URL des ressources doivent pouvoir être lues par le service. Si vous utilisez des URL signées temporaires, prévoyez une durée de validité suffisante pour le téléchargement et le traitement. N'utilisez pas une adresse web comme adresse de fichier image ou vidéo.

## 3. Génération vidéo à partir de texte : requête complète testée et résultat

La requête suivante a été exécutée avec succès sur l'interface de production avant l'ajustement tarifaire du 2026-10-02. L'omission de `action` a validé le comportement de génération par défaut ; `async=true` évite une longue attente de la connexion HTTP.

```bash theme={null}
curl -X POST 'https://api.acedata.cloud/flux/videos' \
  -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "flux-3",
    "mode": "t2v",
    "prompt": "A small toy sailboat floating on calm blue water in warm morning light, steady camera, no text.",
    "duration": 5,
    "resolution": "hd",
    "draft": true,
    "async": true
  }'
```

Réponse d'acceptation (ID de tâche réel) :

```json theme={null}
{
  "task_id": "4341eb66-3845-4972-bb86-712a6cfae845",
  "trace_id": "b0f851bd-0925-43ca-acc3-6f634c70d607"
}
```

Enregistrez le `task_id` de votre propre réponse et continuez à interroger ; n'utilisez pas l'ID de tâche de l'exemple de documentation pour interroger les résultats d'autres comptes.

```bash theme={null}
curl -X POST 'https://api.acedata.cloud/flux/tasks' \
  -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"action":"retrieve","id":"替换为本次返回的 task_id"}'
```

Le champ `response` renvoyé par l'interrogation de tâche contient le résultat métier final. Voici le `response` réussi de ce test, les métadonnées externes de la tâche sont omises. L'URL vidéo dans la documentation a été remplacée par une copie du même fichier sur un CDN d'exemple à long terme (SHA-256 identique) ; les appels réels renverront l'URL de résultat propre à cette tâche :

```json theme={null}
{
  "success": true,
  "task_id": "4341eb66-3845-4972-bb86-712a6cfae845",
  "trace_id": "b0f851bd-0925-43ca-acc3-6f634c70d607",
  "data": [
    {
      "id": "4341eb66-3845-4972-bb86-712a6cfae845",
      "model": "flux-3",
      "video_url": "https://cdn.acedata.cloud/assets/examples/flux/4341eb66-3845-4972-bb86-712a6cfae845-5f4391e1942c.mp4",
      "seconds": 5.041667,
      "width": 1280,
      "height": 704,
      "fps": 24,
      "draft_task_id": "4341eb66-3845-4972-bb86-712a6cfae845"
    }
  ],
  "usage": {
    "action": "generate",
    "seconds": 5.041667,
    "output_mp_seconds": 4.3326825781250005,
    "mode": "t2v",
    "resolution": "hd",
    "draft": true
  },
  "cost": {
    "amount": 2.6884689277500002,
    "currency": "credit",
    "list_amount": 2.9871876975000005
  }
}
```

[Voir la vidéo de ce test réel](https://cdn.acedata.cloud/assets/examples/flux/4341eb66-3845-4972-bb86-712a6cfae845-5f4391e1942c.mp4). La vérification du média confirme que la sortie est un MP4 de 1280×704, 24 fps et 5.041667 secondes, d'une taille de fichier de 2,607,276 octets.

| Champ de réponse | Utilisation |
| - | - |
| `success` | Si la tâche finale a réussi ; le `task_id` retourné lors de la phase d'acceptation ne signifie pas `success=true` |
| `task_id` | ID de tâche de la plateforme, utilisé pour le polling et le traitement d'idempotence métier |
| `trace_id` | À fournir au personnel de support lors de l'investigation de problèmes |
| `data[].video_url` | Adresse du résultat vidéo accessible |
| `data[].seconds/width/height/fps` | Durée, dimensions et fréquence d'images réelles de sortie mesurées par le serveur |
| `data[].draft_task_id` | ID d'entrée de l'amélioration de brouillon ; apparaît uniquement lorsqu'un brouillon réutilisable est retourné |
| `usage` | Utilisation finale facturée ; ne pas utiliser la `duration` de la requête pour remplacer les `seconds` réelles |
| `cost.amount` | Credits finalement débités pour cette fois ; `currency=credit` n'est pas des dollars américains |
| `cost.list_amount` | Credits avant la remise de consommation de l'utilisateur de l'application ; retourné lorsque applicable |

Il s'agit d'un test historique avant l'ajustement des prix : `list_amount=2.9871876975` Credits, le compte bénéficiait alors d'une remise de consommation de 10 %, et le montant réel `amount=2.68846892775` Credits. Les nouveaux prix du 2026-10-02 ont été réduits d'environ 6.33 % ; le même brouillon de 5.041667 secondes coûte 2.798125185 Credits au prix actuel (avant remise de consommation), ou 2.5183126665 Credits s'il bénéficie toujours d'une remise de consommation de 10 %. Les factures des tâches historiques ne sont pas recalculées. Les forfaits et remises des autres comptes peuvent différer ; il ne s'agit pas d'un prix fixe en dollars américains pour tous les utilisateurs.

## 4. Image-vers-vidéo : normal et avec images clés temporelles

Voici des exemples de paramètres ; les URL des ressources doivent être remplacées, et cela ne signifie pas que cet exemple a déjà été exécuté avec succès. Une fois la génération terminée, interrogez selon le processus ci-dessus ; la structure du résultat est identique.

Une ou deux images utilisent un tableau normal :

```json theme={null}
{
  "action": "generate",
  "model": "flux-3",
  "mode": "i2v",
  "prompt": "The camera slowly moves around the product in soft studio light.",
  "keyframes": ["https://example.com/first-frame.jpg"],
  "duration": 5,
  "resolution": "hd",
  "generate_audio": false,
  "async": true
}
```

Lors de la spécification des instants des images clés, utilisez des paires `[secondes, URL de l'image]` :

```json theme={null}
{
  "action": "generate",
  "model": "flux-3",
  "mode": "i2v",
  "prompt": "A smooth transition from morning light to a warm sunset.",
  "keyframes": [[0, "https://example.com/start.jpg"], [5, "https://example.com/end.jpg"]],
  "duration": 5,
  "resolution": "hd",
  "async": true
}
```

1 à 10 images clés sont autorisées. Le tableau temporel doit être en ordre croissant de temps, avec des temps de 0 à 20 secondes ; il est interdit de mélanger des URL normales et des éléments temporels. Pour trois images clés normales ou plus, `duration` doit être spécifiée explicitement ; `auto` ne peut pas être utilisé.

### Sortie de test réel image-vers-vidéo

L'entrée correspondante de ce test réel est la suivante (seul le texte explicatif remplace le base64 complet, les autres champs sont la requête réelle) :

```json theme={null}
{
  "async": true,
  "action": "generate",
  "model": "flux-3",
  "prompt": "The toy sailboat drifts slowly across calm water. A steady camera, gentle daylight, no people or text.",
  "duration": 5,
  "resolution": "hd",
  "generate_audio": false,
  "draft": false,
  "mode": "i2v",
  "keyframes": [
    "<la chaîne base64 brute du fichier PNG de l'image ci-dessous>"
  ]
}
```

![Image clé de référence de cette vidéo image-vers-vidéo](https://cdn.acedata.cloud/assets/examples/flux/b1106de8-d586-4e23-b489-381e2f86a10f-input-b0525db595d2.png)

Après avoir [téléchargé cette image clé PNG](https://cdn.acedata.cloud/assets/examples/flux/b1106de8-d586-4e23-b489-381e2f86a10f-input-b0525db595d2.png), vous pouvez utiliser `base64.b64encode(image_bytes).decode("ascii")` de Python pour obtenir la chaîne brute et la placer dans le tableau keyframes. N'utilisez pas le texte explicatif du document comme entrée d'image.

Voici la response finale réelle d'une tâche de production du 2026-10-01 (ce n'est pas une réponse simulée) ; seule l'URL de la vidéo a été remplacée par une copie d'exemple à long terme avec le même hash. L'entrée de test réel utilise la chaîne base64 brute d'un PNG 1280×720 comme image clé unique ; l'entrée URL ci-dessus est un exemple de paramètre indépendant.

```json theme={null}
{
  "success": true,
  "task_id": "b1106de8-d586-4e23-b489-381e2f86a10f",
  "trace_id": "f62d5c56-cfb2-4f8f-b339-ef019d4c0d10",
  "data": [
    {
      "id": "b1106de8-d586-4e23-b489-381e2f86a10f",
      "model": "flux-3",
      "video_url": "https://cdn.acedata.cloud/assets/examples/flux/b1106de8-d586-4e23-b489-381e2f86a10f-bef14458cc9d.mp4",
      "seconds": 5.041667,
      "width": 1280,
      "height": 704,
      "fps": 24
    }
  ],
  "usage": {
    "action": "generate",
    "seconds": 5.041667,
    "output_mp_seconds": 4.3326825781250005,
    "mode": "i2v",
    "resolution": "hd",
    "draft": false
  },
  "cost": {
    "amount": 7.617328628625,
    "currency": "credit",
    "list_amount": 8.46369847625
  }
}
```

[Voir la vidéo mesurée](https://cdn.acedata.cloud/assets/examples/flux/b1106de8-d586-4e23-b489-381e2f86a10f-bef14458cc9d.mp4)。

## 5. Prolongation vidéo

Transmettez l’adresse d’un fichier vidéo existant dans `start_video`, avec `mode=v2v`, pour une durée maximale de 15 secondes.

```json theme={null}
{
  "action": "generate",
  "model": "flux-3",
  "mode": "v2v",
  "prompt": "Continue the sailboat drifting forward with the same steady camera.",
  "start_video": "https://example.com/source.mp4",
  "duration": 5,
  "resolution": "hd",
  "async": true
}
```

### Sortie mesurée de la prolongation vidéo

L’entrée complète mesurée cette fois est la suivante ; lors de la reproduction de l’amélioration du brouillon, vous devez la remplacer par votre propre ID de brouillon. L’URL du média utilise une copie d’exemple à long terme du même fichier :

```json theme={null}
{
  "action": "generate",
  "model": "flux-3",
  "mode": "v2v",
  "start_video": "https://cdn.acedata.cloud/assets/examples/flux/b41293be-94c0-4dc7-9f39-ce04f0a8798d-c055a3079059.mp4",
  "prompt": "Continue the same sailboat drifting gently across calm water in the same continuous steady shot.",
  "duration": 5,
  "resolution": "hd",
  "generate_audio": false,
  "async": true
}
```

Ce qui suit est la response finale réelle d’une tâche de production du 2026-10-01 (réponse non simulée) ; seule l’URL de la vidéo a été remplacée par une copie d’exemple à long terme avec le même hachage.

```json theme={null}
{
  "success": true,
  "task_id": "8af9aa42-7e4d-47a4-bd61-144d97440c91",
  "trace_id": "4fb49afc-abca-4039-bbaa-adb66e293544",
  "data": [
    {
      "id": "8af9aa42-7e4d-47a4-bd61-144d97440c91",
      "model": "flux-3",
      "video_url": "https://cdn.acedata.cloud/assets/examples/flux/8af9aa42-7e4d-47a4-bd61-144d97440c91-a512d6574811.mp4",
      "seconds": 5,
      "width": 1280,
      "height": 704,
      "fps": 24
    }
  ],
  "usage": {
    "action": "generate",
    "seconds": 5,
    "output_mp_seconds": 4.296875,
    "mode": "v2v",
    "resolution": "hd",
    "draft": false
  },
  "cost": {
    "amount": 18.219375,
    "currency": "credit",
    "list_amount": 20.24375
  }
}
```

[Voir la vidéo mesurée](https://cdn.acedata.cloud/assets/examples/flux/8af9aa42-7e4d-47a4-bd61-144d97440c91-a512d6574811.mp4)。

Le `start_video` de l’entrée mesurée est une [vidéo de brouillon terminée](https://cdn.acedata.cloud/assets/examples/flux/b41293be-94c0-4dc7-9f39-ce04f0a8798d-c055a3079059.mp4), les autres paramètres étant duration=5、resolution=hd、generate\_audio=false。

## 6. D’abord le brouillon, puis l’amélioration

1. Générez un brouillon avec `draft=true`、`resolution=hd` et attendez la réussite.
2. Récupérez l’ID de brouillon de la plateforme depuis le `data[0].draft_task_id` final.
3. Soumettez une requête d’amélioration avec les identifiants de l’application du même propriétaire :

```json theme={null}
{
  "action": "generate",
  "model": "flux-3",
  "mode": "draft_enhance",
  "draft_task_id": "Remplacez par votre propre ID de brouillon terminé",
  "resolution": "fhd",
  "async": true
}
```

L’amélioration du brouillon ne peut pas transmettre `prompt`、`duration`、`aspect_ratio`、`version`、`generate_audio`、`draft`、`keyframes`、`start_video` pour remplacer le contenu d’origine. Le cache du brouillon est une ressource temporaire, veuillez l’améliorer rapidement ; sa conservation permanente ou un nombre fixe de jours de conservation ne sont pas garantis. Les brouillons qui ne vous appartiennent pas/ne proviennent pas de l’application actuelle, les brouillons non terminés et les caches expirés ne peuvent pas être réutilisés. Le brouillon et l’amélioration sont deux tâches distinctes, facturées séparément après réussite.

### Sortie mesurée de l’amélioration du brouillon

L’entrée complète mesurée cette fois est la suivante ; lors de la reproduction de l’amélioration du brouillon, vous devez la remplacer par votre propre ID de brouillon. L’URL du média utilise une copie d’exemple à long terme du même fichier :

```json theme={null}
{
  "action": "generate",
  "model": "flux-3",
  "mode": "draft_enhance",
  "draft_task_id": "b41293be-94c0-4dc7-9f39-ce04f0a8798d",
  "resolution": "hd",
  "async": true
}
```

Ce qui suit est la response finale réelle d’une tâche de production du 2026-10-01 (réponse non simulée) ; seule l’URL de la vidéo a été remplacée par une copie d’exemple à long terme avec le même hachage.

```json theme={null}
{
  "success": true,
  "task_id": "1db6243b-4a05-4484-828c-25bb17de7108",
  "trace_id": "64f93fa1-8d18-4c8b-a6d2-888009eb7cfa",
  "data": [
    {
      "id": "1db6243b-4a05-4484-828c-25bb17de7108",
      "model": "flux-3",
      "video_url": "https://cdn.acedata.cloud/assets/examples/flux/1db6243b-4a05-4484-828c-25bb17de7108-058d92166607.mp4",
      "seconds": 5.041667,
      "width": 1280,
      "height": 704,
      "fps": 24
    }
  ],
  "usage": {
    "action": "generate",
    "seconds": 5.041667,
    "output_mp_seconds": 4.3326825781250005,
    "mode": "t2v",
    "resolution": "hd",
    "draft": false
  },
  "cost": {
    "amount": 7.617328628625,
    "currency": "credit",
    "list_amount": 8.46369847625
  }
}
```

[Voir la vidéo mesurée](https://cdn.acedata.cloud/assets/examples/flux/1db6243b-4a05-4484-828c-25bb17de7108-058d92166607.mp4)。

L’entrée mesurée utilise son propre draft\_task\_id=b41293be-94c0-4dc7-9f39-ce04f0a8798d、resolution=hd ; le usage.mode=t2v final indique le mode de brouillon d’origine. Cette tâche est facturée séparément du brouillon d’origine.

## 7. Appel Python de bout en bout

Installez `requests`, définissez votre propre Token, puis exécutez le script ci-dessous pour effectuer « une soumission → interrogation → sortie de l’URL vidéo ». L’interrogation et les nouvelles tentatives réseau doivent toutes utiliser le task\_id d’origine, afin d’éviter de soumettre à nouveau des tâches payantes.

```python theme={null}
import os
import time
import requests

base_url = "https://api.acedata.cloud"
headers = {
    "Authorization": "Bearer " + os.environ["ACEDATACLOUD_API_TOKEN"],
    "Accept": "application/json",
}
payload = {
    "action": "generate",
    "model": "flux-3",
    "mode": "t2v",
    "prompt": "A small toy sailboat floating on calm blue water in warm morning light.",
    "duration": 5,
    "resolution": "hd",
    "draft": True,
    "async": True,
}
submitted = requests.post(base_url + "/flux/videos", json=payload, headers=headers, timeout=120)
submitted.raise_for_status()
accepted = submitted.json()
if accepted.get("error"):
    raise RuntimeError(accepted["error"])
task_id = accepted["task_id"]
print("Task ID:", task_id)  # 持久化保存，用于恢复轮询

# 30 分钟是本示例的客户端等待上限，不是服务的完成时限承诺。
deadline = time.monotonic() + 30 * 60
while time.monotonic() < deadline:
    polled = requests.post(
        base_url + "/flux/tasks",
        json={"action": "retrieve", "id": task_id},
        headers=headers,
        timeout=30,
    )
    polled.raise_for_status()
    task = polled.json()
    if task.get("error"):
        raise RuntimeError(task["error"])
    result = task.get("response") or task.get("result")
    if isinstance(result, dict) and result.get("success") is True:
        print("Video:", result["data"][0]["video_url"])
        print("Usage:", result.get("usage"))
        print("Cost:", result.get("cost"))
        break
    if isinstance(result, dict) and result.get("error"):
        raise RuntimeError(result["error"])
    time.sleep(10)
else:
    raise TimeoutError("Still processing; resume polling with task_id=" + task_id)
```

Après un délai d’attente réseau, ne considérez pas un état inconnu comme un échec et ne soumettez pas immédiatement à nouveau. Si vous avez déjà obtenu `task_id`, continuez à interroger cette tâche ; enregistrez `task_id` et `trace_id` pour faciliter le diagnostic. L’interface d’interrogation elle-même ne facture pas de frais de génération.

## 8. Utilisation des rappels

Ajoutez `callback_url` lors de la soumission ; une fois la tâche terminée, le résultat JSON final sera envoyé par POST à cette adresse. La structure en cas de succès est identique à la réponse précédente ; en cas d’échec, elle contient `error`.

```json theme={null}
{
  "action": "generate",
  "model": "flux-3",
  "mode": "t2v",
  "prompt": "A small sailboat on calm water.",
  "duration": 5,
  "resolution": "hd",
  "draft": true,
  "callback_url": "https://your-server.example/flux-callback"
}
```

L’adresse de rappel doit être accessible depuis Internet public. Après réception de la notification, traitez-la de manière idempotente selon `task_id`, et renvoyez rapidement un code 2xx ; le traitement métier peut être mis en file d’attente. Ce document ne déclare pas que le rappel dispose d’une authentification par signature : avant d’effectuer des opérations sensibles telles que l’attribution d’avantages métier, utilisez votre propre Token pour interroger la même tâche et vérifier le résultat. Si le rappel n’est pas reçu, vous pouvez également continuer l’interrogation ; ne régénérez pas.

## 9. Facturation actuelle et grille tarifaire

Mis à jour le 2026-10-02 : les prix unitaires de chaque niveau de cette interface vidéo ont été réduits d’environ 6,33 %, tandis que le mode de mesure, les forfaits et les règles de remises sur la consommation restent inchangés. Le `cost` dans les `response` des tests historiques mentionnés précédemment correspond à la facture au moment de la fin de la tâche et ne représente pas le tarif actuel.

La génération vidéo est facturée selon les **secondes réellement produites**. Voici les prix unitaires actuels en Credits, avant l’application des remises de consommation du compte, conformément aux règles de la [page de tarification Flux](https://platform.acedata.cloud/services/flux?tab=pricing).

| Opération/mode | Résolution | Prix unitaire en Credits |
| - | - | -: |
| Brouillon t2v / i2v | hd | 0.555 / seconde |
| Brouillon v2v | hd | 1.11 / seconde |
| t2v / i2v / amélioration de brouillon correspondante | hd | 1.5725 / seconde |
| Idem | fhd | 2.6825 / seconde |
| Idem | qhd | 3.7 / seconde |
| Idem | uhd | 7.4 / seconde |
| v2v / amélioration de brouillon correspondante | hd | 3.7925 / seconde |
| Idem | fhd | 4.9025 / seconde |
| Idem | qhd | 6.0125 / seconde |
| Idem | uhd | 8.7875 / seconde |

Conversion en dollars américains : `coût réel (USD) = cost.amount (Credits) × price du forfait / amount du forfait`. Les niveaux de recharge et les remises sur la consommation influencent le prix réel ; les Credits ne peuvent pas être directement considérés comme des USD. Les tâches échouées ne facturent pas de frais de génération ; le montant final est déterminé par le résultat de fin et les enregistrements d’appels dans la console.

## 10. Questions fréquentes et diagnostic

| Situation | Recommandation |
| - | - |
| Erreur de paramètre (400) | Vérifiez action=generate, mode, duration et le format des images clés ; ne mélangez pas les champs de différents modes de génération |
| Erreur d’authentification (401) | Vérifiez le Bearer Token, les autorisations de l’application et la validité des identifiants |
| Refus de modération de contenu (403) | Ajustez les éléments et le prompt ; ne soumettez pas à répétition exactement le même contenu |
| Limitation de débit (429) | Réduisez la concurrence et réessayez avec un délai d’attente progressif |
| service\_unavailable (503) | L’opération actuelle n’est pas disponible ; les tâches asynchrones déjà acceptées peuvent signaler cette erreur dans la `response` finale |
| `task_id` a été renvoyé mais aucune vidéo n’est encore disponible | Continuez à interroger `response`, ne considérez pas HTTP 200 comme la fin de la génération |
| Le brouillon ne peut pas être réutilisé | Vérifiez le propriétaire/l’application actuelle, que la tâche est terminée, que la requête d’origine contient draft=true, et que le cache temporaire est toujours valide |

Lors de vos retours, fournissez `task_id`, `trace_id`, l’heure de la requête et les paramètres anonymisés ; n’envoyez pas votre API Token. Pour davantage de méthodes, consultez le [guide d’intégration Flux MCP](https://platform.acedata.cloud/documents/flux-mcp).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.