Commit Graph
3 Commits
Author SHA1 Message Date
digital-garbageandClaude Opus 5 edcedd9062 feat(h3): two more punctures — prompt timing, and picture detail that spares the audio
h3_prompt_time: the prompt is told how finished it is independently of the
picture, so the model leans on it from the first step instead of treating it
as unreliable while the picture is noise. One extra row through each block's
AdaLN projection, dropped before the result returns. Manual dial only — its
off value sits at the end of its range, not the middle, so the rating loop
cannot explore around it safely.

h3_video_detail: crisper or softer picture with the audio bit-for-bit
unchanged. The final layer is past the last attention pass, so unlike every
other picture control it has no path to the soundtrack.

apply_adaln_gains -> apply_adaln_edits; both block edits share one wrapper.
video_detail joins the rating-learned gains.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 00:05:42 +03:00
digital-garbage ac0864e94f fix(editor): the render gains stay in Settings, they just stop being project state
Untying them from the project file was the ask; taking the dials away was not.
The six rows are back in Engine Settings exactly as they were.

What stays from the previous commit is the part that answers the ask: they are
stripped from sampler_inputs on load, so a dial moved in a session applies to
that session and the next open reads the key — or the defaults when no key is
active or the key files have been deleted.

Tests: 1777 python, 68 JS.
2026-08-26 19:09:08 +03:00
digital-garbage 48134120a1 fix(editor): the learned render knobs are key-scoped, not project state
Asked twice, and the first fix answered the wrong question. Clearing a dial on
its default stopped the value being STORED, but it was still a project field —
so deleting every refinement key left the old behaviour applying, and the only
way back was typing the neutral value in by hand.

These knobs are learned from ratings and live in the key's own state. A copy in
the project file was a second source of truth that outlived the key it came
from. So:

  - h3_gain_mode / h3_gain_video / h3_gain_prompt / h3_gain_audio /
    h3_prompt_scale / h3_taste_bias are stripped from sampler_inputs on project
    load, so a project that already carries them heals itself on first open
    rather than needing a hand-edited JSON;
  - they are no longer offered in Engine Settings at all, because offering one
    writes it back the moment it is touched — which is how the second copy got
    there;
  - with no key active the sampler already returns neutral, so deleting the key
    files now genuinely resets the behaviour.

Still widgets on the NODE: a raw ComfyUI graph with no Refiner in it drives
them by hand, which is what h3_gain_mode 'manual' exists for. Key-scoped means
not in the project, not removed.

Tests: 1771 python (+15), 68 JS.
2026-08-26 19:04:33 +03:00