Skills krea-ai

Generate images, videos, upscale/enhance images, and train LoRA styles using the Krea.ai API. Supports 20+ image models (Flux, Imagen, GPT Image, Ideogram, Seedream), 7 video models (Kling, Veo, Hailuo, Wan), and 3 upscalers (Topaz up to 22K). Use when the user wants to generate images, create videos, upscale images, train custom LoRA styles, or run multi-step creative pipelines.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/albertsalgueda/krea" ~/.claude/skills/openclaw-skills-krea-ai && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/albertsalgueda/krea" ~/.openclaw/skills/openclaw-skills-krea-ai && rm -rf "$T"
manifest: skills/albertsalgueda/krea/SKILL.md
source content

Krea AI — Image, Video & Enhancement Generation

Generate images, videos, upscale/enhance images, and train LoRA styles using the Krea.ai API. Supports 20+ image models (Flux, Imagen, GPT Image, Ideogram, Seedream...), 7 video models (Kling, Veo, Hailuo, Wan), and 3 upscalers (Topaz up to 22K).

IMPORTANT: Do NOT invent model names. Run

list_models.py
to get the live list of models, CU costs, and accepted parameters from the Krea API's OpenAPI spec. All scripts resolve models dynamically from the spec — there are no hardcoded endpoint tables. Scripts also accept full endpoint paths from
list_models.py --json
output (e.g.
--model /generate/image/google/imagen-4-ultra
).

Usage

Scripts are in the

scripts/
directory alongside this file. Run them with
uv run
from the user's working directory so output files are saved where the user expects.

Generate image:

uv run ~/.codex/skills/krea/scripts/generate_image.py --prompt "your description" --filename "output.png" [--model nano-banana-2] [--width 1024] [--height 1024] [--api-key KEY]

Generate video:

uv run ~/.codex/skills/krea/scripts/generate_video.py --prompt "your description" --filename "output.mp4" [--model veo-3.1-fast] [--duration 5] [--aspect-ratio 16:9] [--api-key KEY]

Enhance/upscale image:

uv run ~/.codex/skills/krea/scripts/enhance_image.py --image-url "https://..." --filename "upscaled.png" --width 4096 --height 4096 [--enhancer topaz-standard-enhance] [--api-key KEY]

Train a LoRA style:

uv run ~/.codex/skills/krea/scripts/train_style.py --name "my-style" --urls-file images.txt [--model flux_dev] [--type Style] [--trigger-word "mystyle"] [--api-key KEY]

List available models:

uv run ~/.codex/skills/krea/scripts/list_models.py [--type image|video|enhance]

Run a multi-step pipeline:

uv run ~/.codex/skills/krea/scripts/pipeline.py --pipeline pipeline.json [--api-key KEY]

Check job status:

uv run ~/.codex/skills/krea/scripts/get_job.py --job-id "uuid" [--api-key KEY]

Important: Always run from the user's current working directory so files are saved where the user is working.

Default Workflow (draft → iterate → final)

Goal: fast iteration without burning CU on expensive models until the prompt is right.

  • Draft (cheap/fast): use

    --model z-image
    or
    --model flux-1-dev
    (3-5 CU, ~5s) for quick iteration

    uv run ~/.codex/skills/krea/scripts/generate_image.py --prompt "<draft prompt>" --filename "yyyy-mm-dd-hh-mm-ss-draft.png" --model flux-1-dev
    
  • Iterate: adjust prompt, keep trying with cheap models

  • Final (high quality): switch to

    --model gpt-image
    or
    --model nano-banana-pro

    uv run ~/.codex/skills/krea/scripts/generate_image.py --prompt "<final prompt>" --filename "yyyy-mm-dd-hh-mm-ss-final.png" --model nano-banana-pro
    

Available Models

Models, CU costs, and accepted body fields are fetched live from the Krea API's OpenAPI spec (

/openapi.json
). Run
list_models.py
to see what's currently available:

uv run ~/.codex/skills/krea/scripts/list_models.py                     # all models with params
uv run ~/.codex/skills/krea/scripts/list_models.py --type image         # image models only
uv run ~/.codex/skills/krea/scripts/list_models.py --json               # machine-readable

