Commit Graph
28 Commits
Author SHA1 Message Date
EthanfelandClaude Opus 4.6 f0ffeef731 Show delta on shift button and disable when zero
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 22:50:08 +01:00
EthanfelandClaude Opus 4.6 2473a3d20c Add frame_to_skip shift button to propagate delta to following sequences
Adds a "Shift ↓" button next to Frame to Skip in VACE Settings that
applies the change delta to all sequences with a higher sequence_number.
Uses sequence_number field ordering, not array position.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 22:43:54 +01:00
EthanfelandClaude Opus 4.6 58345dc7c0 Fix delete corruption, promote desync, and shallow copies
- Delete sequence: add ui_reset_token increment to prevent shifted
  sequences from inheriting deleted sequence's widget state
- Promote: update data_cache with single_data so UI reflects the
  file format change without requiring a manual refresh
- Mass update & clone: use copy.deepcopy to avoid shared mutable
  references between sequences

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 18:54:06 +01:00
EthanfelandClaude Opus 4.6 941eb836b0 Force data_cache reassignment after mass update
Explicitly reassign st.session_state.data_cache after mass update
to ensure Streamlit picks up in-place mutations to the batch data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 11:23:23 +01:00
EthanfelandClaude Opus 4.6 c757038535 Fix mass update not refreshing UI
Increment ui_reset_token after mass update save so Streamlit
widgets re-read their values, matching all other save operations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 12:48:07 +01:00
EthanfelandClaude Opus 4.5 8a86915347 Increase Specific Prompt text area height
- tab_single.py: 150 → 250px
- tab_batch.py: 100 → 300px to better match second column

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 11:59:28 +01:00
EthanfelandClaude Opus 4.5 56db4080de Add mass update feature to batch processor
Allows propagating field values from one sequence to multiple/all other
sequences. Includes source selector, field multi-select, target checkboxes
with Select All toggle, preview, and history snapshot on apply.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 13:57:34 +01:00
EthanfelandClaude Opus 4.5 676160be8c Always show reference path, flf image path, and VACE fields in batch editor
These fields were previously gated behind filename checks ("vace"/"i2v"
in filename), hiding them when the filename didn't match. Since DEFAULTS
includes all these keys, always render them.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 12:57:15 +01:00
EthanfelandClaude Opus 4.5 b02bf124fb Add atomic writes, magic string constants, unit tests, type hints, and fix navigation
- save_json() now writes to a temp file then uses os.replace() for atomic writes
- Replace hardcoded "batch_data", "history_tree", "prompt_history", "sequence_number"
  strings with constants (KEY_BATCH_DATA, etc.) across all modules
- Add 29 unit tests for history_tree, utils, and json_loader
- Add type hints to public functions in utils.py, json_loader.py, history_tree.py
- Remove ALLOWED_BASE_DIR restriction that blocked navigating outside app CWD
- Fix path text input not updating on navigation by using session state key
- Add unpin button (❌) for removing pinned folders

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 12:44:31 +01:00
EthanfelandClaude Opus 4.5 326ae25ab2 Fix critical bugs, security issues, and code quality across all modules
- Replace bare except clauses with specific exceptions (JSONDecodeError, IOError, ValueError, TypeError)
- Add path traversal protection restricting navigation to ALLOWED_BASE_DIR
- Sanitize iframe URLs with scheme validation and html.escape to prevent XSS
- Extract duplicate to_float/to_int to module-level helpers in json_loader.py
- Replace silent modulo wrapping with clamped bounds checking via get_batch_item()
- Remove hardcoded IP 192.168.1.51:5800, default to empty string
- Add try/except around fragile batch history string parsing
- Add JSON schema validation (dict type check) in read_json_data()
- Add Python logging framework, replace print() calls
- Consolidate session state initialization into loop with defaults dict
- Guard streamlit_agraph import with try/except ImportError
- Add backup snapshot before history node deletion
- Add cycle detection in HistoryTree.commit()

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 11:47:50 +01:00
Ethanfel 268de89f6d Update tab_batch.py 2026-01-06 21:53:38 +01:00
Ethanfel 2b4221e444 Update tab_batch.py 2026-01-05 12:51:20 +01:00
ethanfel d054ff2725 Update tab_batch.py 2026-01-04 17:03:31 +01:00
ethanfel a6b88467a8 Update tab_batch.py 2026-01-04 15:26:08 +01:00
ethanfel f7d7e74cb9 Update tab_batch.py 2026-01-04 12:42:31 +01:00
ethanfel 909f2b5f21 Update tab_batch.py 2026-01-03 10:51:52 +01:00
ethanfel 7df798ccd1 Update tab_batch.py 2026-01-02 19:15:21 +01:00
ethanfel 70686b6b3f Update tab_batch.py 2026-01-02 19:11:53 +01:00
ethanfel 25f8dd471a Update tab_batch.py 2026-01-02 19:09:30 +01:00
ethanfel af174839e8 Update tab_batch.py 2026-01-02 13:26:57 +01:00
ethanfel cbe2355ef6 Update tab_batch.py 2026-01-02 13:16:17 +01:00
ethanfel b89c5448a7 Refactor batch sequence UI and add randomness 2026-01-02 01:25:46 +01:00
ethanfel 39f4e7d96f Refactor sequence management and UI updates
Refactor sequence handling and UI elements in Streamlit app. Update custom parameters section and improve user experience.
2026-01-02 01:02:35 +01:00
ethanfel 378fc4dc90 Enhance sequence expander and custom parameter handling
Updated the sequence expander title to include the current prompt and added functionality for custom parameters, including adding and removing keys.
2026-01-02 00:58:31 +01:00
ethanfel 9cc956e5d3 Add random seed generation feature 2026-01-01 01:29:32 +01:00
ethanfel b628f17ec6 Refactor sequence handling and UI updates 2025-12-31 14:58:42 +01:00
ethanfel 3a9b58f3b5 Refactor batch file handling and UI interactions 2025-12-31 14:54:37 +01:00
ethanfel 2964101782 Add batch processing features to tab_batch.py
Implement batch processing functionality in Streamlit app with options to create, modify, and save batch sequences.
2025-12-31 14:44:09 +01:00