🎨 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, orpie--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:
- Open http://localhost:8501
- Use sidebar to navigate between features
- Configure settings and generate content
- 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:
- Check your API key is valid
- Set environment variable:
export OPENAI_API_KEY="your-key" - Or use fallback generation (no API needed)
Web UI not loading
Solutions:
- Install Streamlit:
pip install streamlit - Check port 8501 is not in use
- Try:
streamlit run app.py --server.port 8502
Permission denied errors
Solutions:
- Run PowerShell as Administrator
- Check file permissions on E:\skills directory
- 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) -> bytescreate_product_shot(product_name: str, price: str, features: List[str]) -> bytessave_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) -> boolcreate_line_chart(data: Dict, title: str, x_labels: List, output_path: str) -> boolcreate_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) -> strgenerate_image_prompt(description: str, style: str) -> str
Class: BatchProcessor
Methods:
__init__(config: Optional[Dict] = None)batch_social_cards(items: List[Dict], output_dir: str) -> Dictbatch_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.jsonanddemo_social_cards.json - 🌐 Web UI: Run
streamlit run app.py - 💻 CLI: Run
python creative_studio.py --help
微信扫一扫