# Storyboard To Slides

Assemble a PPTX slide deck from a storyboard CSV and images using python-pptx.

- Repository: https://github.com/dp-archive/archive (1107 stars)
- Category: Design
- License: Apache-2.0
- Last updated: 2026-03-04
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add dp-archive/archive --skill storyboard-to-slides -g -a claude-code -y`
Codex: `npx skills add dp-archive/archive --skill storyboard-to-slides -g -a codex -y`
Cursor: `npx skills add dp-archive/archive --skill storyboard-to-slides -g -a cursor -y`
Gemini CLI: `npx skills add dp-archive/archive --skill storyboard-to-slides -g -a gemini-cli -y`

## Description

Assemble a PPTX slide deck from a storyboard CSV and images using python-pptx. Supports multiple slide layouts (full background, left-image-right-text, two-column, etc.), custom themes, fonts, and cover design. Use when the user wants to build a PowerPoint presentation from a structured plan, compose slides from images and text, or create a polished deck from a storyboard CSV. Triggers: "build slides", "create pptx", "assemble presentation", "make PowerPoint", "storyboard to slides", "generate deck".

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Storyboard to Slides

Assemble a polished PPTX from a storyboard CSV + image files using `python-pptx`.

## Dependencies

```python
# pip install python-pptx Pillow
```

## Input Format

Expects `storyboard.csv` with columns:
`slide_no, slide_type, title, bullet_points, image_prompt, speaker_notes, layout`

And image files named `slide_{no}.png` for each row.

## Workflow

### 1. Read the Storyboard

```python
import csv

with open("storyboard.csv", "r", encoding="utf-8") as f:
    reader = csv.DictReader(f)
    slides = list(reader)
```

### 2. Initialize the Presentation

```python
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor

prs = Presentation()
prs.slide_width = Inches(13.333)   # 16:9
prs.slide_height = Inches(7.5)
```

For 4:3 slides: `Inches(10)` x `Inches(7.5)`.

### 3. Define Theme Constants

```python
# Customize per project
THEME = {
    "bg_color": RGBColor(0x1A, 0x1A, 0x2E),     # dark navy
    "title_color": RGBColor(0xFF, 0xFF, 0xFF),
    "text_color": RGBColor(0xE0, 0xE0, 0xE0),
    "accent_color": RGBColor(0x64, 0xB5, 0xF6),
    "title_font": "Arial",
    "body_font": "Arial",
    "title_size": Pt(36),
    "body_size": Pt(18),
}
```

Choose colors that contrast well with the generated images. For light images use dark text overlay with semi-transparent background; for dark images use white text.

### 4. Layout Implementations

#### `full_bg`, Full-screen background image + overlay text

```python
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR

The rest: https://github.com/dp-archive/archive/blob/HEAD/seed_skills/storyboard-to-slides/SKILL.md
