pollinations-ai
npx skills add https://github.com/supercent-io/skills-template --skill pollinations-ai
Agent 安装分布
Skill 文档
Pollinations.ai Image Generation
Free, open-source AI image generation through simple URL parameters. No API key or signup required.
When to use this skill
- Quick prototyping: Generate placeholder images instantly
- Marketing assets: Create hero images, banners, social media content
- Creative exploration: Test multiple styles and compositions rapidly
- No-budget projects: Free alternative to paid image generation services
- Automated workflows: Script-friendly URL-based API
Instructions
Step 1: Understand the API Structure
Pollinations.ai uses a simple URL-based API:
https://image.pollinations.ai/prompt/{YOUR_PROMPT}?{PARAMETERS}
No authentication required – just construct the URL and fetch the image.
Available Parameters:
width/height: Resolution (default: 1024×1024)model: AI model (flux,turbo,stable-diffusion)seed: Number for reproducible resultsnologo:trueto remove watermark (if supported)enhance:truefor automatic prompt enhancement
Step 2: Craft Your Prompt
Use descriptive prompts with specific details:
Good prompt structure:
[Subject], [Style], [Lighting], [Mood], [Composition], [Quality modifiers]
Example:
A father welcoming a beautiful holiday, warm golden hour lighting,
cozy interior background with festive decorations, 8k resolution,
highly detailed, cinematic depth of field
Prompt styles:
- Photorealistic: “photorealistic shot, 8k resolution, highly detailed, cinematic”
- Illustrative: “digital illustration, soft pastel colors, disney style animation”
- Minimalist: “minimalist vector art, flat design, simple geometric shapes”
Step 3: Generate via URL (Browser Method)
Simply open the URL in a browser or use curl:
# Basic generation
curl "https://image.pollinations.ai/prompt/A_serene_mountain_landscape" -o mountain.jpg
# With parameters
curl "https://image.pollinations.ai/prompt/A_serene_mountain_landscape?width=1920&height=1080&model=flux&seed=42" -o mountain-hd.jpg
Step 4: Generate and Save (Python Method)
For automation and file management:
import requests
from urllib.parse import quote
def generate_image(prompt, output_file, width=1920, height=1080, model="flux", seed=None):
"""
Generate image using Pollinations.ai and save to file
Args:
prompt: Description of the image to generate
output_file: Path to save the image
width: Image width in pixels
height: Image height in pixels
model: AI model ('flux', 'turbo', 'stable-diffusion')
seed: Optional seed for reproducibility
"""
# Encode prompt for URL
encoded_prompt = quote(prompt)
url = f"https://image.pollinations.ai/prompt/{encoded_prompt}"
# Build parameters
params = {
"width": width,
"height": height,
"model": model,
"nologo": "true"
}
if seed:
params["seed"] = seed
# Generate and save
print(f"Generating: {prompt[:50]}...")
response = requests.get(url, params=params)
if response.status_code == 200:
with open(output_file, "wb") as f:
f.write(response.content)
print(f"â Saved to {output_file}")
return True
else:
print(f"â Error: {response.status_code}")
return False
# Example usage
generate_image(
prompt="A father welcoming a beautiful holiday, warm lighting, festive decorations",
output_file="holiday_father.jpg",
width=1920,
height=1080,
model="flux",
seed=12345
)
Step 5: Batch Generation
Generate multiple variations:
prompts = [
"photorealistic shot of a father at front door, warm lighting, festive decorations",
"digital illustration of a father in snow, magical winter wonderland, disney style",
"minimalist silhouette of father and child, holiday fireworks, flat design"
]
for i, prompt in enumerate(prompts):
generate_image(
prompt=prompt,
output_file=f"variant_{i+1}.jpg",
width=1920,
height=1080,
model="flux"
)
Step 6: Document Your Generations
Save metadata for reproducibility:
import json
from datetime import datetime
metadata = {
"prompt": prompt,
"model": "flux",
"width": 1920,
"height": 1080,
"seed": 12345,
"output_file": "holiday_father.jpg",
"timestamp": datetime.now().isoformat()
}
with open("generation_metadata.json", "w") as f:
json.dump(metadata, f, indent=2)
Examples
Example 1: Hero Image for Website
generate_image(
prompt="serene mountain landscape at sunset, wide 16:9, minimal style, soft gradients in blue tones, clean lines, modern aesthetic",
output_file="hero-image.jpg",
width=1920,
height=1080,
model="flux"
)
Expected output: 16:9 landscape image, minimal style, blue color palette
Example 2: Product Thumbnail
generate_image(
prompt="futuristic dashboard UI, 1:1 square, clean interface, soft lighting, professional feel, dark theme, subtle glow effects",
output_file="product-thumb.jpg",
width=1024,
height=1024,
model="flux"
)
Expected output: Square thumbnail, dark theme, app store ready
Example 3: Social Media Banner
generate_image(
prompt="LinkedIn banner for SaaS startup, modern gradient background, abstract geometric shapes, colors from purple to blue, space for text on left side",
output_file="linkedin-banner.jpg",
width=1584,
height=396,
model="flux"
)
Expected output: LinkedIn-optimized dimensions (1584×396), text-safe zone
Example 4: Batch Variations with Seeds
# Generate 4 variations of the same prompt with different seeds
base_prompt = "A father welcoming a beautiful holiday, cinematic lighting"
for seed in [100, 200, 300, 400]:
generate_image(
prompt=base_prompt,
output_file=f"variation_seed_{seed}.jpg",
width=1920,
height=1080,
model="flux",
seed=seed
)
Expected output: 4 similar images with subtle variations
Best practices
- Use specific prompts: Include style, lighting, mood, and quality modifiers
- Specify dimensions early: Prevents unintended cropping
- Use seeds for consistency: Same seed + prompt = same image
- Model selection:
flux: Highest quality, slowerturbo: Fast iterationsstable-diffusion: Balanced
- Save metadata: Track prompts, seeds, and parameters for reproducibility
- Batch similar requests: Generate style sets with consistent parameters
- URL encode prompts: Use
urllib.parse.quote()for special characters
Common pitfalls
- Vague prompts: Add specific details about style, lighting, and composition
- Ignoring aspect ratios: Check target platform requirements (Instagram 1:1, LinkedIn 1584×396, etc.)
- Overly complex scenes: Simplify for clarity and better results
- Not saving metadata: Difficult to reproduce or iterate on successful images
- Forgetting URL encoding: Special characters break URLs
Troubleshooting
Issue: Inconsistent outputs
Cause: No seed specified Solution: Use a fixed seed for reproducible results
generate_image(prompt="...", seed=12345, ...) # Same output every time
Issue: Wrong aspect ratio
Cause: Incorrect width/height parameters Solution: Use platform-specific dimensions
# Instagram: 1:1
generate_image(prompt="...", width=1080, height=1080)
# LinkedIn banner: ~4:1
generate_image(prompt="...", width=1584, height=396)
# YouTube thumbnail: 16:9
generate_image(prompt="...", width=1280, height=720)
Issue: Image doesn’t match brand colors
Cause: No color specification in prompt Solution: Include HEX codes or color names
prompt = "landscape with brand colors deep blue #2563EB and purple #8B5CF6"
Issue: Request fails (HTTP error)
Cause: Network issue or service downtime Solution: Add retry logic
import time
def generate_with_retry(prompt, output_file, max_retries=3):
for attempt in range(max_retries):
if generate_image(prompt, output_file):
return True
print(f"Retry {attempt + 1}/{max_retries}...")
time.sleep(2)
return False
Output format
## Image Generation Report
### Request
- **Prompt**: [full prompt text]
- **Model**: flux
- **Dimensions**: 1920x1080
- **Seed**: 12345
### Output Files
1. `hero-image-v1.jpg` - Primary variant
2. `hero-image-v2.jpg` - Alternative style
3. `hero-image-v3.jpg` - Different lighting
### Metadata
- Generated: 2026-02-13T14:30:00Z
- Iterations: 3
- Selected: hero-image-v1.jpg
### Usage Notes
- Best for: Website hero section
- Format: JPEG, 1920x1080
- Reproducible: Yes (seed: 12345)
Multi-Agent Workflow
Validation & Quality Check
-
Round 1 (Orchestrator – Claude):
- Validate prompt completeness
- Check dimension requirements
- Verify seed consistency
-
Round 2 (Executor – Codex):
- Execute generation script
- Save files with proper naming
- Generate metadata JSON
-
Round 3 (Analyst – Gemini):
- Review style consistency
- Check brand alignment
- Suggest prompt improvements
Agent Roles
| Agent | Role | Tools |
|---|---|---|
| Claude | Prompt engineering, quality validation | Write, Read |
| Codex | Script execution, batch processing | Bash, Write |
| Gemini | Style analysis, brand consistency check | Read, ask-gemini |
Example Multi-Agent Workflow
# 1. Claude: Generate prompts and script
# 2. Codex: Execute generation
bash -c "python generate_images.py"
# 3. Gemini: Review outputs
ask-gemini "@outputs/ Analyze brand consistency of generated images"
Metadata
Version
- Current Version: 1.0.0
- Last Updated: 2026-02-13
- Compatible Platforms: Claude, ChatGPT, Gemini, Codex
Related Skills
- image-generation – MCP-based image generation
- design-system – Design system implementation
- presentation-builder – Presentation creation
API Documentation
- Official Site: https://pollinations.ai
- API Endpoint: https://image.pollinations.ai/prompt/{prompt}
- Models: flux, turbo, stable-diffusion
Tags
#pollinations #image-generation #free #api #url-based #no-signup #creative