pollinations-ai

Free, no-signup AI image generation via simple URL parameters with customizable models and dimensions. Supports three AI models (flux, turbo, stable-diffusion) with adjustable width, height, seed, and enhancement parameters URL-based API requires no authentication; works with browser, curl, or Python requests for instant generation and file saving Includes batch generation, seed-based reproducibility, and metadata tracking for consistent creative workflows Best suited for rapid prototyping, marketing assets, social media content, and automated image pipelines

INSTALLATION
npx skills add https://github.com/supercent-io/skills-template --skill pollinations-ai
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

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: 1024x1024)
  • 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 (1584x396), 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, slower
  • turbo: Fast iterations
  • stable-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 1584x396, 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

  • Models: flux, turbo, stable-diffusion

Tags

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

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card