Ollama + ComfyUI 本地 AI 工作流实战:从 0 搭建到 API 批量出图(附代码)
本地部署大模型与绘图,是降低 API 成本的关键。本文基于个人实测,展示如何用 Ollama 调度 LLM,结合 ComfyUI 实现自动化批量出图。数据均为个人实测,非官方标准,仅供参考。
一、环境搭建:LLM 推理 + 绘图引擎
硬件选择决定上限。本人实测环境:RTX 5090 / 32G 显存。
- Ollama 部署:拉取
qwen3.5:35b。该模型参数量大,适合复杂指令理解。个人实测,加载耗时约 45 秒,占用显存约 24G。 - ComfyUI 部署:安装“大炮版”(Turbo 模式)。相比标准版,Turbo 推理步数更少,速度提升 3 倍。个人实测,单张图生成耗时从 10 秒降至 3 秒。
- 显存分配:两者同时运行时,需确保总显存不超过 28G,预留 4G 给系统。
二、API 调用:Python 批量生成脚本
通过 HTTP 协议调用 ComfyUI 内部接口,可实现无感批量出图。
importurllib.request,json# ComfyUI /prompt 接口:payload 是「完整节点图(workflow)」,不是模型名字符串。# 下方为最小骨架,真实可跑版本见配套脚本 comfy_gen_ai.py(z-image-turbo 工作流)。defsubmit_workflow(workflow:dict)->str:url="http://127.0.0.1:8878/prompt"req=urllib.request.Request(url,data=json.dumps({"prompt":workflow}).encode(),headers={"Content-Type":"application/json"})returnjson.loads(urllib.request.urlopen(req,timeout=60).read())["prompt_id"]# 提交后轮询 /history/{prompt_id} 取结果,再经 /view?filename=... 下载图片代码逻辑简单:urllib直连127.0.0.1:8878,不依赖外部库。
- Workflow 指定:
prompt字段需对应 ComfyUI 中的工作流名称,此处为z-image-turbo。 - 画面控制:提示词中必须包含“无文字”、“无水印”约束,确保画面干净。
- 返回处理:返回 JSON 包含图片 ID,后续可下载至本地。
实际运行中,需处理并发请求。若并发过高,ComfyUI 可能返回 503 错误。建议设置循环间隔 0.5 秒,避免服务阻塞。
三、调度策略:显存管理与错峰
Ollama 和 ComfyUI 同时驻留显存,极易导致 OOM(显存溢出)。
- 关闭常驻内存:设置环境变量
OLLAMA_KEEP_ALIVE=0。 - 错峰调度:仅当需要生成图像时,才启动 LLM 推理服务。
- 显存监控:使用
nvidia-smi监控,若显存占用超过 29G,立即终止 Ollama 进程。
相比云端 API,单次生成成本降低 90%(个人实测),但需承担硬件折旧风险。
通过上述配置,可实现低成本、高隐私的本地 AI 生产流。
关键结论:本地化部署虽需前期硬件投入,但长期批量产出时,ROI 远高于云端 API。