Commit Graph
95 Commits
Author SHA1 Message Date
Sammy Kumar 43ea8ce49a feat(logging): integrate logging functionality to replace print statements for better debugging and monitoring
refactor(__init__.py, debug_civitai.py): update import error handling to use logger for warnings and errors instead of print statements

feat(tests): replace print statements with logger calls for better logging in media selection tests
feat(install): integrate logging for installation process in install.py
feat(cache): implement logging for cache operations in cache.py
refactor(debug_utils): enhance debug_print function to use a dedicated logger for consistent debug output

feat(helper_nodes.py, lora_hash_cache.py): integrate logging functionality to replace print statements with logger calls for better debugging and monitoring
chore(lora_manager): remove deprecated LoRA Manager files as they are no longer needed in the project

chore(file_api.py): remove deprecated file API implementation to streamline codebase and reduce maintenance overhead

chore(lora_utils.py): remove unused LoRA utility functions to clean up the codebase and improve maintainability

chore(nd_super_lora_node.py): remove nd_super_lora_node.py file as it is no longer needed in the project

chore(template_manager.py): remove the template management system as it is no longer needed in the project

chore(version_utils.py): remove version utility file as it is no longer needed in the project

chore(web_api.py): remove deprecated web API endpoints for ND Super Nodes to clean up the codebase and improve maintainability

refactor(media_describe.py): replace print statements with logger calls for better logging management and consistency

refactor(media_describe.py): replace print statements with logger calls to standardize logging and improve maintainability

feat(logging): integrate logging functionality into nodes.py and restart_api.py for better debugging and monitoring

- Initialize logging in both files to replace print statements with logger calls.
- Use logger to capture debug and info messages for improved traceability.
2025-11-27 16:13:33 -06:00
Sammy Kumar 09b8ec540c feat(logging): implement centralized logging setup for debug messages across media description modules
docs(LLM_STUDIO_VIDEO_DESCRIBE.md): add notes on logging behavior and environment variable respect for debug settings
refactor(media_describe): replace print statements with logger calls for better log management and consistency
2025-11-25 11:05:40 -06:00
Sammy Kumar a1f1298cd2 feat(VACE Annotators): add batch_size parameter to process frames in chunks to reduce VRAM usage
docs(VACE Annotators): update documentation to include batch_size parameter and its usage for VRAM management
2025-11-12 16:00:41 -06:00
Sammy Kumar 692039e01b docs: update VENDORING.md and VACE_ANNOTATORS.md to reflect changes in edge thresholding and vendor behavior
docs: remove edge_threshold parameter from example workflow to align with new automatic edge thresholding feature

docs(README): simplify and condense VACE Annotator Scribble documentation for clarity and ease of use

docs: add help-page style documentation for VACEScribbleAnnotator node to improve user guidance and usability

feat(annotator_models): add ContourInference and VendorResidualBlock classes for enhanced model architecture
feat(annotator_models): implement postprocess_vendor_scribble_output function for vendor-specific output processing
fix(annotator_models): update load_scribble_model to handle vendor state dicts and improve model loading logic
refactor(preprocess_scribble_input): add normalize_mode parameter for flexible input normalization options
fix(_quantile_threshold): improve scale handling for user-defined thresholds in quantile calculations

refactor(vace_scribble_annotator.py): remove edge_threshold parameter and use a default constant for edge detection to simplify the code
feat(vace_scribble_annotator.py): add support for vendor-specific postprocessing of scribble output to enhance functionality
2025-11-12 13:34:48 -06:00
Sammy Kumar c548996bb7 Add vendored VACE scribble model and update documentation
- Introduced vendoring for the VACE scribble generator to allow usage without the full upstream repository.
- Added `VENDORING.md` to document vendored files and update instructions.
- Updated `README.md` to include vendoring notes.
- Modified `IMPLEMENTATION_SUMMARY.md` to reflect changes in the scribble node.
- Enhanced `VACE_ANNOTATORS.md` with new parameters for inference mode and edge threshold.
- Created `scribble.py` and `scribble_loader.py` for model loading and preprocessing.
- Updated `vace_scribble_annotator.py` to integrate new model loading logic and fallback mechanisms.
- Added smoke tests for both fallback and model inference scenarios.
- Included a sample input image for testing purposes.
2025-11-12 11:06:00 -06:00
Sammy Kumar 314e7ca6ed feat(vace_scribble_annotator.py): enhance model loading and processing logic with improved debug output and Sobel fallback 2025-11-12 11:05:49 -06:00
Sammy Kumar f10e26901c Merge branch 'master' into copilot/add-vace-annotator-nodes
Update
2025-11-10 11:39:53 -06:00
copilot-swe-agent[bot]andsammykumar 15516b0c86 Change file ordering from alphabetical to creation date (oldest first)
- Sort files by os.path.getctime() instead of alphabetically
- Seed 0 now selects oldest file by creation date
- Updated documentation to reflect chronological ordering
- Tests confirm oldest file is selected first

