pollinations-ai

📁 supercent-io/skills-template 📅 Today
0
总安装量
2
周安装量
安装命令
npx skills add https://github.com/supercent-io/skills-template --skill pollinations-ai

Agent 安装分布

opencode 2
amp 1
kimi-cli 1
codex 1
github-copilot 1
gemini-cli 1

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 results
  • nologo: true to remove watermark (if supported)
  • enhance: true for 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

  1. Use specific prompts: Include style, lighting, mood, and quality modifiers
  2. Specify dimensions early: Prevents unintended cropping
  3. Use seeds for consistency: Same seed + prompt = same image
  4. Model selection:
    • flux: Highest quality, slower
    • turbo: Fast iterations
    • stable-diffusion: Balanced
  5. Save metadata: Track prompts, seeds, and parameters for reproducibility
  6. Batch similar requests: Generate style sets with consistent parameters
  7. 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

API Documentation

Tags

#pollinations #image-generation #free #api #url-based #no-signup #creative