ComfyUI/comfy_extras
Jedrzej Kosinski 0be8a76c93
V3 Improvements + DynamicCombo + Autogrow exposed in public API (#11345)
* Support Combo outputs in a more sane way

* Remove test validate_inputs function on test node

* Make curr_prefix be a list of strings instead of string for easier parsing as keys get added to dynamic types

* Start to account for id prefixes from frontend, need to fix bug with nested dynamics

* Ensure inputs/outputs/hidden are lists in schema finalize function, remove no longer needed 'is not None' checks

* Add raw_link and extra_dict to all relevant Inputs

* Make nested DynamicCombos work properly with prefixed keys on latest frontend; breaks old Autogrow, but is pretty much ready for upcoming Autogrow keys

* Replace ... usage with a MISSING sentinel for clarity in nodes_logic.py

* Added CustomCombo node in backend to reflect frontend node

* Prepare Autogrow's expand_schema_for_dynamic to work with upcoming frontend changes

* Prepare for look up table for dynamic input stuff

* More progress towards dynamic input lookup function stuff

* Finished converting _expand_schema_for_dynamic to be done via lookup instead of OOP to guarantee working with process isolation, did refactoring to remove old implementation + cleaning INPUT_TYPES definition including v3 hidden definition

* Change order of functions

* Removed some unneeded functions after dynamic refactor

* Make MatchType's output default displayname "MATCHTYPE"

* Fix DynamicSlot get_all

* Removed redundant code - dynamic stuff no longer happens in OOP way

* Natively support AnyType (*) without __ne__ hacks

* Remove stray code that made it in

* Remove expand_schema_for_dynamic left over on DynamicInput class

* get_dynamic() on DynamicInput/Output was not doing anything anymore, so removed it

* Make validate_inputs validate combo input correctly

* Temporarily comment out conversion to 'new' (9 month old) COMBO format in get_input_info

* Remove refrences to resources feature scrapped from V3

* Expose DynamicCombo in public API

* satisfy ruff after some code got commented out

* Make missing input error prettier for dynamic types

* Created a Switch2 node as a side-by-side test, will likely go with Switch2 as the initial switch node

* Figured out Switch situation

* Pass in v3_data in IsChangedCache.get function's fingerprint_inputs, add a from_v3_data helper method to HiddenHolder

* Switch order of Switch and Soft Switch nodes in file

* Temp test node for MatchType

* Fix missing v3_data for v1 nodes in validation

* For now, remove chacking duplicate id's for dynamic types

* Add Resize Image/Mask node that thanks to MatchType+DynamicCombo is 16-nodes-in-1

* Made DynamicCombo references in DCTestNode use public interface

* Add an AnyTypeTestNode

* Make lazy status for specific inputs on DynamicInputs work by having the values of the dictionary for check_lazy_status be a tuple, where the second element is the key of the input that can be returned

* Comment out test logic nodes

* Make primitive float's step make more sense

* Add (and leave commented out) some potential logic nodes

* Change default crop option to "center" on Resize Image/Mask node

* Changed copy.copy(d) to d.copy()

* Autogrow is available in stable  frontend, so exposing it in public API

* Use outputs id as display_name if no display_name present, remove v3 outputs id restriction that made them have to have unique IDs from the inputs

* Enable Custom Combo node as stable frontend now supports it

* Make id properly act like display_name on outputs

* Add Batch Images/Masks/Latents node

* Comment out Batch Images/Masks/Latents node for now, as Autogrow has a bug with MatchType where top connection is disconnected upon refresh

* Removed code for a couple test nodes in nodes_logic.py

* Add Batch Images, Batch Masks, and Batch Latents nodes with Autogrow, deprecate old Batch Images + LatentBatch nodes
2025-12-30 23:09:55 -05:00
..
chainner_models Replace print with logging (#6138) 2024-12-20 16:24:55 -05:00
nodes_ace.py v3 nodes (part a) (#9149) 2025-08-21 22:05:36 -04:00
nodes_advanced_samplers.py v3 nodes (part a) (#9149) 2025-08-21 22:05:36 -04:00
nodes_align_your_steps.py convert AlignYourStepsScheduler node to V3 schema (#9226) 2025-09-03 21:21:38 -04:00
nodes_apg.py v3 nodes (part a) (#9149) 2025-08-21 22:05:36 -04:00
nodes_attention_multiply.py v3 nodes (part a) (#9149) 2025-08-21 22:05:36 -04:00
nodes_audio_encoder.py convert nodes_audio_encoder.py to V3 schema (#10123) 2025-09-30 23:00:22 -07:00
nodes_audio.py Fix EmptyAudio node input types (#11149) 2025-12-06 10:09:44 -08:00
nodes_camera_trajectory.py convert WanCameraEmbedding node to V3 schema (#9714) 2025-09-12 17:38:12 -04:00
nodes_canny.py convert Canny node to V3 schema (#9743) 2025-09-12 17:40:34 -04:00
nodes_cfg.py convert CFG nodes to V3 schema (#9717) 2025-09-12 17:39:55 -04:00
nodes_chroma_radiance.py Add support for Chroma Radiance (#9682) 2025-09-13 17:58:43 -04:00
nodes_clip_sdxl.py convert CLIPTextEncodeSDXL nodes to V3 schema (#9716) 2025-09-26 14:15:44 -07:00
nodes_compositing.py convert nodes_compositing.py to V3 schema (#10174) 2025-10-08 23:13:15 -07:00
nodes_cond.py convert nodes_cond.py to V3 schema (#9719) 2025-09-12 17:39:30 -04:00
nodes_context_windows.py Context windows fixes and features (#10975) 2025-12-05 12:42:46 -08:00
nodes_controlnet.py convert nodes_controlnet.py to V3 schema (#10202) 2025-10-17 14:13:05 -07:00
nodes_cosmos.py convert Cosmos nodes to V3 schema (#9721) 2025-09-12 17:38:46 -04:00
nodes_custom_sampler.py Add a ManualSigmas node. (#11499) 2025-12-24 19:09:37 -05:00
nodes_dataset.py ResizeByLongerSide: support video (#11555) 2025-12-29 17:07:29 -08:00
nodes_differential_diffusion.py convert nodes_differential_diffusion.py to V3 schema (#10056) 2025-10-01 12:17:33 -07:00
nodes_easycache.py EasyCache: Fix for mismatch in input/output channels with some models (#10788) 2025-11-18 07:00:21 -08:00
nodes_edit_model.py convert nodes_edit_model.py to V3 schema (#10147) 2025-10-03 13:24:42 -07:00
nodes_eps.py Add TemporalScoreRescaling node (#10351) 2025-10-15 18:12:25 -04:00
nodes_flux.py Support the new qwen edit 2511 reference method. (#11340) 2025-12-15 19:20:34 -05:00
nodes_freelunch.py convert nodes_freelunch.py to the V3 schema (#10904) 2025-12-05 20:22:02 -08:00
nodes_fresca.py convert nodes_fresca.py to V3 schema (#9951) 2025-09-26 14:12:04 -07:00
nodes_gits.py convert nodes_gits.py to V3 schema (#9949) 2025-10-01 12:16:59 -07:00
nodes_hidream.py convert nodes_hidream.py to V3 schema (#9946) 2025-09-26 23:13:05 -07:00
nodes_hooks.py Hooks Part 2 - TransformerOptionsHook and AdditionalModelsHook (#6377) 2025-01-11 12:20:23 -05:00
nodes_hunyuan3d.py convert hunyuan3d.py to V3 schema (#10664) 2025-11-19 14:49:01 -08:00
nodes_hunyuan.py Add display names to Hunyuan latent video nodes. (#10837) 2025-11-22 22:51:53 -05:00
nodes_hypernetwork.py convert nodes_hypernetwork.py to V3 schema (#10583) 2025-11-03 00:21:47 -08:00
nodes_hypertile.py convert nodes_hypertile.py to V3 schema (#10061) 2025-09-27 19:16:22 -07:00
nodes_images.py [V3] converted nodes_images.py to V3 schema (#11206) 2025-12-26 19:39:02 -08:00
nodes_ip2p.py convert nodes_ip2p.pt to V3 schema (#10097) 2025-10-01 12:20:30 -07:00
nodes_kandinsky5.py Kandinsky5 model support (#10988) 2025-12-05 22:20:22 -05:00
nodes_latent.py V3 Improvements + DynamicCombo + Autogrow exposed in public API (#11345) 2025-12-30 23:09:55 -05:00
nodes_load_3d.py convert nodes_load_3d.py to V3 schema (#10990) 2025-12-03 13:52:31 -08:00
nodes_logic.py V3 Improvements + DynamicCombo + Autogrow exposed in public API (#11345) 2025-12-30 23:09:55 -05:00
nodes_lora_extract.py convert nodes_lora_extract.py to V3 schema (#10182) 2025-10-08 23:11:45 -07:00
nodes_lotus.py convert nodes_lotus.py to V3 schema (#10057) 2025-09-27 19:11:36 -07:00
nodes_lt.py Temp fix for LTXV custom nodes. (#10251) 2025-10-07 19:55:23 -04:00
nodes_lumina2.py convert nodes_lumina2.py to V3 schema (#10058) 2025-09-27 19:12:51 -07:00
nodes_mahiro.py convert nodes_mahiro.py to V3 schema (#10070) 2025-09-29 12:35:51 -07:00
nodes_mask.py [V3] convert nodes_mask.py to V3 schema (#10669) 2025-12-05 20:24:10 -08:00
nodes_mochi.py convert nodes_mochi.py to V3 schema (#10069) 2025-09-29 12:03:35 -07:00
nodes_model_advanced.py Add cosmos_rflow option to ModelSamplingContinuousEDM node. (#8523) 2025-06-13 17:47:52 -04:00
nodes_model_downscale.py convert nodes_freelunch.py to the V3 schema (#10904) 2025-12-05 20:22:02 -08:00
nodes_model_merging_model_specific.py Qwen Image model merging node. (#9202) 2025-08-06 04:07:04 -04:00
nodes_model_merging.py Make clipsave work with more TE models. (#7908) 2025-05-02 05:15:32 -04:00
nodes_model_patch.py ZImageFunControlNet: Fix mask concatenation in --gpu-only (#11421) 2025-12-20 00:22:17 -05:00
nodes_morphology.py convert nodes_morphology.py to V3 schema (#10159) 2025-10-02 13:53:00 -07:00
nodes_nop.py Native block swap custom nodes considered harmful. (#10783) 2025-11-18 00:26:44 -05:00
nodes_optimalsteps.py convert nodes_optimalsteps.py to V3 schema (#10074) 2025-10-01 12:18:04 -07:00
nodes_pag.py convert nodes_pag.py to V3 schema (#10080) 2025-10-01 12:18:49 -07:00
nodes_perpneg.py convert nodes_perpneg.py to V3 schema (#10081) 2025-09-29 12:05:28 -07:00
nodes_photomaker.py convert nodes_photomaker.py to V3 schema (#10017) 2025-09-27 02:36:43 -07:00
nodes_pixart.py convert nodes_pixart.py to V3 schema (#10019) 2025-09-27 02:34:32 -07:00
nodes_post_processing.py V3 Improvements + DynamicCombo + Autogrow exposed in public API (#11345) 2025-12-30 23:09:55 -05:00
nodes_preview_any.py change display name of PreviewAny node to "Preview as Text" (#10796) 2025-11-19 01:25:28 -08:00
nodes_primitive.py V3 Improvements + DynamicCombo + Autogrow exposed in public API (#11345) 2025-12-30 23:09:55 -05:00
nodes_qwen.py Add node to create empty latents for qwen image layered model. (#11460) 2025-12-21 19:59:40 -05:00
nodes_rebatch.py convert nodes_rebatch.py to V3 schema (#9945) 2025-09-26 14:10:49 -07:00
nodes_rope.py Add a ScaleROPE node. Currently only works on WAN models. (#10559) 2025-10-30 22:11:38 -04:00
nodes_sag.py convert nodes_sag.py to V3 schema (#9940) 2025-09-26 14:13:52 -07:00
nodes_sd3.py convert nodes_sd3.py and nodes_slg.py to V3 schema (#10162) 2025-10-09 15:18:23 -07:00
nodes_sdupscale.py convert nodes_sdupscale.py to V3 schema (#9943) 2025-09-26 14:12:38 -07:00
nodes_slg.py convert nodes_sd3.py and nodes_slg.py to V3 schema (#10162) 2025-10-09 15:18:23 -07:00
nodes_stable3d.py convert nodes_stable3d.py to V3 schema (#10204) 2025-10-04 12:33:48 -07:00
nodes_stable_cascade.py convert Stable Cascade nodes to V3 schema (#9373) 2025-08-30 23:19:21 -04:00
nodes_string.py convert String nodes to V3 schema (#9370) 2025-08-21 22:03:57 -04:00
nodes_tcfg.py convert nodes_tcfg.py to V3 schema (#9942) 2025-09-26 14:13:05 -07:00
nodes_tomesd.py convert nodes_tomesd.py to V3 schema (#10180) 2025-10-03 11:50:38 -07:00
nodes_torch_compile.py Disable guards on transformer_options when torch.compile (#11317) 2025-12-15 16:49:29 -05:00
nodes_train.py skip_load_model -> force_full_load (#11390) 2025-12-17 23:29:32 -05:00
nodes_upscale_model.py convert nodes_upscale_model.py to V3 schema (#10149) 2025-10-09 16:08:40 -07:00
nodes_video_model.py Temporal area composition. 2025-03-03 06:50:31 -05:00
nodes_video.py chore: replace imports of deprecated V1 classes (#11127) 2025-12-08 01:27:02 -08:00
nodes_wan.py Fix bug with WanAnimateToVideo. (#9990) 2025-09-22 17:34:33 -04:00
nodes_wanmove.py WanMove support (#11247) 2025-12-11 22:29:34 -05:00
nodes_webcam.py Fix WebcamCapture IS_CHANGED signature (#8413) 2025-06-09 13:05:54 -04:00