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
- Inicie sesión en su cuenta de ImagineoAI
- Navegue a Configuración de la cuenta > API
- Haga clic en “Generar clave API”
- 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ámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| prompt | string | Sí | El prompt de texto que describe la imagen deseada |
| lora_id | string | Sí | ID del modelo LoRA a utilizar |
| lora_weight | float | No | Peso del LoRA (0.1-1.0, por defecto 0.75) |
| width | integer | No | Ancho de la imagen (512, 768, por defecto 512) |
| height | integer | No | Alto de la imagen (512, 768, por defecto 512) |
| num_images | integer | No | Número de imágenes a generar (1-4, por defecto 1) |
| guidance_scale | float | No | Escala de guía CFG (1-20, por defecto 7.5) |
| steps | integer | No | Pasos de generación (20-50, por defecto 30) |
| seed | integer | No | Semilla 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ámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| request_id | string | Sí | ID 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ámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| image_id | string | Sí | ID de la imagen a mejorar |
| scale_factor | integer | No | Factor 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ódigo | Descripción |
|---|---|
| 400 | Solicitud incorrecta o parámetros inválidos |
| 401 | No autorizado - Clave API inválida o faltante |
| 403 | Prohibido - No tiene permisos para usar este LoRA |
| 404 | No encontrado - Recurso no encontrado |
| 429 | Demasiadas solicitudes - Ha excedido su cuota |
| 500 | Error 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.