开发编程
#python
comfy-nodes
Use when the user wants to create a ComfyUI custom node, convert Python code to a node, make a node from a script, or needs help with ComfyUI node development, INPUT_TYPES, RETURN_TYPES, or node class structure.
DeepseekModel
官方收录技能
质量 优秀 · 78
v1.0.0
获取
https://deepseekmodel.com/api/download.php?id=constantineb6-comfy-pilot-claude-skills-comfy-nodes-skill-md&format=skill
下载 .skill
标准格式,含 system_prompt 与 model_config,导入任意 Agent 框架即可使用
.skill 文件中 system_prompt 字段的实际内容。
name comfy-nodes description Use when the user wants to create a ComfyUI custom node, convert Python code to a node, make a node from a script, or needs help with ComfyUI node development, INPUT_TYPES, RETURN_TYPES, or node class structure. version 1.0.0 ComfyUI Custom Node Development This skill helps you create custom ComfyUI nodes from Python code. Quick Template class MyNode : @classmethod def INPUT_TYPES ( cls ): return { "required" : { "image" : ( "IMAGE" ,), "value" : ( "FLOAT" , { "default" : 1.0 , "min" : 0.0 , "max" : 1.0 }), }, "optional" : { "mask" : ( "MASK" ,), } } RETURN_TYPES = ( "IMAGE" ,) RETURN_NAMES = ( "output" ,) FUNCTION = "execute" CATEGORY = "Custom/MyNodes" def execute ( self, image, value, mask= None ): result = image * value return (result,) NODE_CLASS_MAPPINGS = { "MyNode" : MyNode} NODE_DISPLAY_NAME_MAPPINGS = { "MyNode" : "My Node" } Converting Python to Node When you have Python code to wrap: Step 1: Identify inputs and outputs # Original function def apply_blur ( image, radius= 5 ): from PIL import ImageFilter return image. filter (ImageFilter.GaussianBlur(radius)) Step 2: Map types Python Type ComfyUI Type Conversion PIL Image IMAGE torch.from_numpy(np.array(pil) / 255.0) numpy array IMAGE torch.from_numpy(arr.astype(np.float32)) cv2 BGR IMAGE torch.from_numpy(cv2.cvtColor(img, cv2.COLOR_BGR2RGB) / 255.0) float 0-255 IMAGE Divide by 255.0 Single image Batch tensor.unsqueeze(0) Step 3: Handle batch dimension ComfyUI images are [B,H,W,C] - always process all batch items: def execute ( self, image, radius ): batch_results = [] for i in range (image.shape[ 0 ]): # Convert to PIL img_np = (image[i].cpu().numpy() * 255 ).astype(np.uint8) pil_img = Image.fromarray(img_np) # Your processing result = pil_img. filter (ImageFilter.GaussianBlur(radius)) # Convert back result_np = np.array(result).astype(np.float32) / 255.0 batch_results.append(torch.from_numpy(result_np)) return (torch.stack(batch_results),) Common Input Types Type Shape/Format Widget Options IMAGE [B,H,W,C] float 0-1 - MASK [H,W] or [B,H,W] float 0-1 - LATENT {"samples": [B,C,H,W]} - MODEL ModelPatcher - CLIP CLIP encoder - VAE VAE model - CONDITIONING [(cond, pooled), ...] - INT integer default, min, max, step FLOAT float default, min, max, step, display STRING str default, multiline BOOLEAN bool default COMBO str List of options as type Checklist INPUT_TYPES is a @classmethod Return value is a tuple: return (result,) Handle batch dimension [B,H,W,C] Add to NODE_CLASS_MAPPINGS Category uses / for submenus References NODE_TEMPLATE.md - Full template with V3 schema OFFICIAL_DOCS.md - Official ComfyUI documentation PURZ_EXAMPLES.md - Example nodes and workflows Finding Similar Nodes Use the MCP tools to find existing nodes for reference: comfy_search("blur") → Find blur implementations comfy_spec("GaussianBlur") → See how inputs are defined
Agent 识别该技能的关键词,点击任意一个即可复制。
该技能未提供触发词。
下载的 .skill 包内含以下字段。
| 字段 | 说明 |
|---|---|
| format | 格式标识(skill/v1) |
| skill_id | 技能唯一 ID |
| name | 技能名称 |
| version | 版本号 |
| description | 技能描述 |
| category | 所属分类(数组) |
| trigger_words | 触发词列表 |
| tags | 标签列表 |
| source | 来源标识 |
| source_url | 来源链接(本页地址) |
| exported_at | 导出时间(每次下载生成) |
| system_prompt | 系统提示词正文 |
| model_config | 模型参数:provider / model / temperature / max_tokens / top_p |
| examples | 示例 |
| install_guide | 各平台导入说明(Coze / Dify / Claude / 自定义框架) |