Instagram Slides
Turn blog posts or content into Instagram carousel slideshows.
Pipeline
- Extract — fetch blog post content via
web_fetch - Plan — write a
plan.jsonwith slide content and image prompts - Generate Backgrounds — AI image generation via Fal API
- Text Overlay — Pillow composites text onto backgrounds with brand styling
- Output — numbered slide images +
caption.txt
Usage
# Full pipeline
python3 {baseDir}/scripts/generate.py \
--url "https://blog.example.com/post" \
--slides 8 \
--output ~/Desktop/slides
# Plan only (review before generating)
python3 {baseDir}/scripts/generate.py \
--url "https://blog.example.com/post" \
--slides 8 \
--plan-only \
--output ~/Desktop/slides
# Generate from existing plan
python3 {baseDir}/scripts/generate.py \
--plan-file ~/Desktop/slides/plan.json \
--output ~/Desktop/slides
Plan JSON Schema
{
"angle": "how-to | listicle | hot-take | story-arc | myth-busting",
"style_prefix": "Shared image generation prompt prefix (~30 words)",
"slides": [
{
"headline": "Short headline (≤8 words)",
"body": "Supporting text (≤20 words)",
"bg_prompt": "Background image description (NO text in image)",
"is_title": true,
"is_cta": false
}
],
"caption": "Full Instagram caption with hook, value, CTA, hashtags"
}
Image Style Tips
Good:
- Bright, warm, natural lighting
- Clean, airy, modern aesthetic
- Contextual imagery illustrating each slide's topic
- Editorial photography feel
Avoid:
- Baked-in text/words in generated images
- Dark, moody backgrounds (unless that's your brand)
- Abstract meaningless gradients
Dependencies
- Python 3 with
Pillow,requests:pip3 install Pillow requests - Fal API key at
~/.config/fal/api_key - Brand fonts in
{baseDir}/fonts/ - OpenRouter API key for auto-planning (optional)
Costs
- ~$0.15/image via Fal
- ~$1.20 for 8 slides
Tips
- First slide = strong hook/title card
- Last slide = CTA with link
- Keep text SHORT — Instagram is visual-first
- Raw backgrounds saved as
raw_NN.png— re-composite without regenerating images