☰
用ComfyUI搭建国漫角色素材生产工作流:从文生图到API批量生成
2026/9/26 2:37:10 网站建设 项目流程

看到“突然想起来自己是个异人up 那发个库存吧【异人之下】”这个标题,第一反应是动漫区UP主的库存视频。但抛开视频选题不谈,这类UP主如果想稳定更新,背后通常需要一条可复用的素材生产线:角色图、分镜、表情包、视频片段,每一类都要批量产出。这篇文章就把“异人之下”当作国漫二创的常见需求,拆成一套本地 AI 素材生产流程。

这里不会讨论剧情,也不涉及具体模型版权,只讲技术路径:用 ComfyUI 搭建工作流,结合 Stable Diffusion 系底模、LoRA 和 ControlNet,完成角色一致性出图、批量生成分镜、接入 API 做自动化任务。整个过程可以本地部署,支持批量任务,也能把生成能力封装成接口,适合做国漫风格插画、同人漫画分镜、自媒体视频素材和角色参考图。

这个流程最值得关注的几个点:第一,ComfyUI 是可视化节点工作流,改参数、换模型、接 ControlNet 都很直接;第二,它自带 API 服务,能通过脚本提交生成任务,批量出图不需要手动点鼠标;第三,只要底模和 LoRA 选得合适,同一角色在不同画面里的风格一致性可控制;第四,部署难度不高,普通台式机或者笔记本都能跑,显存大小只影响分辨率和速度。

本文会带你先完成环境准备,再启动 ComfyUI,随后分别测试文生图、角色一致性、批量生成和 API 调用,最后给出资源占用观察方法和常见问题排查清单。

1. 核心能力速览

能力项说明
项目类型本地 AI 素材生成工作流,以 ComfyUI 为核心
主要功能文生图、图生图、局部重绘、角色一致性、批量生成、图生视频素材准备
技术栈ComfyUI、Stable Diffusion 底模、LoRA、ControlNet、Python
硬件要求需要 NVIDIA 显卡,显存越大越稳;CPU 模式可跑但速度慢,建议仅用于调试
显存占用取决于底模、分辨率、步数和批量大小,需按实际环境测试
支持平台Windows / Linux,macOS 视 PyTorch 支持情况而定
启动方式一键启动脚本 / 命令行启动 / 接口服务启动
是否支持 API支持,ComfyUI 提供 HTTP API,可提交工作流并获取结果
是否支持批量任务支持,通过输入目录或脚本循环批量提交
适合场景国漫同人图生成、角色参考图、分镜草稿、自媒体视频素材、批量风格化处理

从材料看,这个流程更适合已经有底模使用经验的人。第一次使用也可以照着本文按顺序执行,重点是把最小工作流跑通,不要一上来就堆大模型和高分辨率。

2. 适用场景与使用边界

这套流程最适用的场景是:你在做《异人之下》或其他国漫 IP 的二创内容,需要快速产出角色图、固定角色造型、生成表情包、做分镜草稿。传统做法是手绘或者逐张修图,效率低;用 AI 工作流可以把“生成一张图”变成“批量生成一批候选图”,然后人工从里面挑选和精修。

它也能解决一类更实际的问题:角色一致性。很多二创作品卡在同一个角色在不同画面里的脸型、衣服、配色不统一。通过训练或下载对应角色的 LoRA,再配合 ControlNet 的参考图约束,可以让同一角色的多次生成结果更接近。这在漫画分镜或视频素材准备阶段非常有用。

但不是所有需求都适合这套流程。如果你的目标是制作完全原创的商业作品,不建议直接使用未经授权的模型和角色 LoRA,存在版权风险。如果角色涉及真人肖像,更不能在未获得授权的情况下生成和传播。另一个边界是,AI 生成不等于最终成稿,出图后仍然需要人工检查构图、文字、手指、道具细节,不能直接拿去发布。

合规提醒具体说三点:第一,使用任何模型、LoRA、素材前,先确认来源是否有授权;第二,二创内容要注意原 IP 的版权限制,商用前必须取得权利方许可;第三,涉及真人照片、声音、肖像,必须获得明确授权,并避免生成误导性内容。

3. 环境准备与前置条件

开始部署前,先按下面清单检查本机环境,避免跑到一半才发现缺依赖。

3.1 系统与硬件检查

  • 操作系统推荐 Windows 10/11 或 Ubuntu 20.04 以上。Windows 用户注意显卡驱动最好更新到最新版本。
  • NVIDIA 显卡是首选,核心关注显存大小。4G 显存可以跑低分辨率小模型,8G 以上能跑更高分辨率和更多插件。AMD、Intel 显卡需要额外配置 DirectML 或 ROCm,不在本文默认范围内。
  • 内存建议 16G 以上,模型加载和批量处理时比较吃内存。
  • 磁盘建议预留至少 20G 空间。底模 LoRA、ControlNet 模型加起来占用不小,输出图多了也要占用空间。

