Commit Graph
34 Commits
Author SHA1 Message Date
Maxed-Out-99 e35ec29f4f Add CharacterPrompts nodes and web UI
Introduce a new CharacterPrompts extension: adds node implementations (Character Create, Character Edit/Delete, Character Prompt Encode) with storage, resolver, and README. Adds persistent character library storage (default/ComfyUI-CharacterPrompts-MXD/characters.json), server route (/mxd/characters/list), and a web UI integration (mxd_character_prompts.js + import) to refresh/pick characters in the graph. Update root __init__ to register the new module. Also remove the Grow Blur Mask MXD node from maxedoutnodes, and bump package version to 1.9.0 in pyproject.toml.
2026-02-27 08:42:22 -08:00
Maxed-Out-99 2162606f65 Support structured LoRa info; add WAN22 tools & UI
Multiple updates across the project:

- .gitignore: ignore AGENTS.md
- README: refreshed project README with badges, install instructions and node highlights
- loraloader_mxd/server/utils_info.py: add structured local LoRA storage (more_info/<model>/lora-info.json) with README creation, legacy .rgthree-info.json fallback, and updated get/delete/save helpers to support LoRA-specific layout while preserving backward compatibility
- maxedoutnodes.py: add SmartCropByMaskMXD node (square crop centered on mask), register it in NODE_CLASS_MAPPINGS and display name mappings
- wan22nodes.py: add validation and resize helpers (_validate_image_batch_4d, _resize_to_explicit_resolution), FPS resampling (_resample_video_frames_to_fps), WAN22 match-resolution node (WAN22_I2V_Match_Resolution_MXD), expose fps_mode/target_fps in video prep nodes, keep legacy "Safe Auto" behavior while simplifying UI tier options
- web/js/betterCombos.js: small UI/identifier changes (rename extension id/name to mxd, add alias for LoadLatent, disable legacy pysssss enhancements behind flag, tweak folder arrow glyphs)
- web/mxd_utils_menu.js: replace LoRA chooser with a stylistic tree-style chooser (folder grouping, toggle behavior, styles injection, callback normalization)

