Midjourney's flaw isn't the model. Stop writing better prompts.
Text prompts flatten AI image output toward the average and bury results in chat threads. Feeding models real references on a shared canvas fixes both.
Ask a creative director what they want and they will not answer in a paragraph. They will pull up three references, point at a corner of one of them, and say more like this, less like that.
Midjourney does not accept that. Neither does any other chat-based image tool. You get a text box, and you have to write your intent down in words.
That is the whole problem, and everything else follows from it.
Words are a lossy format for taste
A prompt is a compression of what you actually want, and most of what you want does not survive the compression. The light in that photo. The exact weight of that serif. The reason the Prada box feels expensive and the one next to it does not. You can write four hundred words and still not get it, which is why prompt engineering became a job.
Worse, everyone compresses the same way. Nobody has a private vocabulary for "cinematic" or "editorial" or "clean." So a thousand teams type roughly the same adjectives into roughly the same model and get roughly the same picture back.
Dylan Field, Figma's CEO, put the mechanism plainly on Lenny's Podcast in October 2025: the first thing AI gives you is generic by definition, because it is the average of everything it has seen. Text prompts are what keep you standing in that average. Merriam-Webster made "slop" its 2025 word of the year, defined as low-quality content produced in bulk by AI. This is where the bulk comes from.
There is data on what this does to a group. Anil Doshi and Oliver Hauser published a study in Science Advances in 2024 giving writers AI assistance. Individually, the assisted work scored higher. Compared against each other, the assisted pieces were noticeably more alike. Everyone got better and everyone got more similar at the same time.
What actually produces a good image
Not a better sentence. Better material.
A real brief is a pile of things: a reference shot, a competitor's packaging, a market report, a note someone wrote in a meeting about wanting the lighting to feel like a Seoul apartment at 6pm. When you can hand the model those objects instead of a description of those objects, the output stops drifting toward the average, because the inputs are yours and nobody else has them.
The other thing that happens is subtler. Assembling the references forces you to work out what you actually mean. Most people do not know what they want until they see two options next to each other and feel themselves preferring one. A text box does not give you that. A wall of your own material does.
Then the tool throws the work away
Say you got a good image. Where is it?
It is in a chat thread, below forty other attempts, above sixty more. The thread is yours alone. Nobody else on the team can see it.
Consider what is in those hundred images. The version that was almost right but too warm. The one that failed in an interesting way. The direction the team explicitly killed, which somebody will inevitably propose again in three weeks because there is no record that it was ever tried. All of that had value, and all of it is now scroll history in one person's private account.
Chat is a bad container for visual work for the same reason it is a bad container for decisions. It is a line. You cannot put a line side by side with itself. To compare two images in Midjourney you scroll, hold one in your memory, scroll back, and pretend you are comparing. You are not. You are remembering.
Teams end up doing what teams always do when a tool fails them. Somebody screenshots the good ones into a Slack message. Somebody else downloads them into a folder called final_v2. And within a week nobody knows which of the four versions in that folder is the one everyone agreed on.
What we built instead

In ALLO, generation happens on the canvas, so the two problems collapse into one fix.
You select the objects you want the model to use. A reference image, a competitor packshot, a research doc, a sticky note with a half-formed idea, all of it already sitting on the board because that is where the project lives. The prompt is assembled from real material instead of typed from memory. The model gets your specifics, not your adjectives.
The output lands on the canvas next to the things that produced it. Not in a thread. Not in a folder. It sits there as an object, versioned, and you can put it beside the other five and actually look at them together, which is the only way anyone has ever chosen between images.
Then it keeps going. A note becomes a research doc. The doc becomes an infographic. The infographic becomes a product shot. Someone drops a sticky note that says this could work like a personality test, and that becomes a landing page. Each step is grounded in the ones before it, and the whole chain stays visible, so a month later you can see not just what the team made, but how it got there and what it rejected on the way.
And the board is shared. The forty images that did not make it are still there for the team to see, dimmed and set aside rather than deleted. That is what makes a decision defensible later, when a client asks why the campaign looks like this and not like the obvious thing.
Image models will keep getting better. The pictures they hand you will keep improving and will keep being the average of what everyone else is getting. The part that will stay hard is knowing what you want, showing the model something real, and picking the one that is yours.
FAQ
Why do AI-generated images all look the same? Because everyone describes what they want in similar words, and models return the most probable output for those words. Figma's Dylan Field calls the first result generic by definition. Feeding the model your own references instead of adjectives is what moves the output away from the average.
Why is Midjourney hard to use as a team? Generations live in a personal chat thread. The output is linear, so images cannot be compared side by side, and most of what a person tried is invisible to everyone else. The rejected attempts and the reasoning behind a choice disappear with the thread.
How do you get better results from an AI image tool? Stop trying to write a better prompt. Give the model actual material: reference images, brand assets, research, and the notes explaining the intent. Specific inputs produce specific output.
Where should teams keep AI-generated images? Somewhere the whole team can see them together, next to the brief and the references that produced them, including the versions that were rejected. A folder of downloads loses all of that context within a week.
Does ALLO generate images? Yes, on the canvas. Select the references and notes you want it to work from, generate, and the result lands as an object on the board next to its inputs, where the team can compare, comment, and choose.