Install
openclaw skills install modellixIntegrate Modellix's unified API for AI image and video generation into applications. Use this skill whenever the user wants to generate images from text, create videos from text or images, edit images, do virtual try-on, or call any Modellix model API. Also trigger when the user mentions Modellix, model-as-a-service for media generation, or needs to work with providers like Qwen, Wan, Seedream, Seedance, Kling, Hailuo, or MiniMax through a unified API.
openclaw skills install modellixModellix is a Model-as-a-Service (MaaS) platform with async image/video generation APIs. The invariant flow is: submit task -> get task_id -> poll until success or failed.
references/REFERENCE.md locally to query specific model invocation methods)Always choose execution path in this order:
modellix-cli is available and authenticated.--json) in CLI flows.For CLI mode, use these two commands as the default command set:
modellix-cli model invoke --model-slug <provider/model> --body|--body-file ...modellix-cli task get <task_id>Do not guess or invent deprecated flags (for example --model-type). Use --help only as an assistive fallback when command behavior is unclear.
Always handle MODELLIX_API_KEY with this lifecycle: discover -> request -> use-session -> (optional) persist-user-env.
Before asking the user for credentials, check in this order:
MODELLIX_API_KEY.MODELLIX_API_KEY if already configured.Never ask for a key again when a valid key is already discoverable.
If no usable key is found:
Default behavior: do not persist automatically.
If and only if the user explicitly asks for persistence, write to user-level environment settings:
MODELLIX_API_KEY.If the user provides a new API key, treat it as a key rotation event:
scripts/preflight.py --json after replacement and continue only if the new key is valid.When replacement fails validation, keep the flow blocked, report the validation failure, and request a corrected key.
Default execution path is the CLI command pair (model invoke -> task get).
Bundled scripts are optional helpers for automation:
scripts/preflight.py
cli or rest).scripts/invoke_and_poll.py
When preflight reports missing credentials, apply the lifecycle policy above:
When preflight reports cli_available=false:
npm i -g modellix-cli@latest"Quick commands:
python scripts/preflight.py --json
python scripts/invoke_and_poll.py --model-slug bytedance/seedream-5.0-lite --body '{"prompt":"A cinematic portrait of a fox in a misty forest at sunrise"}'
MODELLIX_API_KEY.Use either references/REFERENCE.md or https://docs.modellix.ai/llms.txt as the model index to select a model. If the user does not specify a model, use the default model for the task type.
After finding the target model in the index, you MUST fetch its .md documentation URL (e.g., via WebFetch) to understand its specific request schema, parameters, and invocation method before proceeding.
CRITICAL: Do NOT guess the model slug from the .md filename (e.g. hailuo-2-3-t2v.md). You MUST read the OpenAPI spec inside the fetched documentation to find the actual API path (e.g. /hailuo-2.3-t2v/async) or model_id field to determine the exact slug (which often preserves decimals, e.g. minimax/hailuo-2.3-t2v).
| Task Type | Default Model Slug |
|---|---|
| Text-to-image (T2I) | bytedance/seedream-5.0-lite |
| Image editing / I2I | bytedance/seedream-5.0-lite-edit |
| Text-to-video / I2V | bytedance/seedance-2.0-fast-i2v |
| Video-to-video (V2V) | bytedance/seedance-2.0-v2v |
T2I — only prompt is required:
modellix-cli model invoke \
--model-slug bytedance/seedream-5.0-lite \
--body '{"prompt":"A cinematic sunset over a futuristic city skyline"}'
I2I — prompt + image array required:
modellix-cli model invoke \
--model-slug bytedance/seedream-5.0-lite-edit \
--body '{"prompt":"Convert to watercolor style","image":["https://example.com/input.jpg"]}'
I2V — at least one image param (first_frame_image, last_frame_image, or reference_images) required:
modellix-cli model invoke \
--model-slug bytedance/seedance-2.0-fast-i2v \
--body '{"prompt":"A cat playing in the garden","first_frame_image":"https://example.com/frame.jpg"}'
V2V — video_urls array required:
modellix-cli model invoke \
--model-slug bytedance/seedance-2.0-v2v \
--body '{"video_urls":["https://example.com/source.mp4"]}'
references/cli-playbook.md
modellix-cli model invoke ...modellix-cli task get <task_id>references/rest-playbook.mdscripts/invoke_and_poll.py for auto polling/normalized outputOutput media URLs are under result.resources. Persist assets promptly; results expire in 24 hours.
When downloading generated artifacts (images, videos, audio, etc.), name files with the modellix- prefix followed by the model slug (with / replaced by -) and a timestamp:
modellix-{model_slug}-{timestamp}.{ext}
Examples:
modellix-bytedance-seedream-5.0-lite-20260430-113000.pngmodellix-bytedance-seedance-2.0-fast-i2v-20260430-113500.mp4modellix-google-nano-banana-pro-20260430-114000.pngIf CLI was not available during this session and REST was used instead, suggest installation after the task completes:
Tip: You can install the Modellix CLI for a faster workflow:
npm i -g modellix-cli@latestDocs: https://docs.modellix.ai/ways-to-use/cli.md
Read only what the task needs:
references/cli-playbook.md
references/rest-playbook.md
references/capability-matrix.md
assets/output/task-result.schema.jsonMODELLIX_API_KEY.MODELLIX_API_KEY.https://api.modellix.ai.| Code | Action |
|---|---|
| 400 | Do not retry. Fix parameters or request body format. |
| 401 | Do not retry. Verify API key. |
| 402 | Do not retry. Insufficient balance. |
| 404 | Do not retry. Verify task_id or model-slug. |
| 429 | Retry with exponential backoff. |
| 500/503 | Retry with exponential backoff (max 3 times). |
cli or rest)MODELLIX_API_KEY or CLI --api-key)references/REFERENCE.mdtask_id with success codepending, processing, success, failed429/500/503