Co-authored-by: sammykumar <1479861+sammykumar@users.noreply.github.com>
2025-11-09 20:32:57 +00:00
copilot-swe-agent[bot]andsammykumar c4c29627d9 Update randomize by path to use seed as index instead of random selection
- Changed seed behavior from random selection to deterministic index-based selection
- Seed 0 now always selects first file, seed N wraps around using modulo
- Added file deduplication to handle files found by both recursive and non-recursive patterns
- Added sorting for consistent ordering across runs
- Removed unused imports (random, requests, mimetypes, urlparse, unescape)
- Updated info message to show index and file count
- Documented new behavior in MEDIA_SELECTION.md

Co-authored-by: sammykumar <1479861+sammykumar@users.noreply.github.com>
2025-11-09 18:53:27 +00:00
copilot-swe-agent[bot]andsammykumar 4efac7953b Add comprehensive implementation summary for VACE Annotators
Co-authored-by: sammykumar <1479861+sammykumar@users.noreply.github.com>
2025-11-08 03:54:36 +00:00
copilot-swe-agent[bot]andsammykumar 9a8ee8a72e Complete VACE Annotators implementation: add example workflow, update README, fix linting
Co-authored-by: sammykumar <1479861+sammykumar@users.noreply.github.com>
2025-11-08 03:51:50 +00:00
copilot-swe-agent[bot]andsammykumar b036ff744a Add VACE Annotator nodes (Depth, Flow, Scribble) with documentation
Co-authored-by: sammykumar <1479861+sammykumar@users.noreply.github.com>
2025-11-08 03:48:35 +00:00
Sam Kumar e576631aad ✨ (DEBUG_MODE_IMPLEMENTATION.md): introduce centralized debug mode setting for both frontend and backend to enhance logging control
📝 (DEBUG_MODE_IMPLEMENTATION.md): update documentation to reflect new debug mode implementation and usage instructions
♻️ (debug_utils.py): refactor debug logging utilities to check both environment variable and frontend settings for debug mode
🐛 (civitai_service.py): replace print statements with debug_print for consistent logging in CivitAI service
♻️ (config_api.py): refactor API to cache debug mode setting and expose it through a new endpoint
📝 (swiss-army-knife.js): update logging to use dynamic debug mode check and remove legacy loading of debug config
♻️ (video_preview.js): refactor video preview extension to use dynamic debug mode check for logging
📝 (extension.js): add dynamic debug logging wrapper for LoRA Manager to improve logging consistency across extensions
2025-10-30 07:06:42 -05:00
Sam Kumar 75ea6446b4 ✨ (azure_storage_upload): introduce Azure Storage Upload node to enable file uploads to Azure Blob Storage
📝 (azure_storage_upload): add comprehensive documentation for Azure Storage Upload node
🔧 (config_api.py): add support for Azure Storage connection string in settings
♻️ (swiss-army-knife.js): refactor API key synchronization to include Azure Storage connection string
✅ (requirements.txt): add azure-storage-blob as a dependency for Azure Storage functionality
2025-10-30 06:51:28 -05:00
Sam Kumar 0cc49164c5 ⏪ Revert LLM Studio prompt changes (v2.9.5-v2.9.7) and bump version to 2.9.8
This reverts commits:
- 080f961 (v2.9.7): LLM Studio prompt architecture update
- 220397b (v2.9.6): LLM Studio enhanced prompts
- e53fc9b (v2.9.5): Movement description enhancements

