Seinari

Free image API

Quick start

curl https://seinari.ai/v1/generate \
  -H 'Content-Type: application/json' \
  -d '{"prompt": "a lighthouse on a cliff at sunset, oil painting", "rewrite": false}'

The answer is JSON with the picture in it, base64-encoded:

{"model":"fast","rewrite":false,"seed":1180428871,"size":512,"type":"image/jpeg",
 "gpu_ms":465.2,"ms":688.0,"image":"/9j/4AAQSkZJRgABAQ…"}

Or get the picture itself:

curl https://seinari.ai/v1/generate -H 'Accept: image/jpeg' \
  -d '{"prompt": "a red fox in fresh snow", "seed": 7}' -o fox.jpg

A plain link works too, so you can put it straight in an <img> tag:

https://seinari.ai/v1/generate?prompt=a+red+fox+in+fresh+snow&seed=7

Models

ModelUnderlying modelSize
fastFLUX.2 Klein 4B512×512
qualityFLUX 3 Klein (Klein 3)1024×1024

POST /v1/generate

FieldMeaning
promptWhat to draw, 1 to 400 characters. Required.
seedA whole number from 0 to 2147483647. Repeats the drawing request, but different cards or runtime updates can change the picture. Leave it out for a new random seed.
modelWhich model draws it: fast (the default) or quality. /v1/models lists them.
sizeOptional; each model draws one size (512 for fast, 1024 for quality).
rewriteQuality always expands the prompt before drawing; it has no rewrite opt-out. Fast draws your original prompt. /v1/models identifies rewritten models.
format"json" (the default for POST) or "image" (the default for GET, and for requests that send Accept: image/jpeg).

GET /v1/generate?prompt=…&seed=…&model=… takes the same fields as a query string.

Picture answers carry the same facts as headers: X-Seed, X-Model, X-Rewrite and X-GPU-Ms. CORS is open, so it works from any web page.

Nothing is kept

Every picture is drawn for your request, sent to you, and forgotten. Our service does not save prompts or pictures; answers are marked Cache-Control: no-store. If you want to keep a picture, save it when it arrives.

Errors

CodeMeaning
400Something in the request is wrong; error says what.
429Shared capacity is busy: the fleet rejects new work when expected queue wait exceeds 4 seconds or 512 jobs are waiting. The API also caps its own in-flight requests at 256. These are capacity limits, not per-user quotas. Wait Retry-After seconds before retrying.
503No serving capacity is available, or Quality or the fallback is not ready. Wait Retry-After seconds before retrying.

At 116 images per second, Fast measured 415 ms client p50 from Helsinki to the North American fleet; router p50 was 136 ms.

gpu_ms is the worker generation wall time in milliseconds, including text encoding and CPU work; it is not a GPU-only measurement.

Pictures drawn through the API count toward the live counter on seinari.ai. The counter keeps only the number of pictures and their worker generation time.