Skip to content

About

Changeling Studio: every Changeling in one place - face swap, gender, age, ancestry, makeup, hairstyles, beards and voices, photo and live - each its own repo, fetched side by side and sharing their models.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Twitter: @NorowaretaGemu

The Changeling logo: a face split down the middle, one half plain, the other breaking up into pink pixels

Changeling Studio

Website: https://cursedprograms.github.io/Changeling-Studio/

The name. In European folklore a changeling is a fairy child left in the cradle in place of a stolen human one: something that wears a familiar face and isn't what it seems. Every Changeling here does a little of that, and each is named for the myth or the Latin word that fits it best.

Every Changeling in one place. Each Changeling is its own program and its own repo; Studio keeps them side by side in one folder, so you work from here as if they were all one project, and (coming) runs them in one window, with chains: Imago Realtime > Chronos > Cosmeta > Echo, each adding to the last, live or on photos.

Changeling What it does
Imago one face onto any photo or video (grown from roop, AGPL-3.0)
Imago Realtime the face swap live on the webcam for video calls, with a female/male voice and recording
Tiresias gender swap for photos
Chronos age a face forwards or backwards, or a five-age timeline
Natio your face as it might look born somewhere else in the world
Cosmeta makeup, hair colour and length, beards, on two layers
Echo train the voices the Changelings speak with (RVC, from Piper or your own recordings), and speak in them live
Tonsor anyone's hairstyle on you: the cut from one photo, the colour from another (HairFastGAN)
Tiresias Realtime the other gender live on a call: one snapshot, swapped by Tiresias, worn live by Imago Realtime
Chronos Realtime younger or older live on a call, the same way
Natio Realtime another ancestry live on a call, the same way
Cosmeta Realtime makeup, hair colour and beards live on a call, every frame (BiSeNet on the GPU, Cosmeta's own looks)

The three realtime ones are one program, realtime/live.py, with a realtime.json naming its Changeling. python realtime/make_realtime.py writes all three repos from it (code, run scripts, README, site page, QR code); change it here, run that, then commit and push each. StyleGAN editing is a minute's work per face, far too slow for every frame, so they make the new you once and Imago Realtime wears it live, with the new you's skin (its tone and wrinkles) through Imago Realtime's Persona's skin.

Get them all

fetch.bat        # Windows
.\fetch.ps1      # PowerShell
./fetch.sh       # Linux / macOS / Git Bash

Each Changeling in apps.txt is cloned into its own folder here if it's missing, and pulled if it's here. Studio's .gitignore leaves those folders out, so each one still commits and pushes to its own repo. Then start any of them with its own run.bat / run.ps1 / run.sh. Where they use the same models (Tiresias and Chronos share StyleGAN2 and the face finders), the later one borrows the first one's files instead of downloading them again.

The Gallery

Everything you make with a Changeling, in one place. Each one still asks where to save, as before; once it has saved, the file goes into the Gallery too: Imago's pictures and videos, Imago Realtime's recordings, and Tiresias, Chronos, Natio, Cosmeta and Tonsor's pictures. Open it from Studio's Gallery button, the Gallery button in any of them, or python gallery.py. Newest first, a filter for each Changeling; click one to open it, or show it in its folder. The list lives in ~/.changeling/ (with a small picture of each, so it still shows what a moved file was).

Chains

Several Changelings one after another on one photo, each step's result the next step's photo: Imago (another face) > Chronos (older) > Cosmeta (makeup), or Tiresias (the other gender) > Tonsor (a hairstyle). Studio's Chain button (or python chain.py): pick a photo, add steps with their options, Run. Every step runs in its own Changeling's environment, one at a time, and shows its result as it finishes; at the end it asks where to save, and the result goes into the Gallery. Live on a call: Use as Imago Realtime persona puts the result in Imago Realtime's personas/, Wear it live starts Imago Realtime wearing it.

python chain.py photo.jpg -o out.png --step "Tiresias to=female" --step "Chronos age=-0.5"
python chain.py photo.jpg --step "Imago face=other.jpg" --step "Cosmeta preset=Goth"
python chain.py --steps        every step and its options

Coming

  • Studio itself: one window with every Changeling as a tab.
  • A basic editor everywhere: brightness, contrast, saturation, warmth, vignette, sharpen, on two layers.
  • Whole-photo results with the hair cleaned up (inpainting the leftover hair outside the face frame).

Your phone as the camera: Imago Realtime's run_server.bat (and the realtime ones' Phone as the camera switch) serves a page with a QR code: the phone's camera and microphone are the input, the PC does the work.

The look

Every Changeling's site uses site/changeling.css and site/family.js from here (Studio's Pages), so they look the same and a change here shows on all of them: the apps' own dark greys and the Cursed pink, solid colours, no gradients, no shadows. family.js draws the family list on every site: a new Changeling is added there once. site/make_logo.py draws the logo (site/logo.svg, site/icon.svg), after Gemini's sketch.



© Cursed Entertainment 2026


About

Changeling Studio: every Changeling in one place - face swap, gender, age, ancestry, makeup, hairstyles, beards and voices, photo and live - each its own repo, fetched side by side and sharing their models.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages