IBM Palette: generate editable decks from a plan
Explore IBM Palette’s slide-generation agent. Check model-backend access, editable PowerPoint output, layout directives and the full cost of building a deck.
Last updated: 2026-11-04
Palette is IBM’s slide-generation workflow for turning a request or reference material into an editable PowerPoint deck. A planner drafts a Markdown plan, a designer chooses content and layout, and a coder writes PptxGenJS JavaScript for individual slides. Rendering and repair steps check the result before you download the .pptx.
Choose it when you want an inspectable plan and generated slide code, with the ability to revise one slide rather than rebuild a whole deck. The public harness is Apache-2.0 licensed. Running the documented configuration also requires access to its model backends: cloning the application does not supply the adapter weights or a running model endpoint.
Check model access before installing Palette
IBM’s research article describes a 20B open-weight model trained with a LoRA adapter in IBM Design Language. The current public repository keeps that adapter as an option, but its default designer and coder configuration points to a Qwen2.5-Coder-32B Palette adapter. These are different configurations; the article’s benchmark does not establish the current default’s performance.
The repository routes planning and editing to additional models. Its documented alternatives include IBM RITS, which needs the IBM VPN, or a configured self-hosted Code Engine fleet for the Palette adapter plus watsonx.ai for the gpt-oss-120b roles. Confirm access to every enabled role, including any critic you select. A running web interface alone does not demonstrate that all generation stages can complete.
Before committing setup time, inspect the backend configuration and the README’s model-backend instructions. You need the matching adapter and endpoint arrangement, not just an arbitrary base model with a similar name. Keep separate terms for the harness, base model, adapter and hosted service.
Set up the deck application
The documented local stack uses Python 3.11+, uv, Node 20+, LibreOffice, Poppler and the fonts used by the deck. LibreOffice produces the PDF preview; missing or substituted fonts can change line breaks and overflow. The repository also supplies a container setup.
Once you have arranged backend access and installed those prerequisites:
git clone https://github.com/IBM/project-palette.git
cd project-palette
make install
source .venv/bin/activate
cp .env.example .env
# Configure the model backends in .env before starting.
make dev
The README uses http://127.0.0.1:18814 for the local UI. Its health response reports backend routing; verify that the required roles have credentials and an accessible endpoint. Keep credentials in the application’s local configuration and out of a deck or shared plan.
You can also use python palette.py build-plan, edit-plan and build-deck from a script. Review the plan between planning and building, especially when attached documents contain figures or numerical claims.
Build a deck you can revise
Start with a small non-confidential brief: audience, purpose, slide count, source facts and desired chart or table. Read the generated Markdown plan before building. Correct missing context there so every slide receives the same agreed content.
Palette turns the plan into a design brief and per-slide code, renders the deck and checks geometry. Flagged slides can be rewritten by an editor; a repair is retained when the checker confirms improvement. After generation, inspect the PDF or slide preview and open the PowerPoint output to check editability, fonts and numerical content.
A request such as [[make this a timeline]] steers a layout choice. It does not teach a new corporate identity on its own. IBM’s article describes training data in IBM Design Language; adapting the model to a different design language is a larger task. IBM is exploring re-skinning from one or two existing PowerPoint files without retraining.
What do the reported scores tell you?
IBM reports that Palette places second on the three-domain PresentBench mean, scoring 59.7 versus NotebookLM’s 60.8. It places first on Economics and Education and third on Talk among the compared systems. The evaluation uses a separate frontier model to draft plans from source documents. The reported result covers that workflow, not a standalone model taking raw documents directly to slides.
IBM generated each of 131 PresentBench decks once and scored it with and without the harness. Adding the harness raised the average PresentBench score by 3.5 points. Geometry checks address overlaps and clipping; they do not establish that every fact is correct or that an unfamiliar brand’s visual language is followed. Check slide figures and quotations against the source documents, then open the PowerPoint file to inspect fonts, clipping and editable elements.
Budget the whole deck workflow
Count planning, design, per-slide coding, repairs and any regeneration. Parallel slide calls can reduce waiting time while still consuming tokens for each slide. A rejected slide and its replacement both contribute to the work performed.
For hosted roles, sum the billed input and output tokens at each role’s rate. For an owned or rented model endpoint, add its provisioned time, including warm-up and idle capacity, plus the rendering machine. For example, an assumed $3/hour endpoint held for 20 minutes costs $1 before other model calls and rendering. Divide by accepted decks, rather than counting every attempted build as useful output.
Confidential documents require a fully understood data path: local rendering does not mean prompts stay local when a role uses a remote backend. Choose endpoint placement and tools to match the material you can send. For broader infrastructure choices, see local model serving. Browse Agent workflows for other task systems.
Sources
Checked 2026-11-04: IBM Research article, official repository and installation, role configuration at the reviewed revision, and CLI workflow.