Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1d1f9bf065 |
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user