Uncensored text API for your image pipelines

Get API key

Image Gen API Gemini: What This Service Is

This is not an image gen api gemini offers, and it is not Google's service in any form. It is an independent, OpenAI-compatible text LLM API with one model.

Updated

Key points

  • The service is third party and not affiliated with Google or its Gemini models.
  • It returns text only: no image generation, no image input, no embeddings.
  • Use it to draft and refine prompts that you then send to whichever image model you prefer.
  • Calls follow the OpenAI chat format, with the model ID uncensored.
Two islands joined by a bridge, one with a text terminal and one with an empty frame, showing text and image tools

Is this Google's Gemini image API?

No. If you arrived searching for a Gemini image endpoint, the first thing to settle is who runs what. Gemini is Google's model family, and Google offers image generation through its own developer products. Whatever those products can do, you reach them through Google, with Google's accounts, keys and terms.

This site is something else. It is a hosted text API in which a single open-weight model, run by an independent provider, is tuned to answer without content refusals for lawful adult use. It is not a reseller of Gemini, it does not route requests to Google, and it carries no endorsement from Google or any other model vendor. The domain name mentions image generation because many visitors come looking for prompt help, not because pictures are produced here.

What you actually get

The scope is deliberately small, which makes it easy to evaluate in a few minutes.

  • Protocol: OpenAI-compatible. Any OpenAI SDK or client works after you change two things, the base URL and the key.
  • Base URL: https://api.imagegenapi.com/v1
  • Model ID: uncensored
  • Methods: POST /v1/chat/completions and GET /v1/models
  • Features: streaming over SSE, tool calling, JSON mode, and pass-through sampling parameters (temperature, top_p, stop, seed, penalties).
  • Context: 100,000 tokens, prompt plus completion.

Not included: image generation, image input, audio, video, embeddings and fine-tuning. If a feature is not on the list above, assume it is absent. The docs page has the request format and the error codes.

Third-party versus official: how to tell

The confusion is common across the whole market, so a quick checklist helps whenever you meet an API whose name sounds like a big vendor's.

  1. Look at the domain and the terms. An official API lives under the vendor's own domain and terms. A third-party service says so, or at least names its own operator.
  2. Check the model list. Here, GET /v1/models returns the one model, uncensored. A router would list many vendor model names.
  3. Read what is promised. Claims such as "the real thing, but cheaper" deserve suspicion. A trustworthy service tells you which features are missing.
  4. Test it. Send a few requests with the free trial before you move any workload.

On this site, the answers are plain: independent provider, one open-weight model, text only. Treat any other reading as a mistake. You can verify the identity of the model through behavior, but you should not expect it to claim to be a particular vendor's product.

A sensible way to combine text and image tools

Image models are driven by prompts, and writing good prompts is mostly a text task. A common workflow is therefore two steps: ask a language model to produce a detailed prompt, then paste or pipe that prompt into the image service you have chosen, Google's or anyone else's. The text model here handles step one.

from openai import OpenAI

client = OpenAI(base_url="https://api.imagegenapi.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",
    temperature=0.7,
    messages=[
        {"role": "system", "content": "Turn a short idea into a detailed prompt for a text-to-image model. Include subject, setting, lighting, color palette and mood. One paragraph."},
        {"role": "user", "content": "A smuggler's market inside a hollowed-out whale skeleton, neon lanterns."},
    ],
)
print(resp.choices[0].message.content)

For a pipeline, ask for JSON so the next stage can read fields. Here it is in Node with the official openai package:

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.imagegenapi.com/v1",
  apiKey: process.env.API_KEY,
});

const res = await client.chat.completions.create({
  model: "uncensored",
  response_format: { type: "json_object" },
  messages: [
    { role: "user", content: "Return JSON with keys prompt and style for: a whale-skeleton night market." },
  ],
});

const out = JSON.parse(res.choices[0].message.content);
console.log(out.prompt);

