Seedance 2.5 ya está disponible en EvoLinkProbar Seedance 2.5
Canal API asíncrono de Grok Imagine Image 2.0 desde la solicitud hasta el callback y el almacenamiento
Tutorial

Cómo utilizar la API Grok Imagine Image 2.0 en EvoLink

Jacey
Jacey
Founder
12 de agosto de 2026
16 min de lectura
Esta guía lleva a un usuario EvoLink desde una clave API hasta una tarea Grok Imagine Image 2.0 completada. La ruta mínima es: enviar POST /v1/images/generations con model: "grok-imagine-image-2.0", almacenar la tarea devuelta id y luego consultar GET /v1/tasks/{task_id} hasta que la tarea llegue a completed o failed.
La misma ruta maneja la conversión de texto a imagen y la edición de imágenes. Omita image_urls para generar a partir de texto; incluya de una a tres URL de imágenes públicas para editar o componer a partir de referencias. Para conocer los precios actuales y las pruebas interactivas, utilice la página del modelo Grok Imagine Image 2.0. Este artículo se centra en el flujo de aplicaciones, el manejo de fallas, el almacenamiento y el respaldo del modelo en lugar de duplicar la referencia completa de los parámetros.
Abra Grok Imagine Image 2.0 en EvoLink
Última verificación: 12 de agosto de 2026.
Divulgación visual: la portada y las imágenes complementarias de esta guía se generaron con GPT Image 2 como ilustraciones del flujo de trabajo. No son muestras de salida de Grok Imagine Image 2.0.

Lo que construirás

Al final de la guía, su aplicación podrá:

  1. crear una tarea de texto a imagen;
  2. cambiar a la edición de referencias sin cambiar las ID del modelo;
  3. utilizar referencias indexadas en un mensaje de varias imágenes;
  4. realizar un seguimiento de una tarea asincrónica por ID;
  5. aceptar una devolución de llamada de finalización de forma segura;
  6. conservar los resultados antes de que caduquen sus URL de 24 horas;
  7. conciliar el uso final y los reembolsos por tareas fallidas;
  8. pasar a una ruta alternativa cuando la carga de trabajo o el resultado de la tarea lo requiera.
Si primero necesita los datos confirmados del lanzamiento y los límites de las pruebas, consulte la guía de lanzamiento de Grok Imagine Image 2.0. Esta guía se centra en la implementación.

Antes de empezar

Cree una clave API desde EvoLink Administración de claves API. Mantenga la clave en un almacén secreto del lado del servidor o en una variable de entorno. Nunca lo exponga en el JavaScript del navegador, en un repositorio público, en eventos de análisis, capturas de pantalla o informes de errores del cliente.
ArtículoContrato EvoLink vigente
URL basehttps://api.evolink.ai
Crear tareaPOST /v1/images/generations
Tarea de consultaGET /v1/tasks/{task_id}
AutenticaciónAuthorization: Bearer YOUR_API_KEY
Modelogrok-imagine-image-2.0
Texto a imagenOmitir image_urls
Edición de imágenesProporcione de 1 a 3 URL de imágenes HTTP/HTTPS públicas
Producción1K/2K, bajo/medio, n=1-10
Tratamientotarea asincrónica
Duración del resultado24 horas
La lista de campos autorizados es la documentación API Grok Imagine Image 2.0. Vuelva a verificarlo antes de implementarlo porque los contratos pueden cambiar después de la publicación.

Paso 1: mantenga la clave API en el lado del servidor

Para una prueba de shell, establezca la clave en una variable de entorno:

export EVOLINK_API_KEY="your_api_key"
Los ejemplos siguientes utilizan ${EVOLINK_API_KEY}. No la reemplace con una clave real dentro del código que se confirmará.

Paso 2: crea una tarea de texto a imagen

Envíe un mensaje y omita image_urls:
curl --request POST "https://api.evolink.ai/v1/images/generations" \
  --header "Authorization: Bearer ${EVOLINK_API_KEY}" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "grok-imagine-image-2.0",
    "prompt": "Editorial product photograph of a teal glass perfume bottle on pale limestone, warm coastal morning light, restrained luxury art direction, no text or logos",
    "size": "1:1",
    "resolution": "1K",
    "quality": "medium",
    "n": 1
  }'
