- Updated multiple instances in keyer.ts, nodestream.ts, and ops.ts to use the `willReadFrequently: true` option when obtaining 2D rendering contexts from HTMLCanvasElement. This change aims to improve performance when reading pixel data frequently.
- Enhanced navigation.ts to support aborting wheel event listeners using an AbortController.
- Modified state.ts and types.ts to include an optional AbortController in the NodeState interface for better management of event listeners.
Remove NATIVE_NUMERIC_WIDGET_NAMES exclusion list (rotate_deg, scale, strength, width, height, rotate). Excluded widgets were left visible as native LiteGraph sliders at the bottom of nodes, creating vertical empty space and duplicate UI (notably CameraShake/Transform/Spherize). Also includes prior session work: P1-P4 UX improvements, video preview anti-blink/anti-stutter fixes in source.ts, README and REFACTO docs cleanup.
- Implement global, shadows, midtones, and highlights zones for color correction
- Add brightness, contrast, saturation, vibrance, and gamma controls per zone
- Include temperature and tint adjustments with improved hue adjustment range
- Introduce soft brush drawing feature with adjustable softness
- Enhance draw tool with improved cursor feedback and eraser functionality
- Optimize performance with requestAnimationFrame for certain interactions
- Refactor color correction widget synchronization and reset logic
- Implement spherize, fisheye, defisheye, latlong, and unlatlong transformations
- Add support for custom strength and invert options
- Update pad out functionality with improved bounds drawing and source handling
- Fix color widget type in corner pin node
- Add sync_dimensions toggle to crop node for linked/free aspect ratio
- Add new color correction parameters: tint, vibrance, shadows, midtones, highlights
- Remove padOutStitcher and related functions
- Update color correction wheel and widget interactions
- Modify renderColorCorrect to include new parameters
- Improve syncColorCorrectWidgets to handle new parameters
- Implement new ImageOpsPadOutStitch node in Python and JavaScript
- Add stitching functionality to combine original and outpainted areas
- Introduce feathering option for smooth transitions between areas
- Update adapter and ops to support new node in both environments
- Extend preview host to recognize and process new node type
- Implemented `ImageOpsPadOut` for adding padding to images with customizable padding values and fill color.
- Implemented `ImageOpsCornerPin` for applying corner pin transformations to images, allowing for perspective adjustments.
- Added helper functions for rendering padded canvases and corner pin transformations in the preview.
- Updated type definitions to include new states and geometry for corner pin and pad out operations.
- Enhanced the main operations file to support new image operations and their respective masks.
- Implemented `imageToMaskPreviewCanvas` function to convert images to mask previews based on alpha values.
- Updated `renderCompPreview` to support additional parameters for center positioning and rotation of layers.
- Modified `buildRenderer` to utilize `getInputOriginSlot` for improved input handling.
- Enhanced `NodeState` interface with additional properties for drawing and color management.
- Expanded `CropDragMode` and `CompDragMode` types to include new drag options.
- Updated canvas context retrieval to handle potential null values gracefully in `renderer.ts`.
- Enhanced error handling by returning null when context cannot be obtained.
- Added a `tick` parameter to the adapter apply context in `types.ts`.
- Introduced new distortion and noise nodes in Python, implementing image distortion and noise generation functionalities.
- Improved memory management by closing previous bitmaps in `source.ts`.
- Implemented ImageOpsComp for image composition with multiple layers and blending modes.
- Created ImageOpsCrop for interactive cropping with aspect ratio support.
- Developed ImageOpsDraw for drawing on images with customizable tools and overlays.
- Added utility functions for handling crop and draw operations, including aspect ratio resolution and canvas management.
- Introduced TypeScript interfaces and utility functions for managing composition layers and crop rectangles in the preview.