# Content Generation

> AI-powered document, image, and flowchart generation. Use this skill when generating images with fal.ai, creating flowcharts/diagrams, generating Google Docs, creating client proposals, converting markdown to PDF, or summarizing content. Triggers on image generation, diagram creation, document generation, or content formatting requests. Use when this capability is needed.

- Skill: `tomevault-io/content-generation-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/content-generation-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/content-generation-2/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/content-generation-2

---


# Content Generation

## Overview

Generate professional content including images, diagrams, documents, and summaries using AI-powered tools.

## Quick Decision Tree

```
What do you need?
│
├── Generate images
│   └── references/images.md
│   └── Script: scripts/generate_images.py
│
├── Create flowchart/diagram
│   └── references/flowchart.md
│   └── Script: scripts/generate_flowchart.py
│
├── Create Google Doc
│   └── references/document.md
│   └── Script: scripts/generate_document.py
│
├── Generate client proposal
│   └── references/proposal.md
│   └── Script: scripts/generate_proposal.py
│
├── Convert Markdown to PDF
│   └── references/pdf.md
│   └── Script: scripts/md_to_pdf.py
│
└── Summarize content
    └── references/summarize.md
    └── Script: scripts/summarize_content.py
```

## Environment Setup

```bash
# Required in .env
FAL_API_KEY=fal_xxxx              # For image generation
OPENROUTER_API_KEY=sk-or-v1-xxx   # For AI text generation
```

Get API keys:
- fal.ai: https://fal.ai/dashboard/keys
- OpenRouter: https://openrouter.ai/keys

## Common Usage

### Generate Images
```bash
# Nano Banana Pro (best quality)
python scripts/generate_images.py "Professional product photo of smartwatch" --model nano-banana-pro

# FLUX-2 (fast, cheap)
python scripts/generate_images.py "Vibrant lifestyle photo" --model flux-2 --size landscape_4_3
```

### Create Flowchart
```bash
python scripts/generate_flowchart.py "User login: enter email, validate, check password, if correct go to dashboard"
```

### Generate Document
```bash
python scripts/generate_document.py --input content.json --title "Q4 Report"
```

### Generate Proposal
```bash
python scripts/generate_proposal.py --transcript-file meeting.txt --client "Acme Corp"
```

## Cost Estimates

| Tool | Cost |
|------|------|
| Nano Banana Pro 1K | $0.15/image |
| Nano Banana Pro 4K | $0.30/image |
| FLUX-2 | $0.012/megapixel |
| Flowchart | ~$0.005/diagram |
| Proposal | ~$0.10/doc |

## Security Notes

### Credential Handling
- Store `FAL_API_KEY` in `.env` file (never commit to git)
- Store `OPENROUTER_API_KEY` in `.env` file (never commit to git)
- Regenerate keys from respective dashboards if compromised
- Never log or print API keys in script output

### Data Privacy
- Text prompts sent to fal.ai and OpenRouter servers
- Generated images stored locally in `.tmp/` directory
- AI services may log prompts for service improvement
- Avoid including sensitive/confidential data in prompts
- Generated documents may be uploaded to Google Drive

### Access Scopes
- `FAL_API_KEY` - Full access to image generation models
- `OPENROUTER_API_KEY` - Access to configured AI models
- Google OAuth - Required for Google Docs creation (see google-workspace skill)

### Compliance Considerations
- **AI Disclosure**: Consider disclosing AI-generated content where required
- **Image Rights**: Generated images subject to fal.ai terms of use
- **Copyright**: AI-generated content copyright varies by jurisdiction
- **Brand Consistency**: Review AI outputs against brand guidelines
- **Sensitive Content**: AI image generators have content policies
- **Client Proposals**: Verify accuracy before sending to clients
- **Attribution**: Some contexts require AI generation disclosure

## Troubleshooting

### Common Issues

#### Issue: Image generation failed
**Symptoms:** fal.ai returns error or no image generated
**Cause:** Invalid prompt, model unavailable, or API issue
**Solution:**
- Check prompt for policy violations (explicit content, etc.)
- Verify model ID is correct and available
- Try a simpler prompt to test API connectivity
- Check fal.ai status page for outages

#### Issue: Content policy violation
**Symptoms:** "Content policy violation" or similar safety error
**Cause:** Prompt contains flagged terms or concepts
**Solution:**
- Remove explicit, violent, or harmful content from prompt
- Rephrase ambiguous terms that might trigger filters
- Review fal.ai content policy guidelines
- Use more general/professional language

#### Issue: Google Doc not created
**Symptoms:** Script completes but no document appears in Drive
**Cause:** OAuth issue, folder permissions, or API error
**Solution:**
- Verify Google OAuth is working (see google-workspace skill)
- Check target folder exists and is accessible
- Delete `mycreds.txt` and re-authenticate
- Look for error messages in script output

#### Issue: Flowchart syntax error
**Symptoms:** Mermaid diagram fails to render
**Cause:** Invalid Mermaid syntax in generated diagram
**Solution:**
- Review generated Mermaid code for syntax errors
- Simplify complex flows into smaller diagrams
- Test diagram at https://mermaid.live/
- Ensure special characters are properly escaped

#### Issue: PDF conversion fails
**Symptoms:** Error during markdown to PDF conversion
**Cause:** Missing dependencies or invalid markdown
**Solution:**
- Ensure required PDF tools are installed (weasyprint, etc.)
- Check markdown syntax is valid
- Verify font files exist if custom fonts specified
- Try with simpler markdown to isolate issue

#### Issue: OpenRouter API error
**Symptoms:** Text generation fails with API error
**Cause:** Invalid API key, model unavailable, or rate limit
**Solution:**
- Verify `OPENROUTER_API_KEY` is set correctly
- Check model availability at OpenRouter dashboard
- Try a different model if current one is unavailable
- Review rate limit status and add delays if needed

## Resources

- **references/images.md** - fal.ai image generation
- **references/flowchart.md** - Mermaid diagram generation
- **references/document.md** - Google Docs creation
- **references/proposal.md** - Client proposal generation
- **references/pdf.md** - Markdown to PDF conversion
- **references/summarize.md** - Content summarization

## Integration Patterns

### Generate and Save
**Skills:** content-generation → google-workspace
**Use case:** Create documents and store in Drive
**Flow:**
1. Generate content (proposal, report, summary)
2. Format as Google Doc or PDF
3. Upload to appropriate Drive folder via google-workspace

### Proposal to CRM
**Skills:** content-generation → attio-crm
**Use case:** Link generated proposals to deal records
**Flow:**
1. Generate client proposal from meeting transcript
2. Upload proposal to Google Drive
3. Add note to Attio CRM company record with proposal link

### Images to Video
**Skills:** content-generation → video-production
**Use case:** Create title slides for video courses
**Flow:**
1. Generate branded title slide images for each lesson
2. Export images to video-compatible format
3. Use video-production to stitch with lesson videos

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/casper-studios) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-12 -->

