acue
A terminal launcher for the image and music servers on your own graphics card, Forge Neo and ACE-Step, and a pipeline that turns prompt files into an illustrated book with a soundtrack.
- Status
- In daily use; not packaged yet
- Licence
- Business Source License, GPL-3.0 from 1 May 2033
- Built with
- ACE-Stepamber-acueamber:tuiCUDAForge NeoOdin
- Part of
- Acue Media
- Source
- acue
acue is a terminal launcher for the generation servers that run on your own
NVIDIA card. Pick a model, see what is on disk, adjust the settings that matter,
start the server that runs it, and drive it over its API without leaving the
terminal. Forge Neo serves pictures; ACE-Step 1.5 serves music. The clip above
walks through its panes by number (Audio, Image, Launch, Profile, Downloads) and
ends on the Doctor. Short animated clips come from an animator on another
machine, which acue attaches to and never starts.
The name is the extension of the books it makes, .acue, and Latin for
“sharpen!”, from acuere, to sharpen or to rouse. It also names the
Acue suite it belongs to.
acue does no inference of its own. Forge Neo and ACE-Step are separate
checkouts, set up by their own instructions; acue starts them as child
processes, talks to their local APIs over HTTP, and reads what they produce.
Since it drives whatever checkout sits beside it, it is also how a nightly Forge
Neo or ACE-Step commit gets tried: pull, start, generate, and the Doctor pane
says what the build, the drivers and the card are doing.
Underneath the panes it is a tool for exploring image models: the same prompt through four checkpoints, or one checkpoint through four settings, with the seed pinned so the only thing that changed is the thing you changed. The video further down is one way of looking at the result; the proof is the other.
Books
The other half runs unattended, and it is the half that draws Amberlin. A folder of prompt files becomes a folder of pictures. A small book file beside them turns one city’s four daytimes (morning, lunch, afternoon and evening) into a single bundle: the panels, an original theme for the first segment with covers of it for the rest, and a record of which model and which builds made it, with an mp4 of the pictures cut to the music beside it. The bundle is the unit of work afterwards. Unpack it, edit one story line or the book, and a flag redoes only the panels whose lines changed, or only the soundtrack.
acue --prompts krea2 --book # one book per prompt file, or per city
acue --rebuild amberlin-in-paris.acue # unpack it beside itself, edit the book
acue --rebuild amberlin-in-paris.acue --audition # the first track only, to listen to
acue --rebuild amberlin-in-paris.acue --audio # the soundtrack and video again

Amberlin in Berlin, morning. One panel of twenty-four in that file.

The same day, evening. Same character, same braid and satchel, later that day.
A folder of prompts
A prompt file is a story in three layers, and every picture in a book comes from one. This is the top of the Berlin morning file that drew the panel above, shortened:
--seed 8101
--width 1216
--height 832
--title Amberlin in Berlin · Morning
--avoid "text, lettering, words, signage, watermark, extra fingers, lowres, blurry"
--style
single full-bleed illustration, soft anime style, clean linework, muted
palette, warm painterly light, a young woman in her mid twenties, copper-red
hair in a short plait over one shoulder, a cream ribbed jumper, an olive
corduroy skirt, knee length, a mustard-yellow raincoat, dark green canvas satchel
on a long brown strap
--style --end
--comment SCENE 1 — arriving. Alone, dwarfed by the street.
--description Amberlin arrives in Mitte
--scene the old centre of Berlin at first light, wet grey pavement, tall stucco facades, tram wires overhead
--image wide shot from behind, she stands at the mouth of a long empty street, satchel held in both hands
--image she stops where two streets meet and looks down each in turn, uncertain
--image low angle, she walks under tram wires, the facades leaning above her
--image close shot, she folds a paper map badly, the wind taking one corner
--image she stops at a bakery window still shuttered, her reflection faint in the glass
--image wide shot, she sits on her satchel on a kerb to wait, ankles crossed
The look layer is the style and the cast, and it never changes. A scene is the
place and the hour, and it changes when the story moves. An image line is one
drawable instant, and there is one per panel. acue composes each request as
look, then panel, then scene, and sends one request per image line, so a file
of twenty-four lines is twenty-four pictures. The comments are for the writer;
the model never sees them.
acue --print-prompts --prompts krea2 # what would run, numbered, no server
acue --prompts krea2 # the folder against one model
acue --prompts krea2,ernie,zit # the same folder against three, in turn
acue --prompts krea2 --seed 8101 # this seed for the run, instead of a rolled one
A run attaches to a server already on the port or starts one and stops it afterwards. It exits zero when every line produced a picture and one when the run stopped early, so it works from a cron job as well as from the Image pane, where the same run is one key.
With --book, a run ends as a bundle: the prompt file and its panels in one
.acue book, the same format acue studio writes and
Pinax reads. A sample book,
21 MB, is one: a day from the story the proof below compares, drawn by
Z-Image-Turbo, sixteen panels in four chapters (morning, lunch, afternoon and
evening), with the generation metadata stripped from the pictures. It also
carries two example desktop themes in its themes/ folder. Each download on
this page has its checksum beside it, at the same address with .sha256 added;
sha256sum -c checks it.
Holding a character across a whole day
Ninety-six panels that look like one book rather than ninety-six pictures is
a writing problem before it is a model problem. The story guide that ships with
acue is about that, and every rule in it is there because breaking it produced
a bad page first.
Sort each phrase by one question: does it survive a change of location? The painting style does, so it belongs in the look layer. So does the protagonist; she is the same person in the museum and on the bridge. The ivy on the brick does not, so it is scene. Get this wrong and the style vanishes the moment the story moves indoors, and panel twelve looks like a different book.
A model draws words; it does not take instructions. An early look layer said “the same woman in every panel” and got back a contact sheet of eight thumbnails, because that is a description of a picture with panels in it. “Consistent character”, “as before” and “same as the previous image” fail the same way. If a phrase would not appear in a caption of the finished picture, it does not belong in the prompt.
Hold her with one object, not with a face. Faces drift, and more adjectives make the prefix longer without making her more stable. What works is one high-contrast thing that is hers alone: Amberlin’s mustard-yellow raincoat is in the look layer and in every panel, and the eye finds her by it in a wide shot where her face is thirty pixels across. Colour everything you name, and name the dimension that decides a silhouette; an olive corduroy skirt fell to the knee in one panel and the ankle in the next until the layer said knee length. Whatever the shared layer leaves unsaid, the model decides again for every panel.
Identity is constant; the outfit need not be. Her age, her face and the copper plait are the same in every file of every city. The outfit only has to hold still within one story, so each hour of the day has its own, and a colour thread, the mustard, runs through all of them.
Anyone you do not describe becomes the protagonist. A line about two women laughing on the grass came back as two copies of Amberlin, because the look layer applies to everyone in the frame who has not been described as someone else. A second character is described on every line she appears in, and never in the look layer, or she is in every panel of the day, including the ones set before they meet.
Vary the shot, or the model will not. Left alone a run settles into medium shots of a person centred in frame. Say the framing where it does work, the opening, the closing, the close shot on the hands; eleven of the sixteen scenes in Amberlin’s Berlin day end on a wide shot, and pulling back closes a scene the way a paragraph break closes a paragraph.
Seeds do not hold a story together. A fixed seed makes the run repeatable, and it is what lets one wrong panel be redrawn on its own so it lands among its neighbours. It is not what gives a story continuity. Words are.
On YouTube
The books end up as videos, and the videos are on the Hyperquader channel: one playlist per image model, so the same day in the same city can be watched drawn by each of them in turn, and the Acue playlist for the suite itself. This is Amberlin in Rome, a day drawn by Z-Image Turbo, cut to its soundtrack.