La respuesta de creación representa una tarea asincrónica. Guarde su id inmediatamente:
{
  "id": "task-unified-1757156493-imcg5zqt",
  "model": "grok-imagine-image-2.0",
  "object": "image.generation.task",
  "progress": 0,
  "status": "pending",
  "type": "image",
  "usage": {
    "billing_rule": "per_call",
    "credits_reserved": 3.06,
    "user_group": "default"
  }
}

El valor de la reserva anterior es un ejemplo de documentación, no una promesa de precio ni el cargo final. Utilice la página del modelo actual para conocer los precios en vivo y la respuesta de la tarea del terminal para el uso final.

Paso 3: consultar la tarea asincrónica

Flujo de tarea asíncrona de Grok Imagine Image 2.0 desde el envío hasta el almacenamiento duradero
Flujo de tarea asíncrona de Grok Imagine Image 2.0 desde el envío hasta el almacenamiento duradero
Esta imagen se generó con GPT Image 2 como ilustración del flujo de trabajo. No es una muestra de salida Grok Imagine Image 2.0 ni un resultado de calidad.
Agregue el id devuelto al punto final de la tarea. No incluya llaves alrededor del valor:
curl --request GET \
  "https://api.evolink.ai/v1/tasks/task-unified-1757156493-imcg5zqt" \
  --header "Authorization: Bearer ${EVOLINK_API_KEY}"
Para esta ruta, la respuesta a la consulta utiliza processing, completed o failed. Una respuesta completa incluye results, result_data estructurado y usage final:
{
  "id": "task-unified-1757156493-imcg5zqt",
  "model": "grok-imagine-image-2.0",
  "object": "image.generation.task",
  "progress": 100,
  "status": "completed",
  "results": ["https://cdn.evolink.ai/images/generated-image.jpg"],
  "result_data": [
    {
      "url": "https://cdn.evolink.ai/images/generated-image.jpg",
      "mime_type": "image/jpeg"
    }
  ],
  "type": "image",
  "usage": {
    "credits_used": 3.06,
    "cost": {
      "credits": 3.06,
      "cny": 0.31,
      "usd": 0.05
    }
  }
}

Esos valores numéricos son valores de respuesta de ejemplo. Registre los valores devueltos por su propia tarea de terminal; No utilice este ejemplo para calcular la facturación del cliente.

Paso 4: agregar sondeo controlado

El sondeo debe detenerse en el estado de una terminal, retroceder entre solicitudes y aplicar un tiempo de espera de aplicación. El siguiente ejemplo de TypeScript del lado del servidor mantiene explícito el flujo de trabajo de la tarea:

type GrokTaskStatus = "processing" | "completed" | "failed";

type GrokTask = {
  id: string;
  status: GrokTaskStatus;
  progress: number;
  results?: string[];
  error?: {
    code: string;
    message: string;
    type: "task_error";
  };
};

const API_BASE_URL = "https://api.evolink.ai";

async function getTask(apiKey: string, taskId: string): Promise<GrokTask> {
  const response = await fetch(`${API_BASE_URL}/v1/tasks/${taskId}`, {
    headers: { Authorization: `Bearer ${apiKey}` },
    cache: "no-store",
  });

  if (!response.ok) {
    throw new Error(`Task query failed with HTTP ${response.status}`);
  }

  return response.json() as Promise<GrokTask>;
}

async function waitForTask(
  apiKey: string,
  taskId: string,
  timeoutMs = 180_000,
): Promise<GrokTask> {
  const startedAt = Date.now();
  let intervalMs = 2_000;

  while (Date.now() - startedAt < timeoutMs) {
    const task = await getTask(apiKey, taskId);

    if (task.status === "completed" || task.status === "failed") {
      return task;
    }

    await new Promise((resolve) => setTimeout(resolve, intervalMs));
    intervalMs = Math.min(Math.round(intervalMs * 1.5), 10_000);
  }

  throw new Error("Grok Imagine Image 2.0 task timed out in the application");
}

Un tiempo de espera de aplicación no es prueba de que la tarea ascendente haya fallado. Antes de volver a intentar la generación, consulte la tarea original nuevamente o use una estrategia de idempotencia en su propia capa de trabajo. De lo contrario, un tiempo de espera del cliente puede crear tareas facturables duplicadas.

