Eight xkcd Strips and One Film, Billed to a Subscription I Already Had
Do you have Claude Code, OpenAI's codex CLI, GitHub Copilot CLI or Grok Build installed and logged in?
Then you have an API. Not the one you pay per token for. The one you already pay for by the month, sitting behind a coding agent that only wants to talk about your repo.
agentry is the proxy that takes the model behind one of those CLIs and serves it as an OpenAI-compatible endpoint on localhost. Last time I wrote about it, it let my scripts talk to GitHub Copilot, so I could enrich fifty thousand guitar tabs on a subscription, not a credit card. That post ended with the repo doing far more work than it was ever meant to.
Since then it grew three more backends and, almost by accident, image generation. Codex ships an image tool. Grok Build ships one too, plus image-to-video. agentry's job is to strip the tools off a coding agent and hand you the bare model, so the obvious move was to strip everything except the image tool and expose it as /v1/images/generations, /v1/images/edits and /v1/videos. Which I did, in September and on 5 October.
Then it sat there. agentry has eight stars and a README. A README does not show that the same face comes out of the model forty times in a row.
So I needed a demo, and there is one body of work every engineer on the internet already knows panel by panel.
The premise, and the part where I asked permission from nobody
xkcd is CC BY-NC 2.5. You may copy and adapt it, with credit, not for money. Is "redraw it with an image model as a demo for my proxy" within what Randall Munroe had in mind when he picked that licence? The licence text does not settle that. My position is the only one available to me: credit him on every image, in the footer, in the repo, in this post, and take it all down if he asks.
The dialogue is his, word for word, including the words the image model might have refused. The drawings are a cast I made: Cueball, Megan and Black Hat as a modern 3D-cartoon trio, two extras, and a character card for each. Nine strips were picked on the evening of 6 October. Eight became strips. One, #162 "Angular Momentum", became a film, because a woman spinning in a dark bedroom to slow the planet down is a shot list, not a panel.

The pipeline is the point, and it is semi-automated on purpose
I make my own daily comic with a tool called comic.py. A project is a folder: canon text, character cards, one markdown draft per strip. The script assembles the prompt, attaches the cards, calls an OpenAI-compatible endpoint, keeps every result with the prompt that made it, and opens a page in the browser where I click the run I want, or click a panel and type what is wrong. approve adds the header and draws the credit footer with Pillow, because lettering is the one thing I will not trust an image model with.
The only agentry-specific line in that whole tool is base_url = http://localhost:8770/v1.
"Semi-automated" is not an apology. The human in the loop is one click per strip and one sentence per bad panel. That is cheap enough to do every day and expensive enough that nothing ships unseen.
The numbers
Measured on 6 and 7 October, Windows 11, agentry 0.2.0, the same drafts and the same cards through both backends.
| codex via agentry | Grok Build via agentry | |
|---|---|---|
| One strip, four to five panels, one call | 75 to 90 s | about 30 s |
| Identities held, one call | 8 of 8 strips | 2 of 4 panels |
| One strip, one call per panel, stitched | not needed | 2 min 13 s, 5 of 5 panels |
| One 2:3 key frame | not used | 29 to 56 s |
| One 6 s clip, 480p | no video tool | 37 to 48 s |
Seven of eight strips were right on the first codex run. The eighth needed one panel redone because the two characters had swapped sides. 705, "Devotion to Duty", came out like this on the first try, with Black Hat cast as the sysadmin because the original's alt text says that kind of devotion "can border on the sociopathic":

Ask Grok for a whole strip and it swaps roles between panels. Panel 1 right, panel 2 right, and by panel 4 Cueball is wearing Megan's top. Ask for one panel at a time, with panel 1 sent back as a style reference, and it does not. That became a --panels flag. The rendering drifts toward photoreal unless the style is stated three times in three ways, which is a trick I learned making films with it, and it works for strips too.
The film
Nine shots, each with a prompt for the key frame and a prompt for the movement. Key frames came from Grok with the two cards and an empty bedroom as a room reference, which is how you keep the same window in every shot. Clips came from Grok's image-to-video at six seconds a piece, cut to length, with a still and a slow zoom for the two shots that did not need motion. The subtitles fall out of the same script as an .srt. Voices are xAI's text-to-speech, one preset for her and one for him, placed at the subtitle times with ffmpeg.

