alt.hn

5/21/2025 at 1:12:30 PM

Building an agentic image generator that improves itself

https://simulate.trybezel.com/research/image_agent

by palashshah

5/21/2025 at 1:35:49 PM

This is great and provides a good starting point for any similar efforts.

However I think the temptation to lean all tasks on AI is perhaps a little naive if not lazy.

For mask generation, there is really not much reason to use AI. In this example, simple stochastic blob detection, a trivial function you could get from openCV or ask a college sophomore to write would generate much better quality masks.

by elif

5/21/2025 at 2:40:48 PM

totally agreed here. i think my goal primarily with the mask generation was to test out how effective openai's capabilities were.

we're currently working on pipelines that limit the the involvement of AI to various tasks. for example, when generating an ad there's usually logo, some banner text, and background image.

we can use gpt-image-1 to generate the background image, another LLM to identify the coordinates of where we place the logo, and just add the logo onto the image. this is just one example!

by palashshah

5/21/2025 at 4:58:42 PM

Why do you agree? I think we should outsource as much as we can to abstraction. We've been doing it forever.

by jackphilson

5/22/2025 at 12:35:56 AM

"Simple stochastic blob detection" is an abstraction. You write (or import) a function where the the gnarly logic lives and call `detectBlobs()`. "Use an abstraction" doesn't mean you should use the same abstraction for every task, you should use the right tool for the job.

by dandelany

5/21/2025 at 1:32:23 PM

I'm surprised you landed on using o3 as the judge - we found it way too expensive. I use llm as a judge for generating color variations of products, definitely hoping for some improvements - it can be brutal to get non hallucinated features along with proper final rendering.

by shmoogy

5/21/2025 at 2:37:03 PM

Have you tried open weights vision models such as Qwen VL, MiniCPM, PaliGemma...?

I'm also curious how usable are simpler vision models such as Florence in case you explored this direction.

by omneity

5/23/2025 at 7:03:25 PM

I actually haven't but nova from Amazon was surprisingly good at things like bounding boxes compared to some others You kind of have to test and measure so many different aspects to get the best at specific tasks Thanks for the idea

by shmoogy

5/21/2025 at 2:57:07 PM

we're currently in the process of doing this. i think something that could potentially work is to iterate upon the initial image composition / structure using cheaper models, and then upscale at the end. this way you're saving on that iteration cost, but eventually land on a higher-scale image.

by palashshah

5/21/2025 at 3:44:27 PM

Nice retrospective but I guess this process is no longer needed as model's get better; esp as they start enabling features like consistent subjects. Seems like a lot of overhead to correct text for inspirational images, but I can imagine you need to always present some form of _quality_ to your clients.

Feel like control nets and some minimal photoshop work would've been better.

by ramoz

5/21/2025 at 4:57:24 PM

totally. it got to a point where most of the text generated in our images was incorrect, and so it wasn't a great look showing that to our clients.

we're actually working on some form of what you described where we take images generated from LLMs + add consistent logos discretely rather than generatively.

by palashshah

5/21/2025 at 4:27:18 PM

I was kind of hoping this would be in the 'Dreambooth mold' of finetuning open weights models. I have used that with some success some ~2 years ago, does anyone know what improvements there have been in that direction since Dreambooth?

by t_mann

5/21/2025 at 1:30:23 PM

This is a wonderful writeup of building a simple agentic system in general. What OP describes is more or less the bare minimum you should be doing at this point to get good (consistent) results from an LLM; single-shot prompting is a thing of the past.

by ramesh31

5/21/2025 at 2:49:45 PM

appreciate the compliment! yep, it's definitely necessary and is the bare minimum for building image generation systems in production.

by palashshah

5/22/2025 at 2:32:22 AM

This is all edited with gpt-image-1? The revised images are amazing. Were example logos provided or is it just working off of it's knowledge of a well known brand?

by jacob019

5/21/2025 at 3:21:51 PM

Again another example of "the unreasonable effectiveness of LLMs in a loop". At with time, the tasks for loop become bigger and more complex, until we find ourselves "outlooped" at least job wise.

by mentalgear

5/21/2025 at 1:18:58 PM

Quite interesting, do you have some documentation of your platform and capabilities? Your landing page is quite synthetic

by average_r_user

5/21/2025 at 3:10:06 PM

hey! we're working with an initial set of customers, and plan to launch full capabilities soon. stay tuned :)

by palashshah

5/21/2025 at 4:09:23 PM

Palash this is a great post, I learnt a lot as an image gen noob! Keep writing more :)

by abshkbh

5/21/2025 at 4:48:32 PM

this is incredible to hear! i plan to keep writing on a weekly basis, and will be posting them on twitter.

by palashshah

5/21/2025 at 4:44:54 PM

It's frankly amazing to me that "ask another LLM to evaluate the image" actually produces useful feedback that results in actual improvement from the first LLM.

But then, I guess it's not much different of an idea from the earlier use of GANs, or of telling LLMs to "stop hallucinating", etc.

by zahlman

5/21/2025 at 4:55:41 PM

totally. the way i think about it (purely based on intuition) is that asking an LLM to do understanding + image generation is too complex for it to be effective. if we separate out the tasks into discrete steps, the evaluation becomes better, and the generation simply becomes instruction following.

by palashshah

5/21/2025 at 1:25:53 PM

[dead]

by fratimo66

5/22/2025 at 3:39:29 AM

[flagged]

by nnjnj