What it’s good at
- Long prompts. It reads up to 7,500 characters, five times what
wai-illustrioustakes. - Range. It isn’t tied to one subject or style, so it suits a general-purpose app.
- More pixels for the price. It returns 1.5x the size it draws at: 1024x1024 comes back at 1536x1536, for the same price.
Call Chroma
The model id is chroma. Any OpenAI client works with its base URL set to https://nokeep.ai/v1, and sk-nokeep-test tries the request free.
import base64
import os
from openai import OpenAI
client = OpenAI(
base_url="https://nokeep.ai/v1",
api_key=os.environ["NOKEEP_API_KEY"],
)
result = client.images.generate(
model="chroma",
prompt="A lighthouse on a rocky coast at dusk, long exposure, mist over the water",
size="1024x1024",
)
with open("picture.webp", "wb") as f:
f.write(base64.b64decode(result.data[0].b64_json))Every field is in the reference.
What uncensored means here
Adult content is in scope. In our check on 6 November 2026, an adult prompt came back unblurred with nothing flagged, in about 5 seconds. A host can still refuse, which is a 422 content_refused error that costs nothing.
Four hard limits stay: sexual content involving minors, sexual content of real people, mass-casualty harm and targeting a real person. A prompt that crosses one gets 422 hard_limit and costs nothing.
What private means here
The picture comes back as base64 in the response, not as a link to a stored file. The model runs on a private tier that stores no prompts or results. We keep one row of counts for billing. What we keep has the details.
Questions
Does it take a negative prompt?
You can send negative_prompt, seed, steps and cfg_scale. All four were accepted in our check on 6 November 2026.
Can it use a reference image?
No. Our image routes are text only.
Does it work with the OpenAI SDK?
Yes. Set the base URL and key, and call images.generate with this model’s id.
Do you keep my prompts or pictures?
No. We keep a row of counts for billing, never the prompt or the picture. See What we keep.