Imágenes
Helmcode genera imágenes con flux-2-klein a través de los endpoints de imagen compatibles con OpenAI, así que los SDK de OpenAI funcionan contra él cambiando la base URL.
Generar
curl https://api.helmcode.com/v1/images/generations \
-H "Authorization: Bearer $HELMCODE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "un faro al atardecer, larga exposición",
"size": "1024x1024",
"n": 1
}'
Python
from openai import OpenAI
client = OpenAI(
base_url="https://api.helmcode.com/v1",
api_key="sk-hke_your-key-here",
)
img = client.images.generate(
model="flux-2-klein",
prompt="un faro al atardecer, larga exposición",
size="1024x1024",
)
print(img.data[0].url)
model es opcional: si lo omites resuelve a flux-2-klein, que es el único modelo de imagen que servimos hoy.
Editar
Manda una o varias imágenes de referencia como multipart y el modelo trabaja a partir de ellas. El campo es image, repetido (o image[]):
curl https://api.helmcode.com/v1/images/edits \
-H "Authorization: Bearer $HELMCODE_API_KEY" \
-F image=@foto.png \
-F prompt="la misma composición, de noche" \
-F size=1024x1024
Solo se usan las 4 primeras imágenes de referencia. Mandar más no da error y nada te avisa: las de sobra se descartan antes de que la petición salga de aquí. mask sí se rechaza, con mask is not supported for this model.
Límites
Cuántas imágenes al mes incluye tu plan está en Rate limits. Lo que sigue es lo que puede pedir una petición.
| Campo | Valor |
|---|---|
prompt | obligatorio, hasta 4000 caracteres |
n | de 1 a 4 |
size | ANCHOxALTO o auto. Por defecto 1024x1024 |
| — ancho y alto | entre 256 y 1536 cada uno |
| — divisibilidad | los dos múltiplos de 16 |
| — relación de aspecto | entre 1:3 y 3:1 |
| imágenes de referencia | se usan las 4 primeras en /v1/images/edits, el resto se descarta en silencio |
response_format | url (por defecto) o b64_json |
stream | no soportado |
| formato devuelto | JPEG |
Una url va prefirmada y vale una hora; el propio enlace lleva su X-Amz-Expires=3600 por si lo quieres comprobar. Si necesitas conservar la imagen, descárgala dentro de esa ventana o pide b64_json y escribe tú los bytes.
Las reglas de tamaño se comprueban antes de generar nada, y los errores nombran la regla que has roto:
n must be between 1 and 4 for model 'flux-2-klein'.
size width and height must both be divisible by 16.
size width and height must each be between 256 and 1536 for model 'flux-2-klein'.
size aspect ratio must be between 1:3 and 3:1.
Más allá de los campos de OpenAI
Tres extras, que van por extra_body en los SDK de OpenAI o como campos normales en una petición cruda:
| Campo | Qué hace |
|---|---|
seed | fija la semilla de muestreo. El mismo prompt, tamaño y semilla devuelven una imagen idéntica byte a byte |
guidance | cuánto se ciñe el modelo al prompt |
enhance_prompt | reescribe tu prompt con un modelo de lenguaje antes de generar. Apagado por defecto en la API |
Problemas conocidos
flux-2-kleinno aparece enGET /v1/models. Ese endpoint lista los modelos de lenguaje, embeddings y voz; el registro de imagen va aparte. Un modelo de imagen desconocido vuelve comomodel_not_founddesde el propio endpoint de imágenes.- El streaming se rechaza explícitamente, en vez de ignorarse:
Streaming is not supported for image generation on this API.