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.
git clone https://github.com/openclaw/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"
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"
skills/albertsalgueda/krea/SKILL.mdKrea 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
or--model z-image
(3-5 CU, ~5s) for quick iteration--model flux-1-devuv 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
or--model gpt-image--model nano-banana-prouv 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" →
orflux-1-devz-image - "high quality", "best" →
ornano-banana-progpt-image - "text in image", "typography" →
ideogram-3 - "photorealistic" →
orseedream-4nano-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" →
withveo-3--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
| Param | Description | Default |
|---|---|---|
| Model ID or alias (run list_models.py) | |
| Text description (required) | — |
| Output filename (required) | — |
| Width in pixels (512-4096) | 1024 |
| Height in pixels (512-4096) | 1024 |
| Aspect ratio (1:1, 16:9, 9:16, 4:3, 3:2, etc.) | — |
| 1K, 2K, 4K (nano-banana models) | — |
| Seed for reproducibility | — |
| Input image URL or local file path for image-to-image | — |
| LoRA style ID to apply | — |
| LoRA strength (-2 to 2) | 1.0 |
| Number of images (1-4) | 1 |
| Inference steps, 1-100 (flux models) | 25 |
| Guidance scale, 0-24 (flux models) | 3 |
| low/medium/high/auto (gpt-image) | auto |
| Output directory | cwd |
| Krea API token | — |
Video Generation Parameters
| Param | Description | Default |
|---|---|---|
| Model ID or alias (run list_models.py) | |
| Text description (required) | — |
| Output filename (required) | — |
| Duration in seconds | 5 |
| 16:9, 9:16, 1:1 | 16:9 |
| URL or local file path for image-to-video | — |
| End frame URL (kling only) | — |
| 720p, 1080p (veo only) | 720p |
| std, pro (kling only) | std |
| Generate audio (veo-3 only) | false |
| Output directory | cwd |
| Krea API token | — |
Enhancement Parameters
| Param | Description | Default |
|---|---|---|
| Enhancer ID (run list_models.py --type enhance) | |
| Source image URL or local file path (required) | — |
| Output filename (required) | — |
| Target width (required) | — |
| Target height (required) | — |
| Sub-model variant | Standard V2 |
| 1-6 (generative) or 1-9 (bloom) | — |
| Enable face enhancement | false |
| Sharpening 0-1 | — |
| Denoising 0-1 | — |
| Upscaling factor 1-32 | — |
| png, jpg, webp | png |
| Output directory | cwd |
| Krea API token | — |
LoRA Training Parameters
| Param | Description | Default |
|---|---|---|
| Style name (required) | — |
| Base model: flux_dev, flux_schnell, wan, qwen, z-image | |
| LoRA type: Style, Object, Character, Default | |
| Training image URLs (space-separated) | — |
| Text file with one URL per line | — |
| Trigger word to activate the LoRA in prompts | — |
| Learning rate | 0.0001 |
| Max training steps | 1000 |
| Training batch size | 1 |
| Polling timeout in seconds | 3600 |
| Skip URL HEAD-check validation | false |
| Directory to save training manifest | — |
| 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:
argument (use if user provided key in chat)--api-key
environment variableKREA_API_TOKEN
If neither is available, the script exits with an error message.
Preflight + Common Failures
Preflight:
(must exist)command -v uv
(or passtest -n "$KREA_API_TOKEN"
)--api-key
Common failures:
→ setError: No API key
or passKREA_API_TOKEN--api-key
→ top up compute units at https://krea.ai/settings/billing402 Insufficient credits
→ model needs a paid plan upgrade at https://krea.ai/settings/billing402 This model requires a higher plan
→ concurrent job limit reached; scripts auto-retry up to 3 times with backoff429 Too many requests
→ check prompt for content moderation issues, try different wordingJob failed
Filename Generation
Generate filenames with the pattern:
yyyy-mm-dd-hh-mm-ss-name.ext
- Timestamp: current date/time in
(24h format)yyyy-mm-dd-hh-mm-ss - Name: descriptive lowercase text with hyphens (1-5 words)
- Extension:
for images,.png
for videos.mp4
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
> 1, files are saved as--batch-size
,name-1.png
, etc.name-2.png
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"}]}'