3.2 软件依赖准备

依赖项用途
Python 3.10 / 3.11运行 ComfyUI 及其插件
Git拉取项目代码
NVIDIA 驱动 + CUDA 工具包GPU 加速,Pytorch 需要调用 CUDA
PyTorchAI 模型推理的基础库
底模文件配置在 ComfyUI/models/checkpoints 目录

如果你不想手动配置 Python 环境,更简单的方案是下载整合包,自带 Python 和依赖,启动后直接用。这样省去很多环境问题,缺点是更新和排查时需要理解目录结构。

3.3 模型目录规划

ComfyUI 的模型统一放在 models 目录下,建议提前建立好对应子目录,后面导入工作流时不容易出错。

ComfyUI/ ├── models/ │ ├── checkpoints/ # 底模,如 Stable Diffusion 1.5 / SDXL │ ├── loras/ # 角色或风格 LoRA │ ├── controlnet/ # ControlNet 模型 │ ├── vae/ # VAE 文件 │ └── clip/ # CLIP 模型 ├── input/ # 输入图片,批量处理时放这里 ├── output/ # 生成结果目录 └── user/ # 用户配置

具体文件名以你下载到的模型为准,目录名不要改,否则工作流导入后会提示“模型文件未找到”。

4. 安装部署与启动方式

4.1 安装 ComfyUI

Windows 下最简单的方式是下载官方整合包,解压后运行启动脚本。如果想保持环境干净,也可以使用 Git 安装。

git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI pip install -r requirements.txt

依赖装完后,确认 PyTorch 安装在 GPU 版本上。可以执行下面命令检查:

python -c "import torch; print(torch.cuda.is_available())"

输出 True 说明 GPU 调用正常,输出 False 则需要检查驱动、CUDA、PyTorch 版本。

4.2 启动服务

命令行启动方式:

python main.py

默认端口是 8188,启动后浏览器访问http://127.0.0.1:8188,看到节点工作台说明服务正常。

如果 8188 端口被占用,可以手动指定端口:

python main.py --port 8189

Linux 服务器上部署时,如果不希望监听所有网卡,可以加上参数:

python main.py --listen 127.0.0.1 --port 8188

这样就不会把 API 暴露到外网,适合只在本地调用。

4.3 导入工作流

ComfyUI 的界面是节点图。你需要先准备一张 workflow JSON 文件,这张文件可以从社区开源工作流中找,也可以自己拖节点搭。

导入操作:打开 ComfyUI 页面,把 JSON 文件拖进页面,节点图会自动加载。如果某些节点显示红色,说明缺少对应自定义节点或模型文件,需要先安装缺失插件,再把模型放到指定目录。

建议第一次导入工作流后,先不直接批量出图,而是把底模、VAE、LoRA、ControlNet 这些节点逐个检查一遍,确认每一项都有对应的模型文件。

4.4 断网与离线环境

内网机器需要离线部署时,提前在一台联网机器上下载好模型文件和依赖包,通过压缩包复制到目标机器。启动时设置--offline参数可以禁止 ComfyUI 访问网络更新。

python main.py --offline

离线环境最容易遇到的问题就是缺插件,因此拷贝整个custom_nodes目录比单独拷贝脚本更稳妥。

5. 功能测试与效果验证

启动成功后,不要急着追求高画质。按下面的测试顺序,先把每个功能验证一遍。

5.1 文生图基础测试

测试目的:确认从文本提示词到图片生成的链路完整,模型文件和采样器都能正常工作。

操作步骤:

  1. 在默认文生图工作流中填入正向提示词,例如a mysterious martial artist, glowing energy, anime style。
  2. 反向提示词填写lowres, bad anatomy, extra limbs。
  3. 分辨率先设置为 512x512 或 768x768,步数 20,采样器选 Euler。
  4. 点击 Queue 按钮运行。

预期结果:队列执行后生成一张图片,右侧预览区域出现生成结果。查看输出目录output里能看到文件。

判断标准:图片没有黑屏、彩噪、明显花屏,说明模型加载正常。如果全黑或花屏,优先检查 VAE 节点是否挂载正确。

5.2 角色一致性测试

测试目的:确认同一角色在多张画面中的风格和五官接近。

这里需要 LoRA 模型或参考图。以 LoRA 为例:

  1. 在工作流中加入 LoRA 节点。
  2. 选择对应角色的 LoRA 文件,设置权重,比如 0.8。
  3. 提示词里加入触发词,具体触发词要看 LoRA 模型的说明。
  4. 分别用三组不同场景的提示词生成三张图。

