feat: remove cfg, flf, end_frame fields

These fields are no longer needed. Removed from DEFAULTS, UI widgets,
standard_keys set, and timeline preview. Added _migrate_remove_keys()
migration so existing JSON files are cleaned up transparently on load.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-04 14:24:57 +02:00
parent 97c755316b
commit 4b40d0f50c
3 changed files with 15 additions and 13 deletions
+2 -8
View File
@@ -314,8 +314,8 @@ def render_batch_processor(state: AppState):
'lora 3 high', 'lora 3 high strength', 'lora 3 low', 'lora 3 low strength']
standard_keys = {
'name', 'mode', 'general_prompt', 'general_negative', 'current_prompt', 'negative', 'prompt',
'seed', 'cfg', 'camera', 'flf', KEY_SEQUENCE_NUMBER,
'frame_to_skip', 'end_frame', 'logic index', 'transition', 'vace_length',
'seed', 'camera', KEY_SEQUENCE_NUMBER,
'frame_to_skip', 'logic index', 'transition', 'vace_length',
'input_a_frames', 'input_b_frames', 'reference switch', 'vace schedule',
'start frame path', 'start frame strength',
'middle frame path', 'middle frame strength',
@@ -610,13 +610,7 @@ def _render_sequence_card(i, seq, batch_list, data, file_path, state,
ui.button(icon='casino', on_click=randomize_seed).props('flat')
# CFG
dict_number('CFG', seq, 'cfg', default=DEFAULTS['cfg'],
step=0.5, format='%.1f').props('outlined').classes('w-full')
dict_input(ui.input, 'Camera', seq, 'camera').props('outlined').classes('w-full')
dict_input(ui.input, 'FLF', seq, 'flf').props('outlined').classes('w-full')
ef_input = dict_number('End Frame', seq, 'end_frame').props('outlined').classes('w-full')
seq.setdefault('logic index', 0)
li_input = dict_number('Logic Index', seq, 'logic index').props('outlined readonly').classes('w-full')
with li_input:
+1 -2
View File
@@ -577,7 +577,6 @@ def _render_preview_fields(item_data: dict):
with ui.row().classes('w-full q-gutter-md'):
ui.input('Camera', value=str(item_data.get('camera', 'static'))).props('readonly outlined')
ui.input('FLF', value=str(item_data.get('flf', '0.0'))).props('readonly outlined')
ui.input('Seed', value=str(item_data.get('seed', '-1'))).props('readonly outlined')
with ui.expansion('LoRA Configuration'):
@@ -617,7 +616,7 @@ def _render_preview_fields(item_data: dict):
known_keys = {
'sequence_number', 'general_prompt', 'general_negative', 'current_prompt', 'prompt',
'negative', 'camera', 'flf', 'seed', 'resolutions',
'negative', 'camera', 'seed', 'resolutions',
'frame_to_skip', 'vace schedule', 'video file path', 'middle frame path', 'end frame path', 'start frame path',
'logic index',
}
+12 -3
View File
@@ -28,16 +28,13 @@ DEFAULTS = {
"current_prompt": "",
"negative": "",
"seed": -1,
"cfg": 1.5,
# --- Settings ---
"mode": 0,
"camera": "static",
"flf": 0.0,
# --- I2V / VACE Specifics ---
"frame_to_skip": 81,
"end_frame": 0,
"logic index": 0,
"transition": "1-2",
"vace_length": 49,
@@ -154,6 +151,17 @@ def save_snippets(snippets):
json.dump(snippets, f, indent=4)
os.replace(tmp, SNIPPETS_FILE)
_REMOVED_KEYS = {"cfg", "flf", "end_frame"}
def _migrate_remove_keys(data: dict) -> None:
"""Drop keys that have been removed from the schema."""
for item in data.get(KEY_BATCH_DATA, []):
if not isinstance(item, dict):
continue
for k in _REMOVED_KEYS:
item.pop(k, None)
def _migrate_key_renames(data: dict) -> None:
"""Rename legacy keys to their current names."""
for item in data.get(KEY_BATCH_DATA, []):
@@ -225,6 +233,7 @@ def load_json(path: str | Path) -> tuple[dict[str, Any], float]:
with open(path, 'r') as f:
data = json.load(f)
t1 = time.time()
_migrate_remove_keys(data)
_migrate_key_renames(data)
_migrate_lora_keys(data)
t2 = time.time()