Reverting back to v2.9.4 state (enhanced scene descriptions) and bumping to v2.9.8.
2025-10-20 15:41:11 -05:00
Sam Kumar 080f961336 ✨ (MEDIA_DESCRIBE.md, media_describe.py, pyproject.toml): update LLM Studio prompt architecture for improved clarity and compatibility; bump version to 2.9.7 in pyproject.toml 2025-10-20 15:20:00 -05:00
Sam Kumar 220397b43b ✨ (MEDIA_DESCRIBE.md, media_describe.py, pyproject.toml): update LLM Studio prompts for enhanced media description; increment version to 2.9.6 in pyproject.toml 2025-10-20 14:56:22 -05:00
Sam Kumar e53fc9b9bc ✨ (media_describe.py): enhance movement description for explicit genital visibility and sex position identification; bump version to 2.9.5 in pyproject.toml 2025-10-20 14:47:14 -05:00
Sam Kumar cb6399befe ✨ (media_describe.py): enhance scene description for richer environmental detail; bump version to 2.9.4 in pyproject.toml 2025-10-20 14:29:17 -05:00
Sam Kumar 1f55b29f28 Update movement description in media_describe.py for clarity and detail; increment version to 2.9.3 in pyproject.toml 2025-10-20 14:21:44 -05:00
Sam Kumar bf5240d00e ✨ (docs): add ComfyUI settings integration documentation for secure API key management
📝 (docs): update implementation status and README to reflect new settings integration
🔧 (docs): create SETTINGS_INTEGRATION.md and SETTINGS_INTEGRATION_SUMMARY.md for detailed implementation overview

✨ (civitai_service.py, config_api.py, gemini_util_options.py, nodes.py): implement API key management through ComfyUI settings instead of environment variables to enhance security and usability
♻️ (gemini_options_security.js): disable outdated security extension for API key handling as it is no longer needed
⬆️ (pyproject.toml): bump version to 2.9.0 to reflect recent changes and improvements

✨ (swiss-army-knife.js): update extension version to 2.8.11 for consistency
✨ (swiss-army-knife.js): add helper functions to retrieve API keys from settings
✨ (swiss-army-knife.js): implement sync function to send API keys to backend
💡 (swiss-army-knife.js): update comments to reflect changes in API key handling
✨ (swiss-army-knife.js): register settings for Gemini and Civitai API keys with sync functionality
2025-10-17 09:00:14 -05:00
Sam Kumar 2d82d09dd1 chore: remove joycaption nodes 2025-10-17 08:24:44 -05:00
Sam Kumar 03ea59f357 bug: debugging upload media button 2025-10-17 07:52:44 -05:00
Sam Kumar d5b404dec6 feat: combine cinematic aesthetic and stylization tone into visual style 2025-10-17 06:50:37 -05:00
Sam Kumar 5047ac72aa feat: add llm studio as option for media describe node 2025-10-15 16:55:37 -05:00
copilot-swe-agent[bot]andsammykumar 525926d2e2 Add implementation summary and complete validation testing
Co-authored-by: sammykumar <1479861+sammykumar@users.noreply.github.com>
2025-10-15 15:15:20 +00:00
copilot-swe-agent[bot]andsammykumar 3309dc65c4 Add comprehensive documentation for LLM Studio Options and updated MediaDescribe docs
Co-authored-by: sammykumar <1479861+sammykumar@users.noreply.github.com>
2025-10-15 15:12:03 +00:00
Sam Kumar 9e64c7bdcb ✨ (docs): rename LLM Studio Media Describe to LLM Studio Video Describe
to reflect the node's functionality more accurately

📝 (docs): update documentation across multiple files to ensure
consistency with the new node name and its features

♻️ (code): refactor class and variable names from LLMStudioMediaDescribe
to LLMStudioVideoDescribe for clarity and to align with the updated
documentation

✨ (llm_studio_picture_describe.py): add LLM Studio Picture Describe node for image analysis using vision-language models
♻️ (nodes.py): update node mappings to include LLMStudioPictureDescribe and LLMStudioVideoDescribe
⬆️ (pyproject.toml): bump version to 2.8.4 for new feature addition
2025-10-15 04:44:23 -05:00
Sam Kumar 9daee75ec5 📝 (LLM_STUDIO_IMPLEMENTATION_SUMMARY.md, LLM_STUDIO_MEDIA_DESCRIBE.md, LLM_STUDIO_QUICK_REFERENCE.md): update default base_url from 127.0.0.1 to 192.168.50.41 for better accessibility in local network
🔧 (pyproject.toml): bump version from 2.8.2 to 2.8.3 to reflect recent changes
2025-10-14 16:36:47 -05:00
Sam Kumar 642e9886e9 feat: add node for llm studio 2025-10-14 16:35:21 -05:00
Sam Kumar e9ce8a1dd1 feat: add joycaption 2025-10-14 06:59:10 -05:00
Sam Kumar 1d6be3beea 📝 Update documentation: simplify Gemini Util - Options node by removing unnecessary input toggles to enhance user experience and streamline functionality.
✨ Introduce new file: add OPTIONS_VERIFICATION.md to document verification of the simplified options integration with the Media Describe node.

