5 Commits
Author SHA1 Message Date
facok 894fb65ef3 Strengthen Warm and Cool preset effects 2026-03-17 07:39:09 +08:00
facok 707e789f02 Add server-side preset fallback for headless/batch execution
Frontend JS syncs preset values into sliders on user interaction,
but headless runners (e.g. Lumi-Batcher) skip the frontend entirely.
When a preset is selected but all sliders are still at defaults,
execute() now applies the preset values server-side as a fallback.
2026-03-17 05:50:59 +08:00
facok e8f37b36d1 Add Base preset to reset all tone sliders to defaults 2026-03-17 05:25:54 +08:00
facok 7aa68375f9 Fix color temperature having no visible effect
The warm_dir was a unit vector (norm=1) but LCS chroma vectors have
norms ~40-46, so color_temperature=0.5 only shifted chroma by 1.2%.
Scale warm_dir by mean anchor chroma magnitude so the shift is
proportional. Slider range narrowed from ±2.0 to ±1.0 and preset
values adjusted accordingly (Warm=0.15, Cool=-0.15, Cinematic=0.05).
2026-03-17 05:05:21 +08:00
facok 78be03db46 Add frontend preset sync for LCSToneAdjust sliders
Selecting a preset now updates slider values in real-time via a
frontend JS extension, and users can tweak values after selecting.
Sliders are always visible (removed optional=True). Preset values
live only in JS (single source of truth); Python keeps just the
name list for the combo widget. Sync only fires on explicit user
dropdown interaction, preserving saved slider tweaks on workflow load.
2026-03-17 04:47:57 +08:00