Commit Graph
197 Commits
Author SHA1 Message Date
dependabot[bot] eba899b30d build(deps): bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 22:33:21 +00:00
Vito Sansevero 914ba8e003 chore: bump version to 1.0.16 in pyproject.toml 2025-08-10 11:38:38 -07:00
Vito 51b057982e Merge pull request #32 from ComfyAssets/feature/follow-execution-and-custom-colors
feat: add follow execution and custom colors UI features
2025-08-10 11:37:58 -07:00
Vito Sansevero 3a3a6ebab9 feat: add follow execution and custom colors UI features
- Add follow execution feature with settings integration
  - Automatically centers canvas on currently executing node
  - Configurable via ComfyUI settings panel
  - Supports auto-start on workflow execution
  - Adds right-click menu options when enabled

- Add custom colors feature with extended options
  - Based on ComfyUI-Custom-Scripts with enhancements from PR #433
  - Three color picker modes: Full, Title only, Background only
  - Multi-node selection support
  - Configurable via settings to enable/disable individual options
  - Auto-shading option for better contrast

Both features are disabled by default and can be enabled in ComfyUI settings under the 🫶 KikoTools sections.
2025-08-10 11:35:22 -07:00
Vito Sansevero 886917d95c chore: bump version to 1.0.15 in pyproject.toml 2025-08-10 06:58:30 -07:00
Vito Sansevero bf55338b61 fix: update all remaining category assertions to handle emoji prefixes
- Change startswith checks to contains checks for ComfyAssets/
- All nodes use '🫶 ComfyAssets/...' format with emoji prefix
2025-08-10 06:51:43 -07:00
Vito Sansevero c561e59650 fix: update test assertions to match emoji prefixes in node categories 2025-08-10 06:50:30 -07:00
Vito Sansevero 9e67f06a21 fix: update base node test to handle emoji prefix in category 2025-08-10 06:44:51 -07:00
Vito Sansevero 90e4b57dc6 style: add missing newline to any_type.py for black formatting 2025-08-10 06:33:12 -07:00
Vito Sansevero 386e48c2e1 feat: add Kiko Purge VRAM node for intelligent memory management
- Add comprehensive VRAM management tool with 4 purge modes (soft, aggressive, models_only, cache_only)
- Implement smart memory threshold triggering to avoid unnecessary purges
- Add detailed memory reporting showing before/after stats and freed MB
- Support passthrough design for seamless workflow integration
- Include graceful CPU fallback for non-CUDA environments
- Add comprehensive test suite with 14 tests covering all functionality
- Update documentation with detailed usage examples and parameters
- Create reusable AnyType class for wildcard input matching

The node provides essential memory management capabilities for complex workflows,
helping prevent OOM errors and optimize multi-model processing pipelines.
2025-08-10 06:25:48 -07:00
Vito Sansevero 624ba92723 feat: add Kiko Purge VRAM node for intelligent memory management
- Add comprehensive VRAM management tool with 4 purge modes (soft, aggressive, models_only, cache_only)
- Implement smart memory threshold triggering to avoid unnecessary purges
- Add detailed memory reporting showing before/after stats and freed MB
- Support passthrough design for seamless workflow integration
- Include graceful CPU fallback for non-CUDA environments
- Add comprehensive test suite with 14 tests covering all functionality
- Update documentation with detailed usage examples and parameters
- Create reusable AnyType class for wildcard input matching