⬆️ Upgrade version: bump version number in pyproject.toml from 2.7.2 to 2.7.3 to reflect recent changes and improvements.
2025-10-13 17:18:47 -05:00
Sam Kumar 6480b38b67 ✨ (GEMINI_OPTIONS_SIMPLIFICATION.md): simplify Gemini Util - Options node by removing unnecessary input toggles to enhance user experience
📝 (SYSTEM_PROMPT_FIELD_STANDARDIZATION.md): standardize system prompt fields for Gemini to ensure consistent output structure across image and video processing
♻️ (gemini_util_options.py): refactor options creation logic to hardcode previously toggled fields as always enabled for improved workflow efficiency

📝 (mediia_describe.py): update JSON field descriptions to always include all 6 fields in consistent order for clarity and completeness
⬆️ (pyproject.toml): bump version from 2.7.1 to 2.7.2 to reflect recent changes and improvements
2025-10-13 17:03:18 -05:00
copilot-swe-agent[bot]andsammykumar 6af2f4ce47 Consolidate remaining 5 nodes documentation (54 files → 5 files)
Co-authored-by: sammykumar <1479861+sammykumar@users.noreply.github.com>
2025-10-13 21:05:44 +00:00
copilot-swe-agent[bot]andsammykumar c1ec3da228 Add consolidation guide for future documentation work
Co-authored-by: sammykumar <1479861+sammykumar@users.noreply.github.com>
2025-10-13 20:57:53 +00:00
copilot-swe-agent[bot]andsammykumar ea0958b712 Add consolidation notes to remaining node READMEs
Co-authored-by: sammykumar <1479861+sammykumar@users.noreply.github.com>
2025-10-13 20:56:53 +00:00
copilot-swe-agent[bot]andsammykumar cec3b9b420 Update documentation structure - remove features dir, update AGENTS.md and docs/README.md
Co-authored-by: sammykumar <1479861+sammykumar@users.noreply.github.com>
2025-10-13 20:55:36 +00:00
copilot-swe-agent[bot]andsammykumar 32f02a2264 Consolidate video-metadata documentation (5 files → 1 file)
Co-authored-by: sammykumar <1479861+sammykumar@users.noreply.github.com>
2025-10-13 20:50:12 +00:00
copilot-swe-agent[bot]andsammykumar 5fdffcce45 Rename ui-widgets to web-js and consolidate video-preview documentation
Co-authored-by: sammykumar <1479861+sammykumar@users.noreply.github.com>
2025-10-13 20:46:56 +00:00
Sam Kumar a613e1a9bd ✨ (docs): add JSON Field Order Standardization documentation to ensure consistency across codebase
♻️ (mediia_describe.py): standardize JSON field order in MediaDescribe class to improve maintainability and clarity

✨ (control_panel.py): update variable names for clarity and consistency
✨ (control_panel.py): enhance JSON parsing to support new input structure
✨ (swiss-army-knife.js): modify UI to display additional columns for prompt breakdown
⬆️ (pyproject.toml): bump version to 2.7.0 for new features and improvements
2025-10-13 15:38:29 -05:00
Sam Kumar 0798063987 ✨ (docs): add JSON response format documentation for Gemini prompts to provide structured output details
✨ (docs): add Control Panel Prompt Breakdown documentation to detail JSON parsing updates and benefits
♻️ (nodes): simplify Media Describe module by removing legacy input and updating parsing logic for cleaner code

✨ (mediia_describe.py): enhance JSON support for image descriptions and improve parsing logic
♻️ (mediia_describe.py): refactor return values to include raw JSON output for better integration
📝 (mediia_describe.py): update docstrings to clarify functionality and output format
🔧 (nodes.py): remove MediaDescribePromptBreakdown class and related mappings to streamline codebase

✨ (control_panel.py): update input type from all_media_describe_data to raw_gemini_json for better clarity
♻️ (control_panel.py): refactor display_info method to parse structured JSON response from Gemini API
💡 (control_panel.py): enhance logging for better debugging and user feedback