Paso 5: cambie a la edición de referencia única

Agregue image_urls para cambiar de modo. Las imágenes de entrada deben ser accesibles públicamente a través de HTTP o HTTPS; base64 y las URL de datos no son compatibles con el contrato actual. Las extensiones admitidas son JPEG, JPG, PNG y WebP.
curl --request POST "https://api.evolink.ai/v1/images/generations" \
  --header "Authorization: Bearer ${EVOLINK_API_KEY}" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "grok-imagine-image-2.0",
    "prompt": "Move the chair into a quiet rain-soaked garden room. Preserve the chair shape, teal upholstery, camera angle, and scale. Change only the environment and reflected light.",
    "image_urls": [
      "https://example.com/chair.webp"
    ],
    "size": "4:3",
    "resolution": "1K",
    "quality": "medium",
    "n": 1
  }'

Su aplicación debe validar el recuento, el protocolo, el tipo de archivo y la accesibilidad del servidor antes de crear una tarea paga. Es posible que el servicio de generación aún no pueda acceder a una URL que funcione en un navegador conectado.

Paso 6: redactar con múltiples referencias

Para dos o tres imágenes de referencia, utilice índices de base cero en el mensaje. El índice se asigna a la posición en image_urls.
curl --request POST "https://api.evolink.ai/v1/images/generations" \
  --header "Authorization: Bearer ${EVOLINK_API_KEY}" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "grok-imagine-image-2.0",
    "prompt": "Place the person from <IMAGE_0> in the architectural setting from <IMAGE_1>, carrying the blue sculptural bag from <IMAGE_2>. Preserve the outfit silhouette and match the late-afternoon direction of light.",
    "image_urls": [
      "https://example.com/person.webp",
      "https://example.com/location.webp",
      "https://example.com/bag.webp"
    ],
    "size": "3:4",
    "resolution": "2K",
    "quality": "medium",
    "n": 1
  }'

Almacene el orden exacto de la matriz con el mensaje. Si una interfaz de usuario permite a alguien reordenar las cargas, actualice la matriz y las etiquetas de índice juntas.

Paso 7: elija los parámetros por etapa del flujo de trabajo

Grok Imagine Image 2.0 admite 13 proporciones más auto, resolución 1K/2K, calidad baja/media y n=1-10.
ParámetroÚsalo para decidirregla de producción
sizeForma de entrega o modelo seleccionado autoValidar con la enumeración de proporción documentada antes de enviar
resolutionBorrador/revisión de 1K frente a candidato de entrega de 2KNo envíe 4K; la ruta no lo soporta
qualityBajo para una exploración más rápida y de menor costo versus Medio para más detallesEvaluar el nivel con respecto al criterio de aceptación real
nNúmero de salidas independientesLímite por acción de producto y presupuesto porque cada resultado se factura de forma independiente.
image_urlsGeneración de solo texto versus edición de referenciaOmitir por completo para texto a imagen; aceptar como máximo tres URL

Utilice una lista de solicitudes permitidas en lugar de pasar JSON de cliente arbitrario directamente a la API. Esto evita que campos no admitidos, lotes excesivos o URL de devolución de llamada interna lleguen a la ruta.

Paso 8: utilice devoluciones de llamada para completar la producción

Pase callback_url cuando su aplicación pueda exponer un punto final HTTPS público:
{
  "model": "grok-imagine-image-2.0",
  "prompt": "A clean ecommerce product scene with soft daylight",
  "callback_url": "https://your-domain.com/webhooks/evolink/image-task"
}

El contrato actual dice que las devoluciones de llamada se envían después de la confirmación de facturación cuando una tarea se completa, falla o se cancela. EvoLink espera hasta 10 segundos y puede volver a intentar una devolución de llamada fallida tres veces después de 1, 2 y 4 segundos. Una respuesta 2xx marca la entrega exitosa.

Diseñe el receptor para que sea idempotente:

  1. autenticar la solicitud utilizando el mecanismo que admite su cuenta EvoLink y la configuración del webhook;
  2. validar el ID de la tarea y el modelo esperado;
  3. insertar por ID de tarea en lugar de insertar un nuevo resultado en cada entrega;
  4. devolver 2xx después de una persistencia duradera;
  5. mover descargas lentas y revisar trabajos a una cola;
  6. siga sondeando como ruta de recuperación cuando no se pueda confirmar la entrega del webhook.

