curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "hy-image-v3.5-preview",
"prompt": "A golden retriever running on a beach in warm evening light",
"size": "16:9",
"resolution": "2K"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "hy-image-v3.5-preview",
"prompt": "A golden retriever running on a beach in warm evening light",
"size": "16:9",
"resolution": "2K"
}
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "hy-image-v3.5-preview",
prompt: "A golden retriever running on a beach in warm evening light",
size: "16:9",
resolution: "2K"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Hy-Image-3.5 Preview
Hy-Image-3.5 Preview Generación de imágenes
Texto a imagen, hasta 5 imágenes de referencia, salida 1K / 2K / 4K o dimensiones exactas. Una imagen por solicitud.
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": "hy-image-v3.5-preview",
"prompt": "A golden retriever running on a beach in warm evening light",
"size": "16:9",
"resolution": "2K"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "hy-image-v3.5-preview",
"prompt": "A golden retriever running on a beach in warm evening light",
"size": "16:9",
"resolution": "2K"
}
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "hy-image-v3.5-preview",
prompt: "A golden retriever running on a beach in warm evening light",
size: "16:9",
resolution: "2K"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Este endpoint es asíncrono. Tras enviar, obtén el ID en
data[0].task_id y usa Consulta de tareas para ver el estado y la imagen. Consulta cada 3–5 segundos; se recomienda un tiempo de espera total del cliente de 5 minutos. Detente en completed o failed.curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "hy-image-v3.5-preview",
"prompt": "A golden retriever running on a beach in warm evening light",
"size": "16:9",
"resolution": "2K"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "hy-image-v3.5-preview",
"prompt": "A golden retriever running on a beach in warm evening light",
"size": "16:9",
"resolution": "2K"
}
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "hy-image-v3.5-preview",
prompt: "A golden retriever running on a beach in warm evening light",
size: "16:9",
resolution: "2K"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Cabeceras de solicitud
string
requerido
Autenticación Bearer:
Bearer <token>, donde <token> es tu APIMart API Key.Parámetros de solicitud
string
requerido
Valor fijo:
hy-image-v3.5-preview.string
requerido
Descripción para generar o editar imágenes. Admite chino e inglés; no puede estar vacía.
string
predeterminado:"auto"
Relación de aspecto o dimensiones exactas en píxeles.
- Relación:
1:1,2:3,3:2,3:4,4:3,4:5,5:4,9:16,16:9,21:9. - Píxeles exactos: por ejemplo
2000x1104, sujeto a los límites indicados abajo. autou omitido: el modelo elige la relación según el prompt.
resolution no determina las dimensiones.string
predeterminado:"1K"
Nivel de resolución:
1K, 2K o 4K; por defecto 1K.Con píxeles exactos, este campo no determina el tamaño. Usa siempre un valor admitido; los demás devuelven HTTP 400.integer
Anchura exacta en píxeles. Debe enviarse con
height y tiene prioridad sobre size y resolution.Anchura de 256 a 8192; anchura × altura no debe superar 8.294.400. Se recomiendan múltiplos de 16.integer
Altura exacta en píxeles. Debe enviarse con
width.Altura de 256 a 8192; anchura × altura no debe superar 8.294.400. Se recomiendan múltiplos de 16.string[]
URL públicas de referencia, hasta 5 imágenes. Omitir para texto a imagen; incluir para generación con referencias mediante el mismo endpoint.Admite JPEG, PNG y WEBP. Se recomienda menos de 7MB por imagen. Las URL deben ser públicas.
string
Contenido que no debe aparecer en la imagen.
integer
Semilla aleatoria; entero no negativo.
0 u omisión usa un valor aleatorio.integer
predeterminado:"1"
Una imagen por solicitud. Solo se admite
1; otros valores devuelven HTTP 400.Selección de dimensiones
Prioridad: parwidth / height → píxeles exactos en size → relación o auto en size junto con resolution.
Para píxeles exactos, anchura y altura deben estar entre 256 y 8192, con un máximo total de 8.294.400 píxeles. Se recomiendan múltiplos de 16 para ambas.
Ejemplo de píxeles exactos
{
"model": "hy-image-v3.5-preview",
"prompt": "A minimalist seaside travel poster with a warm sunset",
"width": 2000,
"height": 1104
}
width y height y enviar "size": "2000x1104".
Ejemplo con imagen de referencia
{
"model": "hy-image-v3.5-preview",
"prompt": "Make the car in the reference image red, preserving the original background and lighting",
"image_urls": ["https://example.com/car.png"],
"size": "16:9",
"resolution": "2K",
"negative_prompt": "blur, text watermarks",
"seed": 42,
"n": 1
}
image_urls, hasta 5 imágenes en total.
Respuesta de envío
integer
Código de respuesta;
200 indica éxito.array
Consultar resultados
curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01K... \
--header 'Authorization: Bearer <token>'
{
"code": 200,
"data": {
"id": "task_01K...",
"status": "completed",
"result": {
"images": [
{
"url": ["https://example.com/generated-image.png"]
}
]
}
}
}
pending/processing: seguir consultando.completed: obtener la URL dedata.result.images[0].url[0];urles un array de cadenas.failed: detener consultas y leer la causa endata.error.message. Reembolso íntegro. Los prompts que infringen las normas y los rechazos de moderación también se tratan como fallos.
expires_at indicada en el resultado.
Facturación
Se factura por imagen. Consulta los precios de modelos.- Con una relación de aspecto, se cobra según el nivel
resolution. - Con píxeles exactos, el lado más corto determina el nivel:
| Nivel | Lado más corto |
|---|---|
| 1K | Hasta 1024 píxeles |
| 2K | 1025–2048 píxeles |
| 4K | Más de 2048 píxeles |
Errores de parámetros frecuentes
Los siguientes casos devuelven HTTP 400 de forma síncrona, sin crear tarea ni cobrar:| Problema | Acción |
|---|---|
prompt vacío | Proporcionar un prompt no vacío |
n distinto de 1 | Solicitar solo una imagen cada vez |
seed negativo | Usar un entero no negativo; 0 significa aleatorio |
resolution no admitida | Usar 1K, 2K o 4K |
Relación de size no admitida | Usar una de las 10 relaciones indicadas o auto |
| Dimensiones fuera de rango | Anchura y altura entre 256 y 8192, total máximo de 8.294.400 píxeles |
| Más de 5 imágenes de referencia | Reducir image_urls a un máximo de 5 imágenes |