Commit Graph
154 Commits
Author SHA1 Message Date
Meisoftcoltd bd6016f559 fix: bypass keyframe save and output full tensor on final cycle
- Updated `SessionImageSender` to conditionally save keyframe only when not in the final cycle.
- Updated `IncrementalVideoStitcher` to return full concatenated tensor when in the final cycle, avoiding dummy frame output and blocking downstream nodes.
- Expose `IS_FINAL_CYCLE` boolean from `IncrementalVideoStitcher` to UI for downstream conditionals.
2026-04-05 21:32:14 +00:00
Meisoft 8a0ceca136 Merge pull request #67 from Meisoftcoltd/fix-silence-and-transparency-11065722630316388106
fix: Silence YOLO outputs and improve transparency in calculators
2026-04-05 19:07:58 +02:00
Meisoftcoltd 608be49841 fix: Silence YOLO outputs and improve transparency in calculators 2026-04-05 17:03:15 +00:00
Meisoft c7c8c93c9c Merge pull request #66 from Meisoftcoltd/fix/video-detector-tqdm-18028740387197632355
Fix bbox detector tuple error, silence YOLO spam, and add tqdm to video scan
2026-04-05 13:53:50 +02:00
Meisoftcoltd a6d8ea88dc docs: add documentation for GPU-accelerated face scanning
- Added Spanish documentation block to `README.md` explaining how to use the new `bbox_detector` port with Impact Pack.
- Added English documentation block to `README_EN.md` with the same instructions.
2026-04-05 11:33:59 +00:00
Meisoftcoltd 93d479fb6c fix: correct ImpactPack tuple unpacking and add tqdm to video frame scan
- Fixed tuple index extraction (`res[0]`) for `SEGS` object in bbox_detector.
- Silenced Ultralytics/YOLO console spam by wrapping detection logic in `redirect_stdout`.
- Upgraded the `while True:` loop to a `for` loop with `tqdm` for a clean progress bar, while preserving the RGB frame conversion logic for accuracy.
2026-04-05 11:26:17 +00:00
Meisoft 30670f0602 Merge pull request #65 from Meisoftcoltd/patch-loop-calculators-6028840695815220919
Implement proportional adjustment in Loop Calculators
2026-04-05 11:52:57 +02:00
Meisoftcoltd a5db690cdf feat: implement proportional adjustment logic for AutoLoopCalculators
- Patches `AutoLoopCalculator` in `video.py` to add base proportional adjustment without VAE constraints.
- Patches `AutoLoopCalculatorLTX` in `loop.py` to enforce the strict 8n + 1 frame rule for LTX models, matching its calculation mathematically correctly for proportional chunking.
- Fixes `__pycache__` to be excluded correctly.
2026-04-05 09:36:44 +00:00
Meisoft 80d739782a Merge pull request #64 from Meisoftcoltd/feature/gpu-bbox-detector-16186696208497101373
Modularize VideoAnalyzerWithAudio with external GPU BBOX_DETECTOR support
2026-04-05 10:25:44 +02:00
Meisoftcoltd 8ae2905bb3 feat: modularize VideoAnalyzerWithAudio to accept external YOLO/ONNX models
- Add optional `bbox_detector` input to `VideoAnalyzerWithAudio`.
- Implement GPU-accelerated face detection using external BBOX_DETECTOR models.
- Support both ImpactPack and standard ONNX bounding box output formats.
- Retain CPU-based OpenCV face detection as a fallback.
- Rename node in UI to "🕵️ Video Analyzer Face detector + Audio".
- Update README.md and README_EN.md to reflect new architecture and wiring.
2026-04-04 23:56:51 +00:00
Meisoft 939a057ea0 Merge pull request #63 from Meisoftcoltd/fix/wan-video-proportional-calculator-12700460131794536740
feat: auto recalculate proportional chunk targets for wanvideo
2026-04-04 21:35:16 +02:00
Meisoftcoltd dc0d3db2f8 feat: proportional frame target recalculation for wanvideo calculator
* Add MEISOFT PATCH to AutoLoopCalculatorWan to dynamically adjust target frames based on safe effective frame multiples.
* Replace static math.ceil calculations and frame absorptions to equitably distribute frames for 3D VAE rendering.
* Simplify chunk limits validation utilizing pre-calculated mathematical bounds, preventing VAE crash micro-cycles.
2026-04-04 19:33:17 +00:00
Meisoft 2b9e960836 Merge pull request #62 from Meisoftcoltd/feat/ltx-2.3-native-support-15170523607356332340
Add native support for LTX 2.3 model (8n+1 chunking and 32x resolution rules)
2026-04-03 15:24:04 +02:00
Meisoftcoltd e443ec7112 feat: rename ResTool32xLTX to ResTool64xLTX for IC-LoRA compatibility
- Renamed `ResTool32xLTX` to `ResTool64xLTX` and updated DIVISOR to 64 to prevent odd-dimension `ValueError`s when using latent downscale factors of 2.0 (IC-LoRA).
- Updated visual node name in `__init__.py` to accurately reflect the 64x divisor behavior to avoid technical debt.
- Updated documentation in `README.md` and `README_EN.md` to reflect the rename and explain the downscale compatibility logic.
2026-04-03 13:06:59 +00:00
Meisoftcoltd 1ffccc5599 feat: add native support for LTX 2.3 model
- Implemented `AutoLoopCalculatorLTX` node to enforce `8n + 1` frame chunks.
- Added `ResTool32xLTX` node for strict 32x divisible resolutions with proper minimum pixel scaling.
- Updated `IncrementalVideoStitcher` (in `image.py`) to correctly subtract the overlapping anchor frame from global frame progression when LTX mode is active.
- Added `global_ltx_mode` reset in `SequentialLoopStart` to prevent state leakage to other non-LTX workflows.
- Registered nodes in `__init__.py` and updated `README.md` & `README_EN.md` with new features.
2026-04-03 13:00:41 +00:00
Meisoft 691130916f Merge pull request #61 from Meisoftcoltd/feat-auto-fps-limiter-8114498070454826927
feat: Add Auto FPS Limiter node
2026-04-03 12:33:52 +02:00
Meisoftcoltd 634edbadc8 feat: Add Auto FPS Limiter node to prevent VRAM OOM on high framerate videos
- Added AutoFPSLimiter class in `tools.py` to calculate `select_every_nth` and proportional `new_fps`.
- Registered `AutoFPSLimiter` in `__init__.py` under NODE_DISPLAY_NAME_MAPPINGS.
- Updated `README.md` and `README_EN.md` Architecture sections with details about the new node.
2026-04-03 10:19:42 +00:00
Meisoft c4d3341637 Merge pull request #60 from Meisoftcoltd/fix-video-analyzer-output-type-10133959255409206744
Update VideoAnalyzerWithAudio path output to wildcard
2026-04-03 10:23:26 +02:00
Meisoftcoltd e77fca6dcf feat: change VideoAnalyzerWithAudio output path type to wildcard
Changed the output type for the video path in the VideoAnalyzerWithAudio
node from STRING to `*` to allow for flexible wildcard connections in
ComfyUI. Also updated the return name to video_path to accurately
reflect the output variable.
2026-04-03 08:21:25 +00:00
Meisoft 16bf944e5f Merge pull request #59 from Meisoftcoltd/docs/update-readme-17998199661185094310
docs: Add missing node descriptions and fix UI titles
2026-04-02 10:28:05 +02:00
Meisoftcoltd 95e2f0b8bd docs: Update README with missing node documentation
- Synced documented node names with actual UI titles in `__init__.py`.
- Added documentation for missing nodes: `Auto Loop Calculator (WanVideo 3dVAE)`, `Session Image Receiver`, `Session Image Sender`.
- Documented the `Megapixel Shield` / `ResTool` modules.
- Applied symmetric updates to both `README.md` and `README_EN.md`.
2026-04-02 08:20:01 +00:00
Meisoft f6abc37a7c Merge pull request #58 from Meisoftcoltd/fix-fail-fast-loop-port-3226992272487219752
feat: implement Fail-Fast validation for API port in Sequential Loops
2026-04-02 09:56:21 +02:00
Meisoftcoltd 762ed08324 feat: implement Fail-Fast mechanism for sequential loop port verification
- Moved port configuration from `SequentialLoopTrigger` to `SequentialLoopStart` to act as the single source of truth.
- Added a pre-flight check in `SequentialLoopStart` that pings the ComfyUI API endpoint `/system_stats` with a 2-second timeout.
- Aborts workflow execution immediately via `ValueError` if the port is incorrect or unreachable, saving hours of processing time by failing fast instead of at the end of the batch.
- Configured `SequentialLoopTrigger` to silently read `global_server_port` rather than requiring it as a node input.
- Ensured console debug logs remain cleanly formatted in Spanish to match user expectations.
2026-04-02 07:45:54 +00:00
Meisoft 1d6b4fc284 Merge pull request #57 from Meisoftcoltd/feat/vram-auto-cleanup-17961398468376006004
Implementar limpieza automática extrema de VRAM en SequentialLoopTrigger
2026-04-02 09:14:59 +02:00
Meisoftcoltd 788ee2c084 docs: Actualizar README para incluir Auto-Limpieza de VRAM
- Añadida sección detallada sobre la nueva característica de Auto-Limpieza de VRAM en SequentialLoopTrigger.
- Añadidos detalles en Changelog (v1.5.3) en los README en español e inglés.
2026-04-02 07:14:22 +00:00
Meisoftcoltd 9fa6057024 feat: Implementar limpieza extrema de VRAM automática en SequentialLoopTrigger
- Añadir las dependencias gc, torch y comfy.model_management en loop.py.
- Implementar vaciado profundo de VRAM al finalizar la generación de frames en el método trigger_next.
- Asegurar reinicio del contador global_accumulated_frames.
- Incluir soporte multiplataforma para el vaciado de cachés de PyTorch (CUDA, ROCm y MPS para Mac).
2026-04-02 07:05:16 +00:00
Meisoft 128c2cf890 Merge pull request #56 from Meisoftcoltd/update-v1.5.2-2137503402934091735
Global Update v1.5.2
2026-04-02 08:54:23 +02:00
Meisoftcoltd 8ab37acb47 feat: Global Update v1.5.2
- Improve error handling in video.py to capture and display Torchaudio exceptions.
- Add explicit list of dependencies in requirements.txt.
- Introduce install.py for automated installation of Python and OS dependencies (FFmpeg).
- Complete redesign of Spanish and English READMEs with v1.5.2 Changelog, new features, and professional workflow setup.
2026-04-02 06:52:39 +00:00
Meisoft 268ba8f0a1 Merge pull request #55 from Meisoftcoltd/fix/vhs-hybrid-input-support-3754654525981139686
Refactor VideoAnalyzerWithAudio for VHS-native hybrid input
2026-04-01 15:49:20 +02:00
Meisoftcoltd 8afdfa703f Refactor VideoAnalyzerWithAudio input to natively support VHS hybrid connections
Updated the `VideoAnalyzerWithAudio` node in `video.py` to match the exact behavior of `VHS_LoadVideo`. By removing the wildcard (`*`) hack and providing a valid tuple with a local file list alongside `{"forceInput": False, "video_upload": True}`, the node now officially renders a standard ComfyUI file uploader widget that can be cleanly converted to a `STRING` input via right-click ("Convert video to input").