La URL de devolución de llamada debe usar HTTPS y no puede apuntar a un host local, rangos de IP privados o una dirección de servicio interno.

Paso 9: guarde los resultados antes de que caduquen

Las URL de imágenes completadas permanecen disponibles durante 24 horas. Trátelos como URL de transferencia, no como almacenamiento permanente de aplicaciones.

Después de completar:

  1. verificar que la tarea pertenece a la cuenta actual y al trabajo;
  2. descargue todos los elementos en results o result_data;
  3. validar el tipo de contenido y el tamaño del archivo;
  4. almacene el archivo en su propio almacenamiento de objetos;
  5. guarde la URL permanente y el hash de contenido;
  6. registrar los parámetros de generación y revisar el estado;
  7. aplicar su política de retención y eliminación a las entradas y salidas de referencia.
Si n es mayor que uno, espere URL de resultados independientes en orden de generación. No persista solo en el primer elemento a menos que su producto seleccione intencionalmente un resultado.

Paso 10: manejar fallas y facturación correctamente

La respuesta de creación puede reservar créditos, pero el uso del terminal es la verdad de facturación. Según el contrato de tarea de EvoLink, una tarea failed final se reembolsa en su totalidad, incluido el rechazo ascendente, los bloques de moderación de contenido y los tiempos de espera.
ResultadoAcción de aplicaciónAcción de facturación
completedConserve cada resultado, ejecute comprobaciones de aceptación, marque el trabajo como completoAlmacene el usage final y el desglose de costos
failed con error de infraestructura reintentableAplicar retroceso limitado o ruta a un retroceso verificadoConfirme que el cargo final sea cero/reembolsado
failed con error de política de contenidoMostrar un mensaje de entrada/solicitud procesable; no reintentar a ciegasConfirmar reembolso y conservar el código de error
Tiempo de espera de sondeo de aplicacionesVuelva a consultar la misma tarea antes de crear otra.No asuma que el tiempo de espera significa reembolso o falla
Solicitud no válida antes de la creación de la tareaCorregir validación o permisos.No existe ninguna tarea asincrónica para conciliar
No prometa a los usuarios que cada experiencia fallida es gratuita sin comprobar el estado final de la tarea. Una imagen completa de baja calidad sigue siendo una tarea completa; El rechazo de calidad dentro de su producto es diferente de un estado failed de nivel API.

Manejar errores HTTP a nivel de solicitud antes del sondeo

Algunas fallas ocurren antes de que se cree una tarea asincrónica. La referencia de API actual documenta estas respuestas a nivel de solicitud:

Estado HTTPSignificado documentadoRespuesta de la solicitud
400Parámetros o formato de solicitud no válidosValide la lista de solicitudes permitidas, los campos obligatorios, las enumeraciones, el recuento de URL y la forma JSON antes de volver a intentarlo.
401Error de autenticaciónVerifique que el servidor haya enviado una clave portadora válida; nunca exponga la clave en los registros del cliente
402Cuota insuficienteDetenga los reintentos automáticos y indique al propietario de la cuenta que recargue o ajuste el presupuesto
403Acceso denegadoVerifique los permisos de la cuenta o la ruta en lugar de cambiar el mensaje a ciegas
429Se superó el límite de tasa de solicitudAplicar retrasos exponenciales acotados y trabajos en cola; no desplegar los reintentos inmediatos
500Error Interno del ServidorVuelva a intentarlo solo bajo una política de infraestructura limitada y luego use un respaldo verificado si el trabajo lo permite.
Inicie el sondeo solo cuando la respuesta de creación devuelva una tarea id. Los errores a nivel de solicitud no tienen una tarea asincrónica que consultar ni un registro de reembolso para conciliar.

Paso 11: agregar enrutamiento alternativo

Flujo alternativo de producción para reintentos, rutas secundarias y reversión de reservas fallidas
Flujo alternativo de producción para reintentos, rutas secundarias y reversión de reservas fallidas
Esta es una ilustración del flujo de trabajo generado por GPT Image 2, no una prueba comparativa de modelos emparejados.

La integración debe separar el trabajo del producto del ID del modelo específico del proveedor:

type ImageRoute = "grok-imagine-image-2.0" | "gpt-image-2";

