Back to Home

Change Clothes AI API Documentation

2025-05-28

Posted by

Change Clothes AI API Documentation

Introducción y Casos de Uso

Change Clothes AI API permite a los desarrolladores aplicar prendas virtuales fácilmente sobre imágenes de modelos mediante una simple llamada a la API. Es ideal para comercio electrónico, probadores virtuales, estilismo de moda y creación de contenido. Ya sea que desee ofrecer a los usuarios una experiencia de prueba en línea o ayudar a los creadores de contenido a generar imágenes de atuendos diversos, esta API puede mejorar enormemente la eficiencia y la experiencia del usuario.

Casos de Uso Comunes

  • Plataformas de comercio electrónico que ofrecen probadores virtuales para aumentar la tasa de conversión
  • Aplicaciones de estilismo de moda que generan vistas previas de atuendos
  • Creadores de contenido que generan por lotes combinaciones de ropa
  • Diseñadores de moda que previsualizan nuevos diseños de prendas en modelos
  • Avatares de IA o personajes virtuales cambiando de atuendo

Claves de API

Para usar nuestra API, necesitará obtener credenciales de API. Puede gestionar sus claves de API en el panel de control.

Gestionar claves de API →

API 1 : Cambiar Ropa con Imagen de Prenda

Para usar esta API, deberá proporcionar imágenes del modelo y de la prenda. Si no tiene una imagen de la prenda o desea describir la prenda mediante texto, consulte la siguiente API.

Endpoint de la API

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

Guía de Integración

Encabezados de Solicitud

Nombre del EncabezadoRequeridoDescripción
content-typeDebe ser multipart/form-data
authorizationDebe ser Bearer $
$ es su clave de API.

Parámetros del Cuerpo de la Solicitud (FormData)

ParámetroTipoRequeridoDescripción
modelImgstring o archivoImagen del modelo. Acepta tres formatos de entrada:
1. URL de imagen del modelo, comenzando con http:// o https://.
2. Imagen codificada en Base64, siguiendo el formato: data:image/jpeg;base64,/9j/4AAQSkZJR... (Nota: otros tipos de imagen como PNG también son posibles, ajuste el mime-type en consecuencia)
3. Objeto de archivo: Un archivo que representa la imagen del modelo.
garmentImgstring o archivoImagen de la prenda. Acepta tres formatos de entrada igual que modelImg.
categorystringCategoría de la prenda, valores: upper_body, lower_body, dresses
garmentDescstringNoDescripción opcional de la prenda en inglés

Formato de Respuesta JSON

CampoTipoDescripción
codenumberCódigo de estado de la respuesta. 200 para éxito.
msgstringMensaje de respuesta, proporciona información adicional
dataobjectObjeto de datos de la respuesta, presente cuando code es 200
data.resultImgUrlstringURL de la imagen de resultado
data.maskImgUrlstringURL de la imagen del modelo con máscara de inpaint
data.cacheHitbooleantrue si se utiliza caché de modelo y prenda preestablecidos.
Solo se almacena en caché para modelos y prendas preestablecidos
Códigos de Respuesta
CódigoMensajeDescripción
200OKSolicitud exitosa
500SERVER_ERRORError interno del servidor
10001NOT_LOGINUsuario no autenticado
10002USER_NOT_EXISTEl usuario no existe
10003INSUFFICIENT_CREDITSCréditos insuficientes
10004INVALID_PARAMParámetros inválidos
10005HARMFUL_CONTENTContenido dañino detectado
10006INSUFFICIENT_TRAIL_COUNTLímite de uso de prueba excedido
20001TRY_ON_EXCEPTIONError de procesamiento
30001INVALID_API_KEYClave de API inválida
30002INVALID_SIGNATUREFirma de solicitud inválida
Ejemplo de Respuesta
{
    "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
    }
}

Ejemplos de Código

Ejemplo Curl con URL de Imagen

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"'

Ejemplo Curl con Archivo de Imagen 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"'

Ejemplo Curl con Imagen 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="'

Ejemplo 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 };
  }
}

Ejemplo 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 : Cambiar Ropa por Prompt

Para usar esta API, debe proporcionar una imagen del modelo y una descripción de la prenda (PROMPT).

Endpoint de la API

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

Guía de Integración

Encabezados de Solicitud

Nombre del EncabezadoRequeridoDescripción
content-typeDebe ser multipart/form-data
authorizationDebe ser Bearer $
$ es su clave de API.

Parámetros del Cuerpo de la Solicitud (FormData)

ParámetroTipoRequeridoDescripción
modelImgstring o archivoImagen del modelo. Acepta tres formatos de entrada:
1. URL de imagen del modelo, comenzando con http:// o https://.
2. Imagen codificada en Base64, siguiendo el formato: data:image/jpeg;base64,/9j/4AAQSkZJR... (Nota: otros tipos de imagen como PNG también son posibles, ajuste el mime-type en consecuencia)
3. Objeto de archivo: Un archivo que representa la imagen del modelo.
promptstringPrompt de cambio de ropa en inglés.
ej. Help the model change into a blue striped shirt.
seedstringNoSemilla para iniciar el proceso de IA, rango de 0 a 2147483647. Parámetro opcional, y será sobrescrito si randomize_seed es true.
randomize_seedstringNoGenerar semilla aleatoria, valores: true, false.
guidance_scalestringNoEstablece el peso de influencia del prompt, tipo numérico, rango 1-100, cuanto mayor el peso, mayor la influencia. Opcional, por defecto 50. solo se recomienda ajustar este parámetro si es necesario
num_inference_stepsstringNoModifica el número de iteraciones de la imagen, tipo numérico, rango 1-50. opcional, valor por defecto 28, solo se recomienda ajustar este parámetro si es necesario

Formato de Respuesta JSON

CampoTipoDescripción
codenumberCódigo de estado de la respuesta. 200 para éxito.
msgstringMensaje de respuesta, proporciona información adicional
dataobjectObjeto de datos de la respuesta, presente cuando code es 200
data.resultImgUrlstringURL de la imagen de resultado
data.seednumberSemilla utilizada para generar la imagen
Códigos de Respuesta
CódigoMensajeDescripción
200OKSolicitud exitosa
500SERVER_ERRORError interno del servidor
10001NOT_LOGINUsuario no autenticado
10002USER_NOT_EXISTEl usuario no existe
10003INSUFFICIENT_CREDITSCréditos insuficientes
10004INVALID_PARAMParámetros inválidos
10005HARMFUL_CONTENTContenido dañino detectado
10006INSUFFICIENT_TRAIL_COUNTLímite de uso de prueba excedido
20001TRY_ON_EXCEPTIONError de procesamiento
30001INVALID_API_KEYClave de API inválida
30002INVALID_SIGNATUREFirma de solicitud inválida
Ejemplo de Respuesta
{
    "code": 200,
    "data":
    {
        "resultImgUrl": "https://r2.changeclothesai.online/1748486113268661990.webp",
        "seed": 627512067
    }
}

Ejemplos de Código

Ejemplo Curl con URL de Imagen

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."'

Ejemplo Curl con Archivo de Imagen 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."'

Ejemplo Curl con Imagen 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."'

Ejemplo 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 };
  }
}

Ejemplo 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)}

Precios

Las llamadas a la API consumen créditos de su cuenta. Puede comprar créditos en nuestra página de precios.

Ver Precios →

Ayuda y Soporte

Si tiene alguna pregunta o necesita ayuda, no dude en ponerse en contacto con nuestro equipo de soporte.

Email: dreamspire.team@gmail.com