2slides-ppt-generator
AI-powered presentation generation via the 2slides API — create slides from text, match a reference image style, summarize documents into decks, add AI voice narration, and export pages/audio. Use for any "make slides", "create a deck", or "slides from this document" request.
What this skill does
# 2slides Presentation Generation
## Overview
Generate professional presentations using the 2slides AI API. The skill supports content-based generation (theme-driven Fast PPT), style matching from a reference image, custom PDF design, document summarization, AI voice narration, and exporting pages/audio. It returns both an interactive slide URL and a downloadable PDF.
This skill is adapted from the official 2slides skill repository ([`2slides/slides-generation-2slides-skills`](https://github.com/2slides/slides-generation-2slides-skills)). It calls the hosted 2slides API and requires the user's own API key and credits.
## When to Use This Skill
- Use when the user asks to "create a presentation", "make slides", or "generate a deck" from text or an outline.
- Use when the user wants slides that match the style of a reference image ("create slides like this image").
- Use when the user wants custom-designed PDF slides without a reference image.
- Use when the user uploads a document and asks to "create slides from this document".
- Use when the user wants to add AI voice narration to generated slides, or export slides as PNG images and narration as WAV audio.
- Use when the user asks "what themes are available?" or wants to browse/select a theme.
## Setup Requirements
Users must have a 2slides API key and credits:
1. **Get API Key:** Visit https://2slides.com/api to create an account and API key
- New users receive **500 free credits** (~50 Fast PPT pages)
2. **Purchase Credits (Optional):** Visit https://2slides.com/pricing to buy additional credits
- Pay-as-you-go, no subscriptions
- Credits never expire
- Up to 20% off on larger packages
3. **Set API Key:** Store the key in environment variable: `SLIDES_2SLIDES_API_KEY`
```bash
export SLIDES_2SLIDES_API_KEY="your_api_key_here"
```
**Credit Costs:**
- Fast PPT: 10 credits/page
- Nano Banana 1K/2K: 100 credits/page
- Nano Banana 4K: 200 credits/page
- Voice Narration: 210 credits/page
- Download Export: FREE
See [references/pricing.md](references/pricing.md) for detailed pricing information.
## Workflow Decision Tree
Choose the appropriate approach based on the user's request:
```
User Request
│
├─ "Create slides from this content/text"
│ └─> Use Content-Based Generation (Section 1)
│
├─ "Create slides like this image"
│ └─> Use Reference Image Generation (Section 2)
│
├─ "Create custom designed slides" or "Create PDF slides"
│ └─> Use Custom PDF Generation (Section 3)
│
├─ "Create slides from this document"
│ └─> Use Document Summarization (Section 4)
│
├─ "Add voice narration" or "Generate audio for slides"
│ └─> Use Voice Narration (Section 5)
│
├─ "Download slides as images" or "Export slides and voices"
│ └─> Use Download Export (Section 6)
│
└─ "Search for themes" or "What themes are available?"
└─> Use Theme Search (Section 7)
```
---
## 1. Content-Based Generation
Generate slides from user-provided text content.
### When to Use
- User provides content directly in their message
- User says "create a presentation about X"
- User provides structured outline or bullet points
### Workflow
**Step 1: Prepare Content**
Structure the content clearly for best results:
```
Title: [Main Topic]
Section 1: [Subtopic]
- Key point 1
- Key point 2
- Key point 3
Section 2: [Subtopic]
- Key point 1
- Key point 2
```
**Step 2: Choose Theme (Required)**
Search for an appropriate theme (themeId is required):
```bash
python scripts/search_themes.py --query "business"
python scripts/search_themes.py --query "professional"
python scripts/search_themes.py --query "creative"
```
Pick a theme ID from the results.
**Step 3: Generate Slides**
Use the `generate_slides.py` script with the theme ID:
```bash
# Basic generation (theme ID required)
python scripts/generate_slides.py --content "Your content here" --theme-id "theme123"
# In different language
python scripts/generate_slides.py --content "Your content" --theme-id "theme123" --language "Spanish"
# Async mode for longer presentations
python scripts/generate_slides.py --content "Your content" --theme-id "theme123" --mode async
```
**Step 4: Handle Results**
**Sync mode response:**
```json
{
"slideUrl": "https://2slides.com/slides/abc123",
"pdfUrl": "https://2slides.com/slides/abc123/download",
"status": "completed"
}
```
Provide both URLs to the user:
- `slideUrl`: Interactive online slides
- `pdfUrl`: Downloadable PDF version
**Async mode response:**
```json
{
"jobId": "job123",
"status": "pending"
}
```
Poll for results:
```bash
python scripts/get_job_status.py --job-id "job123"
```
---
## 2. Reference Image Generation
Generate slides that match the style of a reference image.
### When to Use
- User provides an image URL and says "create slides like this"
- User wants to match existing brand/design style
- User has a template image they want to emulate
### Workflow
**Step 1: Verify Image URL**
Ensure the reference image is:
- Publicly accessible URL
- Valid image format (PNG, JPG, etc.)
- Represents the desired slide style
**Step 2: Generate Slides**
Use the `generate_slides.py` script with `--reference-image`:
```bash
python scripts/generate_slides.py \
--content "Your presentation content" \
--reference-image "https://example.com/template.jpg" \
--language "Auto"
```
**Optional parameters (all values from [2slides API](https://2slides.com/api.md)):**
```bash
--language LANG # Auto, English, Spanish, Arabic, Portuguese, Indonesian,
# Japanese, Russian, Hindi, French, German, Greek, Vietnamese,
# Turkish, Polish, Italian, Korean, Simplified Chinese,
# Traditional Chinese, Thai (default: Auto)
--mode sync|async # default: sync for theme, async for reference-image
--aspect-ratio RATIO # 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 (default: 16:9)
--resolution 1K|2K|4K # default: 2K
--page N # 0=auto, 1-100 (default: 1)
--content-detail concise|standard # default: standard
```
**Note:** This uses Nano Banana Pro mode with credit costs:
- 1K/2K: 100 credits per page
- 4K: 200 credits per page
**Step 3: Handle Results**
This mode always runs synchronously and returns:
```json
{
"slideUrl": "https://2slides.com/workspace?jobId=...",
"pdfUrl": "https://...pdf...",
"status": "completed",
"message": "Successfully generated N slides",
"slidePageCount": N
}
```
Provide both URLs to the user:
- `slideUrl`: View slides in 2slides workspace
- `pdfUrl`: Direct PDF download (expires in 1 hour)
**Processing time:** ~30 seconds per page (30-60 seconds typical for 1-2 pages)
---
## 3. Custom PDF Generation
Generate custom-designed slides from text without needing a reference image.
### When to Use
- User wants custom design without providing a reference image
- User requests "create PDF slides"
- User wants to specify design characteristics
- Alternative to theme-based generation with more design flexibility
### Workflow
**Step 1: Prepare Content**
Structure the content clearly:
```
Title: [Main Topic]
Section 1: [Subtopic]
- Key point 1
- Key point 2
Section 2: [Subtopic]
- Key point 1
- Key point 2
```
**Step 2: Generate Slides**
Use the `create_pdf_slides.py` script:
Install the Python dependency first if it is not already available:
```bash
python -m pip install -r requirements.txt
```
```bash
# Basic generation
python scripts/create_pdf_slides.py --content "Your content here"
# With design style (API: designStyle)
python scripts/create_pdf_slides.py \
--content "Sales Report Q4 2025" \
--design-style "modern minimalist, blue color scheme"
# High resolution with auto page detection
python scripts/create_pdf_slides.py \
--content "Marketing Plan" \
--resolution 4K \
--page 0 \
--content-detail standard
```
**Optional parameters:**
```bash
--design-style "text" # Related in api-integration
sendblue-api
IncludedSend and receive iMessage, SMS, and RCS from application code via the Sendblue HTTP API — text, media, group messages, send styles, reactions, typing indicators, status callbacks, and inbound webhooks.
pakistan-payments-stack
IncludedDesign and implement production-grade Pakistani payment integrations (JazzCash, Easypaisa, bank/PSP rails, optional Raast) for SaaS with PKR billing, webhook reliability, and reconciliation.
sendblue-cli
IncludedSend iMessage and SMS from the shell via the @sendblue/cli npm package — outbound sends, contact management, and account setup with no API client or webhook server required.
youtube-full
IncludedFetch YouTube transcripts, search videos, browse channels, and extract playlists via TranscriptAPI — no yt-dlp, no Google API key, works from any cloud server.