These changes introduce structured local LoRA metadata handling, new image/video utilities and nodes for WAN 2.2 workflows, and front-end improvements for LoRA choosing and loader UI.
2026-02-26 15:08:28 -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 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 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 f158e57f16 Add Flux2EmptyLatentImage node for Flux 2 compatibility
Introduces the Flux2EmptyLatentImage class to generate empty latent batches compatible with Flux 2, supporting selectable resolutions and batch sizes. Updates NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS to register the new node.
2026-01-22 16:51:56 -08:00
Maxed-Out-99 43b3cd8076 Add Qwen image edit nodes and update outputs
Introduces QwenImageEditSingleMXD and QwenImageEditTripleMXD nodes with support for outputting both conditioning and latent tensors. Removes the ControlNetPreprocessorSelector node. Updates display names and output schemas for Qwen nodes, and ensures image previews are shown in the UI for MxdImageComparerSave. Adds a 'testing/' directory to .gitignore and integrates test node mappings in __init__.py.
2026-01-16 21:41:58 -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 46e7f6eb25 Add Save Image MXD node for saving and previewing images
Introduces the SaveImage_MXD node, allowing users to either save images to disk, preview them, or both, via a single node. Updates NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS to register the new node.
2025-12-15 15:16:04 -08:00
Maxed-Out-99 7411286fec Refactor ZImageTurboEmptyLatentImage resolutions and style
Grouped Z-Image Turbo Empty Latent Image resolutions in a Flux-style format for better organization and usability. Cleaned up comments, reordered and renamed resolution groups, and condensed code formatting for improved readability.
2025-12-15 14:38:32 -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 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 18ff05776b Add image prompt extraction to image loading nodes
Enhanced LoadImageBatchMXD to extract positive and negative prompts from image metadata and output them as lists. Added new LoadImageWithPromptsMXD node to load a single image with prompt extraction. Introduced helper functions for prompt parsing and updated node mappings accordingly.
2025-08-29 12:58:23 -07:00
Maxed-Out-99 2273af7276 Add WAN22 latent nodes and merge node mappings
Introduces wan22nodes.py with new nodes for saving and loading latents with Comfy metadata, including batch operations. Updates __init__.py to merge node mappings and display names from both maxedoutnodes and wan22nodes, using new aliases. Enhances maxedoutnodes.py with improved docstrings and additional metadata for several classes.
2025-08-19 16:36:02 -07:00
Maxed-Out-99 5dc8aa8a22 Add LoadImageBatchMXD node for batch image loading
Introduces the LoadImageBatchMXD node to load batches of images and their masks from a selected output folder. Updates NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS to register the new node.
2025-08-19 16:14:37 -07:00
gbavieira 5abc584028 Adding Resolution Selector (#7) 2025-07-29 11:02:26 -07:00
Maxed-Out-99 7db0bd24da raise ValueError for PlaceImageByMask 2025-07-27 11:38:20 -07:00
Maxed-Out-99 667eace416 Add image placement and cropping nodes by mask
Introduces PlaceImageByMask and CropImageByMask nodes for overlaying and cropping images based on mask bounding boxes. Includes helper functions for tensor/PIL conversion and bounding box calculation. Updates node mappings and display names accordingly.
2025-07-21 16:57:06 -07:00
Maxed-Out-99 38371d7aeb Fixed Value Not in List Error 2025-07-19 09:53:49 -07:00
Maxed-Out-99 1bf1643569 Added LatentHalfMasks node. Changed node descriptions
Changed node descriptions now that helpful popup works well.
2025-07-18 15:34:16 -07:00
Maxed-Out-99 e7d96b947f Update namespace to MXD (#2)
update help popup to register under MXD and change settings key
rename jsnodes extension to MXD.jsnodes
switch python node categories to MXD namespace
2025-07-18 10:01:27 -07:00
Maxed-Out-99 5920ada2cd Remove unsupported upscale methods from method lists
Removed 'nearest-exact' and 'area' from the upscale_methods lists in ImageScaleToTotalPixelsSafe and FluxImageScaleToTotalPixelsSafe classes to ensure only supported methods are available.
2025-07-16 19:46:03 -07:00
Maxed-Out-99 032adc83ac Add FluxResolutionMatcher node for resolution matching
Introduces the FluxResolutionMatcher node, which takes an input image and finds the closest matching resolution and orientation from a predefined list compatible with Flux/SD3. The node outputs a resolution string and a boolean for use with the 'Flux Empty Latent Image' node, and is registered in the node mappings.
2025-07-16 13:24:37 -07:00
Maxed-Out-99 0f96cb21cb Remove DummyNegativePrompt node and references
Deleted the DummyNegativePrompt class and its mappings from the node registration. This node is no longer needed for KSampler's negative prompt input.
2025-07-15 21:50:28 -07:00
Maxed-Out-99 06060ffedc Move __future__ import to top of file
Relocated the '__future__ import annotations' statement to the beginning of maxedoutnodes.py to comply with Python best practices and avoid potential import errors.
2025-07-15 19:35:50 -07:00
Maxed-Out-99 c7dd24d12d Set default value for vertical parameter
Added a default value of False to the 'vertical' boolean parameter in both FluxEmptyLatentImage and SdxlEmptyLatentImage classes to ensure consistent default behavior.
2025-07-15 19:32:53 -07:00
Maxed-Out-99 c6e06252f3 Add DummyNegativePrompt node to node mappings
Registered the DummyNegativePrompt class in NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS, enabling its use as a node in the system.
2025-07-15 19:30:05 -07:00
Maxed-Out-99 6196665a3a Add DummyNegativePrompt node for empty negative prompts
Introduces the DummyNegativePrompt node, which encodes an empty string as conditioning for KSampler's required negative prompt input. This node does not expose a text input and is intended as a placeholder to satisfy workflows requiring a negative prompt.
2025-07-15 19:23:56 -07:00
Maxed-Out-99 ef5e300594 Initial clean commit 2025-06-20 10:29:53 -07:00