How the work gets made.

Three pieces, written up for the people hiring: the problem, the decisions, the evidence and what I would do next. My broadcast work for TV Markíza is confidential, so none of it appears here.

  1. One Character, Twenty WorldsKeeping one AI face on-model in twenty scenes, and measuring it.
  2. AIOSThe AI operating system I run my work on, and how it learns from corrections.
  3. Final WishThe short film I wrote, directed and shot, and what it taught me about directing AI.
Published · clips next

One Character, Twenty Worlds

Every AI artist says their character stays consistent. I wanted a number for it.

RoleConcept, pipeline, prompts, scoring
ToolsComfyUI on a local RTX 4080, Python, OpenCV
Output1 reference, 20 scenes, a drift report
Result20 of 20 scenes above the same-person line

The problem

Brands and creators who use an AI character need the same face in every post. Image models drift: change the light, the angle or the outfit and the face slowly turns into someone else. Most portfolios answer this with a grid of nice pictures and the word consistent.

A grid only shows that the pictures look similar to the person who made them. I wanted a measure a client could check: one reference image, twenty very different scenes, and a face-similarity score for every frame.

The method

The character starts as one front-facing reference portrait. Every scene is generated locally in ComfyUI from that single image and a written prompt: an image model with an identity-edit LoRA, no character LoRA, 8 steps at 832 × 1152.

The prompts follow a fixed structure of nine labeled blocks, so identity, clothing, pose and light are never mixed in one sentence. The subject block holds the face; the other eight change the world around it. This is the real prompt behind scene 01:

Subject
The same woman as in the reference photo with her exact facial identity, dark brown shoulder-length bob with heavy curtain bangs, brown eyes, a small dark mole on her left cheek
Outfit
Black belted trench coat buttoned to the collar
Pose
Body turned three-quarters away, a clear umbrella resting on her shoulder
Action
Glancing back over her shoulder mid-step, raindrops beading on the umbrella
Scenery
Narrow neon-lit Tokyo side street at night in light rain, wet reflective pavement
Camera
Vertical portrait at eye level, waist to just above the canopy, shallow depth of field
Lighting
Warm shop-window light mixed with pink and blue neon, her face the brightest area
Expression
Faint knowing half-smile with closed lips
Style
Photorealistic, natural skin texture with visible pores, flyaway hairs, correct anatomy

Shortened for the page; the full prompt is longer in every block.

Twenty scenes scored against the reference

The reference portrait: a woman with a dark brown bob and curtain bangs, facing the camera
Reference
The same character in twenty generated scenes, shown one at a time as you scroll
Scene 01

Face similarity to the reference

Neon side street in Tokyo, night rain

0.75cosine score, OpenCV SFace

Grey bars are three different people scored against the same reference: the control that shows the scorer can tell faces apart.

Decisions and lessons

The scorer is OpenCV's YuNet face detector with the SFace recognition model, comparing each scene to the reference shown above by cosine similarity. SFace's threshold for "same person" is 0.363. All twenty scenes clear it, with a mean of 0.69, a lowest score of 0.45 (the concert) and a highest of 0.92 (the studio).

  • A control, not just a score. Three different characters scored against the same reference land between 0.02 and 0.10. Without them, 0.69 would be a number with nothing to compare it to.
  • Prompt shape is a lever. The first sheet wrote each scene as sentences. The second rewrote the same scenes in nine labeled blocks, with the same model and seeds. Scored against the generation reference, the mean rose from 0.63 to 0.68.
  • A score is not the whole verdict. Twelve scenes come from the second sheet and eight from the first: where the older version had the stronger expression or frame, or the new one let a black turtleneck leak in from the reference, the older one was kept.
  • Light decides identity. One test with the face in shadow scored 0.32, the only frame below the line. Rewriting how light falls on the face lifted it to 0.61.
  • Motion is the next frontier. Scored frame by frame, one 5-second image-to-video clip of the café scene averaged 0.36, with 11 of 21 sampled frames under the line; the flower-market clip held at 0.62.
Running daily

AIOS

An AI operating system for one person: my research, projects, records and production run through it every day.

RoleArchitect and sole developer
Built onClaude Code, MCP, Python
Scale20 skills, 5 subagents, 97 routes, 12,000+ indexed sources
Runs onMac and Windows, synced through Git

The problem

AI assistants are capable but forgetful. Every new session starts from zero, the same mistake can be made twice, and the useful context from last week sits in a chat nobody will scroll back to.

I wanted the opposite: a system where state is written down precisely, each kind of job has one owner, and a correction made once is followed from then on.

The architecture

AIOS is a Git repository that Claude Code runs inside. It holds validated records for projects, tasks, decisions and lessons, a searchable library of research and notes, and a set of specialist skills and subagents. A session starts by loading the current state; a hook checkpoints changed files back to the repository when it ends.

One rule shapes everything: each job has exactly one owner, the newest and most capable version, so the system never has two half-working ways to do the same thing.

ResearchA research skill that runs parallel researcher subagents and files every result
Design and mediaA design skill with a quality bar and real browser review, images on local ComfyUI
ReviewA verifier subagent that checks consequential output in a fresh context
MemoryRecords written through a CLI that validates and revision-checks every change
Everything elseA catalog of 97 routes for specialist work

A correction, made once, becomes a rule.

The part I am proudest of. When I correct the system, the correction is saved as a lesson with its scope, and a prevention is drafted in the same turn. Approved lessons become one-line rules that every later session follows.

  1. CorrectionI point out a mistake in a review of generated video.Check the first frame at full size before paying for video.
  2. LessonSaved as one file: the rule, its trigger, its scope and the evidence.
  3. PreventionA change to a rule, skill or tool is drafted in the same turn for my approval.
  4. Next sessionThe lesson loads at start-up and the agents follow it without being told.

Where it stands

I started it in June 2026 on Claude Code; this is its third generation, and the earlier two are kept as reference, not deleted. It carries 83 lessons, 50 of them verified by outcomes, most of them born from a correction of mine.

  • Scoped claims. Reports state only what a tool result verified in that session, and label the rest unverified.
  • Spend and send gates. Purchases, paid API runs and anything sent in my name always wait for my approval.
  • Budgets enforced by tests. The instructions file has a size budget that a test checks, so the rules stay short enough to be followed.
2022 · IMDb credit

Final Wish

An independent sci-fi short film I wrote, directed and shot.

RoleWriter, director, director of photography
GenreSci-fi short film
FestivalLift-Off Sessions 2022, Official Selection
TrainingFilm Direction, Private Secondary School of Animation Arts, Bratislava

Why it is here

Final Wish was made in 2022 with a camera, not a model. It is on this page because the craft it took is the craft AI video is missing: deciding what each shot is for before anything is generated.

Writing, directing and shooting it myself meant planning coverage, choosing lenses and framing for a story, and cutting for rhythm. Generative models make shots cheap, which makes those decisions the expensive part.

What carries over

  • Shots before prompts. Shot Director, a ComfyUI node I am building, gives every shot its own framing, lens, camera move and duration, the way a shoot is planned.
  • Continuity as a measurable target. On set, continuity is someone's job. In AI video it is the hardest problem, which is why the character study above scores it.
  • Judging against the real thing. Generated footage is compared with real footage of the same kind, not with the previous attempt.

Hiring a creative technologist?

I am open to roles where AI video, tooling and agent systems meet. The CV has the full history.