Saltar al contenido principal
POST
/
v1
/
images
/
generations
curl --request POST \
  --url https://api.apimart.ai/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "qwen-image-2.0",
    "prompt": "A cute orange cat napping in the sunshine"
  }'
import requests

url = "https://api.apimart.ai/v1/images/generations"

payload = {
    "model": "qwen-image-2.0",
    "prompt": "A cute orange cat napping in the sunshine"
}

headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
const url = "https://api.apimart.ai/v1/images/generations";

const payload = {
  model: "qwen-image-2.0",
  prompt: "A cute orange cat napping in the sunshine",
};

const headers = {
  Authorization: "Bearer <token>",
  "Content-Type": "application/json",
};

fetch(url, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(payload),
})
  .then((response) => response.json())
  .then((data) => console.log(data))
  .catch((error) => console.error("Error:", error));
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01JGXYZ1234567890ABCDEF"
    }
  ]
}
{
  "error": {
    "code": 400,
    "message": "Invalid request parameters",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": 401,
    "message": "Authentication failed, please check your API key",
    "type": "authentication_error"
  }
}
{
  "error": {
    "code": 402,
    "message": "Insufficient balance, please top up",
    "type": "payment_required"
  }
}
curl --request POST \
  --url https://api.apimart.ai/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "qwen-image-2.0",
    "prompt": "A cute orange cat napping in the sunshine"
  }'
import requests

url = "https://api.apimart.ai/v1/images/generations"

payload = {
    "model": "qwen-image-2.0",
    "prompt": "A cute orange cat napping in the sunshine"
}

headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
const url = "https://api.apimart.ai/v1/images/generations";

const payload = {
  model: "qwen-image-2.0",
  prompt: "A cute orange cat napping in the sunshine",
};

const headers = {
  Authorization: "Bearer <token>",
  "Content-Type": "application/json",
};

fetch(url, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(payload),
})
  .then((response) => response.json())
  .then((data) => console.log(data))
  .catch((error) => console.error("Error:", error));
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01JGXYZ1234567890ABCDEF"
    }
  ]
}
{
  "error": {
    "code": 400,
    "message": "Invalid request parameters",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": 401,
    "message": "Authentication failed, please check your API key",
    "type": "authentication_error"
  }
}
{
  "error": {
    "code": 402,
    "message": "Insufficient balance, please top up",
    "type": "payment_required"
  }
}

Modelos admitidos

ModeloDescripciónMáx. imágenesPrecio
qwen-image-2.0Versión estándar, equilibrio entre calidad y rendimiento6Precio fijo
qwen-image-2.0-proVersión Pro, renderizado de texto más sólido y texturas realistas más refinadas6Precio fijo

Autorización

Authorization
string
requerido
Todos los endpoints requieren autenticación mediante Bearer TokenObtener la clave de API:Visite Gestión de claves de API para obtener su clave de APIAñádala a la cabecera de la solicitud:
Authorization: Bearer YOUR_API_KEY

Cuerpo de la solicitud

model
string
requerido
Nombre del modelo
  • qwen-image-2.0 - Versión estándar, equilibrio entre calidad y rendimiento
  • qwen-image-2.0-pro - Versión Pro, renderizado de texto más sólido y texturas realistas más refinadas
prompt
string
requerido
Descripción textual para la generación de la imagen, hasta 800 caracteres
size
string
predeterminado:"1:1"
Proporción de la imagenProporciones admitidas:
  • 1:1 - Cuadrado (predeterminado)
  • 4:3 - Horizontal 4:3
  • 3:4 - Vertical 3:4
  • 16:9 - Panorámico horizontal
  • 9:16 - Vertical alargado
  • 3:2 - Horizontal 3:2
  • 2:3 - Vertical 2:3
resolution
string
predeterminado:"1K"
Nivel de resolución
  • 1K - Resolución estándar (predeterminada)
  • 2K - Resolución de alta definición
n
integer
predeterminado:"1"
Número de imágenes a generarRango: 1-6
negative_prompt
string
Prompt negativo (contenido que no debe aparecer), hasta 500 caracteres
image_urls
array
Array de URL de imágenes de referencia (modo image-to-image)Limitaciones:
  • Deben ser URL de acceso público
  • No se admite el formato Base64

Tabla de referencia de resoluciones

El tamaño de salida se controla mediante la combinación de size (proporción) + resolution (nivel de resolución).
ProporciónNivel 1KNivel 2K
1:11024×10242048×2048
4:31152×8642048×1536
3:4864×11521536×2048
16:91280×7202048×1152
9:16720×12801152×2048
3:21248×8322048×1360
2:3832×12481360×2048
  • Solo size → utiliza el nivel 1K por defecto: {"size": "16:9"} → 1280×720
  • size + resolution → nivel especificado: {"size": "16:9", "resolution": "2K"} → 2048×1152

Ejemplos de uso

Text-to-Image (solicitud mínima)
{
  "model": "qwen-image-2.0",
  "prompt": "A cute orange cat napping in the sunshine"
}
Especificar proporción y cantidad
{
  "model": "qwen-image-2.0-pro",
  "prompt": "Cyberpunk-style futuristic city nightscape with flickering neon lights",
  "size": "16:9",
  "n": 4
}
Nivel 2K en alta definición
{
  "model": "qwen-image-2.0-pro",
  "prompt": "Exquisite food photography, sushi platter",
  "size": "4:3",
  "resolution": "2K",
  "n": 2
}
Image-to-Image (imagen de referencia + descripción de texto)
{
  "model": "qwen-image-2.0",
  "prompt": "Change the background to a seaside sunset",
  "image_urls": ["https://example.com/my-photo.jpg"]
}

Respuesta

code
integer
Código de estado de la respuesta
data
array
Array de datos de la respuesta

Notas

  1. Procesamiento asíncrono: tras el envío se devuelve un task_id. Consulte /v1/tasks/{task_id} para obtener los resultados
  2. Almacenamiento de imágenes: las imágenes generadas se replican en la CDN de la plataforma y son válidas a largo plazo
  3. Reglas de facturación: se factura por cada imagen generada correctamente; no se cobran los fallos
  4. Requisitos de las URL de imágenes: las imágenes de entrada deben ser URL de acceso público; no se admite base64