This commit is contained in:
justumen
2025-03-25 07:42:15 +01:00
parent 0a577b39b4
commit fbf037f66d
3 changed files with 14 additions and 31 deletions

View File

@@ -1,4 +1,4 @@
# 🔗 Comfyui : Bjornulf_custom_nodes v0.77 🔗 # 🔗 Comfyui : Bjornulf_custom_nodes v0.78 🔗
A list of 162 custom nodes for Comfyui : Display, manipulate, create and edit text, images, videos, loras, generate characters and more. A list of 162 custom nodes for Comfyui : Display, manipulate, create and edit text, images, videos, loras, generate characters and more.
You can manage looping operations, generate randomized content, trigger logical conditions, pause and manually control your workflows and even work with external AI tools, like Ollama or Text To Speech. You can manage looping operations, generate randomized content, trigger logical conditions, pause and manually control your workflows and even work with external AI tools, like Ollama or Text To Speech.
@@ -462,6 +462,8 @@ Remove faster-whisper from requirements.txt for people using python 3.13. (Need
Fix preview image node for the new comfyui layout. Fix preview image node for the new comfyui layout.
Rewrite of FFMPEG nodes, COnfiguration and Video preview. Rewrite of FFMPEG nodes, COnfiguration and Video preview.
Many other bug fixes and improvements on many nodes, thx for the reports. Many other bug fixes and improvements on many nodes, thx for the reports.
- **0.78**: Fix Line selector Reset button javascript. (not showing on refresh)
Fix civitai links and folder creation, now only when you use the nodes.
# 📝 Nodes descriptions # 📝 Nodes descriptions

View File

@@ -1,7 +1,7 @@
[project] [project]
name = "bjornulf_custom_nodes" name = "bjornulf_custom_nodes"
description = "162 ComfyUI nodes : Display, manipulate, and edit text, images, videos, loras, generate characters and more. Manage looping operations, generate randomized content, use logical conditions and work with external AI tools, like Ollama or Text To Speech, etc..." description = "162 ComfyUI nodes : Display, manipulate, and edit text, images, videos, loras, generate characters and more. Manage looping operations, generate randomized content, use logical conditions and work with external AI tools, like Ollama or Text To Speech, etc..."
version = "0.77" version = "0.78"
license = {file = "LICENSE"} license = {file = "LICENSE"}
[project.urls] [project.urls]

View File

@@ -31,7 +31,6 @@ app.registerExtension({
if (data.value === 0) { if (data.value === 0) {
resetButton.name = "Reset Counter (Empty)"; resetButton.name = "Reset Counter (Empty)";
} else { } else {
// Count valid lines in text
const lines = text.value const lines = text.value
.split("\n") .split("\n")
.filter((line) => line.trim() && !line.trim().startsWith("#")); .filter((line) => line.trim() && !line.trim().startsWith("#"));
@@ -91,22 +90,7 @@ app.registerExtension({
} }
); );
// Create event handler function that we can remove later
// const executedHandler = async (event) => {
// if (event.detail.node_id === node.id) {
// updateResetButtonTextNode();
// }
// };
// Initial update of showing counter number
setTimeout(updateResetButtonTextNode, 0);
// Listen for node execution events (update value when node executed)
// api.addEventListener("executed", async () => {
// updateResetButtonTextNode();
// });
api.addEventListener("executed", async () => { api.addEventListener("executed", async () => {
// Check if context file is enabled before updating
const contextWidget = node.widgets.find( const contextWidget = node.widgets.find(
(w) => w.name === "LOOP_SEQUENTIAL" (w) => w.name === "LOOP_SEQUENTIAL"
); );
@@ -146,25 +130,22 @@ app.registerExtension({
} }
}; };
// Setup handlers for relevant widgets
setupWidgetHandler("jump"); setupWidgetHandler("jump");
setupWidgetHandler("text"); setupWidgetHandler("text");
setupWidgetHandler("LOOP_SEQUENTIAL"); setupWidgetHandler("LOOP_SEQUENTIAL");
//BUG this cleanup five a floating textarea // Update button visibility based on LOOP_SEQUENTIAL
// Add cleanup when node is removed
// node.onRemoved = function() {
// api.removeEventListener("executed", executedHandler);
// };
// Initial button visibility check
const updateButtonVisibility = () => { const updateButtonVisibility = () => {
const loopSeqWidget = node.widgets.find( const loopSeqWidget = node.widgets.find(
(w) => w.name === "LOOP_SEQUENTIAL" (w) => w.name === "LOOP_SEQUENTIAL"
); );
resetButton.type = loopSeqWidget?.value ? "button" : "hidden"; if (loopSeqWidget) {
if (loopSeqWidget?.value) { if (loopSeqWidget.value) {
updateResetButtonTextNode(); resetButton.type = "button";
updateResetButtonTextNode();
} else {
resetButton.type = "hidden";
}
} }
}; };
@@ -183,6 +164,6 @@ app.registerExtension({
} }
// Initial update // Initial update
updateButtonVisibility(); setTimeout(updateButtonVisibility, 0);
}, },
}); });