YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Misaki 本地节点插件₍ᐢ.ˬ.ᐢ₎♡~
ComfyUI 效率工具插件,内置 6 个节点,围绕「批量出图 / 图像加载保存 / 尺寸对齐 / 视频参数」这一条链路设计。
本仓库不含任何模型权重,只包含插件代码。所有大模型请自行放入 ComfyUI 的
models/对应目录。
节点总览
| 显示名 | 节点类 | 分类 | 一句话 |
|---|---|---|---|
| Misaki的专属效率节点(ˊᗜˋ) | MisakiEfficiencyNode |
₍ᐢ.ˬ.ᐢ₎♡~Misaki/效率节点 |
checkpoint/UNet、双 CLIP、VAE、15 个 LoRA、空白潜空间、正负提示词合并成一个节点 |
| 文本多行加载₍ᐢ.ˬ.ᐢ₎♡~ | MisakiMultiLineTextLoader |
₍ᐢ.ˬ.ᐢ₎♡~Misaki/文本加载 |
多行文本逐条加载,配合自动循环批量出图 |
| misaki图像加载 ✞ᐢ•̥ ̫ •̥ᐢ✞ | MisakiImageLoader |
Misaki |
单张上传 / 文件夹图集双模式加载 + 尺寸对齐缩放 + 自动逐张循环 |
| misaki图像保存(*´꒳`人) | MisakiImageSaver |
Misaki |
双输入 + 可选保存 + 元数据开关 + 左右对比预览 + 图像直通 |
| 图像尺寸恢复ʕっ•ᴥ•ʔっ♥ | MisakiImageSizeRestore |
Misaki |
把尺寸取整到 8/16/32/64 的倍数,输出图像与最终宽高 |
| misaki快速视频分辨率( ˘ω˘ ) | MisakiQuickVideoResolution |
₍ᐢ.ˬ.ᐢ₎♡~Misaki/视频工具 |
快速算出视频分辨率与时长(MiniMax H3 等) |
1. Misaki的专属效率节点(ˊᗜˋ)
把以下节点合并为一个:CheckpointLoader + UNETLoader + CLIPLoader/DualCLIPLoader + VAELoader + LoraLoader×15 + CLIPTextEncode(正/负)+ EmptyLatentImage。
输入
| 输入 | 说明 |
|---|---|
| checkpoint大模型 | 完整大模型(models/checkpoints),默认「无」;选「无」时用下方 UNet 拆分加载,两者同时选则以 checkpoint 为准 |
| UNet模型 | 扩散模型(models/diffusion_models 与 models/unet),默认「无」 |
| CLIP1 / CLIP2 | 文本编码器(models/text_encoders 与 models/clip),默认「无」;CLIP2 选「无」时只用 CLIP1 编码 |
| CLIP类型 | 文本编码器组合类型,默认「无」(按 stable_diffusion 默认方式加载)。双 CLIP 模型用 sdxl / sd3 / flux / flux2 等,单文本编码器模型用 krea2 / minimax / joyimage / mage 等,共 36 个可选 |
| VAE模型 | VAE 模型(models/vae),默认「无」;选 checkpoint 时留空会自动用大模型自带 VAE,选 UNet 时必选 |
| 音频VAE | 音频 VAE(models/vae),默认「无」。MiniMax 双 VAE 用法:主 VAE 解码画面、音频 VAE 解码声音;选「无」时输出主 VAE |
| 预设分辨率 | 空白潜空间(空画布)的分辨率,**默认 1024x1024(方形 1:1)**。预设 18 档(512×512 ~ 1792×768,含方形 1:1 / 竖屏 2:3、3:4、9:16 / 横屏 3:2、4:3、16:9、21:9),再加「自定义」用下方宽高 |
| 批量大小 | 空白潜空间的批量,1 ~ 64,默认 1 |
| 自定义宽度 / 自定义高度 | 预设分辨率选「自定义」时生效,16 ~ 8192(步长 8),默认 1024 |
| 正面提示词 | 多行正向提示词(也可直接连线 STRING 文本);各 LoRA 的触发词会按 LoRA1→15 的顺序加到最前面 |
| 负面提示词 | 多行负向提示词;留空时输出零化条件(鼠标悬停有提示) |
| LoRA1 ~ LoRA15 / 强度1 ~ 强度15 | 可选。LoRA 最多叠加 15 个,填一个自动追加下一栏;强度滑块 -6 ~ 10(默认 1.0,步长 0.01),同时作用于模型与 CLIP,LoRA 选「无」时该强度栏自动隐藏并重置为 1.0 |
⚠️ 图像输入已移除:本节点不再接受图像输入,潜空间始终按「预设分辨率 / 自定义宽高 + 批量大小」生成空白画布。旧工作流里残留的图像连线不生效;旧版的分辨率值(纯 WxH 或「无(跟随输入图像尺寸)」)会被前端自动迁移到新选项。
LoRA 触发词预设(提示词预设)
- 右键点击任意 LoRA 下拉框 → 弹出「提示词预设」对话框,包含两个输入框:触发词、LoRA 作用介绍。
- 输入完退出即自动保存:点「保存并关闭」、右上角 ✕、按 Esc 或点对话框外空白处,都会自动保存到本地:
models/提示词预设/<LoRA文件名>.txt(换 LoRA 时自动读取对应文件的预设)。 - 对话框里可点「导入 txt 文档」直接导入本地触发词文档。
- 执行时自动导入触发词:把已选 LoRA 的触发词自动拼接到正面提示词末尾,无需手动填写。
- 没有触发词就不自动填入:只有预设文件里
[触发词]段落的内容才会被追加;没有预设、或触发词段落为空时,正面提示词保持原样,不会被填入任何内容(作用介绍等也不会被误当触发词)。 - 预设文件格式(也可手工编辑):
[触发词]
word1, word2, word3
[作用介绍]
这个 LoRA 的作用是……
加载逻辑
- 选 checkpoint:模型 / CLIP / VAE 自动来自大模型;VAE、CLIP1/CLIP2、音频VAE、LoRA 均可按需覆盖。
- 选 UNet:必须选 VAE 和至少一个 CLIP(单选 CLIP1 或双选 CLIP1+CLIP2)。
- 什么都不选会给出中文报错提示。
- LoRA 按 LoRA1 → LoRA15 依次叠加,强度 -6 ~ 10,可正可负,同时作用于模型与 CLIP。
- 潜空间始终是空白画布,按「预设分辨率(或自定义宽高)+ 批量大小」生成。
- 模型在进程内按「文件路径 + 修改时间」缓存复用,替换模型文件后下次执行自动重新加载。
输出
| 输出 | 说明 |
|---|---|
| 模型 | 应用了所有 LoRA 的扩散模型(MODEL) |
| CLIP | 应用了所有 LoRA 的文本编码器(CLIP),可连到外部 CLIPTextEncode 等节点自定条件 |
| 正面条件 | 正面提示词(含 LoRA 触发词)编码条件(CONDITIONING) |
| 负面条件 | 负面提示词编码条件;留空时为零化条件(CONDITIONING) |
| VAE | 使用的 VAE 对象 |
| 潜空间 | 按「预设分辨率(或自定义宽高)+ 批量大小」生成的空白潜空间(LATENT) |
| 音频VAE | MiniMax 双 VAE 用法(主 VAE 解码画面、音频 VAE 解码声音);选「无」时输出主 VAE |
实时模型列表
- 所有模型下拉框实时读取本地
models目录(checkpoints / diffusion_models / text_encoders / vae / loras)。 - 往对应文件夹里放入新模型后,无需刷新页面:新建节点、加载工作流或再次执行时下拉框都会自动更新;执行时后端也会重新校验列表。
- 文件按「路径 + 修改时间」缓存,模型文件被替换后下次执行自动重新加载。
- 旧版工作流里的纯 WxH 分辨率值与已废弃的「无(跟随输入图像尺寸)」选项,都会被前端自动迁移到带比例备注的新选项;当前默认是
1024x1024(方形 1:1)。
使用方法
- 重启 ComfyUI,在搜索框输入「Misaki」添加节点。
- 二选一:选择 checkpoint 大模型;或选择 UNet + VAE + CLIP1(可加 CLIP2)。
- 可选:填 LoRA1(会自动追加下一栏,最多 15 个),右键 LoRA 可编辑触发词预设。
- 输入正面 / 负面提示词(负面可留空)。
- 把「模型」「正面条件」「负面条件」接到采样器,VAE 和潜空间按需使用;不想用节点内置正/负面条件时,把「CLIP」输出连到外部 CLIPTextEncode 自行编码。
- 潜空间由本节点直接生成空白画布(「预设分辨率」或「自定义宽高」+「批量大小」),接到采样器即可,不需要再接 EmptyLatentImage。
2. 文本多行加载₍ᐢ.ˬ.ᐢ₎♡~
批量出图神器:把多行文本逐条加载,配合「自动循环」逐行推进,实现一条工作流批量生成不同提示词的图片。
- 与「misaki图像加载」的自动循环搭配时是图外层 × 文本内层:图1文本1..N → 图2文本1..N …,全部跑完自动停。
- 两个自动循环都由服务端排队驱动:排完队之后即使关掉浏览器页面,也会继续跑完(前端自续跑已关闭,避免浏览器与服务端两边排队导致队列翻倍)。
输入
| 输入 | 说明 |
|---|---|
| text | 多行提示词,一行一条 |
| 过滤空白行 | 勾选后忽略空行和仅含空白字符的行(\n),行数统计更干净 |
| 自动循环 | 勾选后由服务端自动逐行推进(每跑完一行就自己排下一轮,把「当前行号」+1),跑完最后一行停止、把接力棒交回图像加载节点换图 |
| 当前行号 | 当前读取的行索引(从 0 开始),自动循环时由服务端排队自动更新;手动改可单独测试某一行(此时建议关闭自动循环) |
输出
当前行文本 / 总行数 / 当前行号
- 零依赖:后端只用 Python 标准库,不依赖任何第三方包,任何 Python 3 环境都能加载运行(含 ComfyUI 内置 Python)。
使用方法
- 重启 ComfyUI,在搜索框输入「文本多行加载」添加节点。
- 在 text 框里输入多行提示词,每行一条。
- 勾选「自动循环」(可选勾选「过滤空白行」)。
- 把「当前行文本」输出连到下游节点(可选,用于查看/联动),点执行即可自动逐行跑完所有行。
- 手动改「当前行号」可单独测试某一行(此时建议关闭自动循环)。
3. misaki图像加载 ✞ᐢ•̥ ̫ •̥ᐢ✞(MisakiImageLoader)
双模式加载 + 多功能缩放处理,适配 SD/FLUX 尺寸对齐;支持文件夹图集逐张自动循环。
输入
| 输入 | 说明 |
|---|---|
| 加载模式 | 单张图像上传 / 文件夹图集加载,默认单张 |
| 选择图片 | 官方上传控件(上传后自动刷新下拉、显示缩略图)。选「无」时改用连进来的 image 输入(前面工作流的图);选了具体文件则读取该文件 |
| folder_path | 图集模式下的文件夹路径(相对 input 目录或绝对路径) |
| counter_index | 起始索引,默认 0 |
| 索引设置 | 固定(按 counter_index 取) / 随机 / 每次加1 / 每次减1,默认「每次加1」 |
| 宽高比 | original(跟随原图) / custom(用下方宽度高度) / 1:1、3:2、4:3、16:9、2:3、3:4、9:16 |
| 宽度 / 高度 | 「宽高比 = custom」时直接使用的像素尺寸(默认 1024×1024) |
| 适应 | letterbox(补边) / crop(裁剪) / fill(拉伸) |
| 方法 | 重采样算法:lanczos(默认)/ bicubic / hamming / bilinear / box / nearest |
| 四舍五入到倍数 | 输出尺寸对齐到 8/16/32/64/128/256 的倍数(默认 8,SD 系建议 8,FLUX 系常用 16/32) |
| 缩放至边 | None / Longest(长边) / Shortest(短边) / Width / Height |
| 缩放至长度 | 「缩放至边」不为 None 时的目标边长(默认 1024) |
| 背景颜色 | letterbox 补边颜色,默认 #000000 |
| 自动循环 | 开启后每执行一次就自动取「下一张还没跑过的」图片(给每张图打编号),跑过的不会再跑,全部跑完自动停止;重新提交一轮新任务时编号清零、从头再跑。关闭时按上方「索引设置」取图 |
输出
| 输出 | 说明 |
|---|---|
| IMAGE | 加载/处理后的图像 |
| MASK | 对应的掩码(透明通道) |
| width / height | 最终尺寸 |
| 数量 | 图集图片总数(接循环节点的 total 即可「按张数跑、跑完自动停」) |
| 剩余数量 | 本轮还剩几张没跑 |
行为要点
- 「索引设置 = 随机 / 每次加1 / 每次减1」是真正逐次生效的:连点两次运行就是两张不同的图(这三个模式下节点会强制重跑,不吃 ComfyUI 缓存);「固定」照旧走缓存。
- 自动循环是服务端循环:排完队之后即使关掉浏览器页面,也会继续把整个图集跑完。
- 免疫第三方「保险插件」劫持:本节点立了
_goohai_empty_image_loader标记,避免被Comfyui-Goohai_BugFixes之类的插件在「文件夹模式 + 选择图片=无」时误判成坏掉的加载器而整节点跳过。 - 与
forLoop类循环节点不要同时启用(两边都循环会让轮数相乘)。
4. misaki图像保存(*´꒳人)(MisakiImageSaver`)
双输入 + 可选保存 + 元数据开关 + 左右滑动对比预览 + 图像直通输出。
输入
| 输入 | 说明 |
|---|---|
| 文件名前缀 | 默认 ComfyUI,支持 %width%/%height% 等 ComfyUI 变量 |
| 子文件夹名称 | output 下的子目录,留空即 output 根目录(越界路径会被拒绝) |
| 格式 | png(默认) / jpeg / jpg / webp |
| 位深度 | 8-bit / 16-bit(16-bit 仅 png 生效,走 cv2 写出) |
| 输入色彩空间 | sRGB(默认) / Linear(线性光值会先做 EOTF 转换再存) |
| 执行保存图片 | 开启(默认)/ 关闭——关闭时跳过编码与写盘,只在右侧直接展示输入图 |
| 保存JSON信息 | 开启 / 关闭(默认关闭)——开启后 PNG/JPEG 内嵌工作流元数据,并额外写一份独立 .json |
| 图像 | 要保存的图像(可选) |
| 原图 | 用于左右对比的老图(可选;尺寸不同会等比缩放居中、黑边补足对齐) |
输出
图像:直通输出,保存后仍可继续接下游。- 节点底部显示「原图:W×H / 新图:W×H」。
本节点是
OUTPUT_NODE(工作流的输出节点),否则整条工作流会报「Prompt has no outputs」无法运行;同时也保留了数据输出端口。
5. 图像尺寸恢复ʕっ•ᴥ•ʔっ♥(MisakiImageSizeRestore)
把尺寸取整到指定倍数,常用于「采样尺寸 / 放大后尺寸」重新对齐到 8/16/32/64。
输入
| 输入 | 说明 |
|---|---|
| 图像 | 输入图像 |
| 取整方式 | 向下取整 / 四舍五入 / 向上取整(默认向上) |
| 缩放方式 | nearest-exact / bilinear / area / bicubic / lanczos(默认 lanczos,取不到时自动退回 bicubic) |
| 锁定倍速 | 对齐倍数:8(默认)/ 16 / 32 / 64 |
| 宽 / 高(可选) | 填了有效值(>0)时只对这两个数取整并输出,不缩放图像;留 0 则用图像自身尺寸并真正缩放图像 |
输出
图像/宽/高(节点上显示「取整前 → 取整后」预览)
6. misaki快速视频分辨率( ˘ω˘ )(MisakiQuickVideoResolution)
为 MiniMax H3 等视频生成服务快速算出分辨率与时长。
输入
| 输入 | 说明 |
|---|---|
| 宽高比 | 自定义 / 1:1 / 2:3 / 3:4 / 4:3 / 9:16 / 16:9(默认)/ 21:9 |
| 自定义比宽 / 自定义比高 | 宽高比选「自定义」时生效 |
| 分辨率 | 短边基准像素(默认 480),按所选比例自动算出另一边 |
| 锁定倍数 | 两边对齐到的倍数:8 / 16(默认)/ 32 / 64 |
| 帧率 | 16 / 24(默认)/ 30 / 60 |
| 视频秒数 | 目标时长(3s、10s、15s 等任意值),默认 2.0 |
输出
| 输出 | 说明 |
|---|---|
| 宽度 / 高度 | 按宽高比与锁定倍数算出的最终分辨率 |
| 视频秒数 | 按 H3 帧长公式自动对齐后的时长 |
| 帧率 | 所选的 fps(原样输出) |
H3 帧长公式:max(5, round(a*fps)) + (5 - (max(5, round(a*fps)) % 17)) % 17(结果 ≡ 5 mod 17)
安装
把整个插件文件夹放到 ComfyUI/custom_nodes/ 下,重启 ComfyUI 即可。
- 仅依赖 ComfyUI 自带环境(torch、numpy、Pillow 等),无需额外安装任何包;
- 唯一例外:图像保存节点选「16-bit PNG」时会用到
cv2(ComfyUI 环境通常已自带); - 本插件不包含也不需要任何模型权重。
自检
插件自带一个纯逻辑自检脚本(不需要启动 ComfyUI,也不需要显卡):
& <ComfyUI>\python_embeded\python.exe selftest_misaki.py
覆盖:缓存红线、服务端自动排队完整性、第三方插件劫持免疫、控件顺序与输出口红线、自动循环协同契约、交付卫生(临时文件 / BOM / 控制台编码 / 遗留测试实例)、前端 JS 的 ESM 语法。退出码 0 = 全绿。
另有一个参数化模式,可从 ComfyUI 日志重建「一次批量跑」的配对结构(哪张图配了哪几行文本、顺序对不对):
& <ComfyUI>\python_embeded\python.exe selftest_misaki.py --verify-log <日志路径>
目录结构
Misaki/
├─ __init__.py # 插件入口:注册节点 + 暴露 web 目录
├─ nodes/
│ ├─ __init__.py
│ ├─ efficiency_node.py # 效率节点(后端)
│ └─ multiline_text_loader.py # 文本多行加载(后端)
├─ misaki_image_loader.py # 图像加载(后端)
├─ misaki_image_saver.py # 图像保存(后端)
├─ misaki_image_size_restore.py # 图像尺寸恢复(后端)
├─ misaki_quick_video_resolution.py # 快速视频分辨率(后端)
├─ web/ # 前端扩展,每个节点一个 js
│ ├─ misaki_efficiency_node.js
│ ├─ misaki_image_loader.js
│ ├─ misaki_image_saver.js
│ ├─ misaki_image_size_restore.js
│ ├─ misaki_multiline_loader.js
│ └─ misaki_quick_video_resolution.js
├─ selftest_misaki.py # 自检脚本
├─ .gitignore
└─ README.md