Short aliases (e.g.

flux
for
flux-1-dev
) are maintained for convenience. The scripts resolve them automatically via the spec. If a model isn't in the alias list, pass the full OpenAPI model ID or endpoint path.

Model selection guidance

Map user requests for images:

  • "fast", "quick", "cheap" →
    flux-1-dev
    or
    z-image
  • "high quality", "best" →
    nano-banana-pro
    or
    gpt-image
  • "text in image", "typography" →
    ideogram-3
  • "photorealistic" →
    seedream-4
    or
    nano-banana-pro
  • No preference →
    nano-banana-2

Map user requests for video:

  • "fast" →
    hailuo-2.3
  • "cinematic", "high quality" →
    veo-3.1
  • "with sound", "with audio" →
    veo-3
    with
    --generate-audio
  • No preference →
    veo-3.1-fast

Enhancers:

topaz-standard-enhance
(faithful upscaling, default),
topaz-generative-enhance
(creative enhancement),
topaz-bloom-enhance
(adding creative details).

Image Generation Parameters

ParamDescriptionDefault
--model
Model ID or alias (run list_models.py)
nano-banana-2
--prompt
Text description (required)
--filename
Output filename (required)
--width
Width in pixels (512-4096)1024
--height
Height in pixels (512-4096)1024
--aspect-ratio
Aspect ratio (1:1, 16:9, 9:16, 4:3, 3:2, etc.)
--resolution
1K, 2K, 4K (nano-banana models)
--seed
Seed for reproducibility
--image-url
Input image URL or local file path for image-to-image
--style-id
LoRA style ID to apply
--style-strength
LoRA strength (-2 to 2)1.0
--batch-size
Number of images (1-4)1
--steps
Inference steps, 1-100 (flux models)25
--guidance-scale
Guidance scale, 0-24 (flux models)3
--quality
low/medium/high/auto (gpt-image)auto
--output-dir
Output directorycwd
--api-key
Krea API token

Video Generation Parameters

ParamDescriptionDefault
--model
Model ID or alias (run list_models.py)
veo-3.1-fast
--prompt
Text description (required)
--filename
Output filename (required)
--duration
Duration in seconds5
--aspect-ratio
16:9, 9:16, 1:116:9
--start-image
URL or local file path for image-to-video
--end-image
End frame URL (kling only)
--resolution
720p, 1080p (veo only)720p
--mode
std, pro (kling only)std
--generate-audio
Generate audio (veo-3 only)false
--output-dir
Output directorycwd
--api-key
Krea API token

Enhancement Parameters

ParamDescriptionDefault
--enhancer
Enhancer ID (run list_models.py --type enhance)
topaz-standard-enhance
--image-url
Source image URL or local file path (required)
--filename
Output filename (required)
--width
Target width (required)
--height
Target height (required)
--enhancer-model
Sub-model variantStandard V2
--creativity
1-6 (generative) or 1-9 (bloom)
--face-enhancement
Enable face enhancementfalse
--sharpen
Sharpening 0-1
--denoise
Denoising 0-1
--scaling-factor
Upscaling factor 1-32
--output-format
png, jpg, webppng
--output-dir
Output directorycwd
--api-key
Krea API token

LoRA Training Parameters

ParamDescriptionDefault
--name
Style name (required)
--model
Base model: flux_dev, flux_schnell, wan, qwen, z-image
flux_dev
--type
LoRA type: Style, Object, Character, Default
Style
--urls
Training image URLs (space-separated)
--urls-file
Text file with one URL per line
--trigger-word
Trigger word to activate the LoRA in prompts
--learning-rate
Learning rate0.0001
--max-train-steps
Max training steps1000
--batch-size
Training batch size1
--timeout
Polling timeout in seconds3600
--skip-validation
Skip URL HEAD-check validationfalse
--output-dir
Directory to save training manifest
--api-key
Krea API token

Training requires 3-2000 images. The script validates all URLs before submitting. Training takes 15-45 minutes. On completion, the style ID is printed to stdout and a

training-manifest.json
is saved if
--output-dir
is set.

Use the style ID with

--style-id
in
generate_image.py
:

uv run ~/.codex/skills/krea/scripts/generate_image.py --prompt "mystyle product on white background" --style-id "style_abc123" --model flux-1-dev --filename "branded.png"

