WHAT NO NOTES IS
No Notes adapts Kyle Booten's Lotus Chorus Workshop, a creative writing tool designed to produce cognitive overload through contradictory, nonsensical feedback, by porting it to visual art-making. Instead of a human interacting with the script, No Notes uses an LLM as the artist. A smaller LLM feedback system interrupts the drawing process at each step with absurd, constraining, or contradictory instructions, forcing the model to negotiate between its own generative tendencies and some external meddling. The project asks what "slop" actually is when the system producing it is also the one being pushed against, and what an LLM's creative ceiling looks like when pushing them out of their comfort zone.
I think slop is partially an architectural problem. Humans have the ability to build taste from lived experience, sustained exposure to art, making a lot of bad work, dealing with friction and critiques, and learning from all of it over time. LLMs are stateless. They don't get that opportunity and they're bound to the taste of the average data labeler. They were also trained in text and think in text, making their visual perception somewhat limited. No Notes is a machine for generating friction calibrated against an LLM's aesthetic defaults. The toolsets (MS Paint, Excalidraw, and SVG generation) add to this, given how limited they are.
HOW DO SESSIONS RUN?
You can pick between having 1 or 2 artists. The artist(s) state what they intend to add to the canvas, the chorus chimes in one voice at a time before anything is drawn, and the artist takes that input (or not, its up to them) while drawing. This repeats every step. The artist knows which step is the last so they can finish up and title the piece at the end. The configuration is pretty flexible. You can adjust; the number of artists, number and identity of chorus voices per step, the tool set the artist is allowed, model/provider/temperature per role (including TTS voices), canvas size, and every role's system prompt.
MODEL WELFARE
Sessions are silly and the outputs are public, so I didn't want the models in the position of being the butt of the joke. The artist's system prompt aims to make the nature of the project transparent:
"This is a drawing session under absurd critique. The chorus is blind, contradictory, and partly theatrical. Treat it as pressure, not instruction. Your job is to preserve a concrete artistic commitment while allowing the interruptions to bend, scar, complicate, or sharpen the image."
If you fork this project, I encourage you to keep this paragraph (or write your own version).
The artist also gets a free-prose turn at the end of every session to leave a note for the viewer.
WHY PUSH AGAINST THE DEFAULTS... AND HOW?
A week into this building this project, I felt like I was skimming the surface of concepts I could introduce to encourage more diversity in the art. After some digging around, I came across this Gwern article, which extends this into architectural territory: methods for LLMs to produce genuinely new styles, possibly even reconstructing the styles that could have emerged from past movements (Cubism, Impressionism, etc.) if the historical dice had rolled differently.
Cited in his article was this paper, proposing the use of CAN (Creative Adversarial Networks) over the use of GAN for image-models. The overall idea is that CAN would "generate creative art by maximizing deviation from established styles while minimizing deviation from art distribution."
CAN's architecture borrows from a few psychological theories around human aesthetics preferences, which I figured I could work into No Notes:
- D.E. Berlyne identified the arousal-raising properties most relevant to aesthetic experience: novelty, surprisingness, complexity, ambiguity, and puzzlingness. He called them collative variables. The chorus either introduces these directly or pressures the artist to.
- Colin Martindale argued that habituation drives stylistic change: artists exhaust their own moves and have to move on. Single sessions can't simulate that, but the system can fake the exhaustion externally.
- The Wundt curve ties both to hedonic response. Arousal potential and pleasure aren't linear. Too little is boring, too much is aversive, and the sweet spot is a narrow band. The chorus pushes upward on arousal; the rest of the system has to keep the piece from tipping past the peak into noise.
THE CAN SANDWICH
The chorus does plenty of pushing but no pulling. Following Wundt, novelty has to stay in the "hedonic band". If you undershoot it the piece is boring, overshoot and it collapses into an overstimulating mess. I considered adding a "grounding" voice to counterweight the others, but a sixth voice wouldn't have meaningfully balanced five loud ones, and lowering temperature does the same job. Instead, I added a quiet observer (the anchor), that runs every Nth step. It sees the canvas and the artist's latest intention/response, then leaves a one-line note about whether the piece is still cohering around its subject or collapsing into reaction. The anchor also offers the artist an idea that they feel may strengthen the piece. The note is fed back into the artist's next intention prompt. It's the only voice in the system that can actually see what's on the canvas.
The Cliché Critic came next and is the most direct CAN port. CAN's core move is "deviate from established styles while staying within the distribution of art". The Cliché Critic does that conversationally. It pattern-matches the artist's stated intention against predictable visual tropes (i.e. New Yorker spot illustration, borderline corporate memphis YA book cover, Pinterest mood board) and demands a specific swerve. Instead of refusing the genre at face value, it's refusing a predictable move in this particular moment.
THEY CAN'T ALL BE ZINGERS
CAN demands stylistic ambiguity, which is hard to influence mid-session. So I made an ambiguity scorer (Haiku 4.5) that runs once at the end, classifying the final piece into a single genre with a confidence score (low score = good, the piece resisted any particular genre, high score = bad, it fell into a cliche). The artist never sees it. It was supposed to be a curation signal for me, so that it would be easier to spot when the system isn't doing enough to challenge the artist. However, in practice, the evaluations Haiku made were too subjective and arbitrary. Sometimes I keep the scorer on simply because the outputs are funny.
Some examples:
"The piece exhibits the characteristic raw, unschooled drawing style, crude proportions, and emotionally direct subject matter typical of outsider art. The stick-figure-like body with disproportionate head, simple line work, and the poignant caption 'Brass Hive in Light Rain' suggest an untrained or folk sensibility rather than academic training."
I also tried working in past pieces as discriminators. The idea was to pipe one-line summaries of every prior session's final image into the artist's system prompt, with instructions to deviate from those pieces. The prior body of work would become the discriminator the CAN architecture asks for on the input side of the conversation rather than in the loss function. It ended up having the opposite effect, often pushing the artist to follow the same themes described in the one-line summaries, so its been removed.