Sutur

Blog · Behind the scenes

How we built our first 117 books, 3,114 pages, and the code that made them

What Sutur has made so far, in numbers, and the open-source pipeline behind it: how a book is made, what it took in machine time, and how to run it yourself.

· 5 min read

In short

  • Sutur now has 117 books and 3,114 pages online, by 24 authors in 14 genres, each with the original Arabic text beside the pictures.
  • The code that draws them is public: github.com/fr3on/sutur, folder pipeline/, MIT licence. The books are CC BY 4.0.
  • Honest limits: the making-of numbers cover 93 of the 117 books, we have no human-review rate yet, the voice task is not in use, and publishing to the site is guarded.

The numbers

Figures are from the live site on 23 October 2026. The making-of numbers cover 93 of the 117 books: we began recording how each book was made partway through, so the other 24 have no such record and every making-of total is a floor, not the whole count. "Pictures on disk" counts the candidates left when each book was published (the model draws several per panel and the best is kept). The 34.6 hours are 19.7 hours from the 66 books that kept a per-stage record plus 14.9 hours from 27 books that kept only a total.

The library today
published books
117
pages
3,114
character portraits
595
authors
24
genres
14
of PDFs
1,003 MB
How they were made (the 93 books with a making-of record)
panels
13,129
pictures on disk
40,453
words of original text
584,038
language-model calls
22,877
tokens used
24 M
of pipeline time
34.6 h
How big a book is
SmallestTypical (median)Largest
Pages93052
Panels (93 books)36158234

Pages include the cover, the behind-the-scenes page and the characters page.

How a book is made

The text is cut into panel-sized pieces. A 7B language model writes the characters and one drawing prompt per panel. An image model draws each panel, three candidates at a time. Two checks look at every picture: one finds words drawn by mistake, one is a vision model that flags what a reviewer would reject. Flagged pictures are redrawn. Then code, not the model, sets the Arabic lettering in a real font, builds the pages, the characters page, the cover and the PDF.

In the pipeline each of those steps is a task, thirteen in all, and a runner puts them in order for a volume. A review task works in rounds: judge, set the flagged pictures aside, redraw, judge again.

The small model that writes the prompts

The language model is the cheapest step and one of the most important. It took 1.4% of the machine time, but it decides what every picture shows. For each panel it gets the passage, the passage before it and the list of characters with their written looks, and it answers with one sentence of 20 to 40 words: who, where, doing what, the shot and the light.

Over the library that was 22,877 calls and about 24 million tokens, roughly 1.7 calls and 1,800 tokens per panel. A 7B model makes mistakes, so most of the work is around it: a character tag is kept only if the passage names that character; words that make the drawing model paint speech bubbles, signs, phones or glasses are removed; and a list of rules written from our reviews goes into every request (how hands and held objects should look, that talk is shown with posture and never with bubbles, that nudity appears only where the passage calls for it and is never explicit).

It still gets things wrong, so the code checks its work: a role written in English is translated by a second call, a character whose Arabic name is not plain Arabic is dropped, and a tag for a character the passage does not name becomes "a figure". For the Nights volumes the cast was wrong enough that we rewrote all of it by hand against the text.

What it takes to run

We run it on one GH200 card with 96 GB: two copies of the drawing model, a 7B text model and a 7B vision model share it (about 86 GB in use). A short story of 64 panels, 11 pages and 192 pictures went from raw text to a PDF in about five minutes (308 seconds).

You can start without a GPU: the tests run anywhere, and a dry run shows the plan for a volume before anything is drawn.

Where the machine time went (minutes, share of the total)
  • Drawing480 min · 40.6%
  • Vision review322 min · 27.2%
  • Text scan301 min · 25.5%
  • Character portraits50 min · 4.3%
  • Planning (language model)17 min · 1.4%
  • Assembling pages8 min · 0.7%
  • Cover2 min · 0.2%
  • PDF2 min · 0.1%

Counted over the 66 books that kept a per-stage record: 19.7 hours in all.

How good are the pages?

We don't have a score for it, so here are the pages themselves.

Four pages, as published

The first story page of each book, not picked for being the best.

Character consistency is the hard part. The drawing model has no face reference, so a character stays the same only because the same written description goes into every panel where they appear. In the grid, the long dark hair and the light peasant blouse hold; the hairstyle, the face and her apparent age vary.

One character across the test volume
  • Six panels of the same girl in the test volume: long dark hair and a light blouse in each, but the hairstyle, the face and her apparent age differ from panel to panel

    Six of the 48 panels that name the main character of the test volume (every eighth one, not selected).

What we have not measured is how often a person has to change something. A person looks at the books, in practice after they are on the site, and we have redrawn and republished volumes when a review found a systematic fault (once the cause was a line in the prompt that made the model draw phones and cars). We keep no count of changes per volume, so there is no review rate to quote yet.

What we checked, and what we did not

Drawn pictures are not reproducible across server copies: the same prompt and seed give the same picture on one copy of the drawing model and a different one on another copy. Everything after the pictures is: given the same pictures, the lettering, the layout and the page assembly give the same pages, pixel for pixel.

Not done: the spoken-caption task exists, but the open Arabic voice we tried read the vowels and accent wrongly, so we don't use it. And the new publish task has been tested with a stand-in server, not against sutur.ink.

What is open now

The whole pipeline is in the repository: the tasks, their tests, the documentation for setting up the GPU server, and a diagram of the stages. The tests need no GPU, and GitHub runs them on every push that touches the pipeline.

The reader site is not in the repository yet. Publishing to the site is deliberately guarded in the code: it only runs with an explicit yes, and the production host is never written into it.

Tech notes

  • Books117 published, 3,114 pages, 24 authors, 14 genres
  • Making of (93 books)13,129 panels, 40,453 pictures, 584,038 words, about 34.6 hours of pipeline time
  • Codegithub.com/fr3on/sutur, folder pipeline/, MIT
  • LanguagePython 3.12, Pillow is the only dependency, 84 tests
  • Hardware we useone GH200 (96 GB): Z-Image-Turbo x2, Qwen2.5-7B-Instruct, Qwen2.5-VL-7B-Instruct

Try it yourself

  1. Clone github.com/fr3on/sutur and install the folder: pip install ./pipeline.
  2. Run the tests, which need no GPU: python -m unittest discover -s tests -t . inside pipeline/.
  3. Point it at your own servers with GPU_URLS, VL_URL and LLM_URL.
  4. See the plan for a volume before anything is drawn: sutur-pipeline --root comic run BOOK VOL make --dry-run.
  5. Publishing needs --yes and a host you give it yourself.
How we built our first 117 books, 3,114 pages, and the code that made them · Sutur