Slide generators that live in a cloud app are now common, but a model you can run yourself and teach your own house style is rarer, because small open models are genuinely bad at slide-making. Titles vanish into the background, text runs off the edge, shapes stack on top of each other. IBM's Palette is a research attempt to fix that, and its most reusable idea is not the model but the method around it.
The core trick is to stop treating a deck as one job. Building a slide forces two different decisions at once: what to say and how to show it, which is editorial, and where to place things precisely, which is geometry. Palette splits these into two roles served by a single LoRA adapter. A designer reads the plan and writes a structured JSON brief: palette, type system, each slide's layout and content, with a short rationale. A coder then takes one slide's brief and writes the JavaScript that draws it with pptxgenjs. The brief in the middle is readable and editable, so a person or agent can change one slide's layout without regenerating the whole deck, and because each slide's context is fixed first, the coder runs in parallel, making that stage roughly six to seven times faster.
The training data is itself synthetic. With no public corpus of plans, design decisions and slide code, IBM generated about 1,000 decks covering roughly 10,000 slides from a larger teacher model, each starting from a recipe that sets genre, length and layout so the control data has coverage. Every example carries reasoning written as a counterfactual, explaining why a rejected choice was wrong, so the model learns the rule and not just the outcome.
The part worth copying is the checker. Every synthesised deck is rendered and inspected for overlaps and overflow by the same harness used at inference, and broken slides are repaired, with the fix kept only if the checker confirms the slide improved. That makes the repair loop safe to run on every output: it can fix a slide but never make one worse. On PresentBench the harness adds 3.5 points on average across 131 decks, and Palette places second across three domains at 59.7 against NotebookLM's 60.8, as a single 20B open-weight model. We review cloud rivals such as Gamma and Beautiful.ai that solve the hosted version of this problem.
The caveats are real. The post names no base model, no licence and no link to download weights, so for now it reads as a research write-up rather than something you can self-host today. IBM is candid that faithfulness is the hardest problem: if a brief asks for a six-by-five table but supplies three bullets, the coder has to invent the rest, and no prompt rule reliably stops that. The method, not the benchmark score, is what other teams generating structured documents should take away.