Also retained the absolute `VALIDATE_INPUTS` shield returning `True`, guaranteeing dynamic wire inputs (e.g. from YTDLP) won't cause ComfyUI execution queue validation errors when dealing with paths generated at runtime. Cleaned up internal list unpacking hacks in `IS_CHANGED` and `analyze` since standard strings are now properly passed.
2026-04-01 13:49:06 +00:00
Meisoft 7450480b58 Merge pull request #54 from Meisoftcoltd/fix/video-analyzer-input-type-15902259390195045088
Fix VideoAnalyzerWithAudio input type compatibility
2026-04-01 15:25:19 +02:00
Meisoftcoltd b85e6b9181 fix(video): change video input type to wildcard to support dynamic connections
Replaced the strict 'STRING' input type with the '*' wildcard in `VideoAnalyzerWithAudio`. This bypasses ComfyUI's strict type checking for the input port, allowing downloading nodes (like YTDPL) that output custom types (e.g., `VIDEO_PATH` or `PATH`) to connect seamlessly. Updated `VALIDATE_INPUTS` comments to reflect its role as a 'Total Shield' for bypassing dynamic path validation.
2026-04-01 13:08:09 +00:00
Meisoft 1203c2a305 Merge pull request #53 from Meisoftcoltd/fix-video-analyzer-bypass-17137400409083468259
Fix ComfyUI strict pre-flight validation for dynamic video downloads
2026-04-01 14:49:03 +02:00
Meisoftcoltd 44af2b0db5 Fix ComfyUI strict pre-flight validation for dynamic video downloads
- Inject VALIDATE_INPUTS method into VideoAnalyzerWithAudio class.
- Allows downstream dynamic file paths while keeping manual VHS upload widget intact.
2026-04-01 12:48:45 +00:00
Meisoft fd18a73145 Merge pull request #52 from Meisoftcoltd/fix-video-analyzer-input-validation-10810886702170566018
Refactor VideoAnalyzerWithAudio to resolve dynamic path validation blocks
2026-04-01 14:22:04 +02:00
Meisoftcoltd 0cdc0394fe refactor: remove VALIDATE_INPUTS to fix dynamic routing block
Deleted `opt_video_path` parameter and the strict `VALIDATE_INPUTS` classmethod in `VideoAnalyzerWithAudio`. ComfyUI was validating the cached manual widget value before downstream dynamic nodes could finish processing strings. Routing everything directly through a single `video` input and completely removing `VALIDATE_INPUTS` properly delegates execution dependency to ComfyUI's native graph path order.
2026-04-01 12:20:54 +00:00
Meisoft 5b046f3c4d Merge pull request #51 from Meisoftcoltd/fix-video-analyzer-validation-16722397764196416172
Fix: Dynamic bypass in VideoAnalyzerWithAudio validation
2026-04-01 13:37:18 +02:00
Meisoftcoltd 091cffe3d4 Update VALIDATE_INPUTS in VideoAnalyzerWithAudio
Implemented a hybrid validation logic in the `VALIDATE_INPUTS` method of `VideoAnalyzerWithAudio`.
This bypasses the strict `os.path.exists()` check if the optional dynamic input (`opt_video_path`) is connected, allowing ComfyUI to start the workflow and wait for upstream nodes (like downloaders) to create the file at runtime.
Strict physical file validation is maintained for the standard manual video upload widget.
2026-04-01 11:36:58 +00:00
Meisoft ae8187515b Merge pull request #50 from Meisoftcoltd/add-video-path-input-4779784611605875262
feat: allow physical video path input for VideoAnalyzerWithAudio
2026-04-01 13:13:38 +02:00
Meisoftcoltd 5a9bafe7d6 feat: add optional physical wire input for video path to VideoAnalyzerWithAudio
Added an optional `opt_video_path` string input (with `forceInput: True`) to the `VideoAnalyzerWithAudio` node. This allows the node to receive a video path from another upstream node physically via a wire connection, bypassing the default file upload widget when connected. The `IS_CHANGED`, `VALIDATE_INPUTS` and `analyze` methods were uniformly updated to intercept and prioritize this new optional input.
2026-04-01 11:13:06 +00:00
Meisoft 4b2c34017b Merge pull request #49 from Meisoftcoltd/feature/allow-absolute-paths-video-analyzer-17120620811168814967
feat: allow absolute paths in VideoAnalyzerWithAudio
2026-03-31 18:29:55 +02:00
Meisoftcoltd bc49d06000 feat: allow absolute paths in VideoAnalyzerWithAudio
Update `VideoAnalyzerWithAudio` in `video.py` to support absolute paths for the `video_name` parameter. The node's `IS_CHANGED`, `VALIDATE_INPUTS`, and `analyze` methods have been modified to first check if the provided path exists directly using `os.path.exists()`. If it does, it uses the path directly, enabling the use of absolute paths. Otherwise, it falls back to the default `folder_paths.get_annotated_filepath()`.
2026-03-31 16:08:05 +00:00
Meisoft 3cdbc20144 Merge pull request #48 from Meisoftcoltd/add-autoloopcalculatorwan-node-15951337519853474380
feat: add AutoLoopCalculatorWan node for WanVideo model support
2026-03-31 17:37:09 +02:00
Meisoftcoltd 480ae9d815 feat: add AutoLoopCalculatorWan node with mathematical truncation for WanVideo 3D VAE
- Register `AutoLoopCalculatorWan` with its visual display name in `__init__.py`.
- Append `AutoLoopCalculatorWan` class definition to `video.py`.
- The new node enforces strict truncation in multiples of 4 to prevent 3D VAE crashes on the WanVideo model while skipping asymmetric trailing frames.
2026-03-31 15:30:44 +00:00
Meisoft b34b8db30d Merge pull request #47 from Meisoftcoltd/fix/batch-allocation-and-face-detection-13975859446113424338
Refactor Dynamic Batch Allocation and Session Image Sender Logic
2026-03-31 15:57:24 +02:00
Meisoftcoltd bc7b27a962 Refactor AutoLoopCalculator and SessionImageSender
- Changed validate_face to detect_faces parameter in SessionImageSender to skip OpenCV when False.
- Refactored AutoLoopCalculator to use dynamic batch allocation equitably distributing total frames over the number of needed loops.
2026-03-31 10:03:20 +00:00
Meisoft de78658336 Merge pull request #46 from Meisoftcoltd/feature/v1.5.2-resolution-numerical-freedom-10321333975368385029
feat(tools): change base_resolution to free INT input
2026-03-30 23:50:11 +02:00
Meisoftcoltd b67c0d12cc feat(tools): change base_resolution from dropdown to free numerical input
- Replaced the predefined dropdown list for `base_resolution` in `tools.py` with an open `INT` input (`min`: 128, `max`: 8192, `step`: 8) for the four Resolution Tools.
- Updated `README.md` and `README_EN.md` to reflect the new user interface change.
2026-03-30 21:45:50 +00:00
Meisoft 15702503e4 Merge pull request #45 from Meisoftcoltd/update-readme-v1.5.1-14949212851897037070
docs: reestructurar y actualizar README a la versión 1.5.1
2026-03-30 23:15:16 +02:00
Meisoftcoltd bf7ed3305c docs: reestructurar y actualizar README a la versión 1.5.1
- Se actualizaron las versiones de 1.5.0 a 1.5.1.
- Se añadió documentación exhaustiva de las entradas (Inputs) y salidas (Outputs) de todos los nodos según el código (`__init__.py`).
- Se introdujo documentación detallada para el nuevo "Escudo de Megapíxeles" (Megapixel Shield) de la suite de Herramientas.
- Se redactó una guía de conexiones limpia para la Arquitectura Híbrida de Identidad.
- Se mantuvo la paridad entre README.md (Español) y README_EN.md (Inglés).
2026-03-30 20:11:12 +00:00