The Wave Texture in OpenAI's New Image Models
Flare and Sunburst
On September 8, 2026, OpenAI released two new image models: Flare and Sunburst (gpt-image-2.5-flare and gpt-image-2.5-sunburst). Flare replaces the previous standard, gpt-image-2, and according to OpenAI delivers higher quality at half the wait time. Sunburst is the premium model for product and campaign images, with tighter control over later edits. Both cost the same in tokens ($5/M text input, $8/M image input, $30/M image output). Sunburst takes noticeably longer.
I tested both on the same day via the API, at 1536 by 864 pixels and quality level high. The prompt:
old oil style painting, stoic philosopher plato teaching computer science in the ancient school of athens in a server room, accidentally Renaissance
Flare took 22 seconds, Sunburst 28. At maximum quality and higher resolution, the gap widens: there, Sunburst takes about 75 percent longer. As a control, I had the same scene generated by Google’s Gemini (gemini-3.1-flash-image-preview).
Flare interprets the prompt more narratively: a legible chalkboard with Python code, a terminal, a stack of books titled “Python, Algorithms, Networks.” Sunburst sticks closer to Raphael’s School of Athens, with a symmetrical staircase and server racks as columns. Both images are stylistically convincing. Flare renders text almost flawlessly.
The wave texture from gpt-image-2 was immediately visible. Robes, walls, and hair all carry the same wavy pattern. Two new models, the same pattern.
The Texture
The pattern is easier to show than to describe. You could call it a crinkle, ripple, or noise texture: each term captures one aspect, none the whole thing.
It doesn’t stand out when you zoom in close. It shows up when you take in larger areas of the image: the brain picks up on the repetition in the contrast patterns. Fabric, marble, skin, and background all carry the same surface texture, as if a film were laid over the image.
It’s especially obvious in tightly packed groups of people. Every head gets nearly the same hair texture, every robe the same wave pattern. Once I’d seen it, I found it in every subsequent OpenAI image.
Higher resolution and higher quality levels barely help. Flare at the maximum level and 2048 pixels sometimes shows even stronger waves, because the model generates more detail in the fabric folds. Sunburst at maximum quality delivers the smoothest result: soft brush transitions, nearly clean walls. But the pattern stays visible in hair and groups.
OpenAI marks its images with SynthID, an invisible watermark from Google DeepMind that flags provenance; it has been embedded since the 2.5 models. The wave texture isn’t the watermark, though: it was already there in gpt-image-2, before the SynthID rollout, and an embedded grid would leave a periodic peak in the frequency analysis, which there isn’t.
Four Detection Attempts
Claude and I tried four approaches to detect the pattern automatically. None produces a metric that reliably separates OpenAI images from the Gemini control.
Frequency analysis (FFT): We searched the frequency spectrum for a periodic grid that would reveal the texture as a fixed signal. There isn’t one. The pattern is spread broadband, with no discernible frequency peak.
Fine-band energy on smooth areas: We measured the energy density of fine structures (3 to 10 pixels) on areas without edges. Gemini reaches the highest value (19.6), Flare only 14.8. Brush texture and JPEG compression in Gemini’s image count toward this too and push the value up.
Directional coherence: A structure tensor measures whether fine structures have a preferred direction. Gemini comes in at 0.66, Flare at 0.42. Brushstrokes in painterly images are directional too.
Mid-band energy on hand-picked areas: On manually marked regions (robe, wall, floor), Gemini’s amplitude is consistently higher than all three OpenAI variants.
On every metric, Gemini has more measurable texture than OpenAI. The eye still sees the problem in OpenAI’s images, because every surface carries the same fine structure. A filter that detects this uniformity would need a trained classifier that has learned what different materials normally look like.
High-Pass and Squint Test
Two visualizations reveal the pattern.
High-pass filter: A Gaussian high-pass isolates the fine structures of an image and makes large-scale color gradients disappear. In the comparison image, Gemini shows an etching with calm areas where there’s little detail. All three OpenAI variants (Flare, Sunburst, Codex) are evenly filled with fine grain, on every surface. Codex isn’t a separate API model here but the Codex CLI’s built-in image model: it runs against my included ChatGPT quota instead of the API, and which model sits behind it can’t be chosen there. This image carries the texture too, clearly under the high-pass, only faintly to the naked eye.
All high-pass images at full resolution: Flare, Sunburst, Codex, Gemini.
Squint test: The opposite of zooming in. Claude shrank the images to 680 pixels wide and isolated the mid-band: the frequency range between 5 and 15 pixels in the original image. Objects, people, and architecture disappear. What’s left in Gemini is a recognizable drawing with arches and outlines. What’s left in Flare is uniform noise.
I show the filter at two gain levels. Gain 5 brings out the patterns in flat areas, gain 7 the wave structure at the edges. Both images show the grayscale original on top, the isolated mid-band below.
The original images: Flare, Sunburst, Gemini.
The pattern sits just below normal viewing resolution. On a monitor at full width, it’s immediately there.
For transparency: the Gemini image is a JPEG at 1376 by 768 pixels, the OpenAI images are PNGs at 1536 by 864. After downscaling to 680 pixels for the filter, the difference doesn’t matter.
What This Means for Me
Flare and Sunburst are a step forward over gpt-image-2 in text, composition, and speed. As long as the wave texture stays visible on certain subjects, I fall back to Gemini there. There are images where you can barely see the pattern. In others, it jumps out immediately.
The best mitigation within OpenAI’s models: Sunburst with quality=max. The wait time doubles, the cost stays the same.
If you have a ChatGPT subscription and don’t want to set up an API key: OpenAI’s Codex CLI can generate images without incurring API costs. The quality is good; in my test image the pattern was even fainter than Flare’s, closer to Sunburst.