Back to skills
extension
Category: OtherAPI key required

AI营销创意内容生成助手

AI-powered creative content generation and automation toolkit for creating professional marketing campaigns. Use this skill when the user needs to (1) generate social media images/cards (social card, promotional graphics, product showcases), (2) create data visualizations (bar charts, line charts, pie charts), (3) manage content templates (social posts, product ads, blog posts, email campaigns), (4) batch generate marketing campaigns with multiple assets, or (5) create AI-enhanced content using OpenAI API. Supports PIL/Pillow for image generation, matplotlib for visualizations, and OpenAI API for AI content generation. Triggers on requests like "generate social media images", "create data charts", "batch process content", "create marketing campaign", "design promotional graphics", or any creative content automation task.

personAuthor: user_7a275316hubcommunity

🎨 Creative Content Studio

AI-powered creative content generation and automation toolkit for creating professional marketing campaigns.

Overview

Creative Content Studio provides a comprehensive set of tools for generating professional content at scale:

  • AI Image Generation - Social cards, product showcases, brand graphics
  • Data Visualization - Bar charts, line charts, pie charts
  • Content Templates - Structured templates for consistent branding
  • Batch Processing - Generate complete campaigns with multiple assets
  • Web UI - Streamlit-based interface for non-technical users

Quick Start

1. Install Dependencies

cd E:\skills\creative-content-studio\scripts
pip install -r requirements.txt

Core dependencies (required for basic features):

  • Pillow>=10.0.0 - Image generation
  • requests>=2.28.0 - API calls
  • matplotlib>=3.7.0 - Data visualization

Optional dependencies (for advanced features):

  • openai>=1.0.0 - AI content generation
  • streamlit>=1.28.0 - Web UI

2. Test the Setup

# List available templates
python creative_studio.py list-templates

# Generate a demo social card
python creative_studio.py social-card "Hello World" --subtitle "Test" --output test_card.png

# Generate a demo campaign
python creative_studio.py campaign --config demo_campaign.json --output output

3. Run the Web UI

streamlit run app.py

Then open http://localhost:8501 in your browser.


Core Components

ContentTemplate System

Pre-built templates for consistent content creation:

| Template | Description | Fields | |----------|-------------|--------| | social_post | Social media posts | headline, body, hashtags, cta | | product_ad | Product advertisements | product_name, headline, features, price, cta | | blog_post | Blog post structures | title, intro, sections, conclusion | | email_campaign | Email campaign content | subject, preview, body, cta |

Usage Example

from creative_studio import ContentTemplate

# Get template
template = ContentTemplate.get_template('social_post')

# Fill template
filled = ContentTemplate.generate_from_template(
    'social_post',
    {
        'headline': '🚀 New Feature Launch!',
        'body': 'Experience AI-powered creative content generation...',
        'hashtags': ['#AI', '#CreativeTools', '#Innovation'],
        'cta': 'Try Now →'
    }
)

print(filled)
# Output:
# {
#     'headline': '🚀 New Feature Launch!',
#     'body': 'Experience AI-powered creative content generation...',
#     'hashtags': ['#AI', '#CreativeTools', '#Innovation'],
#     'cta': 'Try Now →'
# }

ImageGenerator

Create professional social media graphics programmatically.

Methods

create_social_card(title, subtitle='', brand_color='#4A90E2')

  • Creates a social media card image
  • Returns: bytes (PNG image data)

create_product_shot(product_name, price, features=None)

  • Creates a product showcase image
  • Returns: bytes (PNG image data)

save_image(image_bytes, output_path)

  • Saves image bytes to file
  • Returns: bool (success/failure)

Usage Example

from creative_studio import ImageGenerator

# Initialize generator
img_gen = ImageGenerator()

# Create social card
image_bytes = img_gen.create_social_card(
    title="🚀 New Feature!",
    subtitle="AI-powered content generation",
    brand_color="#4A90E2"
)

# Save to file
img_gen.save_image(image_bytes, "social_card.png")

DataVisualizer

Generate professional charts and visualizations.

Methods

create_bar_chart(data, title, output_path)

  • Creates bar chart from dictionary data
  • data: Dict[str, float] - Category-value pairs
  • Returns: bool

