La mejor API de edición de imágenes con IA rara vez es la que tiene la mejor demostración. Es aquella cuyo endpoint, formato de entrada y unidad de facturación coinciden con la edición que su producto realmente realiza. Las ediciones con máscara, las ediciones de imagen a imagen guiadas por referencia y las operaciones de edición específicas de cada modelo no comparten un mismo contrato. Leímos la documentación de edición y las páginas de modelos en vivo de TokenLab el 03-10-2026, y todo lo que aparece a continuación proviene de dichas páginas. Los endpoints de imágenes no eligen ningún modelo predeterminado para usted, así que envíe siempre el model de forma explícita.
Puntos clave
- Las ediciones basadas en máscaras se dirigen a
POST /v1/images/edits. Las ediciones de referencia de Nano Banana se dirigen aPOST /v1/images/generationsconoperation: "image-to-image". - Las unidades de facturación difieren.
gpt-image-2y los modelos de imagen de Gemini tienen un precio por token, mientras queflux-kontext-protiene un precio por solicitud de $0.04. - La evidencia no contiene ningún benchmark para la calidad de inpainting, renderizado de texto, preservación de estilo o fidelidad de fotografías de productos. Pruebe estos aspectos con sus propias imágenes.
- Las ediciones largas o de múltiples imágenes deben usar
async: truedonde el modelo lo admita. Guarde el ID de la tarea y lea el cargo final en Usage. - Verifique el precio y la unidad de cada página de modelo antes de comprometerse, ya que la API en vivo cambia.
Selecciones iniciales por caso de uso
Estas selecciones siguen el contrato documentado y el precio listado. No son clasificaciones de calidad, ya que la evidencia no cuenta con un benchmark de calidad de edición. Considere cada uno como el primer modelo a incluir en su propio conjunto de pruebas.
| Lo que necesita | Selección inicial | Por qué | Fuente |
|---|---|---|---|
| Inpainting basado en máscara | gpt-image-2 |
Es el único modelo cuyo contrato de máscara está detallado: PNG, mismas dimensiones, las áreas transparentes son las editadas. | Referencia de Edit Image, 03-10-2026 |
| Muchas imágenes fuente en una edición | gpt-image-2 |
Límite documentado de 16 imágenes fuente. Los modelos de edición Grok Imagine tienen un límite de 3. | Referencia de Edit Image, 03-10-2026 |
| Edición de referencia de precio fijo más barata | grok-imagine-image |
$0.02 por solicitud, el precio fijo más bajo en nuestra tabla. | API de modelo en vivo, 03-10-2026 |
| Mantener la forma del producto, cambiar la escena | nano-banana-pro |
El ejemplo de referencia documentado hace exactamente esto, a $0.067 por imagen. | Referencia de Create Image, 03-10-2026 |
| Texto dentro de imágenes editadas | Ninguna selección | La evidencia no tiene datos de renderizado de texto para ningún modelo de edición. | n/a |
Mejores candidatos de API de edición de imágenes con IA: modelos, unidades y precios
La tabla enumera todos los modelos de nuestro conjunto de evidencia que figuran como capaces de editar o que la documentación de edición nombra como modelos de edición. Todos los precios son precios públicos de TokenLab en USD. La API en vivo reportó precios actualizados el 02-10-2026T16:53:30.068Z, y observamos cada página el 03-10-2026.
| ID del modelo | Capacidades listadas en la API en vivo | Unidad de facturación | Precio de TokenLab (USD) | Fuente | Observado |
|---|---|---|---|---|---|
| gpt-image-2 | text-to-image (edición documentada en /v1/images/edits) |
per_token | $3.50/1M entrada de texto, $5.60/1M entrada de imagen, $21/1M salida de imagen; entrada de texto en caché $0.875/1M | API de modelo en vivo | 03-10-2026 |
| flux-kontext-pro | image-edit, image-to-image, text-to-image | per_request | $0.04 | API de modelo en vivo | 03-10-2026 |
| flux-pro-1.0-fill | image-to-image | per_image | $0.035 | API de modelo en vivo | 03-10-2026 |
| flux-2-pro | image-to-image, text-to-image | per_image | $0.03 | API de modelo en vivo | 03-10-2026 |
| nano-banana-pro | image-edit, image-to-image, text-to-image | per_image | $0.067 (resumen de rango de precios hasta $0.12) | API de modelo en vivo | 03-10-2026 |
| gemini-3-pro-image | image-to-image, text-to-image, vision | per_token | $1/1M entrada, $6/1M salida de texto, $60/1M salida de imagen | API de modelo en vivo | 03-10-2026 |
| gemini-3.1-flash-image | image-to-image, text-to-image, vision | per_token | $0.25/1M entrada, $1.50/1M salida de texto, $30/1M salida de imagen | API de modelo en vivo | 03-10-2026 |
| grok-imagine-image | image-to-image, text-to-image | per_request | $0.02 | API de modelo en vivo | 03-10-2026 |
Al comparar las páginas, encontramos tres discrepancias. La API en vivo lista a gpt-image-2 solo como text-to-image, sin embargo, la Referencia de Edit Image dice que es compatible en /v1/images/edits. Las páginas en vivo para flux-pro-1.0-fill y flux-2-pro listan image-to-image, mientras que nuestra instantánea del catálogo etiqueta a ambos como image-edit. Y nano-banana-pro lista image-edit, pero su documentación lo dirige a través de /v1/images/generations. Tratamos la documentación como autoritaria para el enrutamiento y la API en vivo como autoritaria para el precio.
Para los modelos de precio fijo, una estimación aproximada es una simple multiplicación. Estas son estimaciones, no cotizaciones, y asumen un cargo por solicitud completada:
- 100 ediciones en
grok-imagine-image: 100 × $0.02 = $2.00. - 100 ediciones en
flux-2-pro: 100 × $0.03 = $3.00. - 100 ediciones en
flux-pro-1.0-fill: 100 × $0.035 = $3.50. - 100 ediciones en
flux-kontext-pro: 100 × $0.04 = $4.00.
La evidencia no proporciona una estimación por edición para los modelos con precio por token. gpt-image-2 factura tokens de entrada de texto, entrada de imagen, entrada en caché reportada y salida de imagen, por lo que no es un modelo de precio fijo por imagen. La evidencia no incluye conteos de tokens para una edición típica. Realice algunas ediciones reales y lea el costo en Usage, como describe la Guía de facturación. El rango de precios de nano-banana-pro implica niveles de resolución, pero la evidencia no asigna niveles a precios.
Qué acepta el endpoint de edición y qué no documenta
La Referencia de Edit Image (observada el 03-10-2026) admite un flujo multipart compatible con OpenAI y solicitudes JSON. Esto es lo que establece para gpt-image-2:
- Imagen de entrada. Envíe multipart
image, JSONimage_url/image_urls, u objetos oficialesimages[]. Cada objetoimages[]contiene exactamente uno deimage_urlofile_id. Cree valores defile_ida través de/v1/filesprimero. - Múltiples referencias. Hasta 16 imágenes fuente, cada una PNG, JPEG o WebP, de hasta 50 MiB. Repita el campo
imageen solicitudes multipart. En JSON, proporcione exactamente uno deimage_url,image_urlsoimages. - Máscara. Un PNG de menos de 50 MiB con las mismas dimensiones que la imagen fuente. Las áreas totalmente transparentes marcan dónde se aplica la edición. En JSON,
maskpuede ser un objeto con exactamente uno deimage_urlofile_id. - Salida.
sizeaceptaautooWIDTHxHEIGHT. Las dimensiones deben ser múltiplos de 16, el borde más largo de máximo 3840px, la relación largo-a-corto de máximo 3:1, y el total de píxeles entre 655,360 y 8,294,400. No envíeresolution.backgroundaceptaautooopaque, notransparent. - Campo rechazado.
input_fidelityno es compatible congpt-image-2, y enviarlo devuelve400 unsupported_parameter. - URLs remotas. Deben ser
http/httpspúblicas, sin credenciales o fragmentos incrustados. No deben resolverse a localhost, rangos privados o reservados. Los límites son 50 MiB por imagen, 200 MiB en total por solicitud (incluyendo la máscara), un tiempo de espera de recuperación de 30s y hasta 3 redirecciones. La carga útil recuperada debe ser un PNG, JPEG o WebP real.
Los modelos de edición de Grok Imagine (grok-imagine-image, grok-imagine-image-quality) usan los mismos campos de entrada pero limitan las imágenes fuente a 3. Una solicitud con más falla con 400 too_many_images.
Nano Banana es diferente. La documentación dice que nano-banana-2 y nano-banana-pro toman solicitudes de imagen de referencia en /v1/images/generations con operation: "image-to-image" y image_urls. No pertenecen a /v1/images/edits. Los campos de nivel superior images[] y file_id son formatos de flujo de edición y son rechazados en el endpoint de generaciones. Aquí hay un ejemplo documentado para nano-banana-pro, que acepta resolution:
{
"model": "nano-banana-pro",
"prompt": "Keep the product shape, change the background to a bright studio setup",
"operation": "image-to-image",
"image_urls": ["https://example.com/input/product.png"],
"aspect_ratio": "1:1",
"resolution": "2k"
}
Para las familias de imágenes de Google, la Referencia de Create Image dice que se prefiera aspect_ratio y se envíe resolution (1k, 2k, 4k) solo donde el modelo lo admita. Los detalles del modelo para nano-banana-2 están enlazados aquí, pero el conjunto de evidencia no incluye su precio.
No documentado en la evidencia:
- Si modelos distintos a
gpt-image-2aceptanmasken/v1/images/edits, incluyendoflux-pro-1.0-fillystability-inpaint. - Cómo se aplica una sola máscara cuando envía varias imágenes fuente.
- Límites de imágenes fuente para los modelos FLUX y Nano Banana.
- Si el orden de las imágenes en una solicitud de múltiples imágenes afecta el resultado.
Lea la página de detalles del modelo antes de construir sobre cualquiera de ellos.
Una solicitud de edición completa
Esta solicitud utiliza solo campos documentados para gpt-image-2: una imagen fuente, una máscara, un prompt, size y async. Sigue el ejemplo multipart en la Referencia de Edit Image.
curl -X POST "https://api.tokenlab.sh/v1/images/edits" \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-F "model=gpt-image-2" \
-F "image=@source.png" \
-F "mask=@mask.png" \
-F "prompt=A sunlit indoor lounge area with a pool" \
-F "n=1" \
-F "size=1024x1024" \
-F "async=true"
Con async=true, la respuesta lleva status: "pending", task_id y poll_url, y data permanece vacío. Elimine la línea async para una llamada síncrona. Una llamada síncrona devuelve data[].url por defecto, o data[].b64_json si establece response_format. Consulte la tarea de esta manera:
curl "https://api.tokenlab.sh/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer $TOKENLAB_API_KEY"
Los detalles del modelo para gpt-image-2 están en su página de modelo. Para una llamada síncrona, establezca el tiempo de espera de su cliente HTTP en al menos 120s, ya que las solicitudes de alta resolución pueden tardar cerca de un minuto o más.
Elegir la mejor API de edición de imágenes con IA por tarea
La evidencia establece enrutamiento, entradas y precios. No contiene ningún benchmark de calidad de edición, por lo que cada pregunta de "¿cuál es mejor?" a continuación necesita su propio conjunto de pruebas.
Inpainting. gpt-image-2 es el único modelo cuyo contrato de máscara está detallado en la documentación. El catálogo también lista herramientas dedicadas de región y estructura: stability-inpaint, stability-control-structure y stability-control-sketch. Para ediciones de relleno y en contexto, existen flux-pro-1.0-fill a $0.035 por imagen y flux-kontext-pro a $0.04 por solicitud. La evidencia no dice cuál produce costuras más limpias.
Ediciones que preservan el estilo. El ejemplo de referencia documentado mantiene la forma de un producto y cambia el entorno. Ese es el patrón de nano-banana-pro en /v1/images/generations. flux-kontext-pro lista capacidad de edición de imágenes. Ninguna afirmación está comparada aquí para la retención de identidad o estilo.
Texto en imágenes. La evidencia no contiene información sobre el renderizado de texto para ningún modelo de edición. ideogram-edit-v3 e ideogram-reframe-v3 existen en el catálogo, pero no encontramos datos de calidad de texto. Pruebe con su propia copia, fuentes e idiomas.
Fotografías de productos. Imagine un equipo de catálogo que intercambia fondos en miles de fotos de productos. Las herramientas de utilidad son la primera opción natural: image-background-remover, image-upscaler y stability-upscale-fast. Sus reglas de precios y entrada no están en nuestra evidencia, así que lea cada página de modelo. Para intercambios de fondo generativos, el precio fijo por solicitud hace que los costos por lotes sean fáciles de pronosticar. El precio por token hace que dependan del tamaño de la imagen y la salida.
Los requisitos de entrada son por modelo, no por proveedor. Algunos modelos toman una imagen fuente más un prompt, algunos toman una máscara y otros toman entradas estructurales. Verifique las operaciones admitidas y los campos de solicitud de cada modelo en su página de detalles. Puede explorar las opciones actuales en el directorio de modelos.
Manejo asíncrono y confirmación de costos para ediciones
La Guía de generación de imágenes y la Guía de trabajos asíncronos (ambas observadas el 03-10-2026) describen el flujo. async: true está documentado para gpt-image-2 y los modelos de edición oficiales de FLUX/BFL. La respuesta de creación devuelve status: "pending", task_id y poll_url. Consulte poll_url cuando esté presente, o GET /v1/tasks/{id} para una URL fija. Los estados son pending, processing, completed y failed. La documentación sugiere verificar cada 5–10 segundos para trabajos de medios largos y detenerse en un estado terminal.
Cuatro detalles causan la mayoría de los errores:
- Una lectura de estado devuelve HTTP 200 incluso cuando la tarea falló. Ramifique según
status, y segúnerror_details.codeytypepara fallos. - Las ediciones asíncronas completadas devuelven URLs independientemente de
response_format. Use una solicitud síncrona cuando necesiteb64_json. - Después de un tiempo de espera del cliente, verifique si una tarea existe antes de volver a intentar la llamada de creación. Reintentar una generación fallida crea una nueva tarea y puede crear un nuevo cargo.
- Las URLs de resultados pueden mantenerse como copias de medios durante 30 días. Verifique
media_retention.itemspara el estado de cada elemento yexpires_at.
Para el costo, la Guía de facturación dice que la Consola muestra la estimación máxima antes de confirmar una generación pagada, y Usage muestra el cargo final. Una tarea asíncrona puede reservar su costo estimado cuando es aceptada. Una tarea completada se cobra una vez, y una tarea fallida o que excedió el tiempo de espera libera o reembolsa el monto pendiente. Las opciones de entrega también importan. TokenLab Verified utiliza los precios públicos de TokenLab, Official utiliza la capa de precios oficial, y Auto intenta primero Verified, luego Official. Un guion en la columna de precio de la página de Modelos significa que no hay oferta Verified disponible, no que el modelo sea gratuito. Un límite de gasto en una clave API devuelve 402 Payment Required una vez alcanzado.
Guarde request_id, task_id, poll_url, billing_transaction_id (cuando esté presente), el modelo, el endpoint y su propio ID de trabajo juntos. En la práctica, ese registro resuelve la mayoría de las preguntas de discrepancia de facturación. La evidencia documenta la cancelación de tareas solo para tareas de video de Seedance en cola. La cancelación para ediciones de imágenes no está documentada, así que diseñe su flujo sin ella.
Preguntas frecuentes
¿Puedo enviar una máscara a cada modelo de edición de imágenes?
La evidencia solo documenta máscaras para gpt-image-2 en /v1/images/edits. La máscara debe ser un PNG de menos de 50 MiB con las mismas dimensiones que la fuente, y las áreas transparentes son las editadas. Para otros modelos, incluyendo flux-pro-1.0-fill, verifique la página de detalles del modelo antes de asumir compatibilidad con máscaras.
¿Qué endpoint usan las ediciones de Nano Banana?
Use POST /v1/images/generations con operation: "image-to-image" y image_urls. Enviar solicitudes de referencia de Nano Banana a /v1/images/edits no es compatible. Tampoco envíe images[] o file_id de nivel superior al endpoint de generaciones.
¿Por qué mi edición de gpt-image-2 devuelve 400 unsupported_parameter?
La causa más documentada es input_fidelity, que no es un campo compatible para gpt-image-2. También elimine resolution y cualquier valor background: "transparent". La tabla de errores comunes aconseja eliminar cualquier campo que el modelo no documente.
¿Se me cobra cuando una tarea de edición asíncrona falla?
La guía de facturación dice que una tarea fallida no se cobra, y su monto reservado se libera o reembolsa. Una tarea completada se cobra una vez, y el monto final aparece en Usage con un billing_transaction_id. Si Usage aún no muestra nada después de que termina la tarea, contacte a support@tokenlab.sh con el ID de solicitud y el ID de tarea.
Para ejecutar las solicitudes anteriores, cree una clave API en Consola → API Keys (los límites de clave se explican en la Guía de facturación), expórtela como TOKENLAB_API_KEY y compare sus ediciones de muestra con el costo final en Usage.
Fuentes
Precio observado el 2026-10-03
- TokenLab Docs: Image generationObservado el 2026-10-03
- TokenLab Docs: Edit ImageObservado el 2026-10-03
- TokenLab Docs: Create ImageObservado el 2026-10-03
- TokenLab Docs: Async jobs and pollingObservado el 2026-10-03
- TokenLab Docs: Billing and pricingObservado el 2026-10-03
- TokenLab live model API: flux-2-proObservado el 2026-10-03
- TokenLab live model API: flux-kontext-proObservado el 2026-10-03
- TokenLab live model API: flux-pro-1.0-fillObservado el 2026-10-03



