generate-image#
Constraints#
- The model's final user-facing response should match the user's input language, default English.
- Must request user confirmation before triggering any paid/high-cost image generation call.
- After confirmed, must call CreatOK Open Skills proxy and wait until completion.
- Avoid technical wording in the user-facing reply unless the user explicitly needs details for debugging.
Model Selection Rules#
The skill must read model list, defaults, and hard limits from the CreatOK capabilities endpoint at runtime instead of hardcoding them locally.
Keep the local client thin:
- use the returned default model unless the user explicitly chooses another supported model
- validate only hard execution constraints such as resolution, aspect ratio, count, and reference-image cap
- keep user-facing model explanation minimal and avoid depending on provider, family, or hint-style metadata
- ask only for what is necessary to generate a good image
- if resolution or aspect ratio is not specified, use the model defaults returned by the capabilities endpoint
- if the prompt is vague, offer to refine it before confirming generation
- reference images are optional — ask only if the user implies style transfer or subject reference
- when reference images are used, upload the local image file first and submit the returned uploaded reference with the generation task
Workflow#
- Confirmation gate (mandatory)
- Summarize:
- model
- resolution
- number of images (
n)
- aspect ratio if specified
- estimated cost/credits if available
- Ask for a simple confirmation before submitting.
- Do not submit the generation task until user says yes.
- Submit image generation
- Call CreatOK:
POST /api/open/skills/image-generation
- Poll status until completion
- Call CreatOK:
GET /api/open/skills/tasks/status?task_id=...&task_type=image_generation
- Persist artifacts + respond
- Write:
outputs/result.json with task_id/status/images/raw
outputs/result.md
- Persist the
task_id immediately after submission so the user can recover later.
- Return the final image URLs verbatim.
Existing Task Recovery#
- If the user already has a
task_id, continue from that task instead of starting a new one.
- In recovery mode, do not ask the user to restate the prompt if the task id is already available.
- The model can either check status once or keep polling if the user wants to wait.
- If the task succeeded, return the final image URLs verbatim.
- If the task is still queued or running, explain clearly and offer to keep checking.
- If the task failed, explain the failure and suggest next steps.
Artifacts#
All artifacts under generate-image/.artifacts/<run_id>/....
Thin Client Boundary#
- This skill submits generation jobs, polls status, and persists fixed-format outputs.
- The model should not make the user restate their idea if the direction is already clear from the conversation.