100% Open Image Model Lets You Place Text With JSON — Transcript
Full transcript
- 0:00Okay, so all three of these images came
- 0:02out of a model that's just 5 billion
- 0:04parameters. It's open weight and most
- 0:06importantly, it's got an Apache 2.0
- 0:09license, meaning that basically you can
- 0:11do whatever you want with it. The
- 0:13model's called Moss image and in this
- 0:14video I'm going to go through some
- 0:15examples of what it can do, what it
- 0:17can't do, what its strengths are, and
- 0:19how you can use this very small model to
- 0:22produce really fantastic images out. So
- 0:25let's take a look at what you can
- 0:26actually get from a 5B image model
- 0:28nowadays. All right, so Moss image comes
- 0:32from Open Moss. This is the team that
- 0:34put out Moss TTS and the Mova video
- 0:36model. And this is their first image
- 0:38model. It came out last week. And
- 0:40basically under the hood, this is a 5
- 0:42billion parameter diffusion transformer
- 0:45that they trained from scratch. Now to
- 0:47get it to work, they're basically using
- 0:48the text encoder, which is Qwen 3.59B.
- 0:52So you've actually got a 9 billion
- 0:53parameter language model reading your
- 0:55prompt. And that prompt can be up to
- 0:56around 4,000 tokens. Older image models
- 1:00used much smaller text encoders. And
- 1:02that's a big part of why they struggled
- 1:04with long context and complicated
- 1:06prompts. Moss basically has two
- 1:08checkpoints here. There's a base model,
- 1:10which is really for fine-tuning and
- 1:12training LoRAs. And then there's an SFT
- 1:14model, which you can actually use to
- 1:16generate with. But like I mentioned in
- 1:17the intro, the big thing here is that
- 1:19this is all Apache 2, both the weights
- 1:23and the code. If you look at some of the
- 1:24other strong image models that I've
- 1:25looked at in the past, things like Qwen
- 1:27image, et cetera, while the weights are
- 1:29open, the licenses on those are not.
- 1:32They're often under a non-commercial
- 1:34research license. Things like Flux 3
- 1:37client is gated under the Flux community
- 1:39license. And often that just limits what
- 1:42you can actually do with this. This one,
- 1:44because it's Apache 2, basically you can
- 1:46do what you want. You can make money out
- 1:48of it. You can put it in your own
- 1:49products. And you can pretty much make
- 1:51any kind of images that you would want
- 1:52to do. Amazingly, both safe for work
- 1:55images and NSFW images as well. So out
- 1:58of the box, the model is actually up on
- 1:59Hugging Face already. It runs natively
- 2:02in ComfyUI, which I think most people
- 2:04are going to use. You can also use it in
- 2:06SG Lang and VLM Omni, which is basically
- 2:10how I'm running it here today. All
- 2:11right, so let's start with just general
- 2:13images. These are all on the SFT model
- 2:15at default settings. We've got 50 steps,
- 2:18and we've got a CFG, which is a
- 2:19classifier-free guidance of three in
- 2:22here. So, you'll notice that
- 2:23photorealistic portraits are really
- 2:25solid here. The skin and the details
- 2:27really hold up well. Product shots come
- 2:30out really nice and clean, and the
- 2:31model's perfectly good at generating out
- 2:33bouquet effects for the background, etc.
- 2:36And I'll talk about that as we go
- 2:37through. I also find that the lighting
- 2:39effects and lighting sources here, the
- 2:41model seems to handle those very well,
- 2:44both for realistic images, but also if
- 2:47you want to make something like a
- 2:48watercolor or some kind of artistic
- 2:51interpretation as well.
- 2:53Styles work, too. If you want to do
- 2:55something like anime or some particular
- 2:57kind of artist, etc., the model seems to
- 2:59be really good at being able to do that.
- 3:01Also, being able to set it to actually
- 3:03do different kinds of aspect ratios
- 3:06means that it's not just locking you
- 3:07into square images. You can really go
- 3:09into wide banners, sort of portrait
- 3:11phone wallpapers, and can do that with
- 3:14anything from about a quarter of a
- 3:15megapixel up to 4 megapixels. With what
- 3:18I would say is 1 to 2 megapixels is
- 3:20being the sweet spot there. So, the
- 3:22model can definitely make decent images
- 3:24for this model size. But I think the
- 3:26real reason to look at this model is
- 3:28text. So, we start with something
- 3:30simple. You'll see that just a single
- 3:32title, well, that's no problem. Three
- 3:35lines, title, date, venue for a poster
- 3:38or something, can handle that kind of
- 3:40thing really well. It also can generate
- 3:42the text both in English and Chinese for
- 3:45the same scene. And if you wanted to
- 3:46have something stylistic, like having
- 3:49something written on a chalkboard menu
- 3:50and stuff like that, it has no problems
- 3:52with doing things like that. Even for
- 3:54things like infographics, where you
- 3:56basically want to call out different
- 3:58steps, that kind of thing, this model's
- 4:00doing really well at this. And you can
- 4:02see if we look at these scores here, MOS
- 4:04image is scoring way above the other
- 4:07open models for this. In fact, it's only
- 4:09just behind fraction of Nano Banana and
- 4:13only a few percentage behind GPT image
- 4:15two. So, clearly at the lab's own long
- 4:17text benchmark, it's really doing
- 4:19fantastically well for one of the open
- 4:21models. I guess though, do keep in mind
- 4:23that that's their own benchmark. And so
- 4:26far, I haven't really found any
- 4:27third-party evals there. Now, that
- 4:29doesn't mean that it's perfect at text
- 4:31all the time. There are times that it's
- 4:33going to break if you push the limit to
- 4:35be too many words on a page, something
- 4:37like that. It can start to fall apart.
- 4:39And perhaps when compared to bigger
- 4:41models like the Korea 2 model, etc., you
- 4:43are going to find that perhaps this
- 4:44model is not quite as good. That said,
- 4:47it's got some really nice features just
- 4:49like those other systems have. So, the
- 4:51whole idea of sort of JSON layout. So,
- 4:54along with a regular prompt, you can
- 4:56give MOS image a layout where you
- 4:58describe the whole scene and then you
- 5:00list out elements, text or objects, each
- 5:03with a bounding box. And they basically
- 5:05train the model to respect this sort of
- 5:08layout JSON and the captions that go
- 5:10along with it. So, it seems to me that
- 5:12this is not something that's just bolted
- 5:14on afterwards. You've basically got the
- 5:16opportunity to have it where you can
- 5:19describe what it is that you want and
- 5:22then use JSON sort of bounding boxes to
- 5:25show where you actually want it on the
- 5:27actual image. This can be really cool if
- 5:30you've been trying to do things with
- 5:31in-painting in the past and you just
- 5:33haven't been able to get what you wanted
- 5:35where you wanted it, that kind of thing.
- 5:37And it's also kind of cool trick of how
- 5:40you can generate something and then look
- 5:42at the output and then decide, "No,
- 5:43actually I wanted that on a different
- 5:45part of the image." Now, the cool thing
- 5:47here, too, is that don't forget you can
- 5:48get an LLM to actually write that JSON
- 5:51out. So, you can go from a very
- 5:53descriptive brief to have an LLM
- 5:55actually write out the prompt with the
- 5:58JSON to then have MOS image actually
- 6:01generate this in a pipeline. And they've
- 6:04got their own layout prompt enhancer,
- 6:06which you can play around with and does
- 6:07exactly that. All right, so what does
- 6:09the model not do? Well, first off,
- 6:12there's no editing here. You cannot put
- 6:15in image to image here. You can't do any
- 6:17sort of editing of images. It's purely
- 6:19text to image. You can do sort of stuff
- 6:22like the standard in painting in
- 6:24ComfyUI, but that's pretty much about
- 6:26it. You're not going to be able to do
- 6:28something where you take a real-world
- 6:29photo and then edit it, like you can
- 6:31with Nano Banana and Quant Image Edit,
- 6:33etc. And who knows, maybe that's going
- 6:35to be the next model that they actually
- 6:36release, which would be pretty cool to
- 6:38see, especially if that's also Apache 2.
- 6:40Now, one of the cool things is because
- 6:42they've given you the base model, we can
- 6:43actually do sort of LoRAs and fine-tunes
- 6:46ourselves to actually get very specific
- 6:49styles or get certain people in there,
- 6:52that kind of thing. Now, at the time I'm
- 6:54recording this, I'm not sure all the
- 6:55code examples are out for that, but I
- 6:58imagine that's something that the
- 6:59community is going to be able to work
- 7:00out themselves as well. Out of the box
- 7:02itself, it's pretty slow at these stock
- 7:04settings. You're about 50 steps there,
- 7:07and I imagine if you're doing all of
- 7:09this with a smaller, older GPU, it is
- 7:11going to take time for you to generate
- 7:13that out. Now, that said, I think the
- 7:15community has already released some
- 7:17distillations of this and modifications
- 7:20for versions that you can run in
- 7:21ComfyUI. I wouldn't be surprised that we
- 7:24actually see a sort of turbo version of
- 7:26this, and I think the community will put
- 7:28out a lot of different versions of this.
- 7:30In just under a week, the community has
- 7:31already put out like an eight-step and
- 7:33four-step LoRAs, quantized versions, and
- 7:36even a full fine-tune on the base model.
- 7:39Not to mention that the Most team
- 7:40themselves have said that they're
- 7:42actively working on a few-step
- 7:43distillation. So, that itself might even
- 7:46lead to an official turbo version on the
- 7:47way. So, let's take a look at some of
- 7:49the images you can actually do with this
- 7:51in this little demo that I've created.
- 7:53Okay, so if we come into this sort of
- 7:55gallery app that I built here, just go
- 7:58through and show you a number of
- 8:00different things in here. First off,
- 8:02you've got lots of things that you can
- 8:03generate. Now, obviously, you can
- 8:04generate with text. The big issue is
- 8:07that sometimes the text is going to
- 8:09work, sometimes not. The way to actually
- 8:11make it work is to use layout control.
- 8:15So, you see that something like this, I
- 8:17basically had in there as just a
- 8:19straight-up generation where I'm not
- 8:20guiding it in any way, and it will start
- 8:23to get different parts of the text wrong
- 8:26over time. Whereas, if I come in and do
- 8:28something like this, you can see here
- 8:31I've basically got different layout
- 8:33boxes. So, I can actually draw a box and
- 8:37then fill it in. Right? So, this is
- 8:40using the JSON generation in here. Once
- 8:43I I've put it in there, I can then
- 8:45basically tell it what do I want to
- 8:47appear in that box. We've got, you know,
- 8:50a whole bunch of different things. If
- 8:51you want to Let me just turn on the
- 8:53turbo version. So, this is going to be a
- 8:54bit quicker. We can go even deeper in
- 8:57here. So, you can see here we've
- 8:58basically got the actual layouts there.
- 9:02If we want to change, you know, the
- 9:03couch, we could come in and just change
- 9:05the color in here. We can change it
- 9:08here. I can then click generate, and
- 9:12you'll see now we'll get a green couch
- 9:13instead of a red couch there. We can
- 9:16also do things like we can change, you
- 9:18know, things on the the poster at the
- 9:20back there. If I generate that now, we
- 9:23should see we're going to get Ready
- 9:25Player One instead of just Player One
- 9:28there. And so, this is sort of the key
- 9:30way if you want to actually play with
- 9:32text, you want to actually control where
- 9:34it's going to appear, and that also
- 9:37seems to make the text a lot more
- 9:38accurate in here. Not just text though,
- 9:40we can also change, you know, the cat to
- 9:42a tiger. Let's see how that's going to
- 9:44come out. And you can see now we've got
- 9:47our tiger. Now, we will find sometimes,
- 9:49you know, things like that changed, you
- 9:50know, him to putting the hoodie on. And
- 9:52so, if we had something really specific
- 9:54that we wanted, we would basically go
- 9:56through and tell it, "Okay, change these
- 9:59different things." We would go through
- 10:02and actually tell it to not put the
- 10:04hoodie on his head, keep it at the back,
- 10:06or something like that. We can also do
- 10:08really nice sort of styles and effects
- 10:11in here. So, these are just straight out
- 10:13of the model, no sort of Laura
- 10:15pre-trains or anything like that, and it
- 10:17does a really nice job of those. It can
- 10:19also do things like in-painting, so you
- 10:21can see here we've got the same picture,
- 10:23we're just changing what's going to
- 10:25appear there. And you can see in this
- 10:27case the books got cut off, but for the
- 10:30cat it works well, for the dog perhaps
- 10:32not as much. So, you do want to
- 10:33experiment with it. Back to the styles
- 10:36here, it really is able to capture some
- 10:38really nice styles of different kinds of
- 10:42pictures and stuff like that. You can
- 10:44then basically use Laura's with it. So,
- 10:46one of the Laura's that's already been
- 10:48made is this eight-step Laura. So, this
- 10:51just speeds up generation. So,
- 10:54generation without it for me is around
- 10:57about 30 seconds, but if I use this,
- 11:01let's just come in and remix this. If I
- 11:03use this and I actually put on this
- 11:05Laura here, I can actually come in here
- 11:08and change that. So, we had him wearing
- 11:11a yellow top now, we change it to
- 11:13basically an orange one. And you can see
- 11:15that that's generating a lot quicker now
- 11:18than 30 seconds. We've got the time down
- 11:20much quicker. So, you'll see in regards
- 11:23to sort of famous people, certain people
- 11:26it will know very well, for example,
- 11:28Brad Pitt, etc. it knows really well.
- 11:31But if I ask it to make a picture of Sam
- 11:33Altman, it really doesn't know who he
- 11:35is, right? For whatever reason, there's
- 11:37just not enough of him in the weights
- 11:39and stuff in it. You'll see that like
- 11:41each of these, it doesn't really work.
- 11:43But if I create a Laura, and you can see
- 11:45basically I've made a custom Laura of
- 11:48him here, trained up on not a huge
- 11:51amount of images, and probably not the
- 11:53best quality images, and actually many
- 11:55of the images when I scraped them were
- 11:57actually from things that he did when he
- 11:59was much younger at Y Combinator, etc.
- 12:01So, that's why they tend to come out
- 12:03looking a bit younger. But if you put
- 12:04the effort in, you can actually train up
- 12:06a Laura pretty quickly that will put
- 12:09someone into the photos, even though
- 12:11they weren't in the original training
- 12:13data set. Just to sort of compare that,
- 12:16this is one that I did with nano banana
- 12:19with him. And you can see that, yeah,
- 12:21okay, it's gotten better quality on
- 12:23certain things, but it still hasn't got
- 12:25his face perhaps as good as I would like
- 12:28here. And that's coming about here
- 12:30because we're not doing image editing.
- 12:32We're not conditioning on a picture of
- 12:34him to actually generate. We're actually
- 12:37generating from the weights of the model
- 12:39out there. So, that really shows where
- 12:41the weakness of this model is, is that
- 12:43because you can't do image editing, you
- 12:46either have to fine-tune through a Laura
- 12:48or something like that to actually
- 12:50inject a person or a topic or a style
- 12:53into the actual weights itself, rather
- 12:56than just using it in context and doing
- 12:59some kind of editing here. So, I do hope
- 13:01that they would go on to make a version
- 13:02of this that actually can do image
- 13:04editing and can condition on images, not
- 13:08just condition on text, etc. All right.
- 13:10So, if you need text-heavy images or you
- 13:13need things placed exactly where you
- 13:15want them, and you want a license that
- 13:17you can actually build a product on,
- 13:19this is really an interesting model for
- 13:21its size. If you need editing, yeah,
- 13:23it's not quite there yet. You'll have to
- 13:25wait for a newer model or a newer
- 13:26version of this as it comes. Anyway,
- 13:29I've put the links in the description.
- 13:30Let me know in the comments what you
- 13:32think if you're playing with this, what
- 13:34you're sort of noticing this to be good
- 13:35at, what you're noticing it to be bad
- 13:37at. As always, if you found the video
- 13:38useful, please click like and sub-
- 13:40scribe, and I will talk to you in the
- 13:41next video. Bye for now.
About this transcript
This page contains the full transcript of 100% Open Image Model Lets You Place Text With JSON by Sam Witteveen, generated from the public captions YouTube serves with the video. The transcript has 2,764 words across 380 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to choose a caption track available on the video.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, caption language selection, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.