IBM Research built Palette, a 20 billion parameter model designed to create custom presentation decks. Large commercial models frequently revert to generic visual templates and require sending private data to cloud servers. Small open models hosted locally often generate broken visual layouts, such as text running off the slide or overlapping shapes.

Palette solves these spatial problems by dividing slide creation between two distinct tasks handled by a single LoRA adapter. First, a designer role creates a structured JSON brief detailing the content, story outline, and color palette. Next, a coder role reads each slide brief and generates JavaScript code using the pptxgenjs library to render the visual elements.

The model was trained on synthetic data built around the IBM Design Language. An automated harness rendered every generated slide and checked for overlapping text or spatial overflow, turning layout errors into corrective training examples. Running code generation for each slide in parallel makes the final build step 6 to 7 times faster.

Why it matters

Standard generative tools lock users into fixed default styles and often require uploading confidential company documents. Palette demonstrates that smaller open models can learn strict corporate design rules while keeping sensitive information on private local systems.

Because Palette outputs an intermediate JSON plan before rendering, creators and designers can edit content or visual layouts directly. Users can also insert specific directive tags to request elements like bar charts or dark background slides without starting over.

Try it yourself

Use this prompt structure to force a standard AI model to plan presentation layouts before generating slide content.

You are a senior presentation designer. I need a presentation about [insert topic] for [insert audience]. Do not generate final slide text yet. First, create a structured plan for [number] slides. For each slide, define the main visual goal, the core takeaway, target word count, and whether to display the data as bullet points, a comparison table, or a chart. State why you chose that specific layout for each slide.