Commit Graph
30 Commits
Author SHA1 Message Date
Maxed-Out-99 07d4c7fa90 Isolate comparer node classes to avoid overwrite
Bump package version to 1.8.5 and ensure each image comparer node gets its own override class. Added NODE_OVERRIDE_CLASSES map and changed MxdImageComparer.setUp to create/cache a per-node class (by nodeData.name), assign nodeData to it, and register that bound class—preventing static nodeData from being overwritten when multiple comparer nodes are registered.
2026-02-23 16:10:18 -08:00
Maxed-Out-99 3ca3859588 Remove BOMs and bump version to 1.8.3
Strip stray BOM/hidden characters from multiple Python and web source files to normalize file encoding and avoid lint/parse issues. Also bump package version from 1.8.2 to 1.8.3 in pyproject.toml. No functional code changes were made.
2026-02-22 09:11:58 -08:00
Maxed-Out-99 5e18e8d7f7 Update pyproject.toml 2026-02-22 08:27:07 -08:00
Maxed-Out-99 7fb6cec7ea Add video support and WAN22 video prep + SVI node
Add video handling and prep utilities across nodes and UI.

- mediacomparers.py: add MxdVideoComparer (saves previews, shows A/B videos) and import folder_paths/os/time; register the new node and display name.
- wan22nodes.py: refactor WAN 2.2 scaling with _wan22_pick_bucket and _wan22_scale_image_core, add _select_frames_start_end, expose faster passthrough for scale(), add video prep nodes (WAN22_I2V_Video_Prep_MXD and advanced variant) that scale videos and return start/end/selected frames, improve CombineVideos_MXD audio handling to support multiple audio payload shapes and batching, and mark PreviewVideoMXD as an output node; register new nodes and display names.
- Add new node file wan_svi_first_last_mxd.py: WAN 2.2 First/Last I2V SVI node that prepares SVI conditioning (anchors, padding, masks) and returns latent samples.
- __init__.py: include wan_svi_first_last_mxd in dynamic imports so new node is discovered.
- web/js/image_comparer.js: extend UI to support video/media (playback, sizing, URL builder, mixed image/video lists) and update widget rendering logic for media types.
- pyproject.toml: bump package version to 1.8.1.