Shot 3. The line is "Spinning counterclockwise." Grok Build's first take spun her clockwise. The second take kept her face locked on the camera while her body rotated, which is a scene from a different film. The third spun her clockwise again. The same key frame and the same prompt through xAI's API directly, on their cheapest video model, spun her the right way at the first attempt. 19 seconds, 12 cents.

So that one clip is the API's, and the film says so. Everything else in it is agentry on a subscription.
What did not work, so you do not have to
- "Counterclockwise" in a video prompt is read both ways. Say "she turns toward her own left, right shoulder toward the camera".
- "Turns on the spot" can lock the head. Say that the face turns away and comes back.
- A key frame of "the window alone" drew a different window. Say what must not be in the frame, or the model fills it from the room reference, empty bed and all.
- A card for a character who is not in the panel invites them in. Send cards only for the people named in that panel.
- Speech bubbles are read top to bottom. The first line must sit higher than the reply, or the joke runs backwards. Image models do not know this. Tell them.
Before you clone it
Two subscriptions were used, ChatGPT for the strips and SuperGrok for the film. That is taste: I like the look of codex's images better. One subscription does the whole job; Grok draws strips panel by panel, and the proof is in the repo next to the codex version of the same strip.
The API key was used twice: the one clip, and the voices, because agentry does not expose a speech endpoint. For a weekend film the API is also cheaper than the subscription, by a factor of two to four. A weekend film is about 60 seconds of clips and 40 images, which is a few dollars on the API against a 399 kr month. The subscription wins only if you burn the whole weekly quota, which I came close to once, debugging.
Grok's video tool through agentry has a six second floor and needs the account's training opt-in switched on, which is account-wide. The API has neither problem. These are the things a demo built on "no API key" has to say out loud.
The Grok strips do not look like the codex strips. For a demo whose point is "same cast, two backends" that is fine. For a series it would not be.
The repo, and an installer for my brother
github.com/aweussom/agentry-demo has the tool snapshot, the project, the strips, three cuts of the film, and the originals beside them. MIT for code, CC BY-NC 4.0 for everything that carries Munroe's work.
install-windows.bat is written for my brother. He is the smartest man I know and the easiest to confuse, which makes for long support calls. I like him more than I like most people, which is not a high bar, but it is the reason any of this exists: I learned to draw comics and make film with these models so I could help him with his, and Kona & Co, my own daily strip, started as the practice ground. The installer refuses to run from OneDrive or a long path, installs PowerShell 7 and Python if they are missing, fetches ffmpeg and agentry's latest release zip, makes a venv, and then checks whether codex or grok is actually logged in, loudly, with the command to fix it. demo.bat draws a strip and opens the picker. There is a keys.ini in the repo with no keys in it. The whole thing works from a zip unpacked to C:\.
Things I learned
- Continuity is cards plus canon sent with every request. A seed does not do it.
- When a model fails the same way three times, change the words. When it fails a fourth time, change the model and say so.
- Credit goes inside the image, drawn by code. Models cannot be trusted with the one line that matters legally.
Code: github.com/aweussom/agentry and github.com/aweussom/agentry-demo. Strips after xkcd by Randall Munroe, CC BY-NC 2.5. If he objects, they come down.
Disclosure: a bot wrote this. The proxy, the pipeline, the drafts, the three wrong spins and every number are mine; the sentences were drafted by Claude Code from my notes and the repo, then argued with until they sounded like me. The strips were drawn by two other models, which makes this post a committee of four about a man who says he is not a developer.
The author is a Systems Specialist who does not work in software development. He now owns a comic pipeline, a video pipeline, a proxy with four backends and a release process, all so he could help his brother. He is not sure how this happened but he is keeping it.