A few notes on those snippets. The system message does the heavy lifting, so spend your time there. The API key belongs in an environment variable, never in source control. And if the call fails with a 429, wait and retry instead of looping at full speed, since a tight loop only burns through your per-minute allowance faster. The same code runs unchanged against other OpenAI-compatible hosts, which is the point of the shared protocol: you can switch providers by changing the base URL and the model name.

Remember that a lawful adult focus applies to the content you request. Fiction, roleplay and companion apps are the typical use, and sexual content involving minors is blocked without exception.

Writing prompts that suit an image model

Most of the value in the text step comes from the instructions you give, not from the model alone. A few habits make the output far more usable.

Give the model a fixed recipe

Tell it the order of the parts you want: subject first, then setting, then light, then palette, then style. Image models tend to weight early words more, so a stable order keeps results comparable between runs. Add a word limit, since very long prompts often dilute the main subject rather than improve it.

Say what to exclude

Some image tools take a separate negative prompt, others ignore it. Ask the text model to return the two parts as separate JSON fields, then drop the second if your tool has no use for it. This is simpler than editing a long paragraph by hand.

Iterate in the same conversation

Keep earlier messages in the messages list and ask for changes: warmer light, a wider shot, fewer characters. The context window is 100,000 tokens, so even a long editing session fits. Lower temperature when you want small edits and raise it when you want fresh ideas.

Test a few seeds

If you pass the same seed with the same messages and settings, the output stays close from run to run. Change only one thing at a time, such as the system message, and you can tell which change improved the result. That discipline saves more money than any price tier, since fewer wasted image generations are the real cost saving.

Cost of the text step

The price is $0.15 per 1M input tokens and $0.50 per 1M output tokens, from prepaid credit, with no subscription. Refused or failed requests are not charged. Take a batch of 1,000 prompt-writing calls, each with 400 input tokens and 250 output tokens.

  • Input per call: 400 / 1,000,000 x $0.15 = $0.00006.
  • Output per call: 250 / 1,000,000 x $0.50 = $0.000125.
  • Per call: $0.000185.
  • Per 1,000 calls: $0.185.

That is 18.5 cents for the batch. Compare it with your image provider's price per picture, which you should look up on their pricing page, and you will usually see that the prompt-writing step is the cheaper one.

Getting started with credit

New users can claim $0.50 of trial credit with one click on the API key page after signing up with Google or with email and password. It needs no payment and lasts 7 days. After that, top up with any whole amount from $20 to $500 in crypto (USDT on TRC20 or USDC on Base). Bonuses are +5% from $50, +10% from $100 and +15% from $200, and credit never expires. See pricing for the full picture.

Limits to plan around

A full key allows 8 concurrent requests and 300 requests per minute. A trial key allows 2 concurrent and 60 per minute. Exceeding the first gives HTTP 429 with code rate_limited, exceeding the second gives 429 with code concurrency, and temporary overload gives 429 with a Retry-After: 5 header. A streamed request holds its slot until the stream finishes, so close streams you no longer need.

Response headers include X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests and X-RateLimit-Limit-Concurrency. Log the request ID with every error, because it is the fastest way to get help from support. The maximum body size is 8 MB.

If what you need is a native Gemini image call, go to Google and read their current documentation. If what you need is an uncensored text model that speaks the OpenAI protocol, to write prompts, stories or character dialogue for lawful adult use, this is built for that.

Questions and answers

Does this service use Gemini models?

No. It runs a single open-weight model from an independent provider and does not route to Google or any other vendor.

Can I generate images with it?

No. It is text only. You can use it to write prompts for an image generator, but the picture comes from the image service you choose.

Which model ID do I use?

Use uncensored with the base URL https://api.imagegenapi.com/v1. You can confirm it with a GET request to /v1/models.

Is there a free way to try it?

Yes. After sign-up you can claim $0.50 of trial credit with one click on the API key page. It is valid for 7 days and needs no payment.

Your key is one form away

Create an account, copy the key, change the base URL. That is the whole setup.

Get API key