Presets et codes d’erreur

Cette page documente les presets de style disponibles et les codes d’erreur courants de l’API.

API Presets

Les presets sont des configurations de style prédéfinies qui guident le rendu visuel de l’IA. Ils donnent un accès rapide à des styles de miniature éprouvés, sans avoir besoin d’une image de template.

Lister les presets

GET /api/presets
bash
curl https://youthumb.ai/api/presets \
  -H "x-api-key: your_api_key"

Réponse des presets

json
{
  "success": true,
  "data": [
    {
      "key": "mrbeast-viral",
      "label": "MrBeast Viral",
      "emoji": "🔥",
      "description": "High energy, bright colors, expressive faces"
    },
    ...
  ]
}

Presets disponibles

Clé du presetLibelléDescription
freeFreeAucune contrainte de style, prompt seul
mrbeast-viralMrBeast ViralTrès énergique, couleurs vives, visages expressifs
reaction-shockedReaction ShockedRéactions spectaculaires, texte gras, accrocheur
before-afterBefore/AfterComparaison en deux parties, révélation d’une transformation
challenge-experimentChallengeScènes d’action, suspense, résultat teasé
gaming-esportsGamingCouleurs néon, action dynamique, éléments de jeu
tech-reviewTech ReviewPhotos produit épurées, esthétique moderne
vlog-travelVlog/TravelDécors panoramiques, lien personnel
tutorial-educationalTutorialVisuels clairs, indicateurs d’étapes, utile
cinematic-filmCinematicStyle affiche de film, éclairage dramatique
dramatic-intenseDramaticFort contraste, émotions intenses
mystery-darkMysteryTons sombres, intrigue, suspense
luxury-premiumLuxuryÉlégant, haut de gamme, sophistiqué
officeCozy OfficeBureau rangé, lumière chaude, composition prête pour du texte
youtube-studioYouTube StudioStudio de créateur, ring light, professionnel

Utiliser les presets

Lors de la création d’une miniature, indique un preset avec le paramètre presetKey :
json
{
  "prompt": "Excited reaction to new iPhone announcement",
  "presetKey": "tech-review",
  "personId": "your-person-id"
}

Preset ou template

MéthodeDescriptionIdéal pour
presetKeyConsignes de style interprétées par l’IAUne génération rapide avec une ambiance précise
templateIdRéférence visuelle exacteReproduire un style de miniature précis
Tu peux combiner les deux :
json
{
  "prompt": "Review of the latest MacBook",
  "presetKey": "tech-review",
  "templateId": "template-uuid",
  "personId": "your-person-id"
}

Codes d'erreur

Toutes les erreurs de l’API suivent le même format :
json
{
  "success": false,
  "error": "Error message",
  "details": { ... }
}

Codes de statut HTTP

StatutNomDescription
400Bad RequestCorps de requête ou paramètres invalides
401UnauthorizedClé API manquante ou invalide
402Payment RequiredCrédits insuffisants
403ForbiddenAccès refusé à la ressource
404Not FoundLa ressource n’existe pas
429Too Many RequestsLimite de débit dépassée
500Internal Server ErrorErreur côté serveur

400 Bad Request

Renvoyé quand la validation de la requête échoue.
json
{
  "success": false,
  "error": "Validation error",
  "details": {
    "prompt": ["String must contain at least 3 character(s)"],
    "personId": ["Invalid uuid"]
  }
}
Causes fréquentes :
  • Champs obligatoires manquants
  • Types de champ invalides
  • Valeurs hors des plages autorisées
  • Utilisation simultanée de personId et personName

401 Unauthorized

Renvoyé quand l’authentification échoue.
json
{
  "success": false,
  "error": "Unauthorized"
}
Causes fréquentes :
  • En-tête x-api-key manquant
  • Clé API invalide ou expirée
  • En-tête Authorization mal formé

402 Payment Required

Renvoyé quand tu n’as pas assez de crédits.
json
{
  "success": false,
  "error": "Insufficient credits"
}
Solution : achète des crédits ou passe à un abonnement supérieur.

403 Forbidden

Renvoyé quand tu n’as pas accès à une ressource.
json
{
  "success": false,
  "error": "Project does not belong to your organization"
}
Causes fréquentes :
  • Accès aux ressources d’une autre organisation
  • Permissions insuffisantes

404 Not Found

Renvoyé quand une ressource n’existe pas.
json
{
  "success": false,
  "error": "Project not found"
}
json
{
  "success": false,
  "error": "Person not found"
}
json
{
  "success": false,
  "error": "Template not found"
}

429 Too Many Requests

Renvoyé quand tu dépasses les limites de débit.
json
{
  "success": false,
  "error": "Rate limit exceeded"
}
Solution : attends avant de réessayer. Mets en place un backoff exponentiel.
javascript
async function fetchWithRetry(url, options, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    const response = await fetch(url, options);

    if (response.status === 429) {
      const waitTime = Math.pow(2, i) * 1000; // 1 s, 2 s, 4 s
      await new Promise(resolve => setTimeout(resolve, waitTime));
      continue;
    }

    return response;
  }
  throw new Error('Max retries exceeded');
}

500 Internal Server Error

Renvoyé quand un problème survient de notre côté.
json
{
  "success": false,
  "error": "Internal server error"
}
Solution : réessaie plus tard. Si le problème persiste, contacte le support.

Référence des règles de validation

API Thumbnails

ChampRègles
promptObligatoire, 3-2000 caractères
personIdOptionnel, UUID valide
personNameOptionnel, 100 caractères max
presetKeyOptionnel, doit être une clé de preset valide
templateIdOptionnel, UUID valide
styleReferenceUrlOptionnel, URL valide
youtubeUrlOptionnel, URL YouTube valide
contentImagesOptionnel, 6 éléments max
titleOptionnel, 200 caractères max
projectNameOptionnel, 100 caractères max

Options avancées

ChampRègles
variations1, 2, 3 ou 4
faceExpressionneutral, happy, surprised, excited, serious, confident, keep-original
textPositiontop, center, bottom, none, keep-original
negativePrompt500 caractères max
clothingStylecasual, professional, sporty, elegant, streetwear, keep-original
faceEnhancementsubtle, normal, enhanced, keep-original
backgroundBlur0-100

API Persons

ChampRègles
nameObligatoire, 1-100 caractères
descriptionOptionnel, 500 caractères max
imageIdsOptionnel, tableau d’UUID

Ajouter des images à une personne

ChampRègles
imageIdsObligatoire, 1 à 10 UUID valides

Besoin d’aide ?

Si tu rencontres un problème non traité ici :
  1. Consulte la documentation de l’API pour vérifier l’usage correct
  2. Vérifie que ta clé API est valide et dispose des bonnes permissions
  3. Lis le détail de la réponse d’erreur pour les problèmes propres à un champ
  4. Contacte le support si le problème persiste
Joins la réponse d’erreur complète quand tu contactes le support, pour une résolution plus rapide.