← All projects

Sofia Costa

A consistent AI persona: a bot that generates the character's visual content end to end and publishes it automatically.

Sofia Costa screenshot

Sofia Costa is a consistent AI persona: a fictional 28-year-old nomadic film photographer whose content, images, captions and hashtags, is generated and published automatically by a bot. The core engineering challenge is consistency: the exact same face, writing voice and visual style in every post, with no human touch. The project is in active development, with a site at sofia-costa.com.

The character

Sofia is defined in a detailed persona.json: Italian father, Brazilian mother, born in Milan, studied photography in London, now traveling with a leather duffel and a 35mm film camera. Her appearance is specified down to freckles and a beauty mark, her wardrobe has a fixed palette, and her voice is calm, observational English with dry humor and the occasional Italian or Portuguese word. Even the things she never writes are specified in advance.

The pipeline

A scheduler checks hourly and runs a new cycle once the configured interval (default 17 hours) has passed.

Stack

Node.js + Express with a cron scheduler, Flux 2 Pro on Replicate, Python 3.11 + InsightFace for face swapping, the Anthropic Claude API for captions, SQLite for the travel schedule, and a multi-stage Docker deployment (Node and Python together) on Railway with a persistent volume. Site: sofia-costa.com.

Technology

Node.jsFlux 2 ProFace-swapTelegram

FAQ

Is Sofia Costa a real person?

No. Sofia is a fully fictional AI persona defined in a detailed persona.json. All images are generated by AI models and all captions are AI-written.

How is the same face kept in every image?

Identity is decoupled from the image model: Flux 2 Pro generates the scene, then an InsightFace-based face-swap layer applies the persona's fixed reference face, so the character looks identical in every post.

Where is the content published?

Telegram is live today; WordPress and Instagram distribution are planned for phase 3. The persona's home on the web is sofia-costa.com.

What is the tech stack?

Node.js + Express with a scheduler, Flux 2 Pro via Replicate for images, Python + InsightFace for face swapping, Anthropic's Claude for captions, SQLite for the travel schedule, and a multi-stage Docker deploy on Railway.