type ImageJob = {
  prompt: string;
  imageUrls: string[];
  requiresMask: boolean;
  requires4K: boolean;
};

function chooseImageRoute(job: ImageJob): ImageRoute {
  if (job.requiresMask || job.requires4K || job.imageUrls.length > 3) {
    return "gpt-image-2";
  }

  return "grok-imagine-image-2.0";
}

Este ejemplo es una política inicial a nivel de contrato, no una afirmación de que un modelo produce mejores imágenes. Agregue sus propios datos de aceptación, latencia, costo, moderación y observaciones de disponibilidad antes de enrutar tráfico significativo.

Para obtener un marco de selección completo, lea Grok Imagine Image 2.0 vs GPT Image 2.

Lista de verificación de traspaso de producción

  • [] Clave API almacenada en un administrador secreto del lado del servidor.
  • [] La lista de cuerpos permitidos de la solicitud coincide con los documentos EvoLink actuales.
  • El ID del modelo está centralizado en la configuración de la ruta.
  • Las imágenes de referencia son públicas, validadas y limitadas a tres.
  • [] Los índices de referencias múltiples coinciden con el orden de entrada persistente.
  • [] El sondeo se detiene cuando se completa/falla y utiliza el retroceso.
  • [] Los tiempos de espera de la aplicación no crean automáticamente tareas duplicadas.
  • [] El procesamiento de devolución de llamada es idempotente y rápido.
  • Los archivos de resultados se copian antes de que expiren las 24 horas.
  • El uso final se almacena por separado de los créditos reservados.
  • Se concilian los reembolsos de tareas fallidas.
  • [] Los errores reintentables y no reintentables están separados.
  • Existe una ruta alternativa probada para las capacidades requeridas o interrupciones.
  • [] Los registros excluyen claves API y URL de referencia confidenciales.

Preguntas frecuentes

¿Qué punto final crea una tarea Grok Imagine Image 2.0?

Utilice POST https://api.evolink.ai/v1/images/generations con autenticación de portador y los campos model y prompt obligatorios.

¿Qué ID de modelo debo enviar?

Envíe grok-imagine-image-2.0 para la ruta EvoLink actual.

¿Cómo paso de generación a edición?

Mantenga la identificación del modelo sin cambios. Omita image_urls para texto a imagen o pase de una a tres URL para editar.

¿Puedo enviar datos de imagen base64?

No. El contrato actual acepta URL HTTP o HTTPS de acceso público y no admite URL base64 o de datos.

¿Cómo consulto el resultado?

Almacene la tarea id devuelta por la llamada de creación y luego envíe GET https://api.evolink.ai/v1/tasks/{task_id} con el mismo patrón de autenticación de portador.

¿Debería realizar una encuesta o utilizar una devolución de llamada?

Utilice devoluciones de llamada para completar la producción normal y realizar sondeos como ruta de recuperación. Un prototipo simple del lado del servidor puede comenzar con un sondeo de retroceso.

¿Durante cuánto tiempo siguen siendo válidos los enlaces de imágenes completadas?

La documentación actual dice 24 horas. Copie los archivos completados al almacenamiento permanente de inmediato.

¿Se cobran las tareas fallidas?

Una tarea que alcanza el estado final failed se reembolsa en su totalidad de acuerdo con la documentación actual de la tarea EvoLink. Una imagen completa rechazada por su propia revisión de calidad no es lo mismo que una falla de API.

¿Puedo solicitar 4K o Alta calidad?

No. Esta ruta actualmente admite 1K/2K y Bajo/Medio. Utilice una ruta verificada diferente cuando 4K o Alta sea un requisito estricto.

¿Dónde puedo comparar Grok con otra ruta de imágenes?

Utilice la guía de decisión Grok Imagine Image 2.0 vs GPT Image 2, luego valide ambas con su propio conjunto de pruebas emparejadas.

Fuentes

Esta guía refleja el contrato EvoLink verificado el 12 de agosto de 2026. Vuelva a verificar la documentación de la API antes del envío, especialmente los campos del modelo, los límites de salida, el comportamiento de devolución de llamadas y los esquemas de respuesta a tareas.

¿Listo para reducir tus costos de IA en un 89%?

Comienza a usar EvoLink hoy y experimenta el poder del enrutamiento inteligente de API.