Source: https://ailoot.ai/models/fr-ch/kling-v2-1/
Canonical: https://ailoot.ai/models/fr-ch/kling-v2-1/
Language: fr-ch

# Kling v2.1

[Markdown](https://ailoot.ai/models/fr-ch/kling-v2-1/index.md) · [JSON](https://ailoot.ai/models/fr-ch/kling-v2-1/facts.json)

## [Kling v2.1](https://ailoot.ai/models/fr-ch/kling-v2-1/)

Kling v2.1 génère des vidéos à partir d’une image de référence et d’un descriptif écrit du mouvement. Sa fiche documentée de génération à partir d’images propose des durées de cinq et dix secondes, ainsi que les modes std et pro pour préparer la séquence.

- [**Ailoot Ultra · Video** `POST /v1/videos` `kling-v2-1`](https://ailoot.ai/models/fr-ch/kling-v2-1/#method-0)

À propos du modèle

Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.

Kling v2.1 est un modèle vidéo Kling dont le catalogue documenté indique la prise en charge de la génération de vidéos à partir d’images. Commencez par une image fixe de référence qui définit la scène, puis décrivez le mouvement qui en fera un plan exploitable. Une image de produit, un décor illustré ou une image de personnage peuvent fournir la composition à partir de laquelle la séquence se développe.

Choisissez une référence qui permette de comprendre l’action souhaitée. Un sujet placé à côté d’une porte constitue un point de départ clair pour entrer dans une pièce; un objet posé sur une surface dégagée facilite l’examen de sa silhouette. Préservez la qualité d’origine de la référence et conservez-la avec le clip généré.

Décrivez une action cohérente. Précisez le sujet, la direction du mouvement et l’état final souhaité. Pour une interaction, expliquez la relation entre les participants: qui tend la main, ce qui est touché et où l’action se termine. Utilisez des détails visibles qui pourront être vérifiés dans la séquence obtenue.

Cadrez le plan en fonction de son usage final. La fiche documentée de génération de vidéos à partir d’images propose des formats paysage, portrait et carré, avec des durées de cinq et dix secondes. Définissez l’emplacement que le sujet doit conserver dans le cadre choisi. Une composition en portrait et un large plan d’ensemble imposent des contraintes différentes à un même mouvement.

Les réglages documentés de génération de vidéos à partir d’images comprennent les modes de génération std et pro. Conservez le mode choisi avec le résultat lors de la comparaison des versions. Évaluez le résultat par rapport au descriptif: action demandée, composition, apparence du sujet et rythme. Le seul nom du mode ne permet pas de savoir dans quelle mesure un plan donné répond à ces besoins.

Utilisez les indications de caméra pour soutenir l’événement. Une caméra fixe peut montrer un changement de pose, un déplacement latéral peut révéler un décor et un mouvement vers l’avant peut mettre un détail en valeur. Précisez la relation souhaitée entre le sujet et le point de vue pour que le mouvement de caméra ne concurrence pas l’action que le spectateur doit suivre.

Vérifiez la continuité sur l’ensemble du clip. Pour un produit, examinez sa forme, ses marquages et l’apparence de ses matériaux lorsque le point de vue change. Pour une personne, examinez les traits du visage, les mains, les vêtements et les contacts avec les objets proches. Vérifiez la composition finale en tenant compte du plan ou de l’élément graphique qui suit au montage.

Enregistrez la vidéo terminée, la référence, le prompt et les réglages sélectionnés dans un même dossier de suivi du plan. Lors d’une révision, identifiez l’écart visuel précis et conservez les éléments qui servent déjà la scène. Comparez les versions à la même taille d’affichage et à la même vitesse de lecture afin de choisir en fonction du mouvement et de la composition que le public verra réellement.

**Ailoot Ultra · Video** `POST /v1/videos` `kling-v2-1`

[`kling-v2-1`](https://ailoot.ai/models/fr-ch/#m=kling-v2-1&route=Ultra&caller=kling-v2-1&fmt=videos)

Kling /`kling-v2-1`

### Premiers pas

Kling v2.1 génère des vidéos à partir d’une image de référence et d’un descriptif écrit du mouvement. Sa fiche documentée de génération à partir d’images propose des durées de cinq et dix secondes, ainsi que les modes std et pro pour préparer la séquence.

Entrées acceptées

Texte · Images

Résultats

Vidéo

### Disponible dans Ailoot · entrées et méthodes

**Ailoot Ultra · Video** `POST /v1/videos`

Entrée

`text`, `image`

Sortie

`video`

| Champ | Type | Exigence | Valeurs et limites | Par défaut |
| --- | --- | --- | --- | --- |
| Champ`model` | Type`string` | ExigenceObligatoire | Valeurs et limites kling-v2-1 Conditions: Utilisez exactement ce sélecteur de routage Ailoot. | Par défaut— |
| Champ`mode` | Type`string` | ExigenceFacultatif | Valeurs et limites std, pro Conditions: Utilisez le champ documenté pour le modèle sélectionné et les choix proposés ; omettez toute valeur facultative non précisée. | Par défautstd |
| Champ`aspect_ratio` | Type`string` | ExigenceFacultatif | Valeurs et limites 16:9, 9:16, 1:1 Conditions: Utilisez le champ documenté pour le modèle sélectionné et les choix proposés ; omettez toute valeur facultative non précisée. | Par défaut— |
| Champ`duration` | Type`integer` | ExigenceFacultatif | Valeurs et limites 5, 10 Conditions: Utilisez le champ documenté pour le modèle sélectionné et les choix proposés ; omettez toute valeur facultative non précisée. | Par défaut— |
| Champ`end_image` | Type`string` | ExigenceFacultatif | Valeurs et limites Conditions: Utilisez le champ documenté pour le modèle sélectionné et les choix proposés ; omettez toute valeur facultative non précisée. | Par défaut— |
| Champ`image` | Type`string or array<string>` | ExigenceObligatoire | Valeurs et limites Conditions: Fournissez l’URL réelle et accessible de votre image. Une liste n’est acceptée que si le schéma du paramètre prévoit un tableau. | Par défaut— |
| Champ`negative_prompt` | Type`string` | ExigenceFacultatif | Valeurs et limites Conditions: Utilisez le champ documenté pour le modèle sélectionné et les choix proposés ; omettez toute valeur facultative non précisée. | Par défaut— |
| Champ`prompt` | Type`string` | ExigenceObligatoire | Valeurs et limites Conditions: Utilisez le champ documenté pour le modèle sélectionné et les choix proposés ; omettez toute valeur facultative non précisée. | Par défaut— |

Paramètres et cycle de vie de la méthode

| Paramètre | Contrat |
| --- | --- |
| Paramètre`content_type` | Contratapplication/json |
| Paramètre`required` | Contratmodel, prompt, image |
| Paramètre`optional` | Contratmode, aspect\_ratio, duration, end\_image, negative\_prompt |
| Paramètre`material_types` | Contrattext, image |
| Paramètre`conditions` | ContratUtilisez exactement ce sélecteur de routage Ailoot., Utilisez le champ documenté pour le modèle sélectionné et les choix proposés ; omettez toute valeur facultative non précisée., Utilisez le champ documenté pour le modèle sélectionné et les choix proposés ; omettez toute valeur facultative non précisée., Utilisez le champ documenté pour le modèle sélectionné et les choix proposés ; omettez toute valeur facultative non précisée., Utilisez le champ documenté pour le modèle sélectionné et les choix proposés ; omettez toute valeur facultative non précisée., Fournissez l’URL réelle et accessible de votre image. Une liste n’est acceptée que si le schéma du paramètre prévoit un tableau., Utilisez le champ documenté pour le modèle sélectionné et les choix proposés ; omettez toute valeur facultative non précisée., Utilisez le champ documenté pour le modèle sélectionné et les choix proposés ; omettez toute valeur facultative non précisée. |

Alias de méthode : `/v1/videos/generations`

Cycle de vie : `submit_once_poll_original`

`GET /v1/videos/{request_id}`

`GET /v1/videos/generations/{request_id}`

`GET /v1/videos/{request_id}/content`

`GET /v1/media/assets`

`GET /v1/media/assets/{asset_id}`

### Tarifs

##### Calcul du coût final

Les tarifs affichés servent à estimer le coût avant la génération. Le montant final est calculé à partir du coût enregistré pour la génération d’origine. La durée mesurée du résultat et les quantités prévisionnelles ne constituent pas la quantité finale facturable.

Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.

Mode rapide

Non précisé Lorsque le mode rapide est sélectionné

Mode Flex

Non précisé Lorsque le mode flex est sélectionné

Effort de raisonnement maximal

Non précisé Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)

#### Tarifs estimés à des fins de comparaison

#### Prix par configuration

Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.

| Configuration | Barème tarifaire | Quantité prévisionnelle | Coût |
| --- | --- | --- | --- |
| ConfigurationTarifs de base des jetons | Barème tarifaireTarif de base | Quantité prévisionnelle— | Coût Entrée · Tokens en entrée · Estimation à des fins de comparaison uniquement **—** / 1K tokens Sortie · Tokens en sortie · Estimation à des fins de comparaison uniquement **—** / 1K tokens Entrée · Lecture du cache · Estimation à des fins de comparaison uniquement **—** / 1K tokens Entrée · Écriture dans le cache · Estimation à des fins de comparaison uniquement **—** / 1K tokens Entrée · Écriture dans le cache, 1 h · Estimation à des fins de comparaison uniquement **—** / 1K tokens |
| ConfigurationCoût estimé de la génération | Barème tarifaire— | Quantité prévisionnelleEstimation pour une génération | Coût Sortie · Coût estimé de génération · Estimation à des fins de comparaison uniquement **$6** estimation avant génération Cette estimation ne constitue ni des frais supplémentaires ni un tarif fixe pour la génération terminée. |

Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. [Fonctionnement de la réservation et du débit →](https://ailoot.ai/docs/fr-ch/billing/reserve/)

### Exemples de requêtes

#### Ailoot Ultra · Video

curl · créez une seule fois et conservez le résultat completConsultez la tâche d’origineEnregistrez chaque ressource finalisée qui vous appartient

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
: "${AILOOT_IMAGE_URL:?Set an actual customer material or documented value}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "kling-v2-1", "prompt": "A cat is walking on grass.", "image": "YOUR_ACCESSIBLE_IMAGE_URL"}')
p['image']=os.environ['AILOOT_IMAGE_URL']
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
# Submit once. Retain the complete result, original identifiers and every response header.
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_STATUS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
u=urljoin("https://api.ailoot.ai",r["polling_url"])
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or p.username or p.password:
    raise SystemExit("Unexpected returned polling URL; preserve the response")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-D","status-headers.txt","-o","status.json"],check=True)
# Read this same original polling_url again while pending.
# Preserve unknown/result_pending_check; do not repeat creation.
PY_STATUS
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("status.json").read_text())
roles={}
def visit(v,path=""):
    if isinstance(v,dict):
        for k,x in v.items(): visit(x,path+"/"+k)
    elif isinstance(v,list):
        for i,x in enumerate(v): visit(x,path+"/"+str(i))
    elif isinstance(v,str):
        u=urljoin("https://api.ailoot.ai",v); p=urlsplit(u)
        if p.scheme=="https" and p.netloc=="api.ailoot.ai" and not p.username and not p.password and p.path.startswith("/v1/media/assets/") and p.path.endswith("/content"):
            roles.setdefault(u,[]).append(path)
visit(r)
if not roles: raise SystemExit("No completed owned assets; retain the original status")
manifest=[]
for i,(u,paths) in enumerate(roles.items()):
    target=Path(f"asset-{i}.bin")
    subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-o",str(target)],check=True)
    raw=target.read_bytes()
    if not raw: raise SystemExit("Empty asset; retain original status and metadata")
    ext="glb" if raw[:4]==b"glTF" else "png" if raw[:8]==b"\x89PNG\r\n\x1a\n" else "jpg" if raw[:3]==b"\xff\xd8\xff" else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "mp4" if raw[4:8]==b"ftyp" else "bin"
    name=f"asset-{i}.{ext}"
    if target.name!=name: target.rename(name)
    manifest.append({"file":name,"response_paths":paths,"bytes":len(raw)})
Path("asset-manifest.json").write_text(json.dumps(manifest,indent=2))
print("Saved",len(manifest),"unique owned assets; every response role retained")
PY_ASSETS
```

### Recevoir et enregistrer les résultats

#### Ailoot Ultra · Video

- `GET /v1/videos/{request_id}`
- `GET /v1/videos/generations/{request_id}`
- `GET /v1/videos/{request_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

##### Conserver tous les résultats terminés

Enregistrez chaque vidéo terminée ou fichier renvoyé ; récupérez chaque URL de ressource effectivement renvoyée.

Conservez la réponse complète et les en-têtes, les identifiants d’origine, chaque résultat réel et tous les champs de consommation et de comptabilisation. Enregistrez chaque ressource unique dont vous êtes propriétaire et conservez tous les rôles qui y font référence.

##### Si la réponse d’origine doit être vérifiée

Conservez l’identifiant public id de la tâche ou de l’opération renvoyée, ainsi que tous les en-têtes. Consultez uniquement la tâche d’origine ; unknown ou result\_pending\_check n’autorise pas une nouvelle création.

Champs de la réponse

| Champ | Type |
| --- | --- |
| Champ`id` | Typestring |
| Champ`polling_url` | Typestring |
| Champ`provider_task_id` | Typestring |
| Champ`task_id` | Typestring |
| Champ`status` | Typestring |
| Champ`video_url` | Typestring |

Erreurs et étapes suivantes

| Réponse | Condition | Étape suivante |
| --- | --- | --- |
| Réponse400 · `invalid_request_error` | ConditionUn champ obligatoire, un sélecteur de modèle, un type ou une représentation des données d’entrée est invalide. | Étape suivanteExaminez les détails de validation renvoyés avant de préparer une requête distincte. |
| Réponse`` | ConditionLa requête d’origine ou son résultat est inconnu ou nécessite un contrôle. | Étape suivanteConservez les identifiants et les en-têtes d’origine ; consultez uniquement les enregistrements d’état ou de bibliothèque pris en charge. Ne soumettez pas une nouvelle fois la requête de création. |

### Alias

#### Alias du modèle

**Ailoot Ultra** [`kling-v2-1`](https://ailoot.ai/models/fr-ch/#m=kling-v2-1&route=Ultra&caller=kling-v2-1&fmt=videos)

#### Alias des chemins de méthode

`/v1/videos/generations`

#### ID d’appel associés

[`kling-v2-1`](https://ailoot.ai/models/fr-ch/#m=kling-v2-1&route=Ultra&caller=kling-v2-1&fmt=videos)

FAQ · Kling v2.1

Quelles entrées et quels résultats sont disponibles ?

`POST /v1/videos` · `kling-v2-1`: `text`, `image` → `video`

Quels champs la requête utilise-t-elle ?

`POST /v1/videos` · `kling-v2-1`: `model`, `mode`, `aspect_ratio`, `duration`, `end_image`, `image`, `negative_prompt`, `prompt`

Connectez Ailoot à Claude Code, OpenCode, Hermes ou à votre application.

## L’entreprise et son portefeuille de projets

L’entreprise et son portefeuille de projets : des millions de clients ; des ventes qui se chiffrent en milliards chaque mois.

## Achetez des tokens à prix réduit.

Une remise d’abonnement pour le travail régulier. Des codes promo jusqu’à 50% sur l’achat de tokens.

Abonnement

Choisissez une offre à tarif réduit pour vos requêtes régulières.

Code promo jusqu’à 50%

Saisissez le code à l’achat. Le prix est recalculé selon la promotion en cours.

Dépenses dans l’historique

Modèle, tokens et montant sont enregistrés pour chaque requête.

[Choisir un abonnement](https://ailoot.ai/docs/fr-ch/billing/subscriptions/) · [Voir les prix des modèles](https://ailoot.ai/models/fr-ch/)

## Connectez l’API au produit que vous vendez.

SaaS, applications et bots selon l’offre officielle et le contrat de licence Ailoot. Pour la revente, demandez une licence revendeur.

Application commerciale

Intégrez la génération de texte, d’images, de vidéo et de son aux fonctions payantes de votre service.

Licence revendeur

Envoyez la description du projet et le mode d’accès. Demandez des conditions écrites d’utilisation et de revente.

Documents sur le site

L’offre officielle, le contrat de licence et la politique de traitement des données sont accessibles avant connexion.

[Demander une licence revendeur](mailto:support@ailoot.ai) · [Offre officielle et contrat de licence](https://ailoot.ai/legal/offer?lang=fr-ch)

## Ailoot · L’entreprise et son portefeuille de projets





Ailoot s’appuie sur une expérience opérationnelle éprouvée, une large clientèle, un service stable et un suivi continu des KPI.





L’entreprise et son portefeuille de projets : des millions de clients ; des ventes qui se chiffrent en milliards chaque mois.





Ailoot met cette expérience opérationnelle au service de l’accès API aux fonctions d’IA dans les produits des clients, leurs agents, applications et automatisations.
