ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

本地部署ComfyUI:从零跑通温馨家居卡通插画生成全流程

本地部署ComfyUI:从零跑通温馨家居卡通插画生成全流程 这次我们来看一个具体的 AI 绘画需求生成一张“温馨的家Simons Cat”风格的卡通插画。需求听起来很直白但真正落地时会遇到模型放哪里、显存够不够、提示词怎么写、批量任务怎么排队、接口能不能直接调这些问题。这篇文章不绕弯子直接围绕这个案例给出一套能在本地跑通的 ComfyUI 出图全流程。先说结论这套流程优先推荐 NVIDIA 显卡6G 显存可以开始8G 以上会更从容纯 CPU 环境也能跑但出图速度会比较慢。启动方式是在本地拉起 ComfyUI 服务再通过 Web 界面或 HTTP API 操作。下文会带你完成环境准备、ComfyUI 安装、模型放置、文生图测试、图生图测试、批量任务和 API 调用最后附上常见问题排查清单。中间涉及 Simons Cat 的内容只作为个人学习案例不会绕开版权问题。1. 核心能力速览“温馨的家Simons Cat”这个主题在本文里被当作一次图像生成任务来处理而不是某个需要二次开发的软件项目。整体能力可以看下面这张表。能力项说明项目类型本地 AI 绘画出图流程基于 ComfyUI Stable Diffusion 系模型核心功能文生图、图生图、局部重绘测试、批量生成、接口 API 调用硬件建议NVIDIA 显卡优先6G 显存起步8G 以上更稳CPU 可推理但速度慢启动方式命令行启动或整合包启动Web 界面访问默认常见端口 8188模型依赖需要准备 Stable Diffusion checkpoint 模型放在 ComfyUI 模型目录中批量任务支持可通过 Web 界面排队或通过 API 脚本批量提交API 能力支持提交工作流到本地服务适合接入自己的自动化工具适合人群想做卡通插画、家居场景、同人练习素材的 AI 绘画用户主要风险Simons Cat 是版权 IP仅限个人学习公开传播或商用必须获得授权从材料看这个任务的关键不是“能生成什么”而是“怎么在本机把生成链路跑通”。ComfyUI 是开源项目工作流是节点式的适合反复调整参数也适合批量出图。下面从场景边界讲起。2. 适用场景与使用边界“温馨的家Simons Cat”这类需求常见使用方向是这几个个人插画练习用 AI 生成卡通风格的家居场景研究构图、光影和配色。短视频素材草稿在本地生成一批草图用于分镜参考或脚本预览。LoRA 风格测试把不同画风模型放到同一套场景提示词里对比风格差异。自媒体配图试验生成后人工二次加工观察是否符合内容调性。但它也有明显不适用的场景。如果你打算把 Simons Cat 相关角色图直接拿去商用或者批量生成后公开发布到流量平台版权风险很高。Simons Cat 的角色、名称和美术风格都来自英国动画师 Simon Tofield 的 IP本文只讨论“个人学习 / 本地试验”的用法不构成商用授权建议。项目里如果涉及其他人脸、声音、商标、私有素材也必须先确认授权边界。合规上还要注意一点不要用生成结果去冒充官方作品也不要在电商、广告、付费内容里直接使用未经授权的同人图。AI 绘画工具本身是中性的问题在于使用目的和传播范围。3. 环境准备与前置条件在开始部署前建议先检查本机环境。下面的清单是通用要求不绑定具体版本因为 ComfyUI 和 PyTorch 的版本更新比较快写死版本反而容易误导。3.1 操作系统与基础软件Windows 10 / 11 或 Linux 均可macOS 也能跑但显卡适配范围更窄。Python 建议使用 3.10 或 3.11具体以 ComfyUI 当前版本要求为准。Git 用于克隆 ComfyUI 仓库和后续更新。浏览器用于访问 ComfyUI 的 Web 界面。python --version git --version如果显卡是 NVIDIA先确认驱动已安装。命令窗口执行nvidia-smi能正常显示显卡信息说明驱动基本可用。CUDA 版本以 PyTorch 要求为准不需要单独安装整套 CUDA Toolkit。3.2 显卡与内存建议显存 6G 起步适合 512x512 分辨率、较小步数的文生图测试。显存 8G 以上可以尝试 768 或更高分辨率也能更从容地跑图生图和批量任务。CPU 运行内存建议 16G 以上否则加载模型时容易卡死。这里要说明一点显存占用不是固定值它由模型大小、图像分辨率、步数、批量大小共同决定。不同显卡跑同一套工作流占用可能差不少具体以本机测试为准。3.3 磁盘空间与模型目录Stable Diffusion 系 checkpoint 模型常见体积在 2GB 到 7GB 之间SDXL 系更大。建议预留 30GB 以上空间方便放多个测试模型和输出图片。ComfyUI 的目录结构很直观模型文件放在对应子目录中大模型 checkpoint 放入models/checkpointsLoRA 放入models/lorasVAE 放入models/vaeControlNet 放入models/controlnet如果某个模型文件没放到正确位置ComfyUI 界面的“添加模型”下拉框里就看不到它这是新手最常踩的坑之一。4. 安装部署与启动方式ComfyUI 的安装有两种常见方式一种是官方仓库手动安装另一种是用整合包解压即用。这里分别说明。4.1 手动安装如果你本机已经有 Python 和 Git可以直接用下面的命令拉取官方仓库并安装依赖。# 克隆官方仓库版本以官方 README 为准 git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI # 建议创建独立虚拟环境避免污染全局 Python python -m venv venv # Windows 激活虚拟环境 venv\Scripts\activate # Linux/macOS 激活虚拟环境 # source venv/bin/activate # 安装依赖 pip install -r requirements.txt这个过程在网络波动时容易失败。如果 pip 安装报错可以换国内镜像源重试pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple4.2 启动服务依赖安装完成后进入 ComfyUI 目录执行# 默认启动监听 127.0.0.1:8188 python main.py # 如果需要指定监听地址和端口 python main.py --listen 127.0.0.1 --port 8188看到类似Starting server的日志浏览器访问http://127.0.0.1:8188就能打开 ComfyUI 工作台。如果页面打不开优先检查端口是否被占用或者启动日志有没有报错。4.3 模型放置启动前建议先把测试模型放好。假设你已经下载好一个 checkpoint 模型文件名为mymodel.safetensors放到对应目录后重启 ComfyUI。# 将模型文件复制到 checkpoints 目录实际路径按你的 ComfyUI 位置调整 cp /path/to/mymodel.safetensors models/checkpoints/放好后重新打开页面在节点里刷新模型列表就能看到mymodel.safetensors。5. 功能测试与效果验证环境准备好之后开始功能测试。第一次测试不要追求完美重点是确认整条链路通不通以及输出是否符合预期。5.1 文生图测试在 ComfyUI 工作台加载默认工作流这是一个最简单的文生图流程一个 Checkpoint 加载器、一个正向提示词节点、一个负向提示词节点、一个 KSampler、一个空 Latent 节点、一个保存图片节点。关键参数可以先按下面的思路设置采样步数 steps20 到 30。CFG6 到 7。采样器 samplerEuler a 或 DPM 2M Karras。分辨率 width x height先跑 512x512确认能出图后再提高。正向提示词示例围绕“温馨的家 猫咪 卡通插画”展开warm cozy home interior, cute black and white cartoon cat, storybook illustration, fireplace, bookshelf, armchair, framed pictures, green plant, window view, soft lighting, high quality, detailed background负向提示词示例text, watermark, signature, blurry, low quality, deformed, extra limbs, bad anatomy, oversaturated点击“Queue Prompt”运行。判断成功与否的标准有三个工作流没有红色报错节点。图片节点生成了一张可预览的图。画面里能明显看到猫咪和温馨家居两个核心元素。如果生成结果风格不对先检查 checkpoint 是不是偏插画风再调整提示词里的风格词比如把storybook illustration换成childrens book art style。如果画面偏灰偏暗试着把 CFG 调到 7 到 8或者增加soft warm lighting的权重。5.2 图生图测试文生图通过后再验证图生图。图生图适合把一张粗略线稿或参考构图转成完整插画。操作思路是把参考图拖入 ComfyUI使用 Load Image 节点加载。在 KSampler 前接入 VAE Encode把图片编码到潜空间。把 KSampler 的denoise参数调低控制在 0.4 到 0.6保留原构图生成细节。判断标准是输入图被转化成卡通插画风格同时主体位置和布局没有乱掉。如果变化太小提高 denoise如果变化过大、原图信息丢失降低 denoise。这里建议小步快跑从 0.4 开始每次加 0.1直到效果满意。5.3 局部重绘测试局部重绘适合只修改画面某个区域。比如想让画面里的架子颜色改变或者想替换某个装饰品可以画一个局部区域只重绘这一块。在 ComfyUI 中实现局部重绘的关键是蒙版。把原图加载后用Set Latent Noise Mask或类似的蒙版节点将需要重绘的区域标记出来然后让 KSampler 只处理这块区域。这个功能在改“温馨的家”这类细节丰富的画面时很实用因为局部重绘可以保留大部分满意的结构只修正缺陷区域。6. 接口 API 与批量任务ComfyUI 最值得利用的一点是它的 API 能力。本地服务跑起来后可以脱离浏览器用脚本批量提交任务适合需要生成多张候选图、多组 prompt 的情况。6.1 导出 API 格式工作流在 ComfyUI 界面中调整好工作流后点击界面上的导出按钮选择Export (API)格式保存为 JSON 文件。这个文件里面记录了每个节点的输入参数和图谱关系是后续脚本提交的基础。注意UI 的工作流 JSON 和 API 格式的 JSON 不完全一样。API 格式去掉了界面布局信息只保留执行所需的数据所以提交时要使用 API 格式的文件。6.2 Python 提交任务下面是一个通用示例把工作流从 JSON 文件读取提交到 ComfyUI 的/prompt接口。import json import requests server http://127.0.0.1:8188 # 从 ComfyUI 导出的 API 格式工作流 with open(workflow_api.json, r, encodingutf-8) as f: workflow json.load(f) # 提交任务到 /prompt 接口实际路径以 ComfyUI 当前版本为准 response requests.post( f{server}/prompt, json{prompt: workflow}, timeout120, ) print(response.status_code) print(response.json())提交成功后响应里通常会返回一个prompt_id后续用这个 ID 查询任务状态和输出结果。6.3 查询任务结果并采集图片任务完成后可以通过/history/{prompt_id}查询输出图片信息。import time import requests server http://127.0.0.1:8188 prompt_id xxxxxxxx # 轮询任务结果 for _ in range(60): history requests.get( f{server}/history/{prompt_id}, timeout30 ).json() if prompt_id in history: # 遍历输出节点的图片列表实际结构以响应为准 outputs history[prompt_id].get(outputs, {}) for node_id, node_output in outputs.items(): images node_output.get(images, []) if images: print(images) break break time.sleep(3)这段代码是通用模板你需要根据 ComfyUI 实际返回结构调整字段名。6.4 批量任务设计批量任务的核心思路是把多个提示词组合存成一个列表循环提交并通过history接口确认每个任务完成最后统一下载结果。建议在脚本里做两件事打印每个任务的prompt_id方便出问题时定位。为每个任务设置超时比如 5 分钟超时则标记为失败并重试。import json import time import requests server http://127.0.0.1:8188 # 多个正向提示词实际内容按你的需求调整 prompts [ warm cozy home interior, black and white cartoon cat, fireplace, high quality, cozy living room, black and white cartoon cat on sofa, soft daylight, storybook style, small warm kitchen, black and white cartoon cat near window, plants, cozy atmosphere, ] with open(workflow_api.json, r, encodingutf-8) as f: base_workflow json.load(f) # 假设提示词节点的 ID 是 6请替换为你实际工作流的节点 ID for index, prompt_text in enumerate(prompts): base_workflow[6][inputs][text] prompt_text try: response requests.post( f{server}/prompt, json{prompt: base_workflow}, timeout120, ) response.raise_for_status() print(f任务 {index 1} 已提交: {response.json().get(prompt_id)}) except requests.exceptions.RequestException as e: print(f任务 {index 1} 提交失败: {e}) time.sleep(1)批量任务建议先跑 2 到 3 条确认脚本稳定后再扩大规模。直接一次性提交 100 个任务容易因为模型加载、显存调度和磁盘写入问题导致中途卡死。6.5 curl 调用示例如果你不想写 Python也可以用 curl 提交一个工作流。但工作流 JSON 内容很长实际使用时建议保存到文件再用--data file方式提交。curl -X POST http://127.0.0.1:8188/prompt \ -H Content-Type: application/json \ -d {prompt: {}}上面的空对象只是演示真正提交时需要把工作流 JSON 放进prompt字段。7. 资源占用与性能观察AI 绘画项目的体验好坏很大程度上取决于资源占用。这里不写死某张显卡的具体占用数字因为不同模型、不同分辨率的差异很大更推荐你通过工具观察本机情况。7.1 显存占用怎么看第一种方式查看 ComfyUI 启动终端日志模型加载和生成过程中会打印一部分资源信息。第二种方式另开一个终端用 NVIDIA 显卡监控命令查看显存实时占用。# 每 2 秒刷新一次显存信息 nvidia-smi -l 2第三种方式Windows 打开任务管理器在“性能”页签里看 GPU 专用显存占用。生成过程中显存会明显上涨生成结束后一般会释放。7.2 影响性能的因素从经验来看影响生成速度和显存占用的主要因素有这几个分辨率从 512x512 提升到 1024x1024计算量成倍增加显存占用也会明显提高。步数 steps步数越多推理时间越长但显存占用变化相对小。批量大小 batch size一次生成多张图会显著提高显存峰值。采样器类型不同采样器计算量不同DPM 类采样器通常比 Euler a 慢一些。ControlNet、局部重绘、高清放大等辅助节点会额外增加显存和计算时间。7.3 降低显存占用的方法如果显卡显存比较紧张可以按这个顺序调整把分辨率降到 512x512 或 640x384。batch size 固定为 1。减少步数例如从 30 降到 20。关闭或减少预览节点部分预览节点会额外占资源。使用 PyTorch 显存分配优化参数在启动前设置环境变量# Windows PowerShell 示例 $env:PYTORCH_CUDA_ALLOC_CONF expandable_segments:True python main.py如果显存仍然不够再考虑 CPU 推理。具体参数以 ComfyUI 当前版本的--help输出为准。CPU 推理通常比 GPU 慢很多但可以作为没有独立显卡时的兜底方案。一张 512x512 的图可能在 GPU 上几十秒完成在 CPU 上可能需要几分钟甚至更久具体取决于 CPU 性能和线程数。8. 常见问题与排查方法本地部署 AI 绘画工具时遇到的问题往往集中在环境、模型、资源和接口几个方面。下面的排查表可以直接对照使用。问题现象可能原因排查方式解决方案启动后页面打不开端口被占用或服务未启动看启动日志检查端口占用换端口例如--port 8189或重启服务模型列表里没有刚放的模型checkpoint 没放到正确目录检查models/checkpoints路径把模型放到对应目录重启 ComfyUI报错提示缺少依赖Python 版本或依赖不匹配看pip install日志按 requirements.txt 重装或重建虚拟环境CUDA 不可用显卡驱动或 PyTorch 版本不匹配执行nvidia-smi确认驱动更新显卡驱动重新安装与 CUDA 匹配的 PyTorch 版本生成时显存不足分辨率或批量大小太高看终端日志和nvidia-smi降低分辨率、步数和 batch开启显存优化参数API 提交返回错误工作流格式不对或节点 ID 错误用 API 格式导出的 JSON 检查节点字段重新在界面导出 API 格式确认提交的 JSON 结构批量任务卡住请求并发过高或某个任务崩溃看脚本日志和终端日志降低并发增加超时和重试逻辑生成结果风格不对模型不够匹配或提示词权重不够对比不同 checkpoint 和提示词换模型增加风格关键词权重最容易被忽略的是端口冲突。之前启动过的 ComfyUI 进程没有完全退出新进程就会起不来。排查时先看端口占用# Windows 查看 8188 端口占用 netstat -ano | findstr 8188找到占用端口的进程后在任务管理器里结束对应进程或者启动时直接换一个端口。9. 最佳实践与使用建议跑通一套流程只是开始真正稳定使用还需要一些工程化习惯。第一第一次先小参数测试。不要一上来就 1024 分辨率加 50 步加批量 4很容易触发显存不足。先用 512x512、20 步、batch 1 验证流程确认没问题后再慢慢提高。第二保留一套最小可运行配置。把文生图、图生图、批量任务各保存一份 API 格式的 JSON放进项目目录里方便以后复用。即使 ComfyUI 后续更新你也可以快速恢复工作流。第三文件分目录管理。建议按下面的结构组织素材ComfyUI/ └── my_project/ ├── workflows/ # 导出的 API 工作流 JSON ├── inputs/ # 图生图、局部重绘的输入素材 ├── outputs/ # 生成结果 └── logs/ # 批量任务日志第四批量任务一定要加日志和失败重试。每次提交都记录 prompt_id 和对应提示词出问题后能快速定位是哪一批提示词导致的。第五接口服务不要直接暴露到公网。本机测试时监听地址用127.0.0.1就行。如果需要远程访问也要放在可信网络环境里并设置访问限制。第六涉及人脸、声音、商标、版权素材时必须确认授权。Simons Cat 相关的同人图只建议用于个人学习。公开传播前先想清楚版权问题。第七发布或商用前要做效果复核。AI 生成图里常见的多手指、猫脸变形、文字残缺等问题人眼过一遍才能降低风险。10. 总结与下一步这个需求最值得试的点是用 ComfyUI 搭一套“提示词 模型 批量任务”的卡通插画出图链路后续换到任何插画主题都能复用。最先应该验证的是文生图基础流程。模型放对、提示词写好、采样参数合理能稳定出图后再往下测图生图和 API 调用。最容易踩的坑是两个模型没放到models/checkpoints目录导致列表里看不到以及 API 提交时用了 UI 格式的工作流 JSON 导致接口报错。接下来可以继续扩展的方向包括训练一个专属 LoRA 来固定“温馨的家”风格接入 ControlNet 控制画面构图或者把批量生成的图片接进短视频素材流水线。建议先收藏这套流程等真正需要做插画批量生成时直接照着操作。
返回列表