Back to Home

Documentation de l’API Change Clothes AI

2025-05-28

Posted by

Documentation de l’API Change Clothes AI

Introduction & Cas d’Utilisation

L’API Change Clothes AI permet aux développeurs d’appliquer facilement des vêtements virtuels sur des images de modèles via un simple appel API. Elle est idéale pour le e-commerce, l’essayage virtuel, le stylisme de mode et la création de contenu. Que vous souhaitiez offrir à vos utilisateurs une expérience d’essayage en ligne ou aider les créateurs de contenu à générer des images de tenues variées, cette API peut grandement améliorer l’efficacité et l’expérience utilisateur.

Cas d’Utilisation Courants

  • Plateformes e-commerce proposant l’essayage virtuel pour augmenter le taux de conversion
  • Applications de stylisme générant des aperçus de tenues
  • Créateurs de contenu générant en lot des images de combinaisons de vêtements
  • Créateurs de mode prévisualisant de nouveaux designs sur des modèles
  • Avatars IA ou personnages virtuels changeant de tenue

Clés API

Pour utiliser notre API, vous devez obtenir des identifiants API. Vous pouvez gérer vos clés API dans le tableau de bord.

Gestion des clés API →

API 1 : Changer de vêtements avec une image de vêtement

Pour utiliser cette API, vous devez fournir des images de modèle et de vêtement. Si vous n’avez pas d’image du vêtement, ou souhaitez le décrire par texte, consultez l’API suivante.

Endpoint de l’API

POST https://changeclothesai.online/api/openapi/change-clothes-ai

Guide d’Intégration

En-têtes de la requête

Nom de l’en-têteObligatoireDescription
content-typeOuiDoit être multipart/form-data
authorizationOuiDoit être Bearer $
$ est votre clé API.

Paramètres du corps de la requête (FormData)

ParamètreTypeObligatoireDescription
modelImgstring ou fichierOuiImage du modèle. Accepte trois formats d’entrée :
1. URL d’image du modèle, commençant par http:// ou https://.
2. Image encodée en Base64, suivant le format : data:image/jpeg;base64,/9j/4AAQSkZJR... (Remarque : d’autres types d’images comme PNG sont aussi possibles, adaptez le mime-type)
3. Objet Fichier : un fichier image du modèle.
garmentImgstring ou fichierOuiImage du vêtement. Accepte trois formats d’entrée identiques à modelImg .
categorystringOuiCatégorie du vêtement, valeurs possibles : upper_body, lower_body, dresses
garmentDescstringNonDescription optionnelle du vêtement en anglais

Format de la réponse JSON

ChampTypeDescription
codenumberCode de statut de la réponse. 200 pour succès.
msgstringMessage de réponse, fournit des informations supplémentaires
dataobjectObjet de données de la réponse, présent si code = 200
data.resultImgUrlstringURL de l’image résultante
data.maskImgUrlstringURL de l’image du modèle avec masque
data.cacheHitbooleantrue si la réponse provient du cache pour un modèle ou vêtement prédéfini.
Uniquement mis en cache pour modèles et vêtements prédéfinis
Codes de réponse
CodeMessageDescription
200OKRequête réussie
500SERVER_ERRORErreur interne du serveur
10001NOT_LOGINUtilisateur non authentifié
10002USER_NOT_EXISTUtilisateur inexistant
10003INSUFFICIENT_CREDITSCrédits insuffisants
10004INVALID_PARAMParamètres invalides
10005HARMFUL_CONTENTContenu nuisible détecté
10006INSUFFICIENT_TRAIL_COUNTLimite d’essai dépassée
20001TRY_ON_EXCEPTIONErreur de traitement
30001INVALID_API_KEYClé API invalide
30002INVALID_SIGNATURESignature de requête invalide
Exemple de réponse
{
    "code": 200,
    "data":
    {
        "resultImgUrl": "https://persistent.changeclothesai.online/change-clothes-ai/cache/1747493767397255851.webp",
        "maskImgUrl": "https://persistent.changeclothesai.online/change-clothes-ai/cache/1747493770543821630.webp",
        "cacheHit": true
    }
}

Exemples de code

Exemple Curl avec URL d’image

curl --location 'https://changeclothesai.online/api/openapi/change-clothes-ai' \
--header 'Authorization: Bearer ${SECRET_KEY}' \
--form 'garmentImg="https://persistent.changeclothesai.online/change-clothes-ai/assets/examples/garment-tab/dresses/04-01.jpg"' \
--form 'category="dresses"' \
--form 'modelImg="https://persistent.changeclothesai.online/change-clothes-ai/assets/examples/person-tab/women/003.jpg"'

Exemple Curl avec fichier image local

