
Fredy Acuna / October 30, 2026 / 11 min read
In October I released two lyric videos for NOVALYX, a fully synthetic AI pop idol:
Both live at novalyxcash.com, together with a public wiki of how they were made.
Credit first. This is not my method. I copied, on purpose, the published method of claudia.gallery by anabology, to learn it by practising it. The folder layout, the checkpoints and many of the rules come from there. What I add here is what happened when I ran it on my own.
| Job | Tool |
|---|---|
| Song | Suno |
| Stills ("plates") | Nano Banana Pro (Gemini 3 Pro Image) |
| Motion clips | Veo 3.1, through Google Flow (and Vertex AI on the first film) |
| Lyrics scoring, stems, word timing, beats, board audit, render | Local Python tools on CPU |
| Agent (writing, tools, edit) | Claude Code |
| Site | Astro, served by Cloudflare Pages |
The output is 24 fps, 1920x1080, plus a 9:16 vertical cut. Only two steps cost generation credits: the stills and the clips. Everything else runs locally.
The core idea of the method: an agent does the work, but a human (the director) decides at six fixed points. Nothing moves past a checkpoint without an explicit answer. In this project I was the director and Claude Code was the agent.
| # | Checkpoint | What the director decides |
|---|---|---|
| 1 | Concept | Which pitch becomes the film |
| 2 | Lyrics and Suno takes | Which lyrics and which take become the song |
| 3 | Face test | Which test stills are the character |
| 4 | Storyboard | The board, approved with an explicit yes |
| 5 | Clip prompts and credit cost | The prompts and the cost, approved before any generation |
| 6 | Review cut | The first full cut, approved before the master |
Checkpoint 5 is the one that saves money. Before a single clip is generated, the agent writes a cost forecast: how many stills, how many clips, how many seconds, and what each costs, with every number labelled measured, assumed or unknown. For Regenérame that forecast recommended a pilot first (6 stills and 1 clip) before the full run, so the identity and the cost could be tested cheaply.
Every decision goes into a DECISIONS.md file, dated, with the director's words quoted verbatim. When something goes wrong later, you can see exactly what was agreed and why.
Image and video models keep no memory between calls. Every prompt starts from nothing, so consistency is something you carry by hand.
NOVALYX lives in a canon.json file and a character page. The canon fixes his constants:
From those constants comes one identity text, pasted verbatim at the start of every still prompt. There is a long form for close shots and a short form for wide shots, because the full text makes the model crop in to the face. His name never appears in the text, so a rename touches nothing.
The same text travels down the chain: still prompt, then a reference image once a face is approved, then the still becomes the first frame of a clip, then the video prompt says "as in the start frame". When a clip has no start frame, the tool writes the full identity text into the video prompt, read straight from canon.json.
One more rule that saved me a lot of retakes: no text in generated images. Every word on screen, every lyric, chat bubble and counter, is drawn in code on top.
This is the part I enjoyed most, because it turns "looks fine to me" into checks that pass or fail.
shots.json file, not a document. An audit checks it against the song: cuts on beats or hits, every sung word typed on screen, motion budget, clip windows, the lead's share of screen time.The first film's final files passed 342 of 342 lyric tokens on time with a flash maximum of 1 per second, in the 16:9 master and in the vertical cut.
The original brief said: budget $0, free tiers only. That held for the plan, not for the result. Here is the honest version, from the project's own records.
Slop Aipocalypse
Regenérame
So the fair framing is: free tiers plus subscriptions, plus about $20 of credits. Google AI Pro was on both films, Suno Pro on the second, and the first film used about $20 of Developer Program credits on Vertex. No extra cash beyond that. If you have none of those, budget for them.
These come from the project's failure log and decision files. I picked the ones that changed how I work.
1. Vertex filtered every start frame with his face. The first image-to-video probe came back filtered: a photoreal face in an input image trips a safety category. No spend, but no clip either. The finding that unblocked the film: Vertex filters the face only in input images. So the sung clips became text-to-video, with his identity written in words. The trade-off, accepted on record: his face drifts slightly between clips.
2. A vague prompt lets the model choose. Of 14 sung takes, two came back shirtless and two with film-strip borders. The text-only prompt described his head and nothing he wore, so the model chose. And "photographic film still with grain" was read literally as a film frame with sprocket holes. The rule now names a plain black crew-neck t-shirt and asks for a full-frame image with no border.
3. Quoted lyrics leak onto the screen. The video prompt quotes the sung words so the mouth forms them, and Veo sometimes renders quoted words as on-screen text, even with "no on-screen text" in the prompt. There is no strong guard yet. Any take with readable text is retaken.
4. Veo invents the side of his head it cannot see. On Regenérame, when he turned to face the lens, Veo drew a second lime stripe. Rule: keep sung clips in the start frame's angle. And judge each clip only over the span the edit actually uses, not the full 8 seconds.
5. Do not ask a human to run a tool by hand when a script can. The plan was for me to make 14 clips in Flow from a follow-along book, eight steps each. I didn't understand the routine, so I told the agent the clips could not be made that way. A script on Vertex made them instead.
6. An audit score is not a pair of eyes. One bed still had two lime stripes and the automatic audit scored it 1.0 anyway. Another came back as an illustrated elderly man. Now I read the audit notes, look at the picture, and write each pick in a verdicts file, keeping the rejected candidates.
7. A style can read as a bug. Slop Aipocalypse degrades on purpose, into blocks and dithering. After the second render I saw "a lot of pixel" and expected it to look more real, but I accepted it as a version 1. Because the degradation is one curve in the render plan, the fix is a dial, not a re-shoot. Regenérame dropped the pixel degradation entirely.
8. Lip sync by prompt timing is not lip sync. The mouth follows the words only because the prompt gives a time range per phrase, and the film audio replaces the clip audio. Nothing measures it. On Regenérame I approved the cut but named real lip sync as the goal for the next song.
The full method, failures included, is on the NOVALYX wiki. And the original method is at claudia.gallery, by anabology.