Proofs
A list of filenames says which models drew a prompt. It does not say which one
drew it best, and that is the question. --proof turns two to four finished
bundles into one PDF in three parts. First, what is being compared: each bundle
with the sampler, scheduler, steps, CFG and checkpoint that drew it, read from
its own panels rather than today’s catalogue, then the book and prompt scripts
verbatim. Then an index, one contact sheet per model with every panel in story
order. Last, the comparison: one page per prompt, every model’s take side by
side, captioned with the bundle and the seed.


It is a PDF because that is what gets printed. Illustrators mark up pages: a circle around the hand that went wrong, a note in the margin that the coat is the wrong red, a line through a panel to reroll. The seed printed under every tile is the number to reroll it from, and the edits go back into the prompt file that the next rebuild reads. The example proof is one: four models on the same sixteen panels, 24 pages, 14 MB. One of the four books it was made from is the sample above.
The panes
| Audio | a song from ACE-Step: style, lyrics, duration, and the cover chain that makes a set of tracks one theme |
| Image | text to image with the model’s own parameters filled in, and one key to run a whole folder of prompts |
| Launch | the model list, which server runs each modality, per-model settings, and the exact command that will run |
| Profile | sampler, scheduler, steps, CFG, shift, batch and precision, saved back to the profile the model starts with |
| Downloads | what is on disk, what is missing or partial, and fetching the gap |
| Animate | short clips from an animator on another machine, attached to and never started here |
| Doctor | the build, then Python, torch, cuDNN, CPU, GPU and what holds the card, with live charts |

Launch. Every model in the catalogue, which server runs it, and the exact command that will run, before it runs.

Image. The model's own sampler, steps and CFG are filled in from its profile; you type the prompt.

Audio. Style, lyrics, duration, and the sampling the checkpoint wants. It says plainly when the current model is not an audio one.

Profile. Sampler, scheduler, steps, CFG, shift, batch and precision, saved back to the file the model starts with.

Downloads. What is on disk, what is missing, and how much the gap weighs.

Doctor. Both environments, the card, and live charts of CPU, GPU, network and memory. It reads; it changes nothing.
How it is built
Two layers and one seam. The application knows about servers, models, profiles and CUDA. The terminal machinery (raw mode, a diffing cell renderer, key decoding, widgets, charts and dialogs) knows none of that and lives in a separate terminal library.
One thread drives the interface on a 100 ms tick, and nothing in it may block, because Ctrl-C itself arrives as a byte through that loop. So everything slow runs as a child process, or as a thread only where a kill is impossible. The renderer diffs frames and writes only the changed cells, so an idle tick costs nothing. GPU numbers come from NVML loaded at run time rather than linked, so the binary runs on a machine without it.
Most of what the documentation records was learned the expensive way on a Blackwell card. ACE-Step’s own start script reinstalls a torch build without the kernels the card needs, so it is never run. On 16 GB the allocator fragments between generations and the second one fails a few hundred megabytes short; one environment variable fixes it, measured rather than inferred from the error message. Forge’s weight offloading flags, which read like the right answer for a model bigger than the card, kill the process on load, so they are off, and leaving them off costs nothing: on an RTX 5070 Ti, Krea 2 made 288 pictures of 1216 by 832 at 8.0 seconds each.
The documentation is split by question so nothing is written twice: a guide for
how to do a thing start to finish, two manual pages for what a flag or a catalogue
key does, the story and soundtrack guides for what to write, and the
architecture and decisions for how it is put together and why. The guide is also
one PDF, 35 pages, rendered by acue itself: its
--guide flag turns Markdown into a printable document with the same code that
writes the proofs.
Install
The acue book maker is not in the archive yet: it builds from source, beside working checkouts of Forge Neo and ACE-Step 1.5. A Debian package is on its list.