Install
openclaw skills install comfyui-agent-skill-mieAgent skill for running registered ComfyUI workflows through a stable CLI. Supports image, video, music, and speech generation on a local or trusted self-hosted ComfyUI server (default http://127.0.0.1:8188). Registered workflows only.
openclaw skills install comfyui-agent-skill-mieRun registered ComfyUI workflows through a stable Agent-facing CLI, with prompt enhancement, fail-fast errors, and structured JSON results.
Use this skill when the user asks to:
Do not use this skill when the user only wants prompt writing, brainstorming, or discussion without actual generation. Do not use it when the ComfyUI server is unavailable.
SKILL.md and scripts/).comfyui-agent-skill-mie / comfyui-skill can be run from any directory.uv run --no-sync python -m comfyui (or uv run --no-sync comfyui-skill) for runtime calls.comfyui-skill (or comfyui-agent-skill-mie) directly; do not wrap with uv run.SERVER_UNAVAILABLE; do not search disk for ComfyUI installs or guess ports.config.local.json unless the user explicitly wants a persistent server URL. For one-off runs, use --server or COMFYUI_URL.reference_to_image, inspect the reference image with Agent vision and create a prompt. Do not upload that reference image to ComfyUI.image_to_image and image_to_video, upload the provided local image with --image.Recommended install (tool-install mode):
pipx install comfyui-agent-skill-mie
comfyui-agent-skill-miecomfyui-agent-skill-miecomfyui-skillPrerequisites:
GET /system_stats available.uv.Networking note:
http://127.0.0.1:8188 for same-environment setups.127.0.0.1 may refer to the runtime itself. Try --server http://localhost:8188 or the host machine IP (and optionally persist it via save-server).Initial setup from the skill root:
uv sync
uv run --no-sync python -m comfyui --help
Tool-install mode:
comfyui-agent-skill-mie --help
comfyui-agent-skill-mie check
comfyui-skill --help
comfyui-skill check
Minimal decision tree:
generate -p "..." (defaults to z_image_turbo)reference_to_image prompt → run z_image_turbogenerate --workflow klein_edit --image input_image=... -p "..."generate --workflow qwen3_tts --speech-text "..." --instruct "..."ltx_23_t2v_distill (text→video) or ltx_23_i2v_distilled (image→video)| User intent | Workflow / mode | Required command shape |
|---|---|---|
| Text to image | z_image_turbo default | generate -p "prompt" |
| Qwen Image 2512 | qwen_image_2512_4step | generate --workflow qwen_image_2512_4step -p "prompt" |
| Similar image from reference | Agent vision + T2I | Read reference image, create English prompt, then T2I |
| Edit image | klein_edit | generate --workflow klein_edit --image input_image=photo.png -p "edit prompt" |
| Text to video | ltx_23_t2v_distill | generate --workflow ltx_23_t2v_distill -p "shot prompt" |
| Image to video | ltx_23_i2v_distilled | generate --workflow ltx_23_i2v_distilled --image input_image=photo.png -p "motion prompt" |
| Text to music | ace_step_15_music | generate --workflow ace_step_15_music -p "music tags" |
| Text to speech | qwen3_tts | generate --workflow qwen3_tts --speech-text "..." --instruct "..." |
For workflow-specific size rules, capability boundaries, and examples, read references/workflows.md.
Environment doctor (check server + preflight registered workflows):
Tool-install mode:
comfyui-skill doctor
Source mode:
uv run --no-sync python -m comfyui doctor
If it exits with code 0, the environment is ready for all checked workflows. Exit code 1 means missing nodes/models or server is unreachable (see JSON payload).
Health check:
uv run --no-sync python -m comfyui check
Tool-install mode:
comfyui-skill check
Generate an image:
uv run --no-sync python -m comfyui generate -p "a cute cat sitting on a windowsill at golden hour"
Tool-install mode:
comfyui-skill generate -p "a cute cat sitting on a windowsill at golden hour"
Generate with a specific workflow and server:
uv run --no-sync python -m comfyui generate --workflow z_image_turbo --server http://192.168.1.100:8188 -p "a landscape"
Save a persistent server URL only when the user asks for it:
uv run --no-sync python -m comfyui save-server http://192.168.1.100:8188
Preflight a workflow before a long run:
uv run --no-sync python -m comfyui generate --workflow qwen_image_2512_4step --preflight
Show progress for long jobs:
uv run --no-sync python -m comfyui generate --workflow ltx_23_t2v_distill -p "cinematic waves at sunset, slow pan" --progress
Full CLI options, output path behavior, async submit/poll, and error code details are in references/cli.md.
Before generation, convert the user's intent into the right workflow inputs.
| Type | Read this file | Use when |
|---|---|---|
character | references/prompt_enhancement/character.md | Portrait, person, character, figure photo |
reference_to_image | references/prompt_enhancement/reference_to_image.md | User provides a reference image and wants a new similar image |
image_to_image | references/prompt_enhancement/image_to_image.md | User provides an input image and wants to edit it |
text_to_speech | references/prompt_enhancement/text_to_speech.md | User gives a short voice description and needs full Qwen3-TTS instruction |
Reference-to-image flow:
NO_REFERENCE_IMAGE.VISION_UNAVAILABLE.Image-to-image flow:
klein_edit with --image input_image=path.Text-to-speech flow:
qwen3_tts with --speech-text and --instruct; do not use positional prompt.CLI failures are structured JSON on stdout. Agent-only pre-check failures for reference images should also be JSON.
Agent-only error shape:
{
"source": "agent",
"success": false,
"error": {"code": "VISION_UNAVAILABLE", "message": "Cannot read reference image in this runtime."}
}
Required fail-fast behavior:
EMPTY_PROMPT.WORKFLOW_NOT_REGISTERED.SERVER_UNAVAILABLE and ask whether ComfyUI is running locally or on another machine.reference_to_image: return Agent error NO_REFERENCE_IMAGE; do not call CLI.reference_to_image: return Agent error VISION_UNAVAILABLE; do not call CLI.NO_INPUT_IMAGE or INPUT_IMAGE_NOT_FOUND.PREFLIGHT_MISSING_NODES or PREFLIGHT_MISSING_MODELS.When the user provides a remote ComfyUI address, save it only if they want persistence:
uv run --no-sync python -m comfyui save-server http://<address>:<port>
Otherwise retry the original command with --server http://<address>:<port>.
After successful generation, present the result to the user. Do not silently parse JSON and stop.
outputs[].path.--output; the CLI writes to a per-job directory under results/ and returns exact paths in JSON.--count > 1, parse the wrapper object and present each result.See references/cli.md for JSON schemas and output directory rules.
references/prompt_enhancement/ — prompt enhancement instructions.