♻️ (swiss-army-knife.js): remove MediaDescribePromptBreakdown node implementation to streamline code and improve maintainability
2025-10-13 14:23:34 -05:00
Sam Kumar adec3ddfe4 ✨ (docs): add documentation for Control Panel Prompt Breakdown implementation to provide detailed information on its purpose, input, output, and implementation details
♻️ (control_panel.py): create ControlPanelPromptBreakdown class to handle prompt breakdown logic and refactor existing ControlPanel class for clarity
♻️ (swiss-army-knife.js): update frontend to support new ControlPanelPromptBreakdown node and ensure proper data handling and display
⬆️ (pyproject.toml): increment version to 2.6.1 to reflect new features and improvements
2025-10-13 12:59:01 -05:00
Sam Kumar 128acb2b04 ✨ (Control Panel): add comprehensive debugging documentation for data population issues
🐛 (Control Panel): fix field name mismatch and message structure handling to ensure data displays correctly
♻️ (Control Panel): refactor data extraction logic to check multiple sources and improve clarity
🔧 (Control Panel): update display logic to show only essential metadata and reduce clutter
⬆️ (version): bump version to 2.6.0 for new features and fixes
2025-10-11 12:01:45 -05:00
Sam Kumar 9e9d46a365 ✨ (CONTROL_PANEL_CHANGES.md): add documentation for control panel simplification changes to provide clarity on updates
♻️ (swiss-army-knife.js): refactor control panel to accept only `all_media_describe_data` as input for better usability
🔧 (pyproject.toml): update version to 2.5.15 to reflect recent changes and improvements
2025-10-11 11:28:08 -05:00
Sam Kumar b99bfc8075 ✨ (AGENTS.md): add ComfyUI-SwissArmyKnife extension development guide to provide comprehensive instructions for developers
📝 (RESTART_BUTTON.md): document the implementation of a restart button feature for ComfyUI server, detailing files modified and user experience
♻️ (control_panel.py): refactor input types in ControlPanel class to simplify input handling by using all_media_describe_data instead of multiple individual fields
2025-10-11 11:14:36 -05:00
Sam Kumar d019659827 ✨ (media-selection): add video resizing functionality to Media Selection node to enhance media processing capabilities
📝 (README.md): update documentation to include new resize options and modes for clarity
📝 (VIDEO_RESIZE_IMPLEMENTATION.md): create detailed implementation guide for video resizing feature
📝 (VIDEO_RESIZE_SUMMARY.md): add quick summary of video resizing functionality and usage examples
♻️ (media_selection.py): refactor video processing methods to support resizing and maintain code consistency
⬆️ (pyproject.toml): bump version to 2.5.6 to reflect new features
🔧 (swiss-army-knife.js): update extension version to match pyproject.toml version for consistency
2025-10-08 09:32:24 -05:00
Sam Kumar 27ad7bbde3 ✨ (UI_DYNAMIC_FIELDS.md): add documentation for Media Selection node's dynamic field visibility to enhance user understanding
⬆️ (pyproject.toml): bump version from 2.5.3 to 2.5.4 to reflect new features
♻️ (swiss-army-knife.js): implement dynamic field visibility for MediaSelection node to improve UI clarity and user experience
2025-10-08 07:48:51 -05:00
Sam Kumar 570b178f85 ✨ (Dockerfile, docker-compose.yml): add httpx to requirements for enhanced HTTP requests support
✨ (Dockerfile, docker-compose.yml): update CMD to include --base-directory for better temp file management
📝 (TEMP_DIRECTORY_UTILS.md): add documentation for temporary directory utilities to explain usage and benefits
♻️ (temp_utils.py): create utility functions for ComfyUI-aware temporary file and directory management
♻️ (media_selection, media_describe, frame_extractor): refactor to use ComfyUI-aware temp utilities for better file handling
📝 (media-selection README, WORKFLOW_EXAMPLE.md, REDDIT_POST_MEDIA_SOURCE.md): update documentation to reflect changes in temp file management
💡 (media_selection): add comments to clarify the use of ComfyUI-aware temp directory functions
2025-10-08 07:34:58 -05:00
Sam Kumar a78e5ca94e ✨ (media_selection): introduce new Media Selection nodes for advanced video processing workflows, including Media Selection, Frame Extractor, and Multi-Caption Combiner to enhance modularity and flexibility in media handling.
📝 (README): add comprehensive documentation for new nodes, including usage examples, workflow guides, and technical details to assist users in implementing the new features effectively.

🐛 (media_selection): fix issues with media type detection and improve error handling for media selection from Reddit and local paths to ensure robustness and user-friendly feedback.

✅ (test_nodes): add test script for Media Selection and Frame Extraction nodes to validate functionality and ensure reliability of the new features.

💡 (subreddit_randomization): implement a new feature for randomizing media selection from subreddits, enhancing user experience by providing more diverse media sources.

♻️ (frame_extractor): refactor frame extraction logic to support multiple extraction methods and improve performance and usability.

🔧 (configuration): update configuration files to accommodate new nodes and ensure compatibility with existing workflows.
2025-10-08 06:27:55 -05:00
Sam Kumar f6813fe28e chore: update docs 2025-10-08 05:04:55 -05:00