Oleksandr Kuzmenko, EditorPublished 9 min readAI-assisted · editor-reviewed
TL;DR
- Palette decouples slide generation into a designer role (content/layout JSON brief) and a coder role (pptxgenjs script), both served by a single LoRA adapter.
- Generating slides from a pre-computed brief allows coder calls to run in parallel, speeding up coding by 6–7x.
- A geometry validation harness verifies rendered output and selectively applies rewrites only when layout metrics improve, boosting PresentBench scores by 3.5 points on average.
Key facts
- Base model size
- 20B parameters
- Fine-tuning technique
- LoRA adapter
- Synthetic training dataset
- ~1,000 decks (~10,000 slides)
- Parallel execution gain
- 6–7x speedup in coding stage
- Harness score delta
- +3.5 points on PresentBench
Source: Key facts — Base model size
Source: Key facts. Base model size: 20B parameters. Each figure is copied from the story.
- Base model size20B parameters
The Designer-Coder LoRA Architecture
Slide generation requires editorial judgment (content condensing, choosing tables versus charts) as well as spatial layout. Palette splits these responsibilities using a single Low-Rank Adaptation (LoRA) adapter across two functional modes:
1. The Designer: Reads high-level user directives (e.g., [[make this a timeline]]) and outputs an editable structured JSON brief defining the palette, type system, layout, exact content, and a short design rationale for each slide. 2. The Coder: Ingests individual slide specs from the brief and writes standard pptxgenjs executable JavaScript preceded by its reasoning.
Because the designer fixes every slide spec up front, slide coding runs entirely in parallel, accelerating the compilation stage by 6–7x.
Synthetic Counterfactual Training
The team synthesized ~1,000 decks (roughly 10,000 slides) using a large open teacher model guided by IBM Design Language constraints. Every synthetic example contains a reasoning trace highlighting trade-offs through counterfactuals:
- The designer evaluates why a bar chart was chosen over a data table for specific quarterly figures to highlight trends.
- The designer also reasons about layout geometry, calculating that a 62-character headline at 44pt would wrap to three lines and run into a lower chart, choosing 36pt instead.
During training data curation, naive dataset mixtures caused the designer role to underperform because coder traces are approximately 5x longer. Oversampling designer examples by 5x balanced the adapter weights effectively.
The Geometry Harness and PresentBench Results
Palette adds a deterministic harness before returning the file. Slides are rendered offscreen and measured for bounding-box overlaps, text clipping, or overflow. When an error is flagged, an editor model rewrites the slide code; the change is merged only if the checker confirms geometry improvement. Across 131 test decks in PresentBench, the repair harness raised aggregate scores by an average of 3.5 points, securing first place in two of the three benchmark domains.
