An all-in-one toolkit for Anima workflows in ComfyUI — batch LoRA loading, a Civitai-integrated local model manager, Danbooru search, prompt management, an output gallery, and batch-workflow utilities.
🇬🇧 English TL;DR — TK Toolkit (formerly “Anima Toolkit” — renamed 2026-09; same plugin, same registry id
anima-toolkit, publisher 时运tk /toki) is a ComfyUI custom-node pack plus a built-in web panel. It solves five everyday Anima/SD chores: LoRA management (batch apply, thumbnails, categorization, Civitai metadata & downloads), Civitai integration (match local files to models by SHA256, browse/explore, one-click download), prompt management (bilingual tag cards, translation, prompt library, Chinese tag autocomplete), Danbooru tools (tag search with filters, gallery, tag classifier), and output management (thumbnail gallery over yourComfyUI/output, PNG metadata parsing), on top of batch workflow utilities (chained multi-prompt generation, string routing, camera/pose presets). Keywords:comfyui·comfyui-custom-nodes·comfyui-manager·anima·lora·lora-manager·civitai·danbooru·prompt-manager·tag-autocomplete·chinese-tag-autocomplete·stable-diffusion·generative-ai·workflow-automation. The full documentation below is in Chinese (the primary author’s language). Machine-readable summary for AI agents:llms.txt.
![]()
# 方式一:ComfyUI-Manager 里搜索 “TK Toolkit”(节点 id anima-toolkit)
# 方式二:手动
cd ComfyUI/custom_nodes
git clone https://github.com/Ararararararaki/comfyui-anima-toolkit
# 然后重启 ComfyUI(改了 .py 必须重启)
anima-toolkit @ toki,显示名 TK Toolkit)requirements.txt(aiohttp / requests);可选依赖见 requirements-optional.txt。Not to be confused with / 别认错:
AnimaLoraToolkit、AnimaLoraAtelier是 训练 工具链 (YAML 配置训 LoRA/LoKr)。本项目 TK Toolkit 是 推理侧 工具包 —— 在 ComfyUI 里加载 / 管理 / 检索 LoRA,不做训练。
一个 ComfyUI 自定义节点 + 配套本地管理面板:批量挂 LoRA、可视化管理模型、解析返图参数、整理提示词。
当前发布版本: 2.13.1。
| 你常遇到的麻烦 | 本项目的解法 |
|---|---|
| 一次挂十几个 LoRA,手动改权重 | TK 批量 LoRA 加载器:面板挑/批量启用、权重 scrubbing、触发词自动输出 |
本地一堆 .safetensors 不知道是什么、缺预览图 |
本地 LoRA 管理:扫描 + SHA256 匹配 C 站,补预览图/作者/版本/下载,按底模与分类筛选 |
| 想找参考图、找画师风格 | TK D站画廊:Danbooru 标签搜索 + 分级/时间/评分/收藏筛选 + 瀑布流 + 随机发现 |
| 提示词散落各处、中英对照费劲 | Prompt 卡片库 / Prompt 库:中英对照卡片、翻译与校准为 D站规范标签、一键入库复用 |
| 出图后不知道参数、找不到历史图 | Outputs 图片管理:后端缩略图直出、PNG 参数索引、一键复制 Prompt / LoRA 标签 |
| 想一次跑一批不同提示词 | TK 批量提示词:多组提示词串行出图 + 每组独立机位 |
order:random 配质量地板,只出有人贴过的高分图,支持「换一批」并避开已看过的(池子见底会明确提示)。order 被错误地算作免费 metatag,导致「计数标签超限时自动移除排序」的分支与提示条变成死代码(对应回归测试自 2026-09-07 起一直失败)。现已修正为占 1 槽,并顺带修掉「搜索框残留的 rating:/-filetype: 与筛选面板重复拼词、白占计数槽」的问题。web/ 里放过备份文件,会被 ComfyUI 当扩展一起加载、重复注册。已把备份移出 web/,并在交接文档里立规矩。/anima/gallery/fresh(只 stat 文件名,不解析 PNG、不传 16.5MB 索引),并监听 ComfyUI 的 executed / execution_success 事件;不在 outputs 页面时也会在后台把新图准备好,切回来立即可见(旧实现只在窗口获焦/切页时扫描,隐藏时直接 return)。__init__.py 的 __version__ 现在运行时直接读根目录 VERSION,从根上消除「两处一起改」的漂移;tests/tools/ai_verify.py 新增版本一致性检查(VERSION / __version__ / README / CHANGELOG 任一不一致即 FAIL)。.github/workflows/ci.yml,contents: read、不写仓库、与提交 app/ 的 build-app.yml 完全分开):Python 编译 → ai_verify → 离线 pytest → JS 测试 → panel tsc → panel 构建,每个环节独立 step。tests/ 已按「正式回归 / 需要真实环境 / 一次性脚本 / 工具」分层,并新增一键入口 python tests/run_tests.py(本地跑的等于 CI 跑的那一套)。分层规则与踩坑见 tests/README.md。TK 相机控制 节点已退役,由 TK 可动素体相机 取代。旧工作流中的该节点会显示「缺失节点类型」,删除后改用素体相机即可(机位参数与输出端口语义一一对应,预设与权重算法同一套 CameraControlCore,无需重新调参)。overflow:hidden,浮层弹出即被裁切;现于展开时临时解除「浮层 → 滚动容器」之间所有祖先的裁剪,上方空间不足则自动翻转为向下展开。trigger_words 现在直接输出本节点已激活(权重非 0)LoRA 的触发词,文件缺失但被激活的 LoRA 也会带出;新增总开关「输出触发词」(工具栏勾选框),一键关闭后该输出为空字符串、LoRA 加载不受影响。触发词改由后端持久化解析(节点面板推送落盘),不再依赖面板是否推送过 bridge。 后缀)会抛 NameError——表现为 /anima/lora/info` 500(触发词永远取不到)、「验证标签」报错,并会让节点执行直接失败。已修复 + 补离线回归测试。<canvas>(10.4MB → 0.8MB);③ 新增节点级渲染裁剪模块(视口外节点跳过渲染 + 图层提升),实测每帧 Layerize −44%、平移帧时最高 −48%。工作流图容器 DOM 21001 → 12063。不想用时控制台执行 localStorage.setItem('tk_canvas_perf','0') 后刷新即可关闭。/anima/gallery/manifest)直出,打开页面即全部就位,点击即用;完整工作流/Prompt 点击时按需获取。首次打开自动建索引(约十几秒,仅一次),之后永久秒开。正向提示词提取覆盖 UI/API 双格式工作流(实测 99.7%)。/anima/thumb 直出 512px 高质量 WebP(落盘长期复用),单张从约 1.4MB 原图降为 30KB 级小图,滚动到哪立即加载;后端不可用时自动回退旧管线。Outputs · 浏览时点击无响应修复(2.6.0):元数据到位后改为逐卡增量同步,滚动浏览期间点击目录树、切换栏目即时响应(实测点击延迟 6ms、长任务 0 个)。
natural_language(前端显示「统一 Prompt」)可直接接普通 Prompt 或 Packer ALL_TAGS,自动识别已知 Tag 并分类;每一类可独立调整 0.05–2.0 权重,1.0 保持原样;旧工作流恢复出的 0 权重会自动修正为 1.0;支持“保留自然语言”开关;tag_bundle 仍兼容旧的分类包接法,正则/精准排除可单独作用于自然语言。面板底部新增「过滤诊断」栏:跑一次图后自动显示本次保留了哪些词、哪些词因为什么被丢掉(类别关闭 / tag_blacklist 命中 / 正则命中 / 未归类,各自分组),点类别名可直接开/关该类并就地重算 —— 关错类别时不用再猜。⚠️ 注意:旧 12 类全部关闭时不会启用自动分类(整段原样输出,等于不过滤),底栏会显式警告。data/prompt_library.json(并保留 .bak 回滚副本)。面板、TK Prompt Cards、TK Prompt Saver 共用这份镜像;清理浏览器站点数据、切换 localhost/127.0.0.1 或更新插件后,启动会自动恢复缺失条目。设置中的「导出全部数据」也包含 Prompt 库,导入按 ID 合并,不会用旧备份覆盖新条目。这组改动需要将插件目录更新到最新提交;其中 Python 节点输入 schema 的变化需要重启 ComfyUI,纯前端样式/脚本变化刷新浏览器即可。
把仓库放到 ComfyUI 的 custom_nodes 目录中:
cd ComfyUI/custom_nodes
git clone https://github.com/Ararararararaki/comfyui-anima-toolkit.git
然后通过绘世启动器重启 ComfyUI。仓库已经包含可直接使用的 app/ 面板构建产物,普通用户不需要安装 Node.js 或重新构建。
TK,所有本插件节点都放在 TK 根目录下,按用途分在 TK/loaders、TK/camera、TK/batch、TK/prompt、TK/image、TK/latent、TK/Danbooru 和 TK/text。http://localhost:8188/extensions/ComfyUI-Anima-Batch-LoRA/app/TK/loaders 中添加 TK 批量 LoRA 加载器,连接 MODEL,需要输出 CLIP 时再连接 CLIP。anima base/style.safetensors。浏览器不支持目录权限 API 时,工具箱会自动使用文件夹文件选择回退;Chrome/Edge 通过 localhost 访问时体验最完整。
所有节点都位于 ComfyUI 的 TK 根目录下:
TK/loaders: TK 批量 LoRA 加载器、TK 触发词。前者批量加载 <lora:name:weight> 标签,后者提取和整理触发词。TK/camera: TK 可动素体相机。用极简可动空壳素体作为角度参照,直接摆姿势出机位词(旧的 TK 相机控制 节点已退役)。TK/batch: TK 批量提示词注入。按提示词文件分组批量出图,支持独立机位和批次控制。TK/prompt: TK Prompt Cards、TK Prompt Saver、TK 光影提示词。管理提示词卡片、翻译与保存,并通过单一下拉框输出 Anima Base 光影预设。TK/image: TK 图像选择。在多路图像输入之间按策略选择并输出来源信息。TK/latent: TK 空Latent 图像。生成 Anima/Cosmos 5D 空 latent,支持宽高整体缩放、常用宽高比悬浮选择,以及以 1536px 标准长边生成具体尺寸。TK/Danbooru: TK D站画廊。按标签搜索、筛选、下载和输出 Danbooru 图片及元数据。TK/text: TK 文本合并、TK String Router、TK Danbooru Tag Getter。合并文本、切换字符串输入、选择和筛选 Danbooru 分类。每个模块的完整功能清单与操作细节见 功能详解文档

点「本地 LoRA」打开可视化浏览窗:递归显示 LoRA 根目录及子目录,直接看 C 站预览图,点图就加入节点,支持分类筛选、排序、批量勾选。

点「组」把常用组合存起来,一键切换(悬浮组名可预览组内 LoRA)。

批量把 LoRA 挂到节点上,全程可视化操作:
<lora:xxx:0.8> 标签(触发词组合)复制粘贴进 lora_syntax 文本框,立刻解析成列表,不需要在面板里逐个挑选.part 断点续传;重新提交同一 URL 会从已有部分继续
⚠️ 破坏性变更(本版):旧的 TK 相机控制 节点已退役移除,由本节点取代。 旧工作流里的该节点会显示为「缺失节点类型」,请删除后改用 TK 可动素体相机 (机位参数与输出端口一一对应,
camera_prompt/camera_meta语义不变)。
CameraControlCore 提示词算法(与旧节点同一套预设与权重语义);camera_meta 额外带 yaw、pitch、distance、roll、FOV 和完整姿势 JSON
Steam 风格界面,管理全部本地 LoRA:



管理画师风格标签:

点卡片上的「选择版本」直接展开版本列表,选哪个版本就下载哪个(两步操作,避免误触直接下载)。

浏览 C 站 LoRA(Anima 生态,下载量 > 250、赞/下载比 > 5%):
·
· 
本节列出配合作画的新节点(批量 LoRA 加载器见上面第 1 节)。
具体数量以实际注册为准(
python tests/tools/ai_verify.py会打印真实节点清单)—— 这里不写死数字:历史上删掉「TK 相机控制」后就出现过标题写”十一”、正文写”十二”的不一致。
input/prompts/ 提示词文件按组批量出图(一组 = 一张图);支持每页一组独立机位(相机: 行)、子目录分组、整批统一机位
prompt_id 精确追踪;节点面板实时显示进度,支持暂停 / 继续 / 失败重试 / 跳过单条 / 取消,绿对号直接看到每组产物文件名;批次清单持久化在 data/batches/,刷新页面或重启 ComfyUI 后可在节点上恢复未完成批次并重跑中断任务;点 ComfyUI 的 Queue 按钮或节点「开始批次」均可发起playwright(pip install playwright);未装时自动降级为直接请求并给出提示。standin)精确搜不到时会自动纠错成真实标签(如 standing)并重搜出图,搜索框直接按 回车 即可搜索,无需点「搜索」按钮。lora_syntax 直连批量 LoRA 节点、LLM 自动分类、PNG 解析、导出批词文件;②区输入联想使用 data/danbooru_tags_with_description_v3_modified.csv 与随包发布的 anima_alias_index.json,支持英文、中文角色名(如 望→nozomi (blue archive)、妃咲→kisaki (blue archive))、作品名带出该作品角色(如 碧蓝档案)和模糊匹配,结果按匹配级别与 D 站帖数排序;中文查询走预建索引并在插件加载时后台预热,毫秒级返回。插入时按 Anima 写法把下划线转空格,并默认把括号转义为 \(\)(ComfyUI 把裸括号当权重语法),可用②区工具栏的「括号转义」开关切回裸括号image_1 到 image_6 可作为预览图保存custom_tags 追加自定义光影标签,输出固定为带末尾英文逗号的 lighting_prompt STRING<lora:name:weight> 提取触发词(bridge 触发词优先,无记录时文件名兜底),支持手动追加、卡片编辑、一键复制TAG_BUNDLE,支持正则排除和精准 Tag 排除,输出清理去重后的 Tag String兼容性说明:权重控件的有效范围为
0.05–2.0;旧工作流若恢复出初始0,会自动按中性权重1.0处理,不会生成(tag:0)。
节点前端显示的「统一 Prompt」输入可直接接普通 Prompt、Packer 的 ALL_TAGS 或其他 STRING。勾选任一具体分类后,节点会按本机 Danbooru 数据库识别已知 Tag 并归类;未识别的句子由「保留自然语言」控制。分类按固定顺序合并,不需要填写 category_name。
每个分类行右侧的 × 数值是该分类的 Tag 权重,范围 0.05–2.0,步进 0.05;默认 1.0 时输出原始 Tag,例如设置「角色表情词」为 0.8 会输出 (smile:0.8).输入本身已经带权重时会与分类权重相乘,例如 (smile:1.2) × 0.5 输出 (smile:0.6).自然语言句子不会被分类权重包裹。旧工作流若把新增权重控件恢复成 0,节点会在加载/执行时按中性权重 1.0 处理,不会生成 (tag:0)。
如果上游已经提供 Packer 的「分类数据包」 (TAG_BUNDLE),仍可将其连接到兼容输入并直接按分类提取;旧工作流的双输入语义保持不变。新的单输入模式不需要同时连接两条线。
节点底部的「正则排除」使用不区分大小写的正则匹配;「精准排除」支持逗号或换行分隔,按不区分大小写的完整 Tag 匹配。筛选只作用于本节点输出,不会修改上游 TAG_BUNDLE。
节点的 tag_bundle 和 natural_language 都是可选输入。单输入时只需把普通 Prompt 或 ALL_TAGS 接到 natural_language(前端显示「统一 Prompt」);勾选具体分类启用自动分类,「保留自然语言」决定未知句子是否附在分类结果后。默认应用正则/精准排除,并可单独关闭「过滤自然语言」。
在 TK/prompt 中添加 TK 光影提示词,平时只需切换一个“分类|预设”下拉框,再把 lighting_prompt 接到 TK 文本合并、CLIP 文本编码或其他正向提示词流程。默认“通用|平衡柔光”用于亮/暗、室内/室外和图生图场景,不指定太阳、月亮、窗户、霓虹或主光方向。
节点提供 4 个完全通用预设,以及室内、室外、时段、夜景、方向和氛围专用预设。高级用法可打开“启用追加”并在 custom_tags 中写入逗号或换行分隔的额外光影 tag;节点会去空、去重并统一输出成 tag1, tag2, tag3,,不会附加预设名称、质量词或画风词。为避免给 Anima 制造无效权重语法,本节点不提供数值强度滑块,强弱差异由经过审视的预设本身表达。
将其他 STRING 节点连接到 prompt_1 到 prompt_6,将对应预览图连接到 image_1 到 image_6,在节点内选择单选或多选、设置每路显示名称和 Prompt 库分类。节点执行时会自动保存已开启且非空的输入;多选时每路保存为一条独立 Prompt,对应图像会作为该条 Prompt 的预览图,不需要额外保存按钮。保存内容使用 TK Toolkit 与 TK Prompt Cards 共用的 anima-lora Prompt 库,可在工具箱查看,也可在 TK Prompt Cards 的①区读取并调用。
节点内每一行对应一个固定输入接口。多选模式下,拖动行左侧的 ⠿ 把手到另一行即可交换输出顺序,不需要拆线或重新连接;顺序保存在工作流的隐藏配置中,旧工作流默认使用 1 → 6 的原顺序。单选模式的选中接口仍按原输入编号保存,不会因重排而改变。
每行下方会显示当前连线源节点的标题和输出名称(例如 TK Text Join · text),连接或断开后自动刷新。默认优先读取画布上显示的自定义节点名,也可在“名称”下拉框切换为原始节点名;名称框留空时使用该动态标签作为提示,填写后则作为本节点内的自定义别名。拖拽中会显示占位高亮和短过渡动画,用于确认落点。

新增 TK 服装抽卡 节点直接读取同一浏览器中的 clothing-db 服装库。节点支持按全部/收藏/分类随机抽取一张服装卡,也可打开类似 LoRA 浏览器的图片网格手动选择。节点内显示服装图片、名称、分类和完整提示词,输出 服装提示词、服装名称、服装分类 与 服装数据 四路 STRING。
服装名称复用卡片库已有的 name 字段,节点内重命名会同步写回工具箱。图片仅作为节点和选择弹窗预览,不会默认编码进工作流或输出为 IMAGE,以避免本地图片 Blob 让工作流膨胀。随机抽取使用种子稳定复现;修改工具箱服装后在节点点击「刷新库」。工具箱与 ComfyUI 必须使用同一个浏览器配置和同一个地址/端口打开,否则浏览器会把 IndexedDB 视为不同数据源。

TK Prompt Batch(批量提示词注入) 读本地提示词文件按组批量出图:一组 = 一张图,批量由服务端批任务控制器按组顺序执行(一组跑完才入队下一组),不依赖浏览器常驻。提示词文件放 ComfyUI 的 input/prompts/ 目录,格式:
## 组1 · 单人日常 · 教室窗前
masterpiece, best quality, score_9, year 2025, highres, safe, 1girl, [角色], [系列], [通用标签...]
相机: from the side, low angle # 可选:该组的机位
## 组2 · 双人 · 海边黄昏
masterpiece, best quality, score_9, year 2025, highres, safe, 2girls, [角色A], [角色B], [系列], [通用标签...]
## 组N · 标题 / 【N】标题 / 01 序号 三种;# 开头是注释;组内可写 相机: 行(不计入提示词)。让 AI 帮你写这种文件:仓库自带配套 skill skill/anima-prompt-writer/SKILL.md(标准正向撰写,SFW 安全版)。它按固定标签顺序(质量→美学→时代→meta→安全→人数→角色→系列→画师@→通用)+ 一段空间构图句写正片,并自动落到 input/prompts/ 的正确目录与格式——没有数据集,以规则为唯一标准。
安装:把 skill/anima-prompt-writer 目录复制到你所用 AI 的 skills 目录(如 Claude Code 的 ~/.claude/skills/ 或 DSH 的 ~/.dsh/skills/),之后让 AI「写提示词」即可。
把仓库克隆到 ComfyUI 的 custom_nodes 目录:
cd ComfyUI/custom_nodes
git clone https://github.com/Ararararararaki/comfyui-anima-toolkit.git
然后通过绘世启动器重启 ComfyUI。app 目录已经预先构建好,不用装依赖也不用重新构建,克隆完就能用。
Prompt Cards 的「翻译状态」中可以选择翻译源,当前统一支持本地词典、DeepLX、百度翻译、MyMemory、Google 和通义。需要联网翻译的入口(包括 Outputs 的 PNG Prompt 翻译)复用同一套 /api/translate 路由。
百度翻译在 Prompt Cards 的「翻译状态 → 百度设置」中配置,需要百度开发者信息中的 APPID + API Key,并可选择机器翻译(nmt)或大模型翻译(llm),以及术语库干预。百度配置仅保存到本机 data/translation_providers.json,该文件已加入 Git 忽略,不会随仓库提交;官方接口细节见百度大模型文本翻译 API 文档。
TK 批量 LoRA 加载器的「更新」按钮会在节点加载后检查一次,之后每 5 分钟复查一次。手动点击「更新」会立即强制检查;检查的不只是 VERSION,还包括 GitHub main 的提交和发布文件指纹,因此同一版本号下的代码推送也能被发现。
发现更新后点击「一键更新」,后端会从 GitHub 下载更新 ZIP,完整下载并校验目录结构后,只覆盖插件发布文件(__init__.py、anima_*.py、web/、app/ 等)。更新过程不会删除或覆盖 data/(包括 Prompt 库镜像及其 .bak)、模型、input/、outputs/、凭据和用户配置;校验失败也不会替换现有文件。
更新完成后必须使用绘世启动器重启 ComfyUI,再在浏览器按 Ctrl + Shift + R 强制刷新。关闭节点窗口或浏览器不会影响更新请求,但结束 ComfyUI 进程会中断正在下载的更新包。
如果「一键更新」因网络、权限或运行目录不可写而失败,可使用下面的手动方式:
Git 安装: 在 custom_nodes/ComfyUI-Anima-Batch-LoRA 目录执行 git pull
ZIP 安装: 下载 GitHub → Code → Download ZIP,将 ZIP 内层的仓库内容覆盖到
ComfyUI/custom_nodes/ComfyUI-Anima-Batch-LoRA
ZIP 安装后必须确认 custom_nodes/ComfyUI-Anima-Batch-LoRA/__init__.py 直接存在,不能多套一层 仓库名-main/ 目录。更新和手动覆盖都完成后,仍需通过绘世启动器重启 ComfyUI。
完整版本记录见 CHANGELOG.md。最近的 2.3.0 推送主要包含:
f83d00e: LoRA 浏览和面板扫描递归读取子目录,并保留相对路径,避免不同目录下的同名 LoRA 混淆。ad3b2b8: 本地工具箱新增「子目录建分类」,按一级目录名称创建/复用分类并批量归类对应 LoRA。/ 相对路径,Windows 和 Linux 工作流命名保持一致。app 目录是构建产物,日常使用不用管它。改面板源码后需要重建:
cd panel
npm install
npm run build:comfyui # 类型检查 → 打包 → 部署到 ../app
开发模式用 cd panel && npm run dev(Vite 热更新,接口代理到本地 ComfyUI)。推送到 panel 目录的改动由 GitHub Actions 自动重建 app。
ComfyUI-Anima-Batch-LoRA/
├── __init__.py # 后端接口(/anima/*,存元数据)
├── anima_batch_lora.py # 节点逻辑
├── web/js/ # 节点前端(不用构建)
├── app/ # 面板构建产物(克隆即用,别手改)
├── panel/ # 面板源码(Vite + TypeScript)
├── skill/ # 配套 AI skill(anima-prompt-writer 标准正向撰写)
├── screenshots/ # 截图
└── .github/workflows/ # 自动构建 app