create_line_chart(data, title, x_labels=None, output_path)

  • Creates line chart for time series data
  • data: Dict[str, List[float]] or Dict[str, float] - Series data
  • Returns: bool

create_pie_chart(data, title, output_path)

  • Creates pie chart for distribution data
  • data: Dict[str, float] - Category-percentage pairs
  • Returns: bool

Usage Example

from creative_studio import DataVisualizer

viz = DataVisualizer()

# Bar chart
viz.create_bar_chart(
    {"Category A": 100, "Category B": 150, "Category C": 120},
    "Sales by Category",
    "sales_chart.png"
)

# Line chart
viz.create_line_chart(
    {
        "2024": [100, 120, 150, 180],
        "2025": [150, 180, 220, 280]
    },
    "Revenue Growth",
    x_labels=["Q1", "Q2", "Q3", "Q4"],
    output_path="revenue_chart.png"
)

# Pie chart
viz.create_pie_chart(
    {"Product A": 35, "Product B": 28, "Product C": 22, "Other": 15},
    "Market Share",
    "market_share.png"
)

AIGenerator

AI-powered content generation using OpenAI API.

Methods

generate_text(prompt, max_tokens=500)

  • Generates text using OpenAI GPT models
  • Requires: OPENAI_API_KEY environment variable or config

_fallback_generate(prompt)

  • Fallback generation without API (template-based)

generate_image_prompt(description, style='realistic')

  • Generates optimized prompts for AI image generators

Usage Example

from creative_studio import AIGenerator

# Initialize with API key
ai_gen = AIGenerator({'openai_api_key': 'your-key-here'})

# Generate content
content = ai_gen.generate_text(
    "Write a compelling product description for an AI-powered design tool"
)

# Generate image prompt
prompt = ai_gen.generate_image_prompt(
    "futuristic city skyline",
    style="cinematic"
)

BatchProcessor

Process multiple items efficiently.

Methods

batch_social_cards(items, output_dir)

  • Generate multiple social cards from config
  • items: List[Dict] - Card configurations
  • Returns: Dict with results summary

batch_visualizations(config, output_dir)

  • Generate multiple charts from config
  • config: Dict with 'charts' list
  • Returns: Dict with results summary

Usage Example

from creative_studio import BatchProcessor

batch = BatchProcessor()

# Batch social cards
items = [
    {"title": "Card 1", "subtitle": "Subtitle 1", "color": "#4A90E2"},
    {"title": "Card 2", "subtitle": "Subtitle 2", "color": "#FF6B6B"},
    {"title": "Card 3", "subtitle": "Subtitle 3", "color": "#50C878"}
]

results = batch.batch_social_cards(items, "output/social")

print(f"Success: {results['success']}/{results['total']}")

ContentGenerator

Main orchestrator for complete campaign generation.

Methods

generate_complete_campaign(campaign_config, output_dir)

  • Generates entire marketing campaign
  • campaign_config: Dict with campaign specifications
  • Returns: Dict with all generated assets and statistics

Usage Example

from creative_studio import ContentGenerator

generator = ContentGenerator()

# Complete campaign config
campaign = {
    "name": "product_launch",
    "social_cards": [...],
    "visualizations": [...],
    "content": [...]
}

results = generator.generate_complete_campaign(campaign, "output/campaign")

print(f"Total Assets: {results['stats']['total_assets']}")
print(f"Success: {results['stats']['success']}")

CLI Reference

Social Card Generation

python creative_studio.py social-card "Title" --subtitle "Subtitle" --color "#4A90E2" --output card.png

