Loading...
Loading...
Generate professional slide deck images from academic papers and content. Creates comprehensive outlines with style instructions, auto-detects figures from PDFs, then generates individual slide images. Use when user asks to "create slides", "make a presentation", "generate deck", or "slide deck" for papers.
npx skill4agent add luwill/research-skills paper-slide-deck/paper-slide-deck path/to/paper.pdf
/paper-slide-deck path/to/paper.pdf --style academic-paper
/paper-slide-deck path/to/content.md --style sketch-notes
/paper-slide-deck path/to/content.md --audience executives
/paper-slide-deck path/to/content.md --lang zh
/paper-slide-deck path/to/content.md --slides 10
/paper-slide-deck path/to/content.md --outline-only
/paper-slide-deck # Then paste contentscripts/SKILL_DIR${SKILL_DIR}/scripts/<script-name>.ts${SKILL_DIR}| Script | Purpose |
|---|---|
| Generate AI slides via Gemini API (Python) |
| Merge slides into PowerPoint |
| Merge slides into PDF |
| Auto-detect figures/tables in PDF |
| Extract figure from PDF page (uses PyMuPDF fallback) |
| Apply figure container template |
| Option | Description |
|---|---|
| Visual style (see Style Gallery) |
| Target audience: beginners, intermediate, experts, executives, general |
| Output language (en, zh, ja, etc.) |
| Target slide count |
| Generate outline only, skip image generation |
| Style | Description | Best For |
|---|---|---|
| Clean professional, precise charts | Conference talks, thesis defense |
| Technical schematics, grid texture | Architecture, system design |
| Black chalkboard, colorful chalk | Education, tutorials, classroom |
| SaaS dashboard, card-based layouts | Product demos, SaaS, B2B |
| Magazine cover, bold typography, dark | Product launches, keynotes |
| Navy/gold, structured layouts | Investor decks, proposals |
| Cinematic dark mode, glowing accents | Entertainment, gaming |
| Magazine explainers, flat illustrations | Tech explainers, research |
| Ghibli/Disney style, hand-drawn | Educational, storytelling |
| Technical briefing, bilingual labels | Technical docs, academic |
| Ultra-clean, maximum whitespace | Executive briefings, premium |
| Retro 8-bit, chunky pixels | Gaming, developer talks |
| Academic diagrams, precise labeling | Biology, chemistry, medical |
| Hand-drawn, warm & friendly | Educational, tutorials |
| Flat vector, retro & cute | Creative, children's content |
| Aged-paper, historical styling | Historical, heritage, biography |
| Hand-painted textures, natural warmth | Lifestyle, wellness, travel |
| Content Signals | Selected Style |
|---|---|
| paper, thesis, defense, conference, ieee, acm, icml, neurips, cvpr, acl, aaai, iclr | |
| tutorial, learn, education, guide, intro, beginner | |
| classroom, teaching, school, chalkboard, blackboard | |
| architecture, system, data, analysis, technical | |
| creative, children, kids, cute, illustration | |
| briefing, bilingual, infographic, concept | |
| executive, minimal, clean, simple, elegant | |
| saas, product, dashboard, metrics, productivity | |
| investor, quarterly, business, corporate, proposal | |
| launch, marketing, keynote, bold, impact, magazine | |
| entertainment, music, gaming, creative, atmospheric | |
| explainer, journalism, science communication | |
| story, fantasy, animation, magical, whimsical | |
| gaming, retro, pixel, developer, nostalgia | |
| biology, chemistry, medical, pathway, scientific | |
| history, heritage, vintage, expedition, historical | |
| lifestyle, wellness, travel, artistic, natural | |
| Default | |
// LAYOUT| Layout | Description | Best For |
|---|---|---|
| Large centered title + subtitle | Cover slides, section breaks |
| Featured quote with attribution | Testimonials, key insights |
| Single large number as focal point | Impact statistics, metrics |
| Half image, half text | Feature highlights, comparisons |
| Grid of icons with labels | Features, capabilities, benefits |
| Content in balanced columns | Paired information, dual points |
| Content in three columns | Triple comparisons, categories |
| Full-bleed image + text overlay | Visual storytelling, emotional |
| Numbered list with highlights | Session overview, roadmap |
| Structured bullet points | Simple content, lists |
| Layout | Description | Best For |
|---|---|---|
| Sequential flow left-to-right | Timelines, step-by-step |
| Side-by-side A vs B | Before/after, pros-cons |
| Multi-factor grid | Feature comparisons |
| Pyramid or stacked levels | Priority, importance |
| Central node with radiating items | Concept maps, ecosystems |
| Varied-size tiles | Overview, summary |
| Narrowing stages | Conversion, filtering |
| Metrics with charts/numbers | KPIs, data display |
| Overlapping circles | Relationships, intersections |
| Continuous cycle | Recurring processes |
| Curved path with milestones | Journey, timeline |
| Parent-child hierarchy | Org charts, taxonomies |
| Visible vs hidden layers | Surface vs depth |
| Gap with connection | Problem-solution |
| Layout | Description | Best For |
|---|---|---|
| Title, authors, affiliations, venue | Conference paper cover |
| Numbered section list with highlights | Talk structure overview |
| Central architecture/pipeline diagram | Methods, system design |
| Chart area + data annotations | Quantitative results |
| Centered equation + variable definitions | Mathematical derivations |
| 2x2 or 3x2 image comparison grid | Visual results, ablations |
| Numbered citation list | Key references slide |
| Numbered contribution points | Contributions summary |
Layout: <name>// LAYOUTslide-deck/{topic-slug}/
├── source-{slug}.{ext} # Source files (text, images, etc.)
├── outline.md
├── outline-{style}.md # Style variant outlines
├── prompts/
│ └── 01-slide-cover.md, 02-slide-{slug}.md, ...
├── 01-slide-cover.png, 02-slide-{slug}.png, ...
├── {topic-slug}.pptx
└── {topic-slug}.pdfintro-machine-learningslide-deck/{topic-slug}/{topic-slug}-YYYYMMDD-HHMMSSintro-mlintro-ml-20260118-143052source-{slug}.{ext}source-article.mdsource-diagram.pngsource-data.xlsxsource.mdreferences/analysis-framework.md--style--slidesnpx -y bun ${SKILL_DIR}/scripts/detect-figures.ts --pdf source-paper.pdf --output figures.jsonreferences/outline-template.mdfigures.jsonreferences/analysis-framework.md// IMAGE_SOURCESource: extractSource: extractSource: extractSource: generateoutline-{style}.md| Question | When to Ask |
|---|---|
| Style variant | Always (3 options + custom) |
| Language | Only if source ≠ user language |
outline-{style}.mdoutline.mdoutline.md--outline-onlyreferences/base-prompt.mdLayout:Layout: hub-spokeprompts/| Option | Label | Description |
|---|---|---|
| 1 | Gemini API (Recommended) | Official Google API via Python. Requires GOOGLE_API_KEY env var. |
| 2 | Gemini Web (Browser-based) | ⚠️ Uses reverse-engineered web API. No API key needed but may break. |
GOOGLE_API_KEYGEMINI_API_KEYpython ${SKILL_DIR}/scripts/generate-slides.py <slide-deck-dir> --model gemini-3-pro-image-previewgoogle-genai--modelslides/$APPDATA/baoyu-skills/gemini-web/consent.json~/Library/Application Support/baoyu-skills/gemini-web/consent.json~/.local/share/baoyu-skills/gemini-web/consent.json⚠️ DISCLAIMER: This uses a reverse-engineered Gemini Web API (NOT official).
Risks: May break anytime, no support, possible account risk.npx -y bun ${GEMINI_WEB_SKILL_DIR}/scripts/main.ts \
--promptfiles prompts/01-slide-cover.md \
--image 01-slide-cover.png \
--sessionId slides-{topic-slug}-{timestamp}GEMINI_WEB_SKILL_DIRbaoyu-danger-gemini-webHTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890Source: extractmkdir -p figuresnpx -y bun ${SKILL_DIR}/scripts/extract-figure.ts \
--pdf source-paper.pdf \
--page <page-number> \
--output figures/figure-<N>.pngnpx -y bun ${SKILL_DIR}/scripts/apply-template.ts \
--figure figures/figure-<N>.png \
--title "<slide-headline>" \
--caption "Figure <N>: <caption-text>" \
--output <NN>-slide-<slug>.pngSource: generatesource-paper.pdf// IMAGE_SOURCEFigure:Page:extract-figure.tsimport fitz
doc = fitz.open("source-paper.pdf")
page = doc[page_num - 1] # 0-indexed
mat = fitz.Matrix(3, 3) # 3x scale for high resolution
pix = page.get_pixmap(matrix=mat)
pix.save(f"extracted/page-{page_num}.png")apply-template.tsSource: extractslides-{topic-slug}-{timestamp}npx -y bun ${SKILL_DIR}/scripts/merge-to-pptx.ts <slide-deck-dir>
npx -y bun ${SKILL_DIR}/scripts/merge-to-pdf.ts <slide-deck-dir>Slide Deck Complete!
Topic: [topic]
Style: [style name]
Location: [directory path]
Slides: N total
- 01-slide-cover.png ✓ Cover
- 02-slide-intro.png ✓ Content
- ...
- {NN}-slide-back-cover.png ✓ Back Cover
Outline: outline.md
PPTX: {topic-slug}.pptx
PDF: {topic-slug}.pdfreferences/modification-guide.mdGOOGLE_API_KEYGEMINI_API_KEYgoogle-genaigemini-3-pro-image-previewbaoyu-danger-gemini-web.claude/skills/baoyu-danger-gemini-webpdfjs-distpymupdfcanvas| File | Content |
|---|---|
| Deep content analysis for presentations |
| Outline structure and STYLE_INSTRUCTIONS format |
| Edit, add, delete slide workflows |
| Content and style guidelines |
| Base prompt for image generation |
| Visual specs for extracted figure containers |
| Full style specifications |
.paper-skills/paper-slide-deck/EXTEND.md~/.paper-skills/paper-slide-deck/EXTEND.md