尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

AI绘画角色一致性新方案:ComfyUI本地部署“New Face”工作流

AI绘画角色一致性新方案:ComfyUI本地部署“New Face”工作流 这次我们来看一个社区创作者项目标题是 “New face new unc // og idea”作者标记为 jyns_hotspot。项目名里最有信息量的就是 “New face”翻译成技术目标就是在 AI 绘画里生成一张全新的、可复用的角色面孔并在不同姿势、表情、场景下尽量保持这张脸的身份一致性。它不是一个常见的重量级开源框架更像一个“原创想法 模型 / 工作流”的组合。实际使用时要放进本地 ComfyUI 或 Stable Diffusion WebUI 生态里把它当成人物一致性创作方案来跑。在一个 AI 绘画模型多到记不过来的阶段这种项目真正值得关注的不是“能画得多好看”而是能不能稳定出来一张可复用的新面孔以及能不能批量生成一批设定图、表情图、动态姿势预览。我写这篇文章不打算去猜作者每个缩写的具体含义而是直接给一套可落地的本地部署流程环境准备、下载放置模型、ComfyUI 启动、单图测试、批量生成、API 接入、资源占用观察、常见问题排查。这样无论你拿到的是 LoRA 还是工作流 JSON都能照着推一遍。先说结论如果你有 NVIDIA 显卡愿意折腾 ComfyUI并且手上有人脸素材的使用授权这类项目很快就能成为角色设定的效率工具。如果只是想看一张图就判断好不好用建议直接看后面的“核心能力速览”和“功能测试”两节再决定要不要花时间部署。1. 核心能力速览能力项说明项目类型AI 绘画角色一致性创作项目社区原创想法提供方jyns_hotspot核心功能“新面孔”角色生成、人脸一致性保持、风格化形象创作推荐运行方式ComfyUI / Stable Diffusion WebUI 本地部署启动方式命令行启动后通过浏览器访问 Web UI是否支持 CPU可以运行但速度较慢推荐 NVIDIA GPU显存需求以实际模型版本为准建议 8G 起步是否支持 API项目本身不直接提供 API可通过 ComfyUI API 暴露服务是否支持批量任务可配合脚本或队列批量生成适合场景原创角色设定、插画前期探索、游戏概念设计、短视频素材预演这类项目的核心链路通常是参考人脸图片 → 提取人脸特征 → 结合提示词生成新姿势 / 新表情 / 新场景 → 输出一批保持身份一致性的图片。标题里的 “new face” 对应整个人脸生成入口而 “unc” 这类后缀在不同社区平台含义并不统一技术使用上不必过度纠结以作者发布的模型卡说明为准。1.1 项目定位判断“New face new unc // og idea by: jyns_hotspot”不是开箱即用的独立 App它最可能的形态是原创角色概念图、配套 LoRA 模型、ComfyUI 工作流文件或者是几者组合。拿到这样的项目后需要先做一个基本判断作者是否提供了可下载的模型文件工作流是否存在外部依赖节点参考图素材是否允许二次使用。这些信息一般在发布页的说明栏里部署前先把这些确认清楚省得下载半天发现模型文件和说明对不上。2. 适用场景与使用边界2.1 这个项目适合谁正在设计原创角色需要快速出多角度设定图的画师或设计师。做 AI 视频需要同一张脸出现在多个分镜脚本里的短视频创作者。运行 ComfyUI 比较熟练习惯把社区模型接入到自己工作流里的玩家。需要批量生成角色表情包、动作参考、服装方案的内容团队。2.2 能解决什么问题它解决的是 AI 绘画里比较头疼的“人物保持问题”。普通文生图出图每次都是新脸角色前后不连贯。而这类人脸一致性项目会把参考人脸的特征固定下来。你先生成一张新面孔或者直接用授权过的参考人脸再到后续不同场景中复用这张脸。这对角色设定图的效率提升非常明显。2.3 不适合什么场景完全没有本地部署经验、不愿意用命令行和环境配置的纯新手。没有独立显卡只能用 CPU 跑图且对生成速度要求高。需要把生成结果直接商用但无法确认人脸素材、模型权重和参考图授权来源。2.4 版权、隐私与安全边界这里必须重点提醒凡是涉及人脸生成、人脸替换、形象复用的项目都要先确认素材来源。公开人物的脸、私人照片、未经授权的模特图都不能随意拿来做生成素材。本地生成只能用于个人研究和技术验证。如果要把生成结果发布、商用或用于公开传播必须确保以下三点都有据可查原始图片的肖像授权、模型权重的使用许可、生成内容的合规边界。对创作者提供的参考图和工作流同样要保持警惕不要在没有授权的情况下复制他人风格或角色。3. 环境准备与前置条件3.1 硬件与操作系统部署 ComfyUI 或 Stable Diffusion WebUI 这类本地绘画环境最常见的是 Windows 10 / Windows 11 和 Linux 环境。硬件方面NVIDIA 显卡体验最好建议显卡驱动更新到较新版本并安装匹配的 CUDA 版本。显存方面从经验来看8G 是一个相对从容的起步线可以跑大多数常见的 checkpoint 和人脸类模型6G 显存也能运行但需要开启低显存模式分辨率不能开太高。纯 CPU 推理理论上能跑但生成一张图可能要等很久只建议做流程验证。3.2 软件与依赖需要提前准备Python 3.10 或 3.11避免版本过新导致部分依赖编译失败。Git用于拉取 ComfyUI 和相关自定义节点。NVIDIA 显卡驱动尽量选择 Game Ready 或 Studio 驱动。PyTorch 环境安装时根据显卡选择对应 CUDA 版本。浏览器推荐 Edge 或 Chrome用于访问 ComfyUI 界面。3.3 磁盘空间ComfyUI 主体很小但模型文件不小。一个基础 checkpoint 通常是 2G 到 7G一个 LoRA 文件从几十 MB 到几百 MB 不等。如果还要安装人脸识别、换脸、IPAdapter 之类的自定义节点依赖模型会额外占用几 GB。建议预留至少 30G 空间并保持 C 盘之外有独立工作目录避免系统盘写满。3.4 网络与下载模型下载源主要有 Hugging Face、Civitai、GitHub以及部分国内镜像站。下载时注意校验文件大小和哈希值确认文件完整性。如果下载慢或经常中断可以检查网络连接、使用代理下载工具或者选择下载速度更稳定的平台这部分不展开。4. 安装部署与启动方式下面以 ComfyUI 为运行环境给出一套通用部署流程。这个流程对大多数社区模型项目都适用。如果你拿到的是项目作者已经打包好的一键包则可以跳过前几小节直接看启动命令。4.1 拉取 ComfyUI打开终端进入你想要放项目的目录执行git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI如果网络环境不稳定拉取失败时可以多试几次或者使用镜像仓库。这里用的是 ComfyUI 官方仓库路径具体版本以官方页面说明为准。4.2 创建虚拟环境Windows 下使用 venv 创建隔离环境避免依赖冲突python -m venv venv venv\Scripts\activateLinux / macOS 下执行python -m venv venv source venv/bin/activate看到终端提示符前出现(venv)就说明虚拟环境已激活。后面安装的依赖都会装在这个环境里不会污染系统全局 Python。4.3 安装依赖pip install -r requirements.txt如果你的显卡是 NVIDIA 且需要 CUDA 加速还需要确认 PyTorch 是否装到了对应 CUDA 版本。如果默认安装的 PyTorch 是 CPU 版需要到 PyTorch 官网选择对应的安装命令重新安装。安装完成后可以先用默认模型启动一次 ComfyUI确认基础环境没问题再放入项目模型。4.4 放置模型文件进入 ComfyUI 目录后模型文件要按类型放到对应子目录大模型 checkpoint 放入models/checkpointsLoRA 模型放入models/lorasVAE 文件放入models/vae人脸识别 / 换脸类模型放入models/reactor或models/insightface具体看自定义节点要求ControlNet 模型放入models/controlnet不要把所有模型都堆在 checkpoints 目录里。目录整理清楚工作流在加载节点时才能快速找到对应文件排查问题也会方便很多。4.5 启动 ComfyUIpython main.py --lowvram --port 8188这是一个通用启动示例。--lowvram适合显存不够宽裕的情况如果显存充足可以不使用这个参数--port 8188指定端口避免和其他本地服务冲突。启动成功后终端会显示访问地址默认是http://127.0.0.1:8188用浏览器打开这个地址就能看到 ComfyUI 的节点编辑界面。4.6 导入项目工作流如果 jyns_hotspot 发布的内容里包含工作流文件常见导入方式有两种直接把工作流 JSON 文件拖进 ComfyUI 界面。如果发布的是带工作流信息的 PNG 图片把图片拖进界面即可自动加载对应节点。加载后先检查节点是否完整。如果发现某些节点显示为紫色或提示缺失说明缺少对应的自定义节点需要到ComfyUI-Manager里搜索并安装。5. 功能测试与效果验证部署完成后不要直接上复杂参数。先做一轮从简单到复杂的验证确认每个功能点都能跑通。以下测试流程以人脸一致性生成项目为例。5.1 基础文生图测试测试目的确认 ComfyUI 基础出图链路正常模型、VAE、采样器都工作。在正面提示词区域填写角色描述例如new face, beautiful detailed eyes, soft lighting, portrait, upper body, small smile负面提示词填写bad anatomy, bad hands, extra fingers, deformed face, blurred, watermark采样参数使用通用默认值采样步数 20 到 30CFG 3.5 到 7分辨率从 512x768 开始。点击生成后开始观察图片是否正常生成。有没有报错。显存是否有明显波动。角色脸部是否清晰。判断成功标准图片不出现大面积黑图、灰图、崩脸脸部结构和手部结构可接受。如果生成失败优先看终端日志定位是模型加载失败、显存溢出还是提示词解析错误。5.2 新面孔生成与一致性测试这是项目核心测试。如果项目包含人脸参考图流程需要先把参考图上传到 ComfyUI 的加载图片节点然后接人脸特征提取节点再传入生成链路。测试步骤准备一张干净、正面、光线均匀的参考人脸图。在加载图片节点中选中该图。设置人脸特征提取的放大倍率、检测阈值等参数。输入一组不同的姿态和场景提示词。固定同一个随机种子连续生成 4 到 6 张图。预期结果所有输出图都是同一个人物只是表情、角度或背景发生变化。如果出现每张图长相不一致说明人脸特征权重过低或者参考图本身不够清晰需要调整权重参数。判断成功标准多张图之间的人物五官轮廓、脸型、瞳色等核心特征保持一致。最容易失败的场景是侧脸、俯拍角度和低光照这三类情况需要单独调参。5.3 图生图与局部重绘测试很多人脸项目在生成设定图时还会用到图生图或局部重绘。比如只改服装、只改发型、不改脸。在 ComfyUI 里可以通过遮罩节点实现局部重绘。测试目的是确认人物角色的可编辑性。操作时把一张已生成的正面图拖进图生图节点加入局部遮罩只覆盖服装区域然后填写新的服装描述。生成后观察脸部是否保持原样服装是否按提示词变化。如果脸部也发生变化说明遮罩范围没有限制住或者重绘幅度过大。此时把去噪强度从 0.5 调节到 0.35 左右再审一遍。5.4 批量生成验证批量任务不是把所有图片一次塞进 GPU 并行处理而是把多个任务放进队列顺序执行。在 ComfyUI 界面里可以反复点击“提交”按钮把多组提示词加入队列。更高效的做法是使用 API 脚本循环提交这个在下一节单独讲。批量验证时建议先用 5 张图测试队列稳定性确认每张图都正常输出后再扩大到 50 张甚至更多。如果队列中间卡住重点检查模型是否加载失败、提示词里是否有非法字符、输出格式是否与保存节点不匹配。6. 接口 API 与批量任务ComfyUI 自带 HTTP API可以把项目生成能力暴露成可访问的接口服务。这样就不用每次手动在网页上点生成可以接到自己的工具链里批量处理一批提示词、一批参考图或者一批参数组合。6.1 开启远程访问默认启动时 API 只监听本地。如果需要局域网内其他设备访问启动命令加--listenpython main.py --listen 0.0.0.0 --port 8188这样同一局域网内的机器可以通过http://本机IP:8188访问。但注意接口服务不要直接暴露到公网模型生成接口很容易被滥用建议只在可信内网使用。6.2 提交生成任务ComfyUI 的 API 核心接口是POST /prompt请求体里包含工作流的 JSON 数据。工作流 JSON 可以通过界面右上角按钮导出也可以在浏览器里用开发模式获取 API 格式 JSON。下面是一个通用 Python 示例思路是先读取工作流 JSON再替换提示词然后提交import requests import json server http://127.0.0.1:8188 # 读取 ComfyUI 导出的 API 格式工作流 with open(workflow_api.json, r, encodingutf-8) as f: workflow json.load(f) # 找到提示词节点并替换节点 id 需要根据实际工作流确认 for node_id, node in workflow.items(): if node.get(class_type) CLIPTextEncode: if 正面提示词 in node[inputs].get(text, ): node[inputs][text] new face, portrait, golden hour, soft light payload { prompt: workflow } resp requests.post(f{server}/prompt, jsonpayload, timeout30) print(resp.json())如果返回结果里有prompt_id说明任务已进入队列。之后通过/history/{prompt_id}查询任务状态和输出图片。6.3 获取生成结果import requests server http://127.0.0.1:8188 prompt_id 这里填返回的 prompt_id resp requests.get(f{server}/history/{prompt_id}, timeout15) data resp.json() if prompt_id in data: outputs data[prompt_id][outputs] for node_id, output in outputs.items(): if images in output: for img in output[images]: print(f生成图片{img[filename]})注意这段代码只是示例具体字段结构以实际运行时的接口返回为准。6.4 批量任务设计批量任务的核心不是一次性提交几百个请求而是控制提交节奏、保存任务状态、处理失败重试。一个比较稳妥的脚本流程是读取输入文件比如一个提示词列表或参考图目录。对每条记录生成工作流 JSON。提交到/prompt接口记录prompt_id。定时查询任务状态。任务完成后下载输出图片并按原文件名保存。如果查询超时或任务失败记录日志后重试 2 到 3 次。伪代码示例import time import requests import json server http://127.0.0.1:8188 task_queue [ {id: 01, prompt: portrait, new face, red dress}, {id: 02, prompt: portrait, new face, black suit}, ] for task in task_queue: workflow load_workflow_template() set_prompt(workflow, task[prompt]) resp requests.post(f{server}/prompt, json{prompt: workflow}).json() prompt_id resp.get(prompt_id) for _ in range(60): time.sleep(2) status requests.get(f{server}/history/{prompt_id}).json() if prompt_id in status: save_output(status[prompt_id], task[id]) break else: log(ftask {task[id]} timeout)同一个模型连续跑几十张图最容易出现的问题是显存积累和临时文件堆积。因此批量任务最好加上队列间隔比如每张图生成完成后等 1 到 2 秒再提交下一个任务给显存和内存释放留时间。7. 资源占用与性能观察这类本地绘画项目真正要盯的性能指标就是显存占用和单张生成时间。不要只看最终图片质量还要看整个任务执行过程是否稳定。7.1 如何观察显存占用在另一个终端窗口运行nvidia-smi -l 1这个命令每 1 秒刷新一次显存和 GPU 利用率。生成图片时会看到显存占用瞬间拉高生成结束后回落到基础占用。如果某些节点在单进程内反复加载模型显存可能始终处于高位这不是错误但批量任务时要关注是否出现缓慢增长最终导致 OOM。7.2 CPU 推理和 GPU 推理差异GPU 推理生成一张图通常只要几秒到几十秒CPU 推理则可能延长到几分钟甚至更久。如果机器只有 CPU可以先低分辨率、低步数验证工作流逻辑不要直接上高分辨率批量任务。从实际体验看人脸一致性工作流往往包含多个模型CPU 模式下单个节点推理耗时成倍增长整体排队时间非常可观。7.3 影响性能的关键参数分辨率从 512 提升到 1024计算量明显增加再做 2 倍放大又会在后处理阶段占用额外显存。采样步数步数越高生成时间越长但超过一定步数后画质提升不明显。批量大小一次生成多张图会成倍增加显存压力通常建议批量大小从 1 开始。人脸检测模型人脸识别节点在每张图上都会运行参考图中人脸数量和检测阈值会影响耗时。文本长度超长提示词对显存影响不大但对 CLIP 编码器的推理时间有一定影响。7.4 降低显存占用的方法显存不足时优先尝试这几个方向启动时加--lowvram把模型分块加载。使用 fp16 或 bf16 精度。降低批量大小为 1。关闭其他占用显存的程序比如浏览器硬件加速。去掉不必要的放大节点先生成小图再单独跑放大。7.5 端口冲突和进程残留启动时如果提示端口被占用可以换一个端口python main.py --port 8189如果已经启动过多个服务终端关掉后发现端口仍被占用可以在 Windows 下使用netstat -ano | findstr 8188查看进程 PID再在任务管理器结束对应进程。Linux 下使用lsof -i:8188查看占用进程。8. 常见问题与排查方法问题现象可能原因排查方式解决方案启动后页面打不开端口被占用或服务未启动看终端日志检查端口监听更换端口或重启服务CUDA 不可用 / 找不到显卡显卡驱动太旧或 PyTorch 版本与 CUDA 不匹配nvidia-smi检查驱动Python 里检查 torch.cuda更新驱动安装对应 CUDA 版本的 PyTorch显存不足 OOM分辨率过高、批量数过大、模型过大查看错误日志和 nvidia-smi降低分辨率批量数设 1开启 --lowvram模型文件加载失败文件放在错误目录或文件不完整检查模型放置路径和文件大小移动到正确 models 目录重新下载自定义节点显示缺失缺少对应 ComfyUI 插件打开 ComfyUI-Manager 查看缺失列表安装对应自定义节点后重启生成图片人脸不一致人脸特征权重过低或参考图模糊观察不同输出的脸部变化提高人脸特征权重换一张更清晰的参考图批量任务卡住任务队列堆积节点报错未捕获查看终端日志和任务状态增加任务间延时脚本中加入超时和重试输出图片风格不稳定随机种子变化提示词不够稳固定 seed检查工作流中是否有随机节点使用固定 seed统一提示词模板参考图片不生效节点连接错误或检测模型未加载检查人脸检测节点是否有输出重新连接节点路径安装对应检测模型生成图片有违规内容提示词或素材使用了不当描述检查提示词和输入素材移除违规描述严格使用合规素材排查问题时最优先看终端日志而不是只看界面报错。ComfyUI 的大部分错误信息会直接打印在终端包括缺少文件、节点执行失败、显存分配失败等。把日志复制出来搜索关键字通常比反复重新生成更有效。9. 最佳实践与使用建议9.1 第一次先小参数测试不要一上来就生成 1024x1024、80 步、批量生成几十张图。第一次运行用最低分辨率、最低步数只验证工作流能跑通。确认整条链路没有问题后再逐步提高参数。这样可以省下大量排查时间。9.2 保留一套最小可运行配置当你调通一个组合马上把工作流 JSON 导出来保存同时在旁边写一个简单的说明记录模型版本、关键参数、正负提示词。这个最小配置以后可以作为所有新测试的基础模板。9.3 目录管理要规范建议整个项目目录按下面的方式组织project_root/ ├── models/ # 模型文件 ├── workflows/ # 工作流 JSON ├── inputs/ # 参考图、输入素材 ├── outputs/ # 生成结果 └── logs/ # 批量任务日志模型文件、输入素材、输出结果分目录管理不只是为了整洁。批量任务脚本和日志记录都需要依赖明确路径目录混乱最容易导致脚本意外覆盖文件或读取错误。9.4 批量任务要加日志和失败重试批量生成不是提交完就结束。建议执行前记录任务总数、每个任务的参数、开始时间执行中记录每个任务的 prompt_id 和状态执行后记录输出文件路径。脚本捕获到异常时先记录日志再按规则重试。如果连续失败超过 3 次停止批量任务人工检查。9.5 接口服务要限制访问范围使用 API 时不要把--listen 0.0.0.0的服务直接暴露到公网。如果确实需要远程调用建议放在内网或通过防火墙限制来源 IP并在生成服务前面加一层自己的鉴权逻辑防止接口被滥用。9.6 涉及人脸、声音、版权素材时必须确认授权再强调一次所有涉及真人脸部的生成都必须在授权范围内使用。发布任何包含由 AI 生成人脸的作品时需要仔细确认肖像权、版权和使用许可。技术本身没有倾向但如果使用不当会带来法律风险。不要为了省事跳过这一条。9.7 发布或商用前要做效果复核AI 生成的人脸有时在极端角度下会有细微畸形批量生成后一定要人工抽查。尤其是准备对外发布的素材逐张检查脸型、手指、五官结构、文字和 logo 区域避免低级错误影响最终交付。10. 总结与下一步这个项目最值得尝试的点是“围绕一张新面孔做二次创作”的工作流思路。不管最后你使用的模型是不是 jyns_hotspot 发布的原始版本只要把角色一致性生成链路跑通就能把这套方法复用到自己的角色设定、插画草稿和视频脚本预演里。建议拿到项目后先验证三件事基础文生图链路是否正常模型能不能加载。人脸参考图节点是否真的影响生成结果换两张不同的参考图看输出差异。工作流能不能通过 API 批量提交脚本跑一次 10 张图的队列是否稳定。最容易踩的坑其实不在生成环节而在环境准备阶段模型放错目录、PyTorch 版本和 CUDA 不匹配、自定义节点没装全。这三个问题占了新手部署失败的大多数。先把 ComfyUI 官方示例工作流跑通再套入项目模型会顺畅很多。后续可以继续扩展的方向很多把这个工作流接到自己的批量图片脚本里做成一个简单的角色设定生成工具或是在工作流中追加 LoRA 训练让新面孔变成可复用的独立角色模型再或者配合视频生成模型把多张保持一致性的角色图作为分镜素材使用。只要把基础链路的部署、测试和排错流程掌握清楚这个项目就能从“看看效果”变成真正能稳定产出内容的工具。对已经接触过本地部署的读者来说最快验证方式就是照着上面的流程从基础文生图开始逐步替换成项目自带的工作流第一张图出来后再决定要不要继续投入时间。建议收藏备用后面实际部署时可以少走弯路。
返回列表