Guías de medios
Generación de Imágenes
Elija el endpoint de imagen correcto de TokenLab, envíe solicitudes conscientes del modelo y maneje los resultados de imágenes sincrónicos o asíncronos de manera segura.
TokenLab admite texto a imagen, imagen a imagen y edición de imágenes a través de endpoints de imagen públicos. Los modelos de imagen no comparten un conjunto de parámetros universal, por lo que los clientes de producción deben primero elegir el endpoint, luego elegir el modelo y luego enviar solo los campos admitidos por ese modelo.
Cuándo Usar Cada Endpoint
| Flujo de trabajo del usuario | Endpoint | Usar cuando | Evitar cuando |
|---|---|---|---|
| Texto a imagen | POST /v1/images/generations | El usuario comienza solo con un aviso | Necesita un flujo de edición de imagen GPT oficial |
| Imagen a imagen | POST /v1/images/generations | Los documentos del modelo hacen referencia a imágenes a través de operation: "image-to-image" más image_url, image_urls o reference_image_urls | El modelo espera entrada de edición multipart |
| Edición de imagen | POST /v1/images/edits | Está editando una imagen existente con un modelo de edición compatible, como un modelo de la familia GPT Image | Está utilizando generación de imagen a imagen estilo Nano Banana |
| Variación | POST /v1/images/variations | Mantiene una integración compatible con variaciones heredadas | Está construyendo un nuevo flujo de trabajo de imagen de referencia |
| Estado | GET /v1/tasks/{id} | Una respuesta de creación devuelve task_id, status: "pending" o poll_url | La respuesta de creación ya contiene data[] final |
Siempre envíe model. Los endpoints de imagen intencionalmente no dependen de un modelo predeterminado implícito histórico para el tráfico de producción.
Elegir Un Modelo
Comience con el descubrimiento del modelo, luego inspeccione el detalles del modelo en TokenLab del modelo seleccionado:
curl "https://api.tokenlab.sh/v1/models?recommended_for=image" \
-H "Authorization: Bearer sk-your-api-key"Para modelos que no son de chat, la respuesta de la lista puede incluir GET /v1/models. Las páginas de detalles del modelo pueden exponer el GET /v1/models/{model} más completo. Use esos campos para confirmar:
- La operación admitida, como
text-to-image,image-to-imageoimage-edit. - El endpoint de solicitud esperado por el modelo.
- Qué forma usar para referencias, como
image_url,image_urls,reference_image_urls, multipartimageo JSONimages[]. - Si el modelo acepta
size,aspect_ratio,resolution,quality,background,output_formatoresponse_format.
Reglas de Forma de Solicitud
- Las solicitudes estilo
gpt-image-2utilizan campos desize,qualityy edición similares a OpenAI. Para generación y edición,backgroundaceptaautouopaque;transparentno es compatible. Deje fuera los campos opcionales cuando desee que el modelo o TokenLab utilicen valores predeterminados automáticos. - Las familias de imágenes Gemini y Nano Banana generalmente utilizan
aspect_ratio; solo envíeresolutioncuando el detalle del modelo lo exponga. - La generación de imagen a imagen de Nano Banana pertenece a
/v1/images/generationsconoperation: "image-to-image"y URLs de imágenes de referencia. /v1/images/generationsno aceptaimages[]ofile_idde nivel superior; esos son formas de flujo de edición.- Las referencias de imágenes remotas deben ser URLs públicas
httpohttps. No envíe URLs de red privada, credenciales incrustadas, fragmentos de URL o URLs firmadas que puedan expirar antes de que comience el procesamiento.
Ejemplo de Texto a Imagen
curl https://api.tokenlab.sh/v1/images/generations \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "Una foto de producto limpia de una taza de café de cerámica sobre un escritorio de nogal",
"size": "1024x1024",
"response_format": "url"
}'Ejemplo de Imagen de Referencia
curl https://api.tokenlab.sh/v1/images/generations \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2",
"operation": "image-to-image",
"prompt": "Mantén la forma del producto, cambia el fondo a un entorno de estudio brillante",
"image_urls": ["https://example.com/input/product.png"],
"aspect_ratio": "1:1"
}'Manejo de Resultados
Las respuestas de imagen pueden ser sincrónicas o asíncronas:
- Las respuestas sincrónicas devuelven
data[]final conurlob64_json. - Las respuestas asíncronas devuelven
id,task_id,statusy generalmentepoll_url. - Prefiera
poll_urlcuando esté presente. Si necesita una ruta fija, consulteGET /v1/tasks/{id}. - Use solicitudes sincrónicas cuando necesite específicamente
b64_json; los resultados de imagen asíncronos están orientados a URL.
curl "https://api.tokenlab.sh/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer sk-your-api-key"Conserve la URL de imagen devuelta, el ID de tarea, el modelo y su propio ID de usuario/trabajo. No siga consultando después de un estado terminal.
Lista de Verificación de Producción
- Valide las entradas del usuario antes de llamar a TokenLab: longitud del aviso, cantidad de imágenes, accesibilidad de URL y tipo de archivo.
- Establezca los tiempos de espera HTTP lo suficientemente altos para solicitudes sincrónicas de alta resolución. Use el modo asíncrono donde esté disponible para trabajos largos.
- Almacene
request_id,task_id,poll_url, modelo, endpoint y forma de solicitud saneada para soporte. - En caso de tiempo de espera del cliente, verifique si se creó una tarea antes de volver a intentar la solicitud de creación.
- Concilie el costo con los registros de uso y
billing_transaction_idcuando esté presente, no con los IDs de tarea del proveedor.
Errores Comunes
| Síntoma | Causa probable | Solución |
|---|---|---|
400 con param: "model" | Modelo explícito faltante | Consulte /v1/models?recommended_for=image y envíe model |
| Campo no soportado | El campo no está en los detalles de ese modelo | Elimine el campo o elija un modelo/endpoint que lo documente |
No hay b64_json en el resultado asíncrono | Las tareas de imagen asíncronas devuelven resultados orientados a URL | Use el modo sincrónico para salida base64 |
| Imagen de referencia rechazada | Endpoint incorrecto o URL privada/expirada | Coincida con la forma de referencia documentada del modelo y use URLs accesibles |
Referencia de API
| Tema | Referencia |
|---|---|
| Crear Imagen | Crear Imagen |
| Editar Imagen | Editar Imagen |
| Crear Variación de Imagen | Crear Variación de Imagen |
| Obtener Estado de Imagen | Obtener Estado de Imagen |
| Obtener Estado de Tarea | Obtener Estado de Tarea |