These changes add end-to-end video support (preview, compare, prep for WAN 2.2 workflows), improve robustness of audio concatenation, and introduce an SVI-first/last conditioning node for WAN pipelines.
2026-02-22 08:22:25 -08:00
Maxed-Out-99 a9fd90d608 Integrate Lora Loader MXD into MaxedOut
Add integrated Lora Loader MXD support and frontend. Introduces a new loraloader_mxd package (constants, logging, power node, prompt utils, server API routes, model info utils, server helpers, general utils, and userdata migration/IO). Adds many web frontend files for the MXD UI and registers the node in the top-level __init__.py. Updates README with merge/migration notes and adds userdata/ to .gitignore. Also includes minor comment/tuning change in maxedoutnodes.py and small updates to existing web/index.js and project metadata.
2026-02-21 18:21:54 -08:00
Maxed-Out-99 c5847f70d3 Update pyproject.toml 2026-02-11 18:07:32 -08:00
Maxed-Out-99 4016e1e159 Update pyproject.toml 2026-02-11 18:04:43 -08:00
Maxed-Out-99 5fa9958b9c Update pyproject.toml 2026-02-11 18:00:18 -08:00
Maxed-Out-99 da491e4572 Update pyproject.toml 2026-02-11 17:50:44 -08:00
Maxed-Out-99 76a48f4751 Update pyproject.toml 2026-02-08 08:52:14 -08:00
Maxed-Out-99 181e818f66 Make comfy_api optional & guard node registration
Wrap direct comfy_api imports in try/except and introduce HAVE_COMFY_API flags so the package can load without comfy_api present. Update __init__.py to dynamically and safely import node modules and merge NODE_CLASS_MAPPINGS / NODE_DISPLAY_NAME_MAPPINGS. Conditionally define and register nodes that depend on comfy_api (Qwen image-edit nodes, WAN 2.2 video nodes, Combine/Load/Save/Preview video nodes) so they are only available when comfy_api is present. Add helper to auto-add " MXD" aliases for node names and to merge display mappings. Bump package version to 1.6.9 and add diagnostic prints when comfy_api imports fail.
2026-02-07 19:55:19 -08:00
Maxed-Out-99 dc3130bd21 Add Grow Blur Mask MXD node and bump version
Introduce a new Grow Blur Mask MXD node that expands/contracts a mask and blurs only the expanded ring while keeping the core solid. The node normalizes mask inputs (supports HxW or BxHxW), handles positive grow_blur by dilating and blurring the ring (Gaussian blur via PIL.ImageFilter) and negative values by eroding. Implementation uses torch.nn.functional for morphological ops and processes blur on CPU per-batch item, clamping outputs to [0,1]. Also update NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS to register the new node, and bump package metadata in pyproject.toml (name capitalized to "MaxedOut" and version -> 1.6.8). Files changed: maxedoutnodes.py, pyproject.toml.
2026-02-06 03:46:42 -08:00
Maxed-Out-99 7e46538129 Update resolution presets and bump version
Replace portrait resolution presets with standard 3:2 landscape variants in maxedoutnodes.py (add 1536x1024 and 1216x832; remove corresponding portrait entries). Bump package version in pyproject.toml from 1.6.6 to 1.6.7.
2026-01-30 21:09:14 -08:00
Maxed-Out-99 109dfdb556 Add DummyNodeMXD and zip_loader web addon
Introduced DummyNodeMXD for workflow missing-node testing in maxedoutnodes.py. Added a new web addon 'zip_loader' with JSZip and loader scripts to support zip file handling in the web interface. Bumped project version to 1.6.6 in pyproject.toml.
2026-01-28 18:09:18 -08:00
Maxed-Out-99 ad91727749 Prevent persisting preview image paths in workflow JSON
Updated image_comparer.js to avoid saving preview image paths when serializing the workflow, ensuring that no unnecessary image data is stored. Bumped project version to 1.6.4 in pyproject.toml.
2026-01-26 21:04:46 -08:00
Maxed-Out-99 5230d74024 Add GetLatentSizeMXD node to extract latent image size
Introduced the GetLatentSizeMXD node to retrieve image width and height from a latent input. Updated NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS to register the new node. Bumped version to 1.6.3 in pyproject.toml.
2026-01-22 17:18:48 -08:00
Maxed-Out-99 79571f5ca5 Update pyproject.toml 2026-01-22 16:52:13 -08:00
Maxed-Out-99 159ae79e69 Remove optional test node imports from __init__.py
Eliminates the conditional import and mapping updates for test nodes in __init__.py, simplifying the initialization logic. Bumps package version to 1.6.1 in pyproject.toml.
2026-01-20 18:49:14 -08:00
Maxed-Out-99 704b3a3927 Update pyproject.toml 2026-01-17 16:05:58 -08:00
Maxed-Out-99 8672eed53b Fix import paths in image_comparer.js
Updated relative import paths for app, api, and ComfyWidgets modules to correct directory structure.
2026-01-15 14:10:33 -08:00
Maxed-Out-99 e8ef3e338a Add Qwen Image Edit Single MXD node
Introduces the QwenImageEditSingleMXD node for single-image editing with prompt and optional image input, supporting reference latents and VAE encoding. Updates node mappings and display names accordingly. Bumps project version to 1.5.1.
2026-01-15 14:02:04 -08:00
Maxed-Out-99 3641c2ab57 Add media comparer node and concise descriptions
Introduces mediacomparers.py with an Image Comparer + Save MXD node, updates __init__.py to register new node mappings, and adds a frontend widget (image_comparer.js) for image comparison. Refactors and shortens DESCRIPTION strings for clarity across maxedoutnodes.py and wan22nodes.py, adds a ControlNet Preprocessor Selector node, and updates web/index.js to include the new comparer widget.
2026-01-15 13:01:04 -08:00
Maxed-Out-99 bfc42f7620 Add 'Save Only' mode to SaveImage_MXD node
Introduces a new 'Save Only' mode to the SaveImage_MXD node, allowing images to be saved without displaying previews in the UI. Updates the mode selection tooltip for clarity. Bumps project version to 1.4.0.
2025-12-18 16:52:07 -08:00
Maxed-Out-99 f02f7a8c9a Add Z-Image Turbo latent node and update WAN 2.2 scaler
Introduces the ZImageTurboEmptyLatentImage node for SD3-compatible latent generation with curated safe resolutions. Refactors SaveLatentMXD and SaveLatent_I2V_MXD to remove preview image logic and streamline latent/conditioning saving. Updates WAN22_I2V_Image_Scaler_MXD to add a 'Safe Auto' mode for robust video-extend workflows, improves bucket selection, and enhances error handling for unsupported resolutions. Also updates display names and increments the package version to 1.3.0.
2025-12-13 16:15:55 -08:00
Maxed-Out-99 0758ae70e6 Improve latent loading and WAN 2.2 scaler logic
Refactored latent loading to safely import enums and improved parameter extraction logic. Enhanced WAN 2.2 image scaler with video bucket validation, passthrough for exact buckets, and early error for unsupported resolutions. Updated Frames_Select_StartEnd_MXD to support offset selection and improved frame clamping.
2025-11-09 19:53:01 -08:00
Maxed-Out-99 6c3c9da392 Add video-only loader, preview node, and frame selection improvements
Introduces a video-only loader node with auto-refresh, a PreviewVideoMXD node for displaying videos in the preview panel, and refactors frame selection to support both start and end modes. Updates image scaler logic for smarter bucket selection, improves latent loading with conditioning outputs, and makes various naming and usability enhancements throughout the video workflow nodes. Also bumps the maxedout package version to 1.2.0.
2025-11-09 18:42:02 -08:00
Maxed-Out-99 f788892aad Refactor WAN 2.2 image-to-video nodes and update version
Replaces WanImageToVideoMXD with Wan22ImageToVideoMXD using new schema and execution methods, and adds Wan22FirstLastImageToVideoMXD node. Updates pyproject.toml version to 1.1.2. Adjusts scaler defaults and cleans up redundant code for improved maintainability and node registration.
2025-10-25 13:35:12 -07:00
Maxed-Out-99 d6cbef6fc4 Update pyproject.toml 2025-10-22 18:35:51 -07:00
Maxed-Out-99 5b25361e0d Update pyproject.toml 2025-10-22 11:41:57 -07:00
e415020e7e Add pyproject.toml for Custom Node Registry (#14)
* chore(pyproject): Add pyproject.toml for Custom Node Registry

* Update project description and tool settings

---------

Co-authored-by: async () = process.env.GIT_USERNAME || (await ghUser()).email && (await ghUser()).name || DIE("Missing env.GIT_USERNAME") <async () = process.env.GIT_USEREMAIL || (await ghUser()).email && (await ghUser()).email || DIE("Missing env.GIT_USEREMAIL")>
Co-authored-by: Maxed-Out-99 <maxedout99999@gmail.com>
2025-10-22 11:33:36 -07:00