The node provides essential memory management capabilities for complex workflows,
helping prevent OOM errors and optimize multi-model processing pipelines.
2025-08-10 06:17:42 -07:00
Vito Sansevero 0ae29f576a chore: bump version to 1.0.14 in pyproject.toml 2025-08-08 21:02:43 -07:00
Vito Sansevero ca9fd5153a style(kikotools): Update category names and refactor nodes 2025-08-08 21:01:48 -07:00
Vito c0d239f31f Update README.md
Update into.
2025-08-08 20:34:20 -07:00
Vito Sansevero 6d27520641 docs: Update README with new image tools added 2025-08-08 18:33:55 -07:00
Vito Sansevero 7cde5a5ceb docs: update image URLs in README.md 2025-08-08 18:31:02 -07:00
Vito Sansevero ecdde6bbd7 chore: bump version to 1.0.13 in pyproject.toml 2025-08-08 18:28:29 -07:00
Vito 0557c040f8 Merge pull request #31 from ComfyAssets/feature/embedding-autocomplete
Feature/embedding autocomplete
2025-08-08 18:28:04 -07:00
Vito Sansevero f7d007d8c4 style: Fix line break in test assertion 2025-08-08 18:16:08 -07:00
Vito Sansevero 80045954a5 refactor(node): handle missing folder_paths module 2025-08-08 18:07:38 -07:00
Vito Sansevero 6f176e7b78 test: Refactor folder_paths mocking setup 2025-08-08 18:00:35 -07:00
Vito Sansevero 576efbba41 feat: complete embedding autocomplete implementation with all features
- Remove debug code and console.log statements
- Fix test suite to properly mock folder_paths module
- Update test expectations to match actual implementation
- Add comprehensive README documentation with feature list
- Add placeholder images for documentation screenshots
- Include diagnostic scripts for testing embedding paths
- All tests passing (338 passed, 2 skipped)

Features implemented:
- Autocomplete for embeddings, LoRAs, and custom tags
- Custom word list loading from URL (with security validation)
- Configurable triggers and settings
- Auto-insert comma, replace underscores, Tab/Enter selection
- Smart scrolling in suggestion list
- Secure content validation to prevent XSS attacks

Credits to pythongosssss/ComfyUI-Custom-Scripts for inspiration
2025-08-08 17:45:21 -07:00
Vito Sansevero 593bd4de79 fix: support both 'embedding:' and 'embeddings:' triggers
- Accept both singular and plural forms
- Common user expectation to use plural
- Regex pattern now matches embeddings?:
- Works with 120 loaded embeddings
2025-08-08 15:19:52 -07:00
Vito Sansevero a8fb5ddaa7 fix: use file_name property for embedding names
- Extract embedding names from file_name property
- Filter out null/undefined entries
- Successfully processes 120 embeddings with proper names
- Cleaner extraction logic based on actual API response structure
2025-08-08 15:17:49 -07:00
Vito Sansevero f67e619930 fix: properly extract embedding names from object items
- Add comprehensive object property checking
- Try multiple property names (name, filename, title, id, embedding_name)
- Log item structure to understand format
- Handle both string and object item formats
2025-08-08 15:14:37 -07:00
Vito Sansevero f9e2f5bcc5 fix: improve embedding pagination with api method
- Try api.getEmbeddings(page) for pagination
- Add better logging to see item format
- Gracefully fall back to first page if pagination fails
- Log sample items to understand structure
2025-08-08 15:09:45 -07:00
Vito Sansevero 2cfeab9e76 fix: handle paginated embeddings API response
- Detect and parse paginated response format (items array)
- Fetch all pages to get complete embeddings list (113 total)
- Support both paginated and object formats for compatibility
- Extract actual embedding names from items array
- Debug shows successful trigger detection for 'embedding:'
2025-08-08 15:06:31 -07:00
Vito Sansevero f5ce23ad12 fix: handle ComfyUI's embeddings object response format
- Parse embeddings from object keys instead of expecting array
- Remove file extensions from embedding names
- Add fallback method for LoRAs using /object_info API
- Delay widget attachment to catch dynamically created widgets
- Better detection of textarea widgets regardless of type
2025-08-08 15:03:40 -07:00
Vito Sansevero 05a9520436 debug: add comprehensive logging to diagnose autocomplete issues
- Add console logging to JS for resource fetching and widget attachment
- Add debug mode with window.kikoDebug for inspection
- Log Python API endpoint registration and file discovery
- Track widget creation and event handling
- Show first 5 items when loading resources
2025-08-08 15:00:28 -07:00
Vito Sansevero c1fcc4566b fix: improve embedding autocomplete detection and triggers
- Use ComfyUI's native api.getEmbeddings() for proper embedding detection
- Add dedicated /kikotools/autocomplete/loras endpoint for LoRA files
- Improve trigger detection for "embedding:" and "<lora:" patterns
- Context-aware suggestions based on trigger type
- Better insertion logic that maintains correct syntax
- Sort suggestions by relevance (exact match, starts with, alphabetical)
- Fix character matching patterns to include underscores and hyphens
2025-08-08 14:55:55 -07:00
Vito Sansevero 40b91fc44f feat: enhance embedding autocomplete with interactive test panel
- Add debug/test panel to the node with helpful usage hints
- Display counts of available embeddings and LoRAs
- Show sample items and status information
- Include clear instructions for triggering autocomplete
- Update display name with 🫶 branding
- Make node an OUTPUT_NODE to display information
2025-08-08 13:58:45 -07:00
Vito Sansevero 3e7734bbc3 feat: add KikoEmbeddingAutocomplete with settings registry system
- Implement centralized settings registry for all KikoTools
- Create KikoEmbeddingAutocomplete node with backend API
- Add frontend JavaScript autocomplete widget with ComfyUI integration
- Support for embeddings and LoRAs with smart filtering
- Configurable settings in ComfyUI UI with 🫶 branding
- Include keyboard navigation and real-time suggestions
2025-08-08 13:20:09 -07:00
Vito 17400d88f7 Merge pull request #30 from ComfyAssets/feature/kiko-film-grain
feat: add KikoFilmGrain node for realistic film grain effects
2025-08-07 18:50:48 -07:00
Vito Sansevero 0f79601065 feat: add KikoFilmGrain node for realistic film grain effects
- Implement film grain effect with customizable parameters (scale, strength, saturation, toe, seed)
- Use pure PyTorch operations for better GPU utilization (no OpenCV dependencies)
- Apply ITU-R BT.709 color space conversion for accurate grain distribution
- Implement screen blend mode for better highlight preservation
- Add channel-specific weighting matching real film characteristics (3x blue, 2x red)
- Preserve alpha channel when present
- Add comprehensive test suite (20 tests covering all functionality)
- Include documentation and example workflow
- Register node under ComfyAssets/image category

