Krea.ai API

v0.2.4

Generate images via Krea.ai API (Flux, Imagen, Ideogram, Seedream, etc.)

5· 2.9k· 8 versions· 3 current· 3 all-time· Updated 5h ago· MIT-0
byCarlos E. Barboza@fossilizedcarlos

Install

openclaw skills install krea-api

Krea.ai Image Generation Skill

Generate images using Krea.ai's API with support for multiple models including Flux, Imagen 4, Ideogram 3.0, and more.

Features

  • ✅ Async job-based generation (POST → poll → result)
  • ✅ Support for multiple image models
  • ✅ Configurable parameters (width, height, steps, guidance, seed)
  • ✅ Stdlib-only dependencies (no requests required)
  • ✅ Secure credential handling with file permissions

Security

This skill prioritizes security:

  • No webhook support - Removed to prevent SSRF risks
  • Stdlib dependencies - Minimal attack surface (uses urllib only)
  • File-based credentials - Primary credential source with secure permissions
  • Input validation - All parameters validated before API calls

Credential Sources (in order of precedence)

  1. CLI arguments: --key-id and --secret (for one-off use)
  2. File: ~/.openclaw/credentials/krea.json

Note on Subprocess

The --usage flag uses webbrowser.open() (stdlib) to open the usage dashboard in a browser. No subprocess calls.

Setup

  1. Get your Krea.ai API credentials from https://docs.krea.ai/developers/api-keys-and-billing
  2. Create the credentials file:
mkdir -p ~/.openclaw/credentials
  1. Add your credentials:
echo '{"apiKey": "YOUR_KEY_ID:YOUR_SECRET"}' > ~/.openclaw/credentials/krea.json
  1. Set secure permissions:
chmod 600 ~/.openclaw/credentials/krea.json

Usage

Command Line

# Generate an image
python3 krea_api.py --prompt "A sunset over the ocean"

# With specific model
python3 krea_api.py --prompt "Cyberpunk city" --model imagen-4

# Custom size
python3 krea_api.py --prompt "Portrait" --width 1024 --height 1280

# List available models
python3 krea_api.py --list-models

# Check recent jobs
python3 krea_api.py --jobs 10

Python Script

from krea_api import KreaAPI

api = KreaAPI()  # Reads from ~/.openclaw/credentials/krea.json

# Generate and wait
urls = api.generate_and_wait(
    prompt="A serene Japanese garden",
    model="flux",
    width=1024,
    height=1024
)
print(urls)

Parameters

ParameterTypeDefaultDescription
promptstrrequiredImage description (max 1800 chars)
modelstr"flux"Model name from table below
widthint1024Image width (512-2368)
heightint1024Image height (512-2368)
stepsint25Generation steps (1-100)
guidance_scalefloat3.0Guidance scale (0-24)
seedstrNoneRandom seed for reproducibility

Available Models

ModelBest For
fluxGeneral purpose, high quality
imagen-4Latest Google model
ideogram-3.0Text in images
seedream-4Fast generations
nano-bananaQuick previews

Run python3 krea_api.py --list-models for full list.

Check Usage

Krea.ai doesn't provide a public usage API. Check your usage at:

https://www.krea.ai/settings/usage-statistics

Or list recent jobs:

python3 krea_api.py --jobs 10

File Locations

PurposePath
Credentials~/.openclaw/credentials/krea.json
Script{skill}/krea_api.py
Skill docs{skill}/SKILL.md

Troubleshooting

"API credentials required"

  1. Check credentials file exists:
ls -la ~/.openclaw/credentials/krea.json
# Should show: -rw-------
  1. Verify format (must have colon):
{"apiKey": "KEY_ID:SECRET"}

⚠️ Security: Do NOT use cat to view the credentials file — it contains secrets.

Model not found

Run python3 krea_api.py --list-models to see available models.

Credits

Thanks to Claude Opus 4.5 for researching the correct API structure. The docs incorrectly suggest /v1/images/flux but the working endpoint is /generate/image/bfl/flux-1-dev.

Version tags

latestvk97c4rzj6rjptvmkztbg5t18k581gw4k