API Key

Scripts check for API key in this order:

  1. --api-key
    argument (use if user provided key in chat)
  2. KREA_API_TOKEN
    environment variable

If neither is available, the script exits with an error message.

Preflight + Common Failures

Preflight:

  • command -v uv
    (must exist)
  • test -n "$KREA_API_TOKEN"
    (or pass
    --api-key
    )

Common failures:

  • Error: No API key
    → set
    KREA_API_TOKEN
    or pass
    --api-key
  • 402 Insufficient credits
    → top up compute units at https://krea.ai/settings/billing
  • 402 This model requires a higher plan
    → model needs a paid plan upgrade at https://krea.ai/settings/billing
  • 429 Too many requests
    → concurrent job limit reached; scripts auto-retry up to 3 times with backoff
  • Job failed
    → check prompt for content moderation issues, try different wording

Filename Generation

Generate filenames with the pattern:

yyyy-mm-dd-hh-mm-ss-name.ext

  • Timestamp: current date/time in
    yyyy-mm-dd-hh-mm-ss
    (24h format)
  • Name: descriptive lowercase text with hyphens (1-5 words)
  • Extension:
    .png
    for images,
    .mp4
    for videos

Examples:

  • Prompt "A cyberpunk cat" →
    2026-03-31-14-23-05-cyberpunk-cat.png
  • Prompt "waves on a beach" →
    2026-03-31-15-30-12-beach-waves.mp4

Prompt Handling

For generation: Pass user's description as-is to

--prompt
. Only rework if clearly insufficient.

For image-to-image: Use

--image-url
with the source image and describe the desired transformation in
--prompt
.

For video from image: Use

--start-image
with the source image and describe the desired motion/action in
--prompt
.

Preserve user's creative intent in all cases.

Output

  • Scripts download the result and save it to the current directory (or
    --output-dir
    )
  • Script outputs the full path to the generated file
  • Do not read the image/video back — just inform the user of the saved path
  • If
    --batch-size
    > 1, files are saved as
    name-1.png
    ,
    name-2.png
    , etc.

Examples

Quick draft image:

uv run ~/.codex/skills/krea/scripts/generate_image.py --prompt "A serene Japanese garden with cherry blossoms" --filename "2026-03-31-14-23-05-japanese-garden.png"

High quality final:

uv run ~/.codex/skills/krea/scripts/generate_image.py --prompt "A serene Japanese garden with cherry blossoms, golden hour lighting" --filename "2026-03-31-14-25-30-japanese-garden-final.png" --model nano-banana-pro --resolution 4K

Image-to-image edit:

uv run ~/.codex/skills/krea/scripts/generate_image.py --prompt "transform to watercolor painting style" --filename "2026-03-31-14-30-00-watercolor.png" --image-url "https://example.com/photo.jpg" --model nano-banana-pro

Generate video:

uv run ~/.codex/skills/krea/scripts/generate_video.py --prompt "A majestic eagle soaring over snow-capped mountains at sunrise" --filename "2026-03-31-15-00-00-eagle-mountains.mp4" --model veo-3 --duration 8 --generate-audio

Upscale image to 4K:

uv run ~/.codex/skills/krea/scripts/enhance_image.py --image-url "https://example.com/photo.jpg" --filename "2026-03-31-15-10-00-upscaled.png" --width 4096 --height 4096 --enhancer topaz

Train a LoRA style:

uv run ~/.codex/skills/krea/scripts/train_style.py --name "acme-brand" --model flux_dev --type Style --trigger-word "acmestyle" --urls-file brand-images.txt --output-dir output/acme-brand

List models:

uv run ~/.codex/skills/krea/scripts/list_models.py --type image

Pipelines (Multi-Step Workflows)

For multi-step workflows (generate → enhance → animate, fan_out branching, template variables, parallel execution, resume, dry-run), see PIPELINES.md.

Quick example:

uv run ~/.codex/skills/krea/scripts/pipeline.py --pipeline '{"steps":[{"action":"generate_image","prompt":"a cat astronaut","filename":"cat"},{"action":"enhance","use_previous":true,"enhancer":"topaz-standard-enhance","width":4096,"height":4096,"filename":"cat-4k"}]}'