ComfyUI:为专业人士打造的AI创作工具

ComfyUI 是一款专为专业人士设计的可视化 AI 创作工具。本系列文章将从普通用户的角度出发,探讨如何利用针对程序员友好的节点插件,简化和封装 ComfyUI 中的主流工作流。

支持中文输入,打破语言障碍

在文生图任务中,CLIP 编码器通常需要输入英文才能获得最佳出图效果。但对于习惯使用中文的用户来说,这无疑增加了使用难度。为了解决这一痛点,我们推荐两款实用的翻译插件:

  • ComfyUI_Custom_Nodes_AlekPet:一款离线翻译插件,适合不方便联网或需要快速处理的用户。

  • ComfyUI-My-Nodes:一款在线 API 翻译插件,通过配置大模型供应商的 API 地址和密钥,调用大模型进行翻译。开发人员可以根据实际需求选择合适的插件。

调用 ComfyUI API,实现自动化工作流

在完成基础插件的选型和工作流搭建后,您可以通过 API 的方式来调用 ComfyUI。只需向 /prompt 接口发送请求,即可开启工作流任务。

Prompt 入参示例:

JSON

{
  "client_id": "a1b2c311",
  "prompt": {
  "3": {
    "inputs": {
      "seed": 132393007804003,
      "steps": 20,
      "cfg": 8,
      "sampler_name": "euler",
      "scheduler": "normal",
      "denoise": 1,
      "model": [
        "4",
        0
      ],
      "positive": [
        "6",
        0
      ],
      "negative": [
        "7",
        0
      ],
      "latent_image": [
        "5",
        0
      ]
    },
    "class_type": "KSampler",
    "_meta": {
      "title": "K采样器"
    }
  },
  "4": {
    "inputs": {
      "ckpt_name": "anything-v5-PrtRE.safetensors"
    },
    "class_type": "CheckpointLoaderSimple",
    "_meta": {
      "title": "Checkpoint加载器(简易)"
    }
  },
  "5": {
    "inputs": {
      "width": 512,
      "height": 512,
      "batch_size": 1
    },
    "class_type": "EmptyLatentImage",
    "_meta": {
      "title": "空Latent"
    }
  },
  "6": {
    "inputs": {
      "text": [
        "10",
        1
      ],
      "speak_and_recognation": {
        "__value__": [
          false,
          true
        ]
      },
      "clip": [
        "4",
        1
      ]
    },
    "class_type": "CLIPTextEncode",
    "_meta": {
      "title": "CLIP文本编码器"
    }
  },
  "7": {
    "inputs": {
      "text": "text, watermark",
      "speak_and_recognation": {
        "__value__": [
          false,
          true
        ]
      },
      "clip": [
        "4",
        1
      ]
    },
    "class_type": "CLIPTextEncode",
    "_meta": {
      "title": "CLIP文本编码器"
    }
  },
  "8": {
    "inputs": {
      "samples": [
        "3",
        0
      ],
      "vae": [
        "4",
        2
      ]
    },
    "class_type": "VAEDecode",
    "_meta": {
      "title": "VAE解码"
    }
  },
  "9": {
    "inputs": {
      "filename_prefix": "ComfyUI",
      "images": [
        "8",
        0
      ]
    },
    "class_type": "SaveImage",
    "_meta": {
      "title": "保存图像"
    }
  },
  "10": {
    "inputs": {
      "from_translate": "chinese",
      "to_translate": "english",
      "text": "风景优美的自然玻璃瓶景观,紫色银河瓶",
      "speak_and_recognation": {
        "__value__": [
          false,
          true
        ]
      },
      "clip": [
        "4",
        1
      ]
    },
    "class_type": "ArgosTranslateCLIPTextEncodeNode",
    "_meta": {
      "title": "CLIP文本编码器(Argos翻译)"
    }
  }
}
}

获取任务状态与最终产物

提交任务后,您可以通过轮询 /history 接口来查看任务状态并获取输出图片的名称。

History 结果示例:

JSON