Improvements over reference implementation:
- More efficient memory management avoiding numpy/OpenCV conversions
- Better grain mixing algorithm with proper color science
- Improved performance through PyTorch-native operations
2025-08-07 18:42:37 -07:00
Vito Sansevero df60457929 chore: bump version to 1.0.12 in pyproject.toml 2025-08-07 08:01:18 -07:00
Vito 5d0e8194a1 Merge pull request #29 from ComfyAssets/fix/display-nodes-scrolling
Fix/display nodes scrolling
2025-08-07 08:00:50 -07:00
Vito Sansevero 218a208bf0 feat(display): add copy buttons as ComfyUI widgets
- Add copy buttons using addCustomWidget for proper integration
- Display Text: separate copy buttons for positive/negative prompts
- Display Any: single copy button for entire value
- Visual feedback shows "✓ Copied\!" for 1.5 seconds
- Buttons work with ComfyUI's widget system

Restores copy functionality while maintaining scrolling fixes
2025-08-07 07:25:21 -07:00
Vito Sansevero a7b612d799 fix(display): handle DOM not ready for appendChild operations
- Add proper null checks before appendChild calls
- Use requestAnimationFrame to ensure DOM elements exist
- Check both inputEl and parentNode before adding buttons
- Prevent "Cannot read properties of null" errors on load

Fixes workflow loading errors with display nodes
2025-08-07 07:05:09 -07:00
Vito Sansevero df3d4c19cb fix(display): use ComfyUI's native STRING widgets for proper scrolling
- Replace custom draw implementations with ComfyWidgets["STRING"]
- Fix cursor display issues (was showing + instead of text cursor)
- Enable native scrolling behavior for both Display Text and Display Any
- Maintain all existing features (copy buttons, split view for prompts)
- Add proper widget cleanup and state management
- Reference: ShowText implementation from ComfyUI-Custom-Scripts

