Linum Threw Away the Compressor Inside Their Image Model. The Detail Got Worse First.
Almost every image model you have used has two brains, and only one of them gets talked about.
The famous half is the generator. It gets the version number and the launch post. The other half is a compressor. Its job is to squeeze a picture down small enough for the generator to work on, then blow it back up at the end. It is trained separately, on a different task, and then frozen. Linum put it plainly in their write-up: you train the compressor first, then freeze it, and no learning signal ever flows from the generator back into it. The generator never gets to argue.
A small lab called Linum just shipped a 2.5 billion parameter image model with no compressor in it at all. The interesting part is not that it worked. It is what happened on the way.
The weights went up on September 14 under Apache 2.0, about as permissive as licences get. The write-up landed on the 16th, and it is unusually honest about the middle of the story.
The obvious move, and why it backfires
Take the compressor out. Let the model work on pixels and do its own squeezing, in a space built for making pictures rather than rebuilding them. That is a real argument and Linum make it: the compressed space everyone inherited was designed for faithful reconstruction, and nobody ever checked whether it was a good place to compose in.
So they built one without it. And the detail got worse.
This is where the write-up earns trust. Linum state it directly: models built this way are known to struggle with fine-grained detail, and their own tests confirmed it. Their first pixel-space model produced faces that looked airbrushed and colours that were pushed too hard. Cleaner in some ways, mushier in exactly the places you look.
So the headline version of this story, delete the compressor and your hair stops going soft, is wrong. I wrote a draft of this article that said something close to it before I went back through the source. The real sequence is: remove the compressor, watch detail degrade, then go find a different fix.
The fix is a division of labour
What Linum landed on splits the model into two halves with different jobs.
The first half predicts a 64 by 64 version of the picture. Shrink an image that far and everything fine is gone. What survives is structure: where things sit, roughly what colour, nothing more. That half is learning composition, and only composition, because composition is all that is left in the target.
The second half gets three things: that small sketch, its own look at the noisy input, and your text. Its job is detail. It never has to work out where the face goes, because the first half already settled that.
Block in the composition. Then render. That is not a metaphor I am imposing on the architecture; it is what the two halves are scored on separately.
Even that was not enough on its own. The first version of the split was, in Linum's own words, only 10 to 20 percent better. Two more changes got them the rest of the way: a change to how much noise the model sees during training, and small extra blocks that let the picture and the text settle before they mix. The write-up walks through all of it, including the ablations that went nowhere.
What the numbers say, and whose numbers they are
Against their own previous model, Linum report training this one in 3.6 times fewer GPU-hours, seeing 4.2 times fewer training images, and generating at four times the pixels: 512 by 512 out, where the old one made 256 by 256.
Linum's own numbers, against Linum's own baseline. Nobody outside the company has checked them. That is not an accusation, that is just what a same-week research release is.
And read what the claim actually is. Not that this beats the model you use today. That this way of building costs far less to train for a given quality, which matters enormously if you are a small lab and not much at all if you want a better model this afternoon.
What you actually get
A 9.95 GB file of weights. Pictures at 512 by 512. Fifty sampling steps. It needs a 4 billion parameter Qwen language model alongside it to read your prompt, which you download separately.
Running it is three moves: clone the repo, install it, call the generate script with a prompt and a seed. If you have set up a local image model before, nothing here will surprise you.
Code and weights are Apache 2.0, and the repo is ungated. No territory restrictions, no non-commercial clause, no access request. For anyone who has spent a morning reading a licence to find out whether they are allowed to sell the output, that is worth something on its own.
Put this into practice
Be clear about what this is for, because it is not a replacement for whatever you generate with now.
If you make pictures for clients, this is not your tool this week and probably not this quarter. 512 by 512 is a thumbnail. There is no post-training, which means none of the taste-shaping that makes a released model pleasant to prompt. Wait for Linum v3, which is what this is a step toward.
If you want to understand your own tools better, run it and do one specific comparison. Same prompt here and on a model you know well. Zoom to 100 percent on hair, fabric, foliage, anything with fine repeated structure. You are not asking which is better overall. You are asking whether the detail is a different kind of wrong. That is a question you can answer yourself in an afternoon, and it will sharpen how you read every future release.
If you train or fine-tune, the training efficiency claim is the whole point and the loss implementation is in the repo. Linum published this hoping other people would try the approach.
Whatever else you do, read the write-up. It is long and it is honest about dead ends. The section explaining why shrinking an image teaches a model about structure is the clearest account I have read of something most of us only know as a vague feeling about composition.
Where this breaks
It is half-finished and says so. The model card calls it "a research artifact, not a full model release," and notes it saw 138 million training images with no post-training afterwards. Take that at face value. Expect prompt-following that needs coaxing.
512 by 512, full stop. No upscaling path published, no higher-resolution version.
No hosted demo. You download 9.95 GB plus a language model, or you do not try it.
Nobody has touched it. The GitHub repo sat at zero stars when I checked, and still did when I checked again. No issues filed, no community workarounds, no thread where someone already hit the bug you are about to hit.
The efficiency claim is unreplicated. One lab, comparing against its own prior work. The reasoning is published in unusual detail, which is more than most releases offer. It is still not independent.
And detail remains the open problem. The two-half split plus the other fixes got them to a result they are willing to show. The write-up does not claim the problem is solved, and neither should anyone reading it.
What I keep thinking about
The useful thing here is not the model. It is the shape of the story.
Everyone kept the compressor because everyone kept the compressor. It arrived with the architecture that made image generation work, it was necessary then, and it stayed unquestioned long after. Linum questioned it, found it was not required, and then discovered that removing it broke something else that had to be rebuilt differently.
That is what real progress usually looks like, and it is almost never how it gets written up. The version that spreads is "we removed X and everything got better." The version that is true is "we removed X, three things broke, we fixed two of them."
There is a version of that question worth asking about your own process. What step are you still running because a tool you no longer use once required it? And if you pulled it out tomorrow, what else would fall over that you would then have to rebuild on purpose?
Worth knowing before you find out by accident.
Medium metadata
Title: Linum Threw Away the Compressor Inside Their Image Model. The Detail Got Worse First.
Subtitle: JiT-DDT is a 2.5 billion parameter text-to-image model with no separate compression stage, released under Apache 2.0. The honest version of the story is more useful than the headline.
Tags: AI Image Generation, Open Source AI, Machine Learning, Generative Art, Diffusion Models
Suggested read time: 7 minutes