curl --location 'https://changeclothesai.online/api/openapi/change-clothes-ai' \
--header 'Authorization: Bearer ${SECRET_KEY}' \
--form 'garmentImg=@"/PATH/TO/YOUR/GARMENT/IMAGE.jpg"' \
--form 'category="dresses"' \
--form 'modelImg=@"/PATH/TO/YOUR/MODEL/IMAGE.png"'

Exemple Curl avec image Base64

curl --location 'https://changeclothesai.online/api/openapi/change-clothes-ai' \
--header 'Authorization: Bearer ${SECRET_KEY}' \
--form 'garmentImg="data:image/jpeg;base64,/9j……/9k="' \
--form 'category="dresses"' \
--form 'modelImg="data:image/jpeg;base64,/9j……/9k="'

Exemple Node.js

async function callChangeClothesApi() {
  const apiKey = 'YOUR_API_KEY'; // Replace with your actual API key

  const formData = new FormData();
  formData.append('modelImg', ...); // Support url, image file, image base64 encode
  formData.append('garmentImg', ...); // Support url, image file, image base64 encode
  formData.append('category', ...); // upper_body, lower_body, dresses
  if (...) { // judge garmentDesc not empty
    formData.append('garmentDesc', ...);
  }

  const apiEndpoint = 'https://changeclothesai.online/api/openapi/change-clothes-ai';
  try {
    const response = await fetch(apiEndpoint, {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${apiKey}`,
      },
      body: formData,
    });

    if (!response.ok) {
      const errorData = await response.json();
      throw new Error(`HTTP error ${response.status}: ${errorData.msg || 'Unknown error'}`);
    }

    const data = await response.json();
    return { resultImgUrl: data.data.resultImgUrl, maskImgUrl: data.data.maskImgUrl, error: null };

  } catch (error) {
    console.error('Error changing clothes:', error);
    return { resultImgUrl: null, maskImgUrl: null, error: error.message };
  }
}

Exemple Python


import requests
import base64

async def call_change_clothes_api():
    api_key = 'YOUR_API_KEY'  # Replace with your actual API key

    form_data = {
        'modelImg': 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD...',  # Example base64 image. Replace with your actual image data. Supports url, file, and base64.
        'garmentImg': 'https://example.com/garment.png', # Example url. Supports url, file, and base64.
        'category': 'upper_body',  # upper_body, lower_body, dresses
        'garmentDesc': 'A beautiful red dress' # Example description. Remove this line if garmentDesc is empty
    }

    api_endpoint = 'https://changeclothesai.online/api/openapi/change-clothes-ai'
    try:
        headers = {
            'Authorization': f'Bearer {api_key}',
        }

        response = requests.post(api_endpoint, files=form_data, headers=headers) # Use files= for multipart/form-data
        response.raise_for_status()  # Raise an exception for bad status codes (4xx or 5xx)

        data = response.json()
        return {'resultImgUrl': data.get('data', {}).get('resultImgUrl'), 'maskImgUrl': data.get('data', {}).get('maskImgUrl'), 'error': None}

    except requests.exceptions.RequestException as e:
        print(f'Error changing clothes: {e}')
        return {'resultImgUrl': None, 'maskImgUrl': None, 'error': str(e)}

API 2 : Changer de vêtements par prompt

Pour utiliser cette API, vous devez fournir une image de modèle et une description de vêtement (PROMPT).

Endpoint de l’API

POST https://changeclothesai.online/api/openapi/change-clothes-by-prompt

Guide d’Intégration

En-têtes de la requête

Nom de l’en-têteObligatoireDescription
content-typeOuiDoit être multipart/form-data
authorizationOuiDoit être Bearer $
$ est votre clé API.

Paramètres du corps de la requête (FormData)

ParamètreTypeObligatoireDescription
modelImgstring ou fichierOuiImage du modèle. Accepte trois formats d’entrée :
1. URL d’image du modèle, commençant par http:// ou https://.
2. Image encodée en Base64, suivant le format : data:image/jpeg;base64,/9j/4AAQSkZJR... (Remarque : d’autres types d’images comme PNG sont aussi possibles, adaptez le mime-type)
3. Objet Fichier : un fichier image du modèle.
promptstringOuiPrompt de changement de vêtement en anglais.
ex. Help the model change into a blue striped shirt.
seedstringNonGraine pour démarrer le processus IA, plage de 0 à 2147483647. Paramètre optionnel, sera écrasé si randomize_seed est true.
randomize_seedstringNonGénérer une graine aléatoire, valeurs possibles : true, false.
guidance_scalestringNonDéfinit l’influence du prompt, type numérique, plage 1-100, plus la valeur est grande, plus l’influence est forte. Optionnel, 50 par défaut. À ajuster uniquement si nécessaire
num_inference_stepsstringNonModifie le nombre d’itérations de l’image, type numérique, plage 1-50. Optionnel, valeur par défaut 28, à ajuster uniquement si nécessaire

Format de la réponse JSON

ChampTypeDescription
codenumberCode de statut de la réponse. 200 pour succès.
msgstringMessage de réponse, fournit des informations supplémentaires
dataobjectObjet de données de la réponse, présent si code = 200
data.resultImgUrlstringURL de l’image résultante
data.seednumberGraine utilisée pour générer l’image
Codes de réponse
CodeMessageDescription
200OKRequête réussie
500SERVER_ERRORErreur interne du serveur
10001NOT_LOGINUtilisateur non authentifié
10002USER_NOT_EXISTUtilisateur inexistant
10003INSUFFICIENT_CREDITSCrédits insuffisants
10004INVALID_PARAMParamètres invalides
10005HARMFUL_CONTENTContenu nuisible détecté
10006INSUFFICIENT_TRAIL_COUNTLimite d’essai dépassée
20001TRY_ON_EXCEPTIONErreur de traitement
30001INVALID_API_KEYClé API invalide
30002INVALID_SIGNATURESignature de requête invalide
Exemple de réponse
{
    "code": 200,
    "data":
    {
        "resultImgUrl": "https://r2.changeclothesai.online/1748486113268661990.webp",
        "seed": 627512067
    }
}

Exemples de code

Exemple Curl avec URL d’image

curl --location 'https://changeclothesai.online/api/openapi/change-clothes-by-prompt' \
--header 'Authorization: Bearer ${SECRET_KEY}' \
--form 'modelImg="https://persistent.changeclothesai.online/change-clothes-ai/assets/examples/person-tab/women/003.jpg"' \
--form 'prompt="Help the model change into a blue striped shirt."'

Exemple Curl avec fichier image local

# curl with image url
curl --location 'https://changeclothesai.online/api/openapi/change-clothes-by-prompt' \
--header 'Authorization: Bearer ${SECRET_KEY}' \
--form 'modelImg=@"/PATH/TO/YOUR/MODEL/IMAGE.png"' \
--form 'prompt="Help the model change into a blue striped shirt."'

Exemple Curl avec image Base64

# curl with image url
curl --location 'https://changeclothesai.online/api/openapi/change-clothes-by-prompt' \
--header 'Authorization: Bearer ${SECRET_KEY}' \
--form 'modelImg="data:image/jpeg;base64,/9j……/9k="' \
--form 'prompt="Help the model change into a blue striped shirt."'

Exemple Node.js

async function callChangeClothesApi() {
  const apiKey = 'YOUR_API_KEY'; // Replace with your actual API key

  const formData = new FormData();
  formData.append('modelImg', ...); // Support url, image file, image base64 encode
  formData.append('prompt', 'Help the model change into a blue striped shirt.');
  

  const apiEndpoint = 'https://changeclothesai.online/api/openapi/change-clothes-by-prompt';
  try {
    const response = await fetch(apiEndpoint, {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${apiKey}`,
      },
      body: formData,
    });

    if (!response.ok) {
      const errorData = await response.json();
      throw new Error(`HTTP error ${response.status}: ${errorData.msg || 'Unknown error'}`);
    }

    const data = await response.json();
    return { resultImgUrl: data.data.resultImgUrl, seed: data.data.seed };

  } catch (error) {
    console.error('Error changing clothes:', error);
    return { resultImgUrl: null, maskImgUrl: null, error: error.message };
  }
}

