All Articles

ReplicantCulture: Keeping Stories True to Their Locale

With the World Cup in full swing over in the US (Come on England!), I’ve been using the Everblossom alpha to generate little stories about me and my cat watching the matches. It’s been great fun - but it also surfaced a familiar localisation problem.

A story about “kicking a football and scoring a goal” would sometimes come back with an illustration of an American football sailing between gridiron posts. Ask for “chips” and you’d get crisps. Ask for a “biscuit” and you’d get… anything.

american football

None of this was wrong. The models were doing a perfectly reasonable job -just for a different country than the one the reader lived in.

What started as a handful of quick fixes inside the image‑prompt code grew into something that deserved its own module. That’s how ReplicantCulture joined the ReplicantCore suite.

flowchart TD
    subgraph Row1[ ]
        direction LR
        DASH[Dashboard]
        APPS[Applications]
    end

    DASH --> GATEWAY["⠀⠀⠀⠀⠀⠀Gateway⠀⠀⠀⠀⠀⠀"]
    APPS --> GATEWAY

    subgraph Services[ ]
        direction LR
        A[ODE Auth]
        B[ReplicantCore]
        C[ReplicantResonance]
        D[ReplicantGuard]
        E[ReplicantNarrative]
        F[ReplicantCulture]
    end

    GATEWAY --> A
    GATEWAY --> B
    GATEWAY --> C
    GATEWAY --> D
    GATEWAY --> E
    GATEWAY --> F

    %% --- Highlighting Styles ---
    classDef highlight fill:#ffd966,stroke:#b8860b,stroke-width:2px,color:#000;
    classDef faded fill:#e0e0e0,stroke:#999,color:#666;

    %% --- Apply classes ---
    class F highlight;
    %% --- class DASH,APPS,GATEWAY,A,C,D faded;

The Problem: Everything Drifts Toward en‑US

Modern language and image models tend to settle on the most statistically common interpretation of an ambiguous word. For English, that centre of gravity is American English.

For plain text, this is usually survivable. But when you’re generating images, ambiguity becomes structural:

  1. A story scene is written.
  2. That scene is turned into an image prompt.
  3. The image model renders the prompt literally.

If the prompt contains a culturally ambiguous term, the model quietly picks the most common interpretation -and you end up with a mismatch between the reader’s locale and the generated image.

ReplicantCulture exists to make prompts visually unambiguous before they ever reach the image model.


A Resolver, Not a Dictionary

The obvious approach would be to build a giant lookup table of every word in every dialect. That’s not realistic or maintainable.

ReplicantCulture takes a different path:

  • It’s deterministic and ML‑free.
  • It uses curated, per‑locale data rather than trained weights.
  • Unknown terms simply pass through unchanged.
  • Potentially ambiguous terms can be surfaced for higher‑level resolution rather than guessed.

Think of it as a proof‑reader that knows which words might cause trouble, and when to ask for help.


Two Layers of Protection

Stories can drift in two places, so ReplicantCulture supports two complementary layers:

Layer Purpose Where it’s used
Style guidance Helps the story model write in the correct regional register Story generation
Prompt disambiguation Makes image prompts visually explicit for the reader’s locale Image generation

Layer 1: Style Guidance

Each locale carries a short instruction string that nudges the story generator toward the right register. If a locale doesn’t need guidance, the instruction is empty. It’s a lightweight preventative measure that avoids a lot of drift before it starts.

Layer 2: Prompt Disambiguation

This is where ReplicantCulture earns its keep.

For each supported locale, the module maintains a curated set of terms known to cause visual ambiguity. When an image prompt comes in:

  • Clear, locale‑specific terms are rewritten into explicit visual descriptions.
  • Terms that might be ambiguous are surfaced for higher‑level resolution.
  • Unknown or irrelevant terms pass through untouched.

The goal is simple: give the image model no room to wander.


Worked Example

Suppose a reader’s locale is set to en‑GB, and a story produces this prompt:

“After the match, the kids left their football boots by the roundabout and shared a packet of chips.”

ReplicantCulture would:

  • Make the sporting terms visually explicit for a British reader.
  • Clarify the food reference.
  • Flag “roundabout” as needing context -because it could refer to a road junction or a playground toy.

The flagged term is then handed back to ReplicantCore, which already understands the full scene and can resolve it using its own language model.

The result is a prompt that is visually precise, culturally aligned, and safe.


Growing From Real‑World Failures

Whenever an image is regenerated because the first one didn’t match the reader’s locale, that’s valuable feedback. ReplicantCulture can record these misses, and over time they become candidates for new entries in the curated data.

All of this tuning is data, not code -new locales and refinements can be added without touching the underlying service.


Easy to Use

For users, this is very simple to use.

The Auth and Account system already has the ability to set and change a time zone, so here we added the ability to set and change a Culture value directly on the account tab in the app and as part of the registration flow.


Limitations

  • Curated data will always lag behind reality. Unknown terms pass through safely, but new ambiguities appear faster than humans can catalogue them.
  • Only a few locales are supported today. More can be added, but each requires careful curation.
  • Context is lightweight. When a term’s meaning depends heavily on the surrounding scene, ReplicantCulture defers to ReplicantCore rather than guessing.
  • English only (for now). Cross‑language localisation is a much larger challenge.

Next Steps

real football

ReplicantCulture currently focuses on the image boundary, where ambiguity hurts the most. The next step is to close the feedback loop -turning recorded misses into suggested additions automatically, so the module can evolve from real usage rather than manual curation.

In a future post, I’ll cover how locale preferences flow through ReplicantCore - from the user’s account, through story generation, all the way to the image prompt - because getting the right locale to the right service turned out to be just as important as resolving the ambiguity itself.

Published Jul 6, 2026

Software engineer and technical founder in London, focused on building practical products in AI and hardware.