Files

104 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 声明。
以上“制作边界”是对一手技术资料和本项目做法的工程归纳,应在主手册中与厂商功能承诺分开表述。