Exemple Python


import requests
import base64

async def call_change_clothes_api():
    api_key = 'YOUR_API_KEY'  # Replace with your actual API key

    form_data = {
        'modelImg': 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD...',  # Example base64 image. Replace with your actual image data. Supports url, file, and base64.
        'prompt': 'Help the model change into a blue striped shirt.'
    }

    api_endpoint = 'https://changeclothesai.online/api/openapi/change-clothes-by-prompt'
    try:
        headers = {
            'Authorization': f'Bearer {api_key}',
        }

        response = requests.post(api_endpoint, files=form_data, headers=headers) # Use files= for multipart/form-data
        response.raise_for_status()  # Raise an exception for bad status codes (4xx or 5xx)

        data = response.json()
        return {'resultImgUrl': data.get('data', {}).get('resultImgUrl'), 'seed': data.get('data', {}).get('seed')}

    except requests.exceptions.RequestException as e:
        print(f'Error changing clothes: {e}')
        return {'resultImgUrl': None, 'seed': None, 'error': str(e)}

Tarification

Les appels API consomment des crédits de votre compte. Vous pouvez acheter des crédits sur notre page de tarification.

Voir la tarification →

Aide & Support

Si vous avez des questions ou besoin d’assistance, n’hésitez pas à contacter notre équipe support.

Email: dreamspire.team@gmail.com