Passer au contenu
Guide de l’API

Fichiers

Afficher en Markdown Mis à jour

Les modèles qui acceptent des images, des vidéos ou de l’audio les prennent sous l’une de trois formes. Chaque page de modèle indique ses paramètres de fichier (par exemple image, images, videos, audios).

1. Une URL publique

Toute URL https:// (ou http://) que le modèle peut télécharger :

JSON
{ "image": "https://example.com/photos/product.jpg" }

Le fichier doit être accessible sans témoins ni connexion et le rester jusqu’au démarrage de la requête. Chaque page de modèle répertorie les limites de taille et de dimensions de ses paramètres de fichier.

2. Un URI de données

Les petits fichiers peuvent être intégrés directement sous forme d’URI data: de 10 Mo maximum :

JSON
{ "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." }

Le Base64 agrandit le corps d’environ un tiers par rapport au fichier; préférez donc les téléversements pour les fichiers volumineux.

3. Un téléversement

Pour les fichiers locaux, demandez une URL de téléversement, utilisez PUT pour y envoyer les octets, puis transmettez le file_url renvoyé au modèle. La création de l’URL de téléversement est gratuite.

1 · Obtenir une URL de téléversement
curl -X POST "https://api.doitong.com/v1/files" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename": "product.jpg", "content_type": "image/jpeg", "size": 482113}'
201 Created · téléversement
{
  "object": "upload",
  "upload_url": "https://…signed upload URL…",
  "file_url": "https://content.doitong.com/…/product.jpg",
  "method": "PUT",
  "headers": { "Content-Type": "image/jpeg" },
  "content_type": "image/jpeg",
  "expires_in": 3600,
  "max_bytes": 15728640
}
2 · Téléverser les octets avec exactement les en-têtes renvoyés
curl -X PUT "<upload_url>" -H "Content-Type: image/jpeg" --data-binary @product.jpg
3 · Utiliser file_url comme entrée du modèle
curl -X POST "https://api.doitong.com/v1/run/{model_id}?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "https://content.doitong.com/…/product.jpg", "prompt": "..."}'
  • Téléversements pris en charge : .jpg, .jpeg, .png, .webp (jusqu’à 15 Mo) et .mp4, .mov, .webm (jusqu’à 200 Mo). L’extension définit le type; content_type doit lui correspondre.
  • L’URL de téléversement est valide pendant une heure. Le file_url reste valide.
  • Pour l’audio, utilisez une URL publique ou un URI de données.

Fichiers de sortie

Vous choisissez la durée de conservation des fichiers de sortie :

  • Indéfiniment (permanent, par défaut) : jusqu’à leur suppression, pour 100 crédits API (0,10 $) par Go par mois, facturés une fois par jour à partir du solde API (1 Go = 1024³ octets).
  • 7 jours (temporary) : gratuit, puis suppression du stockage.

Définissez la valeur par défaut avec le bouton « Conserver les fichiers pour toujours » du tableau de bord ou avec PATCH /account/storage, puis remplacez-la pour chaque exécution avec ?storage=temporary (ou permanent) :

terminal
curl -X PATCH "https://api.doitong.com/v1/account/storage" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode": "temporary"}'

Chaque requête affiche son propre storage (mode, bytes, expires_at, expired). Le réglage s’applique aux nouvelles requêtes; les fichiers que vous conservez déjà indéfiniment le restent jusqu’à leur suppression avec DELETE /requests/{id}/files (voir Requêtes). Si le solde API ne peut pas payer le stockage, vous recevez un courriel et disposez de 30 jours pour effectuer une recharge avant que les fichiers conservés deviennent temporaires.