Arguments:

  • title (required) - Card title text
  • --subtitle, -s - Subtitle text (default: empty)
  • --color, -c - Brand color in hex (default: #4A90E2)
  • --output, -o (required) - Output file path

Batch Social Cards

python creative_studio.py batch-social --config cards.json --output output/

Arguments:

  • --config, -c (required) - JSON config file with items array
  • --output, -o (required) - Output directory

Config Format:

[
  {
    "title": "Card Title",
    "subtitle": "Card Subtitle",
    "color": "#4A90E2",
    "filename": "card.png"
  }
]

Visualization Generation

python creative_studio.py visualization bar --data '{"Category": 100}' --title "Chart Title" --output chart.png

Arguments:

  • type - Chart type: bar, line, or pie
  • --data, -d (required) - JSON data or file path
  • --title, -t (required) - Chart title
  • --output, -o (required) - Output file path

Complete Campaign Generation

python creative_studio.py campaign --config campaign.json --output output/

Arguments:

  • --config, -c (required) - Campaign config JSON file
  • --output, -o (required) - Output directory

Campaign Config Format:

{
  "name": "campaign_name",
  "social_cards": [...],
  "visualizations": [...],
  "content": [...]
}

List Templates

python creative_studio.py list-templates

Lists all available content templates with descriptions.


Demo Data

The skill includes comprehensive demo data for testing:

demo_social_cards.json

Sample configurations for 5 social media cards:

  • Feature announcements
  • Promotional offers
  • Case studies
  • Weekly picks
  • Product launches

demo_campaign.json

Complete marketing campaign with:

  • 5 social cards
  • 3 visualizations (bar, line, pie)
  • 3 content items (social post, product ad, blog post)

Usage:

python creative_studio.py campaign --config demo_campaign.json --output demo_output

Web UI (Streamlit)

Run the interactive web interface:

cd E:\skills\creative-content-studio\scripts
streamlit run app.py

Features:

  • 🖼️ Image Generator - Create social cards with live preview
  • 📊 Data Visualizer - Generate charts from JSON data
  • 📝 Content Templates - Fill and preview templates
  • 🚀 Batch Campaign - Generate complete campaigns
  • ⚙️ Settings - Configure API keys and defaults

Navigation:

  1. Open http://localhost:8501
  2. Use sidebar to navigate between features
  3. Configure settings and generate content
  4. Download generated assets

Configuration

Environment Variables

# OpenAI API (optional, for AI content generation)
export OPENAI_API_KEY="your-api-key"

# Or set in code
generator = ContentGenerator({'openai_api_key': 'your-key'})

Image Settings

img_gen = ImageGenerator({
    'default_size': (1024, 1024),
    'background_color': 'white'
})

Visualization Settings

viz = DataVisualizer({
    'style': 'seaborn-v0_8-darkgrid',
    'colors': ['#4A90E2', '#50C878', '#FF6B6B', '#FFD93D']
})

Troubleshooting

Error: "Pillow not installed"

Solution:

pip install Pillow

Error: "matplotlib not installed"

Solution:

pip install matplotlib

Error: "OpenAI API error"

Solutions:

  1. Check your API key is valid
  2. Set environment variable: export OPENAI_API_KEY="your-key"
  3. Or use fallback generation (no API needed)

Web UI not loading

Solutions:

  1. Install Streamlit: pip install streamlit
  2. Check port 8501 is not in use
  3. Try: streamlit run app.py --server.port 8502

Permission denied errors

Solutions:

  1. Run PowerShell as Administrator
  2. Check file permissions on E:\skills directory
  3. Try: icacls "E:\skills" /grant Everyone:F /T

Performance Tips

Image Generation

  • Batch processing: Use batch_social_cards() for multiple images—faster than individual calls
  • Resize images: Use lower resolution (512x512) for testing, full resolution (1024x1024) for production
  • Format selection: PNG for transparency, JPG for smaller file sizes

Data Visualization

  • Data size: Keep datasets under 50 categories for readability
  • Chart type: Use bar charts for comparisons, line charts for trends, pie charts for distributions
  • Export: Use 300 DPI for print, 72 DPI for web

Batch Processing

  • Parallel processing: BatchProcessor is optimized for sequential processing; for true parallelism, use multiprocessing
  • Error handling: Check results['failed'] to identify problematic items
  • Output organization: Campaign generator automatically creates subdirectories by asset type

Advanced Use Cases

Use Case 1: Product Launch Campaign

Generate complete marketing campaign for new product:

campaign = {
    "name": "product_launch",
    "social_cards": [
        {"title": "🚀 New Product!", "subtitle": "Introducing..."},
        {"title": "💰 Special Price", "subtitle": "Launch offer..."},
        {"title": "⭐ Customer Review", "subtitle": "4.9/5 stars..."}
    ],
    "visualizations": [
        {"type": "bar", "title": "Features Comparison", "data": {...}},
        {"type": "pie", "title": "Use Cases", "data": {...}}
    ],
    "content": [
        {"template": "product_ad", "data": {...}},
        {"template": "social_post", "data": {...}}
    ]
}

generator = ContentGenerator()
results = generator.generate_complete_campaign(campaign, "launch_output")

Use Case 2: Weekly Content Calendar

Automate weekly social media content:

# Generate weekly content
for week in range(1, 5):
    cards = [
        {"title": f"Week {week} Tip", "subtitle": f"Pro tip #{week}"},
        {"title": f"Week {week} Stat", "subtitle": "Impressive numbers"},
        {"title": f"Week {week} Feature", "subtitle": "Highlight of the week"}
    ]
    
    batch.batch_social_cards(cards, f"content/week_{week}")

Use Case 3: Data Report Automation

Generate weekly data reports with charts:

viz = DataVisualizer()

# Generate multiple charts
viz.create_bar_chart(weekly_sales, "Weekly Sales", "report/sales.png")
viz.create_line_chart(monthly_trend, "Monthly Trend", "report/trend.png")
viz.create_pie_chart(market_share, "Market Share", "report/share.png")

API Reference

Class: ContentTemplate

Methods:

  • get_template(template_name: str) -> Optional[Dict]
  • list_templates() -> List[str]
  • generate_from_template(template_name: str, data: Dict) -> Dict

Class: ImageGenerator

Methods:

  • __init__(config: Optional[Dict] = None)
  • create_social_card(title: str, subtitle: str, brand_color: str) -> bytes
  • create_product_shot(product_name: str, price: str, features: List[str]) -> bytes
  • save_image(image_bytes: bytes, output_path: str) -> bool

Class: DataVisualizer

Methods:

  • __init__(config: Optional[Dict] = None)
  • create_bar_chart(data: Dict, title: str, output_path: str) -> bool
  • create_line_chart(data: Dict, title: str, x_labels: List, output_path: str) -> bool
  • create_pie_chart(data: Dict, title: str, output_path: str) -> bool

Class: AIGenerator

Methods:

  • __init__(config: Optional[Dict] = None)
  • generate_text(prompt: str, max_tokens: int) -> str
  • generate_image_prompt(description: str, style: str) -> str

Class: BatchProcessor

Methods:

  • __init__(config: Optional[Dict] = None)
  • batch_social_cards(items: List[Dict], output_dir: str) -> Dict
  • batch_visualizations(config: Dict, output_dir: str) -> Dict

Class: ContentGenerator

Methods:

  • __init__(config: Optional[Dict] = None)
  • generate_complete_campaign(campaign_config: Dict, output_dir: str) -> Dict

File Structure

creative-content-studio/
├── SKILL.md                    # This documentation
├── scripts/
│   ├── creative_studio.py      # Main CLI and library
│   ├── app.py                  # Streamlit Web UI
│   ├── requirements.txt        # Python dependencies
│   ├── setup.sh                 # Installation script
│   ├── demo_social_cards.json   # Demo card configurations
│   └── demo_campaign.json       # Demo campaign config

Dependencies

Core (Required)

| Package | Version | Purpose | |---------|---------|---------| | Pillow | >=10.0.0 | Image generation and manipulation | | requests | >=2.28.0 | HTTP API calls | | python-dateutil | >=2.8.0 | Date handling |

Visualization

| Package | Version | Purpose | |---------|---------|---------| | matplotlib | >=3.7.0 | Chart generation | | seaborn | >=0.12.0 | Enhanced visualization styles |

Optional

| Package | Version | Purpose | |---------|---------|---------| | openai | >=1.0.0 | AI content generation | | streamlit | >=1.28.0 | Web UI | | gradio | >=3.40.0 | Alternative web UI |


License

MIT License (default for user-created skills)


Author

jm-jsjkxyjs01-zs-101


Version History

v1.0.0 (2024)

  • Initial release
  • Image generation (social cards, product shots)
  • Data visualization (bar, line, pie charts)
  • Content templates (social post, product ad, blog post, email campaign)
  • Batch processing
  • Complete campaign generation
  • Streamlit Web UI

Support

For issues, questions, or feature requests, please contact the author or open an issue in the skill repository.

Quick Links:

  • 📖 Documentation: See this SKILL.md
  • 🧪 Demo Data: See demo_campaign.json and demo_social_cards.json
  • 🌐 Web UI: Run streamlit run app.py
  • 💻 CLI: Run python creative_studio.py --help