From 0baf5de91f24b8aeb22c1ee32ff2f01605df84b1 Mon Sep 17 00:00:00 2001 From: digital-garbage <133010426+digital-garbage@users.noreply.github.com> Date: Sun, 28 Jun 2026 22:28:11 +0300 Subject: [PATCH] sampler: uncap JoyAI-Echo memory strength (0.5 -> 10.0) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 0.5 ceiling was only on the widget bounds (samplers.py INPUT_TYPES + the editor's Chain Sampler knob); the apply path (_append_joyai_memory_guides) only enforces the 0.25 audio-safe FLOOR, no upper clamp, so higher values already flow through. Raise max to 10.0 in both widgets so identity can be pushed past the audio-safe band. Floor (0.25) kept — below it audio degrades and identity drifts. Tooltip notes 0.25-0.5 is the audio-safe band; higher pushes identity harder but may degrade audio / over-constrain motion. Co-Authored-By: Claude Opus 4.8 --- movie_editor/frontend/engine_settings.js | 2 +- samplers.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/movie_editor/frontend/engine_settings.js b/movie_editor/frontend/engine_settings.js index 1de71e46..773a5913 100644 --- a/movie_editor/frontend/engine_settings.js +++ b/movie_editor/frontend/engine_settings.js @@ -261,7 +261,7 @@ { name: "joyai_memory_size", label: "Memory size", kind: "int", default: 7, min: 1, max: 32, step: 1, dependsOn: "joyai_memory" }, { name: "joyai_fix_frames", label: "Pinned anchors", kind: "int", default: 3, min: 0, max: 16, step: 1, dependsOn: "joyai_memory" }, { name: "joyai_frame_select", label: "Frame select", kind: "combo", choices: ["center", "first", "random"], default: "center", dependsOn: "joyai_memory" }, - { name: "joyai_memory_strength", label: "Memory strength", kind: "float", default: 0.3, min: 0.25, max: 0.5, step: 0.05, dependsOn: "joyai_memory" }, + { name: "joyai_memory_strength", label: "Memory strength", kind: "float", default: 0.3, min: 0.25, max: 10.0, step: 0.05, dependsOn: "joyai_memory" }, { name: "joyai_audio_memory", label: "Paired audio memory", kind: "bool", default: false, dependsOn: "joyai_memory" }, { name: "v2a_grad_scale", label: "Video→audio coupling", kind: "float", default: 1.0, min: 0.0, max: 4.0, step: 0.25, dependsOn: "joyai_audio_memory" }, { name: "alg_blur_guides", label: "Blur i2v guides and JoyAI memory", kind: "bool", default: false }, diff --git a/samplers.py b/samplers.py index cc3bfd03..120b647e 100644 --- a/samplers.py +++ b/samplers.py @@ -2212,8 +2212,8 @@ class FunPackLTXAVSceneChainSampler: "tooltip": "Which frame of each finished scene to store in the bank (JoyAI default 'center').", }), "joyai_memory_strength": ("FLOAT", { - "default": 0.3, "min": 0.25, "max": 0.5, "step": 0.05, - "tooltip": "Guide-attention strength for each memory frame. Same 0.25 floor as mid_scene_guide (below it audio degrades and identity drifts).", + "default": 0.3, "min": 0.25, "max": 10.0, "step": 0.05, + "tooltip": "Guide-attention strength for each memory frame. 0.25 floor as mid_scene_guide (below it audio degrades and identity drifts). Uncapped at the top: 0.25-0.5 is the audio-safe band, higher values push identity harder but may degrade audio/over-constrain motion.", }), # NOTE: append-only — keep new sampler widgets at the END of this block so the # builder's positional reference-workflow mapping (extract_widgets) stays aligned.