预期结果:三张图中角色服饰和面部风格基本一致,场景背景有明显变化。

如果三张图角色差异很大,先检查 LoRA 是否生效。可以在提示词前后加触发词,或者把 LoRA 权重提高到 1.0 再试。但权重过高可能导致画面过拟合,人物表情和结构畸形。

5.3 ControlNet 姿态控制测试

测试目的:验证角色姿态是否能被参考图约束。

通常用于分镜草稿:先找一张简单的人物动态参考图,通过 ControlNet 的 OpenPose 或 Lineart 提取姿势,再把姿势信息作为约束传入生成节点。

操作步骤:

  1. 在 workflow 中加入 ControlNet 加载器和预处理器节点。
  2. 上传一张动态参考图到input目录。
  3. 连接预处理节点到采样器。
  4. 保持提示词不变,观察生成图中人物动态是否符合参考图。

预期结果:生成人物姿态基本复现参考图,同时背景和服装由提示词决定。

常见失败原因是 ControlNet 模型版本与底模不匹配。SD1.5 底模对应 SD1.5 的 ControlNet,SDXL 底模对应 SDXL 的 ControlNet,不能混用。

5.4 批量生成测试

测试目的:验证连续多张出图的稳定性,检查显存释放情况。

操作步骤:

  1. 准备一个包含多张参考图的输入目录。
  2. 在工作流中使用“加载图像批次”节点,或通过脚本调用 API 提交多组提示词。
  3. 连续生成 10 张图。
  4. 边生成边打开任务管理器或nvidia-smi观察显存占用。

预期结果:任务不会中途停止,出图文件按任务顺序写入输出目录。

判断标准是看进程是否一直持续到任务结束。如果生成到第几张就卡住,大概率是单个任务释放不完整,可以尝试把 batch size 改成 1,逐张生成。

5.5 图生视频素材准备

如果目标是做短视频素材,通常不在 ComfyUI 里直接生成视频,而是先生成视频关键帧,再用其他工具补帧或做图生视频。具体做法:

  1. 先生成角色关键帧图片。
  2. 将关键帧作为首帧输入图生视频模型。
  3. 通过批量任务生成多段短视频素材片段。

这一步的功能边界是:视频生成对显存要求通常高于静态出图,需要额外测试视频模型是否能加载。判断标准以本机测试为准,不要凭经验直接上大分辨率。

6. 接口 API 与批量任务

ComfyUI 的价值不只是图形界面,它还提供 HTTP API。这意味着你可以写脚本批量提交任务,不必手动操作页面。

6.1 获取工作流 JSON

在 ComfyUI 页面中点击“Save API Format”,导出用于 API 调用的 JSON 文件。这个文件里包含每个节点的输入参数和模型调用关系。实际请求时,只需要替换其中的提示词和输入图片路径。

6.2 提交生成任务

API 的入口路径通常为POST /prompt,请求体格式类似:

{ "prompt": { "3": { "class_type": "CheckpointLoaderSimple", "inputs": { "ckpt_name": "你的底模文件名.safetensors" } }, "6": { "class_type": "CLIPTextEncode", "inputs": { "text": "a martial artist, anime style", "clip": ["3", 1] } } } }

这里给的是简化示例,实际工作流中节点和连线更复杂。你可以通过GET /object_info接口查看所有可用节点及其参数。

提交任务的 Python 示例:

