generate-with-comfyui
npx skills add https://smithery.ai
Agent 安装分布
Skill 文档
Generate with ComfyUI Skill
Purpose
Programmatically invoke ComfyUI workflows to generate content. Modify prompts, queue workflows, wait for completion, and retrieve results.
Trigger
Use this skill when:
- User requests image/video/audio generation via ComfyUI
- A workflow needs to be executed with custom prompts
- Automated content generation is required
Prerequisites
- ComfyUI running at
http://127.0.0.1:8188 - Workflow JSON files in
D:\ComfyUI7\ComfyUI\user\default\workflows\
Quick Commands
Check if ComfyUI is Running
Invoke-RestMethod -Uri "http://127.0.0.1:8188/system_stats" -Method Get
Use Helper Script
D:\ComfyUI7\python_embeded\python.exe ".agent\skills\generate-with-comfyui\scripts\comfyui_client.py" --help
Workflow Steps
Step 1: Verify ComfyUI Status
$response = Invoke-RestMethod -Uri "http://127.0.0.1:8188/system_stats" -Method Get -ErrorAction SilentlyContinue
if ($response) { "ComfyUI is running" } else { "ComfyUI is NOT running" }
Step 2: Load Workflow JSON
Load the workflow from D:\ComfyUI7\ComfyUI\user\default\workflows\. Example workflow for quick image generation:
movie 1 - zimage-quick-frame-production.json
Step 3: Modify Prompt
Find the prompt node (typically CLIPTextEncode) and modify widgets_values[0]:
import json
# Load workflow
with open(workflow_path) as f:
workflow = json.load(f)
# Find and modify prompt node
for node in workflow["nodes"]:
if node["type"] == "CLIPTextEncode":
node["widgets_values"][0] = "Your new prompt here"
break
Step 4: Queue Prompt
POST the workflow to /prompt:
import requests
import json
# Convert workflow to API format (nodes by ID)
prompt = {}
for node in workflow["nodes"]:
prompt[str(node["id"])] = {
"class_type": node["type"],
"inputs": {} # Map inputs from links
}
response = requests.post(
"http://127.0.0.1:8188/prompt",
json={"prompt": prompt}
)
prompt_id = response.json()["prompt_id"]
Step 5: Wait for Completion
Poll /history/{prompt_id} or use WebSocket at /ws:
import time
while True:
history = requests.get(f"http://127.0.0.1:8188/history/{prompt_id}").json()
if prompt_id in history:
break
time.sleep(1)
Step 6: Retrieve Results
Get output files from history:
outputs = history[prompt_id]["outputs"]
for node_id, output in outputs.items():
if "images" in output:
for img in output["images"]:
filename = img["filename"]
subfolder = img.get("subfolder", "")
# File at: D:\ComfyUI7\ComfyUI\output\{subfolder}\{filename}
How to Present Results
When the workflow completes, the helper script will provide absolute paths to the generated files. You MUST present these to the USER as follows:
- Images: Display them directly in the chat using the standard image syntax with absolute paths.
- Example:

- Example:
- Videos/Other: Link them using standard markdown links with absolute paths.
- Example:
[Download Video](file:///D:/ComfyUI7/ComfyUI/output/example.mp4)
- Example:
- Context: Always mention which workflow was used and what prompt was applied.
How to Use
To use this skill, follow these steps:
- Select Workflow: Use the helper script to list available workflows or use a known one.
D:\ComfyUI7\python_embeded\python.exe ".agent\skills\generate-with-comfyui\scripts\comfyui_client.py" --list-workflows - Execute: Run the helper script with the chosen workflow and prompt.
D:\ComfyUI7\python_embeded\python.exe ".agent\skills\generate-with-comfyui\scripts\comfyui_client.py" --workflow "workflow_name.json" --prompt "your detailed prompt" - Display: Capture the output path from the script’s output and embed it in your response as described above.
API Reference
| Endpoint | Method | Purpose |
|---|---|---|
/system_stats |
GET | Check server status |
/prompt |
POST | Queue workflow execution |
/queue |
GET | Check queue status |
/history/{prompt_id} |
GET | Get execution results |
/view?filename=X&subfolder=Y |
GET | Retrieve output files |
/ws |
WebSocket | Real-time execution updates |
WebSocket Events
Connect to ws://127.0.0.1:8188/ws for real-time updates:
status– System status updatesexecution_start– Prompt execution beginsexecuting– Node execution updatesprogress– Progress for long operationsexecuted– Node completed
Example Workflows
| Workflow | Purpose |
|---|---|
movie 1 - zimage-quick-frame-production.json |
Quick image generation with Z-Image Turbo |
video_ltx2_t2v.json |
Text-to-video with LTX2 |
video_ltx2_i2v.json |
Image-to-video with LTX2 |
Output Location
Generated files saved to: D:\ComfyUI7\ComfyUI\output\