ComfyUI本体のAnimaLLLiteApplyとのノードID衝突を回避するためリネーム

ComfyUI本体がbeta版のAnima LLLiteノード(comfy_extras/nodes_model_patch.py の
AnimaLLLiteApply)を追加したことで、本ノードのIDが衝突し登録がスキップされる
ようになった(ComfyUIはビルトインとIDが重複するカスタムノードを黙って無視する)。

- ノードID / Pythonクラス名: AnimaLLLiteApply → AnimaLLLiteApply_sdscripts
- 表示名: "Apply Anima ControlNet-LLLite (sd-scripts)"
- READMEに破壊的変更の注意書きを追加(旧ワークフローはノードの置き直しが必要)
- 本体ノードは同じv2重みフォーマットのネイティブ再実装である旨もREADMEに記載

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
kohya-ss
2026-08-02 17:12:50 +09:00
co-authored by Claude Fable 5
parent 6701c8d6fc
commit 11273432f0
2 changed files with 34 additions and 5 deletions
+31 -2
View File
@@ -12,6 +12,34 @@ This is intended as a **minimal reference implementation**. Community nodes
with extra features (per-step scheduling, multi-cond, region masks, per-block
selection, …) are welcome and can build on this codebase.
## ⚠️ Breaking change: node renamed to `AnimaLLLiteApply_sdscripts`
ComfyUI core has added its own (beta) Anima LLLite node named
`AnimaLLLiteApply` (in `comfy_extras/nodes_model_patch.py`). ComfyUI silently
skips custom-node registrations whose node ID collides with a built-in one,
so this node's original ID `AnimaLLLiteApply` stopped loading. The node has
therefore been renamed:
* Node ID: `AnimaLLLiteApply` → **`AnimaLLLiteApply_sdscripts`**
* Display name: **"Apply Anima ControlNet-LLLite (sd-scripts)"**
**Existing workflows saved with the old node need to be fixed manually:**
the old node type now resolves to the built-in core node, which has a
different input signature (it takes a `MODEL_PATCH` from `ModelPatchLoader`
instead of loading the weights file directly, and has no `mask` /
`preserve_wrapper` inputs), so old workflows will fail validation. Delete
the old node, add **Apply Anima ControlNet-LLLite (sd-scripts)**, and
rewire it. There is unfortunately no way to keep the old ID as an alias
because the built-in node now owns it.
Note that the core node is a native reimplementation of the **same v2
weight format** this node loads (sd-scripts-trained checkpoints work with
both). The main practical differences: the core node loads weights from
`models/model_patches/` via `ModelPatchLoader` (this node reads from
`models/controlnet/`), integrates through ComfyUI's attention/MLP patch
hooks instead of a `model_function_wrapper`, and currently supports
single-frame (T=1) latents only.
## Install
Clone into `ComfyUI/custom_nodes/`:
@@ -25,7 +53,8 @@ Place LLLite weights (`.safetensors`) under `ComfyUI/models/controlnet/`.
## Node
**Apply Anima ControlNet-LLLite** (`loaders` category)
**Apply Anima ControlNet-LLLite (sd-scripts)** (`loaders` category, node ID
`AnimaLLLiteApply_sdscripts`)
| Input | Type | Notes |
|---|---|---|
@@ -70,7 +99,7 @@ silently substituting an empty mask.
### Cascading multiple LLLite nodes
Multiple **Apply Anima ControlNet-LLLite** nodes can be chained on the same
Multiple **Apply Anima ControlNet-LLLite (sd-scripts)** nodes can be chained on the same
`MODEL` to apply more than one LLLite at the same time (e.g. a pose LLLite
and a depth LLLite, or several inpaint LLLites with different conditions).
Just feed the output `MODEL` of one node into the `model` input of the next.
+3 -3
View File
@@ -119,7 +119,7 @@ def _build_inpaint_cond_image(rgb_pm1: torch.Tensor, mask01: torch.Tensor,
return torch.cat([rgb_pm1, mask_pm1], dim=1)
class AnimaLLLiteApply:
class AnimaLLLiteApply_sdscripts:
@classmethod
def INPUT_TYPES(cls):
return {
@@ -279,9 +279,9 @@ class AnimaLLLiteApply:
NODE_CLASS_MAPPINGS = {
"AnimaLLLiteApply": AnimaLLLiteApply,
"AnimaLLLiteApply_sdscripts": AnimaLLLiteApply_sdscripts,
}
NODE_DISPLAY_NAME_MAPPINGS = {
"AnimaLLLiteApply": "Apply Anima ControlNet-LLLite",
"AnimaLLLiteApply_sdscripts": "Apply Anima ControlNet-LLLite (sd-scripts)",
}