Skip to content
Bluzen Labs
All writing
Research19 August 2026 · 9 min

Regions, not repairs

Inpainting treats a mask as damage. PrismStream treats it as composition. Notes from six weeks of getting that distinction to survive training.

Ashish Kumar, Kaede Morii
#Diffusion#Conditioning#Flow-matching

Most spatial control in image generation is bolted on after the fact. You train a model on whole images, then at sample time you mask a region and ask the model to fill it while pretending the rest was always there.

It works, mostly, and it fails in a characteristic way: the filled region is locally plausible and globally disconnected.

Conditioning during training

PrismStream puts region masks in the conditioning path from the first step. The model never learns that a mask means this part is broken; it learns that a mask means this part is specified.

The difference shows up most clearly in multi-region prompts, where the model has to reconcile two specifications that disagree about what belongs at the boundary. Repair-trained models pick one. Region-trained models negotiate.

What it cost

Six weeks, one abandoned architecture, and a conditioning encoder that is larger than we would like. We will publish the ablation once the runs finish.

Keep reading

Research28 Aug 2026 · 7 min

The tail is the product

Why we throw away aggregate F1 on tagging benchmarks, and what we report instead. A short argument with a long table attached.

Ashish Kumar, Rin AmagaiRead
Data6 Aug 2026 · 6 min

Filters are opinions, so ship the score

On building Aurora: why every quality filter in the pipeline emits a column instead of deleting a row, and what that costs in storage.

Ashish Kumar, Yuki HoshinoRead
Infrastructure21 Jul 2026 · 5 min

Scheduling for four GPUs

Kubernetes answers a question small labs are not asking. Notes on writing a scheduler whose main feature is explaining itself.

Kaede MoriiRead