Painter

The toolbox

How it works

Start with the techniques the painter actually uses, then go as deep as you like.

Used in the painter

Read these first

Every page below explains a piece of the live painter pipeline. Open /painter, run a map, then come back here to understand what each knob did.

Getting started

New to the map generator? Read this first: what a run does, what the knobs mean, and how to make a map you actually want.

Read

Wave scheduling (anchor-BFS)

Picks the most-constrained tile first, then ripples outward so neighbours always exist before they're needed.

Read

Painted seams

Author rivers, paths, and biome transitions on the canvas; the constraint compiler turns brushstrokes into per-tile masks.

Read

Exterior anchor + boundary painter

Each new tile is generated against a 256-px strip of its already-rendered neighbour, locking edges without locking interiors.

Read

Bootstrapped seeds

The seed image is produced by the same pipeline as the output — kills the style drift you get from foreign-pipeline seeds.

Read

IP-Adapter v2 + ControlNet

Style locked at ipa=0.6 (CLIP), structure conditioned via ControlNet Tile / Union — the combo that crossed the seam-quality gate.

Read

Differential diffusion

Per-pixel timestep schedule replaces hard mask binarisation, so painted features blend instead of cutting.

Read

Tiled VAE & latent normalisation

Per-tile latents are batched, normalised against the anchor's statistics, then decoded — kills tone drift across same-biome tiles.

Read

Palette match (post-process)

Free +0.55 on the seam quality gate. CPU histogram match against the anchor tile, runs in <100ms.

Read

Seam diagnostics

Tier 0 pixel checks (ΔE, gradient, palette, pHash) reject 70% of bad tiles for free; VLM only sees the ambiguous 30%.

Read

Glossary

Plain-language definitions for the terms surfaced in the painter UI — denoise strength, anchors, seams, ΔE, and more.

Read