first commit
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
__pycache__/
|
||||
.vscode/
|
||||
@@ -1 +1,16 @@
|
||||
# ComfyUI-SimpleCounter
|
||||
# ComfyUI-SimpleCounter
|
||||
## 概要
|
||||
画像の順次読み込みを補助するシンプルなカスタムノードです。<br>
|
||||
以下のようにバッチ数を設定して使います。<br>
|
||||
<img src="sample.jpg"><br>
|
||||
|
||||
## 動作
|
||||
ノードはメニューの「utils」カテゴリーの中にいます。<br>
|
||||
バッチ実行中「start」に設定した値からカウントアップしていきます。<br>
|
||||
「Queue Prompt」を押すとカウントがリセットされます。<br>
|
||||
|
||||
## ライセンスとか
|
||||
配布や改変等ご自由にどうぞ。<br>
|
||||
|
||||
Python側はノードの定義のみ、全部JavaScript側で処理してます。<br>
|
||||
(バッチ開始を知る術が無かったので……)<br>
|
||||
@@ -0,0 +1,28 @@
|
||||
class SimpleCounter:
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"start": ("INT", {"default": 0, "min": 0, "step": 1}),
|
||||
"count": ("INT", {"default": 0, "min": 0, "step": 1}),
|
||||
}
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def IS_CHANGED(cls, **kwargs):
|
||||
return float("NaN")
|
||||
|
||||
RETURN_TYPES = ("INT",)
|
||||
RETURN_NAMES = ("index",)
|
||||
FUNCTION = "run"
|
||||
CATEGORY = "utils"
|
||||
|
||||
def run(self, start, count):
|
||||
return (count,)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
"Simple Counter": SimpleCounter
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
from .SimpleCounter import NODE_CLASS_MAPPINGS
|
||||
WEB_DIRECTORY = "./js"
|
||||
__all__ = ['NODE_CLASS_MAPPINGS','WEB_DIRECTORY']
|
||||
@@ -0,0 +1,21 @@
|
||||
import { app } from "../../scripts/app.js";
|
||||
import { api } from "../../scripts/api.js";
|
||||
|
||||
app.registerExtension({
|
||||
name: "SimpleCounter",
|
||||
async beforeRegisterNodeDef(nodeType, nodeData, app) {
|
||||
if (nodeData.name === "Simple Counter") {
|
||||
const origOnNodeCreated = nodeType.prototype.onNodeCreated;
|
||||
nodeType.prototype.onNodeCreated = function () {
|
||||
const r = origOnNodeCreated ? origOnNodeCreated.apply(this) : undefined;
|
||||
const start = this.widgets.find((w) => w.name === "start");
|
||||
const count = this.widgets.find((w) => w.name === "count");
|
||||
let counter = start.value;
|
||||
count.type = "converted-widget"; // hidden
|
||||
count.serializeValue = () => { return counter++; }
|
||||
api.addEventListener("promptQueued", () => { counter = start.value; }); // reset
|
||||
return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 164 KiB |
Reference in New Issue
Block a user