Fixes scrolling and cursor issues in display nodes
2025-08-07 06:45:35 -07:00
Vito Sansevero 938d0d93de chore(pyproject): bump version to 1.0.11 2025-08-07 06:35:34 -07:00
Vito e65bf123b5 Merge pull request #28 from ComfyAssets/feat/add-comfyui-essentials-nodes
Feat/add comfyui essentials nodes
2025-08-07 06:25:36 -07:00
Vito Sansevero b348273d3a fix(tests): update GitHub Actions tests for emoji categories
- Fix RETURN_TYPES assertion for Sampler Combo (SCHEDULERS is a list)
- Update all CATEGORY assertions to support emoji-based categories
- Change from exact match to startswith('ComfyAssets/') for flexibility
- All tests now properly validate the new category system
2025-08-07 06:16:33 -07:00
Vito Sansevero cc1ffe2605 docs: correct emoji categories in README
- Update categories to match actual implementation:
  - Seed History: 🌱 Seeds (not 🎯 Advanced)
  - Sampler Combo: 🌀 Samplers (not ⚙️ Sampling)
  - Display Text/Any: 👁️ Display (not 📋 Text/🔍 Debug)
- Correct total unique categories count to 8
- All 16 nodes now correctly documented with their actual categories
2025-08-07 06:10:21 -07:00
Vito Sansevero ef30413e12 docs: add LoRA testing workflow screenshot and examples
- Add screenshot for xyz_helpers_lora_testing workflow
- Include LoRA testing workflow in Common Workflows section
- Show real-world usage with strength ranges and combinatorial mode
2025-08-07 05:45:10 -07:00
Vito Sansevero 5485aa8c19 feat(xyz-helpers): add ComfyUI_essentials nodes adaptation
BREAKING CHANGE: Node categories now use emoji-based organization

Add 6 new xyz-helper nodes adapted from comfyui-essentials-nodes:
- FluxSamplerParams: FLUX-optimized parameter generator with batch support
- LoRAFolderBatch: Batch process multiple LoRAs from folders
- PlotParameters: Visualize parameter effects with graphs
- SamplerSelectHelper: Intelligent sampler selection with recommendations
- SchedulerSelectHelper: Optimal scheduler selection for samplers
- TextEncodeSamplerParams: Combined text encoding and parameter management

Changes:
- Port and enhance nodes from comfyui-essentials (now in maintenance mode)
- Add comprehensive documentation with attribution to original author (cubiq)
- Create example workflows for xyz-helpers tools
- Update all node categories to use emoji-based organization
- Fix all unit tests to pass with new category system
- Update README with xyz-helpers section and attribution

Attribution: xyz-helpers adapted from github.com/cubiq/ComfyUI_essentials

All tests passing (318 pass, 2 skip)
2025-08-07 05:41:23 -07:00
Vito Sansevero a8ee5930ff chore: bump version to 1.0.10 in pyproject.toml 2025-08-04 10:36:11 -07:00
Vito Sansevero 9fd80793db feat(init): add ImageScaleDownByNode support 2025-08-04 10:35:54 -07:00
Vito Sansevero 972c487dd4 Add image_scale_down_by tool and display_any.js
- Add new image_scale_down_by tool for downscaling images/latents
- Add display_any.js web component for node display
- Include comprehensive unit tests for the new tool
2025-08-04 07:17:55 -07:00
Vito 1a3efd3802 Merge pull request #26 from ComfyAssets/alert-autofix-8
Potential fix for code scanning alert no. 8: Workflow does not contain permissions
2025-08-02 08:48:43 -07:00
VitoandCopilot Autofix powered by AI 34f54e515d Potential fix for code scanning alert no. 8: Workflow does not contain permissions
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-08-02 08:38:37 -07:00