104 lines
12 KiB
Markdown
104 lines
12 KiB
Markdown
# ComfyUI 与 LoRA:一手资料研究笔记
|
||
|
||
资料核对:2026-10-28。用于主手册融合;本文件不代表模型推荐榜,也不要求改动已稳定运行的服务器。以下基础事实来自官方文档、官方代码和原始论文;对连续剧制作的选择建议另标为工作方法。
|
||
|
||
## 1. 初学者先分清的几件事
|
||
|
||
| 名称 | 通俗解释 | 容易混淆的地方 |
|
||
|---|---|---|
|
||
| ComfyUI | 把模型、输入、处理步骤和保存步骤连起来的执行环境 | 安装了软件,不等于已经安装模型或某个作者的节点包 |
|
||
| Workflow / 工作流 | 一套节点、连线、参数组成的制作配方 | JSON 通常不打包大模型、参考图和 Python 依赖 |
|
||
| Node / 节点 | 完成一项操作的模块,例如加载、编码、采样、解码、保存 | 节点包是程序;模型是权重文件;二者缺失的修法不同 |
|
||
| Link / 连线 | 把上一节点输出的数据交给下一节点 | 必须匹配类型;MODEL、CLIP、VAE、CONDITIONING、LATENT、IMAGE、AUDIO 不能任意互接 |
|
||
| 主模型 | 负责主要生成能力的权重;可能是 UNet 或 Transformer 等结构 | Checkpoint 有时打包多个组件;分体流程则单独加载主模型、编码器、VAE |
|
||
| 文本编码器 | 把文字变成模型使用的条件表示 | ComfyUI 里名为 CLIP 的接口不表示每个新模型底下都使用原版 CLIP;以模型模板为准 |
|
||
| Latent / 潜变量 | 模型内部处理的压缩表示 | 它还不是可以观看的普通图片或可播放的音频 |
|
||
| VAE | 在像素/波形与潜表示之间进行模型所需转换的组件 | 要与模型家族及任务匹配;视频 VAE 与音频 VAE 的职责也不同 |
|
||
| LoRA | 在基模之上加载的轻量适配权重 | 它依赖基模,通常不是一个可独立完成生成的完整模型 |
|
||
|
||
依据:[工作流概念](https://docs.comfy.org/basic-concepts/workflow)、[节点与数据类型](https://docs.comfy.org/basic-concepts/nodes)、[模型与加载器](https://docs.comfy.org/basic-concepts/models)、[ComfyUI 官方节点代码](https://raw.githubusercontent.com/Comfy-Org/ComfyUI/master/nodes.py)。表中通俗比喻是对这些概念的教学归纳。
|
||
|
||
## 2. LoRA 到底是什么
|
||
|
||
LoRA 全称为 **Low-Rank Adaptation(低秩适配)**。原始方法在冻结预训练权重的情况下,训练较小的低秩更新;可以简化理解为 `最终权重 = 原基模权重 + 缩放后的适配更新`。它减少需要训练的参数,便于保存、共享与切换某种适配能力,不能把“文件更小”理解成“不需要加载基模”。[原始论文](https://arxiv.org/abs/2106.09685)、[Diffusers LoRA 训练说明](https://huggingface.co/docs/diffusers/training/lora)。
|
||
|
||
### 用途要分开看
|
||
|
||
| 常见称呼 | 在生产中想解决什么 | 不应期待的事情 |
|
||
|---|---|---|
|
||
| 人物 / 角色 LoRA | 让模型更容易生成某个人物特征或概念 | 不能保证每个角度、每帧、每集的脸、衣服、道具全部一致 |
|
||
| 风格 LoRA | 影响画风、材质、色彩或某类视觉表现 | 风格相同不等于故事连续、构图正确 |
|
||
| 动作 / 运镜 LoRA | 在支持的模型中学习某类运动倾向或镜头行为 | 不等于精确三维动作、碰撞或走位控制 |
|
||
| 蒸馏 / 加速 LoRA | 配合特定采样流程,用较少步数完成生成 | 它不等于训练了主演,也不意味着任意模型都能直接改成 4 步 |
|
||
|
||
这些是按用途作的分类,不是四种彼此隔离的文件格式。角色与风格能力取决于数据和训练目标;LCM-LoRA 官方教程还示范了加速适配与风格/运动适配的组合。其配套 scheduler、guidance 和步数有特定要求,这正说明“下载 LoRA 后只改步数”不是可靠方法。[LCM-LoRA 官方说明](https://huggingface.co/docs/diffusers/main/en/using-diffusers/inference_with_lcm_lora)。
|
||
|
||
### 加载前做这六项核对
|
||
|
||
1. **基模/架构**:SD1.5、SDXL、FLUX、某视频模型的适配权重不要凭相同扩展名混用。
|
||
2. **精确版本和任务**:确认作者支持的模型版本、文本生图/图生视频等任务及加载器。
|
||
3. **作用对象**:普通 Load LoRA 可连接 MODEL 与 CLIP;ModelOnly 变体只修改 MODEL,按模板使用。
|
||
4. **触发词与使用约束**:若模型卡要求某个触发词、分辨率或专用工作流,应一起记录。
|
||
5. **强度**:`strength_model` / `strength_clip` 是影响程度,不是画质分数。不存在适用于所有 LoRA 的 0.8 或 1.0。
|
||
6. **组合**:先验证单个适配,再逐个增加,保留同 seed、同输入的对照;多种适配可能相互影响。
|
||
|
||
通用 ComfyUI LoRA 常放在 `models/loras`,通过匹配的加载节点选择;实际目录也可能由 `extra_model_paths.yaml` 配置。具体加载行为见 [ComfyUI LoRA 教程](https://docs.comfy.org/tutorials/basic/lora) 与 [Diffusers adapters 管理](https://huggingface.co/docs/diffusers/api/loaders/lora)。兼容性和具体配套值最终以该模型/LoRA 的官方模型卡和已验证模板为准。
|
||
|
||
**连续剧工作方法**:先用角色参考图、多角度资产、统一服装与人物状态表验证能否稳定制作,再决定是否值得训练人物 LoRA。视觉人物 LoRA 不等同于配音声线资产;长期声音一致性要按音频模型和参考音频流程另外设计。不要用 LoRA 代替逐镜检查。
|
||
|
||
## 3. 参数怎样看,哪些不能照抄
|
||
|
||
| 参数 | 控制什么 | 实际调试方法 |
|
||
|---|---|---|
|
||
| Seed / 随机种子 | 生成噪声的随机来源之一 | 对照时固定,选片后记录;它不是角色身份证 |
|
||
| Steps / 步数 | 采样迭代的数量 | 遵循基模/蒸馏方案推荐;不是越大必然越好 |
|
||
| Sampler / 采样器 | 每步怎样推进采样 | 与调度器、模型配套,先沿用已验证模板 |
|
||
| Scheduler / 调度器 | 各步噪声水平如何安排 | 和 sampler 是两件事,不要只改其中一个后认为结果必然等价 |
|
||
| CFG / guidance | 某些流程里条件引导的强度 | 过高可能破坏质量;不同模型的机制和适用值不同 |
|
||
| Denoise / 去噪强度 | 常见潜空间图生图流程里重做输入的程度 | 在这类流程里较低值通常保留更多输入结构;不等于所有视频模型的参考图权重 |
|
||
| Width / Height | 输出尺寸 | 影响构图、显存和速度;遵循该模型尺寸规则 |
|
||
| Frames / FPS | 帧数与播放帧率 | 时长通常由帧数/FPS决定;某些模型要求特定帧数网格,先查模板 |
|
||
|
||
采样概念以 [KSampler 官方接口](https://docs.comfy.org/built-in-nodes/KSampler) 和 [官方实现](https://raw.githubusercontent.com/Comfy-Org/ComfyUI/master/nodes.py) 为依据。注意该节点文档个别简化说明不够严谨:代码 tooltip 明确指出较低 denoise 会更多保留初始图像结构;不要照抄相反表述。表里的调参顺序是生产建议,不是官方通用数值处方。
|
||
|
||
**H3 特别提醒**:本项目用 `BasicGuider` 与自定义采样链,不能照搬 SD 经典 KSampler 的“正向+负向+CFG 7”结构。BasicGuider 的公开输入是 MODEL 和 CONDITIONING,并无同样的 CFG/negative 输入。8 步、4 步、`res_multistep/simple` 等应作为本机已验证方案记录,不能推广成其他模型的通用配置。[BasicGuider 接口](https://docs.comfy.org/built-in-nodes/BasicGuider)。
|
||
|
||
**复现边界**:保留 seed 很有用,但还要保留模型哈希、软件/节点版本、输入文件、尺寸、采样参数。PyTorch 官方明确指出不同版本、平台甚至 CPU/GPU 间不保证完全相同结果;因此不要承诺“同 seed 必然逐像素重现”。[PyTorch 可复现性说明](https://docs.pytorch.org/docs/2.14/notes/randomness.html)。
|
||
|
||
## 4. GUI 工作流、API 工作流和素材是什么关系
|
||
|
||
- **GUI JSON** 主要保存画布中的节点、连线、位置、控件及组织信息;适合人打开和修改。
|
||
- **API prompt JSON** 以节点 ID、`class_type`、`inputs` 及输出引用表达执行图;适合脚本提交。文件名里的 `.api.json` 是本项目的命名约定,判断格式应看内容。
|
||
- **模型权重、节点代码、输入素材** 是另外的依赖。把一份 JSON 发给别人,不能保证对方马上运行。
|
||
- 部分 ComfyUI 生成图能携带工作流元数据,保留元数据时可拖回画布。普通参考图、被平台重新压缩或去除元数据的图片不保证能恢复节点。
|
||
|
||
依据:[GUI JSON 规范](https://docs.comfy.org/specs/workflow_json)、[官方 API 示例](https://raw.githubusercontent.com/Comfy-Org/ComfyUI/master/script_examples/basic_api_example.py)、[官方入门的导入/导出说明](https://docs.comfy.org/get_started/first_generation)。
|
||
|
||
自动化的基本链为:上传素材 → 提交 `/prompt` → 保存 `prompt_id` → 查队列/历史或接收 WebSocket 事件 → 下载实际输出 → 做内容与技术检查。HTTP 返回成功或任务执行成功,只代表执行层面,应另外确认成片文件、时长、声音和内容是否可交付。[官方服务器 routes](https://docs.comfy.org/development/comfyui-server/comms_routes)、[官方服务器消息](https://docs.comfy.org/development/comfyui-server/comms_messages)。
|
||
|
||
## 5. 常见问题,先分清再修
|
||
|
||
| 现象 | 优先判断 | 动作 |
|
||
|---|---|---|
|
||
| 缺失节点、红色节点 | 核心版本太旧,或自定义节点未装/导入失败 | 核对节点来源及启动日志;按作者要求安装到正确 Python 环境 |
|
||
| `model not in list` / 下拉列表没有文件 | 文件不在搜索目录、名字不对或列表未刷新 | 核对精确文件名、子目录和额外路径,再刷新;不要随便选同后缀替代品 |
|
||
| tensor shape / channel mismatch | 主模型、VAE、编码器或控制组件不匹配 | 回到同一模型的完整官方模板验证组合 |
|
||
| CUDA OOM | 此尺寸/帧数/批量或模型组件超出当前可用显存 | 先缩小测试尺寸/帧数/批量,查看是否其他任务占显存;再按模型支持的量化/offload策略处理 |
|
||
| 更新后坏了 | 节点前端或 Python 依赖冲突 | 使用隔离备份环境定位;官方建议可禁用自定义节点并二分查找 |
|
||
| 任务成功但找不到交付文件 | 保存节点、保存路径或下载环节未完成 | 查看具体输出记录与文件,不只看任务绿色状态 |
|
||
|
||
依据:[模型问题排查](https://docs.comfy.org/troubleshooting/model-issues)、[自定义节点问题排查](https://docs.comfy.org/troubleshooting/custom-node-issues)。表中的逐项先后顺序为工作建议。
|
||
|
||
连续剧项目中,正式批量前先通过一个含对白、角色和关键道具的短测试;锁住通过的模型/节点/参数版本,另存新版本试验,避免制作中途整套环境一起更新。共享服务器上处理显存和依赖时,要避开别人的运行任务,保留原工作流与错误记录。
|
||
|
||
## 6. 建议主手册明确写出的边界
|
||
|
||
- 角色参考、人物 LoRA、ControlNet、声线参考分别解决不同问题;不要合称一个“一致性插件”。
|
||
- 蒸馏加速 LoRA 的“步数配套”与人物 LoRA 的“学会人物特征”是两件事。
|
||
- 图像模型训练的人物 LoRA 不能默认直接塞到视频模型里;先核对架构与作者支持。
|
||
- 文件能加载、节点能连上、作业能完成,都还没有证明画面内容、台词、人物或剪辑合格。
|
||
- 不要把网上示例数字(CFG 7、LoRA 0.8、20 steps 等)整理成所有模型的必填标准。
|
||
- 某些官方自动生成节点页也可能有过度简化;重要数值以该模型版本的官方代码/模型卡与本机实际输出为准。例如本项目 H3 原生音频实测 32kHz,不应照抄其他页面的统一 44.1kHz 声明。
|
||
|
||
以上“制作边界”是对一手技术资料和本项目做法的工程归纳,应在主手册中与厂商功能承诺分开表述。
|