import json import requests api_url = "http://127.0.0.1:8188/prompt" workflow = { "prompt": { # 这里替换为从页面导出的 API Format JSON } } response = requests.post(api_url, json=workflow, timeout=60) data = response.json() print(data.get("prompt_id"))

返回的prompt_id可用于查询任务状态。

6.3 查询任务状态与结果

提交任务后,可以通过历史接口获取执行结果:

history_url = "http://127.0.0.1:8188/history/{}".format(prompt_id) result = requests.get(history_url, timeout=30) print(result.json())

从返回结果中读取输出图片文件名,再到output目录中取文件。

6.4 批量任务队列设计

批量场景下,不建议一次性把几百个任务全部塞进队列。这样一旦中间一个任务因显存不足失败,后面全部受影响。

推荐的做法:

  1. 用一个 Python 脚本读取任务清单 JSON,逐条提交。
  2. 每次控制并发任务为 1 到 2 个。
  3. 提交后轮询状态,超过 120 秒无响应就标记失败。
  4. 失败任务写入failed.json,后续统一重试。
python batch_submit.py --input tasks.json --output results/ --retry 3

脚本内部可以循环调用提交接口,间隔时间根据单张生成速度调整。这样既稳定,也方便断点续跑。

7. 资源占用与性能观察

显存占用是这个流程最值得关心的指标。第一次跑任务前,先打开显存监控:

nvidia-smi -l 2

每隔两秒刷新一次,可以看到显存使用率变化。启动模型时显存会快速上升,生成过程中波动不大,任务完成后显存会回落。

影响性能的几个关键参数:

  • 分辨率:越大越吃显存,耗时越长。
  • 步数:步数越高,采样越慢,但画质不一定线性提升。
  • Batch size:一次生成多张图会显著提高显存占用。
  • 底模版本:SDXL 系比 SD1.5 更吃显存。
  • ControlNet:多一个控制模块,显存开销就多一分。

降低显存占用的通用方法:

  1. 先跑小分辨率,比如从 512x512 起步。
  2. Batch size 始终设置为 1,通过脚本循环批量提交。
  3. 开启低显存优化参数,具体看 ComfyUI 版本支持。
  4. 关闭不必要的预览节点,尤其是实时预览。
  5. 用轻量 ControlNet 模型替代重型模型,优先保证基础姿态控制。

CPU 推理不是不能用,但速度会慢很多。更稳妥的判断是:CPU 只用来验证工作流是否连通,正式批量生成尽量使用 GPU。

8. 常见问题与排查方法

问题现象可能原因排查方式解决方案
启动后页面打不开端口被占用或服务未启动检查终端日志,确认端口监听更换端口或用--port启动
依赖安装失败Python 版本不匹配或缺少编译环境查看 pip 报错日志使用整合包环境,或切换到 Python 3.10/3.11
模型文件找不到文件名错误或目录放错检查 models 目录结构将模型放到对应子目录,核对文件名
PyTorch 检测不到 GPU驱动或 CUDA 版本问题执行torch.cuda.is_available()更新驱动,安装匹配的 CUDA 版本
图片全部黑色或花屏VAE 未正确连接检查 VAE 节点添加 VAE 加载器并连接
批量任务卡住不跑单个任务死锁或显存不足观察 nvidia-smi 和日志调小批量参数,逐张重试
API 返回超时单张生成时间过长查看耗时日志降低分辨率和步数,或增加等待时间
角色一致性问题LoRA 没有触发或权重过低检查提示词触发词和 LoRA 权重参考 LoRA 模型说明调整权重和触发词
输出图片分辨率超出显存显卡显存不足查看失败原因RuntimeError: CUDA out of memory降低分辨率,开启低显存优化
节点显示红色缺少自定义节点插件未安装查看缺失模块名称在 custom_nodes 目录安装对应插件

如果任务在批量过程中卡住,优先看终端日志是否出现显存溢出信息。出现CUDA out of memory时,不要盲目调低分辨率,先检查是否有其他进程占用显存。

9. 最佳实践与使用建议

结合本地 AI 素材生产的常见经验,给几组工程化建议。

第一,第一次跑通后,保存一份最小可用工作流 JSON。这也是你的基线配置。后续修改底模或 LoRA 时,建立在该工作流基础上调整,出问题能快速回退。

第二,目录管理要干净。建议按下面结构整理:

project/ ├── workflows/ # JSON 工作流文件 ├── inputs/ # 参考图输入 ├── outputs/ # 生成结果 ├── models/ # 底模和 LoRA 的备份或链接 └── tasks/ # 批量任务清单和失败记录

第三,坚持记录提示词和参数。每批生成时把 Json 配置和生成图片放到同一批目录,后续要复现风格时直接看配置就行。

第四,批量任务要加日志和失败重试。只依赖 ComfyUI 内部队列不够,建议在脚本里记录每个 prompt_id 的状态。失败的任务不要自动无脑重试,先分析失败原因,再决定是否重跑。

第五,接口服务只监听本机。如果需要在局域网访问,设置--listen 0.0.0.0前先确认网络环境可信,并加上访问权限控制。不要让一个未加鉴权的生成服务暴露在公网。

第六,涉及国漫 IP、角色版权、真人肖像的内容,发布前必须做合规审查。生成图不等于可随便使用,原角色设计、同人二创和商用之间有很大区别。

10. 总结与下一步

这个流程最值得尝试的点,是把“异人之下”这类国漫角色素材从手工制作变成可批量、可复现、可 API 化的工作流。你不需要一次搭建很复杂的节点图,先把文生图跑通,再逐步加入 LoRA 和 ControlNet。

最先应该验证的是角色一致性。如果你连基础的文生图都稳定,再加任务量只是脚本的事。最容易踩的坑集中在模型文件放错目录、ControlNet 版本不匹配、显存不足这三类,遇到问题先查终端的报错日志。

后续可以继续扩展的方向:接入图生视频工作流、训练自己的角色 LoRA、把生成服务封装成 Web API、结合人工审核流程做成半自动素材生产线。建议先保存本文的通用步骤,跑通最小工作流后再逐步加复杂度。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询