你已经能在 ComfyUI 里运行工作流,下一步可以给它加一个简单网页,让自己或团队成员不用打开节点图也能提交提示词。本教程把一个固定的 Z-Image-Turbo 工作流接到本机网页上,完成提示词输入、任务等待和图片预览。

这次做成的是本机原型,只能在运行服务的这台电脑上访问。它没有账号、用量限制、用户隔离或公网部署,因此不能直接拿来给陌生用户使用或收费。若目标是做在线产品,本文的原型只是验证“网页能否驱动工作流”,还不等于可运营的服务。

ComfyUI 网页服务的基本流程

网页把用户输入发给 Python 后端;后端将提示词放进 API 格式的工作流,提交到 ComfyUI 的 /prompt;ComfyUI 返回任务编号后,后端轮询 /history/{prompt_id};任务完成时再通过 /view 取回结果,交给网页预览。ComfyUI 官方文档列出了这些服务端路由,官方示例也演示了 API 格式工作流的提交方式。

准备环境

需要已经能在本机运行的 ComfyUI、Python 3,以及工作流所需的 Z-Image-Turbo 模型文件:

  • z_image_turbo_bf16.safetensors
  • qwen_3_4b.safetensors
  • ae.safetensors

模型和节点配置随本机工作流而异。先在 ComfyUI 界面确认这三个文件可用,并记录自己实际使用的工作流;本例的网页程序使用固定 768×768、8 步工作流,只让用户输入正向提示词。

启动本机网页

下载并解压ComfyUI 网页服务练习包,在终端进入解压后的目录:

python3 app.py

程序启动后,在同一台电脑的浏览器打开:

http://127.0.0.1:7861

输入一段画面描述,点击“生成图片”。页面显示等待状态,任务结束后会展示 ComfyUI 返回的图片。停止服务时回到终端按 Control-C。

代码把网页服务绑定在 127.0.0.1,ComfyUI 也连接本机 127.0.0.1:8188。网页输入有 500 字限制;同一时间只接受一个生成任务,避免这个小示例并发挤占本机显卡。等待上限为 10 分钟,结果大于 12 MB 时不回传到页面。模型或队列变慢时,用户需要查看 ComfyUI 界面和终端日志。

本机实测

2026-10-11 在 M1 Max 64GB、macOS 27 上测试:页面返回 HTTP 200;空提示词和超过 500 字的提示词都被拒绝;一条合法提示词从网页提交、进入 ComfyUI 队列,到结果回显共 58.36 秒,得到 768×768、595,231 字节的 PNG。示例图片和完整记录在练习包中。

这次只验证了一条提示词和一台机器,不能据此推算其他硬件上的速度,也没有测并发、长时间稳定性、用户登录、公网传输或付费。示例没有调用在线模型 API。

想让别人使用,还要补什么

如果要从本机原型走向线上服务,先把下列事项作为产品和工程需求评估:

  1. 身份与访问控制:登录、权限、请求来源校验,防止陌生人直接调用生成接口。
  2. 队列和资源管理:按用户限制并发、排队、设置超时与取消;监控显存/内存、磁盘空间和模型故障。
  3. 用量和成本:记录每个任务的实际耗时、分辨率和资源消耗,设计配额、失败重试和退款口径。不要只按“点击次数”估价。
  4. 数据处理:说明提示词和图片保存多久、谁能查看、用户如何删除;避免在日志中保存敏感内容。
  5. 部署与安全:部署在有访问控制的服务端,通过 HTTPS 提供网页和 API;限制请求体、文件类型和返回大小,并验证错误信息不会泄露服务器细节。
  6. 权利和内容规则:明确用户输入与生成图的处理方式,设置投诉和违规内容处理流程,并核对所用模型的许可和服务规则。

把 ComfyUI 端口直接暴露到公网,或仅靠把服务绑定地址改成 0.0.0.0,并不能构成安全的产品部署。先在隔离环境补齐鉴权、队列、配额和数据策略,再做小范围试用。

练习包内容

  • app.py:本机网页与 Python 标准库后端
  • workflow-notes.md:工作流节点和模型文件说明
  • test_record.md:实测配置、结果和限制
  • sample.png:本机生成的结果样例

本教程聚焦于把一个已有工作流接到网页上。用户输入通过本机网页服务发送到本机 ComfyUI;没有部署公网服务,也没有接入支付或账号系统。