Blog

Testing Grok Imagine's 15-20x Faster Image Generation

On this page

We recently added Grok Imagine Image to Puter.js. It's xAI's text-to-image model, and it replaces the Grok-2-Image model we supported before.

There are two versions. The standard one is Grok Imagine Image at $0.02 per image. The other is Grok Imagine Image (Quality), which xAI positions as the higher-quality option, at $0.05 per image. That's 2.5x the price of the standard model.

One thing to watch when you add Grok Imagine: choosing the quality version over the standard one makes each image 2.5x more expensive for your users. On Puter's User-Pays Model that cost lands on each user rather than on you.

xAI claims Grok Imagine Image is the fastest AI image generator in the world, up to 15 to 20x faster than other models. We tested that claim.

Testing the Speed Claim

We compared both Grok tiers against a few other current image models: GPT Image 2 in its low and high quality modes, Nano Banana 2, and Nano Banana Pro. We used the same prompt for all of them and timed each one end to end from the browser, averaging three runs each. These are the times a real user waits for, network and queueing included, not raw GPU time.

Here's the code we used. You can run it yourself in the Puter playground, or drop it into a page on your own site:

<html>
<body>
  <script src="https://js.puter.com/v2/"></script>
  <script>
    const prompt = "A vintage travel poster for the planet Mars, bold art deco typography, the tagline 'Visit the Red Planet'";

    const models = [
      { label: "Grok Imagine Image",           opts: { model: "grok-imagine-image" } },
      { label: "Grok Imagine Image (Quality)", opts: { model: "grok-imagine-image-quality" } },
      { label: "GPT Image 2 (low)",       opts: { model: "gpt-image-2", quality: "low" } },
      { label: "GPT Image 2 (high)",        opts: { model: "gpt-image-2", quality: "high" } },
      { label: "Nano Banana 2",                opts: { model: "gemini-3.1-flash-image-preview" } },
      { label: "Nano Banana Pro",              opts: { model: "gemini-3-pro-image-preview" } },
    ];
Show 31 more lines...
<html>
<body>
  <script src="https://js.puter.com/v2/"></script>
  <script>
    const prompt = "A vintage travel poster for the planet Mars, bold art deco typography, the tagline 'Visit the Red Planet'";

    const models = [
      { label: "Grok Imagine Image",           opts: { model: "grok-imagine-image" } },
      { label: "Grok Imagine Image (Quality)", opts: { model: "grok-imagine-image-quality" } },
      { label: "GPT Image 2 (low)",       opts: { model: "gpt-image-2", quality: "low" } },
      { label: "GPT Image 2 (high)",        opts: { model: "gpt-image-2", quality: "high" } },
      { label: "Nano Banana 2",                opts: { model: "gemini-3.1-flash-image-preview" } },
      { label: "Nano Banana Pro",              opts: { model: "gemini-3-pro-image-preview" } },
    ];

    async function runModel(opts, runs = 3) {
      const times = [];
      let image;
      for (let i = 0; i < runs; i++) {
        const start = performance.now();
        image = await puter.ai.txt2img(prompt, opts); // returns an <img> element
        times.push(performance.now() - start);
      }
      const mean = times.reduce((a, b) => a + b, 0) / times.length;
      return { seconds: mean / 1000, image };
    }

    (async () => {
      // run every model at once, then render in order once they all finish
      const results = await Promise.all(
        models.map(async ({ label, opts }) => ({ label, ...(await runModel(opts)) }))
      );

      for (const { label, seconds, image } of results) {
        // show the timing and the generated image side by side for comparison
        const card = document.createElement("figure");
        const caption = document.createElement("figcaption");
        caption.textContent = `${label}: ${seconds.toFixed(2)}s`;
        image.style.maxWidth = "320px";
        card.append(caption, image);
        document.body.appendChild(card);
      }
    })();
  </script>
</body>
</html>
Collapse code

What We Found

Using the same prompt across all of them, here is what we measured (average seconds per image, lower is faster):

Model Average time per image
Grok Imagine Image 6.25 s
Grok Imagine Image (Quality) 6.25 s
GPT Image 2 (low) 28.06 s
GPT Image 2 (high) 185.48 s
Nano Banana 2 10.32 s
Nano Banana Pro 18.75 s

Both Grok tiers were the fastest in the set, at 6.25 seconds. The 15 to 20x figure only holds against the slowest model: Grok came in about 30x faster than GPT Image 2 in high quality mode, which took over three minutes per image. Against the rest it was faster but by smaller margins, roughly 4.5x faster than GPT Image 2 in low quality mode, 3x faster than Nano Banana Pro, and 1.7x faster than Nano Banana 2, the closest competitor. So Grok Imagine is the fastest here, but the 15 to 20x claim reflects the worst-case comparison rather than the typical one.

The quality tier was no slower than the standard tier in our runs, both landing at 6.25 seconds. You get the higher-fidelity output without paying for it in speed.

Image quality is subjective, so generate a few and judge for yourself. In our runs, every model in this set produced high-quality results, and all of them rendered the poster text cleanly.

Here are the two Grok tiers on the same prompt:

Grok Imagine Image output

Grok Imagine Image

Grok Imagine Image (Quality) output

Grok Imagine Image (Quality)

On Price

Here is the per-image price for each model:

Model Price per image
Grok Imagine Image $0.02
Grok Imagine Image (Quality) $0.05
GPT Image 2 (low) $0.006
GPT Image 2 (high) $0.211
Nano Banana 2 $0.067
Nano Banana Pro $0.1351

GPT Image 2's price depends on the quality setting, from $0.006 at low to $0.211 at high. At its low setting it's the cheapest option here, but at high it's both the slowest and the most expensive model in the set. The two Grok tiers sit in between: at $0.02 the standard tier is cheaper than both Nano Banana models, and at $0.05 the quality tier still comes in below Nano Banana 2.

Try It Out

Grok Imagine Image and Grok Imagine Image (Quality) are xAI's image models, replacing Grok-2-Image, at $0.02 and $0.05 per image. You can try both through Puter.js and add them to your own app for free, since each user pays for their own usage.

Add the npm package:

// npm install @heyputer/puter.js
import { puter } from '@heyputer/puter.js';

Or drop in the script tag:

<script src="https://js.puter.com/v2/"></script>

No API keys or backend needed.

Related:

Free, Serverless AI and Cloud

Start creating powerful web applications with Puter.js in seconds!

Get Started Now

Read the Docs Try the Playground