Palette: Teaching a Small Model to Build Decks in Your Design Language

Overview

Palette is a 20B open-weight model designed to generate slide decks that strictly adhere to a specific design language, addressing the tendency of frontier models to default to generic styles and the privacy requirements of sensitive data. By splitting the generation process into distinct designer and coder roles and employing a post-generation verification harness, Palette achieves competitive performance on the PresentBench benchmark while maintaining control over the final output.

The Designer-Coder Architecture

Palette decomposes the complex task of slide creation into two sequential roles, both handled by a single LoRA-adapted model. This approach mimics human workflows:

  • The Designer: Reads the initial plan and generates a structured JSON brief, which includes the design rationale, palette, typography, and slide-specific content.
  • The Coder: Takes the brief and generates pptxgenjs JavaScript code to render the slide.

By separating editorial judgment (what to show) from geometric execution (how to place it), the model avoids common pitfalls like overlapping shapes or text overflow. Because the brief is generated first, the coder can process each slide in parallel, resulting in a 6–7x speed increase compared to sequential generation.

Data Synthesis and Training

Since no public dataset exists that maps design rationale to slide code, the team generated 1,000 decks (roughly 10,000 slides) using a larger teacher model. Key training strategies included:

  • Counterfactual Reasoning: Training data includes why certain design choices were made and why alternatives were rejected, helping the model learn rules rather than just mimicking outputs.
  • Reference-Based Steering: The team found that providing reference decks in the prompt was more effective at ensuring faithfulness than adding strict rule-based instructions.
  • LoRA Fine-Tuning: Using LoRA allowed the team to teach the model a specific format and skill set without degrading the base model's existing capabilities.

The Check-and-Repair Harness

To ensure reliability, Palette passes all generated output through a verification harness before final delivery. The harness performs the following steps:

  1. Rule-Based Validation: Fixes malformed code or syntax errors.
  2. Geometry Checking: Renders the slide to detect text overlaps, clipping, or overflow.
  3. Automated Repair: If a slide is flagged, an editor model attempts a rewrite. A fix is only applied if the checker confirms the slide has improved, ensuring the harness cannot make an output worse.

This harness improved scores on 131 decks by an average of 3.5 points.

Performance and Evaluation

Palette was evaluated on the PresentBench dataset, which measures fundamentals, visual design, completeness, correctness, and fidelity.

  • Ranking: Palette ranked first in the 'Economics' and 'Education' domains and second overall across three measured domains, trailing the top-performing model by only 1.1 points (59.7 vs 60.8).
  • Control: The model supports user-defined 'directives'—plain English instructions (e.g., [[make this a timeline]])—that allow users to steer design choices without requiring manual layout adjustments.

Future Directions

Future development for Palette focuses on using the current verification signals as rewards for Reinforcement Learning (specifically GRPO-style training) to reduce errors at the generation stage. The team is also exploring methods for extracting figures from source documents using tools like Docling and developing techniques to 're-skin' existing PowerPoint templates without requiring full model retraining.

Sources