Grok Imagine Editar imagen
Usa el endpoint de edición de imagen para crear una Task asíncrona.
Descripción general
Usa el endpoint de edición de imagen con un modelo compatible. Usa el ID de Task devuelto para recuperar su estado, o proporciona callback_url para las entregas documentadas a continuación.
Inicio rápido
- Cree una Clave de API y establézcala como RUNAPI_API_KEY.
- Elija un modelo compatible y envíe una solicitud POST cuyo cuerpo coincida con el esquema de ese modelo.
- Almacena el ID de tarea devuelto, luego sondea hasta alcanzar un estado terminal o gestiona las devoluciones de llamada documentadas a continuación.
Endpoint
- URL base
https://runapi.ai- Versión de la API
v1- Autenticación
Authorization: Bearer YOUR_API_TOKEN
Modelos compatibles
Abra una página de modelo para conocer los precios actuales, los límites de velocidad y los detalles de uso comercial.
Esquema de solicitud
Los campos y los valores permitidos dependen del modelo seleccionado. Cuando se proporciona, callback_url recibe las entregas de tareas documentadas a continuación.
grok-imagine-edit-image5 campos
callback_urlstringURL de webhook para la entrega de tareas en estado terminal.
enable_safety_checkerbooleanActivar las comprobaciones de seguridad de contenido.
modelstringIdentificador del modelo.
promptstringInstrucción opcional de edición de imagen.
source_image_urlstringURL pública de imagen de origen.
grok-imagine-image-2-05 campos
aspect_ratiostringRelación de aspecto de salida.
Valores permitidos:1:1, 2:3, 3:2, 16:9, 9:16, auto
callback_urlstringURL de webhook para la entrega de tareas en estado terminal.
modelstringIdentificador del modelo.
promptstringIndicación de edición de imagen.
Límite:390000
source_image_urlsarrayURLs de imágenes fuente, de una a cinco entradas.
Rango de elementos:1 - 5
Reglas condicionales
Estos requisitos se aplican cuando todas las condiciones enumeradas coinciden.
-
Cuando
model = grok-imagine-edit-image- Obligatorio
- No aceptado
source_task_id,mask_indices,source_image_urls,aspect_ratio
-
Cuando
model = grok-imagine-image-2-0- Obligatorio
- No aceptado
source_image_url,source_task_id,mask_indices,enable_safety_checker
Crear aceptación
POST /api/v1/grok_imagine/edit_image
Esquema de respuesta
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"id": {
"type": "string"
},
"status": {
"enum": [
"processing"
],
"type": "string"
},
"task_replayed": {
"type": "boolean"
}
},
"required": [
"id",
"status",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "processing"
}
Consulta en proceso
GET /api/v1/grok_imagine/edit_image/:id
Esquema de respuesta
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"id": {
"type": "string"
},
"status": {
"enum": [
"processing"
],
"type": "string"
}
},
"required": [
"id",
"status",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "processing"
}
Consulta completada
GET /api/v1/grok_imagine/edit_image/:id
Esquema de respuesta
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"id": {
"type": "string"
},
"images": {
"items": {
"properties": {
"url": {
"type": "string",
"x-runapi-generated-media": true
}
},
"required": [
"url"
],
"type": "object",
"unevaluatedProperties": false
},
"type": "array"
},
"status": {
"enum": [
"completed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"images",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"images": [
{
"url": "https://cdn.runapi.ai/public/samples/image.jpg"
}
],
"status": "completed"
}
Consulta fallida
GET /api/v1/grok_imagine/edit_image/:id
Esquema de respuesta
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"error": {
"type": "string"
},
"id": {
"type": "string"
},
"status": {
"enum": [
"failed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"error",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"error": "Task processing failed.",
"id": "tsk_reference_demo",
"status": "failed"
}
Devolución de llamada del cliente: completado
POST callback_url
Esquema de respuesta
{
"properties": {
"id": {
"type": "string"
},
"images": {
"items": {
"properties": {
"url": {
"type": "string",
"x-runapi-generated-media": true
}
},
"required": [
"url"
],
"type": "object",
"unevaluatedProperties": false
},
"type": "array"
},
"status": {
"enum": [
"completed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"images"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
{
"id": "tsk_reference_demo",
"images": [
{
"url": "https://cdn.runapi.ai/public/samples/image.jpg"
}
],
"status": "completed"
}
Devolución de llamada del cliente: fallido
POST callback_url
Esquema de respuesta
{
"properties": {
"error": {
"oneOf": [
{
"type": "string"
},
{
"properties": {
"code": {
"type": "string"
},
"limit_cents": {
"type": "integer"
},
"message": {
"type": "string"
},
"reset_at": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"used_cents": {
"type": "integer"
},
"window": {
"enum": [
"1h",
"1d",
"7d",
"daily",
"weekly",
"monthly",
"lifetime"
],
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object",
"unevaluatedProperties": false
}
]
},
"id": {
"type": "string"
},
"status": {
"enum": [
"failed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
{
"error": {
"code": "generation_failed",
"message": "Task processing failed."
},
"id": "tsk_reference_demo",
"status": "failed"
}
Errores
POST /api/v1/grok_imagine/edit_image
Esquema de respuesta
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
{
"error": "Authentication required"
}
Errores
GET /api/v1/grok_imagine/edit_image/:id
Esquema de respuesta
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
{
"error": "Authentication required"
}
Errores
POST /api/v1/grok_imagine/edit_image
Esquema de respuesta
{
"oneOf": [
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
},
{
"properties": {
"error": {
"description": "Resumen de validación legible por personas.",
"type": "string"
},
"errors": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Mensajes de validación con clave por campo de solicitud público, con un array de cadenas legibles por personas para cada campo.",
"type": "object"
}
},
"required": [
"error",
"errors"
],
"type": "object",
"unevaluatedProperties": false
}
]
}
Ejemplo de respuesta
{
"error": "model must be one of: grok-imagine-edit-image, grok-imagine-image-2-0"
}
Errores
POST /api/v1/grok_imagine/edit_image
Esquema de respuesta
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
{
"error": "Insufficient balance"
}
Errores
POST /api/v1/grok_imagine/edit_image
Esquema de respuesta
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
{
"error": "API key credit limit exceeded"
}
Errores
POST /api/v1/grok_imagine/edit_image
Esquema de respuesta
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
{
"error": "The request uses features that are not supported for the selected model"
}
Errores
POST /api/v1/grok_imagine/edit_image
Esquema de respuesta
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
{
"error": "Rate limit reached. Please retry later."
}
Errores
POST /api/v1/grok_imagine/edit_image
Esquema de respuesta
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
{
"error": "Service under maintenance, please try again later"
}
Errores
POST /api/v1/grok_imagine/edit_image
Esquema de respuesta
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
{
"error": "The request timed out"
}
Errores
GET /api/v1/grok_imagine/edit_image/:id
Esquema de respuesta
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
{
"error": "Task with id 'tsk_reference_demo' not found"
}
Ejemplos de código generados
Usa cURL directamente o instala un SDK para tu lenguaje. Cada muestra envía la solicitud validada que se muestra en esta referencia.
Instalar
pip install runapi-grok-imagine
import os
from runapi.grok_imagine import GrokImagineClient
client = GrokImagineClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.edit_image.create(
model="grok-imagine-edit-image",
source_image_url="https://cdn.runapi.ai/public/samples/upscale.jpg",
prompt="Add a soft watercolor texture."
)