{
    "c2b0f641-6696-47e1-b414-8cbf32c6fa74": {
        "prompt": [
            1,
            "c2b0f641-6696-47e1-b414-8cbf32c6fa74",
            {
                "3": {
                    "inputs": {
                        "seed": 132393007804003,
                        "steps": 20,
                        "cfg": 8.0,
                        "sampler_name": "euler",
                        "scheduler": "normal",
                        "denoise": 1.0,
                        "model": [
                            "4",
                            0
                        ],
                        "positive": [
                            "6",
                            0
                        ],
                        "negative": [
                            "7",
                            0
                        ],
                        "latent_image": [
                            "5",
                            0
                        ]
                    },
                    "class_type": "KSampler",
                    "_meta": {
                        "title": "K采样器"
                    }
                },
                "4": {
                    "inputs": {
                        "ckpt_name": "anything-v5-PrtRE.safetensors"
                    },
                    "class_type": "CheckpointLoaderSimple",
                    "_meta": {
                        "title": "Checkpoint加载器(简易)"
                    }
                },
                "5": {
                    "inputs": {
                        "width": 512,
                        "height": 512,
                        "batch_size": 1
                    },
                    "class_type": "EmptyLatentImage",
                    "_meta": {
                        "title": "空Latent"
                    }
                },
                "6": {
                    "inputs": {
                        "text": [
                            "10",
                            1
                        ],
                        "speak_and_recognation": {
                            "__value__": [
                                false,
                                true
                            ]
                        },
                        "clip": [
                            "4",
                            1
                        ]
                    },
                    "class_type": "CLIPTextEncode",
                    "_meta": {
                        "title": "CLIP文本编码器"
                    }
                },
                "7": {
                    "inputs": {
                        "text": "text, watermark",
                        "speak_and_recognation": {
                            "__value__": [
                                false,
                                true
                            ]
                        },
                        "clip": [
                            "4",
                            1
                        ]
                    },
                    "class_type": "CLIPTextEncode",
                    "_meta": {
                        "title": "CLIP文本编码器"
                    }
                },
                "8": {
                    "inputs": {
                        "samples": [
                            "3",
                            0
                        ],
                        "vae": [
                            "4",
                            2
                        ]
                    },
                    "class_type": "VAEDecode",
                    "_meta": {
                        "title": "VAE解码"
                    }
                },
                "9": {
                    "inputs": {
                        "filename_prefix": "ComfyUI",
                        "images": [
                            "8",
                            0
                        ]
                    },
                    "class_type": "SaveImage",
                    "_meta": {
                        "title": "保存图像"
                    }
                },
                "10": {
                    "inputs": {
                        "from_translate": "chinese",
                        "to_translate": "english",
                        "text": "风景优美的自然玻璃瓶景观,紫色银河瓶",
                        "speak_and_recognation": {
                            "__value__": [
                                false,
                                true
                            ]
                        },
                        "clip": [
                            "4",
                            1
                        ]
                    },
                    "class_type": "ArgosTranslateCLIPTextEncodeNode",
                    "_meta": {
                        "title": "CLIP文本编码器(Argos翻译)"
                    }
                }
            },
            {
                "client_id": "a1b2c311"
            },
            [
                "9"
            ]
        ],
        "outputs": {
            "9": {
                "images": [
                    {
                        "filename": "ComfyUI_00045_.png",
                        "subfolder": "",
                        "type": "output"
                    }
                ]
            }
        },
        "status": {
            "status_str": "success",
            "completed": true,
            "messages": [
                [
                    "execution_start",
                    {
                        "prompt_id": "c2b0f641-6696-47e1-b414-8cbf32c6fa74",
                        "timestamp": 1758174681317
                    }
                ],
                [
                    "execution_cached",
                    {
                        "nodes": [
                            "4"
                        ],
                        "prompt_id": "c2b0f641-6696-47e1-b414-8cbf32c6fa74",
                        "timestamp": 1758174681371
                    }
                ],
                [
                    "execution_success",
                    {
                        "prompt_id": "c2b0f641-6696-47e1-b414-8cbf32c6fa74",
                        "timestamp": 1758174683295
                    }
                ]
            ]
        },
        "meta": {
            "9": {
                "node_id": "9",
                "display_node": "9",
                "parent_node": null,
                "real_node_id": "9"
            }
        }
    }
}

最后,通过 /view 接口即可获取生成的最终图片。

功能封装前后对比

封装前

封装后

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