演示文稿生成
当用户请求生成、创建或制作演示文稿(PPT/PPTX)时使用此技能。通过为每张幻灯片生成图像并将其组合成 PowerPoint 文件,创建视觉丰富的幻灯片。
文件预览
---
name: ppt-generation
description: Use this skill when the user requests to generate, create, or make presentations (PPT/PPTX). Creates visually rich slides by generating images for each slide and composing them into a PowerPoint file.
---
# PPT Generation Skill
## Overview
This skill generates professional PowerPoint presentations by creating AI-generated images for each slide and composing them into a PPTX file. The workflow includes planning the presentation structure with a consistent visual style, generating slide images sequentially (using the previous slide as a reference for style consistency), and assembling them into a final presentation.
## Core Capabilities
- Plan and structure multi-slide presentations with unified visual style
- Support multiple presentation styles: Business, Academic, Minimal, Apple Keynote, Creative
- Generate unique AI images for each slide using image-generation skill
- Maintain visual consistency by using previous slide as reference image
- Compose images into a professional PPTX file
## Presentation Styles
Choose one of the following styles when creating the presentation plan:
| Style | Description | Best For |
|-------|-------------|----------|
| **glassmorphism** | Frosted glass panels with blur effects, floating translucent cards, vibrant gradient backgrounds, depth through layering | Tech products, AI/SaaS demos, futuristic pitches |
| **dark-premium** | Rich black backgrounds (#0a0a0a), luminous accent colors, subtle glow effects, luxury brand aesthetic | Premium products, executive presentations, high-end brands |
| **gradient-modern** | Bold mesh gradients, fluid color transitions, contemporary typography, vibrant yet sophisticated | Startups, creative agencies, brand launches |
| **neo-brutalist** | Raw bold typography, high contrast, intentional "ugly" aesthetic, anti-design as design, Memphis-inspired | Edgy brands, Gen-Z targeting, disruptive startups |
| **3d-isometric** | Clean isometric illustrations, floating 3D elements, soft shadows, tech-forward aesthetic | Tech explainers, product features, SaaS presentations |
| **editorial** | Magazine-quality layouts, sophisticated typography hierarchy, dramatic photography, Vogue/Bloomberg aesthetic | Annual reports, luxury brands, thought leadership |
| **minimal-swiss** | Grid-based precision, Helvetica-inspired typography, bold use of negative space, timeless modernism | Architecture, design firms, premium consulting |
| **keynote** | Apple-inspired aesthetic with bold typography, dramatic imagery, high contrast, cinematic feel | Keynotes, product reveals, inspirational talks |
## Workflow
### Step 1: Understand Requirements
When a user requests presentation generation, identify:
- Topic/subject: What is the presentation about
- Number of slides: How many slides are needed (default: 5-10)
- **Style**: business / academic / minimal / keynote / creative
- Aspect ratio: Standard (16:9) or classic (4:3)
- Content outline: Key points for each slide
- You don't need to check the folder under `/mnt/user-data`
### Step 2: Create Presentation Plan
Create a JSON file in `/mnt/user-data/workspace/` with the presentation structure. **Important**: Include the `style` field to define the overall visual consistency.
```json
{
"title": "Presentation Title",
"style": "keynote",
"style_guidelines": {
"color_palette": "Deep black backgrounds, white text, single accent color (blue or orange)",
"typography": "Bold sans-serif headlines, clean body text, dramatic size contrast",
"imagery": "High-quality photography, full-bleed images, cinematic composition",
"layout": "Generous whitespace, centered focus, minimal elements per slide"
},
"aspect_ratio": "16:9",
"slides": [
{
"slide_number": 1,
"type": "title",
"title": "Main Title",
"subtitle": "Subtitle or tagline",
"visual_description": "Detailed description for image generation"
},
{
"slide_number": 2,
"type": "content",
"title": "Slide Title",
"key_points": ["Point 1", "Point 2", "Point 3"],
"visual_description": "Detailed description for image generation"
}
]
}
```
### Step 3: Generate Slide Images Sequentially
**IMPORTANT**: Generate slides **strictly one by one, in order**. Do NOT parallelize or batch image generation. Each slide depends on the previous slide's output as a reference image. Generating slides in parallel will break visual consistency and is not allowed.
1. Read the image-generation skill: `/mnt/skills/public/image-generation/SKILL.md`
2. **For the FIRST slide (slide 1)**, create a prompt that establishes the visual style:
```json
{
"prompt": "Professional presentation slide. [style_guidelines from plan]. Title: 'Your Title'. [visual_description]. This slide establishes the visual language for the entire presentation.",
"style": "[Based on chosen style - e.g., Apple Keynote aesthetic, dramatic lighting, cinematic]",
"composition": "Clean layout with clear text hierarchy, [style-specific composition]",
"color_palette": "[From style_guidelines]",
"typography": "[From style_guidelines]"
}
```
```bash
python /mnt/skills/public/image-generation/scripts/generate.py \
--prompt-file /mnt/user-data/workspace/slide-01-prompt.json \
--output-file /mnt/user-data/outputs/slide-01.jpg \
--aspect-ratio 16:9
```
3. **For subsequent slides (slide 2+)**, use the PREVIOUS slide as a reference image:
```json
{
"prompt": "Professional presentation slide continuing the visual style from the reference image. Maintain the same color palette, typography style, and overall aesthetic. Title: 'Slide Title'. [visual_description]. Keep visual consistency with the reference.",
"style": "Match the style of the reference image exactly",
"composition": "Similar layout principles as reference, adapted for this content",
"color_palette": "Same as reference image",
"consistency_note": "This slide must look like it belongs in the same presentation as the reference image"
}
```
```bash
python /mnt/skills/public/image-generation/scripts/generate.py \
--prompt-file /mnt/user-data/workspace/slide-02-prompt.json \
--reference-images /mnt/user-data/outputs/slide-01.jpg \
--output-file /mnt/user-data/outputs/slide-02.jpg \
--aspect-ratio 16:9
```
4. **Continue for all remaining slides**, always referencing the previous slide:
```bash
# Slide 3 references slide 2
python /mnt/skills/public/image-generation/scripts/generate.py \
--prompt-file /mnt/user-data/workspace/slide-03-prompt.json \
--reference-images /mnt/user-data/outputs/slide-02.jpg \
--output-file /mnt/user-data/outputs/slide-03.jpg \
--aspect-ratio 16:9
# Slide 4 references slide 3
python /mnt/skills/public/image-generation/scripts/generate.py \
--prompt-file /mnt/user-data/workspace/slide-04-prompt.json \
--reference-images /mnt/user-data/outputs/slide-03.jpg \
--output-file /mnt/user-data/outputs/slide-04.jpg \
--aspect-ratio 16:9
```
### Step 4: Compose PPT
After all slide images are generated, call the composition script:
```bash
python /mnt/skills/public/ppt-generation/scripts/generate.py \
--plan-file /mnt/user-data/workspace/presentation-plan.json \
--slide-images /mnt/user-data/outputs/slide-01.jpg /mnt/user-data/outputs/slide-02.jpg /mnt/user-data/outputs/slide-03.jpg \
--output-file /mnt/user-data/outputs/presentation.pptx
```
Parameters:
- `--plan-file`: Absolute path to the presentation plan JSON file (required)
- `--slide-images`: Absolute paths to slide images in order (required, space-separated)
- `--output-file`: Absolute path to output PPTX file (required)
[!NOTE]
Do NOT read the python file, just call it with the parameters.
## Complete Example: Glassmorphism Style (最现代前卫)
User request: "Create a presentation about AI product launch"
### Step 1: Create presentation plan
Create `/mnt/user-data/workspace/ai-product-plan.json`:
```json
{
"title": "Introducing Nova AI",
"style": "glassmorphism",
"style_guidelines": {
"color_palette": "Vibrant purple-to-cyan gradient background (#667eea→#00d4ff), frosted glass panels with 15-20% white opacity, electric accents",
"typography": "SF Pro Display style, bold 700 weight white titles with subtle text-shadow, clean 400 weight body text, excellent contrast on glass",
"imagery": "Abstract 3D glass spheres, floating translucent geometric shapes, soft luminous orbs, depth through layered transparency",
"layout": "Centered frosted glass cards with 32px rounded corners, 48-64px padding, floating above gradient, layered depth with soft shadows",
"effects": "Backdrop blur 20-40px on glass panels, subtle white border glow, soft colored shadows matching gradient, light refraction effects",
"visual_language": "Apple Vision Pro / visionOS aesthetic, premium depth through transparency, futuristic yet approachable, 2024 design trends"
},
"aspect_ratio": "16:9",
"slides": [
{
"slide_number": 1,
"type": "title",
"title": "Introducing Nova AI",
"subtitle": "Intelligence, Reimagined",
"visual_description": "Stunning gradient background flowing from deep purple (#667eea) through magenta to cyan (#00d4ff). Center: large frosted glass panel with strong backdrop blur, containing bold white title 'Introducing Nova AI' and lighter subtitle. Floating 3D glass spheres and abstract shapes around the card creating depth. Soft glow emanating from behind the glass panel. Premium visionOS aesthetic. The glass card has subtle white border (1px rgba 255,255,255,0.3) and soft purple-tinted shadow."
},
{
"slide_number": 2,
"type": "content",
"title": "Why Nova?",
"key_points": ["10x faster processing", "Human-like understanding", "Enterprise-grade security"],
"visual_description": "Same purple-cyan gradient background. Left side: floating frosted glass card with title 'Why Nova?' in bold white, three key points below with subtle glass pill badges. Right side: abstract 3D visualization of neural network as interconnected glass nodes with soft glow. Floating translucent geometric shapes (icosahedrons, tori) adding depth. Consistent glassmorphism aesthetic with previous slide."
},
{
"slide_number": 3,
"type": "content",
"title": "How It Works",
"key_points": ["Natural language input", "Multi-modal processing", "Instant insights"],
"visual_description": "Gradient background consistent with previous slides. Central composition: three stacked frosted glass cards at slight angles showing the workflow steps, connected by soft glowing lines. Each card has an abstract icon. Floating glass orbs and light particles around the composition. Title 'How It Works' in bold white at top. Depth created through card layering and transparency."
},
{
"slide_number": 4,
"type": "content",
"title": "Built for Scale",
"key_points": ["1M+ concurrent users", "99.99% uptime", "Global infrastructure"],
"visual_description": "Same gradient background. Asymmetric layout: right side features large frosted glass panel with metrics displayed in bold typography. Left side: abstract 3D globe made of glass panels and connection lines, representing global scale. Floating data visualization elements as small glass cards with numbers. Soft ambient glow throughout. Premium tech aesthetic."
},
{
"slide_number": 5,
"type": "conclusion",
"title": "The Future Starts Now",
"subtitle": "Join the waitlist",
"visual_description": "Dramatic finale slide. Gradient background with slightly increased vibrancy. Central frosted glass card with bold title 'The Future Starts Now' and call-to-action subtitle. Behind the card: burst of soft light rays and floating glass particles creating celebration effect. Multiple layered glass shapes creating depth. The most visually impactful slide while maintaining style consistency."
}
]
}
```
### Step 2: Read image-generation skill
Read `/mnt/skills/public/image-generation/SKILL.md` to understand how to generate images.
### Step 3: Generate slide images sequentially with reference chaining
**Slide 1 - Title (establishes the visual language):**
Create `/mnt/user-data/workspace/nova-slide-01.json`:
```json
{
"prompt": "Ultra-premium presentation title slide with glassmorphism design. Background: smooth flowing gradient from deep purple (#667eea) through magenta (#f093fb) to cyan (#00d4ff), soft and vibrant. Center: large frosted glass panel with strong backdrop blur effect, rounded corners 32px, containing bold white sans-serif title 'Introducing Nova AI' (72pt, SF Pro Display style, font-weight 700) with subtle text shadow, subtitle 'Intelligence, Reimagined' below in lighter weight. The glass panel has subtle white border (1px rgba 255,255,255,0.25) and soft purple-tinted drop shadow. Floating around the card: 3D glass spheres with refraction, translucent geometric shapes (icosahedrons, abstract blobs), creating depth and dimension. Soft luminous glow emanating from behind the glass panel. Small floating particles of light. Apple Vision Pro / visionOS UI aesthetic. Professional presentation slide, 16:9 aspect ratio. Hyper-modern, premium tech product launch feel.",
"style": "Glassmorphism, visionOS aesthetic, Apple Vision Pro UI style, premium tech, 2024 design trends",
"composition": "Centered glass card as focal point, floating 3D elements creating depth at edges, 40% negative space, clear visual hierarchy",
"lighting": "Soft ambient glow from gradient, light refraction through glass elements, subtle rim lighting on 3D shapes",
"color_palette": "Purple gradient #667eea, magenta #f093fb, cyan #00d4ff, frosted white rgba(255,255,255,0.15), pure white text #ffffff",
"effects": "Backdrop blur on glass panels, soft drop shadows with color tint, light refraction, subtle noise texture on glass, floating particles"
}
```
```bash
python /mnt/skills/public/image-generation/scripts/generate.py \
--prompt-file /mnt/user-data/workspace/nova-slide-01.json \
--output-file /mnt/user-data/outputs/nova-slide-01.jpg \
--aspect-ratio 16:9
```
**Slide 2 - Content (MUST reference slide 1 for consistency):**
Create `/mnt/user-data/workspace/nova-slide-02.json`:
```json
{
"prompt": "Presentation slide continuing EXACT visual style from reference image. SAME purple-to-cyan gradient background, SAME glassmorphism aesthetic, SAME typography style. Left side: frosted glass card with backdrop blur containing title 'Why Nova?' in bold white (matching reference font style), three feature points as subtle glass pill badges below. Right side: abstract 3D neural network visualization made of interconnected glass nodes with soft cyan glow, floating in space. Floating translucent geometric shapes (matching style from reference) adding depth. The frosted glass has identical treatment: white border, purple-tinted shadow, same blur intensity. CRITICAL: This slide must look like it belongs in the exact same presentation as the reference image - same colors, same glass treatment, same overall aesthetic.",
"style": "MATCH REFERENCE EXACTLY - Glassmorphism, visionOS aesthetic, same visual language",
"composition": "Asymmetric split: glass card left (40%), 3D visualization right (40%), breathing room between elements",
"color_palette": "EXACTLY match reference: purple #667eea, cyan #00d4ff gradient, same frosted white treatment, same text white",
"consistency_note": "CRITICAL: Must be visually identical in style to reference image. Same gradient colors, same glass blur intensity, same shadow treatment, same typography weight and style. Viewer should immediately recognize this as the same presentation."
}
```
```bash
python /mnt/skills/public/image-generation/scripts/generate.py \
--prompt-file /mnt/user-data/workspace/nova-slide-02.json \
--reference-images /mnt/user-data/outputs/nova-slide-01.jpg \
--output-file /mnt/user-data/outputs/nova-slide-02.jpg \
--aspect-ratio 16:9
```
**Slides 3-5: Continue the same pattern, each referencing the previous slide**
Key consistency rules for subsequent slides:
- Always include "continuing EXACT visual style from reference image" in prompt
- Specify "SAME gradient background", "SAME glass treatment", "SAME typography"
- Include `consistency_note` emphasizing style matching
- Reference the immediately previous slide image
### Step 4: Compose final PPT
```bash
python /mnt/skills/public/ppt-generation/scripts/generate.py \
--plan-file /mnt/user-data/workspace/nova-plan.json \
--slide-images /mnt/user-data/outputs/nova-slide-01.jpg /mnt/user-data/outputs/nova-slide-02.jpg /mnt/user-data/outputs/nova-slide-03.jpg /mnt/user-data/outputs/nova-slide-04.jpg /mnt/user-data/outputs/nova-slide-05.jpg \
--output-file /mnt/user-data/outputs/nova-presentation.pptx
```
## Style-Specific Guidelines
### Glassmorphism Style (推荐 - 最现代前卫)
```json
{
"style": "glassmorphism",
"style_guidelines": {
"color_palette": "Vibrant gradient backgrounds (purple #667eea to pink #f093fb, or cyan #4facfe to blue #00f2fe), frosted white panels with 20% opacity, accent colors that pop against the gradient",
"typography": "SF Pro Display or Inter font style, bold 600-700 weight titles, clean 400 weight body, white text with subtle drop shadow for readability on glass",
"imagery": "Abstract 3D shapes floating in space, soft blurred orbs, geometric primitives with glass material, depth through overlapping translucent layers",
"layout": "Floating card panels with backdrop-blur effect, generous padding (48-64px), rounded corners (24-32px radius), layered depth with subtle shadows",
"effects": "Frosted glass blur (backdrop-filter: blur 20px), subtle white border (1px rgba 255,255,255,0.2), soft glow behind panels, floating elements with drop shadows",
"visual_language": "Premium tech aesthetic like Apple Vision Pro UI, depth through transparency, light refracting through glass surfaces"
}
}
```
### Dark Premium Style
```json
{
"style": "dark-premium",
"style_guidelines": {
"color_palette": "Deep black base (#0a0a0a to #121212), luminous accent color (electric blue #00d4ff, neon purple #bf5af2, or gold #ffd700), subtle gray gradients for depth (#1a1a1a to #0a0a0a)",
"typography": "Elegant sans-serif (Neue Haas Grotesk or Suisse Int'l style), dramatic size contrast (72pt+ headlines, 18pt body), letter-spacing -0.02em for headlines, pure white (#ffffff) text",
"imagery": "Dramatic studio lighting, rim lights and edge glow, cinematic product shots, abstract light trails, premium material textures (brushed metal, matte surfaces)",
"layout": "Generous negative space (60%+), asymmetric balance, content anchored to grid but with breathing room, single focal point per slide",
"effects": "Subtle ambient glow behind key elements, light bloom effects, grain texture overlay (2-3% opacity), vignette on edges",
"visual_language": "Luxury tech brand aesthetic (Bang & Olufsen, Porsche Design), sophistication through restraint, every element intentional"
}
}
```
### Gradient Modern Style
```json
{
"style": "gradient-modern",
"style_guidelines": {
"color_palette": "Bold mesh gradients (Stripe/Linear style: purple-pink-orange #7c3aed→#ec4899→#f97316, or cool tones: cyan-blue-purple #06b6d4→#3b82f6→#8b5cf6), white or dark text depending on background intensity",
"typography": "Modern geometric sans-serif (Satoshi, General Sans, or Clash Display style), variable font weights, oversized bold headlines (80pt+), comfortable body text (20pt)",
"imagery": "Abstract fluid shapes, morphing gradients, 3D rendered abstract objects, soft organic forms, floating geometric primitives",
"layout": "Dynamic asymmetric compositions, overlapping elements with blend modes, text integrated with gradient flows, full-bleed backgrounds",
"effects": "Smooth gradient transitions, subtle noise texture (3-5% for depth), soft shadows with color tint matching gradient, motion blur suggesting movement",
"visual_language": "Contemporary SaaS aesthetic (Stripe, Linear, Vercel), energetic yet professional, forward-thinking tech vibes"
}
}
```
### Neo-Brutalist Style
```json
{
"style": "neo-brutalist",
"style_guidelines": {
"color_palette": "High contrast primaries: stark black, pure white, with bold accent (hot pink #ff0080, electric yellow #ffff00, or raw red #ff0000), optional: Memphis-inspired pastels as secondary",
"typography": "Ultra-bold condensed type (Impact, Druk, or Bebas Neue style), UPPERCASE headlines, extreme size contrast, intentionally tight or overlapping letter-spacing",
"imagery": "Raw unfiltered photography, intentional visual noise, halftone patterns, cut-out collage aesthetic, hand-drawn elements, stickers and stamps",
"layout": "Broken grid, overlapping elements, thick black borders (4-8px), visible structure, anti-whitespace (dense but organized chaos)",
"effects": "Hard shadows (no blur, offset 8-12px), pixelation accents, scan lines, CRT screen effects, intentional 'mistakes'",
"visual_language": "Anti-corporate rebellion, DIY zine aesthetic meets digital, raw authenticity, memorable through boldness"
}
}
```
### 3D Isometric Style
```json
{
"style": "3d-isometric",
"style_guidelines": {
"color_palette": "Soft contemporary palette: muted purples (#8b5cf6), teals (#14b8a6), warm corals (#fb7185), with cream or light gray backgrounds (#fafafa), consistent saturation across elements",
"typography": "Friendly geometric sans-serif (Circular, Gilroy, or Quicksand style), medium weight headlines, excellent readability, comfortable 24pt body text",
"imagery": "Clean isometric 3D illustrations, consistent 30° isometric angle, soft clay-render aesthetic, floating platforms and devices, cute simplified objects",
"layout": "Central isometric scene as hero, text balanced around 3D elements, clear visual hierarchy, comfortable margins (64px+)",
"effects": "Soft drop shadows (20px blur, 30% opacity), ambient occlusion on 3D objects, subtle gradients on surfaces, consistent light source (top-left)",
"visual_language": "Friendly tech illustration (Slack, Notion, Asana style), approachable complexity, clarity through simplification"
}
}
```
### Editorial Style
```json
{
"style": "editorial",
"style_guidelines": {
"color_palette": "Sophisticated neutrals: off-white (#f5f5f0), charcoal (#2d2d2d), with single accent color (burgundy #7c2d12, forest #14532d, or navy #1e3a5f), occasional full-color photography",
"typography": "Refined serif for headlines (Playfair Display, Freight, or Editorial New style), clean sans-serif for body (Söhne, Graphik), dramatic size hierarchy (96pt headlines, 16pt body), generous line-height 1.6",
"imagery": "Magazine-quality photography, dramatic crops, full-bleed images, portraits with intentional negative space, editorial lighting (Vogue, Bloomberg Businessweek style)",
"layout": "Sophisticated grid system (12-column), intentional asymmetry, pull quotes as design elements, text wrapping around images, elegant margins",
"effects": "Minimal effects - let photography and typography shine, subtle image treatments (slight desaturation, film grain), elegant borders and rules",
"visual_language": "High-end magazine aesthetic, intellectual sophistication, content elevated through design restraint"
}
}
```
### Minimal Swiss Style
```json
{
"style": "minimal-swiss",
"style_guidelines": {
"color_palette": "Pure white (#ffffff) or off-white (#fafaf9) backgrounds, true black (#000000) text, single bold accent (Swiss red #ff0000, Klein blue #002fa7, or signal yellow #ffcc00)",
"typography": "Helvetica Neue or Aktiv Grotesk, strict type scale (12/16/24/48/96), medium weight for body, bold for emphasis only, flush-left ragged-right alignment",
"imagery": "Objective photography, geometric shapes, clean iconography, mathematical precision, intentional empty space as compositional element",
"layout": "Strict grid adherence (baseline grid visible in spirit), modular compositions, generous whitespace (40%+ of slide), content aligned to invisible grid lines",
"effects": "None - purity of form, no shadows, no gradients, no decorative elements, occasional single hairline rules",
"visual_language": "International Typographic Style, form follows function, timeless modernism, Dieter Rams-inspired restraint"
}
}
```
### Keynote Style (Apple风格)
```json
{
"style": "keynote",
"style_guidelines": {
"color_palette": "Deep blacks (#000000 to #1d1d1f), pure white text, signature blue (#0071e3) or gradient accents (purple-pink for creative, blue-teal for tech)",
"typography": "San Francisco Pro Display, extreme weight contrast (bold 80pt+ titles, light 24pt body), negative letter-spacing on headlines (-0.03em), optical alignment",
"imagery": "Cinematic photography, shallow depth of field, dramatic lighting (rim lights, spot lighting), product hero shots with reflections, full-bleed imagery",
"layout": "Maximum negative space, single powerful image or statement per slide, content centered or dramatically offset, no clutter",
"effects": "Subtle gradient overlays, light bloom and glow on key elements, reflection on surfaces, smooth gradient backgrounds",
"visual_language": "Apple WWDC keynote aesthetic, confidence through simplicity, every pixel considered, theatrical presentation"
}
}
```
## Output Handling
After generation:
- The PPTX file is saved in `/mnt/user-data/outputs/`
- Share the generated presentation with user using `present_files` tool
- Also share the individual slide images if requested
- Provide brief description of the presentation
- Offer to iterate or regenerate specific slides if needed
## Notes
### Critical Quality Guidelines
**Prompt Engineering for Professional Results:**
- Always use English for image prompts regardless of user's language
- Be EXTREMELY specific about visual details - vague prompts produce generic results
- Include exact hex color codes (e.g., #667eea not "purple")
- Specify typography details: font weight (400/700), size hierarchy, letter-spacing
- Describe effects precisely: "backdrop blur 20px", "drop shadow 8px blur 30% opacity"
- Reference real design systems: "visionOS aesthetic", "Stripe website style", "Bloomberg Businessweek layout"
**Visual Consistency (Most Important):**
- **Generate slides sequentially** - each slide MUST reference the previous one
- The first slide is critical - it establishes the visual language for the entire presentation
- In every subsequent slide prompt, explicitly state: "continuing EXACT visual style from reference image"
- Use SAME, EXACT, MATCH keywords emphatically in prompts to enforce consistency
- Include a `consistency_note` field in every JSON prompt after slide 1
- If a slide looks inconsistent, regenerate it with STRONGER reference emphasis
**Design Principles for Modern Aesthetics:**
- Embrace negative space - 40-60% empty space creates premium feel
- Limit elements per slide - one focal point, one message
- Use depth through layering (shadows, transparency, z-depth)
- Typography hierarchy: massive headlines (72pt+), comfortable body (18-24pt)
- Color restraint: one primary palette, 1-2 accent colors maximum
**Common Mistakes to Avoid:**
- ❌ Generic prompts like "professional slide" - be specific
- ❌ Too many elements/text per slide - cluttered = unprofessional
- ❌ Inconsistent colors between slides - always reference previous slide
- ❌ Skipping the reference image parameter - this breaks visual consistency
- ❌ Using different design styles within one presentation
- ❌ Generating slides in parallel - slides MUST be generated one at a time in order (slide 1 → 2 → 3 ...), never concurrently
**Recommended Styles for Different Contexts:**
- Tech product launch → `glassmorphism` or `gradient-modern`
- Luxury/premium brand → `dark-premium` or `editorial`
- Startup pitch → `gradient-modern` or `minimal-swiss`
- Executive presentation → `dark-premium` or `keynote`
- Creative agency → `neo-brutalist` or `gradient-modern`
- Data/analytics → `minimal-swiss` or `3d-isometric`
SKILL.md
| name | ppt-generation |
|---|---|
| description | 当用户请求生成、创建或制作演示文稿(PPT/PPTX)时使用此技能。通过为每张幻灯片生成图像并将其组合成 PowerPoint 文件,创建视觉丰富的幻灯片。 |
PPT 生成技能
概述
该技能通过为每张幻灯片创建 AI 生成的图像,并将其组合成 PPTX 文件,来生成专业的 PowerPoint 演示文稿。工作流程包括:规划具有统一视觉风格的演示文稿结构,依次生成幻灯片图像(使用上一张幻灯片作为参考以保持风格一致性),最后将它们组合成最终演示文稿。
核心能力
- 规划并构建具有统一视觉风格的多页演示文稿
- 支持多种演示风格:商务、学术、极简、Apple Keynote、创意
- 使用图像生成技能为每张幻灯片生成独特的 AI 图像
- 通过将上一张幻灯片作为参考图像保持视觉一致性
- 将图像组合成专业的 PPTX 文件
演示风格
在创建演示文稿计划时,从以下风格中选择一种:
| 风格 | 描述 | 适用场景 |
|---|---|---|
| 玻璃拟态 | 带有模糊效果的磨砂玻璃面板、浮动的半透明卡片、鲜艳的渐变背景、通过层次营造深度 | 科技产品、AI/SaaS 演示、未来主义路演 |
| 暗黑高级 | 浓郁的黑色背景(#0a0a0a)、发光的强调色、微妙的发光效果、奢华品牌美学 | 高端产品、高管演示、高端品牌 |
| 渐变现代 | 大胆的网格渐变、流动的颜色过渡、当代字体设计、鲜艳而不失精致 | 初创公司、创意机构、品牌发布 |
| 新粗野主义 | 原始粗粝的字体、高对比度、有意为之的“丑陋”美学、反设计即设计、孟菲斯风格影响 | 前卫品牌、面向 Z 世代、颠覆性初创公司 |
| 3D 等距 | 简洁的等距插图、浮动的 3D 元素、柔和的阴影、科技前瞻美学 | 技术解释、产品特性、SaaS 演示 |
| 编辑风格 | 杂志级排版、精致的字体层次、戏剧性的摄影作品、Vogue/Bloomberg 美学 | 年度报告、奢侈品牌、思想领导力 |
| 极简瑞士 | 基于网格的精确、Helvetica 风格的字体、大胆运用负空间、永恒的现代主义 | 建筑、设计公司、高端咨询 |
| Keynote 风格 | Apple 灵感美学,包含大胆的字体、戏剧性的图像、高对比度、电影感 | 主题演讲、产品发布、激励演讲 |
工作流程
第 1 步:理解需求
当用户请求生成演示文稿时,确定:
- 主题/主题:演示文稿关于什么
- 幻灯片数量:需要多少张幻灯片(默认:5–10)
- 风格:商务 / 学术 / 极简 / Keynote / 创意
- 宽高比:标准(16:9)或传统(4:3)
- 内容大纲:每张幻灯片的关键点
- 无需检查
/mnt/user-data下的文件夹
第 2 步:创建演示文稿计划
在 /mnt/user-data/workspace/ 中创建一个包含演示文稿结构的 JSON 文件。重要:包含 style 字段以定义整体视觉一致性。
{
"title": "演示文稿标题",
"style": "keynote",
"style_guidelines": {
"color_palette": "深黑色背景,白色文本,单一强调色(蓝色或橙色)",
"typography": "粗体无衬线标题,干净的正文字体,夸张的尺寸对比",
"imagery": "高质量摄影,全出血图像,电影式构图",
"layout": "充裕的留白,居中焦点,每张幻灯片元素极少"
},
"aspect_ratio": "16:9",
"slides": [
{
"slide_number": 1,
"type": "title",
"title": "主标题",
"subtitle": "副标题或标语",
"visual_description": "详细的视觉描述,用于图像生成"
},
{
"slide_number": 2,
"type": "content",
"title": "幻灯片标题",
"key_points": ["要点 1", "要点 2", "要点 3"],
"visual_description": "详细的视觉描述,用于图像生成"
}
]
}第 3 步:依次生成幻灯片图像
重要:必须严格按顺序一张一张地生成幻灯片。不要并行或批处理图像生成。每张幻灯片都依赖上一张的输出作为参考图像。并行生成会破坏视觉一致性,是不允许的。
-
阅读图像生成技能:
/mnt/skills/public/image-generation/SKILL.md -
对于第一张幻灯片(slide 1),创建一个确定视觉风格的提示:
{
"prompt": "专业的演示幻灯片。[计划中的 style_guidelines]。标题:'您的标题'。[visual_description]。这张幻灯片为整个演示文稿确立了视觉语言。",
"style": "[基于所选风格 - 例如,Apple Keynote 美学,戏剧性光照,电影感]",
"composition": "清晰的版式,明确的文本层次,[特定风格构图]",
"color_palette": "[来自 style_guidelines]",
"typography": "[来自 style_guidelines]"
}python /mnt/skills/public/image-generation/scripts/generate.py \
--prompt-file /mnt/user-data/workspace/slide-01-prompt.json \
--output-file /mnt/user-data/outputs/slide-01.jpg \
--aspect-ratio 16:9- 对于后续幻灯片(slide 2+),使用上一张幻灯片作为参考图像:
{
"prompt": "专业的演示幻灯片,延续参考图像的视觉风格。保持相同的调色板、字体风格和整体美学。标题:'幻灯片标题'。[visual_description]。与参考图像保持视觉一致性。",
"style": "与参考图像的风格完全匹配",
"composition": "与参考类似的版式原则,根据内容做调整",
"color_palette": "与参考图像相同",
"consistency_note": "这张幻灯片必须看起来与参考图像属于同一个演示文稿"
}python /mnt/skills/public/image-generation/scripts/generate.py \
--prompt-file /mnt/user-data/workspace/slide-02-prompt.json \
--reference-images /mnt/user-data/outputs/slide-01.jpg \
--output-file /mnt/user-data/outputs/slide-02.jpg \
--aspect-ratio 16:9- 对所有剩余幻灯片继续,始终参考前一张幻灯片:
# 幻灯片 3 参考幻灯片 2
python /mnt/skills/public/image-generation/scripts/generate.py \
--prompt-file /mnt/user-data/workspace/slide-03-prompt.json \
--reference-images /mnt/user-data/outputs/slide-02.jpg \
--output-file /mnt/user-data/outputs/slide-03.jpg \
--aspect-ratio 16:9
# 幻灯片 4 参考幻灯片 3
python /mnt/skills/public/image-generation/scripts/generate.py \
--prompt-file /mnt/user-data/workspace/slide-04-prompt.json \
--reference-images /mnt/user-data/outputs/slide-03.jpg \
--output-file /mnt/user-data/outputs/slide-04.jpg \
--aspect-ratio 16:9第 4 步:组合 PPT
所有幻灯片图像生成后,调用组合脚本:
python /mnt/skills/public/ppt-generation/scripts/generate.py \
--plan-file /mnt/user-data/workspace/presentation-plan.json \
--slide-images /mnt/user-data/outputs/slide-01.jpg /mnt/user-data/outputs/slide-02.jpg /mnt/user-data/outputs/slide-03.jpg \
--output-file /mnt/user-data/outputs/presentation.pptx参数:
--plan-file:演示文稿计划 JSON 文件的绝对路径(必需)--slide-images:按顺序排列的幻灯片图像的绝对路径(必需,空格分隔)--output-file:输出 PPTX 文件的绝对路径(必需)
[!NOTE] 不要读取 Python 文件,只需使用参数调用它。
完整示例:玻璃拟态风格(最现代前卫)
用户请求:“创建一个关于 AI 产品发布的演示文稿”
第 1 步:创建演示文稿计划
创建 /mnt/user-data/workspace/ai-product-plan.json:
{
"title": "Introducing Nova AI",
"style": "glassmorphism",
"style_guidelines": {
"color_palette": "鲜艳的紫色到青色渐变背景(#667eea→#00d4ff),磨砂玻璃面板具有 15-20% 白色不透明度,电光强调色",
"typography": "SF Pro Display 风格,粗体 700 字重白色标题带有细微文字阴影,干净的 400 字重正文,在玻璃上具有极佳对比度",
"imagery": "抽象 3D 玻璃球体,浮动的半透明几何形状,柔和发光球体,通过层次透明度营造深度",
"layout": "居中磨砂玻璃卡片,带有 32px 圆角,48-64px 内边距,浮动在渐变之上,通过柔和阴影营造层次",
"effects": "玻璃面板背景模糊 20-40px,微妙的白色边框发光,柔和的彩色阴影匹配渐变,光线折射效果",
"visual_language": "Apple Vision Pro / visionOS 美学,通过透明实现高级深度,未来主义而又平易近人,2024 年设计趋势"
},
"aspect_ratio": "16:9",
"slides": [
{
"slide_number": 1,
"type": "title",
"title": "Introducing Nova AI",
"subtitle": "Intelligence, Reimagined",
"visual_description": "令人惊艳的渐变背景,从深紫色(#667eea)流过洋红色到青色(#00d4ff)。中间:大块磨砂玻璃面板,具有强烈的背景模糊,包含粗体白色标题 'Introducing Nova AI' 和较浅的副标题。浮动的 3D 玻璃球体和抽象形状环绕卡片营造深度。玻璃面板后方散发柔和的发光。高级 visionOS 美学。玻璃卡片具有微妙的白色边框(1px rgba 255,255,255,0.3)和柔和的紫色调阴影。"
},
{
"slide_number": 2,
"type": "content",
"title": "Why Nova?",
"key_points": ["10x faster processing", "Human-like understanding", "Enterprise-grade security"],
"visual_description": "相同的紫-青渐变背景。左侧:浮动磨砂玻璃卡片,带有粗体白色标题 'Why Nova?',下方三个要点带有微妙的玻璃药丸状标签。右侧:抽象 3D 神经网络可视化,由具有柔和发光的互联玻璃节点组成。浮动的半透明几何形状(二十面体、圆环)增加深度。与上一张幻灯片一致的玻璃拟态美学。"
},
{
"slide_number": 3,
"type": "content",
"title": "How It Works",
"key_points": ["Natural language input", "Multi-modal processing", "Instant insights"],
"visual_description": "与先前幻灯片一致的渐变背景。中央构图:三张略微倾斜堆叠的磨砂玻璃卡片,展示工作流程步骤,由柔和的发光线条连接。每张卡片有一个抽象图标。浮动的玻璃球体和光粒子环绕构图。顶部是粗体白色标题 'How It Works'。通过卡片层次和透明营造深度。"
},
{
"slide_number": 4,
"type": "content",
"title": "Built for Scale",
"key_points": ["1M+ concurrent users", "99.99% uptime", "Global infrastructure"],
"visual_description": "相同的渐变背景。不对称版式:右侧为大型磨砂玻璃面板,以粗体排版显示度量数据。左侧:由玻璃面板和连接线组成的抽象 3D 地球,代表全球规模。浮动数据可视化元素作为带数字的小玻璃卡片。整体柔和环境光。高级科技美学。"
},
{
"slide_number": 5,
"type": "conclusion",
"title": "The Future Starts Now",
"subtitle": "Join the waitlist",
"visual_description": "戏剧性的压轴幻灯片。渐变背景,略有增强的活力。中央磨砂玻璃卡片,粗体标题 'The Future Starts Now' 和呼吁行动副标题。卡片后方:柔和光束的爆发和浮动玻璃粒子,营造庆祝效果。多个层次玻璃形状营造深度。最引人注目的幻灯片,同时保持风格一致性。"
}
]
}第 2 步:阅读图像生成技能
阅读 /mnt/skills/public/image-generation/SKILL.md 以了解如何生成图像。
第 3 步:通过参考链依次生成幻灯片图像
幻灯片 1 - 标题(确立视觉语言):
创建 /mnt/user-data/workspace/nova-slide-01.json:
{
"prompt": "超高级演示标题幻灯片,采用玻璃拟态设计。背景:平滑流动的渐变,从深紫色(#667eea)经过洋红色(#f093fb)到青色(#00d4ff),柔和而鲜艳。中心:大型磨砂玻璃面板,强烈背景模糊效果,圆角 32px,包含粗体白色无衬线标题 'Introducing Nova AI'(72pt,SF Pro Display 风格,字重 700),带有细微文本阴影,下方较轻字重的副标题 'Intelligence, Reimagined'。玻璃面板带有微妙的白色边框(1px rgba 255,255,255,0.25)和柔和的紫色调阴影。卡片周围浮动:具有折射效果的 3D 玻璃球体,半透明几何形状(二十面体、抽象团块),营造深度和维度。玻璃面板后方散发柔和的发光。漂浮的小光粒子。Apple Vision Pro / visionOS UI 美学。专业演示幻灯片,16:9 宽高比。超现代,高端科技产品发布感。",
"style": "玻璃拟态,visionOS 美学,Apple Vision Pro UI 风格,高级科技,2024 年设计趋势",
"composition": "玻璃卡片居中作为焦点,浮动 3D 元素在边缘营造深度,40% 负空间,清晰的视觉层次",
"lighting": "来自渐变的柔和环境光,通过玻璃元素的光线折射,3D 形状上的柔和边缘光",
"color_palette": "紫色渐变 #667eea,洋红色 #f093fb,青色 #00d4ff,磨砂白 rgba(255,255,255,0.15),纯白文本 #ffffff",
"effects": "玻璃面板的背景模糊,带颜色着色的柔和投影,光线折射,玻璃上细微的噪点纹理,浮动粒子"
}python /mnt/skills/public/image-generation/scripts/generate.py \
--prompt-file /mnt/user-data/workspace/nova-slide-01.json \
--output-file /mnt/user-data/outputs/nova-slide-01.jpg \
--aspect-ratio 16:9幻灯片 2 - 内容(必须参考幻灯片 1 以保持一致性):
创建 /mnt/user-data/workspace/nova-slide-02.json:
{
"prompt": "延续参考图像精确视觉风格的演示幻灯片。相同的紫-青渐变背景,相同的玻璃拟态美学,相同的字体风格。左侧:带背景模糊的磨砂玻璃卡片,包含粗体白色标题 'Why Nova?'(匹配参考字体风格),下方三个特性点以微妙的玻璃药丸状标签形式呈现。右侧:由互联玻璃节点组成的抽象 3D 神经网络可视化,带有柔和的青色发光,悬浮在空间中。浮动的半透明几何形状(匹配参考风格)增加深度。磨砂玻璃具有相同的处理方式:白色边框,紫色调阴影,相同的模糊强度。关键:此幻灯片必须看起来与参考图像属于完全相同的演示文稿——相同的颜色,相同的玻璃处理,相同的整体美学。",
"style": "完全匹配参考——玻璃拟态,visionOS 美学,相同的视觉语言",
"composition": "不对称分割:玻璃卡片左侧(40%),3D 可视化右侧(40%),元素之间留出呼吸空间",
"color_palette": "完全匹配参考:紫色 #667eea,青色 #00d4ff 渐变,相同的磨砂白处理,相同的文本白",
"consistency_note": "关键:必须在视觉上与参考图像风格相同。相同的渐变色、相同的玻璃模糊强度、相同的阴影处理、相同的字体字重和风格。观众应能立即认出这是同一演示文稿。"
}python /mnt/skills/public/image-generation/scripts/generate.py \
--prompt-file /mnt/user-data/workspace/nova-slide-02.json \
--reference-images /mnt/user-data/outputs/nova-slide-01.jpg \
--output-file /mnt/user-data/outputs/nova-slide-02.jpg \
--aspect-ratio 16:9幻灯片 3-5:继续相同模式,每张参考前一张
后续幻灯片的关键一致性规则:
- 始终在提示中包含“延续参考图像的精确视觉风格”
- 指定“相同的渐变背景”、“相同的玻璃处理”、“相同的字体”
- 包含强调风格匹配的
consistency_note - 参考立即前一张幻灯片图像
第 4 步:组合最终 PPT
python /mnt/skills/public/ppt-generation/scripts/generate.py \
--plan-file /mnt/user-data/workspace/nova-plan.json \
--slide-images /mnt/user-data/outputs/nova-slide-01.jpg /mnt/user-data/outputs/nova-slide-02.jpg /mnt/user-data/outputs/nova-slide-03.jpg /mnt/user-data/outputs/nova-slide-04.jpg /mnt/user-data/outputs/nova-slide-05.jpg \
--output-file /mnt/user-data/outputs/nova-presentation.pptx风格特定指南
玻璃拟态风格(推荐 - 最现代前卫)
{
"style": "glassmorphism",
"style_guidelines": {
"color_palette": "鲜艳的渐变背景(紫色 #667eea 到粉色 #f093fb,或青色 #4facfe 到蓝色 #00f2fe),磨砂白面板,20% 不透明度,与渐变对比鲜明的强调色",
"typography": "SF Pro Display 或 Inter 字体风格,粗体 600-700 字重标题,干净 400 字重正文,白色文本带细微投影以确保在玻璃上可读",
"imagery": "悬浮在空间中的抽象 3D 形状,柔和的模糊球体,具有玻璃材质的几何基本体,通过重叠半透明层次营造深度",
"layout": "具有背景模糊效果的浮动卡片面板,充足的内边距(48-64px),圆角(24-32px 半径),通过细微阴影营造层次深度",
"effects": "磨砂玻璃模糊(backdrop-filter: blur 20px),微妙的白色边框(1px rgba 255,255,255,0.2),面板后柔和的发光,浮动元素带有投影",
"visual_language": "类似 Apple Vision Pro UI 的高级科技美学,通过透明实现深度,光线穿过玻璃表面的折射"
}
}暗黑高级风格
{
"style": "dark-premium",
"style_guidelines": {
"color_palette": "深黑底色(#0a0a0a 至 #121212),发光的强调色(电光蓝 #00d4ff,霓虹紫 #bf5af2,或金色 #ffd700),微妙的灰色渐变营造深度(#1a1a1a 至 #0a0a0a)",
"typography": "优雅的无衬线字体(Neue Haas Grotesk 或 Suisse Int'l 风格),夸张的尺寸对比(72pt+ 标题,18pt 正文),标题字间距 -0.02em,纯白(#ffffff)文本",
"imagery": "戏剧性的影棚光照,边缘光和边缘发光,电影质感的产品照片,抽象光迹,高级材质纹理(拉丝金属,哑光表面)",
"layout": "充足的负空间(60%+),不对称平衡,内容锚定到网格但留有呼吸空间,每张幻灯片单一焦点",
"effects": "关键元素后微妙的氛围光,光晕效果,颗粒纹理叠加(2-3% 不透明度),边缘暗角",
"visual_language": "奢侈科技品牌美学(Bang & Olufsen,Porsche Design),通过克制实现精致,每个元素都有意义"
}
}渐变现代风格
{
"style": "gradient-modern",
"style_guidelines": {
"color_palette": "大胆的网格渐变(Stripe/Linear 风格:紫-粉-橙 #7c3aed→#ec4899→#f97316,或冷色调:青-蓝-紫 #06b6d4→#3b82f6→#8b5cf6),根据背景强度使用白色或深色文本",
"typography": "现代几何无衬线字体(Satoshi,General Sans,或 Clash Display 风格),可变字重,超大粗体标题(80pt+),舒适的正文(20pt)",
"imagery": "抽象流体形状,变形的渐变,3D 渲染的抽象物体,柔软的有机形态,浮动的几何基本体",
"layout": "动态不对称构图,使用混合模式的重叠元素,文本与渐变流动集成,全出血背景",
"effects": "平滑的渐变过渡,细微噪点纹理(3-5% 用于深度),与渐变匹配的带色彩柔和阴影,暗示运动的动态模糊",
"visual_language": "当代 SaaS 美学(Stripe,Linear,Vercel),充满活力又专业,前瞻科技感"
}
}新粗野主义风格
{
"style": "neo-brutalist",
"style_guidelines": {
"color_palette": "高对比度原色:纯黑,纯白,搭配大胆强调色(亮粉色 #ff0080,电光黄 #ffff00,或原生红 #ff0000),可选:孟菲斯风格柔和的粉彩作为辅助",
"typography": "超粗压缩字体(Impact,Druk,或 Bebas Neue 风格),大写标题,极端的尺寸对比,有意紧凑或重叠的字间距",
"imagery": "未经处理的原始摄影,有意的视觉噪点,半色调图案,剪贴拼贴美学,手绘元素,贴纸和邮票",
"layout": "破碎的网格,重叠元素,粗黑边框(4-8px),可见的结构,反留白(密集但有序的混沌)",
"effects": "硬阴影(无模糊,偏移 8-12px),像素化强调,扫描线,CRT 屏幕效果,有意的'错误'",
"visual_language": "反企业叛逆,DIY 杂志美学与数字结合,通过大胆达成原始真实感与记忆点"
}
}3D 等距风格
{
"style": "3d-isometric",
"style_guidelines": {
"color_palette": "柔和的当代调色板:淡紫色(#8b5cf6),蓝绿色(#14b8a6),暖珊瑚色(#fb7185),搭配奶油色或浅灰色背景(#fafafa),各元素饱和度一致",
"typography": "友好的几何无衬线字体(Circular,Gilroy,或 Quicksand 风格),中等字重标题,良好的可读性,舒适的 24pt 正文",
"imagery": "干净的等距 3D 插图,一致的 30° 等距角度,柔和的粘土渲染美学,浮动的平台和设备,可爱的简化物体",
"layout": "中央等距场景作为主角,文本围绕 3D 元素平衡,清晰的视觉层次,舒适的外边距(64px+)",
"effects": "柔和的投影(20px 模糊,30% 不透明度),3D 物体上的环境光遮蔽,表面微妙的渐变,一致的光源(左上角)",
"visual_language": "友好的科技插图(Slack,Notion,Asana 风格),平易近人的复杂性,通过简化达成清晰"
}
}编辑风格
{
"style": "editorial",
"style_guidelines": {
"color_palette": "精致的中性色:米白(#f5f5f0),炭灰(#2d2d2d),搭配单一强调色(勃艮第红 #7c2d12,森林绿 #14532d,或海军蓝 #1e3a5f),偶尔使用全彩摄影",
"typography": "精致的衬线体标题(Playfair Display,Freight,或 Editorial New 风格),干净的无衬线正文(Söhne,Graphik),夸张的尺寸层次(96pt 标题,16pt 正文),充裕的行高 1.6",
"imagery": "杂志级摄影,戏剧性的裁切,全出血图片,有意留出负空间的人像,编辑风格布光(Vogue,Bloomberg Businessweek 风格)",
"layout": "精致的网格系统(12列),有意的不对称,引言作为设计元素,文本环绕图像,优雅的页边距",
"effects": "最小化效果——让摄影和字体发光,微妙的图像处理(轻微去饱和,胶片颗粒),优雅的边框和线条",
"visual_language": "高端杂志美学,智性精致,通过设计克制提升内容"
}
}极简瑞士风格
{
"style": "minimal-swiss",
"style_guidelines": {
"color_palette": "纯白(#ffffff)或米白(#fafaf9)背景,纯黑(#000000)文本,单一粗体强调色(瑞士红 #ff0000,克莱因蓝 #002fa7,或信号黄 #ffcc00)",
"typography": "Helvetica Neue 或 Aktiv Grotesk,严格的字体比例(12/16/24/48/96),正文中等字重,仅用于强调的粗体,左对齐右不齐",
"imagery": "客观摄影"
}
}