Commissioning an asset
Ask the catalogue for something it does not have, watch it render, and license the result.
Start a request
POST /api/bank/request
{"query": "a falconer holding a hooded hawk on a gloved hand", "shape": "landscape"}
-> {"request_id": "req_...", "candidates": 3, "estimate_seconds": 240}
shape is landscape, portrait or square.
Watch it
GET /api/bank/request/{request_id}
-> {"state": "rendering", "progress": 0.35, "candidates_done": 1, "candidates": 3,
"draft": {"score": 70, "preview_url": "/api/bank/request/{id}/draft"},
"asset": null, "message": null}
| State | Meaning |
|---|---|
queued | Accepted, waiting for the card. |
rendering | Candidates are being made. |
choosing | All candidates are in; the best is being picked. |
enlarging | The winner is being upscaled. |
done | asset is populated and licensable. |
missed | Nothing came out well enough to list. message says why. |
failed | The render did not finish. error says why. |
A draft preview appears roughly a minute before the full-size file, so the wait is spent looking at the picture rather than at a spinner.
What is refused
- Brand names, real and recognisable people, and celebrity-shaped requests.
- Anything the prompt linter rates an error.
- Requests under three characters or over 160.
The filter normalises the text first, so spacing letters out or swapping in lookalike characters does not get a refused subject past it.
Rations
There is one GPU behind an open door, so requests are rationed per visitor and per hour for the catalogue as a whole. Exceeding either returns a plain sentence saying which, and asks you to come back shortly.