Install
openclaw skills install cloudflare-workers-ai-imagesGenerate and edit images through Cloudflare Workers AI using one skill that supports text-to-image and image-to-image. Use when the user asks to generate, draw, create, render, transform, restyle, or modify images with Cloudflare Workers AI models such as stable-diffusion-xl-base-1.0 and stable-diffusion-v1-5-img2img. Trigger for requests about prompt-based image generation, editing an existing image, preserving a source image while changing overall style or composition, or when the user explicitly mentions Cloudflare Workers AI, Workers AI, SDXL, or img2img. Save generated images to a temporary local path, let OpenClaw send them to the current conversation window, and remove the temporary files after successful delivery unless the user explicitly asks to keep a saved copy.
openclaw skills install cloudflare-workers-ai-imagesUse this skill for two related image workflows backed by Cloudflare Workers AI:
Use the bundled script:
python3 scripts/cf_workers_ai_image.py <mode> "<prompt>" [options]
The script reads credentials from environment variables so the skill works cleanly in Docker-based OpenClaw deployments.
Use this skill when the user wants any of the following through Cloudflare Workers AI:
Strong trigger phrases include:
Mode selection guidance:
If the user asks for a local area edit, object replacement, or mask-based redraw, this skill does not cover that workflow anymore.
Read references/docker-compose-env-example.md when the user asks how to pass credentials through Docker Compose.
Required variables:
CF_ACCOUNT_IDCF_API_TOKENIf either variable is missing, the script exits with a clear error.
The script defaults to these Workers AI model identifiers:
text2img → @cf/stabilityai/stable-diffusion-xl-base-1.0img2img → @cf/runwayml/stable-diffusion-v1-5-img2imgOverride any default with --model if Cloudflare changes naming or the user wants another compatible Workers AI model.
python3 scripts/cf_workers_ai_image.py text2img "a cozy cabin in snowy mountains, cinematic lighting" --output /tmp/openclaw/
Optional knobs:
python3 scripts/cf_workers_ai_image.py text2img "a cozy cabin in snowy mountains, cinematic lighting" \
--negative-prompt "blurry, low quality, distorted" \
--num-steps 30 \
--guidance 7.5 \
--width 1024 \
--height 1024 \
--seed 42 \
--output /tmp/openclaw/
python3 scripts/cf_workers_ai_image.py img2img "turn this into a watercolor illustration" \
--image ./input/source.png \
--strength 0.65 \
--output /tmp/openclaw/
The bundled script sends the source image as a base64 field (image_b64) for Workers AI compatibility.
When you ask to generate or process an image:
scripts/cf_workers_ai_image.py with the --output /tmp/openclaw/ argument.This skill only generates and saves image files. It does not define a universal send format.
When returning a generated or edited image in chat, always follow the current session provider's required outbound media format. Different providers may require different delivery methods, wrappers, or tools. Do not assume that reading a local image path, echoing a file path, or relying on one provider's auto-routing behavior will work across all providers.
Required behavior:
When the runtime supports sending generated images back to the active conversation, prefer this flow:
scripts/cf_workers_ai_image.py --output /tmp/openclaw/.Recommended captions:
按你的提示生成好了。按你的源图和提示改好了。If the request is iterative, mention what changed in the new version, such as style, prompt emphasis, or source-image guidance.
mode: text2img | img2imgprompt: prompt text--image: required for img2img--output: required output file path or directory; use a temporary directory for normal chat delivery, or a persistent location only when the user explicitly requests a saved file--model: optional model override--negative-prompt: optional negative prompt--num-steps: optional sampling steps--guidance: optional guidance scale--strength: optional transformation strength--width, --height: optional text2img dimensions when supported by the model--seed: optional seed--timeout: HTTP timeout in secondsThe script's responsibility stops at generating the file and printing its saved path. The caller must handle outbound delivery using the active chat provider's required image-send format.
Run the bundled smoke test script after changing the API script or credentials:
python3 scripts/smoke_test.py
What it does:
CF_ACCOUNT_ID and CF_API_TOKENtext2img requestimg2img requestUse smoke tests to validate connectivity and gross regressions, not image quality.
If the script says a required environment variable is missing, pass CF_ACCOUNT_ID and CF_API_TOKEN through Docker Compose. See references/docker-compose-env-example.md.
Workers AI may return JSON for errors or validation failures. Surface the full JSON body.
The default policy is temporary-file delivery.
The token is missing, invalid, expired, or does not have the right Cloudflare account permission.
Cloudflare may have changed model identifiers. Retry with --model using the current Workers AI model name.
Use PNG for source images when possible.
Use this script for deterministic, repeatable Cloudflare Workers AI image generation and editing.
Use this script for a fast end-to-end connectivity and output smoke test across the supported modes.