# Free AI Image Generation APIs (2026-06-16)

Tested on this server (Indian VPS, no GPU). Useful for creating original AI-generated
images → animated video pipeline for 视频号 content.

## Pollinations.ai ✅ Best Option Found

- URL: `https://image.pollinations.ai/prompt/{URL_ENCODED_PROMPT}`
- **完全免费**，无需API Key，无需注册
- GET请求即可生成，返回JPEG (768x768)
- 人像/动物/风景都可以生成

### 限制
- **队列限制**：每个IP同时只能有1个请求（"Queue full for IP" HTTP 402）
- 需要逐个生成，每个间隔至少3-5秒
- 超时时间：简单prompt约10-20秒，复杂prompt可能更久
- 可用性：不太稳定，有时返回000/timeout

### 使用方法
```python
import urllib.parse, urllib.request
prompt = "funny cat wearing sunglasses"

# ⚠️ 必须加 User-Agent header！不加返回403 Forbidden
req = urllib.request.Request(
    f"https://image.pollinations.ai/prompt/{urllib.parse.quote(prompt)}",
    headers={"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36"}
)

resp = urllib.request.urlopen(req, timeout=60)
with open("/tmp/output.jpg", "wb") as f:
    f.write(resp.read())
```

### 重要坑（2026-06-16更新）  
**💡 最常见的失败原因是HTTP 403 — 必须加User-Agent！**  
- `urllib.request` 默认不带User-Agent，会被Pollinations拒绝（403 Forbidden）
- `curl` 默认带UA所以能访问，Python `urllib` 不行
- 解决方案：创建Request时加 `headers={"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36"}`
- **必须加 User-Agent**（`urllib.request` 默认无UA，返回403）
- **每个IP同时只能1个请求**（HTTP 402 = queue full），等前一个完成再发下一个
- **间隔至少15-20秒**，否则排队失败
- **部分关键词触发403**：sexy、beautiful woman 等会被内容审核拦截，用中性描述（"young person"、"woman"）
- **预热慢**：长时间不请求后第一个请求可能超时，需要更长的timeout(≥120s)

### 不适合的场景
- **不适合批量生成**（1个IP只能1个并发）
- **不适合视频/换脸**（纯图像生成，无视频能力）
- **不适合擦边内容**（有内容审核，sexy/性感类返回402 blocked）

## HuggingFace Free Inference API ❌ 不工作

- `https://api-inference.huggingface.co/models/{model_name}`
- 免费层需要HF_TOKEN（未配置）
- 无token时返回000/timeout
- **在这台服务器上不可用**

## OpenRouter Image Generation ❌ 不工作

- OpenRouter没有`/v1/images/generations`端点
- 模型列表不包含图像生成模型
- **无法用于文本生成图像**

## 结论

当前唯一可用的免费AI图像生成方案是Pollinations.ai。
适合**单张生成+ffmpeg做Ken Burns动画**的工作流。
不适合批量/并发/视频/换脸场景。
