es-COReferencia de API

Referencia de API

Esta documentación proporciona información detallada sobre cómo utilizar la API de ImagineoAI para generar imágenes con sus LoRAs personalizados programáticamente.

Introducción

La API de ImagineoAI le permite integrar nuestras capacidades de generación de imágenes directamente en sus aplicaciones, sitios web o flujos de trabajo. Con esta API, puede:

  • Generar imágenes usando sus LoRAs personalizados
  • Realizar upscaling de imágenes existentes
  • Verificar el estado de la generación
  • Recuperar imágenes generadas

Autenticación

Todas las solicitudes a la API de ImagineoAI requieren autenticación mediante una clave API.

Obtener su Clave API

  1. Inicie sesión en su cuenta de ImagineoAI
  2. Navegue a Configuración de la cuenta > API
  3. Haga clic en “Generar clave API”
  4. Guarde esta clave de forma segura; solo se muestra una vez

Uso de la Clave API

Incluya su clave API en el encabezado de todas las solicitudes:

curl -X POST https://api.imagineoai.com/v1/generate \
  -H "Authorization: Bearer SU_CLAVE_API" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "su prompt aquí",
    "lora_id": "su_id_lora",
    "lora_weight": 0.8
  }'

Endpoints de la API

Generación de Imágenes

Endpoint: POST /v1/generate

Genera una nueva imagen basada en un prompt y un LoRA específico.

Parámetros:

ParámetroTipoRequeridoDescripción
promptstringEl prompt de texto que describe la imagen deseada
lora_idstringID del modelo LoRA a utilizar
lora_weightfloatNoPeso del LoRA (0.1-1.0, por defecto 0.75)
widthintegerNoAncho de la imagen (512, 768, por defecto 512)
heightintegerNoAlto de la imagen (512, 768, por defecto 512)
num_imagesintegerNoNúmero de imágenes a generar (1-4, por defecto 1)
guidance_scalefloatNoEscala de guía CFG (1-20, por defecto 7.5)
stepsintegerNoPasos de generación (20-50, por defecto 30)
seedintegerNoSemilla para reproducibilidad (opcional)

Ejemplo de solicitud:

{
  "prompt": "Botella de perfume de cristal azul sobre mesa de mármol, iluminación de estudio, fotografía de producto profesional",
  "lora_id": "perfume_brand_v2",
  "lora_weight": 0.8,
  "width": 768,
  "height": 768,
  "guidance_scale": 8.0,
  "steps": 30
}

Ejemplo de respuesta:

{
  "request_id": "gen_a1b2c3d4e5f6",
  "status": "processing",
  "estimated_completion_time": "2023-06-15T14:30:00Z"
}

Verificar Estado de Generación

Endpoint: GET /v1/generate/{request_id}

Verifica el estado de una solicitud de generación en curso.

Parámetros:

ParámetroTipoRequeridoDescripción
request_idstringID de la solicitud de generación

Ejemplo de respuesta (en proceso):

{
  "request_id": "gen_a1b2c3d4e5f6",
  "status": "processing",
  "progress": 60,
  "estimated_completion_time": "2023-06-15T14:30:00Z"
}

Ejemplo de respuesta (completado):

{
  "request_id": "gen_a1b2c3d4e5f6",
  "status": "completed",
  "images": [
    {
      "image_id": "img_g7h8i9j0k1l2",
      "url": "https://storage.imagineoai.com/images/g7h8i9j0k1l2.png",
      "width": 768,
      "height": 768
    }
  ],
  "completed_at": "2023-06-15T14:29:45Z"
}

Upscaling de Imágenes

Endpoint: POST /v1/upscale

Mejora la resolución de una imagen existente.

Parámetros:

ParámetroTipoRequeridoDescripción
image_idstringID de la imagen a mejorar
scale_factorintegerNoFactor de escala (2, 4, por defecto 2)

Ejemplo de solicitud:

{
  "image_id": "img_g7h8i9j0k1l2",
  "scale_factor": 4
}

Ejemplo de respuesta:

{
  "request_id": "up_m3n4o5p6q7r8",
  "status": "processing",
  "estimated_completion_time": "2023-06-15T14:35:00Z"
}

Códigos de Error

CódigoDescripción
400Solicitud incorrecta o parámetros inválidos
401No autorizado - Clave API inválida o faltante
403Prohibido - No tiene permisos para usar este LoRA
404No encontrado - Recurso no encontrado
429Demasiadas solicitudes - Ha excedido su cuota
500Error interno del servidor

Límites de Tasa

Su plan determina los límites de tasa para las llamadas a la API:

  • Plan Básico: 50 solicitudes/hora
  • Plan Profesional: 200 solicitudes/hora
  • Plan Empresarial: 1000 solicitudes/hora

Ejemplos de Código

Python

import requests
import json
import time
 
API_KEY = "su_clave_api"
API_URL = "https://api.imagineoai.com/v1"
 
headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}
 
# Generar una imagen
generation_payload = {
    "prompt": "Botella de perfume de cristal azul sobre mesa de mármol",
    "lora_id": "perfume_brand_v2",
    "lora_weight": 0.8
}
 
response = requests.post(f"{API_URL}/generate", headers=headers, json=generation_payload)
data = response.json()
request_id = data["request_id"]
 
# Verificar el estado hasta que se complete
while True:
    status_response = requests.get(f"{API_URL}/generate/{request_id}", headers=headers)
    status_data = status_response.json()
    
    if status_data["status"] == "completed":
        # Guardar la URL de la imagen
        image_url = status_data["images"][0]["url"]
        print(f"¡Imagen generada! URL: {image_url}")
        break
    elif status_data["status"] == "failed":
        print("La generación de la imagen falló.")
        break
    
    print(f"Generación en proceso: {status_data.get('progress', 0)}% completado")
    time.sleep(5)

JavaScript

const API_KEY = "su_clave_api";
const API_URL = "https://api.imagineoai.com/v1";
 
// Generar una imagen
async function generateImage() {
  const payload = {
    prompt: "Botella de perfume de cristal azul sobre mesa de mármol",
    lora_id: "perfume_brand_v2",
    lora_weight: 0.8
  };
  
  const response = await fetch(`${API_URL}/generate`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(payload)
  });
  
  const data = await response.json();
  return data.request_id;
}
 
// Verificar el estado de la generación
async function checkStatus(requestId) {
  const response = await fetch(`${API_URL}/generate/${requestId}`, {
    headers: {
      'Authorization': `Bearer ${API_KEY}`
    }
  });
  
  return await response.json();
}
 
// Flujo completo
async function generateAndWait() {
  const requestId = await generateImage();
  console.log(`Solicitud iniciada con ID: ${requestId}`);
  
  let isCompleted = false;
  
  while (!isCompleted) {
    const statusData = await checkStatus(requestId);
    
    if (statusData.status === "completed") {
      console.log("¡Imagen generada!");
      console.log(`URL: ${statusData.images[0].url}`);
      isCompleted = true;
    } else if (statusData.status === "failed") {
      console.log("La generación de la imagen falló.");
      isCompleted = true;
    } else {
      console.log(`Generación en proceso: ${statusData.progress || 0}% completado`);
      await new Promise(resolve => setTimeout(resolve, 5000));
    }
  }
}
 
generateAndWait();

Soporte

Si tiene alguna pregunta o problema con la API, por favor contacte a nuestro equipo de soporte en api-support@imagineoai.com.