<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 啦啦啦种太阳</title>
    <description>The latest articles on DEV Community by 啦啦啦种太阳 (@createsun).</description>
    <link>https://dev.to/createsun</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4240423%2F030499bf-eb84-4a73-ac7e-0768e2bba817.jpg</url>
      <title>DEV Community: 啦啦啦种太阳</title>
      <link>https://dev.to/createsun</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/createsun"/>
    <language>en</language>
    <item>
      <title>Exact text in an open-weight image model: what actually controls it</title>
      <dc:creator>啦啦啦种太阳</dc:creator>
      <pubDate>Thu, 12 Nov 2026 07:03:17 +0000</pubDate>
      <link>https://dev.to/createsun/exact-text-in-an-open-weight-image-model-what-actually-controls-it-pic</link>
      <guid>https://dev.to/createsun/exact-text-in-an-open-weight-image-model-what-actually-controls-it-pic</guid>
      <description>&lt;p&gt;Most image models treat lettering as texture. You ask for a sign that says "SATURDAY 2 PM" and you get something that reads like it, at a glance, from a distance. That is fine for a mood board and useless for a shop menu, a price tag or a poster someone has to print.&lt;/p&gt;

&lt;p&gt;We build &lt;a href="https://mossimage.dev/" rel="noopener noreferrer"&gt;MOSS Image Studio&lt;/a&gt;, a browser studio around OpenMOSS's MOSS-Image — a 5B open-weight model released under Apache 2.0 that was trained with text rendering as a first-class goal rather than an accident. While building the sample library for our own blog we have generated a few hundred images with it, mostly posters with real copy in them. This post is what we learned about the parts you control, and the parts you do not.&lt;/p&gt;

&lt;h2&gt;
  
  
  The model is only half of it
&lt;/h2&gt;

&lt;p&gt;Run the same weights through a sloppy prompt and you get the usual mush. The difference between "plausible sign" and "printable menu" comes from four things, in this order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The text is quoted, not described.&lt;/strong&gt; Write the lines you want verbatim, in
quotes, and label their role — &lt;code&gt;headline 'PRINT CLUB'&lt;/code&gt;, &lt;code&gt;line 'SATURDAY 2 PM'&lt;/code&gt;, &lt;code&gt;footer 'STUDIO BASEMENT'&lt;/code&gt;. Role words are ordinary language to the model; it will sometimes print them into the picture. Keep them plain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fewer, larger lines beat many tiny ones.&lt;/strong&gt; Five lines at a readable size
render far more reliably than a twelve-line block of small type. If the layout needs dense type, expect to iterate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Position is a separate decision.&lt;/strong&gt; Describing "lots of empty space in the
upper third" is a suggestion; a layout box is a constraint. That is why we built a box editor: you place the text area on the canvas, and the model fills it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The scene sentence leaks.&lt;/strong&gt; Anything in the prompt is fair game for the
picture. Name a "café" and a café sign may appear with invented text on it. Remove the objects that carry unwanted writing instead of asking for their absence — "no signs" is a suggestion too.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  If you run it locally in ComfyUI
&lt;/h2&gt;

&lt;p&gt;ComfyUI ships templates for MOSS-Image, and the setup is the part people get wrong. The four text-to-image templates load the instruction-tuned SFT checkpoint, &lt;code&gt;moss_image_sft_int8_convrot.safetensors&lt;/code&gt;, at the documented settings (25 steps, CFG 2.5, the &lt;code&gt;er_sde&lt;/code&gt; sampler). The Base checkpoint &lt;code&gt;moss_image_base_int8_convrot.safetensors&lt;/code&gt; is a different model with different settings (50 steps, CFG 3, &lt;code&gt;euler&lt;/code&gt;) — pairing the wrong template with the wrong checkpoint is the most common reason people conclude the model "can't do text".&lt;/p&gt;

&lt;p&gt;Three files, three folders:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;diffusion model → &lt;code&gt;models/diffusion_models/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;text encoder &lt;code&gt;qwen3.5_9b_w4a8_gptq.safetensors&lt;/code&gt; → &lt;code&gt;models/text_encoders/&lt;/code&gt;,
loaded with &lt;code&gt;CLIPLoader&lt;/code&gt; of type &lt;code&gt;moss_image&lt;/code&gt; (not &lt;code&gt;qwen&lt;/code&gt;, not &lt;code&gt;flux&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;VAE &lt;code&gt;flux2-vae_small.safetensors&lt;/code&gt; → &lt;code&gt;models/vae/&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full walkthrough with the templates is in our &lt;a href="https://mossimage.dev/blog/moss-image-comfyui-guide" rel="noopener noreferrer"&gt;ComfyUI guide&lt;/a&gt;. Local ComfyUI is the right answer if you want the weights on your own GPU and no per-image cost; it is not the right answer if you want to make one poster tonight.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it still fails
&lt;/h2&gt;

&lt;p&gt;Being honest matters more here than a feature list.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Long copy at small sizes.&lt;/strong&gt; Paragraphs, legal lines, dense price tables:
characters start to drift. Break them into separate lines or drop them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Languages outside training.&lt;/strong&gt; Latin and Chinese render well. Anything rarer
is a gamble; check every glyph before printing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistency across images.&lt;/strong&gt; Two generations of the same brief are two
different designs. If you need a series that matches, generate one and remix it in the box editor rather than re-rolling the prompt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Numbers in sequence.&lt;/strong&gt; A price list of six items will usually get the
numbers right per line, not in order of importance. Reorder and rerun.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What we would tell someone starting today
&lt;/h2&gt;

&lt;p&gt;Write the copy first, in a text file, before you open any tool. Decide how many lines it is and how large each one has to be. Then generate one image to see whether the model agrees with your plan, adjust the text (usually by cutting), and only then touch the scene. Most failed posters we see are copy problems wearing a rendering costume.&lt;/p&gt;

&lt;p&gt;MOSS Image Studio is an independent studio built on the open MOSS-Image model; it is not affiliated with OpenMOSS. If you want to try the prompts in this post without installing anything, the studio gives you three images without a card.&lt;/p&gt;

</description>
      <category>design</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
