fix: inject frame strength defaults in API so they appear in ProjectKey dropdown

start/middle/end frame strength are set via setdefault in the UI but
only persist after save. API now injects them with default 1.0 so
ProjectKey can use them immediately without requiring a save first.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-04 14:21:32 +02:00
parent d1e32e5fc4
commit 97c755316b
+13
View File
@@ -94,6 +94,14 @@ def _get_data(name: str, file_name: str, seq: int = Query(default=1)) -> dict[st
if match is None:
raise HTTPException(status_code=404, detail=f"Sequence {seq} not found")
result = dict(match)
# Inject strength defaults if not yet saved to JSON
for key, default in (
("start frame strength", 1.0),
("middle frame strength", 1.0),
("end frame strength", 1.0),
):
result.setdefault(key, default)
# Computed stem names from frame paths
for out_key, src_key in (
("start_name", "start frame path"),
("middle_name", "middle frame path"),
@@ -124,6 +132,11 @@ def _get_keys(name: str, file_name: str, seq: int = Query(default=1)) -> dict[st
types.append("FLOAT")
else:
types.append("STRING")
# Injected defaults — always present even if not yet saved to JSON
for key in ("start frame strength", "middle frame strength", "end frame strength"):
if key not in match:
keys.append(key)
types.append("FLOAT")
# Computed keys derived from frame paths
for out_key, src_key in (
("start_name", "start frame path"),