{"id":49,"date":"2025-10-15T10:32:10","date_gmt":"2025-10-15T10:32:10","guid":{"rendered":"https:\/\/latenitesoft.com\/blog\/?p=49"},"modified":"2025-10-15T10:32:12","modified_gmt":"2025-10-15T10:32:12","slug":"evaluating-frontier-ai-image-generation-models","status":"publish","type":"post","link":"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/","title":{"rendered":"We ran over 600 image generations to compare AI models"},"content":{"rendered":"\n<p><b>tl:dr; <\/b>We&#8217;ve been making photo apps for iOS for long enough that we have gray hairs now, and using our experience we ran over 600 image generations to compare which AI models work best for which image edits. If you want, you can jump right to the <a href=\"#filters\">image comparisons<\/a>, or the <a href=\"#conclusion\">conclusion<\/a>, but promise us you won&#8217;t presumptuous comments on Hacker News until you&#8217;ve also read the background!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Background<\/h2>\n\n\n\n<p>Hi! We&#8217;re LateNiteSoft, and we&#8217;ve been working on photography-related iOS apps for 15 years now. Working on market-leading apps such as Camera+, <a href=\"https:\/\/photon.cam\/?from=lnsblog\">Photon<\/a> and <a href=\"https:\/\/recvideoapp.com\">REC<\/a>, we&#8217;ve always had our finger on the pulse on what users want out of their mobile photography.<\/p>\n\n\n\n<p>With the ground-breaking release of OpenAI&#8217;s <b>gpt-image-1<\/b> image generation model earlier this year, we started investigating all the interesting use cases we could think of for AI image editing.<\/p>\n\n\n\n<p>But as a company that has never taken any venture capital investment, all our products have to pay for themselves. We&#8217;re in it to delight our users, not just capture market share and sell them out. When considering AI projects, one thing has been clear &#8211; we can&#8217;t take the AI startup road where you have a generous free tier, charge an unreasonably small monthly fee for &#8220;unlimited&#8221;, and hope you&#8217;re going to make it up on scale (code for &#8220;someone please acquire us&#8221;).<\/p>\n\n\n\n<p>All the AI-focused billing systems we could find out there were based on this. Assuming you want to claim unlimited access, and then sandbag users with &#8220;fair use&#8221; clauses and prevent them from any actual unlimited usage (which is, obviously, untenable, since you&#8217;ll end up with one $20\/mo user reselling to everyone else).<\/p>\n\n\n\n<p>Since we want to fairly charge our customers for what they actually use, we\u2019ve built a credit-based \u201cpay per generation\u201d-style billing system (that internally we&#8217;ve been calling CreditProxy). We\u2019ve also been planning on providing this as a service, since nobody else seems to be doing it, so if you\u2019re interested in being a trial user, <a href=\"https:\/\/latenitesoft.com\/contact\/\">get in touch!<\/a><\/p>\n\n\n\n<p>We released our app <a href=\"https:\/\/apps.apple.com\/app\/apple-store\/id6745558534?pt=11365&amp;ct=lnsblog&amp;mt=8\">MorphAI<\/a> as a public proof of concept to give CreditProxy a proper real world-test, and have marketed it to the users of Camera+, which includes traditional photo-editing functionality, including a whole host of popular photo filters, giving us a built-in audience of customers ready for the next step in image editing.<\/p>\n\n\n\n<p>With the release of newer models like nanoBanana and Seedream, we&#8217;ve had to consider which models make sense to support. We need to explore the trade-offs between quality, prompt complexity, and pricing.<\/p>\n\n\n\n<p>A couple of hastily-hacked together scripts, and many, many AI generation credits later, we have some results! So that everyone else also doesn\u2019t have to waste their money, we figured we\u2019d share what we found:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Tests<\/h2>\n\n\n\n<p>Based on our experience with Camera+ and the kind of edits our users have been making with MorphAI, we picked a host of somewhat naive prompts. Veteran Midjourney users may scoff at these, but in our experience these are the kinds of prompts that our average user is likely to use.<\/p>\n\n\n\n<p>As for test photos, we chose some some representative things people like to take photos of: their pets, their kids, landscapes, their cars, and product photography.<\/p>\n\n\n\n<p>\n<img decoding=\"async\" src=\"https:\/\/latenitesoft.com\/blog\/wp-content\/plugins\/model-comparison-widget\/images\/landscape.jpg\" style=\"max-width: 40%; height: auto;\"> \n<img decoding=\"async\" src=\"https:\/\/latenitesoft.com\/blog\/wp-content\/plugins\/model-comparison-widget\/images\/car.jpg\" style=\"max-width: 40%; height: auto;\"> \n<img decoding=\"async\" src=\"https:\/\/latenitesoft.com\/blog\/wp-content\/plugins\/model-comparison-widget\/images\/pets.jpg\" style=\"max-width: 40%; height: auto;\"> \n<img decoding=\"async\" src=\"https:\/\/latenitesoft.com\/blog\/wp-content\/plugins\/model-comparison-widget\/images\/portrait.jpg\" style=\"max-width: 40%; height: auto;\"> \n<img decoding=\"async\" src=\"https:\/\/latenitesoft.com\/blog\/wp-content\/plugins\/model-comparison-widget\/images\/product.jpg\" style=\"max-width: 40%; height: auto;\">\n<\/p>\n\n\n\n<p>Image generation times are also relevant. During our test period, the generation time for all models was fairly consistent, and didn&#8217;t vary by image or prompt complexity.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>OpenAI (High)<\/strong><\/td><td><strong>Gemini<\/strong><\/td><td><strong>Seedream<\/strong><\/td><\/tr><tr><td>80 seconds<\/td><td>11 seconds<\/td><td>9 seconds<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>OpenAI also has a quality setting, the images included here were all generated on High quality, but we also tested Medium, and those generations averaged 36 seconds. We can include the Medium quality images as well if there is any interest!<\/p>\n\n\n\n<p>There are a ton of photos to compare here, so to make things easier to flip through, here are some <strong>keyboard shortcuts<\/strong> to help you out: Click on a photo to see it larger. Now you can use the arrow keys to switch between models. Press the tab key to switch between test images. Hit ESC to leave the view.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"filters\">Classic filters<\/h2>\n\n\n\n<p>These are the types of filters that we used to implement manually, by painstakingly hand-crafting textures and Photoshop layers and then converting those to Objective-C code. Now all you need is a few words into a language model (and to burn down half of a rain forest or so; just the cost of progress).<\/p>\n\n\n\n<p>Our conclusion for this category is that for photo realistic filters like this, Gemini really shines by preserving details from the original and minimizing hallucinations, but often at the expense of the strength and creativity of the effect. Especially with photos of people, Gemini seems to refuse to apply any edits at all, with a strong bias towards photo realism.<\/p>\n\n\n\n<p>OpenAI really likes to mess with the details of the photo, giving a characteristic &#8220;AI slop&#8221; feel, which can be a deal breaker on things like human faces.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Grungy vintage photo<\/h3>\n\n\n<div id=\"lns-mc-widget-69fa0aaa7845d\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa7845d\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"grungy-vintage\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Use soft, diffused lighting<\/h3>\n\n\n<div id=\"lns-mc-widget-69fa0aaa7847c\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa7847c\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"soft-light\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Transform into a kaleidoscopic pattern<\/h3>\n\n\n\n<p>Gemini took some really odd shortcuts in generating some of these!<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa78489\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa78489\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"kaleidoscope\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Apply a heat map effect<\/h3>\n\n\n\n<p>It&#8217;s clear that none of the models actually have a concept of what generates heat here, aside from Seedream knowing that humans generate heat, clearly revealing that without any ground truth the models struggle.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa78495\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa78495\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"heat-map\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Make it look like a long exposure photograph<\/h3>\n\n\n\n<p>This is an interesting test since in some of the sample photos a long exposure doesn&#8217;t make sense. In the ones where it makes the most sense &#8211; the landscape and the car, OpenAI did the best, but on the other hand it completely messed up the cats and the product, and the portrait photo turned into a trippy art piece.<\/p>\n\n\n\n<p>Gemini, maybe logically, did nothing. Seedream liked adding light streaks as if a car drove past, with only the portrait photo seemingly making any sense.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa784a0\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa784a0\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"long-exposure\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Pinhole camera<\/h3>\n\n\n\n<p>In this case, it was funny to watch Gemini take a literal approach and generate actual pictures of cameras! For this reason we re-worked this prompt by just adding the word &#8220;effect&#8221;.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa784e5\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa784e5\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"pinhole\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Pinhole camera effect<\/h3>\n\n\n\n<p>Gemini liked to generate a literal pinhole camera here so we tried modifying the prompt.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa784f4\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa784f4\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"pinhole-effect\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Add a layer of fog or mist<\/h3>\n\n\n<div id=\"lns-mc-widget-69fa0aaa78500\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa78500\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"fog-layer\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Make it look like it&#8217;s golden hour<\/h3>\n\n\n<div id=\"lns-mc-widget-69fa0aaa7850a\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa7850a\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"golden-hour\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Make it look like it&#8217;s etched in glass<\/h3>\n\n\n\n<p>With this prompt, there is ambiguity in what &#8220;it&#8221; is, so we tried a reworded prompt as well. Only OpenAI consistently knew what a traditional etched glass effect looks like. Seedream&#8217;s glass item effect looks really cool!<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa78514\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa78514\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"etched-glass\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Make it look like the photo is etched in glass<\/h3>\n\n\n\n<p>Gemini has a really interesting interpretation here! And Seedream had some pretty fantastic results.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa7851d\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa7851d\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"etched-photo\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Remove background<\/h3>\n\n\n\n<p>This is a classic job people have spent their lives doing manually in Photoshop since the early 90&#8217;s. But what is a &#8220;background&#8221;, really? Is the ground in front of a car the &#8220;background&#8221;? We also retried this with a tweaked prompt.<\/p>\n\n\n\n<p>OpenAI&#8217;s &#8220;sloppification&#8221; of the details of objects makes it useless for this purpose.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa78539\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa78539\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"remove-bg\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Isolate the object<\/h3>\n\n\n\n<p>With the tweaked prompt, Gemini&#8217;s API actually returned a followup question: <em>&#8220;Which object would you like to isolate? There are two cats in the image.&#8221;<\/em>, which our generation script was not prepared to handle! So it is missing from this comparison.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa78542\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa78542\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"isolate\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Give it a metallic sheen<\/h3>\n\n\n\n<p>Another case where &#8220;it&#8221; is vague and we can retry with a more specific prompt. The product imagery is another case where Seedream created a really stunning result, even adding a reflection of someone taking the photo with their phone!<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa7854e\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa7854e\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"metallic\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Give the object a metallic sheen<\/h3>\n\n\n\n<p>Modifying the prompt here really only changed OpenAI&#8217;s interpretation.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa78557\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa78557\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"metallic-object\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h2 class=\"wp-block-heading\">Lens effects<\/h2>\n\n\n\n<p>One of the filter packs we had worked on for Camera+ using traditional methods was a lens effect filter pack. But unlike traditional edits, with generative AI you can also create wide-angle lens effects that can just make up the portions of the image that the camera couldn&#8217;t capture.<\/p>\n\n\n\n<p>This is another category where it&#8217;s very visible how OpenAI regenerates and hallucinates all the details in a picture, where Gemini and Seedream&#8217;s results are very faithful to the original and look more like actual lens permutations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Apply a fish-eye lens effect<\/h3>\n\n\n<div id=\"lns-mc-widget-69fa0aaa78560\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa78560\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"fish-eye\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Strong bokeh blur<\/h3>\n\n\n\n<p>It was pretty surprising how poorly the models did here considering how common this must be among the training data. OpenAI give a strong blur but no bokeh effects. Gemini gives us a bunch of random circles in front of the image, demonstrating an understanding of what people want out of a bokeh filter but not how it works. Seedream does really well here.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa78568\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa78568\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"bokeh\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Apply a Dutch angle (canted frame)<\/h3>\n\n\n\n<p>OpenAI really lost it&#8217;s mind here on the car photo.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa7858f\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa7858f\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"dutch-angle\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Change to a bird&#8217;s-eye view<\/h3>\n\n\n<div id=\"lns-mc-widget-69fa0aaa78598\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa78598\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"birdseye\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h2 class=\"wp-block-heading\">Style transfer<\/h2>\n\n\n\n<p>Style Transfer is the process of applying an artistic style to a photo. This technique predates the current AI model by quite a few years with popular apps generating Van Gogh paintings out of your photos. We were also early out in attempting style transfer for our apps, shout out to Noel&#8217;s Intel iMac which had to run at full blast all night just to generate a 256x256px image, since it was our only machine with a compatible GPU.<\/p>\n\n\n\n<p>While Gemini was good at preserving reality in the more photorealistic effects in the previous section, when it comes to the more artistic styles, OpenAI has them beat, while Gemini keeps things far too conservative, especially with photos of a human in them, where it sometimes seems to just do nothing at all, is this some kind of safety guardrail?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Draw this in the style of a Studio Ghibli movie<\/h3>\n\n\n\n<p>ChatGPT went viral with this prompt, with Sam Altman even making it his profile on X. And OpenAI keeps the crown &#8211; is Google too conservative in order to avoid a lawsuit? Seedream makes an attempt but they just end up looking like &#8220;generic Anime&#8221;.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa785a0\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa785a0\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"ghibli\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Transform into watercolor painting<\/h3>\n\n\n<div id=\"lns-mc-widget-69fa0aaa785a8\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa785a8\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"watercolor\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Make it look like a pastel artwork<\/h3>\n\n\n<div id=\"lns-mc-widget-69fa0aaa785af\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa785af\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"pastel-art\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Transform into Art Nouveau style<\/h3>\n\n\n<div id=\"lns-mc-widget-69fa0aaa785b9\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa785b9\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"art-nouveau\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Apply a ukiyo-e Japanese woodblock print style<\/h3>\n\n\n\n<p>A very stark example of Gemini failing to apply a style on photos with humans. This is a prompt where Seedream knocked it out of the park, perhaps showing a larger portion of their training data being sourced from asian cultures than the western models.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa785c3\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa785c3\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"ukiyoe\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Transform into low poly art<\/h3>\n\n\n\n<p>Seedream blows everyone else away here.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa785d2\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa785d2\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"low-poly\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h2 class=\"wp-block-heading\">Portrait effects<\/h2>\n\n\n\n<p>For prompts about human appearance, we have only applied them to the portrait photo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Make it look like a caricature<\/h3>\n\n\n\n<p>Seedream seems to be biased towards asian culture, giving an anime look instead of a western-style cartoon caricature.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa785df\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa785df\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"caricature\",\"photos\":[\"portrait\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Turn them into an action figure in the blister pack<\/h3>\n\n\n\n<p>OpenAI&#8217;s style here went viral a while back, but Gemini is stunningly realistic. Seedream is a weird mix of realistic and hallucinations.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa785ea\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa785ea\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"action-figure\",\"photos\":[\"portrait\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h2 class=\"wp-block-heading\">Generative edits<\/h2>\n\n\n\n<p>The place where generative AI really shines is when it can show off some creativity, and these were some prompts we added as suggestions in MorphAI to showcase that and inspire our users. OpenAI still seems to win here.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Create a 70\u2019s vinyl record cover<\/h3>\n\n\n\n<p>This is an example of a prompt that has a small viral moment with OpenAI, but the other models can&#8217;t even get the aspect ratio right.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa785f8\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa785f8\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"vinyl-cover\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Introduce mythical creatures native to this environment<\/h3>\n\n\n\n<p>This one showcases OpenAI&#8217;s creativity. Gemini seems kind of creepy?<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa78603\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa78603\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"myth-creatures\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Add a mystical portal or gateway<\/h3>\n\n\n\n<p>Gemini replacing the face with a portal is certainly a choice!<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa7860c\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa7860c\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"mystical-portal\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Incorporate futuristic technology elements<\/h3>\n\n\n\n<p>Another example of OpenAI being far more creative and willing to re-do the whole image.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa78616\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa78616\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"futuristic-tech\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Make it look whimsical and enchanting<\/h3>\n\n\n\n<p>This one also shows OpenAI being more artistic, and Gemini being more realistic while still trying to incorporate the prompt.<\/p>\n\n\n<div id=\"lns-mc-widget-69fa0aaa78620\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa78620\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"whimsical\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h3 class=\"wp-block-heading\">Transform the scene to a stormy night<\/h3>\n\n\n<div id=\"lns-mc-widget-69fa0aaa7862d\"><\/div>\n<script type=\"text\/javascript\">\n        window.lnsMcWidgetConfigs = window.lnsMcWidgetConfigs || [];\n        window.lnsMcWidgetConfigs.push({\"container\":\"#lns-mc-widget-69fa0aaa7862d\",\"root\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images\\\/\",\"root_orig\":\"https:\\\/\\\/latenitesoft.com\\\/blog\\\/wp-content\\\/plugins\\\/model-comparison-widget\\\/images_orig\\\/\",\"slug\":\"stormy-night\",\"photos\":[\"pets\",\"landscape\",\"portrait\",\"car\",\"product\"],\"models\":[\"openai\",\"gemini\",\"seedream\"]});\n<\/script>\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusion<\/h2>\n\n\n\n<p>If you made it all the way down here you probably don&#8217;t need a summary, but for our purposes, we&#8217;ve at least concluded that there is no one-size-fits all model at this point.<\/p>\n\n\n\n<p>OpenAI is great for fully transformative filters like style transfer or more creative generative applications, whereas Gemini works better for more realistic edits. Seedream lies somewhere in the middle and is a bit of a jack of all trades, and for the price and performance may be a good replacement for OpenAI.<\/p>\n\n\n\n<p>We&#8217;ve been experimenting on working on a &#8220;prompt classifier&#8221; to automatically choose a model &#8211; sending artistic prompts to OpenAI and more realistic prompts to Gemini, if there&#8217;s any interest we can follow up with how that worked out!<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Methodology<\/h4>\n\n\n\n<p>Tests were performed on October 8 with <code>gpt-image-1<\/code>, <code>gemini-2.5-flash-image<\/code> and <code>seedream-4-0-250828<\/code>.<\/p>\n\n\n\n<p>Timings were measured on a consumer internet connection in Japan (Fiber connection, 10 Gbps nominal bandwidth) during a limited test run in a short time period.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>tl:dr; We&#8217;ve been making photo apps for iOS for long enough that we have gray hairs now, and using our experience we ran over 600 image generations to compare which AI models work best for which image edits. If you want, you can jump right to the image comparisons, or the conclusion, but promise us&hellip; <a class=\"more-link\" href=\"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/\">Continue reading <span class=\"screen-reader-text\">We ran over 600 image generations to compare AI models<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":151,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-49","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.1.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>We ran over 600 image generations to compare AI models - LateNiteSoft Blog<\/title>\n<meta name=\"description\" content=\"We benchmarked OpenAI gpt-image-1, Google nanoBanana, and Seedream across 600+ real-world photo edits, see latency, cost, and quality by task\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"We ran over 600 image generations to compare AI models - LateNiteSoft Blog\" \/>\n<meta property=\"og:description\" content=\"We benchmarked OpenAI gpt-image-1, Google nanoBanana, and Seedream across 600+ real-world photo edits, see latency, cost, and quality by task\" \/>\n<meta property=\"og:url\" content=\"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/\" \/>\n<meta property=\"og:site_name\" content=\"LateNiteSoft Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-15T10:32:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-15T10:32:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/latenitesoft.com\/blog\/wp-content\/uploads\/2025\/10\/cats-hero.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1834\" \/>\n\t<meta property=\"og:image:height\" content=\"1168\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"lnsblogadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"lnsblogadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/\",\"url\":\"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/\",\"name\":\"We ran over 600 image generations to compare AI models - LateNiteSoft Blog\",\"isPartOf\":{\"@id\":\"https:\/\/latenitesoft.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/latenitesoft.com\/blog\/wp-content\/uploads\/2025\/10\/cats-hero.jpg\",\"datePublished\":\"2025-10-15T10:32:10+00:00\",\"dateModified\":\"2025-10-15T10:32:12+00:00\",\"author\":{\"@id\":\"https:\/\/latenitesoft.com\/blog\/#\/schema\/person\/ba1bb9c5cea1f5a3044badb655f70b6c\"},\"description\":\"We benchmarked OpenAI gpt-image-1, Google nanoBanana, and Seedream across 600+ real-world photo edits, see latency, cost, and quality by task\",\"breadcrumb\":{\"@id\":\"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/#primaryimage\",\"url\":\"https:\/\/latenitesoft.com\/blog\/wp-content\/uploads\/2025\/10\/cats-hero.jpg\",\"contentUrl\":\"https:\/\/latenitesoft.com\/blog\/wp-content\/uploads\/2025\/10\/cats-hero.jpg\",\"width\":1834,\"height\":1168,\"caption\":\"Screenshot\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/latenitesoft.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"We ran over 600 image generations to compare AI models\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/latenitesoft.com\/blog\/#website\",\"url\":\"https:\/\/latenitesoft.com\/blog\/\",\"name\":\"LateNiteSoft Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/latenitesoft.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/latenitesoft.com\/blog\/#\/schema\/person\/ba1bb9c5cea1f5a3044badb655f70b6c\",\"name\":\"lnsblogadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/latenitesoft.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/12283c22309e2288cb1afacf82f7f57318baffaaf1f32f70f88712de33825330?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/12283c22309e2288cb1afacf82f7f57318baffaaf1f32f70f88712de33825330?s=96&d=mm&r=g\",\"caption\":\"lnsblogadmin\"},\"sameAs\":[\"https:\/\/latenitesoft.com\/blog\"],\"url\":\"https:\/\/latenitesoft.com\/blog\/author\/lnsblogadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"We ran over 600 image generations to compare AI models - LateNiteSoft Blog","description":"We benchmarked OpenAI gpt-image-1, Google nanoBanana, and Seedream across 600+ real-world photo edits, see latency, cost, and quality by task","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/","og_locale":"en_US","og_type":"article","og_title":"We ran over 600 image generations to compare AI models - LateNiteSoft Blog","og_description":"We benchmarked OpenAI gpt-image-1, Google nanoBanana, and Seedream across 600+ real-world photo edits, see latency, cost, and quality by task","og_url":"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/","og_site_name":"LateNiteSoft Blog","article_published_time":"2025-10-15T10:32:10+00:00","article_modified_time":"2025-10-15T10:32:12+00:00","og_image":[{"width":1834,"height":1168,"url":"https:\/\/latenitesoft.com\/blog\/wp-content\/uploads\/2025\/10\/cats-hero.jpg","type":"image\/jpeg"}],"author":"lnsblogadmin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"lnsblogadmin","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/","url":"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/","name":"We ran over 600 image generations to compare AI models - LateNiteSoft Blog","isPartOf":{"@id":"https:\/\/latenitesoft.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/#primaryimage"},"image":{"@id":"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/#primaryimage"},"thumbnailUrl":"https:\/\/latenitesoft.com\/blog\/wp-content\/uploads\/2025\/10\/cats-hero.jpg","datePublished":"2025-10-15T10:32:10+00:00","dateModified":"2025-10-15T10:32:12+00:00","author":{"@id":"https:\/\/latenitesoft.com\/blog\/#\/schema\/person\/ba1bb9c5cea1f5a3044badb655f70b6c"},"description":"We benchmarked OpenAI gpt-image-1, Google nanoBanana, and Seedream across 600+ real-world photo edits, see latency, cost, and quality by task","breadcrumb":{"@id":"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/#primaryimage","url":"https:\/\/latenitesoft.com\/blog\/wp-content\/uploads\/2025\/10\/cats-hero.jpg","contentUrl":"https:\/\/latenitesoft.com\/blog\/wp-content\/uploads\/2025\/10\/cats-hero.jpg","width":1834,"height":1168,"caption":"Screenshot"},{"@type":"BreadcrumbList","@id":"https:\/\/latenitesoft.com\/blog\/evaluating-frontier-ai-image-generation-models\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/latenitesoft.com\/blog\/"},{"@type":"ListItem","position":2,"name":"We ran over 600 image generations to compare AI models"}]},{"@type":"WebSite","@id":"https:\/\/latenitesoft.com\/blog\/#website","url":"https:\/\/latenitesoft.com\/blog\/","name":"LateNiteSoft Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/latenitesoft.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/latenitesoft.com\/blog\/#\/schema\/person\/ba1bb9c5cea1f5a3044badb655f70b6c","name":"lnsblogadmin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/latenitesoft.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/12283c22309e2288cb1afacf82f7f57318baffaaf1f32f70f88712de33825330?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/12283c22309e2288cb1afacf82f7f57318baffaaf1f32f70f88712de33825330?s=96&d=mm&r=g","caption":"lnsblogadmin"},"sameAs":["https:\/\/latenitesoft.com\/blog"],"url":"https:\/\/latenitesoft.com\/blog\/author\/lnsblogadmin\/"}]}},"jetpack_featured_media_url":"https:\/\/latenitesoft.com\/blog\/wp-content\/uploads\/2025\/10\/cats-hero.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/latenitesoft.com\/blog\/wp-json\/wp\/v2\/posts\/49","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/latenitesoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/latenitesoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/latenitesoft.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/latenitesoft.com\/blog\/wp-json\/wp\/v2\/comments?post=49"}],"version-history":[{"count":105,"href":"https:\/\/latenitesoft.com\/blog\/wp-json\/wp\/v2\/posts\/49\/revisions"}],"predecessor-version":[{"id":162,"href":"https:\/\/latenitesoft.com\/blog\/wp-json\/wp\/v2\/posts\/49\/revisions\/162"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/latenitesoft.com\/blog\/wp-json\/wp\/v2\/media\/151"}],"wp:attachment":[{"href":"https:\/\/latenitesoft.com\/blog\/wp-json\/wp\/v2\/media?parent=49"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/latenitesoft.com\/blog\/wp-json\/wp\/v2\/categories?post=49"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/latenitesoft.com\/blog\/wp-json\/wp\/v2\/tags?post=49"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}