Compare commits

...
Author SHA1 Message Date
Alisson Anjos 1d1f9bf065 Fix shifted legacy H3 widgets; bump to 1.119.6 2026-11-09 19:47:49 +00:00
3 changed files with 16 additions and 3 deletions
+5
View File
@@ -2,6 +2,11 @@
All notable changes to **ComfyUI-BFSNodes** are documented in this file.
## [1.119.6] - 2026-11-09
### Fixed
- **BFS Shot H3 Conditioning (`BFSShotH3ConditioningSimple`)**: Reset newly added number and toggle widgets when loading workflows saved with the older `use_ref_2` layout, preventing shifted values such as `blur` from being parsed as `clip_video_fps`.
## [1.119.5] - 2026-11-09
### Changed
+1 -1
View File
@@ -1,7 +1,7 @@
[project]
name = "bfsnodes"
description = "ComfyUI nodes for video workflows: SAM 3 segmentation and Molmo2 tracking; MiniMax H3 character swapping and sampling; shot planning and looping; LTX video controls and identity transfer; model loaders, LoRA tools, and image/video utilities."
version = "1.119.5"
version = "1.119.6"
license = {file = "LICENSE"}
dependencies = [
"torch",
+10 -2
View File
@@ -955,12 +955,20 @@ function upgradeConditioningWidgets(node, info) {
const names = Array.isArray(v) && oldWidgetNames(node.comfyClass, v);
if (!names) return;
names.forEach((name, k) => { const w = node.widgets?.find(x => x.name === name); if (w && k < v.length) w.value = v[k]; });
// widgets the saved workflow did not have got a shifted value: back to their default (a list's first choice)
// widgets the saved workflow did not have got a shifted value: back to their default (a list's first choice, or the
// number/toggle default). Numbers matter too: clip_video_fps (added later) got 'blur' and the run failed with
// "The value blur for BFS Shot H3 Conditioning's clip_video_fps couldn't be converted to FLOAT".
node.widgets?.forEach(w => {
if (names.includes(w.name)) return;
const choices = w.options?.values;
if (!names.includes(w.name) && Array.isArray(choices) && !choices.includes(w.value)) w.value = w.options.default ?? choices[0];
if (Array.isArray(choices)) { if (!choices.includes(w.value)) w.value = w.options.default ?? choices[0]; return; }
if (w.type === "number" && (typeof w.value !== "number" || !Number.isFinite(w.value)))
w.value = typeof w.options?.default === "number" ? w.options.default : NUMBER_DEFAULTS[w.name] ?? w.options?.min ?? 0;
else if (w.type === "toggle" && typeof w.value !== "boolean") w.value = !!w.options?.default;
});
}
// Defaults of the number widgets added after the saved layouts above (the frontend does not always keep a default).
const NUMBER_DEFAULTS = { clip_video_fps: 2.0, native_guide_scale: 1.0, source_blur_strength: 1.0 };
function upgradeLegacySlots(node, info) {
const cls = node.comfyClass;