Install
openclaw skills install saa-agentEnables AI agents to generate images using the Character Select Stand Alone App (SAA) image generation backend via command-line interface.
openclaw skills install saa-agentA command-line interface for interacting with Character Select Stand Alone App (SAA) via WebSocket connections. Supports both ComfyUI and WebUI backends for AI image generation.
CRITICAL: Before invoking this tool, confirm with the user that:
python3 instead of python to invoke Python 3.xFor SAA setup details, let your owner visit the project repository.
The tool requires minimal parameters to function. The examples below demonstrate the standard usage pattern:
python saa-agent.py \
--ws-address "user_provided_ws_address" \
--model "waiIllustriousSDXL_v160.safetensors" \
--positive "your detailed prompt here" \
--negative "low quality, blurry, bad anatomy"
python saa-agent.py \
--ws-address "user_provided_ws_address" \
--model "waiIllustriousSDXL_v160.safetensors" \
--regional \
--positive-left "1girl, warrior, red armor" \
--positive-right "1boy, mage, blue robes"
Get more usage examples and detailed parameter explanations:
python saa-agent.py
python saa-agent.py --help
--ws-address: WebSocket address (obtain from user)--positive: Main prompt OR use --regional mode with --positive-left and --positive-right--model: Change the checkpoint model (default: waiIllustriousSDXL_v160.safetensors)--negative: Specify unwanted elements--width / --height: Image dimensions (defaults: 1024x1360)--steps: Sampling steps (default: 28)--seed: Set specific seed or -1 for random--cfg: CFG scale (default: 7.0)--sampler: Sampling algorithm (default: euler_ancestral)--scheduler: Scheduler type (default: normal)DO NOT use --hifix unless specifically requested by the user.
HiResFix significantly increases generation time and requires substantial GPU resources. Only enable if:
If the generation returns either of these errors:
Error: WebUI is busy, cannot run new generation, please try again later.
Error: ComfyUI is busy, cannot run new generation, please try again later.
Actions to take:
DO NOT chain multiple retry attempts as this can worsen backend congestion.
The --skeleton-key parameter forcefully unlocks the backend's atomic lock.
When to use:
How to use:
python saa-agent.py \
--ws-address "user_provided_ws_address" \
--skeleton-key \
--positive "test prompt"
Rules:
--skeleton-keyExample conversation:
AI: "The backend appears to be locked. Would you like me to use the skeleton key to force unlock it? This will terminate any existing locks."
User: "Yes, please unlock it."
AI: [proceeds to run command with --skeleton-key]
When in doubt, rely on these defaults - they work well for most cases:
waiIllustriousSDXL_v160.safetensorseuler_ancestralnormalBy default, images are saved to generated_image.png. You can specify a custom output path:
--output "custom_filename.png"
For programmatic handling, use base64 output:
--base64
This outputs base64-encoded image data(huge!!!) to stdout instead of saving a file.
User requests: "Generate an anime girl with long blue hair"
AI executes:
python saa-agent.py \
--ws-address "user_ws_address" \
--positive "1girl, long hair, blue hair, anime style, detailed" \
--negative "low quality, blurry, bad anatomy"
If backend busy error occurs:
If success:
--hifix unless explicitly requested--skeleton-key without user permission--verbose flag when debugging issuesThese rules help maintain appropriate transparency and user control when executing generation tasks.
Command Execution & User Notification
By default, execute the command directly without asking for confirmation.
Show the full command and ask for approval only when:
Example (when disclosure is needed):
python3 saa-agent.py --ws-address "wss://..." --username "..." --password "..." --positive "[prompt]" --negative "[prompt]" --output "[path]" [--verbose]
--verbose Flag
Example:
Generation completed • Positive: [...] • Negative: [...] • Seed: 123456789 • Output: [path]
Skip detailed reporting only if the user has clearly requested silent / minimal feedback.
Always report errors, even in silent mode.
--verbose to capture diagnostic information