Drive ComfyUI from Python. Builds and runs ComfyUI API-format graphs - image, video, 3D, audio, inference and provenance profiles, verified node types, no node canvas.
This server exhibits significant quality gaps across naming, descriptions, and schemas. While it has 53 tools with varying levels of documentation, many suffer from vague descriptions, incomplete schemas, and unclear naming conventions. Only ~15 tools have reasonably complete parameter schemas with type information. The majority lack proper input/output documentation that would enable LLMs to reason about when to invoke them or how to compose results downstream. Tool names are verb-prefixed but often generic (e.g., 'build_*', 'get_*') without clear distinctions between related tools. Error handling guidance is absent across all tools, no recovery hints or actionable error messages are visible in the definitions.
AI-powered prompt analysis via Ollama (requires [ai] extra)
Build 3D generation workflows
Build audio stem separation workflow using AudioSeparation node
Build inference/analysis workflows (Florence2, CLIP, etc.)
Check ComfyUI server health and connectivity
Clamp dimensions to valid range
Clean up old temporary files in the comfy_headless temp directory
13 tools have NO input schema visible (build_*, list_presets, list_video_presets, list_audio_presets, list_3d_presets, check_health, full_health_check, generate_api_key, clear_request_id, list_topics, get_api_reference).
Descriptions lack LLM optimization guidance. Most tool descriptions are 20-70 characters (baseline is 194 avg, p10=34, p90=392). E.g., 'Build audio stem separation workflow using AudioSeparation node' and 'Build 3D generation workflows' are too vague, they do not explain WHEN to use these vs alternatives, what they return, or what preconditions exist. Vague descriptions force LLM to guess at selection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Clear the request ID from correlation logging
Compile a workflow template into ComfyUI API-format JSON
AI-powered prompt enhancement via Ollama (requires [ai] extra)
Extract the ComfyUI workflow graph from a file's metadata
Perform comprehensive health check including VRAM, queue, and system status
Generate a secure API key
Text-to-music generation using ACE-Step 1.5 turbo AIO checkpoint
Text-to-image generation via ComfyUI
Generate a secure random token
Multi-model video generation (AnimateDiff, SVD, CogVideoX, Hunyuan, LTX, Wan)
Get API reference documentation
Get help for a specific command
Get help on a topic or command
Get contextual help for an error
Get a node's input value at a dotted field path
Get the recommended video preset for given constraints
Retrieve a secret value from the secrets manager
Retrieve a secret value as a string
Check whether a workflow contains an output node
Hash a secret value using bcrypt
Join field path segments into a flattened dotted string
List all available 3D generation presets
List all available audio generation presets
List all available generation presets
List all available help topics
List all available video generation presets
Mask sensitive credentials in URLs for safe logging
Classify edge type compatibility with resolution for warnings on partial overlap
Parse a dotted field path into typed segments for dynamic-combo fields
Quick prompt enhancement with sensible defaults (requires [ai] extra)
Extract workflow metadata and provenance from PNG files
Redact sensitive keys from a dictionary for safe logging
Assert that a workflow contains an output node, raising if not
Sanitize a prompt for safe use
Save image bytes to a temporary file
Save video bytes to a temporary file
Search the help system for topics matching a query
Set the global logging level
Set a node's input value at a dotted field path
Set the request ID for correlation logging
Validate image/video dimensions against constraints
Validate generation parameters
Validate whether a node's output type is accepted by an input's declared type
Validate a generation prompt
Validate workflow DAG (directed acyclic graph) structure and edge connectivity
Verify a secret against its bcrypt hash
No output schemas documented. For tools like generate_image, generate_video, generate_audio, validate_workflow_dag, the response structure is not described. LLMs cannot plan downstream tool calls or compose results without knowing what fields the response will contain (e.g., does generate_image return image_url, image_path, or base64_data?). This breaks tool chaining.
No error handling guidance visible. None of the 53 tools provide recovery hints (e.g., 'Call search_users() first if you only have a name', or 'User not found, try a broader search'). Errors are likely raw exceptions rather than actionable messages. This leaves LLMs stranded on failure.
Generic tool names and overlapping responsibilities. Tools like 'build_audio_separation_workflow', 'build_3d_workflow', 'build_inference_workflow' use the same prefix 'build_*' but have completely different domains. Similarly, multiple 'get_*' and 'list_*' tools without clear distinguishing context (e.g., 'list_presets', 'list_video_presets', 'list_audio_presets', 'list_3d_presets', why 4 nearly-identical tools instead of one parameterized list_presets(category)?).
Secret management tools (get_secret, get_secret_str, hash_secret) have minimal documentation. No indication of whether secrets are retrieved from environment, vault, or config. No guidance on which tool to use when (difference between get_secret and get_secret_str not explained). Risk of LLM selecting wrong retrieval method.
Insufficient parameter descriptions. Many parameters labeled only with generic types: 'path' (file path? field path? URI?), 'template' (object structure not documented), 'params' (what structure?), 'data' (what fields?).
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) declared. Tools like cleanup_temp_files and set_node_input modify state but are not marked as destructive/write. Tools like check_health and validate_prompt are read-only but lack explicit annotation. This prevents agents from reasoning about side effects and retry safety.
Multiple closely-related tools with no clear composition strategy. E.g., analyze_prompt, enhance_prompt, quick_enhance all modify prompts but lack documented output formats or indication of which to call in sequence. E.g., should an agent call analyze_prompt then enhance_prompt, or just one? What fields does analyze_prompt return that drive the choice of enhance_prompt parameters?
Help/reference tools (search_help, get_help, get_command_help, get_help_for_error) suggest the server embeds extensive documentation. Without seeing the actual help content structure, it's unclear if these return plain text, markdown, or structured records. Return format not documented.