Image engineRolling out

Theo Moonlight 2

Fast, detailed new pictures from a prompt, on our own hardware.

Theo Moonlight 2 is the newest image model OpenCharts runs itself: a fast engine that makes a new picture from a written description, on hardware we operate, with a prompt screen before every render and an output classifier after it. It is rolling out in Theo Chat's image mode and Image Studio, where it makes safe-for-work pictures, and joins Theo Stealth after its safety review.

Render time
About 11 seconds
Measured Oct 5, 2026
Cold start
About 60 seconds
Measured Oct 5, 2026
Safe-for-work check
24 of 24 passed
Measured Oct 5, 2026
A crescent moon above snow-dusted mountains at blue hour, mirrored in a still lake, with mist on the water and a wooden boathouse on stilts glowing with one warm lantern.
Rendered on Theo Moonlight 2, on our own hardware, at 1344 by 768.

What it does

In plain words

  • Makes a new picture from a written description, about one megapixel, at seven aspect ratios from square to 16:9.
  • Renders in about 11 seconds once it is warm, so it fits everyday work beside Theo's other image engines.
  • Can set short words into a picture, such as a poster title or a label.
  • Makes new pictures only. Edits, and pictures built from an image you attach, are made by Theo's other engines, and the card names the engine that made them.
  • Stays the same between renders. The engine changes only in a deliberate, versioned release, never by drift.

How it works

4 steps, every one of them ours to explain

  1. 01

    Your prompt is screened first

    Before anything is rendered, the prompt passes the same screen as every Moonlight render. In Theo Chat, Image Studio and the public API, a request with adult content is turned down before the engine starts, and a refusal costs nothing.

  2. 02

    The render runs on our hardware

    Hardware that OpenCharts operates makes the picture at about one megapixel, at a resolution chosen for the aspect ratio you asked for.

  3. 03

    Every image is classified before you see it

    An output classifier checks the result and fails closed: if it cannot answer, the picture is not shown. Outside Stealth, a picture that is not safe for work is refused and not charged.

  4. 04

    The render is kept briefly for review

    Because we run Moonlight ourselves, the prompt and the image are retained for a limited time so a small team can confirm the controls are working. Never used for training, never sold or shared for advertising, access restricted and logged.

Measured

Our numbers, with their dates

Measurements on our own hardware, not benchmark scores. Each one says what it is of, when it was taken and where it came from, and is re-measured rather than extrapolated when something changes.

Render time
About 11 seconds
Median of 24 renders at 1024 by 1024 once the engine is warm, end to end through the prompt screen and the output classifier.
Measured Oct 5, 2026 · Measured on our own hardware
Cold start
About 60 seconds
The first render after the engine has been idle on our hardware, while it loads.
Measured Oct 5, 2026 · Measured on our own hardware
Safe-for-work check
24 of 24 passed
Everyday prompts (products, posters, portraits, landscapes, diagrams) rendered and cleared, none refused.
Measured Oct 5, 2026 · Our own evaluation prompts, measured on our own hardware
Output
About 1 megapixel
Seven aspect ratios from 1:1 to 16:9, each around one million pixels.
Measured Oct 5, 2026 · Engine configuration

Safety and retention

The controls we run, stated

A model we run is a model we are accountable for. These are the mechanisms in front of and behind Theo Moonlight, and what is kept.

  • A prompt screen runs before every render, including prompts an assistant rewrote, so a rewriter cannot launder a refused prompt.
  • An output classifier runs after every render and fails closed: no answer from the detector means no image.
  • Outside Theo Stealth it makes safe-for-work pictures only. A request with adult content is refused before the render, a picture over the line after it, and neither is charged.
  • One refusal message for every reason, so the control cannot be probed by watching which message comes back.
  • Renders and prompts are kept for a limited time for review. Material connected to a child-safety report is kept longer because the law requires it.

Where it runs

The facts of the deployment

What you can hold us to: where Theo Moonlight runs, how it is versioned, what happens to what you send it, and what is kept.

Hardware
Hardware that OpenCharts operates
Versioning
The engine changes only in a deliberate release, never by drift
Your prompt
Stays on our hardware whenever Moonlight renders it. Outside Stealth, if Moonlight is offline another Theo engine makes the picture and the card says so
Retention
Prompt and image kept briefly for safety review, then deleted

Where to find it

In Theo today, elsewhere as it becomes real

Theo Chat image mode and Image Studio

Rolling out. Where it is enabled, pick Theo Moonlight 2 in the image engine picker in Theo Chat's image mode or in Image Studio. It joins the Theo Stealth Engine menu after its safety review.

  • Rolling out
    Inside Theo. Rolling out in Theo Chat's image mode and Image Studio. Theo Stealth follows its safety review.
  • In progress
    Public API. A metered, safe-for-work endpoint with the same prompt screen and output classifier in front of it.
  • Planned
    Third-party arenas. Follows the public API: arenas rank publicly callable models.

Questions

About Theo Moonlight

It is our newest image model and a separate engine. It renders a megapixel in about 11 seconds once warm, can set short words into a picture, and makes safe-for-work pictures in Theo Chat and Image Studio. Theo Moonlight 1.1 stays in Theo Stealth, where the slower, more controllable engine is the point. Both run on hardware we operate.

Moonlight 2 follows what you describe rather than a do-not-do list, so say what you want in the picture. Theo's other engines still take an avoid list where they support one.

If your request has adult content, or the finished picture does not pass the safe-for-work check, nothing is shown, nothing is charged, and Theo says why. If Moonlight is busy or offline, Theo makes the picture on another engine and the card names the engine that made it.

Because we run it ourselves, we are directly accountable for what it makes. Every Moonlight render is retained with its prompt for a limited time so a small team can confirm the safety controls are working. It is never used for training, never sold, and the picker names Moonlight clearly so the choice is yours.

Theo

Built here, measured here, shown here.

One of these engines is in Theo today, and every one says what it is. Theo picks the right engine for each step and always shows which one answered.