{
    "KSampler": {
        "input": {
            "required": {
                "model": [
                    "MODEL",
                    {
                        "tooltip": "The model used for denoising the input latent."
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "The random seed used for creating the noise."
                    }
                ],
                "steps": [
                    "INT",
                    {
                        "default": 20,
                        "min": 1,
                        "max": 10000,
                        "tooltip": "The number of steps used in the denoising process."
                    }
                ],
                "cfg": [
                    "FLOAT",
                    {
                        "default": 8.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.1,
                        "round": 0.01,
                        "tooltip": "The Classifier-Free Guidance scale balances creativity and adherence to the prompt. Higher values result in images more closely matching the prompt however too high values will negatively impact quality."
                    }
                ],
                "sampler_name": [
                    [
                        "euler",
                        "euler_cfg_pp",
                        "euler_ancestral",
                        "euler_ancestral_cfg_pp",
                        "heun",
                        "heunpp2",
                        "dpm_2",
                        "dpm_2_ancestral",
                        "lms",
                        "dpm_fast",
                        "dpm_adaptive",
                        "dpmpp_2s_ancestral",
                        "dpmpp_2s_ancestral_cfg_pp",
                        "dpmpp_sde",
                        "dpmpp_sde_gpu",
                        "dpmpp_2m",
                        "dpmpp_2m_cfg_pp",
                        "dpmpp_2m_sde",
                        "dpmpp_2m_sde_gpu",
                        "dpmpp_3m_sde",
                        "dpmpp_3m_sde_gpu",
                        "ddpm",
                        "lcm",
                        "ipndm",
                        "ipndm_v",
                        "deis",
                        "res_multistep",
                        "res_multistep_cfg_pp",
                        "res_multistep_ancestral",
                        "res_multistep_ancestral_cfg_pp",
                        "gradient_estimation",
                        "gradient_estimation_cfg_pp",
                        "er_sde",
                        "seeds_2",
                        "seeds_3",
                        "sa_solver",
                        "sa_solver_pece",
                        "ddim",
                        "uni_pc",
                        "uni_pc_bh2"
                    ],
                    {
                        "tooltip": "The algorithm used when sampling, this can affect the quality, speed, and style of the generated output."
                    }
                ],
                "scheduler": [
                    [
                        "simple",
                        "sgm_uniform",
                        "karras",
                        "exponential",
                        "ddim_uniform",
                        "beta",
                        "normal",
                        "linear_quadratic",
                        "kl_optimal"
                    ],
                    {
                        "tooltip": "The scheduler controls how noise is gradually removed to form the image."
                    }
                ],
                "positive": [
                    "CONDITIONING",
                    {
                        "tooltip": "The conditioning describing the attributes you want to include in the image."
                    }
                ],
                "negative": [
                    "CONDITIONING",
                    {
                        "tooltip": "The conditioning describing the attributes you want to exclude from the image."
                    }
                ],
                "latent_image": [
                    "LATENT",
                    {
                        "tooltip": "The latent image to denoise."
                    }
                ],
                "denoise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01,
                        "tooltip": "The amount of denoising applied, lower values will maintain the structure of the initial image allowing for image to image sampling."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "seed",
                "steps",
                "cfg",
                "sampler_name",
                "scheduler",
                "positive",
                "negative",
                "latent_image",
                "denoise"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "KSampler",
        "display_name": "KSampler",
        "description": "Uses the provided model, positive and negative conditioning to denoise the latent image.",
        "python_module": "nodes",
        "category": "sampling",
        "output_node": false,
        "output_tooltips": [
            "The denoised latent."
        ]
    },
    "CheckpointLoaderSimple": {
        "input": {
            "required": {
                "ckpt_name": [
                    [
                        "3D_Anime.safetensors",
                        "3D_Concept.safetensors",
                        "FLUX1/flux1-dev-fp8.safetensors",
                        "GTA5_Artwork_Diffusion_gtav_style.safetensors",
                        "Juggernaut_X_RunDiffusion.safetensors",
                        "LTXV/ltxv-13b-0.9.7-dev-fp8.safetensors",
                        "MOHAWK_v20.safetensors",
                        "MOHAWK_v20BackedVAE.safetensors",
                        "RealVisXL_V4.0.safetensors",
                        "Realistic_Vision_V6.0_NV_B1.safetensors",
                        "RunComfyDefault/v1-5-pruned-emaonly.safetensors",
                        "SD1.5/v1-5-pruned-emaonly.ckpt",
                        "SD2.1/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors",
                        "SDXL-TURBO/sd_xl_turbo_1.0_fp16.safetensors",
                        "SDXL/sd_xl_base_1.0.safetensors",
                        "SDXL/sd_xl_base_1.0_0.9vae.safetensors",
                        "SDXL/sd_xl_refiner_1.0_0.9vae.safetensors",
                        "SUPIR/SUPIR-v0F.ckpt",
                        "SVD/svd.safetensors",
                        "SVD/svd_xt.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_gs_swin8_B_64l8gs32_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_mesh_swin8_B_64l8m256c_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_rf_swin8_B_64l8r16_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_enc_swin8_B_64l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_flow_img_dit_L_64l8p2_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_dec_conv3d_16l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_enc_conv3d_16l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_flow_img_dit_L_16l8_fp16.safetensors",
                        "TripoSR/model.ckpt",
                        "bigLust_v16.safetensors",
                        "ccsr/real-world_ccsr.ckpt",
                        "cyberrealisticPony_v110.safetensors",
                        "cyberrealisticPony_v8.safetensors",
                        "cyberrealisticPony_v85.safetensors",
                        "cyberrealisticPony_v90Alt1.safetensors",
                        "cyberrealisticXL_v57.safetensors",
                        "disneyPixarCartoon_v10.safetensors",
                        "dreamCreationVirtual3DECommerce_v10.safetensors",
                        "dreamshaperXL_v21TurboDPMSDE.safetensors",
                        "dreamshaper_8.safetensors",
                        "dynamicrafter/dynamicrafter_1024_v1.ckpt",
                        "dynamicrafter/dynamicrafter_1024_v1_bf16.safetensors",
                        "dynamicrafter/dynamicrafter_512_interp_v1.ckpt",
                        "dynamicrafter/dynamicrafter_512_interp_v1_bf16.safetensors",
                        "dynamicrafter/tooncrafter_512_interp-pruned-fp16.safetensors",
                        "epicrealismXL_v8Kiss.safetensors",
                        "epicrealismXL_vxivEyecandyRealism.safetensors",
                        "epicrealismXL_vxviLastfameRealism.safetensors",
                        "epicrealism_naturalSinRC1VAE.safetensors",
                        "flat2DAnimerge_v45Sharp.safetensors",
                        "flux/flux1-dev-bnb-nf4-v2.safetensors",
                        "flux/flux1-dev-fp8.safetensors",
                        "flux/flux1-dev.sft",
                        "flux/flux1-schnell-fp8.safetensors",
                        "flux/flux1-schnell.sft",
                        "flux/fluxRealistic_fluxRealisticSamayV2.safetensors",
                        "flux/kijai/flux1-dev-fp8.safetensors",
                        "flux/lumiere_flux_alpha-fp8.safetensors",
                        "flux1-dev-fp8.safetensors",
                        "flux1-dev.safetensors",
                        "flux1-redux-dev.safetensors",
                        "flux1-schnell.safetensors",
                        "illustriousXL_v01.safetensors",
                        "ilustmix_v6.safetensors",
                        "juggernautXL_ragnarokBy.safetensors",
                        "juggernautXL_versionXInpaint.safetensors",
                        "leosamsFilmgirlUltra_ultraBaseModel.safetensors",
                        "ltx/ltx-video-2b-v0.9.safetensors",
                        "ltxv-13b-0.9.7-dev.safetensors",
                        "lustifySDXLNSFW_endgame.safetensors",
                        "lustifySDXLNSFW_oltFIXEDTEXTURES.safetensors",
                        "majicmixRealistic_v7.safetensors",
                        "meinamix_v12Final.safetensors",
                        "noobaiCyberfix_eps11PerpCyberfix.safetensors",
                        "noobaiXLNAIXL_vPred10Version.safetensors",
                        "photon_v1.safetensors",
                        "ponyDiffusionV6XL_v6StartWithThisOne.safetensors",
                        "ponyRealism_V22MainVAE.safetensors",
                        "ponyRealism_V23.safetensors",
                        "ponyRealism_V23ULTRA.safetensors",
                        "realDream_sdxlPony15.safetensors",
                        "realisticVisionV51_v51VAE.safetensors",
                        "realisticVisionV60B1_v51HyperVAE.safetensors",
                        "realisticVisionV60B1_v51VAE.safetensors",
                        "realvisxlV50_v50LightningBakedvae.safetensors",
                        "sa1/stable_audio_open_1.0.safetensors",
                        "sc/stable_cascade_stage_b.safetensors",
                        "sc/stable_cascade_stage_c.safetensors",
                        "sd1/Deliberate_v2.safetensors",
                        "sd1/absolutereality_lcm.safetensors",
                        "sd1/animatrix_v20.safetensors",
                        "sd1/animeStills_v1.safetensors",
                        "sd1/animerge_v40.safetensors",
                        "sd1/anythingV3_fp16.safetensors",
                        "sd1/artUniverse_v80.safetensors",
                        "sd1/arthemyComics_v70.safetensors",
                        "sd1/cardosAnime_v20.safetensors",
                        "sd1/chilloutmix_NiPrunedFp16Fix.safetensors",
                        "sd1/chilloutmix_NiPrunedFp32Fix.safetensors",
                        "sd1/comfyroll_v10Anime.safetensors",
                        "sd1/comicDiffusion_v1.ckpt",
                        "sd1/comicDiffusion_v2.ckpt",
                        "sd1/crystalClear2_crystalClear2V1.safetensors",
                        "sd1/cyberrealistic_v33.safetensors",
                        "sd1/ddosmix_V2.safetensors",
                        "sd1/dreamshaper_8.safetensors",
                        "sd1/dreamshaper_8LCM.safetensors",
                        "sd1/dreamshaper_8_inpainting.safetensors",
                        "sd1/epicphotogasm_amateurreallife.safetensors",
                        "sd1/epicrealism_naturalSinRC1VAE.safetensors",
                        "sd1/f222_v1.ckpt",
                        "sd1/flat2DAnimerge_v20.safetensors",
                        "sd1/ghostmix_v20Bakedvae.safetensors",
                        "sd1/helloyoung25d_V10f.safetensors",
                        "sd1/helloyoung2d_V12g.safetensors",
                        "sd1/icbinpICantBelieveIts_afterburn.safetensors",
                        "sd1/icbinpICantBelieveIts_seco.safetensors",
                        "sd1/icomix_V05.safetensors",
                        "sd1/majicmixLux_v1.safetensors",
                        "sd1/majicmixLux_v2.safetensors",
                        "sd1/majicmixLux_v3.safetensors",
                        "sd1/majicmixSombre_v20.safetensors",
                        "sd1/meinamix_meinaV11.safetensors",
                        "sd1/meinapastel_v6Pastel.safetensors",
                        "sd1/meinaunreal_v41.safetensors",
                        "sd1/paradigmLCM_v10.safetensors",
                        "sd1/photographerAlpha7_v3.safetensors",
                        "sd1/photonLCM_v10.safetensors",
                        "sd1/photon_v1.safetensors",
                        "sd1/realcartoon3d_v14.safetensors",
                        "sd1/realdosmix_.safetensors",
                        "sd1/realisian_v50.safetensors",
                        "sd1/realisticVisionV60B1_v51VAE.safetensors",
                        "sd1/redshiftDiffusion_v1.ckpt",
                        "sd1/revAnimated_v122EOL.safetensors",
                        "sd1/toonyou_beta6.safetensors",
                        "sd1/universestable_v50Comics.safetensors",
                        "sd1/vinteprotogenmix_V20.safetensors",
                        "sd35/sd3.5_large.safetensors",
                        "sd35/sd3.5_large_fp8_scaled.safetensors",
                        "sd35/sd3.5_large_turbo.safetensors",
                        "sd3m/sd3_medium.safetensors",
                        "sd3m/sd3_medium_incl_clips.safetensors",
                        "sd3m/sd3_medium_incl_clips_t5xxlfp16.safetensors",
                        "sd3m/sd3_medium_incl_clips_t5xxlfp8.safetensors",
                        "sd_xl_refiner_1.0_0.9vae.safetensors",
                        "sdxl/Juggernaut-XL_v9_RunDiffusionPhoto_v2.safetensors",
                        "sdxl/albedobaseXL_v13.safetensors",
                        "sdxl/bluepencilxl_v310.safetensors",
                        "sdxl/breakdomainxl_V06d.safetensors",
                        "sdxl/counterfeitxl_v10.safetensors",
                        "sdxl/crystalClearXL_ccxl.safetensors",
                        "sdxl/dreamshaperXL_lightningDPMSDE.safetensors",
                        "sdxl/dreamshaperXL_v21TurboDPMSDE.safetensors",
                        "sdxl/dreamshaperXL_v2TurboDPMSDE.safetensors",
                        "sdxl/juggernautXL_v9Rdphoto2Lightning.safetensors",
                        "sdxl/juggernautXL_v9Rundiffusionphoto2.safetensors",
                        "sdxl/juggernautXL_version6Rundiffusion.safetensors",
                        "sdxl/leosamsHelloworldXL_helloworldXL70.safetensors",
                        "sdxl/moxieDiffusionXL_v18.safetensors",
                        "sdxl/perfectdeliberate_v5.safetensors",
                        "sdxl/playground-v2.5-1024px-aesthetic.fp16.safetensors",
                        "sdxl/playground-v2.5-1024px-aesthetic.safetensors",
                        "sdxl/proteus_v03.safetensors",
                        "sdxl/protovisionXLHighFidelity3D_releaseV660Bakedvae.safetensors",
                        "sdxl/realcartoonXL_v6.safetensors",
                        "sdxl/realitycheckXL_alpha11.safetensors",
                        "sdxl/reproductionSDXL_2v12.safetensors",
                        "sdxl/reproductionSDXL_v31.safetensors",
                        "sdxl/revAnimated_v11.safetensors",
                        "sdxl/sd_xl_base_1.0.safetensors",
                        "sdxl/sd_xl_turbo_1.0.safetensors",
                        "sdxl/sdxlUnstableDiffusers_v11.safetensors",
                        "sdxl/tamarinXL_v10.safetensors",
                        "sdxl/wildcardxXLTURBO_wildcardxXLTURBOV10.safetensors",
                        "supir/SUPIR-v0F.ckpt",
                        "supir/SUPIR-v0Q.ckpt",
                        "svd/svd.safetensors",
                        "svd/svd_xt.safetensors",
                        "svd/svd_xt_1_1.safetensors",
                        "uberRealisticPornMergePonyxl_ponyxlHybridV1.safetensors",
                        "upscale/x4-upscaler-ema.safetensors",
                        "v1-5-pruned-emaonly-fp16.safetensors",
                        "v1-5-pruned-emaonly.ckpt",
                        "v2-1_768-ema-pruned.safetensors",
                        "waiNSFWIllustrious_v140.safetensors",
                        "wildcardxXLANIMATION_wildcardxXLANIMATION.safetensors"
                    ],
                    {
                        "tooltip": "The name of the checkpoint (model) to load."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "ckpt_name"
            ]
        },
        "output": [
            "MODEL",
            "CLIP",
            "VAE"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "MODEL",
            "CLIP",
            "VAE"
        ],
        "name": "CheckpointLoaderSimple",
        "display_name": "Load Checkpoint",
        "description": "Loads a diffusion model checkpoint, diffusion models are used to denoise latents.",
        "python_module": "nodes",
        "category": "loaders",
        "output_node": false,
        "output_tooltips": [
            "The model used for denoising latents.",
            "The CLIP model used for encoding text prompts.",
            "The VAE model used for encoding and decoding images to and from latent space."
        ]
    },
    "CLIPTextEncode": {
        "input": {
            "required": {
                "text": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true,
                        "tooltip": "The text to be encoded."
                    }
                ],
                "clip": [
                    "CLIP",
                    {
                        "tooltip": "The CLIP model used for encoding the text."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "text",
                "clip"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "CLIPTextEncode",
        "display_name": "CLIP Text Encode (Prompt)",
        "description": "Encodes a text prompt using a CLIP model into an embedding that can be used to guide the diffusion model towards generating specific images.",
        "python_module": "nodes",
        "category": "conditioning",
        "output_node": false,
        "output_tooltips": [
            "A conditioning containing the embedded text used to guide the diffusion model."
        ]
    },
    "CLIPSetLastLayer": {
        "input": {
            "required": {
                "clip": [
                    "CLIP"
                ],
                "stop_at_clip_layer": [
                    "INT",
                    {
                        "default": -1,
                        "min": -24,
                        "max": -1,
                        "step": 1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip",
                "stop_at_clip_layer"
            ]
        },
        "output": [
            "CLIP"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CLIP"
        ],
        "name": "CLIPSetLastLayer",
        "display_name": "CLIP Set Last Layer",
        "description": "",
        "python_module": "nodes",
        "category": "conditioning",
        "output_node": false
    },
    "VAEDecode": {
        "input": {
            "required": {
                "samples": [
                    "LATENT",
                    {
                        "tooltip": "The latent to be decoded."
                    }
                ],
                "vae": [
                    "VAE",
                    {
                        "tooltip": "The VAE model used for decoding the latent."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "vae"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "VAEDecode",
        "display_name": "VAE Decode",
        "description": "Decodes latent images back into pixel space images.",
        "python_module": "nodes",
        "category": "latent",
        "output_node": false,
        "output_tooltips": [
            "The decoded image."
        ]
    },
    "VAEEncode": {
        "input": {
            "required": {
                "pixels": [
                    "IMAGE"
                ],
                "vae": [
                    "VAE"
                ]
            }
        },
        "input_order": {
            "required": [
                "pixels",
                "vae"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "VAEEncode",
        "display_name": "VAE Encode",
        "description": "",
        "python_module": "nodes",
        "category": "latent",
        "output_node": false
    },
    "VAEEncodeForInpaint": {
        "input": {
            "required": {
                "pixels": [
                    "IMAGE"
                ],
                "vae": [
                    "VAE"
                ],
                "mask": [
                    "MASK"
                ],
                "grow_mask_by": [
                    "INT",
                    {
                        "default": 6,
                        "min": 0,
                        "max": 64,
                        "step": 1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "pixels",
                "vae",
                "mask",
                "grow_mask_by"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "VAEEncodeForInpaint",
        "display_name": "VAE Encode (for Inpainting)",
        "description": "",
        "python_module": "nodes",
        "category": "latent/inpaint",
        "output_node": false
    },
    "VAELoader": {
        "input": {
            "required": {
                "vae_name": [
                    [
                        "FLUX1/ae.safetensors",
                        "MoistMixV2.vae.pt",
                        "SD1.5/openai_consistency_decoder/decoder.pt",
                        "SD1.5/orangemix.vae.pt",
                        "SD1.5/vae-ft-mse-840000-ema-pruned.safetensors",
                        "SD2.1/kl-f8-anime2.ckpt",
                        "SDXL/sdxl_vae.safetensors",
                        "Stable-Cascade/effnet_encoder.safetensors",
                        "Stable-Cascade/stage_a.safetensors",
                        "Wan2.1_VAE.pth",
                        "Wan2_1_VAE_bf16.safetensors",
                        "Wan2_1_VAE_fp32.safetensors",
                        "ae.safetensors",
                        "cosmos/cosmos_cv8x8x8_1.0.safetensors",
                        "cosmos_cv8x8x8_1.0.safetensors",
                        "flux/ae.safetensors",
                        "flux/ae.sft",
                        "flux_vae.safetensors",
                        "hunyuan/hunyuan_video_vae_bf16.safetensors",
                        "hunyuan/hunyuan_video_vae_fp32.safetensors",
                        "hunyuan3d-vae-v2-1/model.fp16.ckpt",
                        "hunyuan_video_vae_bf16.safetensors",
                        "kl-f8-anime2.ckpt",
                        "kolors/diffusion_pytorch_model.fp16.safetensors",
                        "kolors/diffusion_pytorch_model.safetensors",
                        "pyramid_flow_vae_bf16.safetensors",
                        "pyramid_flow_vae_fp32.safetensors",
                        "qwen_image_vae.safetensors",
                        "sc/stage_a.safetensors",
                        "sd1/YOZORA.vae.pt",
                        "sd1/clearvae_v23.safetensors",
                        "sd1/color101VAE_v1.safetensors",
                        "sd1/difconsistencyRAWVAE_v10.pt",
                        "sd1/klF8Anime2VAE_klF8Anime2VAE.safetensors",
                        "sd1/matrixVAE_v30.pt",
                        "sd1/vae-ft-mse-840000-ema-pruned.safetensors",
                        "sdxl/fixFP16ErrorsSDXLLowerMemoryUse_v10.safetensors",
                        "sdxl/lastpiecexlVAE_baseonA0897.safetensors",
                        "sdxl/sdxl_vae.safetensors",
                        "vae-ft-mse-840000-ema-pruned.safetensors",
                        "vaeFtMse840000EmaPruned_vaeFtMse840k.safetensors",
                        "wan2.2_vae.safetensors",
                        "wan2_1/Wan2_1_VAE_bf16.safetensors",
                        "wan2_1/Wan2_1_VAE_fp32.safetensors",
                        "wan_2.1_vae.safetensors",
                        "taesd",
                        "taesdxl",
                        "taesd3",
                        "taef1"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "vae_name"
            ]
        },
        "output": [
            "VAE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VAE"
        ],
        "name": "VAELoader",
        "display_name": "Load VAE",
        "description": "",
        "python_module": "nodes",
        "category": "loaders",
        "output_node": false
    },
    "EmptyLatentImage": {
        "input": {
            "required": {
                "width": [
                    "INT",
                    {
                        "default": 512,
                        "min": 16,
                        "max": 16384,
                        "step": 8,
                        "tooltip": "The width of the latent images in pixels."
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 512,
                        "min": 16,
                        "max": 16384,
                        "step": 8,
                        "tooltip": "The height of the latent images in pixels."
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096,
                        "tooltip": "The number of latent images in the batch."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "width",
                "height",
                "batch_size"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "EmptyLatentImage",
        "display_name": "Empty Latent Image",
        "description": "Create a new batch of empty latent images to be denoised via sampling.",
        "python_module": "nodes",
        "category": "latent",
        "output_node": false,
        "output_tooltips": [
            "The empty latent image batch."
        ]
    },
    "LatentUpscale": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "upscale_method": [
                    [
                        "nearest-exact",
                        "bilinear",
                        "area",
                        "bicubic",
                        "bislerp"
                    ]
                ],
                "width": [
                    "INT",
                    {
                        "default": 512,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 512,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "crop": [
                    [
                        "disabled",
                        "center"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "upscale_method",
                "width",
                "height",
                "crop"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentUpscale",
        "display_name": "Upscale Latent",
        "description": "",
        "python_module": "nodes",
        "category": "latent",
        "output_node": false
    },
    "LatentUpscaleBy": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "upscale_method": [
                    [
                        "nearest-exact",
                        "bilinear",
                        "area",
                        "bicubic",
                        "bislerp"
                    ]
                ],
                "scale_by": [
                    "FLOAT",
                    {
                        "default": 1.5,
                        "min": 0.01,
                        "max": 8.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "upscale_method",
                "scale_by"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentUpscaleBy",
        "display_name": "Upscale Latent By",
        "description": "",
        "python_module": "nodes",
        "category": "latent",
        "output_node": false
    },
    "LatentFromBatch": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "batch_index": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 63
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 64
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "batch_index",
                "length"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentFromBatch",
        "display_name": "Latent From Batch",
        "description": "",
        "python_module": "nodes",
        "category": "latent/batch",
        "output_node": false
    },
    "RepeatLatentBatch": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "amount": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 64
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "amount"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "RepeatLatentBatch",
        "display_name": "Repeat Latent Batch",
        "description": "",
        "python_module": "nodes",
        "category": "latent/batch",
        "output_node": false
    },
    "SaveImage": {
        "input": {
            "required": {
                "images": [
                    "IMAGE",
                    {
                        "tooltip": "The images to save."
                    }
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "ComfyUI",
                        "tooltip": "The prefix for the file to save. This may include formatting information such as %date:yyyy-MM-dd% or %Empty Latent Image.width% to include values from nodes."
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "images",
                "filename_prefix"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "SaveImage",
        "display_name": "Save Image",
        "description": "Saves the input images to your ComfyUI output directory.",
        "python_module": "nodes",
        "category": "image",
        "output_node": true
    },
    "PreviewImage": {
        "input": {
            "required": {
                "images": [
                    "IMAGE"
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "images"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "PreviewImage",
        "display_name": "Preview Image",
        "description": "Saves the input images to your ComfyUI output directory.",
        "python_module": "nodes",
        "category": "image",
        "output_node": true
    },
    "LoadImage": {
        "input": {
            "required": {
                "image": [
                    [
                        "0.jpg",
                        "00012-3598253742.jpeg",
                        "00067-2712978131.jpeg",
                        "001.png",
                        "002 (1).png",
                        "002.png",
                        "003024_0001.png",
                        "011.webp",
                        "012 (1).webp",
                        "012.webp",
                        "013 (1).webp",
                        "013.webp",
                        "014.webp",
                        "015.webp",
                        "016.webp",
                        "018.webp",
                        "019.webp",
                        "020.webp",
                        "021.webp",
                        "022-.webp",
                        "022.webp",
                        "023.webp",
                        "024.webp",
                        "025-.webp",
                        "025.webp",
                        "027.png",
                        "027.webp",
                        "031.png",
                        "031.webp",
                        "032.webp",
                        "033.webp",
                        "034.webp",
                        "036.jpeg",
                        "04.png",
                        "042.png",
                        "042a.png",
                        "0_0 (1).png",
                        "0_0 (1).webp",
                        "0_0 (10).webp",
                        "0_0 (11).png",
                        "0_0 (15).png",
                        "0_0 (16).png",
                        "0_0 (17).png",
                        "0_0 (19) (1).png",
                        "0_0 (19).png",
                        "0_0 (2).webp",
                        "0_0 (20).png",
                        "0_0 (24).png",
                        "0_0 (3).webp",
                        "0_0 (4).png",
                        "0_0 (5) (1).png",
                        "0_0 (5) (2).png",
                        "0_0 (5).png",
                        "0_0 (5).webp",
                        "0_0 (5)_\u526f\u672c.jpg",
                        "0_0 (6).png",
                        "0_0 (6).webp",
                        "0_0 (7) (1).webp",
                        "0_0 (7) 1.png",
                        "0_0 (7).png",
                        "0_0 (7).webp",
                        "0_0 (8) (1).png",
                        "0_0 (8).png",
                        "0_0 (9).webp",
                        "0_0 1.png",
                        "0_0.png",
                        "0_0.webp",
                        "0_0_384_N.webp",
                        "0_1 (1) (1).png",
                        "0_1 (1) 1 (1).png",
                        "0_1 (1).png",
                        "0_1 (1).webp",
                        "0_1 (10).webp",
                        "0_1 (13).webp",
                        "0_1 (14) (1).webp",
                        "0_1 (14) (2).webp",
                        "0_1 (14) (3).webp",
                        "0_1 (14).webp",
                        "0_1 (15) (1).webp",
                        "0_1 (15).webp",
                        "0_1 (16) (1).webp",
                        "0_1 (16).webp",
                        "0_1 (17).webp",
                        "0_1 (2) (1).png",
                        "0_1 (2).png",
                        "0_1 (2).webp",
                        "0_1 (3).webp",
                        "0_1 (4).webp",
                        "0_1 (5) (1).webp",
                        "0_1 (5).webp",
                        "0_1 (6) (1).png",
                        "0_1 (6).png",
                        "0_1 (7).webp",
                        "0_1 (8).webp",
                        "0_1 (9).png",
                        "0_1 (9).webp",
                        "0_1.webp",
                        "0_2 (1).png",
                        "0_2 (11).webp",
                        "0_2 (12) (1).png",
                        "0_2 (12).png",
                        "0_2 (12).webp",
                        "0_2 (13).webp",
                        "0_2 (15).webp",
                        "0_2 (2).png",
                        "0_2 (4).png",
                        "0_2 (4).webp",
                        "0_2 (5) (1).webp",
                        "0_2 (5).webp",
                        "0_2 (6).webp",
                        "0_2 (7).webp",
                        "0_2 (8) (1).png",
                        "0_2 (8) (2).png",
                        "0_2 (8).png",
                        "0_2 (8).webp",
                        "0_2 (9) (1).webp",
                        "0_2 (9).webp",
                        "0_3 (10).webp",
                        "0_3 (11) (1).webp",
                        "0_3 (11).webp",
                        "0_3 (13).webp",
                        "0_3 (14) (1).webp",
                        "0_3 (14).webp",
                        "0_3 (16).webp",
                        "0_3 (17).webp",
                        "0_3 (2) (1).png",
                        "0_3 (2).png",
                        "0_3 (22).webp",
                        "0_3 (23).webp",
                        "0_3 (24) (1).webp",
                        "0_3 (24) 1 (1).png",
                        "0_3 (24) 1.png",
                        "0_3 (24).webp",
                        "0_3 (25).webp",
                        "0_3 (3).png",
                        "0_3 (3).webp",
                        "0_3 (5).webp",
                        "0_3 (6).png",
                        "0_3 (6).webp",
                        "0_3 (8).webp",
                        "0_3 (9) (1).webp",
                        "0_3 (9).webp",
                        "0_3.webp",
                        "1003_input (1).png",
                        "1003_input 1 (1).png",
                        "1003_input 1.png",
                        "1003_input.png",
                        "1003_input_3 (1).png",
                        "1003_input_3.png",
                        "1019_image.png",
                        "102 (1).jpeg",
                        "102.jpeg",
                        "106.jpeg",
                        "107.jpeg",
                        "108.jpeg",
                        "1087_00001_.png",
                        "1088_00030_.png",
                        "1089_00019_ (1).png",
                        "1089_00019_.png",
                        "109.jpeg",
                        "10_0.png",
                        "10_1 (1).png",
                        "111 (1).png",
                        "111.png",
                        "1111 (1).webp",
                        "1111.webp",
                        "1112 (1).png",
                        "1112.png",
                        "1112.webp",
                        "1113.webp",
                        "1114.webp",
                        "112.png",
                        "1122.png",
                        "1129_00180_.png",
                        "113.jpeg",
                        "114.jpeg",
                        "115 (1).png",
                        "115.png",
                        "117.png",
                        "118 (1).jpeg",
                        "118.jpeg",
                        "119 (1).jpeg",
                        "119 (1).webp",
                        "119 (2).webp",
                        "119.jpeg",
                        "119.webp",
                        "120.png",
                        "121.png",
                        "1234.png",
                        "124.png",
                        "125.png",
                        "126.png",
                        "2024-06-07 16.50.54.png",
                        "8f2fa88fb99dadcf109427cd60de037a 2 (1).jpg",
                        "8f2fa88fb99dadcf109427cd60de037a 2.jpg",
                        "909px-Van_Gogh_-_Starry_Night_-_Google_Art_Project (1).webp",
                        "909px-Van_Gogh_-_Starry_Night_-_Google_Art_Project.webp",
                        "921.webp",
                        "922.webp",
                        "923-1.webp",
                        "923.webp",
                        "924-2.webp",
                        "924.webp",
                        "925.webp",
                        "ComfyUI_00004_ (1).png",
                        "ComfyUI_00004_.png",
                        "ComfyUI_00025_.png",
                        "ComfyUI_00028_.png",
                        "ComfyUI_00036_.png",
                        "ComfyUI_00124_ (1).png",
                        "ComfyUI_00124_.png",
                        "ComfyUI_00127_.png",
                        "ComfyUI_00132_.png",
                        "ComfyUI_00133_.png",
                        "ComfyUI_00134_.png",
                        "ComfyUI_00136_.png",
                        "ComfyUI_temp_fgoek_00006_.png",
                        "ComfyUI_temp_istrz_00002_ (1).png",
                        "ComfyUI_temp_istrz_00002_.png",
                        "ComfyUI_temp_njtns_00025_.png",
                        "ComfyUI_temp_okprh_00001_.png",
                        "ComfyUI_temp_posbs_00002_ (1).png",
                        "ComfyUI_temp_posbs_00002_.png",
                        "ComfyUI_temp_sfrqd_00031_ (1).png",
                        "ComfyUI_temp_updsf_00002_.png",
                        "ComfyUI_temp_ypgle_00001_.png",
                        "Group 1000008304.png",
                        "Jiplinfloyd_cleopatre_wearing_streetwear_clothing_cf9e2833-8316-4626-8e84-37bc85ab8229.png",
                        "LisLiza_Picture_of_Cleopatra_in_Golden_Colours._Background_dese_6b2390de-50ec-4f3c-9696-01902f6bb5ec.png",
                        "Meghan-Markle-Johanna-Ortiz-Gold-Dress.png",
                        "Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched (1).jpg",
                        "Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched.jpg",
                        "Moving LightMask End.jpg",
                        "Moving LightMask Start.jpg",
                        "Paint_209.png",
                        "Pose_sheet.png",
                        "Pose_sheet_v02.png",
                        "R03960049_PINK_ALT10.jpeg",
                        "Reference (1).jpeg",
                        "Reference.jpeg",
                        "RunComfy_example_1151_pose_sheet.png",
                        "RunComfy_example_1169_mask.jpg",
                        "RunComfy_example_1169_mask.png",
                        "RunComfy_examples_1082.png",
                        "RunComfy_examples_1093_video_firstframe.jpg",
                        "RunComfy_examples_1124_2.png",
                        "RunComfy_examples_1124_3.png",
                        "RunComfy_examples_1130.png",
                        "RunComfy_examples_1131.jpg",
                        "RunComfy_examples_1136.png",
                        "RunComfy_examples_1139.png",
                        "RunComfy_examples_1149_1.png",
                        "RunComfy_examples_1149_2.png",
                        "RunComfy_examples_1150.png",
                        "RunComfy_examples_1151.png",
                        "RunComfy_examples_1152_1.png",
                        "RunComfy_examples_1152_2.png",
                        "RunComfy_examples_1157.png",
                        "RunComfy_examples_1164_1.png",
                        "RunComfy_examples_1172_1.png",
                        "RunComfy_examples_1173.png",
                        "Runcomfy_Example_1208_1.png",
                        "Runcomfy_example_1171.png",
                        "Screenshot 2024-11-04 at 3.17.41 PM.png",
                        "Snow.png",
                        "Test (1).webp",
                        "Test (2).webp",
                        "Test.png",
                        "Test.webp",
                        "Test1.png",
                        "Test12.jpg",
                        "Test2.jpg",
                        "Test3.webp",
                        "Untitled-1.webp",
                        "Untitled_Artwork+copy.jpg",
                        "WechatIMG1199 1.png",
                        "WechatIMG1199.jpg",
                        "WhatsApp Image 2024-07-01 at 16.20.54_67c60483.jpg",
                        "aa6ebee4a466044766dbad98f705190f.jpg",
                        "abouthugo_smooth_seamless_liquid_gradient_cf246a87-f8dc-467a-b717-f111c7aee2d2.png",
                        "aidonna_van_gogh_style_landscapenight_--ar_916_--style_raw_--v__aedd3b9e-065d-4f14-95f1-5e95a101549b.png",
                        "aitsu_cookie_monster_actually_has_thousands_of_razor_sharp_teet_2484ccae-812c-4fce-a38d-f99f58d46ad6 (1).png",
                        "aitsu_cookie_monster_actually_has_thousands_of_razor_sharp_teet_2484ccae-812c-4fce-a38d-f99f58d46ad6.png",
                        "alirezapremium_62072_white_T-shirt_male_model_in_cozy_backgroun_389346f6-ab68-4d43-aa35-cc6dfb5c1a1f.png",
                        "andylau_png24.png",
                        "annrudakovaa_photography_of_an_attractive_woman_sitting_on_top__7b7b9216-09dd-445a-87c1-48725f7a30e4.png",
                        "canvas_Image.png",
                        "carmenta_Blonde_girl_full_body_shot_mirror_selfie_in_bedroom_--_a1991a4b-fe43-4eea-b144-f4c6bd6583ff.png",
                        "chuckaveli954_Create_a_character_concept_art_of_a_19-year-old_A_f908ffa8-9b70-4538-8740-75837cf14bed.png",
                        "claudeionita_a_good_looking_caucasian_man_wearing_a_white_t-shi_86034d0f-a089-4df1-8e1e-91975f9d999c.png",
                        "dance_05.png",
                        "dbmj2_realistic_gta_v_style_character_ghetto_thug_in_purple_out_a7743ea5-0ed4-42fb-9311-12f7d2218698 (1).png",
                        "djtide_Pretty_adorable_and_rich_instagram_influencer_20-years_w_f1a9b898-bc46-4c4b-a255-7e6050f073b5.png",
                        "eddiemax7894_3h_The_streets_were_lined_with_small_shops_and_hou_bf996244-0d95-49bd-a933-b70f010722b5.png",
                        "elenam8872_a_very_minimal_photography_of_a_blue_windows_on_a_wh_344bed35-d2cf-4090-b499-dc2a8d31671e.png",
                        "emirhans200_This_photo_shows_a_sweaty_young_woman_on_the_beach__c631d1f2-a31d-4ae0-a09f-0b1e3ac1a30e (2).png",
                        "example.jpg",
                        "example.png",
                        "ezgif-frame-001 (1).jpg",
                        "ezgif-frame-001.jpg",
                        "flexing_03.png",
                        "genivaljunior_street_by_Michael_Craig-Martin_fd8063a3-2556-482b-9629-1bfc192cfcdd.png",
                        "golden-retriever-tongue-out.jpg",
                        "goldenleafshop_39657_a_golden_colored_thc_rosin_dab_in_a_small__0cd5d57b-a591-4e7f-b1b9-e68c1c410bc7.png",
                        "gotothemoon10_a_pretty_latina_woman_with_straight_blond_hair_an_82dd54b6-2dfc-42aa-85df-72093b0cc5e6.png",
                        "helgekerler_portrait_of_a_smiling_young_man_with_arms_folded_yo_9d5bae72-884a-4d27-87a4-1cf9b6cc5111.png",
                        "horwood_smiling_hot_incredible_body_beautiful_bright_color_hair_b8ee4e43-cee1-4d3a-96db-c69de860438c.png",
                        "ilightice_modern_fashion_outfits_in_superbowl_style_luxury_fash_4e43bd66-41be-4a4f-9a1c-1d335d195297.png",
                        "image 257.png",
                        "image 264.png",
                        "image-test (1).png",
                        "image-test.png",
                        "images (1).jpeg",
                        "inpainting-example.png",
                        "intro 1.png",
                        "josem7815_shlomit_riger_posing_for_a_photoshoot_full_color_full_e9b8652e-1237-4884-b3e6-8c9c4c9119ba.png",
                        "khfbnh_dz6Fh4YxgvNiG_--ar_11_--quality_0.5_--stylize_500_--v_6._6f091d6e-4624-4fd7-acb0-3e3ff54c5862.png",
                        "korehan7_Photo_of_a_20-year-old_female_with_a_polished_and_soph_aaf64ea4-f195-4214-bb5a-4e99e6c6487a.png",
                        "lemonswan._selfie_of_a_woman_in_her_early_30s_hazlenut_long_hai_bb808d3d-8472-4e57-ab7e-323b5eabff61 1.png",
                        "lemonswan._selfie_of_a_woman_in_her_early_30s_hazlenut_long_hai_bb808d3d-8472-4e57-ab7e-323b5eabff61 2.png",
                        "lucialululu_1_portrait_of_a_happy_young_man_with_a_yellow_t-shi_be8aa564-3e4c-4fe2-8b15-3d1767c5a53e.png",
                        "lucialululu_3D_model_of_a_game_character_zombie_with_an_axe_in__8eeb6e99-a287-4fbf-bcac-e3805743addf.png",
                        "lucialululu_A_Black_man_with_red_sunglasses_and_long_Afro_hair__d8de0d25-3d31-46f9-8df3-8be80d569d9a.png",
                        "lucialululu_A_beautiful_girl_with_long_blonde_hair_wearing_a_bl_31c6938e-ee1b-4aef-9f95-3a5f86e44899.png",
                        "lucialululu_A_group_of_dogs_in_black_and_white_suits_playing_mu_2d990dfe-a349-4b14-b362-ecf2909b42f0.png",
                        "lucialululu_A_man_in_a_grey_jacket_walking_down_the_stream_of_w_a3db02ac-c783-4ed0-b1e2-4e4d58d48e6a.png",
                        "lucialululu_A_poster_of_the_tower_in_Rapunzel_flat_design_illus_fe702e43-7c19-4029-9486-defd536c7f76 (1).png",
                        "lucialululu_A_poster_of_the_tower_in_Rapunzel_flat_design_illus_fe702e43-7c19-4029-9486-defd536c7f76 (2).png",
                        "lucialululu_A_poster_of_the_tower_in_Rapunzel_flat_design_illus_fe702e43-7c19-4029-9486-defd536c7f76 (3).png",
                        "lucialululu_A_poster_of_the_tower_in_Rapunzel_flat_design_illus_fe702e43-7c19-4029-9486-defd536c7f76.png",
                        "lucialululu_A_wide_shot_of_hockey_players_on_the_ice_wearing_re_54e496a1-b83a-46d5-b7ee-86375bd15a89.png",
                        "lucialululu_An_European_man_with_dark_hair_wearing_a_white_shor_e78ee149-f67c-4f3c-a1dc-6c1787adb4cc.png",
                        "lucialululu_Screenshot_of_an_interview_with_a_woman_in_her_late_b6573bd3-c65a-4139-b91a-5c530a93c450.png",
                        "lucialululu__7d33c8aa-ff44-4158-a8e9-d96b7df5d539.png",
                        "lucialululu__81229e95-6fbb-4fef-a454-531fe387c098.png",
                        "lucialululu__a9631bdb-8bab-4081-8ca9-259454fd361f (1).png",
                        "lucialululu__a9631bdb-8bab-4081-8ca9-259454fd361f.png",
                        "lucialululu__ae1f4a6e-1617-40b0-9ee4-8f0c63ecb421 (2).png",
                        "lucialululu_clear_tower_6ff22ec7-ba25-41d9-b6c4-ceedd7368e1f.png",
                        "lucialululu_httpss.mj.runl-oPGSW71aE_a_woman_and_a_man_dancin_3ac556e1-5653-4f66-8d81-126ffbd9f341_0.png",
                        "lucialululu_only_one_ball_91cfcf34-53ac-4454-81be-3dff25819907.png",
                        "lucialululu_portrait_of_a_happy_young_man_smiling_at_the_camera_5e72353c-6cf6-4e5d-96b1-a0c4476c0291.png",
                        "lucialululu_three_dogs_in_black_and_white_suits_playing_musical_74a9bed3-22a5-4ede-bb1f-afe34fc7dd66.png",
                        "lucialululu_womans_beautiful_and_fashion_trousers_no_human_a17706dd-881c-48fc-ab92-f85a0c2315dd.png",
                        "maddog3446_Portrait_photo_of_a_woman_dark_red_hair_and_green_ey_457e11a1-cd40-44da-942c-9ded398ef65c 1.png",
                        "maddog3446_Portrait_photo_of_a_woman_dark_red_hair_and_green_ey_457e11a1-cd40-44da-942c-9ded398ef65c 2.png",
                        "marka.plus_estate_buildings_brutalism_architecture_sketch_black_bc9e6615-6334-4914-96cf-794000c1e35d.png",
                        "mask.jpg",
                        "mask_Image.png",
                        "masterx92_fashion_photography_A_woman_with_a_ponytail_is_wearin_8c97661f-a561-4e24-a76f-ba05fdaf43fc.png",
                        "mudzi9651_A_20_year_old_dark-skinned_girl_of_African_descent_da_bbbd463d-077b-4ee4-b7c1-6350bb58a158.png",
                        "musho77_man_smiling_on_white_background_--style_raw_--stylize_2_6c51faaa-8106-4fbe-94ed-c578f1191b11.png",
                        "n1jimmy_A_head_shot_of_casually-dressed_female_dark-skinned_Pak_fd391528-9bad-419c-b187-5bbd0e4316ec.png",
                        "ntashka_game_illustration_loading_screen_ocean_waves_dynamic_co_5fcb9edf-b082-4d97-ae22-08a24988510e.png",
                        "phygitalfuturist_an_architectural_concept_for_a_gothic_church_l_45d15896-945c-43ee-bcf5-c67d8f3c5b00.png",
                        "q0.webp",
                        "q1 (1).webp",
                        "q1.webp",
                        "q3.webp",
                        "q4 (1).webp",
                        "q4.webp",
                        "reallusion-ai-render-flux1-dev-workflow-1270-example_3.webp",
                        "rleti_Generate_an_outfit_featuring_a_brown_and_peach_short-slee_c98deaa2-01e5-4f05-83f4-f5eadad4ca06.png",
                        "sacet_Cartoon_water_lapping_on_the_edge_of_a_sandy_shore_line_b_857e7bc1-c33a-4117-9fb7-1e5c6d232694 (1).png",
                        "secretchat_girl_holding_bread_in_her_hands_in_the_style_of_the__1ea8c327-cca5-46f1-9965-7690079b0034 1.png",
                        "secretchat_girl_holding_bread_in_her_hands_in_the_style_of_the__1ea8c327-cca5-46f1-9965-7690079b0034.png",
                        "shaper0283_3d_render_fluffy_funny_monster_--ar_11_--stylize_750_4492d5f2-27cd-4eea-9a85-267d8041e351.png",
                        "simillies_A_editorial_softbox_lighting_inspirational_studio_por_c2b67b2d-0ad0-42fa-ba55-f56bea673006 (1).png",
                        "simillies_A_editorial_softbox_lighting_inspirational_studio_por_c2b67b2d-0ad0-42fa-ba55-f56bea673006.png",
                        "sn1ky_12_51125_make_a_woman_with_pink_hair_that_is_in_airport_a_fa156777-c086-4226-87b3-95dad09cafae.png",
                        "sonnycrys_how_Monalisa_would_look_like_today_according_to_ai_--_99c06c18-4c16-4a42-9f66-09faadb32a71.png",
                        "styleerror_25480_create_a_photo_realistic_image_of_a_zoomed-out_182b8502-ef35-4846-998b-a92fdb7bf466.png",
                        "surflife41_a_realistic_image_of_athleisure_wear_such_as_sports__0b410371-b72e-4d25-8378-d609c849b03c (1).png",
                        "surflife41_a_realistic_image_of_athleisure_wear_such_as_sports__0b410371-b72e-4d25-8378-d609c849b03c.png",
                        "surikata9853_mona_lisa_--v_6_207004db-0b34-476a-8f45-02497936255e (2).png",
                        "surikata9853_mona_lisa_--v_6_207004db-0b34-476a-8f45-02497936255e (3).png",
                        "suzy_60859_beach_background_Instagram_post_profile_photo_--styl_41da24b2-9a89-43c1-8ade-63e78b5965d0.png",
                        "thegreeneryroom_a_glowing_blob_of_honey_floating_in_the_void_of_63546855-2682-4690-8849-6133bb13a149.png",
                        "tmptbiwcoaj.png",
                        "toon1.png",
                        "toon2.png",
                        "topshams_Photo_of_a_modern_day_Mona_Lisa_lookalike_dark_brown_h_ef41e5c1-6817-4256-9b04-9d00826ea3b9.png",
                        "tricustom_monalisa_--v_6_af652f8d-7185-47e3-97ad-10353e6701cd (1).png",
                        "vasgen_karapetovich_beautiful_slavic_girl_selfie_with_batumis_b_8fcabe54-8593-4c80-b42f-79a491aca89b.png",
                        "volcanoforce_Full_body_standing_pose_of_a_young_Caucasian_man_w_0dc6e576-17d1-4dfa-8618-9d774d366794.png",
                        "wee.jass_white_porcelain_skin_--v_6.1_feed816f-efc1-428e-ad9c-7e3468edc402.png",
                        "willlsonnn_hispanic_female_black_satin_blouse_black_pencil_skir_ec385c48-34f9-49e1-8e4d-459721a3fc06.png",
                        "yoyo_qtr_an_art_for_the_mantel_museum_of_art_in_the_style_of_ro_7c153953-d3b0-47dd-b85c-a9fb22ba66d3 (1).png",
                        "yoyo_qtr_an_art_for_the_mantel_museum_of_art_in_the_style_of_ro_7c153953-d3b0-47dd-b85c-a9fb22ba66d3.png",
                        "zhangwei9547_A_full-body_fashion_editorial_of_a_female_model_we_142e71eb-39da-47ee-89b8-9dc5394fc537.png",
                        "\u4e0b\u8f7d.jpeg",
                        "\u56fe1 (1).webp",
                        "\u56fe1.webp",
                        "\u56fe4.webp",
                        "\u56fe5.webp",
                        "\u622a\u5c4f2024-08-09 17.33.35.png",
                        "\u622a\u5c4f2024-08-09 17.35.37.png",
                        "\u622a\u5c4f2024-09-13 14.22.56.png",
                        "\u622a\u5c4f2024-09-13 14.25.48.png"
                    ],
                    {
                        "image_upload": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image"
            ]
        },
        "output": [
            "IMAGE",
            "MASK"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "IMAGE",
            "MASK"
        ],
        "name": "LoadImage",
        "display_name": "Load Image",
        "description": "",
        "python_module": "nodes",
        "category": "image",
        "output_node": false
    },
    "LoadImageMask": {
        "input": {
            "required": {
                "image": [
                    [
                        "0.jpg",
                        "0000.mp4",
                        "00012-3598253742.jpeg",
                        "00067-2712978131.jpeg",
                        "001.png",
                        "002 (1).png",
                        "002.png",
                        "003024_0001.png",
                        "011.webp",
                        "012 (1).webp",
                        "012.webp",
                        "013 (1).webp",
                        "013.webp",
                        "014.webp",
                        "015.webp",
                        "016.webp",
                        "018.webp",
                        "019.webp",
                        "020.webp",
                        "02001_1 (1).mp4",
                        "02001_1.mp4",
                        "021.webp",
                        "022-.webp",
                        "022.webp",
                        "023.webp",
                        "024.webp",
                        "025-.webp",
                        "025.webp",
                        "027.png",
                        "027.webp",
                        "03017_1.mp4",
                        "03024 (1).mp4",
                        "03024.mp4",
                        "031.png",
                        "031.webp",
                        "032.webp",
                        "033.webp",
                        "034.webp",
                        "036.jpeg",
                        "04.png",
                        "042.png",
                        "042a.png",
                        "07003 (1).mp4",
                        "07003 (2).mp4",
                        "07003.mp4",
                        "09047.mp4",
                        "0_0 (1).png",
                        "0_0 (1).webp",
                        "0_0 (10).webp",
                        "0_0 (11).png",
                        "0_0 (15).png",
                        "0_0 (16).png",
                        "0_0 (17).png",
                        "0_0 (19) (1).png",
                        "0_0 (19).png",
                        "0_0 (2).webp",
                        "0_0 (20).png",
                        "0_0 (24).png",
                        "0_0 (3).webp",
                        "0_0 (4).png",
                        "0_0 (5) (1).png",
                        "0_0 (5) (2).png",
                        "0_0 (5).png",
                        "0_0 (5).webp",
                        "0_0 (5)_\u526f\u672c.jpg",
                        "0_0 (6).png",
                        "0_0 (6).webp",
                        "0_0 (7) (1).webp",
                        "0_0 (7) 1.png",
                        "0_0 (7).png",
                        "0_0 (7).webp",
                        "0_0 (8) (1).png",
                        "0_0 (8).png",
                        "0_0 (9).webp",
                        "0_0 1.png",
                        "0_0.png",
                        "0_0.webp",
                        "0_0_384_N.webp",
                        "0_1 (1) (1).png",
                        "0_1 (1) 1 (1).png",
                        "0_1 (1).png",
                        "0_1 (1).webp",
                        "0_1 (10).webp",
                        "0_1 (13).webp",
                        "0_1 (14) (1).webp",
                        "0_1 (14) (2).webp",
                        "0_1 (14) (3).webp",
                        "0_1 (14).webp",
                        "0_1 (15) (1).webp",
                        "0_1 (15).webp",
                        "0_1 (16) (1).webp",
                        "0_1 (16).webp",
                        "0_1 (17).webp",
                        "0_1 (2) (1).png",
                        "0_1 (2).png",
                        "0_1 (2).webp",
                        "0_1 (3).webp",
                        "0_1 (4).webp",
                        "0_1 (5) (1).webp",
                        "0_1 (5).webp",
                        "0_1 (6) (1).png",
                        "0_1 (6).png",
                        "0_1 (7).webp",
                        "0_1 (8).webp",
                        "0_1 (9).png",
                        "0_1 (9).webp",
                        "0_1.webp",
                        "0_2 (1).png",
                        "0_2 (11).webp",
                        "0_2 (12) (1).png",
                        "0_2 (12).png",
                        "0_2 (12).webp",
                        "0_2 (13).webp",
                        "0_2 (15).webp",
                        "0_2 (2).png",
                        "0_2 (4).png",
                        "0_2 (4).webp",
                        "0_2 (5) (1).webp",
                        "0_2 (5).webp",
                        "0_2 (6).webp",
                        "0_2 (7).webp",
                        "0_2 (8) (1).png",
                        "0_2 (8) (2).png",
                        "0_2 (8).png",
                        "0_2 (8).webp",
                        "0_2 (9) (1).webp",
                        "0_2 (9).webp",
                        "0_3 (10).webp",
                        "0_3 (11) (1).webp",
                        "0_3 (11).webp",
                        "0_3 (13).webp",
                        "0_3 (14) (1).webp",
                        "0_3 (14).webp",
                        "0_3 (16).webp",
                        "0_3 (17).webp",
                        "0_3 (2) (1).png",
                        "0_3 (2).png",
                        "0_3 (22).webp",
                        "0_3 (23).webp",
                        "0_3 (24) (1).webp",
                        "0_3 (24) 1 (1).png",
                        "0_3 (24) 1.png",
                        "0_3 (24).webp",
                        "0_3 (25).webp",
                        "0_3 (3).png",
                        "0_3 (3).webp",
                        "0_3 (5).webp",
                        "0_3 (6).png",
                        "0_3 (6).webp",
                        "0_3 (8).webp",
                        "0_3 (9) (1).webp",
                        "0_3 (9).webp",
                        "0_3.webp",
                        "1 (2).wav",
                        "1001_input.mp4",
                        "1003_input (1).png",
                        "1003_input 1 (1).png",
                        "1003_input 1.png",
                        "1003_input.png",
                        "1003_input_3 (1).png",
                        "1003_input_3.png",
                        "1019_image.png",
                        "102 (1).jpeg",
                        "102.jpeg",
                        "1021_input-2s.mp4",
                        "1021_input.mp4",
                        "1021_input_5s.mp4",
                        "106.jpeg",
                        "107.jpeg",
                        "108.jpeg",
                        "1087_00001_.png",
                        "1088_00030_.png",
                        "1089_00019_ (1).png",
                        "1089_00019_.png",
                        "109.jpeg",
                        "10_0.png",
                        "10_1 (1).png",
                        "10_2s.mp4",
                        "11006.mp4",
                        "11008 (2).mp4",
                        "11008.mp4",
                        "11008_1.mp4",
                        "11008_1_1 (1).mp4",
                        "11008_1_1.mp4",
                        "1101_H.264.mp4",
                        "1102_H.264.mp4",
                        "1103_H.264.mp4",
                        "1104.mp4",
                        "1105.mp4",
                        "1106.mp4",
                        "1107.mp4",
                        "111 (1).png",
                        "111.png",
                        "1111 (1).webp",
                        "1111.webp",
                        "1112 (1).png",
                        "1112.png",
                        "1112.webp",
                        "1113.webp",
                        "1114.webp",
                        "112.png",
                        "1122.png",
                        "1129_00180_.png",
                        "113.jpeg",
                        "114.jpeg",
                        "115 (1).png",
                        "115.png",
                        "117.png",
                        "118 (1).jpeg",
                        "118.jpeg",
                        "119 (1).jpeg",
                        "119 (1).webp",
                        "119 (2).webp",
                        "119.jpeg",
                        "119.webp",
                        "11_2s.mp4",
                        "120.png",
                        "121.png",
                        "1234.png",
                        "124.png",
                        "125.png",
                        "126.png",
                        "1boy-1-1080.mp4",
                        "1boy-2.mp4",
                        "2024-06-07 16.50.54.png",
                        "202403221843 (2).mp4",
                        "202403221843 (4).mp4",
                        "202404042125.mp4",
                        "202404042216 (1) (1).mp4",
                        "202404042216 (1).mp4",
                        "202404042216.mp4",
                        "202404191453.mp4",
                        "202404191810 (1) (1).mp4",
                        "202404191810 (1).mp4",
                        "202404191810 (3).mp4",
                        "202404191810 (4).mp4",
                        "202404251935.mp4",
                        "202404252058 (1).mp4",
                        "202404252058.mp4",
                        "202405091509 (1).mp4",
                        "202405091509.mp4",
                        "202407092009 (4).mp4",
                        "202407262309.mp4",
                        "202409031945 (2).mp4",
                        "202409131521 (1).mp4",
                        "202409131521 (2).mp4",
                        "202409131521.mp4",
                        "202409152236.mp4",
                        "202411202208.mp4",
                        "202412132035.mp4",
                        "202412141045 (1).mp4",
                        "202412141045 (2).mp4",
                        "202412141045.mp4",
                        "202502102056.mp4",
                        "25328-349634257_medium.mp4",
                        "2s.mp4",
                        "2\u670824\u65e5(4).mp4",
                        "308927219-33621520-a429-4155-aa3a-ac5cd15bda56.mp4",
                        "3139866-hd_720_1280_30fps.mp4",
                        "4380323-hd_1080_1920_30fps.mp4",
                        "4990346-hd_1080_1920_30fps.mp4",
                        "5.wav",
                        "71834-540475381_medium.mp4",
                        "7326816-hd_1080_1920_24fps.mp4",
                        "8116023-hd_1080_1920_25fps.mp4",
                        "8f2fa88fb99dadcf109427cd60de037a 2 (1).jpg",
                        "8f2fa88fb99dadcf109427cd60de037a 2.jpg",
                        "909px-Van_Gogh_-_Starry_Night_-_Google_Art_Project (1).webp",
                        "909px-Van_Gogh_-_Starry_Night_-_Google_Art_Project.webp",
                        "921.webp",
                        "922.webp",
                        "923-1.webp",
                        "923.webp",
                        "924-2.webp",
                        "924.webp",
                        "925.webp",
                        "BeachGirlVidSBS.mp4",
                        "ComfyUI_00004_ (1).png",
                        "ComfyUI_00004_.png",
                        "ComfyUI_00025_.png",
                        "ComfyUI_00028_.png",
                        "ComfyUI_00036_.png",
                        "ComfyUI_00124_ (1).png",
                        "ComfyUI_00124_.png",
                        "ComfyUI_00127_.png",
                        "ComfyUI_00132_.png",
                        "ComfyUI_00133_.png",
                        "ComfyUI_00134_.png",
                        "ComfyUI_00136_.png",
                        "ComfyUI_temp_fgoek_00006_.png",
                        "ComfyUI_temp_istrz_00002_ (1).png",
                        "ComfyUI_temp_istrz_00002_.png",
                        "ComfyUI_temp_njtns_00025_.png",
                        "ComfyUI_temp_okprh_00001_.png",
                        "ComfyUI_temp_posbs_00002_ (1).png",
                        "ComfyUI_temp_posbs_00002_.png",
                        "ComfyUI_temp_sfrqd_00031_ (1).png",
                        "ComfyUI_temp_updsf_00002_.png",
                        "ComfyUI_temp_ypgle_00001_.png",
                        "Gen-3 Alpha Turbo 2850506560, A cinematic close do, Cropped - pexels-gon, M 5.mp4",
                        "Group 1000008304.png",
                        "InShot_20240913_013852769.mp4",
                        "Jiplinfloyd_cleopatre_wearing_streetwear_clothing_cf9e2833-8316-4626-8e84-37bc85ab8229.png",
                        "LightMap_2.mp4",
                        "LisLiza_Picture_of_Cleopatra_in_Golden_Colours._Background_dese_6b2390de-50ec-4f3c-9696-01902f6bb5ec.png",
                        "Meghan-Markle-Johanna-Ortiz-Gold-Dress.png",
                        "Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched (1).jpg",
                        "Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched.jpg",
                        "Moving LightMask End.jpg",
                        "Moving LightMask Start.jpg",
                        "Nocturna_011_Chica_Caminando_02 (1).mp4",
                        "Paint_209.png",
                        "Pose_sheet.png",
                        "Pose_sheet_v02.png",
                        "Professional_Mode_16x9_A_woman_in_a_red_raincoat_walks_ (1).mp4",
                        "R03960049_PINK_ALT10.jpeg",
                        "Reference (1).jpeg",
                        "Reference.jpeg",
                        "RunComfy_example_1151_pose_sheet.png",
                        "RunComfy_example_1169_mask.jpg",
                        "RunComfy_example_1169_mask.png",
                        "RunComfy_examples_1080_video.mp4",
                        "RunComfy_examples_1081_video.mp4",
                        "RunComfy_examples_1082.png",
                        "RunComfy_examples_1082_video.mp4",
                        "RunComfy_examples_1093_video.mp4",
                        "RunComfy_examples_1093_video_firstframe.jpg",
                        "RunComfy_examples_1124_1.mp4",
                        "RunComfy_examples_1124_2.png",
                        "RunComfy_examples_1124_3.png",
                        "RunComfy_examples_1128.mp4",
                        "RunComfy_examples_1130.png",
                        "RunComfy_examples_1131.jpg",
                        "RunComfy_examples_1133.mp4",
                        "RunComfy_examples_1134.mp4",
                        "RunComfy_examples_1136.png",
                        "RunComfy_examples_1139.png",
                        "RunComfy_examples_1149_1.png",
                        "RunComfy_examples_1149_2.png",
                        "RunComfy_examples_1150.png",
                        "RunComfy_examples_1151.png",
                        "RunComfy_examples_1152_1.png",
                        "RunComfy_examples_1152_2.png",
                        "RunComfy_examples_1157.png",
                        "RunComfy_examples_1157_2.wav",
                        "RunComfy_examples_1164_1.png",
                        "RunComfy_examples_1164_2.wav",
                        "RunComfy_examples_1172_1.png",
                        "RunComfy_examples_1172_2.mp3",
                        "RunComfy_examples_1173.png",
                        "RunComfy_examples_1178.mp4",
                        "Runcomfy_Example_1208_1.png",
                        "Runcomfy_Example_1208_2.mp4",
                        "Runcomfy_example_1171.png",
                        "Screenshot 2024-11-04 at 3.17.41 PM.png",
                        "Snow.png",
                        "Test (1).webp",
                        "Test (2).webp",
                        "Test.png",
                        "Test.webp",
                        "Test1.png",
                        "Test12.jpg",
                        "Test2.jpg",
                        "Test3.webp",
                        "Untitled-1.webp",
                        "Untitled_Artwork+copy.jpg",
                        "WechatIMG1199 1.png",
                        "WechatIMG1199.jpg",
                        "WhatsApp Image 2024-07-01 at 16.20.54_67c60483.jpg",
                        "a.mp4",
                        "aa6ebee4a466044766dbad98f705190f.jpg",
                        "abouthugo_smooth_seamless_liquid_gradient_cf246a87-f8dc-467a-b717-f111c7aee2d2.png",
                        "aidonna_van_gogh_style_landscapenight_--ar_916_--style_raw_--v__aedd3b9e-065d-4f14-95f1-5e95a101549b.png",
                        "aitsu_cookie_monster_actually_has_thousands_of_razor_sharp_teet_2484ccae-812c-4fce-a38d-f99f58d46ad6 (1).png",
                        "aitsu_cookie_monster_actually_has_thousands_of_razor_sharp_teet_2484ccae-812c-4fce-a38d-f99f58d46ad6.png",
                        "alirezapremium_62072_white_T-shirt_male_model_in_cozy_backgroun_389346f6-ab68-4d43-aa35-cc6dfb5c1a1f.png",
                        "andylau_png24.png",
                        "annrudakovaa_photography_of_an_attractive_woman_sitting_on_top__7b7b9216-09dd-445a-87c1-48725f7a30e4.png",
                        "asset (9).mp4",
                        "audio_022255_temp.wav",
                        "audio_215785_temp.wav",
                        "audio_429127_temp.wav",
                        "audio_504171_temp.wav",
                        "audio_752628_temp.wav",
                        "audio_828125_temp.wav",
                        "audio_879071_temp.wav",
                        "audio_945ecf_temp.wav",
                        "audio_b9fd7e_temp.wav",
                        "audio_f44d32_temp.wav",
                        "black-white-video (1).mp4",
                        "black-white-video.mp4",
                        "canny.mp4",
                        "canvas_Image.png",
                        "carmenta_Blonde_girl_full_body_shot_mirror_selfie_in_bedroom_--_a1991a4b-fe43-4eea-b144-f4c6bd6583ff.png",
                        "chuckaveli954_Create_a_character_concept_art_of_a_19-year-old_A_f908ffa8-9b70-4538-8740-75837cf14bed.png",
                        "claudeionita_a_good_looking_caucasian_man_wearing_a_white_t-shi_86034d0f-a089-4df1-8e1e-91975f9d999c.png",
                        "cut_two_1s.mp4",
                        "dance_05.png",
                        "dbmj2_realistic_gta_v_style_character_ghetto_thug_in_purple_out_a7743ea5-0ed4-42fb-9311-12f7d2218698 (1).png",
                        "depth.mp4",
                        "djtide_Pretty_adorable_and_rich_instagram_influencer_20-years_w_f1a9b898-bc46-4c4b-a255-7e6050f073b5.png",
                        "eddiemax7894_3h_The_streets_were_lined_with_small_shops_and_hou_bf996244-0d95-49bd-a933-b70f010722b5.png",
                        "elenam8872_a_very_minimal_photography_of_a_blue_windows_on_a_wh_344bed35-d2cf-4090-b499-dc2a8d31671e.png",
                        "emirhans200_This_photo_shows_a_sweaty_young_woman_on_the_beach__c631d1f2-a31d-4ae0-a09f-0b1e3ac1a30e (2).png",
                        "example.jpg",
                        "example.png",
                        "ezgif-frame-001 (1).jpg",
                        "ezgif-frame-001.jpg",
                        "flexing_03.png",
                        "genivaljunior_street_by_Michael_Craig-Martin_fd8063a3-2556-482b-9629-1bfc192cfcdd.png",
                        "golden-retriever-tongue-out.jpg",
                        "goldenleafshop_39657_a_golden_colored_thc_rosin_dab_in_a_small__0cd5d57b-a591-4e7f-b1b9-e68c1c410bc7.png",
                        "gotothemoon10_a_pretty_latina_woman_with_straight_blond_hair_an_82dd54b6-2dfc-42aa-85df-72093b0cc5e6.png",
                        "helgekerler_portrait_of_a_smiling_young_man_with_arms_folded_yo_9d5bae72-884a-4d27-87a4-1cf9b6cc5111.png",
                        "horwood_smiling_hot_incredible_body_beautiful_bright_color_hair_b8ee4e43-cee1-4d3a-96db-c69de860438c.png",
                        "ilightice_modern_fashion_outfits_in_superbowl_style_luxury_fash_4e43bd66-41be-4a4f-9a1c-1d335d195297.png",
                        "image 257.png",
                        "image 264.png",
                        "image-test (1).png",
                        "image-test.png",
                        "images (1).jpeg",
                        "inpainting-example.png",
                        "intro 1.png",
                        "josem7815_shlomit_riger_posing_for_a_photoshoot_full_color_full_e9b8652e-1237-4884-b3e6-8c9c4c9119ba.png",
                        "khfbnh_dz6Fh4YxgvNiG_--ar_11_--quality_0.5_--stylize_500_--v_6._6f091d6e-4624-4fd7-acb0-3e3ff54c5862.png",
                        "korehan7_Photo_of_a_20-year-old_female_with_a_polished_and_soph_aaf64ea4-f195-4214-bb5a-4e99e6c6487a.png",
                        "lemonswan._selfie_of_a_woman_in_her_early_30s_hazlenut_long_hai_bb808d3d-8472-4e57-ab7e-323b5eabff61 1.png",
                        "lemonswan._selfie_of_a_woman_in_her_early_30s_hazlenut_long_hai_bb808d3d-8472-4e57-ab7e-323b5eabff61 2.png",
                        "lucialululu_1_portrait_of_a_happy_young_man_with_a_yellow_t-shi_be8aa564-3e4c-4fe2-8b15-3d1767c5a53e.png",
                        "lucialululu_3D_model_of_a_game_character_zombie_with_an_axe_in__8eeb6e99-a287-4fbf-bcac-e3805743addf.png",
                        "lucialululu_A_Black_man_with_red_sunglasses_and_long_Afro_hair__d8de0d25-3d31-46f9-8df3-8be80d569d9a.png",
                        "lucialululu_A_beautiful_girl_with_long_blonde_hair_wearing_a_bl_31c6938e-ee1b-4aef-9f95-3a5f86e44899.png",
                        "lucialululu_A_group_of_dogs_in_black_and_white_suits_playing_mu_2d990dfe-a349-4b14-b362-ecf2909b42f0.png",
                        "lucialululu_A_man_in_a_grey_jacket_walking_down_the_stream_of_w_a3db02ac-c783-4ed0-b1e2-4e4d58d48e6a.png",
                        "lucialululu_A_poster_of_the_tower_in_Rapunzel_flat_design_illus_fe702e43-7c19-4029-9486-defd536c7f76 (1).png",
                        "lucialululu_A_poster_of_the_tower_in_Rapunzel_flat_design_illus_fe702e43-7c19-4029-9486-defd536c7f76 (2).png",
                        "lucialululu_A_poster_of_the_tower_in_Rapunzel_flat_design_illus_fe702e43-7c19-4029-9486-defd536c7f76 (3).png",
                        "lucialululu_A_poster_of_the_tower_in_Rapunzel_flat_design_illus_fe702e43-7c19-4029-9486-defd536c7f76.png",
                        "lucialululu_A_wide_shot_of_hockey_players_on_the_ice_wearing_re_54e496a1-b83a-46d5-b7ee-86375bd15a89.png",
                        "lucialululu_An_European_man_with_dark_hair_wearing_a_white_shor_e78ee149-f67c-4f3c-a1dc-6c1787adb4cc.png",
                        "lucialululu_Screenshot_of_an_interview_with_a_woman_in_her_late_b6573bd3-c65a-4139-b91a-5c530a93c450.png",
                        "lucialululu__7d33c8aa-ff44-4158-a8e9-d96b7df5d539.png",
                        "lucialululu__81229e95-6fbb-4fef-a454-531fe387c098.png",
                        "lucialululu__a9631bdb-8bab-4081-8ca9-259454fd361f (1).png",
                        "lucialululu__a9631bdb-8bab-4081-8ca9-259454fd361f.png",
                        "lucialululu__ae1f4a6e-1617-40b0-9ee4-8f0c63ecb421 (2).png",
                        "lucialululu_clear_tower_6ff22ec7-ba25-41d9-b6c4-ceedd7368e1f.png",
                        "lucialululu_httpss.mj.runl-oPGSW71aE_a_woman_and_a_man_dancin_3ac556e1-5653-4f66-8d81-126ffbd9f341_0.png",
                        "lucialululu_only_one_ball_91cfcf34-53ac-4454-81be-3dff25819907.png",
                        "lucialululu_portrait_of_a_happy_young_man_smiling_at_the_camera_5e72353c-6cf6-4e5d-96b1-a0c4476c0291.png",
                        "lucialululu_three_dogs_in_black_and_white_suits_playing_musical_74a9bed3-22a5-4ede-bb1f-afe34fc7dd66.png",
                        "lucialululu_womans_beautiful_and_fashion_trousers_no_human_a17706dd-881c-48fc-ab92-f85a0c2315dd.png",
                        "maddog3446_Portrait_photo_of_a_woman_dark_red_hair_and_green_ey_457e11a1-cd40-44da-942c-9ded398ef65c 1.png",
                        "maddog3446_Portrait_photo_of_a_woman_dark_red_hair_and_green_ey_457e11a1-cd40-44da-942c-9ded398ef65c 2.png",
                        "marka.plus_estate_buildings_brutalism_architecture_sketch_black_bc9e6615-6334-4914-96cf-794000c1e35d.png",
                        "mask.jpg",
                        "mask.mp4",
                        "mask_Image.png",
                        "masterx92_fashion_photography_A_woman_with_a_ponytail_is_wearin_8c97661f-a561-4e24-a76f-ba05fdaf43fc.png",
                        "mudzi9651_A_20_year_old_dark-skinned_girl_of_African_descent_da_bbbd463d-077b-4ee4-b7c1-6350bb58a158.png",
                        "musho77_man_smiling_on_white_background_--style_raw_--stylize_2_6c51faaa-8106-4fbe-94ed-c578f1191b11.png",
                        "n1jimmy_A_head_shot_of_casually-dressed_female_dark-skinned_Pak_fd391528-9bad-419c-b187-5bbd0e4316ec.png",
                        "nature_4.mp4",
                        "ntashka_game_illustration_loading_screen_ocean_waves_dynamic_co_5fcb9edf-b082-4d97-ae22-08a24988510e.png",
                        "original - 1.mp4",
                        "original - 2.mp4",
                        "phygitalfuturist_an_architectural_concept_for_a_gothic_church_l_45d15896-945c-43ee-bcf5-c67d8f3c5b00.png",
                        "production_id_4990425 (1080p).mp4",
                        "q0.webp",
                        "q1 (1).webp",
                        "q1.webp",
                        "q3.webp",
                        "q4 (1).webp",
                        "q4.webp",
                        "reallusion-ai-render-flux1-dev-workflow-1270-example_3.webp",
                        "rleti_Generate_an_outfit_featuring_a_brown_and_peach_short-slee_c98deaa2-01e5-4f05-83f4-f5eadad4ca06.png",
                        "sacet_Cartoon_water_lapping_on_the_edge_of_a_sandy_shore_line_b_857e7bc1-c33a-4117-9fb7-1e5c6d232694 (1).png",
                        "secretchat_girl_holding_bread_in_her_hands_in_the_style_of_the__1ea8c327-cca5-46f1-9965-7690079b0034 1.png",
                        "secretchat_girl_holding_bread_in_her_hands_in_the_style_of_the__1ea8c327-cca5-46f1-9965-7690079b0034.png",
                        "shaper0283_3d_render_fluffy_funny_monster_--ar_11_--stylize_750_4492d5f2-27cd-4eea-9a85-267d8041e351.png",
                        "simillies_A_editorial_softbox_lighting_inspirational_studio_por_c2b67b2d-0ad0-42fa-ba55-f56bea673006 (1).png",
                        "simillies_A_editorial_softbox_lighting_inspirational_studio_por_c2b67b2d-0ad0-42fa-ba55-f56bea673006.png",
                        "sn1ky_12_51125_make_a_woman_with_pink_hair_that_is_in_airport_a_fa156777-c086-4226-87b3-95dad09cafae.png",
                        "sonnycrys_how_Monalisa_would_look_like_today_according_to_ai_--_99c06c18-4c16-4a42-9f66-09faadb32a71.png",
                        "styleerror_25480_create_a_photo_realistic_image_of_a_zoomed-out_182b8502-ef35-4846-998b-a92fdb7bf466.png",
                        "surflife41_a_realistic_image_of_athleisure_wear_such_as_sports__0b410371-b72e-4d25-8378-d609c849b03c (1).png",
                        "surflife41_a_realistic_image_of_athleisure_wear_such_as_sports__0b410371-b72e-4d25-8378-d609c849b03c.png",
                        "surikata9853_mona_lisa_--v_6_207004db-0b34-476a-8f45-02497936255e (2).png",
                        "surikata9853_mona_lisa_--v_6_207004db-0b34-476a-8f45-02497936255e (3).png",
                        "suzy_60859_beach_background_Instagram_post_profile_photo_--styl_41da24b2-9a89-43c1-8ade-63e78b5965d0.png",
                        "thegreeneryroom_a_glowing_blob_of_honey_floating_in_the_void_of_63546855-2682-4690-8849-6133bb13a149.png",
                        "tmptbiwcoaj.png",
                        "toon1.png",
                        "toon2.png",
                        "topshams_Photo_of_a_modern_day_Mona_Lisa_lookalike_dark_brown_h_ef41e5c1-6817-4256-9b04-9d00826ea3b9.png",
                        "tricustom_monalisa_--v_6_af652f8d-7185-47e3-97ad-10353e6701cd (1).png",
                        "vasgen_karapetovich_beautiful_slavic_girl_selfie_with_batumis_b_8fcabe54-8593-4c80-b42f-79a491aca89b.png",
                        "vecteezy_white-fluid-transitions-loop-animation_42106295 (1).mp4",
                        "vecteezy_white-fluid-transitions-loop-animation_42106295 (2).mp4",
                        "vecteezy_white-fluid-transitions-loop-animation_42106295.mp4",
                        "volcanoforce_Full_body_standing_pose_of_a_young_Caucasian_man_w_0dc6e576-17d1-4dfa-8618-9d774d366794.png",
                        "wee.jass_white_porcelain_skin_--v_6.1_feed816f-efc1-428e-ad9c-7e3468edc402.png",
                        "willlsonnn_hispanic_female_black_satin_blouse_black_pencil_skir_ec385c48-34f9-49e1-8e4d-459721a3fc06.png",
                        "yoyo_qtr_an_art_for_the_mantel_museum_of_art_in_the_style_of_ro_7c153953-d3b0-47dd-b85c-a9fb22ba66d3 (1).png",
                        "yoyo_qtr_an_art_for_the_mantel_museum_of_art_in_the_style_of_ro_7c153953-d3b0-47dd-b85c-a9fb22ba66d3.png",
                        "zhangwei9547_A_full-body_fashion_editorial_of_a_female_model_we_142e71eb-39da-47ee-89b8-9dc5394fc537.png",
                        "\u4e0b\u8f7d.jpeg",
                        "\u56fe1 (1).webp",
                        "\u56fe1.webp",
                        "\u56fe4.webp",
                        "\u56fe5.webp",
                        "\u622a\u5c4f2024-08-09 17.33.35.png",
                        "\u622a\u5c4f2024-08-09 17.35.37.png",
                        "\u622a\u5c4f2024-09-13 14.22.56.png",
                        "\u622a\u5c4f2024-09-13 14.25.48.png",
                        "\u672a\u547d\u540d\u8349\u7a3f (6) (1).mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (6).mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (7).mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (8) (1).mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (8) (2).mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (8).mp4"
                    ],
                    {
                        "image_upload": true
                    }
                ],
                "channel": [
                    [
                        "alpha",
                        "red",
                        "green",
                        "blue"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "channel"
            ]
        },
        "output": [
            "MASK"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MASK"
        ],
        "name": "LoadImageMask",
        "display_name": "Load Image (as Mask)",
        "description": "",
        "python_module": "nodes",
        "category": "mask",
        "output_node": false
    },
    "LoadImageOutput": {
        "input": {
            "required": {
                "image": [
                    "COMBO",
                    {
                        "image_upload": true,
                        "image_folder": "output",
                        "remote": {
                            "route": "/internal/files/output",
                            "refresh_button": true,
                            "control_after_refresh": "first"
                        }
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image"
            ]
        },
        "output": [
            "IMAGE",
            "MASK"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "IMAGE",
            "MASK"
        ],
        "name": "LoadImageOutput",
        "display_name": "Load Image (from Outputs)",
        "description": "Load an image from the output folder. When the refresh button is clicked, the node will update the image list and automatically select the first image, allowing for easy iteration.",
        "python_module": "nodes",
        "category": "image",
        "output_node": false,
        "experimental": true
    },
    "ImageScale": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "upscale_method": [
                    [
                        "nearest-exact",
                        "bilinear",
                        "area",
                        "bicubic",
                        "lanczos"
                    ]
                ],
                "width": [
                    "INT",
                    {
                        "default": 512,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 512,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "crop": [
                    [
                        "disabled",
                        "center"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "upscale_method",
                "width",
                "height",
                "crop"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageScale",
        "display_name": "Upscale Image",
        "description": "",
        "python_module": "nodes",
        "category": "image/upscaling",
        "output_node": false
    },
    "ImageScaleBy": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "upscale_method": [
                    [
                        "nearest-exact",
                        "bilinear",
                        "area",
                        "bicubic",
                        "lanczos"
                    ]
                ],
                "scale_by": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.01,
                        "max": 8.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "upscale_method",
                "scale_by"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageScaleBy",
        "display_name": "Upscale Image By",
        "description": "",
        "python_module": "nodes",
        "category": "image/upscaling",
        "output_node": false
    },
    "ImageInvert": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "image"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageInvert",
        "display_name": "Invert Image",
        "description": "",
        "python_module": "nodes",
        "category": "image",
        "output_node": false
    },
    "ImageBatch": {
        "input": {
            "required": {
                "image1": [
                    "IMAGE"
                ],
                "image2": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "image1",
                "image2"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageBatch",
        "display_name": "Batch Images",
        "description": "",
        "python_module": "nodes",
        "category": "image",
        "output_node": false
    },
    "ImagePadForOutpaint": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "left": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "top": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "right": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "bottom": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "feathering": [
                    "INT",
                    {
                        "default": 40,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "left",
                "top",
                "right",
                "bottom",
                "feathering"
            ]
        },
        "output": [
            "IMAGE",
            "MASK"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "IMAGE",
            "MASK"
        ],
        "name": "ImagePadForOutpaint",
        "display_name": "Pad Image for Outpainting",
        "description": "",
        "python_module": "nodes",
        "category": "image",
        "output_node": false
    },
    "EmptyImage": {
        "input": {
            "required": {
                "width": [
                    "INT",
                    {
                        "default": 512,
                        "min": 1,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 512,
                        "min": 1,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ],
                "color": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16777215,
                        "step": 1,
                        "display": "color"
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "width",
                "height",
                "batch_size",
                "color"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "EmptyImage",
        "display_name": "EmptyImage",
        "description": "",
        "python_module": "nodes",
        "category": "image",
        "output_node": false
    },
    "ConditioningAverage": {
        "input": {
            "required": {
                "conditioning_to": [
                    "CONDITIONING"
                ],
                "conditioning_from": [
                    "CONDITIONING"
                ],
                "conditioning_to_strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning_to",
                "conditioning_from",
                "conditioning_to_strength"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "ConditioningAverage",
        "display_name": "ConditioningAverage",
        "description": "",
        "python_module": "nodes",
        "category": "conditioning",
        "output_node": false
    },
    "ConditioningCombine": {
        "input": {
            "required": {
                "conditioning_1": [
                    "CONDITIONING"
                ],
                "conditioning_2": [
                    "CONDITIONING"
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning_1",
                "conditioning_2"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "ConditioningCombine",
        "display_name": "Conditioning (Combine)",
        "description": "",
        "python_module": "nodes",
        "category": "conditioning",
        "output_node": false
    },
    "ConditioningConcat": {
        "input": {
            "required": {
                "conditioning_to": [
                    "CONDITIONING"
                ],
                "conditioning_from": [
                    "CONDITIONING"
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning_to",
                "conditioning_from"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "ConditioningConcat",
        "display_name": "Conditioning (Concat)",
        "description": "",
        "python_module": "nodes",
        "category": "conditioning",
        "output_node": false
    },
    "ConditioningSetArea": {
        "input": {
            "required": {
                "conditioning": [
                    "CONDITIONING"
                ],
                "width": [
                    "INT",
                    {
                        "default": 64,
                        "min": 64,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 64,
                        "min": 64,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "x": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "y": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning",
                "width",
                "height",
                "x",
                "y",
                "strength"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "ConditioningSetArea",
        "display_name": "Conditioning (Set Area)",
        "description": "",
        "python_module": "nodes",
        "category": "conditioning",
        "output_node": false
    },
    "ConditioningSetAreaPercentage": {
        "input": {
            "required": {
                "conditioning": [
                    "CONDITIONING"
                ],
                "width": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "height": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "x": [
                    "FLOAT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "y": [
                    "FLOAT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning",
                "width",
                "height",
                "x",
                "y",
                "strength"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "ConditioningSetAreaPercentage",
        "display_name": "Conditioning (Set Area with Percentage)",
        "description": "",
        "python_module": "nodes",
        "category": "conditioning",
        "output_node": false
    },
    "ConditioningSetAreaStrength": {
        "input": {
            "required": {
                "conditioning": [
                    "CONDITIONING"
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning",
                "strength"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "ConditioningSetAreaStrength",
        "display_name": "ConditioningSetAreaStrength",
        "description": "",
        "python_module": "nodes",
        "category": "conditioning",
        "output_node": false
    },
    "ConditioningSetMask": {
        "input": {
            "required": {
                "conditioning": [
                    "CONDITIONING"
                ],
                "mask": [
                    "MASK"
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "set_cond_area": [
                    [
                        "default",
                        "mask bounds"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning",
                "mask",
                "strength",
                "set_cond_area"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "ConditioningSetMask",
        "display_name": "Conditioning (Set Mask)",
        "description": "",
        "python_module": "nodes",
        "category": "conditioning",
        "output_node": false
    },
    "KSamplerAdvanced": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "add_noise": [
                    [
                        "enable",
                        "disable"
                    ]
                ],
                "noise_seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true
                    }
                ],
                "steps": [
                    "INT",
                    {
                        "default": 20,
                        "min": 1,
                        "max": 10000
                    }
                ],
                "cfg": [
                    "FLOAT",
                    {
                        "default": 8.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.1,
                        "round": 0.01
                    }
                ],
                "sampler_name": [
                    [
                        "euler",
                        "euler_cfg_pp",
                        "euler_ancestral",
                        "euler_ancestral_cfg_pp",
                        "heun",
                        "heunpp2",
                        "dpm_2",
                        "dpm_2_ancestral",
                        "lms",
                        "dpm_fast",
                        "dpm_adaptive",
                        "dpmpp_2s_ancestral",
                        "dpmpp_2s_ancestral_cfg_pp",
                        "dpmpp_sde",
                        "dpmpp_sde_gpu",
                        "dpmpp_2m",
                        "dpmpp_2m_cfg_pp",
                        "dpmpp_2m_sde",
                        "dpmpp_2m_sde_gpu",
                        "dpmpp_3m_sde",
                        "dpmpp_3m_sde_gpu",
                        "ddpm",
                        "lcm",
                        "ipndm",
                        "ipndm_v",
                        "deis",
                        "res_multistep",
                        "res_multistep_cfg_pp",
                        "res_multistep_ancestral",
                        "res_multistep_ancestral_cfg_pp",
                        "gradient_estimation",
                        "gradient_estimation_cfg_pp",
                        "er_sde",
                        "seeds_2",
                        "seeds_3",
                        "sa_solver",
                        "sa_solver_pece",
                        "ddim",
                        "uni_pc",
                        "uni_pc_bh2"
                    ]
                ],
                "scheduler": [
                    [
                        "simple",
                        "sgm_uniform",
                        "karras",
                        "exponential",
                        "ddim_uniform",
                        "beta",
                        "normal",
                        "linear_quadratic",
                        "kl_optimal"
                    ]
                ],
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "latent_image": [
                    "LATENT"
                ],
                "start_at_step": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 10000
                    }
                ],
                "end_at_step": [
                    "INT",
                    {
                        "default": 10000,
                        "min": 0,
                        "max": 10000
                    }
                ],
                "return_with_leftover_noise": [
                    [
                        "disable",
                        "enable"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "add_noise",
                "noise_seed",
                "steps",
                "cfg",
                "sampler_name",
                "scheduler",
                "positive",
                "negative",
                "latent_image",
                "start_at_step",
                "end_at_step",
                "return_with_leftover_noise"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "KSamplerAdvanced",
        "display_name": "KSampler (Advanced)",
        "description": "",
        "python_module": "nodes",
        "category": "sampling",
        "output_node": false
    },
    "SetLatentNoiseMask": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "mask": [
                    "MASK"
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "mask"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "SetLatentNoiseMask",
        "display_name": "Set Latent Noise Mask",
        "description": "",
        "python_module": "nodes",
        "category": "latent/inpaint",
        "output_node": false
    },
    "LatentComposite": {
        "input": {
            "required": {
                "samples_to": [
                    "LATENT"
                ],
                "samples_from": [
                    "LATENT"
                ],
                "x": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "y": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "feather": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "samples_to",
                "samples_from",
                "x",
                "y",
                "feather"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentComposite",
        "display_name": "Latent Composite",
        "description": "",
        "python_module": "nodes",
        "category": "latent",
        "output_node": false
    },
    "LatentBlend": {
        "input": {
            "required": {
                "samples1": [
                    "LATENT"
                ],
                "samples2": [
                    "LATENT"
                ],
                "blend_factor": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0,
                        "max": 1,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "samples1",
                "samples2",
                "blend_factor"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentBlend",
        "display_name": "Latent Blend",
        "description": "",
        "python_module": "nodes",
        "category": "_for_testing",
        "output_node": false
    },
    "LatentRotate": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "rotation": [
                    [
                        "none",
                        "90 degrees",
                        "180 degrees",
                        "270 degrees"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "rotation"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentRotate",
        "display_name": "Rotate Latent",
        "description": "",
        "python_module": "nodes",
        "category": "latent/transform",
        "output_node": false
    },
    "LatentFlip": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "flip_method": [
                    [
                        "x-axis: vertically",
                        "y-axis: horizontally"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "flip_method"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentFlip",
        "display_name": "Flip Latent",
        "description": "",
        "python_module": "nodes",
        "category": "latent/transform",
        "output_node": false
    },
    "LatentCrop": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "width": [
                    "INT",
                    {
                        "default": 512,
                        "min": 64,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 512,
                        "min": 64,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "x": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "y": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "width",
                "height",
                "x",
                "y"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentCrop",
        "display_name": "Crop Latent",
        "description": "",
        "python_module": "nodes",
        "category": "latent/transform",
        "output_node": false
    },
    "LoraLoader": {
        "input": {
            "required": {
                "model": [
                    "MODEL",
                    {
                        "tooltip": "The diffusion model the LoRA will be applied to."
                    }
                ],
                "clip": [
                    "CLIP",
                    {
                        "tooltip": "The CLIP model the LoRA will be applied to."
                    }
                ],
                "lora_name": [
                    [
                        "5shot.safetensors",
                        "AnimateLCM/AnimateLCM_sd15_t2v_lora.safetensors",
                        "Comics_V3-05.safetensors",
                        "Detailed_Hands-000001.safetensors",
                        "Drawing.safetensors",
                        "Duc_Abed.safetensors",
                        "Duc_Lustig.safetensors",
                        "Duc_Miller.safetensors",
                        "Duc_Nehama.safetensors",
                        "Duc_Shaintz.safetensors",
                        "Duc_Tidhar.safetensors",
                        "Expressive_H-000001.safetensors",
                        "FLUX.1-Turbo-Alpha.safetensors",
                        "FilmVelvia3.safetensors",
                        "FrankMiller-10.safetensors",
                        "Grungy_Picture_SDXL_V1.safetensors",
                        "LORAFlatColor_flatColor.pt",
                        "LZ-comic strip.safetensors",
                        "LineArt.safetensors",
                        "LoconLoraOffsetNoise_locon0501.pt",
                        "LowRA.safetensors",
                        "NSFW_master.safetensors",
                        "OilPainting.safetensors",
                        "Pencil_Sketch_Style.safetensors",
                        "PerfectEyesXL.safetensors",
                        "SDXL_StopMotion_lora.safetensors",
                        "SU_Twrk_EP62.safetensors",
                        "Samsung_UltraReal.safetensors",
                        "Titfuck_WAN14B_V1_Release.safetensors",
                        "UltraRealPhoto.safetensors",
                        "WAN_dr34mj0b.safetensors",
                        "Wan21_CausVid_14B_T2V_lora_rank32.safetensors",
                        "Wan21_CausVid_bidirect2_T2V_1_3B_lora_rank32.safetensors",
                        "Western_Comic_Style.safetensors",
                        "aardstyle1.0.safetensors",
                        "add-detail-xl.safetensors",
                        "add_detail.safetensors",
                        "aidmaRealisticSkin-FLUX-v0.1.safetensors",
                        "amateurphoto-v6-forcu.safetensors",
                        "animeoutlineV4_16.safetensors",
                        "bad-hands-5.pt",
                        "bounceV_01.safetensors",
                        "bustyFC-2.1.safetensors",
                        "comfyui_portrait_lora64.safetensors",
                        "comfyui_subject_lora16.safetensors",
                        "comic-000009.safetensors",
                        "detail_slider_v4.safetensors",
                        "detailz-wan.safetensors",
                        "dicks_epoch_100.safetensors",
                        "diffusion_pytorch_model.safetensors",
                        "elldrethslucidmix_Lora300.safetensors",
                        "epiNoiseoffset_v2.safetensors",
                        "erect_penis_epoch_80.safetensors",
                        "facials_epoch_50.safetensors",
                        "fingering_i2v_e248.safetensors",
                        "flux/In-Context-LoRA/couple-profile.safetensors",
                        "flux/In-Context-LoRA/film-storyboard.safetensors",
                        "flux/In-Context-LoRA/font-design.safetensors",
                        "flux/In-Context-LoRA/home-decoration.safetensors",
                        "flux/In-Context-LoRA/portrait-illustration.safetensors",
                        "flux/In-Context-LoRA/portrait-photography.safetensors",
                        "flux/In-Context-LoRA/ppt-templates.safetensors",
                        "flux/In-Context-LoRA/sandstorm-visual-effect.safetensors",
                        "flux/In-Context-LoRA/sparklers-visual-effect.safetensors",
                        "flux/In-Context-LoRA/visual-identity-design.safetensors",
                        "flux/UltraRealPhoto.safetensors",
                        "flux/anime_lora.safetensors",
                        "flux/anime_lora_comfy_converted.safetensors",
                        "flux/art_lora.safetensors",
                        "flux/art_lora_comfy_converted.safetensors",
                        "flux/disney_lora.safetensors",
                        "flux/disney_lora_comfy_converted.safetensors",
                        "flux/flux.1-turbo-alpha/diffusion_pytorch_model.safetensors",
                        "flux/furry_lora.safetensors",
                        "flux/mjv6_lora.safetensors",
                        "flux/mjv6_lora_comfy_converted.safetensors",
                        "flux/realism_lora.safetensors",
                        "flux/realism_lora_comfy_converted.safetensors",
                        "flux/scenery_lora.safetensors",
                        "flux/scenery_lora_comfy_converted.safetensors",
                        "flux1-canny-dev-lora.safetensors",
                        "flux1-depth-dev-lora.safetensors",
                        "fluxRealSkin-V2.safetensors",
                        "flux_lora_file_rank16_bf16-step00350.safetensors",
                        "flux_lora_file_rank16_bf16-step00750.safetensors",
                        "flux_realism_lora.safetensors",
                        "front_doggy_plow_v1_1_wan.safetensors",
                        "genitals_helper_v1.0_e219.safetensors",
                        "hunyuan/hyvideo_FastVideo_LoRA-fp8.safetensors",
                        "impressionism.safetensors",
                        "insert-anything_extracted_lora_rank_64-bf16.safetensors",
                        "jfj-deepthroat-v1.safetensors",
                        "kontext/Akira Toriyama - Dragon Ball Style - Kontext.safetensors",
                        "kontext/FlatAnimation\u3010style\u3011_flux_kontext_lora_v1-PAseer.safetensors",
                        "kontext/GuoHuaKontextLoRA.safetensors",
                        "kontext/HDR360.safetensors",
                        "kontext/HXHY-RealisticKontextLoRA1.6.safetensors",
                        "kontext/InScene-v1.0.safetensors",
                        "kontext/Three-view sketch.safetensors",
                        "kontext/fluffy-kontext-lora.safetensors",
                        "kontext/ghibliStyle_kontext_byJaneB.safetensors",
                        "kontext/glass-prism-kontext-lora.safetensors",
                        "kontext/kontext-pixelize-v1.1_000001500.safetensors",
                        "kontext/kontext_change_clothes_t1.safetensors",
                        "kontext/mech-anything-kontext.safetensors",
                        "kontext/unflux_v1.safetensors",
                        "lcm/sd1/pytorch_lora_weights.safetensors",
                        "lcm/sdxl/pytorch_lora_weights.safetensors",
                        "lineart + flat colors v2.safetensors",
                        "marymarvel-nvwls-v1.safetensors",
                        "mhk_comics.safetensors",
                        "mo.safetensors",
                        "modernAmericanComics_v10.safetensors",
                        "modernDisneyLORA_modiV1.safetensors",
                        "more_details.safetensors",
                        "nsfw_flux_lora_v1.safetensors",
                        "r1ge - AnimeRage.safetensors",
                        "ral-dissolve-sdxl.safetensors",
                        "rottingZombies.safetensors",
                        "sam_yang_offset_right_filesize.safetensors",
                        "sd1/3232pixel.safetensors",
                        "sd1/AoTStyle.safetensors",
                        "sd1/AxelStone-DocStasis.safetensors",
                        "sd1/DrippingArt.safetensors",
                        "sd1/GTA_Style.safetensors",
                        "sd1/LiquidAF-0-1.safetensors",
                        "sd1/Longan.safetensors",
                        "sd1/Magazine-10.safetensors",
                        "sd1/Naruto.safetensors",
                        "sd1/add_detail.safetensors",
                        "sd1/anime_minimalist_v1-000020.safetensors",
                        "sd1/animemix_v3_offset.safetensors",
                        "sd1/animeoutlineV4_16.safetensors",
                        "sd1/arcane_offset.safetensors",
                        "sd1/concept_master_1.0.safetensors",
                        "sd1/epi_noiseoffset2.pt",
                        "sd1/ghibli_style_offset.safetensors",
                        "sd1/ip-adapter-faceid-plus_sd15_lora.safetensors",
                        "sd1/ip-adapter-faceid-plusv2_sd15_lora.safetensors",
                        "sd1/ip-adapter-faceid_sd15_lora.safetensors",
                        "sd1/modernlogo.safetensors",
                        "sd1/more_details.safetensors",
                        "sd1/neg4all_bdsqlsz_V3.5.safetensors",
                        "sd1/sd15_lcm_lora.safetensors",
                        "sd1/tangbohu-line_1.0.safetensors",
                        "sd1/v3_sd15_adapter.ckpt",
                        "sdxl/3DRedmond-3DRenderStyle-3DRenderAF.safetensors",
                        "sdxl/Aether_Fire_v1_SDXL_LoRA.safetensors",
                        "sdxl/Aether_Ghost_v1.1_LoRA.safetensors",
                        "sdxl/Aether_Ghost_v1_LoRA.safetensors",
                        "sdxl/ClayAnimationRedm.safetensors",
                        "sdxl/DreamARTSDXL.safetensors",
                        "sdxl/MJ52.safetensors",
                        "sdxl/PS1Redmond-PS1Game-Playstation1Graphics.safetensors",
                        "sdxl/ParchartXL-2.0.safetensors",
                        "sdxl/PixelArtRedmond-Lite64.safetensors",
                        "sdxl/StickersRedmond.safetensors",
                        "sdxl/ToyRedmond-FnkRedmAF.safetensors",
                        "sdxl/WowifierXL-V2.safetensors",
                        "sdxl/add-detail-xl.safetensors",
                        "sdxl/cereal_box_sdxl_v1.safetensors",
                        "sdxl/crayons_v1_sdxl.safetensors",
                        "sdxl/fofr/emoji.safetensors",
                        "sdxl/ikea_instructions_xl_v1_5.safetensors",
                        "sdxl/ip-adapter-faceid-plusv2_sdxl_lora.safetensors",
                        "sdxl/ip-adapter-faceid_sdxl_lora.safetensors",
                        "sdxl/magik_smoke_v1.2.safetensors",
                        "sdxl/neg4all_xl_bdsqlsz_V5.safetensors",
                        "sdxl/sdxl_lightning_8step_lora.safetensors",
                        "sdxl/sdxl_offset_example_v10.safetensors",
                        "sdxl/wojak_SDXL.safetensors",
                        "sdxl/xl_more_art-full_v1.safetensors",
                        "skin_4-000015.safetensors",
                        "skin_tone_slider_v1.safetensors",
                        "wan-nsfw-e14-fixed.safetensors",
                        "wan2.1-1.3b-control-lora-tile-v1.0_comfy.safetensors",
                        "wan_cowgirl_v1.3.safetensors",
                        "wan_cumshot_i2v.safetensors",
                        "wan_female_masturbation.safetensors",
                        "wan_pov_missionary_i2v_v1.1.safetensors",
                        "xk3mt1ks.safetensors",
                        "xl_more_art-full-beta2.safetensors",
                        "xl_more_art-full_v1.safetensors",
                        "xl_yamer_style-2.0.safetensors"
                    ],
                    {
                        "tooltip": "The name of the LoRA."
                    }
                ],
                "strength_model": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -100.0,
                        "max": 100.0,
                        "step": 0.01,
                        "tooltip": "How strongly to modify the diffusion model. This value can be negative."
                    }
                ],
                "strength_clip": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -100.0,
                        "max": 100.0,
                        "step": 0.01,
                        "tooltip": "How strongly to modify the CLIP model. This value can be negative."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "clip",
                "lora_name",
                "strength_model",
                "strength_clip"
            ]
        },
        "output": [
            "MODEL",
            "CLIP"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "MODEL",
            "CLIP"
        ],
        "name": "LoraLoader",
        "display_name": "Load LoRA",
        "description": "LoRAs are used to modify diffusion and CLIP models, altering the way in which latents are denoised such as applying styles. Multiple LoRA nodes can be linked together.",
        "python_module": "nodes",
        "category": "loaders",
        "output_node": false,
        "output_tooltips": [
            "The modified diffusion model.",
            "The modified CLIP model."
        ]
    },
    "CLIPLoader": {
        "input": {
            "required": {
                "clip_name": [
                    [
                        "EVA02_CLIP_L_336_psz14_s6B.pt",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "ViT-L-14.pt",
                        "clip-vit-large-patch14/model.safetensors",
                        "clip_g_hidream.safetensors",
                        "clip_l.safetensors",
                        "clip_l_hidream.safetensors",
                        "google--siglip-so400m-patch14-384/model.safetensors",
                        "llama_3.1_8b_instruct_fp8_scaled.safetensors",
                        "llava_llama3_fp16.safetensors",
                        "llava_llama3_fp8_scaled.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "oldt5_xxl_fp16.safetensors",
                        "oldt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "open-clip-xlm-roberta-large-vit-huge-14_visual_fp16.safetensors",
                        "qwen_2.5_vl_7b.safetensors",
                        "qwen_2.5_vl_7b_fp8_scaled.safetensors",
                        "sa1/t5_base.safetensors",
                        "sc/model.safetensors",
                        "sd3m/clip_g.safetensors",
                        "sd3m/clip_l.safetensors",
                        "sd3m/t5xxl_fp16.safetensors",
                        "sd3m/t5xxl_fp8_e4m3fn.safetensors",
                        "siglip-so400m-patch14-384/model.safetensors",
                        "t5/google_t5-v1_1-xxl_encoderonly-fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp16.safetensors",
                        "t5/t5xxl_fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "t5xxl_fp16.safetensors",
                        "t5xxl_fp8_e4m3fn.safetensors",
                        "t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "text_encoder/model-00001-of-00002.safetensors",
                        "text_encoder/model-00002-of-00002.safetensors",
                        "umt5-xxl-enc-bf16.safetensors",
                        "umt5-xxl-enc-fp8_e4m3fn.safetensors",
                        "umt5_xxl_fp16.safetensors",
                        "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "wan2_1/umt5-xxl-enc-bf16.safetensors",
                        "wan2_1/umt5-xxl-enc-fp8_e4m3fn.safetensors"
                    ]
                ],
                "type": [
                    [
                        "stable_diffusion",
                        "stable_cascade",
                        "sd3",
                        "stable_audio",
                        "mochi",
                        "ltxv",
                        "pixart",
                        "cosmos",
                        "lumina2",
                        "wan",
                        "hidream",
                        "chroma",
                        "ace",
                        "omnigen2",
                        "qwen_image"
                    ]
                ]
            },
            "optional": {
                "device": [
                    [
                        "default",
                        "cpu"
                    ],
                    {
                        "advanced": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip_name",
                "type"
            ],
            "optional": [
                "device"
            ]
        },
        "output": [
            "CLIP"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CLIP"
        ],
        "name": "CLIPLoader",
        "display_name": "Load CLIP",
        "description": "[Recipes]\n\nstable_diffusion: clip-l\nstable_cascade: clip-g\nsd3: t5 xxl/ clip-g / clip-l\nstable_audio: t5 base\nmochi: t5 xxl\ncosmos: old t5 xxl\nlumina2: gemma 2 2B\nwan: umt5 xxl\n hidream: llama-3.1 (Recommend) or t5\nomnigen2: qwen vl 2.5 3B",
        "python_module": "nodes",
        "category": "advanced/loaders",
        "output_node": false
    },
    "UNETLoader": {
        "input": {
            "required": {
                "unet_name": [
                    [
                        "FLUX.1-Fill-dev/ae.safetensors",
                        "FLUX.1-Fill-dev/flux1-fill-dev.safetensors",
                        "FLUX.1-Fill-dev/text_encoder/model.safetensors",
                        "FLUX.1-Fill-dev/text_encoder_2/model-00001-of-00002.safetensors",
                        "FLUX.1-Fill-dev/text_encoder_2/model-00002-of-00002.safetensors",
                        "FLUX.1-Fill-dev/transformer/diffusion_pytorch_model-00001-of-00003.safetensors",
                        "FLUX.1-Fill-dev/transformer/diffusion_pytorch_model-00002-of-00003.safetensors",
                        "FLUX.1-Fill-dev/transformer/diffusion_pytorch_model-00003-of-00003.safetensors",
                        "FLUX.1-Fill-dev/vae/diffusion_pytorch_model.safetensors",
                        "FLUX.1-Redux-dev/flux1-redux-dev.safetensors",
                        "FLUX.1-Redux-dev/image_embedder/diffusion_pytorch_model.safetensors",
                        "FLUX.1-Redux-dev/image_encoder/model.safetensors",
                        "FLUX1/flux1-dev-fp8.safetensors",
                        "FLUX1/flux_dev_fp8_scaled_diffusion_model.safetensors",
                        "IC-Light/iclight_sd15_fbc.safetensors",
                        "InfiniteTalk/Wan2_1-InfiniTetalk-Single_fp16.safetensors",
                        "InfiniteTalk/Wan2_1-InfiniteTalk-Single_fp8_e4m3fn_scaled_KJ.safetensors",
                        "Phantom-Wan-1_3B_fp16.safetensors",
                        "STOIQOAfroditeFLUXXL_F1DAlpha.safetensors",
                        "Wan2.1-Fun-1.3B-Control.safetensors",
                        "Wan2.1_Fun_V1.1_1.3B_Control_Camera.safetensors",
                        "Wan2.1_T2V_14B_FusionX_VACE-FP16.safetensors",
                        "Wan2.2-Fun-A14B-Control/high_noise_model/diffusion_pytorch_model.safetensors",
                        "Wan2.2-Fun-A14B-Control/low_noise_model/diffusion_pytorch_model.safetensors",
                        "Wan2.2-Fun-A14B-Control/wan2.2_fun_control_high_noise_14B_fp8_scaled.safetensors",
                        "Wan2.2-Fun-A14B-Control/wan2.2_fun_control_low_noise_14B_fp8_scaled.safetensors",
                        "Wan2_1-I2V-14B-720P_fp8_e4m3fn.safetensors",
                        "Wan2_1-I2V-14B-720P_fp8_e5m2.safetensors",
                        "Wan2_1-I2V-ATI-14B_fp8_e4m3fn.safetensors",
                        "Wan2_1-SkyReels-V2-DF-1_3B-540P_fp32.safetensors",
                        "Wan2_1-VACE_module_14B_bf16.safetensors",
                        "Wan2_1-VACE_module_14B_fp8_e4m3fn.safetensors",
                        "Wan2_1-VACE_module_1_3B_bf16.safetensors",
                        "cosmos/Cosmos-1_0-Diffusion-14B-Text2World.safetensors",
                        "cosmos/Cosmos-1_0-Diffusion-14B-Video2World.safetensors",
                        "cosmos/Cosmos-1_0-Diffusion-7B-Text2World.safetensors",
                        "cosmos/Cosmos-1_0-Diffusion-7B-Video2World.safetensors",
                        "cosmos_predict2/cosmos_predict2_14B_t2i.safetensors",
                        "cosmos_predict2/cosmos_predict2_14B_video2world_480p_16fps.safetensors",
                        "cosmos_predict2/cosmos_predict2_2B_t2i.safetensors",
                        "cosmos_predict2/cosmos_predict2_2B_video2world_480p_16fps.safetensors",
                        "flux/flux1-canny-dev.safetensors",
                        "flux/flux1-depth-dev.safetensors",
                        "flux/flux1-dev-fp8.safetensors",
                        "flux/flux1-dev.sft",
                        "flux/flux1-fill-dev.safetensors",
                        "flux/flux1-redux-dev.safetensors",
                        "flux/flux1-schnell-fp8.safetensors",
                        "flux/flux1-schnell.sft",
                        "flux/fluxRealistic_fluxRealisticSamayV2.safetensors",
                        "flux/kijai/flux1-dev-fp8.safetensors",
                        "flux1-dev-fp8.safetensors",
                        "flux1-dev.safetensors",
                        "flux1-dev.sft",
                        "flux1-fill-dev.safetensors",
                        "flux1-krea-dev.safetensors",
                        "flux1-schnell.safetensors",
                        "flux1-schnell.sft",
                        "fluxFillFP8_v10.safetensors",
                        "hidream_i1_full_fp16.safetensors",
                        "hunyuan/hunyuan_video_720_cfgdistill_bf16.safetensors",
                        "hunyuan/hunyuan_video_720_cfgdistill_fp8_e4m3fn.safetensors",
                        "hunyuan/hunyuan_video_FastVideo_720_fp8_e4m3fn.safetensors",
                        "hunyuan3d-dit-v2-1/model.fp16.ckpt",
                        "hunyuan_video_720_cfgdistill_bf16.safetensors",
                        "pyramid_flow_miniflux_bf16_v1.safetensors",
                        "pyramid_flow_miniflux_bf16_v2.safetensors",
                        "pyramid_flow_miniflux_fp8_e4m3fn_v2.safetensors",
                        "qwen_image_bf16.safetensors",
                        "qwen_image_fp8_e4m3fn.safetensors",
                        "sc/stage_b.safetensors",
                        "sc/stage_b_bf16.safetensors",
                        "sc/stage_b_lite.safetensors",
                        "sc/stage_b_lite_bf16.safetensors",
                        "sc/stage_c.safetensors",
                        "sc/stage_c_bf16.safetensors",
                        "sc/stage_c_lite.safetensors",
                        "sc/stage_c_lite_bf16.safetensors",
                        "sc/stage_c_pretrained.safetensors",
                        "sd1/iclight_sd15_fbc.safetensors",
                        "sd1/iclight_sd15_fbc_unet_ldm.safetensors",
                        "sd1/iclight_sd15_fc.safetensors",
                        "sd1/iclight_sd15_fc_unet_ldm.safetensors",
                        "sd1/iclight_sd15_fcon.safetensors",
                        "svdq-int4-flux.1-fill-dev/transformer_blocks.safetensors",
                        "svdq-int4-flux.1-fill-dev/unquantized_layers.safetensors",
                        "wan/Wan2_1-I2V-14B-720p_fp8_e4m3fn_scaled_KJ.safetensors",
                        "wan/aniWan2114BFp8E4m3fn_t2v.safetensors",
                        "wan2.1/Phantom-Wan-14B_fp16.safetensors",
                        "wan2.1/Wan2_1_kwai_recammaster_1_3B_step20000_bf16.safetensors",
                        "wan2.1/wan2.1_i2v_480p_14B_bf16.safetensors",
                        "wan2.1/wan2.1_t2v_1.3B_fp16.safetensors",
                        "wan2.1_fun_control_1.3B_bf16.safetensors",
                        "wan2.1_i2v_480p_14B_bf16.safetensors",
                        "wan2.1_i2v_480p_14B_fp16.safetensors",
                        "wan2.1_i2v_720p_14B_bf16.safetensors",
                        "wan2.1_t2v_1.3B_fp16.safetensors",
                        "wan2.1_vace_1.3B_fp16.safetensors",
                        "wan2.1_vace_14B_fp16.safetensors",
                        "wan2.2/Wan2_2-I2V-A14B-HIGH_fp8_e4m3fn_scaled_KJ.safetensors",
                        "wan2.2/Wan2_2-I2V-A14B-LOW_fp8_e4m3fn_scaled_KJ.safetensors",
                        "wan2.2/Wan2_2-T2V-A14B-LOW_fp8_e4m3fn_scaled_KJ.safetensors",
                        "wan2.2/Wan2_2-T2V-A14B_HIGH_fp8_e4m3fn_scaled_KJ.safetensors",
                        "wan2.2_i2v_high_noise_14B_fp16.safetensors",
                        "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors",
                        "wan2.2_i2v_low_noise_14B_fp16.safetensors",
                        "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors",
                        "wan2.2_t2v_high_noise_14B_fp16.safetensors",
                        "wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors",
                        "wan2.2_t2v_low_noise_14B_fp16.safetensors",
                        "wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors",
                        "wan2.2_ti2v_5B_fp16.safetensors",
                        "wanAIWan21VideoModelSafetensors_kijaiWan21I2V14B480P.safetensors",
                        "xl-inpaint-0.1/diffusion_pytorch_model.fp16.safetensors"
                    ]
                ],
                "weight_dtype": [
                    [
                        "default",
                        "fp8_e4m3fn",
                        "fp8_e4m3fn_fast",
                        "fp8_e5m2"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "unet_name",
                "weight_dtype"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "UNETLoader",
        "display_name": "Load Diffusion Model",
        "description": "",
        "python_module": "nodes",
        "category": "advanced/loaders",
        "output_node": false
    },
    "DualCLIPLoader": {
        "input": {
            "required": {
                "clip_name1": [
                    [
                        "EVA02_CLIP_L_336_psz14_s6B.pt",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "ViT-L-14.pt",
                        "clip-vit-large-patch14/model.safetensors",
                        "clip_g_hidream.safetensors",
                        "clip_l.safetensors",
                        "clip_l_hidream.safetensors",
                        "google--siglip-so400m-patch14-384/model.safetensors",
                        "llama_3.1_8b_instruct_fp8_scaled.safetensors",
                        "llava_llama3_fp16.safetensors",
                        "llava_llama3_fp8_scaled.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "oldt5_xxl_fp16.safetensors",
                        "oldt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "open-clip-xlm-roberta-large-vit-huge-14_visual_fp16.safetensors",
                        "qwen_2.5_vl_7b.safetensors",
                        "qwen_2.5_vl_7b_fp8_scaled.safetensors",
                        "sa1/t5_base.safetensors",
                        "sc/model.safetensors",
                        "sd3m/clip_g.safetensors",
                        "sd3m/clip_l.safetensors",
                        "sd3m/t5xxl_fp16.safetensors",
                        "sd3m/t5xxl_fp8_e4m3fn.safetensors",
                        "siglip-so400m-patch14-384/model.safetensors",
                        "t5/google_t5-v1_1-xxl_encoderonly-fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp16.safetensors",
                        "t5/t5xxl_fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "t5xxl_fp16.safetensors",
                        "t5xxl_fp8_e4m3fn.safetensors",
                        "t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "text_encoder/model-00001-of-00002.safetensors",
                        "text_encoder/model-00002-of-00002.safetensors",
                        "umt5-xxl-enc-bf16.safetensors",
                        "umt5-xxl-enc-fp8_e4m3fn.safetensors",
                        "umt5_xxl_fp16.safetensors",
                        "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "wan2_1/umt5-xxl-enc-bf16.safetensors",
                        "wan2_1/umt5-xxl-enc-fp8_e4m3fn.safetensors"
                    ]
                ],
                "clip_name2": [
                    [
                        "EVA02_CLIP_L_336_psz14_s6B.pt",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "ViT-L-14.pt",
                        "clip-vit-large-patch14/model.safetensors",
                        "clip_g_hidream.safetensors",
                        "clip_l.safetensors",
                        "clip_l_hidream.safetensors",
                        "google--siglip-so400m-patch14-384/model.safetensors",
                        "llama_3.1_8b_instruct_fp8_scaled.safetensors",
                        "llava_llama3_fp16.safetensors",
                        "llava_llama3_fp8_scaled.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "oldt5_xxl_fp16.safetensors",
                        "oldt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "open-clip-xlm-roberta-large-vit-huge-14_visual_fp16.safetensors",
                        "qwen_2.5_vl_7b.safetensors",
                        "qwen_2.5_vl_7b_fp8_scaled.safetensors",
                        "sa1/t5_base.safetensors",
                        "sc/model.safetensors",
                        "sd3m/clip_g.safetensors",
                        "sd3m/clip_l.safetensors",
                        "sd3m/t5xxl_fp16.safetensors",
                        "sd3m/t5xxl_fp8_e4m3fn.safetensors",
                        "siglip-so400m-patch14-384/model.safetensors",
                        "t5/google_t5-v1_1-xxl_encoderonly-fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp16.safetensors",
                        "t5/t5xxl_fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "t5xxl_fp16.safetensors",
                        "t5xxl_fp8_e4m3fn.safetensors",
                        "t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "text_encoder/model-00001-of-00002.safetensors",
                        "text_encoder/model-00002-of-00002.safetensors",
                        "umt5-xxl-enc-bf16.safetensors",
                        "umt5-xxl-enc-fp8_e4m3fn.safetensors",
                        "umt5_xxl_fp16.safetensors",
                        "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "wan2_1/umt5-xxl-enc-bf16.safetensors",
                        "wan2_1/umt5-xxl-enc-fp8_e4m3fn.safetensors"
                    ]
                ],
                "type": [
                    [
                        "sdxl",
                        "sd3",
                        "flux",
                        "hunyuan_video",
                        "hidream"
                    ]
                ]
            },
            "optional": {
                "device": [
                    [
                        "default",
                        "cpu"
                    ],
                    {
                        "advanced": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip_name1",
                "clip_name2",
                "type"
            ],
            "optional": [
                "device"
            ]
        },
        "output": [
            "CLIP"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CLIP"
        ],
        "name": "DualCLIPLoader",
        "display_name": "DualCLIPLoader",
        "description": "[Recipes]\n\nsdxl: clip-l, clip-g\nsd3: clip-l, clip-g / clip-l, t5 / clip-g, t5\nflux: clip-l, t5\nhidream: at least one of t5 or llama, recommended t5 and llama",
        "python_module": "nodes",
        "category": "advanced/loaders",
        "output_node": false
    },
    "CLIPVisionEncode": {
        "input": {
            "required": {
                "clip_vision": [
                    "CLIP_VISION"
                ],
                "image": [
                    "IMAGE"
                ],
                "crop": [
                    [
                        "center",
                        "none"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "clip_vision",
                "image",
                "crop"
            ]
        },
        "output": [
            "CLIP_VISION_OUTPUT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CLIP_VISION_OUTPUT"
        ],
        "name": "CLIPVisionEncode",
        "display_name": "CLIP Vision Encode",
        "description": "",
        "python_module": "nodes",
        "category": "conditioning",
        "output_node": false
    },
    "StyleModelApply": {
        "input": {
            "required": {
                "conditioning": [
                    "CONDITIONING"
                ],
                "style_model": [
                    "STYLE_MODEL"
                ],
                "clip_vision_output": [
                    "CLIP_VISION_OUTPUT"
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.001
                    }
                ],
                "strength_type": [
                    [
                        "multiply",
                        "attn_bias"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning",
                "style_model",
                "clip_vision_output",
                "strength",
                "strength_type"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "StyleModelApply",
        "display_name": "Apply Style Model",
        "description": "",
        "python_module": "nodes",
        "category": "conditioning/style_model",
        "output_node": false
    },
    "unCLIPConditioning": {
        "input": {
            "required": {
                "conditioning": [
                    "CONDITIONING"
                ],
                "clip_vision_output": [
                    "CLIP_VISION_OUTPUT"
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -10.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "noise_augmentation": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning",
                "clip_vision_output",
                "strength",
                "noise_augmentation"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "unCLIPConditioning",
        "display_name": "unCLIPConditioning",
        "description": "",
        "python_module": "nodes",
        "category": "conditioning",
        "output_node": false
    },
    "ControlNetApply": {
        "input": {
            "required": {
                "conditioning": [
                    "CONDITIONING"
                ],
                "control_net": [
                    "CONTROL_NET"
                ],
                "image": [
                    "IMAGE"
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning",
                "control_net",
                "image",
                "strength"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "ControlNetApply",
        "display_name": "Apply ControlNet (OLD)",
        "description": "",
        "python_module": "nodes",
        "category": "conditioning/controlnet",
        "output_node": false,
        "deprecated": true
    },
    "ControlNetApplyAdvanced": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "control_net": [
                    "CONTROL_NET"
                ],
                "image": [
                    "IMAGE"
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "start_percent": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "end_percent": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ]
            },
            "optional": {
                "vae": [
                    "VAE"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "control_net",
                "image",
                "strength",
                "start_percent",
                "end_percent"
            ],
            "optional": [
                "vae"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative"
        ],
        "name": "ControlNetApplyAdvanced",
        "display_name": "Apply ControlNet",
        "description": "",
        "python_module": "nodes",
        "category": "conditioning/controlnet",
        "output_node": false
    },
    "ControlNetLoader": {
        "input": {
            "required": {
                "control_net_name": [
                    [
                        "ControlNetHED.pth",
                        "FLUX.1-dev-ControlNet-Union-Pro-2.0.safetensors",
                        "FLUX.1/InstantX-FLUX1-Dev-Union/diffusion_pytorch_model.safetensors",
                        "FLUX.1/Shakker-Labs-ControlNet-Union-Pro/diffusion_pytorch_model.safetensors",
                        "FLUX.1/flux_shakker_labs_union_pro-fp8_e4m3fn.safetensors",
                        "Flux.1-dev-Controlnet-Upscaler.safetensors",
                        "SDXL/OpenPoseXL2.safetensors",
                        "SDXL/controlnet-union-sdxl-1.0/diffusion_pytorch_model_promax.safetensors",
                        "Wan21_Uni3C_controlnet_fp16.safetensors",
                        "animatediff/animatediffControlnet_sd15FP32.safetensors",
                        "animatediff/v3_sd15_sparsectrl_rgb.ckpt",
                        "animatediff/v3_sd15_sparsectrl_scribble.ckpt",
                        "control_lora_rank128_v11f1p_sd15_depth_fp16.safetensors",
                        "control_lora_rank128_v11p_sd15_canny_fp16.safetensors",
                        "control_lora_rank128_v11p_sd15_normalbae_fp16.safetensors",
                        "control_lora_rank128_v11p_sd15_openpose_fp16.safetensors",
                        "control_sd15_canny.pth",
                        "control_sd15_depth.pth",
                        "control_sd15_hed.pth",
                        "control_sd15_normal.pth",
                        "control_sd15_openpose.pth",
                        "control_v11f1p_sd15_depth_fp16.safetensors",
                        "control_v11p_sd15_canny.pth",
                        "control_v11p_sd15_openpose.pth",
                        "control_v11p_sd15_openpose_fp16.safetensors",
                        "control_v11p_sd15_scribble_fp16.safetensors",
                        "control_v11p_sd15_seg.pth",
                        "diff_control_sd15_temporalnet_fp16.safetensors",
                        "flux/flux-canny-controlnet-v3.safetensors",
                        "flux/flux-canny-controlnet.safetensors",
                        "flux/flux-canny-controlnet_v2.safetensors",
                        "flux/flux-depth-controlnet-v3.safetensors",
                        "flux/flux-depth-controlnet.safetensors",
                        "flux/flux-depth-controlnet_v2.safetensors",
                        "flux/flux-hed-controlnet.safetensors",
                        "flux/flux.1-dev-controlnet-union/diffusion_pytorch_model.safetensors",
                        "instantid/diffusion_pytorch_model.safetensors",
                        "sd1/coadapter-canny-sd15v1.pth",
                        "sd1/coadapter-color-sd15v1.pth",
                        "sd1/coadapter-depth-sd15v1.pth",
                        "sd1/coadapter-fuser-sd15v1.pth",
                        "sd1/coadapter-sketch-sd15v1.pth",
                        "sd1/coadapter-style-sd15v1.pth",
                        "sd1/control_sd15_inpaint_depth_hand_fp16.safetensors",
                        "sd1/control_v11e_sd15_ip2p.pth",
                        "sd1/control_v11e_sd15_shuffle.pth",
                        "sd1/control_v11f1e_sd15_tile.pth",
                        "sd1/control_v11f1p_sd15_depth.pth",
                        "sd1/control_v11p_sd15_canny.pth",
                        "sd1/control_v11p_sd15_inpaint.pth",
                        "sd1/control_v11p_sd15_lineart.pth",
                        "sd1/control_v11p_sd15_mlsd.pth",
                        "sd1/control_v11p_sd15_normalbae.pth",
                        "sd1/control_v11p_sd15_openpose.pth",
                        "sd1/control_v11p_sd15_scribble.pth",
                        "sd1/control_v11p_sd15_seg.pth",
                        "sd1/control_v11p_sd15_softedge.pth",
                        "sd1/control_v11p_sd15s2_lineart_anime.pth",
                        "sd1/control_v1p_sd15_qrcode_monster.safetensors",
                        "sd1/controlnet_checkpoint.ckpt",
                        "sd1/diff_control_sd15_canny_fp16.safetensors",
                        "sd1/diff_control_sd15_depth_fp16.safetensors",
                        "sd1/diff_control_sd15_hed_fp16.safetensors",
                        "sd1/diff_control_sd15_mlsd_fp16.safetensors",
                        "sd1/diff_control_sd15_normal_fp16.safetensors",
                        "sd1/diff_control_sd15_openpose_fp16.safetensors",
                        "sd1/diff_control_sd15_scribble_fp16.safetensors",
                        "sd1/diff_control_sd15_seg_fp16.safetensors",
                        "sd1/ioclab_sd15_recolor.safetensors",
                        "sd1/lightingBasedPicture_v10.safetensors",
                        "sd1/t2iadapter_canny_sd14v1.pth",
                        "sd1/t2iadapter_canny_sd15v2.pth",
                        "sd1/t2iadapter_color_sd14v1.pth",
                        "sd1/t2iadapter_depth_sd14v1.pth",
                        "sd1/t2iadapter_depth_sd15v2.pth",
                        "sd1/t2iadapter_keypose_sd14v1.pth",
                        "sd1/t2iadapter_openpose_sd14v1.pth",
                        "sd1/t2iadapter_seg_sd14v1.pth",
                        "sd1/t2iadapter_sketch_sd14v1.pth",
                        "sd1/t2iadapter_sketch_sd15v2.pth",
                        "sd1/t2iadapter_style_sd14v1.pth",
                        "sd1/t2iadapter_zoedepth_sd15v1.pth",
                        "sd35/sd3.5_large_controlnet_blur.safetensors",
                        "sd35/sd3.5_large_controlnet_canny.safetensors",
                        "sd35/sd3.5_large_controlnet_depth.safetensors",
                        "sdxl/TTPLANET_Controlnet_Tile_realistic_v1_fp16.safetensors",
                        "sdxl/TTPLANET_Controlnet_Tile_realistic_v1_fp32.safetensors",
                        "sdxl/TTPLANET_Controlnet_Tile_realistic_v2_fp16.safetensors",
                        "sdxl/TTPLANET_Controlnet_Tile_realistic_v2_rank256.safetensors",
                        "sdxl/control-LoRAs-rank128/control-lora-canny-rank128.safetensors",
                        "sdxl/control-LoRAs-rank128/control-lora-depth-rank128.safetensors",
                        "sdxl/control-LoRAs-rank128/control-lora-recolor-rank128.safetensors",
                        "sdxl/control-LoRAs-rank128/control-lora-sketch-rank128-metadata.safetensors",
                        "sdxl/control-LoRAs-rank256/control-lora-canny-rank256.safetensors",
                        "sdxl/control-LoRAs-rank256/control-lora-depth-rank256.safetensors",
                        "sdxl/control-LoRAs-rank256/control-lora-recolor-rank256.safetensors",
                        "sdxl/control-LoRAs-rank256/control-lora-sketch-rank256.safetensors",
                        "sdxl/controlnet-union-sdxl-1.0/diffusion_pytorch_model.safetensors",
                        "sdxl/controlnet-union-sdxl-1.0/diffusion_pytorch_model_promax.safetensors",
                        "sdxl/depth-zoe-xl-v1.0-controlnet.safetensors",
                        "sdxl/diffusers_xl_canny_full.safetensors",
                        "sdxl/diffusers_xl_canny_mid.safetensors",
                        "sdxl/diffusers_xl_canny_small.safetensors",
                        "sdxl/diffusers_xl_depth_full.safetensors",
                        "sdxl/diffusers_xl_depth_mid.safetensors",
                        "sdxl/diffusers_xl_depth_small.safetensors",
                        "sdxl/kohya_controllllite_xl_blur.safetensors",
                        "sdxl/kohya_controllllite_xl_blur_anime.safetensors",
                        "sdxl/kohya_controllllite_xl_blur_anime_beta.safetensors",
                        "sdxl/kohya_controllllite_xl_canny.safetensors",
                        "sdxl/kohya_controllllite_xl_canny_anime.safetensors",
                        "sdxl/kohya_controllllite_xl_depth.safetensors",
                        "sdxl/kohya_controllllite_xl_depth_anime.safetensors",
                        "sdxl/kohya_controllllite_xl_openpose_anime.safetensors",
                        "sdxl/kohya_controllllite_xl_openpose_anime_v2.safetensors",
                        "sdxl/kohya_controllllite_xl_scribble_anime.safetensors",
                        "sdxl/mistoLine_fp16.safetensors",
                        "sdxl/mistoLine_rank256.safetensors",
                        "sdxl/sai_xl_canny_128lora.safetensors",
                        "sdxl/sai_xl_canny_256lora.safetensors",
                        "sdxl/sai_xl_depth_128lora.safetensors",
                        "sdxl/sai_xl_depth_256lora.safetensors",
                        "sdxl/sai_xl_recolor_128lora.safetensors",
                        "sdxl/sai_xl_recolor_256lora.safetensors",
                        "sdxl/sai_xl_sketch_128lora.safetensors",
                        "sdxl/sai_xl_sketch_256lora.safetensors",
                        "sdxl/sargezt_xl_depth.safetensors",
                        "sdxl/sargezt_xl_depth_faid_vidit.safetensors",
                        "sdxl/sargezt_xl_depth_zeed.safetensors",
                        "sdxl/sargezt_xl_softedge.safetensors",
                        "sdxl/t2i-adapter_diffusers_xl_canny.safetensors",
                        "sdxl/t2i-adapter_diffusers_xl_depth_midas.safetensors",
                        "sdxl/t2i-adapter_diffusers_xl_depth_zoe.safetensors",
                        "sdxl/t2i-adapter_diffusers_xl_lineart.safetensors",
                        "sdxl/t2i-adapter_diffusers_xl_openpose.safetensors",
                        "sdxl/t2i-adapter_diffusers_xl_sketch.safetensors",
                        "sdxl/t2i-adapter_xl_canny.safetensors",
                        "sdxl/t2i-adapter_xl_openpose.safetensors",
                        "sdxl/t2i-adapter_xl_sketch.safetensors",
                        "sdxl/thibaud_xl_openpose.safetensors",
                        "sdxl/thibaud_xl_openpose_256lora.safetensors",
                        "sdxl/xinsir_depth.safetensors",
                        "t2iadapter_color_sd14v1.pth"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "control_net_name"
            ]
        },
        "output": [
            "CONTROL_NET"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONTROL_NET"
        ],
        "name": "ControlNetLoader",
        "display_name": "Load ControlNet Model",
        "description": "",
        "python_module": "nodes",
        "category": "loaders",
        "output_node": false
    },
    "DiffControlNetLoader": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "control_net_name": [
                    [
                        "ControlNetHED.pth",
                        "FLUX.1-dev-ControlNet-Union-Pro-2.0.safetensors",
                        "FLUX.1/InstantX-FLUX1-Dev-Union/diffusion_pytorch_model.safetensors",
                        "FLUX.1/Shakker-Labs-ControlNet-Union-Pro/diffusion_pytorch_model.safetensors",
                        "FLUX.1/flux_shakker_labs_union_pro-fp8_e4m3fn.safetensors",
                        "Flux.1-dev-Controlnet-Upscaler.safetensors",
                        "SDXL/OpenPoseXL2.safetensors",
                        "SDXL/controlnet-union-sdxl-1.0/diffusion_pytorch_model_promax.safetensors",
                        "Wan21_Uni3C_controlnet_fp16.safetensors",
                        "animatediff/animatediffControlnet_sd15FP32.safetensors",
                        "animatediff/v3_sd15_sparsectrl_rgb.ckpt",
                        "animatediff/v3_sd15_sparsectrl_scribble.ckpt",
                        "control_lora_rank128_v11f1p_sd15_depth_fp16.safetensors",
                        "control_lora_rank128_v11p_sd15_canny_fp16.safetensors",
                        "control_lora_rank128_v11p_sd15_normalbae_fp16.safetensors",
                        "control_lora_rank128_v11p_sd15_openpose_fp16.safetensors",
                        "control_sd15_canny.pth",
                        "control_sd15_depth.pth",
                        "control_sd15_hed.pth",
                        "control_sd15_normal.pth",
                        "control_sd15_openpose.pth",
                        "control_v11f1p_sd15_depth_fp16.safetensors",
                        "control_v11p_sd15_canny.pth",
                        "control_v11p_sd15_openpose.pth",
                        "control_v11p_sd15_openpose_fp16.safetensors",
                        "control_v11p_sd15_scribble_fp16.safetensors",
                        "control_v11p_sd15_seg.pth",
                        "diff_control_sd15_temporalnet_fp16.safetensors",
                        "flux/flux-canny-controlnet-v3.safetensors",
                        "flux/flux-canny-controlnet.safetensors",
                        "flux/flux-canny-controlnet_v2.safetensors",
                        "flux/flux-depth-controlnet-v3.safetensors",
                        "flux/flux-depth-controlnet.safetensors",
                        "flux/flux-depth-controlnet_v2.safetensors",
                        "flux/flux-hed-controlnet.safetensors",
                        "flux/flux.1-dev-controlnet-union/diffusion_pytorch_model.safetensors",
                        "instantid/diffusion_pytorch_model.safetensors",
                        "sd1/coadapter-canny-sd15v1.pth",
                        "sd1/coadapter-color-sd15v1.pth",
                        "sd1/coadapter-depth-sd15v1.pth",
                        "sd1/coadapter-fuser-sd15v1.pth",
                        "sd1/coadapter-sketch-sd15v1.pth",
                        "sd1/coadapter-style-sd15v1.pth",
                        "sd1/control_sd15_inpaint_depth_hand_fp16.safetensors",
                        "sd1/control_v11e_sd15_ip2p.pth",
                        "sd1/control_v11e_sd15_shuffle.pth",
                        "sd1/control_v11f1e_sd15_tile.pth",
                        "sd1/control_v11f1p_sd15_depth.pth",
                        "sd1/control_v11p_sd15_canny.pth",
                        "sd1/control_v11p_sd15_inpaint.pth",
                        "sd1/control_v11p_sd15_lineart.pth",
                        "sd1/control_v11p_sd15_mlsd.pth",
                        "sd1/control_v11p_sd15_normalbae.pth",
                        "sd1/control_v11p_sd15_openpose.pth",
                        "sd1/control_v11p_sd15_scribble.pth",
                        "sd1/control_v11p_sd15_seg.pth",
                        "sd1/control_v11p_sd15_softedge.pth",
                        "sd1/control_v11p_sd15s2_lineart_anime.pth",
                        "sd1/control_v1p_sd15_qrcode_monster.safetensors",
                        "sd1/controlnet_checkpoint.ckpt",
                        "sd1/diff_control_sd15_canny_fp16.safetensors",
                        "sd1/diff_control_sd15_depth_fp16.safetensors",
                        "sd1/diff_control_sd15_hed_fp16.safetensors",
                        "sd1/diff_control_sd15_mlsd_fp16.safetensors",
                        "sd1/diff_control_sd15_normal_fp16.safetensors",
                        "sd1/diff_control_sd15_openpose_fp16.safetensors",
                        "sd1/diff_control_sd15_scribble_fp16.safetensors",
                        "sd1/diff_control_sd15_seg_fp16.safetensors",
                        "sd1/ioclab_sd15_recolor.safetensors",
                        "sd1/lightingBasedPicture_v10.safetensors",
                        "sd1/t2iadapter_canny_sd14v1.pth",
                        "sd1/t2iadapter_canny_sd15v2.pth",
                        "sd1/t2iadapter_color_sd14v1.pth",
                        "sd1/t2iadapter_depth_sd14v1.pth",
                        "sd1/t2iadapter_depth_sd15v2.pth",
                        "sd1/t2iadapter_keypose_sd14v1.pth",
                        "sd1/t2iadapter_openpose_sd14v1.pth",
                        "sd1/t2iadapter_seg_sd14v1.pth",
                        "sd1/t2iadapter_sketch_sd14v1.pth",
                        "sd1/t2iadapter_sketch_sd15v2.pth",
                        "sd1/t2iadapter_style_sd14v1.pth",
                        "sd1/t2iadapter_zoedepth_sd15v1.pth",
                        "sd35/sd3.5_large_controlnet_blur.safetensors",
                        "sd35/sd3.5_large_controlnet_canny.safetensors",
                        "sd35/sd3.5_large_controlnet_depth.safetensors",
                        "sdxl/TTPLANET_Controlnet_Tile_realistic_v1_fp16.safetensors",
                        "sdxl/TTPLANET_Controlnet_Tile_realistic_v1_fp32.safetensors",
                        "sdxl/TTPLANET_Controlnet_Tile_realistic_v2_fp16.safetensors",
                        "sdxl/TTPLANET_Controlnet_Tile_realistic_v2_rank256.safetensors",
                        "sdxl/control-LoRAs-rank128/control-lora-canny-rank128.safetensors",
                        "sdxl/control-LoRAs-rank128/control-lora-depth-rank128.safetensors",
                        "sdxl/control-LoRAs-rank128/control-lora-recolor-rank128.safetensors",
                        "sdxl/control-LoRAs-rank128/control-lora-sketch-rank128-metadata.safetensors",
                        "sdxl/control-LoRAs-rank256/control-lora-canny-rank256.safetensors",
                        "sdxl/control-LoRAs-rank256/control-lora-depth-rank256.safetensors",
                        "sdxl/control-LoRAs-rank256/control-lora-recolor-rank256.safetensors",
                        "sdxl/control-LoRAs-rank256/control-lora-sketch-rank256.safetensors",
                        "sdxl/controlnet-union-sdxl-1.0/diffusion_pytorch_model.safetensors",
                        "sdxl/controlnet-union-sdxl-1.0/diffusion_pytorch_model_promax.safetensors",
                        "sdxl/depth-zoe-xl-v1.0-controlnet.safetensors",
                        "sdxl/diffusers_xl_canny_full.safetensors",
                        "sdxl/diffusers_xl_canny_mid.safetensors",
                        "sdxl/diffusers_xl_canny_small.safetensors",
                        "sdxl/diffusers_xl_depth_full.safetensors",
                        "sdxl/diffusers_xl_depth_mid.safetensors",
                        "sdxl/diffusers_xl_depth_small.safetensors",
                        "sdxl/kohya_controllllite_xl_blur.safetensors",
                        "sdxl/kohya_controllllite_xl_blur_anime.safetensors",
                        "sdxl/kohya_controllllite_xl_blur_anime_beta.safetensors",
                        "sdxl/kohya_controllllite_xl_canny.safetensors",
                        "sdxl/kohya_controllllite_xl_canny_anime.safetensors",
                        "sdxl/kohya_controllllite_xl_depth.safetensors",
                        "sdxl/kohya_controllllite_xl_depth_anime.safetensors",
                        "sdxl/kohya_controllllite_xl_openpose_anime.safetensors",
                        "sdxl/kohya_controllllite_xl_openpose_anime_v2.safetensors",
                        "sdxl/kohya_controllllite_xl_scribble_anime.safetensors",
                        "sdxl/mistoLine_fp16.safetensors",
                        "sdxl/mistoLine_rank256.safetensors",
                        "sdxl/sai_xl_canny_128lora.safetensors",
                        "sdxl/sai_xl_canny_256lora.safetensors",
                        "sdxl/sai_xl_depth_128lora.safetensors",
                        "sdxl/sai_xl_depth_256lora.safetensors",
                        "sdxl/sai_xl_recolor_128lora.safetensors",
                        "sdxl/sai_xl_recolor_256lora.safetensors",
                        "sdxl/sai_xl_sketch_128lora.safetensors",
                        "sdxl/sai_xl_sketch_256lora.safetensors",
                        "sdxl/sargezt_xl_depth.safetensors",
                        "sdxl/sargezt_xl_depth_faid_vidit.safetensors",
                        "sdxl/sargezt_xl_depth_zeed.safetensors",
                        "sdxl/sargezt_xl_softedge.safetensors",
                        "sdxl/t2i-adapter_diffusers_xl_canny.safetensors",
                        "sdxl/t2i-adapter_diffusers_xl_depth_midas.safetensors",
                        "sdxl/t2i-adapter_diffusers_xl_depth_zoe.safetensors",
                        "sdxl/t2i-adapter_diffusers_xl_lineart.safetensors",
                        "sdxl/t2i-adapter_diffusers_xl_openpose.safetensors",
                        "sdxl/t2i-adapter_diffusers_xl_sketch.safetensors",
                        "sdxl/t2i-adapter_xl_canny.safetensors",
                        "sdxl/t2i-adapter_xl_openpose.safetensors",
                        "sdxl/t2i-adapter_xl_sketch.safetensors",
                        "sdxl/thibaud_xl_openpose.safetensors",
                        "sdxl/thibaud_xl_openpose_256lora.safetensors",
                        "sdxl/xinsir_depth.safetensors",
                        "t2iadapter_color_sd14v1.pth"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "control_net_name"
            ]
        },
        "output": [
            "CONTROL_NET"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONTROL_NET"
        ],
        "name": "DiffControlNetLoader",
        "display_name": "Load ControlNet Model (diff)",
        "description": "",
        "python_module": "nodes",
        "category": "loaders",
        "output_node": false
    },
    "StyleModelLoader": {
        "input": {
            "required": {
                "style_model_name": [
                    [
                        "flex1_redux_siglip2_512.safetensors",
                        "flux/flux1-redux-dev.safetensors",
                        "flux1-redux-dev.safetensors",
                        "sd1/coadapter-style-sd15v1.pth"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "style_model_name"
            ]
        },
        "output": [
            "STYLE_MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "STYLE_MODEL"
        ],
        "name": "StyleModelLoader",
        "display_name": "Load Style Model",
        "description": "",
        "python_module": "nodes",
        "category": "loaders",
        "output_node": false
    },
    "CLIPVisionLoader": {
        "input": {
            "required": {
                "clip_name": [
                    [
                        "CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors",
                        "CLIP-ViT-H-14-laion2B-s32B-b79K/model.safetensors",
                        "CLIP-ViT-bigG-14-laion2B-39B-b160k.safetensors",
                        "clip-vit-large-patch14/model.safetensors",
                        "clip_vision_g.safetensors",
                        "clip_vision_h.safetensors",
                        "clip_vision_l.safetensors",
                        "sd1/model.safetensors",
                        "sd1/pytorch_model.bin",
                        "sdxl/model.safetensors",
                        "sdxl/pytorch_model.bin",
                        "sigclip_vision_patch14_384.safetensors"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "clip_name"
            ]
        },
        "output": [
            "CLIP_VISION"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CLIP_VISION"
        ],
        "name": "CLIPVisionLoader",
        "display_name": "Load CLIP Vision",
        "description": "",
        "python_module": "nodes",
        "category": "loaders",
        "output_node": false
    },
    "VAEDecodeTiled": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "vae": [
                    "VAE"
                ],
                "tile_size": [
                    "INT",
                    {
                        "default": 512,
                        "min": 64,
                        "max": 4096,
                        "step": 32
                    }
                ],
                "overlap": [
                    "INT",
                    {
                        "default": 64,
                        "min": 0,
                        "max": 4096,
                        "step": 32
                    }
                ],
                "temporal_size": [
                    "INT",
                    {
                        "default": 64,
                        "min": 8,
                        "max": 4096,
                        "step": 4,
                        "tooltip": "Only used for video VAEs: Amount of frames to decode at a time."
                    }
                ],
                "temporal_overlap": [
                    "INT",
                    {
                        "default": 8,
                        "min": 4,
                        "max": 4096,
                        "step": 4,
                        "tooltip": "Only used for video VAEs: Amount of frames to overlap."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "vae",
                "tile_size",
                "overlap",
                "temporal_size",
                "temporal_overlap"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "VAEDecodeTiled",
        "display_name": "VAE Decode (Tiled)",
        "description": "",
        "python_module": "nodes",
        "category": "_for_testing",
        "output_node": false
    },
    "VAEEncodeTiled": {
        "input": {
            "required": {
                "pixels": [
                    "IMAGE"
                ],
                "vae": [
                    "VAE"
                ],
                "tile_size": [
                    "INT",
                    {
                        "default": 512,
                        "min": 64,
                        "max": 4096,
                        "step": 64
                    }
                ],
                "overlap": [
                    "INT",
                    {
                        "default": 64,
                        "min": 0,
                        "max": 4096,
                        "step": 32
                    }
                ],
                "temporal_size": [
                    "INT",
                    {
                        "default": 64,
                        "min": 8,
                        "max": 4096,
                        "step": 4,
                        "tooltip": "Only used for video VAEs: Amount of frames to encode at a time."
                    }
                ],
                "temporal_overlap": [
                    "INT",
                    {
                        "default": 8,
                        "min": 4,
                        "max": 4096,
                        "step": 4,
                        "tooltip": "Only used for video VAEs: Amount of frames to overlap."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "pixels",
                "vae",
                "tile_size",
                "overlap",
                "temporal_size",
                "temporal_overlap"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "VAEEncodeTiled",
        "display_name": "VAE Encode (Tiled)",
        "description": "",
        "python_module": "nodes",
        "category": "_for_testing",
        "output_node": false
    },
    "unCLIPCheckpointLoader": {
        "input": {
            "required": {
                "ckpt_name": [
                    [
                        "3D_Anime.safetensors",
                        "3D_Concept.safetensors",
                        "FLUX1/flux1-dev-fp8.safetensors",
                        "GTA5_Artwork_Diffusion_gtav_style.safetensors",
                        "Juggernaut_X_RunDiffusion.safetensors",
                        "LTXV/ltxv-13b-0.9.7-dev-fp8.safetensors",
                        "MOHAWK_v20.safetensors",
                        "MOHAWK_v20BackedVAE.safetensors",
                        "RealVisXL_V4.0.safetensors",
                        "Realistic_Vision_V6.0_NV_B1.safetensors",
                        "RunComfyDefault/v1-5-pruned-emaonly.safetensors",
                        "SD1.5/v1-5-pruned-emaonly.ckpt",
                        "SD2.1/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors",
                        "SDXL-TURBO/sd_xl_turbo_1.0_fp16.safetensors",
                        "SDXL/sd_xl_base_1.0.safetensors",
                        "SDXL/sd_xl_base_1.0_0.9vae.safetensors",
                        "SDXL/sd_xl_refiner_1.0_0.9vae.safetensors",
                        "SUPIR/SUPIR-v0F.ckpt",
                        "SVD/svd.safetensors",
                        "SVD/svd_xt.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_gs_swin8_B_64l8gs32_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_mesh_swin8_B_64l8m256c_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_rf_swin8_B_64l8r16_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_enc_swin8_B_64l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_flow_img_dit_L_64l8p2_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_dec_conv3d_16l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_enc_conv3d_16l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_flow_img_dit_L_16l8_fp16.safetensors",
                        "TripoSR/model.ckpt",
                        "bigLust_v16.safetensors",
                        "ccsr/real-world_ccsr.ckpt",
                        "cyberrealisticPony_v110.safetensors",
                        "cyberrealisticPony_v8.safetensors",
                        "cyberrealisticPony_v85.safetensors",
                        "cyberrealisticPony_v90Alt1.safetensors",
                        "cyberrealisticXL_v57.safetensors",
                        "disneyPixarCartoon_v10.safetensors",
                        "dreamCreationVirtual3DECommerce_v10.safetensors",
                        "dreamshaperXL_v21TurboDPMSDE.safetensors",
                        "dreamshaper_8.safetensors",
                        "dynamicrafter/dynamicrafter_1024_v1.ckpt",
                        "dynamicrafter/dynamicrafter_1024_v1_bf16.safetensors",
                        "dynamicrafter/dynamicrafter_512_interp_v1.ckpt",
                        "dynamicrafter/dynamicrafter_512_interp_v1_bf16.safetensors",
                        "dynamicrafter/tooncrafter_512_interp-pruned-fp16.safetensors",
                        "epicrealismXL_v8Kiss.safetensors",
                        "epicrealismXL_vxivEyecandyRealism.safetensors",
                        "epicrealismXL_vxviLastfameRealism.safetensors",
                        "epicrealism_naturalSinRC1VAE.safetensors",
                        "flat2DAnimerge_v45Sharp.safetensors",
                        "flux/flux1-dev-bnb-nf4-v2.safetensors",
                        "flux/flux1-dev-fp8.safetensors",
                        "flux/flux1-dev.sft",
                        "flux/flux1-schnell-fp8.safetensors",
                        "flux/flux1-schnell.sft",
                        "flux/fluxRealistic_fluxRealisticSamayV2.safetensors",
                        "flux/kijai/flux1-dev-fp8.safetensors",
                        "flux/lumiere_flux_alpha-fp8.safetensors",
                        "flux1-dev-fp8.safetensors",
                        "flux1-dev.safetensors",
                        "flux1-redux-dev.safetensors",
                        "flux1-schnell.safetensors",
                        "illustriousXL_v01.safetensors",
                        "ilustmix_v6.safetensors",
                        "juggernautXL_ragnarokBy.safetensors",
                        "juggernautXL_versionXInpaint.safetensors",
                        "leosamsFilmgirlUltra_ultraBaseModel.safetensors",
                        "ltx/ltx-video-2b-v0.9.safetensors",
                        "ltxv-13b-0.9.7-dev.safetensors",
                        "lustifySDXLNSFW_endgame.safetensors",
                        "lustifySDXLNSFW_oltFIXEDTEXTURES.safetensors",
                        "majicmixRealistic_v7.safetensors",
                        "meinamix_v12Final.safetensors",
                        "noobaiCyberfix_eps11PerpCyberfix.safetensors",
                        "noobaiXLNAIXL_vPred10Version.safetensors",
                        "photon_v1.safetensors",
                        "ponyDiffusionV6XL_v6StartWithThisOne.safetensors",
                        "ponyRealism_V22MainVAE.safetensors",
                        "ponyRealism_V23.safetensors",
                        "ponyRealism_V23ULTRA.safetensors",
                        "realDream_sdxlPony15.safetensors",
                        "realisticVisionV51_v51VAE.safetensors",
                        "realisticVisionV60B1_v51HyperVAE.safetensors",
                        "realisticVisionV60B1_v51VAE.safetensors",
                        "realvisxlV50_v50LightningBakedvae.safetensors",
                        "sa1/stable_audio_open_1.0.safetensors",
                        "sc/stable_cascade_stage_b.safetensors",
                        "sc/stable_cascade_stage_c.safetensors",
                        "sd1/Deliberate_v2.safetensors",
                        "sd1/absolutereality_lcm.safetensors",
                        "sd1/animatrix_v20.safetensors",
                        "sd1/animeStills_v1.safetensors",
                        "sd1/animerge_v40.safetensors",
                        "sd1/anythingV3_fp16.safetensors",
                        "sd1/artUniverse_v80.safetensors",
                        "sd1/arthemyComics_v70.safetensors",
                        "sd1/cardosAnime_v20.safetensors",
                        "sd1/chilloutmix_NiPrunedFp16Fix.safetensors",
                        "sd1/chilloutmix_NiPrunedFp32Fix.safetensors",
                        "sd1/comfyroll_v10Anime.safetensors",
                        "sd1/comicDiffusion_v1.ckpt",
                        "sd1/comicDiffusion_v2.ckpt",
                        "sd1/crystalClear2_crystalClear2V1.safetensors",
                        "sd1/cyberrealistic_v33.safetensors",
                        "sd1/ddosmix_V2.safetensors",
                        "sd1/dreamshaper_8.safetensors",
                        "sd1/dreamshaper_8LCM.safetensors",
                        "sd1/dreamshaper_8_inpainting.safetensors",
                        "sd1/epicphotogasm_amateurreallife.safetensors",
                        "sd1/epicrealism_naturalSinRC1VAE.safetensors",
                        "sd1/f222_v1.ckpt",
                        "sd1/flat2DAnimerge_v20.safetensors",
                        "sd1/ghostmix_v20Bakedvae.safetensors",
                        "sd1/helloyoung25d_V10f.safetensors",
                        "sd1/helloyoung2d_V12g.safetensors",
                        "sd1/icbinpICantBelieveIts_afterburn.safetensors",
                        "sd1/icbinpICantBelieveIts_seco.safetensors",
                        "sd1/icomix_V05.safetensors",
                        "sd1/majicmixLux_v1.safetensors",
                        "sd1/majicmixLux_v2.safetensors",
                        "sd1/majicmixLux_v3.safetensors",
                        "sd1/majicmixSombre_v20.safetensors",
                        "sd1/meinamix_meinaV11.safetensors",
                        "sd1/meinapastel_v6Pastel.safetensors",
                        "sd1/meinaunreal_v41.safetensors",
                        "sd1/paradigmLCM_v10.safetensors",
                        "sd1/photographerAlpha7_v3.safetensors",
                        "sd1/photonLCM_v10.safetensors",
                        "sd1/photon_v1.safetensors",
                        "sd1/realcartoon3d_v14.safetensors",
                        "sd1/realdosmix_.safetensors",
                        "sd1/realisian_v50.safetensors",
                        "sd1/realisticVisionV60B1_v51VAE.safetensors",
                        "sd1/redshiftDiffusion_v1.ckpt",
                        "sd1/revAnimated_v122EOL.safetensors",
                        "sd1/toonyou_beta6.safetensors",
                        "sd1/universestable_v50Comics.safetensors",
                        "sd1/vinteprotogenmix_V20.safetensors",
                        "sd35/sd3.5_large.safetensors",
                        "sd35/sd3.5_large_fp8_scaled.safetensors",
                        "sd35/sd3.5_large_turbo.safetensors",
                        "sd3m/sd3_medium.safetensors",
                        "sd3m/sd3_medium_incl_clips.safetensors",
                        "sd3m/sd3_medium_incl_clips_t5xxlfp16.safetensors",
                        "sd3m/sd3_medium_incl_clips_t5xxlfp8.safetensors",
                        "sd_xl_refiner_1.0_0.9vae.safetensors",
                        "sdxl/Juggernaut-XL_v9_RunDiffusionPhoto_v2.safetensors",
                        "sdxl/albedobaseXL_v13.safetensors",
                        "sdxl/bluepencilxl_v310.safetensors",
                        "sdxl/breakdomainxl_V06d.safetensors",
                        "sdxl/counterfeitxl_v10.safetensors",
                        "sdxl/crystalClearXL_ccxl.safetensors",
                        "sdxl/dreamshaperXL_lightningDPMSDE.safetensors",
                        "sdxl/dreamshaperXL_v21TurboDPMSDE.safetensors",
                        "sdxl/dreamshaperXL_v2TurboDPMSDE.safetensors",
                        "sdxl/juggernautXL_v9Rdphoto2Lightning.safetensors",
                        "sdxl/juggernautXL_v9Rundiffusionphoto2.safetensors",
                        "sdxl/juggernautXL_version6Rundiffusion.safetensors",
                        "sdxl/leosamsHelloworldXL_helloworldXL70.safetensors",
                        "sdxl/moxieDiffusionXL_v18.safetensors",
                        "sdxl/perfectdeliberate_v5.safetensors",
                        "sdxl/playground-v2.5-1024px-aesthetic.fp16.safetensors",
                        "sdxl/playground-v2.5-1024px-aesthetic.safetensors",
                        "sdxl/proteus_v03.safetensors",
                        "sdxl/protovisionXLHighFidelity3D_releaseV660Bakedvae.safetensors",
                        "sdxl/realcartoonXL_v6.safetensors",
                        "sdxl/realitycheckXL_alpha11.safetensors",
                        "sdxl/reproductionSDXL_2v12.safetensors",
                        "sdxl/reproductionSDXL_v31.safetensors",
                        "sdxl/revAnimated_v11.safetensors",
                        "sdxl/sd_xl_base_1.0.safetensors",
                        "sdxl/sd_xl_turbo_1.0.safetensors",
                        "sdxl/sdxlUnstableDiffusers_v11.safetensors",
                        "sdxl/tamarinXL_v10.safetensors",
                        "sdxl/wildcardxXLTURBO_wildcardxXLTURBOV10.safetensors",
                        "supir/SUPIR-v0F.ckpt",
                        "supir/SUPIR-v0Q.ckpt",
                        "svd/svd.safetensors",
                        "svd/svd_xt.safetensors",
                        "svd/svd_xt_1_1.safetensors",
                        "uberRealisticPornMergePonyxl_ponyxlHybridV1.safetensors",
                        "upscale/x4-upscaler-ema.safetensors",
                        "v1-5-pruned-emaonly-fp16.safetensors",
                        "v1-5-pruned-emaonly.ckpt",
                        "v2-1_768-ema-pruned.safetensors",
                        "waiNSFWIllustrious_v140.safetensors",
                        "wildcardxXLANIMATION_wildcardxXLANIMATION.safetensors"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "ckpt_name"
            ]
        },
        "output": [
            "MODEL",
            "CLIP",
            "VAE",
            "CLIP_VISION"
        ],
        "output_is_list": [
            false,
            false,
            false,
            false
        ],
        "output_name": [
            "MODEL",
            "CLIP",
            "VAE",
            "CLIP_VISION"
        ],
        "name": "unCLIPCheckpointLoader",
        "display_name": "unCLIPCheckpointLoader",
        "description": "",
        "python_module": "nodes",
        "category": "loaders",
        "output_node": false
    },
    "GLIGENLoader": {
        "input": {
            "required": {
                "gligen_name": [
                    []
                ]
            }
        },
        "input_order": {
            "required": [
                "gligen_name"
            ]
        },
        "output": [
            "GLIGEN"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "GLIGEN"
        ],
        "name": "GLIGENLoader",
        "display_name": "GLIGENLoader",
        "description": "",
        "python_module": "nodes",
        "category": "loaders",
        "output_node": false
    },
    "GLIGENTextBoxApply": {
        "input": {
            "required": {
                "conditioning_to": [
                    "CONDITIONING"
                ],
                "clip": [
                    "CLIP"
                ],
                "gligen_textbox_model": [
                    "GLIGEN"
                ],
                "text": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "width": [
                    "INT",
                    {
                        "default": 64,
                        "min": 8,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 64,
                        "min": 8,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "x": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "y": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning_to",
                "clip",
                "gligen_textbox_model",
                "text",
                "width",
                "height",
                "x",
                "y"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "GLIGENTextBoxApply",
        "display_name": "GLIGENTextBoxApply",
        "description": "",
        "python_module": "nodes",
        "category": "conditioning/gligen",
        "output_node": false
    },
    "InpaintModelConditioning": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "vae": [
                    "VAE"
                ],
                "pixels": [
                    "IMAGE"
                ],
                "mask": [
                    "MASK"
                ],
                "noise_mask": [
                    "BOOLEAN",
                    {
                        "default": true,
                        "tooltip": "Add a noise mask to the latent so sampling will only happen within the mask. Might improve results or completely break things depending on the model."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "vae",
                "pixels",
                "mask",
                "noise_mask"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "InpaintModelConditioning",
        "display_name": "InpaintModelConditioning",
        "description": "",
        "python_module": "nodes",
        "category": "conditioning/inpaint",
        "output_node": false
    },
    "CheckpointLoader": {
        "input": {
            "required": {
                "config_name": [
                    [
                        "anything_v3.yaml",
                        "v1-inference.yaml",
                        "v1-inference_clip_skip_2.yaml",
                        "v1-inference_clip_skip_2_fp16.yaml",
                        "v1-inference_fp16.yaml",
                        "v1-inpainting-inference.yaml",
                        "v2-inference-v.yaml",
                        "v2-inference-v_fp32.yaml",
                        "v2-inference.yaml",
                        "v2-inference_fp32.yaml",
                        "v2-inpainting-inference.yaml"
                    ]
                ],
                "ckpt_name": [
                    [
                        "3D_Anime.safetensors",
                        "3D_Concept.safetensors",
                        "FLUX1/flux1-dev-fp8.safetensors",
                        "GTA5_Artwork_Diffusion_gtav_style.safetensors",
                        "Juggernaut_X_RunDiffusion.safetensors",
                        "LTXV/ltxv-13b-0.9.7-dev-fp8.safetensors",
                        "MOHAWK_v20.safetensors",
                        "MOHAWK_v20BackedVAE.safetensors",
                        "RealVisXL_V4.0.safetensors",
                        "Realistic_Vision_V6.0_NV_B1.safetensors",
                        "RunComfyDefault/v1-5-pruned-emaonly.safetensors",
                        "SD1.5/v1-5-pruned-emaonly.ckpt",
                        "SD2.1/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors",
                        "SDXL-TURBO/sd_xl_turbo_1.0_fp16.safetensors",
                        "SDXL/sd_xl_base_1.0.safetensors",
                        "SDXL/sd_xl_base_1.0_0.9vae.safetensors",
                        "SDXL/sd_xl_refiner_1.0_0.9vae.safetensors",
                        "SUPIR/SUPIR-v0F.ckpt",
                        "SVD/svd.safetensors",
                        "SVD/svd_xt.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_gs_swin8_B_64l8gs32_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_mesh_swin8_B_64l8m256c_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_rf_swin8_B_64l8r16_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_enc_swin8_B_64l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_flow_img_dit_L_64l8p2_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_dec_conv3d_16l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_enc_conv3d_16l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_flow_img_dit_L_16l8_fp16.safetensors",
                        "TripoSR/model.ckpt",
                        "bigLust_v16.safetensors",
                        "ccsr/real-world_ccsr.ckpt",
                        "cyberrealisticPony_v110.safetensors",
                        "cyberrealisticPony_v8.safetensors",
                        "cyberrealisticPony_v85.safetensors",
                        "cyberrealisticPony_v90Alt1.safetensors",
                        "cyberrealisticXL_v57.safetensors",
                        "disneyPixarCartoon_v10.safetensors",
                        "dreamCreationVirtual3DECommerce_v10.safetensors",
                        "dreamshaperXL_v21TurboDPMSDE.safetensors",
                        "dreamshaper_8.safetensors",
                        "dynamicrafter/dynamicrafter_1024_v1.ckpt",
                        "dynamicrafter/dynamicrafter_1024_v1_bf16.safetensors",
                        "dynamicrafter/dynamicrafter_512_interp_v1.ckpt",
                        "dynamicrafter/dynamicrafter_512_interp_v1_bf16.safetensors",
                        "dynamicrafter/tooncrafter_512_interp-pruned-fp16.safetensors",
                        "epicrealismXL_v8Kiss.safetensors",
                        "epicrealismXL_vxivEyecandyRealism.safetensors",
                        "epicrealismXL_vxviLastfameRealism.safetensors",
                        "epicrealism_naturalSinRC1VAE.safetensors",
                        "flat2DAnimerge_v45Sharp.safetensors",
                        "flux/flux1-dev-bnb-nf4-v2.safetensors",
                        "flux/flux1-dev-fp8.safetensors",
                        "flux/flux1-dev.sft",
                        "flux/flux1-schnell-fp8.safetensors",
                        "flux/flux1-schnell.sft",
                        "flux/fluxRealistic_fluxRealisticSamayV2.safetensors",
                        "flux/kijai/flux1-dev-fp8.safetensors",
                        "flux/lumiere_flux_alpha-fp8.safetensors",
                        "flux1-dev-fp8.safetensors",
                        "flux1-dev.safetensors",
                        "flux1-redux-dev.safetensors",
                        "flux1-schnell.safetensors",
                        "illustriousXL_v01.safetensors",
                        "ilustmix_v6.safetensors",
                        "juggernautXL_ragnarokBy.safetensors",
                        "juggernautXL_versionXInpaint.safetensors",
                        "leosamsFilmgirlUltra_ultraBaseModel.safetensors",
                        "ltx/ltx-video-2b-v0.9.safetensors",
                        "ltxv-13b-0.9.7-dev.safetensors",
                        "lustifySDXLNSFW_endgame.safetensors",
                        "lustifySDXLNSFW_oltFIXEDTEXTURES.safetensors",
                        "majicmixRealistic_v7.safetensors",
                        "meinamix_v12Final.safetensors",
                        "noobaiCyberfix_eps11PerpCyberfix.safetensors",
                        "noobaiXLNAIXL_vPred10Version.safetensors",
                        "photon_v1.safetensors",
                        "ponyDiffusionV6XL_v6StartWithThisOne.safetensors",
                        "ponyRealism_V22MainVAE.safetensors",
                        "ponyRealism_V23.safetensors",
                        "ponyRealism_V23ULTRA.safetensors",
                        "realDream_sdxlPony15.safetensors",
                        "realisticVisionV51_v51VAE.safetensors",
                        "realisticVisionV60B1_v51HyperVAE.safetensors",
                        "realisticVisionV60B1_v51VAE.safetensors",
                        "realvisxlV50_v50LightningBakedvae.safetensors",
                        "sa1/stable_audio_open_1.0.safetensors",
                        "sc/stable_cascade_stage_b.safetensors",
                        "sc/stable_cascade_stage_c.safetensors",
                        "sd1/Deliberate_v2.safetensors",
                        "sd1/absolutereality_lcm.safetensors",
                        "sd1/animatrix_v20.safetensors",
                        "sd1/animeStills_v1.safetensors",
                        "sd1/animerge_v40.safetensors",
                        "sd1/anythingV3_fp16.safetensors",
                        "sd1/artUniverse_v80.safetensors",
                        "sd1/arthemyComics_v70.safetensors",
                        "sd1/cardosAnime_v20.safetensors",
                        "sd1/chilloutmix_NiPrunedFp16Fix.safetensors",
                        "sd1/chilloutmix_NiPrunedFp32Fix.safetensors",
                        "sd1/comfyroll_v10Anime.safetensors",
                        "sd1/comicDiffusion_v1.ckpt",
                        "sd1/comicDiffusion_v2.ckpt",
                        "sd1/crystalClear2_crystalClear2V1.safetensors",
                        "sd1/cyberrealistic_v33.safetensors",
                        "sd1/ddosmix_V2.safetensors",
                        "sd1/dreamshaper_8.safetensors",
                        "sd1/dreamshaper_8LCM.safetensors",
                        "sd1/dreamshaper_8_inpainting.safetensors",
                        "sd1/epicphotogasm_amateurreallife.safetensors",
                        "sd1/epicrealism_naturalSinRC1VAE.safetensors",
                        "sd1/f222_v1.ckpt",
                        "sd1/flat2DAnimerge_v20.safetensors",
                        "sd1/ghostmix_v20Bakedvae.safetensors",
                        "sd1/helloyoung25d_V10f.safetensors",
                        "sd1/helloyoung2d_V12g.safetensors",
                        "sd1/icbinpICantBelieveIts_afterburn.safetensors",
                        "sd1/icbinpICantBelieveIts_seco.safetensors",
                        "sd1/icomix_V05.safetensors",
                        "sd1/majicmixLux_v1.safetensors",
                        "sd1/majicmixLux_v2.safetensors",
                        "sd1/majicmixLux_v3.safetensors",
                        "sd1/majicmixSombre_v20.safetensors",
                        "sd1/meinamix_meinaV11.safetensors",
                        "sd1/meinapastel_v6Pastel.safetensors",
                        "sd1/meinaunreal_v41.safetensors",
                        "sd1/paradigmLCM_v10.safetensors",
                        "sd1/photographerAlpha7_v3.safetensors",
                        "sd1/photonLCM_v10.safetensors",
                        "sd1/photon_v1.safetensors",
                        "sd1/realcartoon3d_v14.safetensors",
                        "sd1/realdosmix_.safetensors",
                        "sd1/realisian_v50.safetensors",
                        "sd1/realisticVisionV60B1_v51VAE.safetensors",
                        "sd1/redshiftDiffusion_v1.ckpt",
                        "sd1/revAnimated_v122EOL.safetensors",
                        "sd1/toonyou_beta6.safetensors",
                        "sd1/universestable_v50Comics.safetensors",
                        "sd1/vinteprotogenmix_V20.safetensors",
                        "sd35/sd3.5_large.safetensors",
                        "sd35/sd3.5_large_fp8_scaled.safetensors",
                        "sd35/sd3.5_large_turbo.safetensors",
                        "sd3m/sd3_medium.safetensors",
                        "sd3m/sd3_medium_incl_clips.safetensors",
                        "sd3m/sd3_medium_incl_clips_t5xxlfp16.safetensors",
                        "sd3m/sd3_medium_incl_clips_t5xxlfp8.safetensors",
                        "sd_xl_refiner_1.0_0.9vae.safetensors",
                        "sdxl/Juggernaut-XL_v9_RunDiffusionPhoto_v2.safetensors",
                        "sdxl/albedobaseXL_v13.safetensors",
                        "sdxl/bluepencilxl_v310.safetensors",
                        "sdxl/breakdomainxl_V06d.safetensors",
                        "sdxl/counterfeitxl_v10.safetensors",
                        "sdxl/crystalClearXL_ccxl.safetensors",
                        "sdxl/dreamshaperXL_lightningDPMSDE.safetensors",
                        "sdxl/dreamshaperXL_v21TurboDPMSDE.safetensors",
                        "sdxl/dreamshaperXL_v2TurboDPMSDE.safetensors",
                        "sdxl/juggernautXL_v9Rdphoto2Lightning.safetensors",
                        "sdxl/juggernautXL_v9Rundiffusionphoto2.safetensors",
                        "sdxl/juggernautXL_version6Rundiffusion.safetensors",
                        "sdxl/leosamsHelloworldXL_helloworldXL70.safetensors",
                        "sdxl/moxieDiffusionXL_v18.safetensors",
                        "sdxl/perfectdeliberate_v5.safetensors",
                        "sdxl/playground-v2.5-1024px-aesthetic.fp16.safetensors",
                        "sdxl/playground-v2.5-1024px-aesthetic.safetensors",
                        "sdxl/proteus_v03.safetensors",
                        "sdxl/protovisionXLHighFidelity3D_releaseV660Bakedvae.safetensors",
                        "sdxl/realcartoonXL_v6.safetensors",
                        "sdxl/realitycheckXL_alpha11.safetensors",
                        "sdxl/reproductionSDXL_2v12.safetensors",
                        "sdxl/reproductionSDXL_v31.safetensors",
                        "sdxl/revAnimated_v11.safetensors",
                        "sdxl/sd_xl_base_1.0.safetensors",
                        "sdxl/sd_xl_turbo_1.0.safetensors",
                        "sdxl/sdxlUnstableDiffusers_v11.safetensors",
                        "sdxl/tamarinXL_v10.safetensors",
                        "sdxl/wildcardxXLTURBO_wildcardxXLTURBOV10.safetensors",
                        "supir/SUPIR-v0F.ckpt",
                        "supir/SUPIR-v0Q.ckpt",
                        "svd/svd.safetensors",
                        "svd/svd_xt.safetensors",
                        "svd/svd_xt_1_1.safetensors",
                        "uberRealisticPornMergePonyxl_ponyxlHybridV1.safetensors",
                        "upscale/x4-upscaler-ema.safetensors",
                        "v1-5-pruned-emaonly-fp16.safetensors",
                        "v1-5-pruned-emaonly.ckpt",
                        "v2-1_768-ema-pruned.safetensors",
                        "waiNSFWIllustrious_v140.safetensors",
                        "wildcardxXLANIMATION_wildcardxXLANIMATION.safetensors"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "config_name",
                "ckpt_name"
            ]
        },
        "output": [
            "MODEL",
            "CLIP",
            "VAE"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "MODEL",
            "CLIP",
            "VAE"
        ],
        "name": "CheckpointLoader",
        "display_name": "Load Checkpoint With Config (DEPRECATED)",
        "description": "",
        "python_module": "nodes",
        "category": "advanced/loaders",
        "output_node": false,
        "deprecated": true
    },
    "DiffusersLoader": {
        "input": {
            "required": {
                "model_path": [
                    [
                        "models--stabilityai--stable-diffusion-xl-base-1.0/snapshots/462165984030d82259a11f4367a4eed129e94a7b",
                        "hunyuan3d-delight-v2-0",
                        "hunyuan3d-paint-v2-0",
                        "hunyuan3d-paint-v2-0-turbo",
                        "stable-video-diffusion-img2vid-xt-1-1"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "model_path"
            ]
        },
        "output": [
            "MODEL",
            "CLIP",
            "VAE"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "MODEL",
            "CLIP",
            "VAE"
        ],
        "name": "DiffusersLoader",
        "display_name": "DiffusersLoader",
        "description": "",
        "python_module": "nodes",
        "category": "advanced/loaders/deprecated",
        "output_node": false
    },
    "LoadLatent": {
        "input": {
            "required": {
                "latent": [
                    []
                ]
            }
        },
        "input_order": {
            "required": [
                "latent"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LoadLatent",
        "display_name": "LoadLatent",
        "description": "",
        "python_module": "nodes",
        "category": "_for_testing",
        "output_node": false
    },
    "SaveLatent": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "latents/ComfyUI"
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "samples",
                "filename_prefix"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "SaveLatent",
        "display_name": "SaveLatent",
        "description": "",
        "python_module": "nodes",
        "category": "_for_testing",
        "output_node": true
    },
    "ConditioningZeroOut": {
        "input": {
            "required": {
                "conditioning": [
                    "CONDITIONING"
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "ConditioningZeroOut",
        "display_name": "ConditioningZeroOut",
        "description": "",
        "python_module": "nodes",
        "category": "advanced/conditioning",
        "output_node": false
    },
    "ConditioningSetTimestepRange": {
        "input": {
            "required": {
                "conditioning": [
                    "CONDITIONING"
                ],
                "start": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "end": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning",
                "start",
                "end"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "ConditioningSetTimestepRange",
        "display_name": "ConditioningSetTimestepRange",
        "description": "",
        "python_module": "nodes",
        "category": "advanced/conditioning",
        "output_node": false
    },
    "LoraLoaderModelOnly": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "lora_name": [
                    [
                        "5shot.safetensors",
                        "AnimateLCM/AnimateLCM_sd15_t2v_lora.safetensors",
                        "Comics_V3-05.safetensors",
                        "Detailed_Hands-000001.safetensors",
                        "Drawing.safetensors",
                        "Duc_Abed.safetensors",
                        "Duc_Lustig.safetensors",
                        "Duc_Miller.safetensors",
                        "Duc_Nehama.safetensors",
                        "Duc_Shaintz.safetensors",
                        "Duc_Tidhar.safetensors",
                        "Expressive_H-000001.safetensors",
                        "FLUX.1-Turbo-Alpha.safetensors",
                        "FilmVelvia3.safetensors",
                        "FrankMiller-10.safetensors",
                        "Grungy_Picture_SDXL_V1.safetensors",
                        "LORAFlatColor_flatColor.pt",
                        "LZ-comic strip.safetensors",
                        "LineArt.safetensors",
                        "LoconLoraOffsetNoise_locon0501.pt",
                        "LowRA.safetensors",
                        "NSFW_master.safetensors",
                        "OilPainting.safetensors",
                        "Pencil_Sketch_Style.safetensors",
                        "PerfectEyesXL.safetensors",
                        "SDXL_StopMotion_lora.safetensors",
                        "SU_Twrk_EP62.safetensors",
                        "Samsung_UltraReal.safetensors",
                        "Titfuck_WAN14B_V1_Release.safetensors",
                        "UltraRealPhoto.safetensors",
                        "WAN_dr34mj0b.safetensors",
                        "Wan21_CausVid_14B_T2V_lora_rank32.safetensors",
                        "Wan21_CausVid_bidirect2_T2V_1_3B_lora_rank32.safetensors",
                        "Western_Comic_Style.safetensors",
                        "aardstyle1.0.safetensors",
                        "add-detail-xl.safetensors",
                        "add_detail.safetensors",
                        "aidmaRealisticSkin-FLUX-v0.1.safetensors",
                        "amateurphoto-v6-forcu.safetensors",
                        "animeoutlineV4_16.safetensors",
                        "bad-hands-5.pt",
                        "bounceV_01.safetensors",
                        "bustyFC-2.1.safetensors",
                        "comfyui_portrait_lora64.safetensors",
                        "comfyui_subject_lora16.safetensors",
                        "comic-000009.safetensors",
                        "detail_slider_v4.safetensors",
                        "detailz-wan.safetensors",
                        "dicks_epoch_100.safetensors",
                        "diffusion_pytorch_model.safetensors",
                        "elldrethslucidmix_Lora300.safetensors",
                        "epiNoiseoffset_v2.safetensors",
                        "erect_penis_epoch_80.safetensors",
                        "facials_epoch_50.safetensors",
                        "fingering_i2v_e248.safetensors",
                        "flux/In-Context-LoRA/couple-profile.safetensors",
                        "flux/In-Context-LoRA/film-storyboard.safetensors",
                        "flux/In-Context-LoRA/font-design.safetensors",
                        "flux/In-Context-LoRA/home-decoration.safetensors",
                        "flux/In-Context-LoRA/portrait-illustration.safetensors",
                        "flux/In-Context-LoRA/portrait-photography.safetensors",
                        "flux/In-Context-LoRA/ppt-templates.safetensors",
                        "flux/In-Context-LoRA/sandstorm-visual-effect.safetensors",
                        "flux/In-Context-LoRA/sparklers-visual-effect.safetensors",
                        "flux/In-Context-LoRA/visual-identity-design.safetensors",
                        "flux/UltraRealPhoto.safetensors",
                        "flux/anime_lora.safetensors",
                        "flux/anime_lora_comfy_converted.safetensors",
                        "flux/art_lora.safetensors",
                        "flux/art_lora_comfy_converted.safetensors",
                        "flux/disney_lora.safetensors",
                        "flux/disney_lora_comfy_converted.safetensors",
                        "flux/flux.1-turbo-alpha/diffusion_pytorch_model.safetensors",
                        "flux/furry_lora.safetensors",
                        "flux/mjv6_lora.safetensors",
                        "flux/mjv6_lora_comfy_converted.safetensors",
                        "flux/realism_lora.safetensors",
                        "flux/realism_lora_comfy_converted.safetensors",
                        "flux/scenery_lora.safetensors",
                        "flux/scenery_lora_comfy_converted.safetensors",
                        "flux1-canny-dev-lora.safetensors",
                        "flux1-depth-dev-lora.safetensors",
                        "fluxRealSkin-V2.safetensors",
                        "flux_lora_file_rank16_bf16-step00350.safetensors",
                        "flux_lora_file_rank16_bf16-step00750.safetensors",
                        "flux_realism_lora.safetensors",
                        "front_doggy_plow_v1_1_wan.safetensors",
                        "genitals_helper_v1.0_e219.safetensors",
                        "hunyuan/hyvideo_FastVideo_LoRA-fp8.safetensors",
                        "impressionism.safetensors",
                        "insert-anything_extracted_lora_rank_64-bf16.safetensors",
                        "jfj-deepthroat-v1.safetensors",
                        "kontext/Akira Toriyama - Dragon Ball Style - Kontext.safetensors",
                        "kontext/FlatAnimation\u3010style\u3011_flux_kontext_lora_v1-PAseer.safetensors",
                        "kontext/GuoHuaKontextLoRA.safetensors",
                        "kontext/HDR360.safetensors",
                        "kontext/HXHY-RealisticKontextLoRA1.6.safetensors",
                        "kontext/InScene-v1.0.safetensors",
                        "kontext/Three-view sketch.safetensors",
                        "kontext/fluffy-kontext-lora.safetensors",
                        "kontext/ghibliStyle_kontext_byJaneB.safetensors",
                        "kontext/glass-prism-kontext-lora.safetensors",
                        "kontext/kontext-pixelize-v1.1_000001500.safetensors",
                        "kontext/kontext_change_clothes_t1.safetensors",
                        "kontext/mech-anything-kontext.safetensors",
                        "kontext/unflux_v1.safetensors",
                        "lcm/sd1/pytorch_lora_weights.safetensors",
                        "lcm/sdxl/pytorch_lora_weights.safetensors",
                        "lineart + flat colors v2.safetensors",
                        "marymarvel-nvwls-v1.safetensors",
                        "mhk_comics.safetensors",
                        "mo.safetensors",
                        "modernAmericanComics_v10.safetensors",
                        "modernDisneyLORA_modiV1.safetensors",
                        "more_details.safetensors",
                        "nsfw_flux_lora_v1.safetensors",
                        "r1ge - AnimeRage.safetensors",
                        "ral-dissolve-sdxl.safetensors",
                        "rottingZombies.safetensors",
                        "sam_yang_offset_right_filesize.safetensors",
                        "sd1/3232pixel.safetensors",
                        "sd1/AoTStyle.safetensors",
                        "sd1/AxelStone-DocStasis.safetensors",
                        "sd1/DrippingArt.safetensors",
                        "sd1/GTA_Style.safetensors",
                        "sd1/LiquidAF-0-1.safetensors",
                        "sd1/Longan.safetensors",
                        "sd1/Magazine-10.safetensors",
                        "sd1/Naruto.safetensors",
                        "sd1/add_detail.safetensors",
                        "sd1/anime_minimalist_v1-000020.safetensors",
                        "sd1/animemix_v3_offset.safetensors",
                        "sd1/animeoutlineV4_16.safetensors",
                        "sd1/arcane_offset.safetensors",
                        "sd1/concept_master_1.0.safetensors",
                        "sd1/epi_noiseoffset2.pt",
                        "sd1/ghibli_style_offset.safetensors",
                        "sd1/ip-adapter-faceid-plus_sd15_lora.safetensors",
                        "sd1/ip-adapter-faceid-plusv2_sd15_lora.safetensors",
                        "sd1/ip-adapter-faceid_sd15_lora.safetensors",
                        "sd1/modernlogo.safetensors",
                        "sd1/more_details.safetensors",
                        "sd1/neg4all_bdsqlsz_V3.5.safetensors",
                        "sd1/sd15_lcm_lora.safetensors",
                        "sd1/tangbohu-line_1.0.safetensors",
                        "sd1/v3_sd15_adapter.ckpt",
                        "sdxl/3DRedmond-3DRenderStyle-3DRenderAF.safetensors",
                        "sdxl/Aether_Fire_v1_SDXL_LoRA.safetensors",
                        "sdxl/Aether_Ghost_v1.1_LoRA.safetensors",
                        "sdxl/Aether_Ghost_v1_LoRA.safetensors",
                        "sdxl/ClayAnimationRedm.safetensors",
                        "sdxl/DreamARTSDXL.safetensors",
                        "sdxl/MJ52.safetensors",
                        "sdxl/PS1Redmond-PS1Game-Playstation1Graphics.safetensors",
                        "sdxl/ParchartXL-2.0.safetensors",
                        "sdxl/PixelArtRedmond-Lite64.safetensors",
                        "sdxl/StickersRedmond.safetensors",
                        "sdxl/ToyRedmond-FnkRedmAF.safetensors",
                        "sdxl/WowifierXL-V2.safetensors",
                        "sdxl/add-detail-xl.safetensors",
                        "sdxl/cereal_box_sdxl_v1.safetensors",
                        "sdxl/crayons_v1_sdxl.safetensors",
                        "sdxl/fofr/emoji.safetensors",
                        "sdxl/ikea_instructions_xl_v1_5.safetensors",
                        "sdxl/ip-adapter-faceid-plusv2_sdxl_lora.safetensors",
                        "sdxl/ip-adapter-faceid_sdxl_lora.safetensors",
                        "sdxl/magik_smoke_v1.2.safetensors",
                        "sdxl/neg4all_xl_bdsqlsz_V5.safetensors",
                        "sdxl/sdxl_lightning_8step_lora.safetensors",
                        "sdxl/sdxl_offset_example_v10.safetensors",
                        "sdxl/wojak_SDXL.safetensors",
                        "sdxl/xl_more_art-full_v1.safetensors",
                        "skin_4-000015.safetensors",
                        "skin_tone_slider_v1.safetensors",
                        "wan-nsfw-e14-fixed.safetensors",
                        "wan2.1-1.3b-control-lora-tile-v1.0_comfy.safetensors",
                        "wan_cowgirl_v1.3.safetensors",
                        "wan_cumshot_i2v.safetensors",
                        "wan_female_masturbation.safetensors",
                        "wan_pov_missionary_i2v_v1.1.safetensors",
                        "xk3mt1ks.safetensors",
                        "xl_more_art-full-beta2.safetensors",
                        "xl_more_art-full_v1.safetensors",
                        "xl_yamer_style-2.0.safetensors"
                    ]
                ],
                "strength_model": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -100.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "lora_name",
                "strength_model"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "LoraLoaderModelOnly",
        "display_name": "LoraLoaderModelOnly",
        "description": "LoRAs are used to modify diffusion and CLIP models, altering the way in which latents are denoised such as applying styles. Multiple LoRA nodes can be linked together.",
        "python_module": "nodes",
        "category": "loaders",
        "output_node": false,
        "output_tooltips": [
            "The modified diffusion model.",
            "The modified CLIP model."
        ]
    },
    "LatentAdd": {
        "input": {
            "required": {
                "samples1": [
                    "LATENT"
                ],
                "samples2": [
                    "LATENT"
                ]
            }
        },
        "input_order": {
            "required": [
                "samples1",
                "samples2"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentAdd",
        "display_name": "LatentAdd",
        "description": "",
        "python_module": "comfy_extras.nodes_latent",
        "category": "latent/advanced",
        "output_node": false
    },
    "LatentSubtract": {
        "input": {
            "required": {
                "samples1": [
                    "LATENT"
                ],
                "samples2": [
                    "LATENT"
                ]
            }
        },
        "input_order": {
            "required": [
                "samples1",
                "samples2"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentSubtract",
        "display_name": "LatentSubtract",
        "description": "",
        "python_module": "comfy_extras.nodes_latent",
        "category": "latent/advanced",
        "output_node": false
    },
    "LatentMultiply": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "multiplier": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -10.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "multiplier"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentMultiply",
        "display_name": "LatentMultiply",
        "description": "",
        "python_module": "comfy_extras.nodes_latent",
        "category": "latent/advanced",
        "output_node": false
    },
    "LatentInterpolate": {
        "input": {
            "required": {
                "samples1": [
                    "LATENT"
                ],
                "samples2": [
                    "LATENT"
                ],
                "ratio": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "samples1",
                "samples2",
                "ratio"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentInterpolate",
        "display_name": "LatentInterpolate",
        "description": "",
        "python_module": "comfy_extras.nodes_latent",
        "category": "latent/advanced",
        "output_node": false
    },
    "LatentBatch": {
        "input": {
            "required": {
                "samples1": [
                    "LATENT"
                ],
                "samples2": [
                    "LATENT"
                ]
            }
        },
        "input_order": {
            "required": [
                "samples1",
                "samples2"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentBatch",
        "display_name": "LatentBatch",
        "description": "",
        "python_module": "comfy_extras.nodes_latent",
        "category": "latent/batch",
        "output_node": false
    },
    "LatentBatchSeedBehavior": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "seed_behavior": [
                    [
                        "random",
                        "fixed"
                    ],
                    {
                        "default": "fixed"
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "seed_behavior"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentBatchSeedBehavior",
        "display_name": "LatentBatchSeedBehavior",
        "description": "",
        "python_module": "comfy_extras.nodes_latent",
        "category": "latent/advanced",
        "output_node": false
    },
    "LatentApplyOperation": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "operation": [
                    "LATENT_OPERATION"
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "operation"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentApplyOperation",
        "display_name": "LatentApplyOperation",
        "description": "",
        "python_module": "comfy_extras.nodes_latent",
        "category": "latent/advanced/operations",
        "output_node": false,
        "experimental": true
    },
    "LatentApplyOperationCFG": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "operation": [
                    "LATENT_OPERATION"
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "operation"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "LatentApplyOperationCFG",
        "display_name": "LatentApplyOperationCFG",
        "description": "",
        "python_module": "comfy_extras.nodes_latent",
        "category": "latent/advanced/operations",
        "output_node": false,
        "experimental": true
    },
    "LatentOperationTonemapReinhard": {
        "input": {
            "required": {
                "multiplier": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "multiplier"
            ]
        },
        "output": [
            "LATENT_OPERATION"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT_OPERATION"
        ],
        "name": "LatentOperationTonemapReinhard",
        "display_name": "LatentOperationTonemapReinhard",
        "description": "",
        "python_module": "comfy_extras.nodes_latent",
        "category": "latent/advanced/operations",
        "output_node": false,
        "experimental": true
    },
    "LatentOperationSharpen": {
        "input": {
            "required": {
                "sharpen_radius": [
                    "INT",
                    {
                        "default": 9,
                        "min": 1,
                        "max": 31,
                        "step": 1
                    }
                ],
                "sigma": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.1,
                        "max": 10.0,
                        "step": 0.1
                    }
                ],
                "alpha": [
                    "FLOAT",
                    {
                        "default": 0.1,
                        "min": 0.0,
                        "max": 5.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "sharpen_radius",
                "sigma",
                "alpha"
            ]
        },
        "output": [
            "LATENT_OPERATION"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT_OPERATION"
        ],
        "name": "LatentOperationSharpen",
        "display_name": "LatentOperationSharpen",
        "description": "",
        "python_module": "comfy_extras.nodes_latent",
        "category": "latent/advanced/operations",
        "output_node": false,
        "experimental": true
    },
    "HypernetworkLoader": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "hypernetwork_name": [
                    []
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -10.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "hypernetwork_name",
                "strength"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "HypernetworkLoader",
        "display_name": "HypernetworkLoader",
        "description": "",
        "python_module": "comfy_extras.nodes_hypernetwork",
        "category": "loaders",
        "output_node": false
    },
    "UpscaleModelLoader": {
        "input": {
            "required": {
                "model_name": [
                    [
                        "1x-ITF-SkinDiffDetail-Lite-v1.pth",
                        "1xDeJPG_OmniSR.pth",
                        "4x-AnimeSharp.pth",
                        "4x-ClearRealityV1.pth",
                        "4x-ClearRealityV1_Soft.pth",
                        "4x-UltraSharp.pth",
                        "4xFaceUpDAT.pth",
                        "4xLSDIR.pth",
                        "4xNMKDSuperscale_4xNMKDSuperscale.pt",
                        "4xNomos8kHAT-L_otf.pth",
                        "4xNomosUniDAT_otf.pth",
                        "4xRealWebPhoto_v4_dat2.pth",
                        "4xRealWebPhoto_v4_dat2.safetensors",
                        "4xUltrasharp_4xUltrasharpV10.pt",
                        "4x_NMKD-Siax_200k.pth",
                        "4x_NMKD-Superscale-SP_178000_G.pth",
                        "4x_NickelbackFS_72000_G.pth",
                        "4x_foolhardy_Remacri.pth",
                        "8x_NMKD-Faces_160000_G.pth",
                        "8x_NMKD-Superscale_150000_G.pth",
                        "ESRGAN_4x.pth",
                        "ESRGAN_SRx4_DF2KOST_official-ff704c30.pth",
                        "RealESRGAN_x2.pth",
                        "RealESRGAN_x2plus.pth",
                        "RealESRGAN_x4.pth",
                        "RealESRGAN_x4plus.pth",
                        "RealESRGAN_x4plus_anime_6B.pth",
                        "RealESRNet_x4plus.pth",
                        "ldsr/last.ckpt",
                        "ltxv-spatial-upscaler-0.9.7.safetensors",
                        "nmkdSiaxCX_200k.pt",
                        "realesr-animevideov3.pth",
                        "realesr-general-x4v3.pth",
                        "realesrGeneralWDNX4_v3.pt",
                        "x1_ITF_SkinDiffDetail_Lite_v1.pth"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "model_name"
            ]
        },
        "output": [
            "UPSCALE_MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "UPSCALE_MODEL"
        ],
        "name": "UpscaleModelLoader",
        "display_name": "Load Upscale Model",
        "description": "",
        "python_module": "comfy_extras.nodes_upscale_model",
        "category": "loaders",
        "output_node": false
    },
    "ImageUpscaleWithModel": {
        "input": {
            "required": {
                "upscale_model": [
                    "UPSCALE_MODEL"
                ],
                "image": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "upscale_model",
                "image"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageUpscaleWithModel",
        "display_name": "Upscale Image (using Model)",
        "description": "",
        "python_module": "comfy_extras.nodes_upscale_model",
        "category": "image/upscaling",
        "output_node": false
    },
    "ImageBlend": {
        "input": {
            "required": {
                "image1": [
                    "IMAGE"
                ],
                "image2": [
                    "IMAGE"
                ],
                "blend_factor": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blend_mode": [
                    [
                        "normal",
                        "multiply",
                        "screen",
                        "overlay",
                        "soft_light",
                        "difference"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "image1",
                "image2",
                "blend_factor",
                "blend_mode"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageBlend",
        "display_name": "Image Blend",
        "description": "",
        "python_module": "comfy_extras.nodes_post_processing",
        "category": "image/postprocessing",
        "output_node": false
    },
    "ImageBlur": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "blur_radius": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 31,
                        "step": 1
                    }
                ],
                "sigma": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.1,
                        "max": 10.0,
                        "step": 0.1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "blur_radius",
                "sigma"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageBlur",
        "display_name": "Image Blur",
        "description": "",
        "python_module": "comfy_extras.nodes_post_processing",
        "category": "image/postprocessing",
        "output_node": false
    },
    "ImageQuantize": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "colors": [
                    "INT",
                    {
                        "default": 256,
                        "min": 1,
                        "max": 256,
                        "step": 1
                    }
                ],
                "dither": [
                    [
                        "none",
                        "floyd-steinberg",
                        "bayer-2",
                        "bayer-4",
                        "bayer-8",
                        "bayer-16"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "colors",
                "dither"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageQuantize",
        "display_name": "Image Quantize",
        "description": "",
        "python_module": "comfy_extras.nodes_post_processing",
        "category": "image/postprocessing",
        "output_node": false
    },
    "ImageSharpen": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "sharpen_radius": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 31,
                        "step": 1
                    }
                ],
                "sigma": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.1,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "alpha": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 5.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "sharpen_radius",
                "sigma",
                "alpha"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageSharpen",
        "display_name": "Image Sharpen",
        "description": "",
        "python_module": "comfy_extras.nodes_post_processing",
        "category": "image/postprocessing",
        "output_node": false
    },
    "ImageScaleToTotalPixels": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "upscale_method": [
                    [
                        "nearest-exact",
                        "bilinear",
                        "area",
                        "bicubic",
                        "lanczos"
                    ]
                ],
                "megapixels": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.01,
                        "max": 16.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "upscale_method",
                "megapixels"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageScaleToTotalPixels",
        "display_name": "Scale Image to Total Pixels",
        "description": "",
        "python_module": "comfy_extras.nodes_post_processing",
        "category": "image/upscaling",
        "output_node": false
    },
    "LatentCompositeMasked": {
        "input": {
            "required": {
                "destination": [
                    "LATENT"
                ],
                "source": [
                    "LATENT"
                ],
                "x": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "y": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "resize_source": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ]
            },
            "optional": {
                "mask": [
                    "MASK"
                ]
            }
        },
        "input_order": {
            "required": [
                "destination",
                "source",
                "x",
                "y",
                "resize_source"
            ],
            "optional": [
                "mask"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "LatentCompositeMasked",
        "display_name": "LatentCompositeMasked",
        "description": "",
        "python_module": "comfy_extras.nodes_mask",
        "category": "latent",
        "output_node": false
    },
    "ImageCompositeMasked": {
        "input": {
            "required": {
                "destination": [
                    "IMAGE"
                ],
                "source": [
                    "IMAGE"
                ],
                "x": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "y": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "resize_source": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ]
            },
            "optional": {
                "mask": [
                    "MASK"
                ]
            }
        },
        "input_order": {
            "required": [
                "destination",
                "source",
                "x",
                "y",
                "resize_source"
            ],
            "optional": [
                "mask"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageCompositeMasked",
        "display_name": "ImageCompositeMasked",
        "description": "",
        "python_module": "comfy_extras.nodes_mask",
        "category": "image",
        "output_node": false
    },
    "MaskToImage": {
        "input": {
            "required": {
                "mask": [
                    "MASK"
                ]
            }
        },
        "input_order": {
            "required": [
                "mask"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "MaskToImage",
        "display_name": "Convert Mask to Image",
        "description": "",
        "python_module": "comfy_extras.nodes_mask",
        "category": "mask",
        "output_node": false
    },
    "ImageToMask": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "channel": [
                    [
                        "red",
                        "green",
                        "blue",
                        "alpha"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "channel"
            ]
        },
        "output": [
            "MASK"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MASK"
        ],
        "name": "ImageToMask",
        "display_name": "Convert Image to Mask",
        "description": "",
        "python_module": "comfy_extras.nodes_mask",
        "category": "mask",
        "output_node": false
    },
    "ImageColorToMask": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "color": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16777215,
                        "step": 1,
                        "display": "color"
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "color"
            ]
        },
        "output": [
            "MASK"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MASK"
        ],
        "name": "ImageColorToMask",
        "display_name": "ImageColorToMask",
        "description": "",
        "python_module": "comfy_extras.nodes_mask",
        "category": "mask",
        "output_node": false
    },
    "SolidMask": {
        "input": {
            "required": {
                "value": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "width": [
                    "INT",
                    {
                        "default": 512,
                        "min": 1,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 512,
                        "min": 1,
                        "max": 16384,
                        "step": 1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "value",
                "width",
                "height"
            ]
        },
        "output": [
            "MASK"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MASK"
        ],
        "name": "SolidMask",
        "display_name": "SolidMask",
        "description": "",
        "python_module": "comfy_extras.nodes_mask",
        "category": "mask",
        "output_node": false
    },
    "InvertMask": {
        "input": {
            "required": {
                "mask": [
                    "MASK"
                ]
            }
        },
        "input_order": {
            "required": [
                "mask"
            ]
        },
        "output": [
            "MASK"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MASK"
        ],
        "name": "InvertMask",
        "display_name": "InvertMask",
        "description": "",
        "python_module": "comfy_extras.nodes_mask",
        "category": "mask",
        "output_node": false
    },
    "CropMask": {
        "input": {
            "required": {
                "mask": [
                    "MASK"
                ],
                "x": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "y": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "width": [
                    "INT",
                    {
                        "default": 512,
                        "min": 1,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 512,
                        "min": 1,
                        "max": 16384,
                        "step": 1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "mask",
                "x",
                "y",
                "width",
                "height"
            ]
        },
        "output": [
            "MASK"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MASK"
        ],
        "name": "CropMask",
        "display_name": "CropMask",
        "description": "",
        "python_module": "comfy_extras.nodes_mask",
        "category": "mask",
        "output_node": false
    },
    "MaskComposite": {
        "input": {
            "required": {
                "destination": [
                    "MASK"
                ],
                "source": [
                    "MASK"
                ],
                "x": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "y": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "operation": [
                    [
                        "multiply",
                        "add",
                        "subtract",
                        "and",
                        "or",
                        "xor"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "destination",
                "source",
                "x",
                "y",
                "operation"
            ]
        },
        "output": [
            "MASK"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MASK"
        ],
        "name": "MaskComposite",
        "display_name": "MaskComposite",
        "description": "",
        "python_module": "comfy_extras.nodes_mask",
        "category": "mask",
        "output_node": false
    },
    "FeatherMask": {
        "input": {
            "required": {
                "mask": [
                    "MASK"
                ],
                "left": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "top": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "right": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "bottom": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "mask",
                "left",
                "top",
                "right",
                "bottom"
            ]
        },
        "output": [
            "MASK"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MASK"
        ],
        "name": "FeatherMask",
        "display_name": "FeatherMask",
        "description": "",
        "python_module": "comfy_extras.nodes_mask",
        "category": "mask",
        "output_node": false
    },
    "GrowMask": {
        "input": {
            "required": {
                "mask": [
                    "MASK"
                ],
                "expand": [
                    "INT",
                    {
                        "default": 0,
                        "min": -16384,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "tapered_corners": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "mask",
                "expand",
                "tapered_corners"
            ]
        },
        "output": [
            "MASK"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MASK"
        ],
        "name": "GrowMask",
        "display_name": "GrowMask",
        "description": "",
        "python_module": "comfy_extras.nodes_mask",
        "category": "mask",
        "output_node": false
    },
    "ThresholdMask": {
        "input": {
            "required": {
                "mask": [
                    "MASK"
                ],
                "value": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "mask",
                "value"
            ]
        },
        "output": [
            "MASK"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MASK"
        ],
        "name": "ThresholdMask",
        "display_name": "ThresholdMask",
        "description": "",
        "python_module": "comfy_extras.nodes_mask",
        "category": "mask",
        "output_node": false
    },
    "MaskPreview": {
        "input": {
            "required": {
                "mask": [
                    "MASK"
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "mask"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "MaskPreview",
        "display_name": "MaskPreview",
        "description": "Saves the input images to your ComfyUI output directory.",
        "python_module": "comfy_extras.nodes_mask",
        "category": "mask",
        "output_node": true
    },
    "PorterDuffImageComposite": {
        "input": {
            "required": {
                "source": [
                    "IMAGE"
                ],
                "source_alpha": [
                    "MASK"
                ],
                "destination": [
                    "IMAGE"
                ],
                "destination_alpha": [
                    "MASK"
                ],
                "mode": [
                    [
                        "ADD",
                        "CLEAR",
                        "DARKEN",
                        "DST",
                        "DST_ATOP",
                        "DST_IN",
                        "DST_OUT",
                        "DST_OVER",
                        "LIGHTEN",
                        "MULTIPLY",
                        "OVERLAY",
                        "SCREEN",
                        "SRC",
                        "SRC_ATOP",
                        "SRC_IN",
                        "SRC_OUT",
                        "SRC_OVER",
                        "XOR"
                    ],
                    {
                        "default": "DST"
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "source",
                "source_alpha",
                "destination",
                "destination_alpha",
                "mode"
            ]
        },
        "output": [
            "IMAGE",
            "MASK"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "IMAGE",
            "MASK"
        ],
        "name": "PorterDuffImageComposite",
        "display_name": "Porter-Duff Image Composite",
        "description": "",
        "python_module": "comfy_extras.nodes_compositing",
        "category": "mask/compositing",
        "output_node": false
    },
    "SplitImageWithAlpha": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "image"
            ]
        },
        "output": [
            "IMAGE",
            "MASK"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "IMAGE",
            "MASK"
        ],
        "name": "SplitImageWithAlpha",
        "display_name": "Split Image with Alpha",
        "description": "",
        "python_module": "comfy_extras.nodes_compositing",
        "category": "mask/compositing",
        "output_node": false
    },
    "JoinImageWithAlpha": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "alpha": [
                    "MASK"
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "alpha"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "JoinImageWithAlpha",
        "display_name": "Join Image with Alpha",
        "description": "",
        "python_module": "comfy_extras.nodes_compositing",
        "category": "mask/compositing",
        "output_node": false
    },
    "RebatchLatents": {
        "input": {
            "required": {
                "latents": [
                    "LATENT"
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "latents",
                "batch_size"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            true
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "RebatchLatents",
        "display_name": "Rebatch Latents",
        "description": "",
        "python_module": "comfy_extras.nodes_rebatch",
        "category": "latent/batch",
        "output_node": false
    },
    "RebatchImages": {
        "input": {
            "required": {
                "images": [
                    "IMAGE"
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "images",
                "batch_size"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            true
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "RebatchImages",
        "display_name": "Rebatch Images",
        "description": "",
        "python_module": "comfy_extras.nodes_rebatch",
        "category": "image/batch",
        "output_node": false
    },
    "ModelMergeSimple": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "ratio": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "ratio"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeSimple",
        "display_name": "ModelMergeSimple",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging",
        "category": "advanced/model_merging",
        "output_node": false
    },
    "ModelMergeBlocks": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "input": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "middle": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "out": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "input",
                "middle",
                "out"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeBlocks",
        "display_name": "ModelMergeBlocks",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging",
        "category": "advanced/model_merging",
        "output_node": false
    },
    "ModelMergeSubtract": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "multiplier": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -10.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "multiplier"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeSubtract",
        "display_name": "ModelMergeSubtract",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging",
        "category": "advanced/model_merging",
        "output_node": false
    },
    "ModelMergeAdd": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeAdd",
        "display_name": "ModelMergeAdd",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging",
        "category": "advanced/model_merging",
        "output_node": false
    },
    "CheckpointSave": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "clip": [
                    "CLIP"
                ],
                "vae": [
                    "VAE"
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "checkpoints/ComfyUI"
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "model",
                "clip",
                "vae",
                "filename_prefix"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "CheckpointSave",
        "display_name": "Save Checkpoint",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging",
        "category": "advanced/model_merging",
        "output_node": true
    },
    "CLIPMergeSimple": {
        "input": {
            "required": {
                "clip1": [
                    "CLIP"
                ],
                "clip2": [
                    "CLIP"
                ],
                "ratio": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip1",
                "clip2",
                "ratio"
            ]
        },
        "output": [
            "CLIP"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CLIP"
        ],
        "name": "CLIPMergeSimple",
        "display_name": "CLIPMergeSimple",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging",
        "category": "advanced/model_merging",
        "output_node": false
    },
    "CLIPMergeSubtract": {
        "input": {
            "required": {
                "clip1": [
                    "CLIP"
                ],
                "clip2": [
                    "CLIP"
                ],
                "multiplier": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -10.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip1",
                "clip2",
                "multiplier"
            ]
        },
        "output": [
            "CLIP"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CLIP"
        ],
        "name": "CLIPMergeSubtract",
        "display_name": "CLIPMergeSubtract",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging",
        "category": "advanced/model_merging",
        "output_node": false
    },
    "CLIPMergeAdd": {
        "input": {
            "required": {
                "clip1": [
                    "CLIP"
                ],
                "clip2": [
                    "CLIP"
                ]
            }
        },
        "input_order": {
            "required": [
                "clip1",
                "clip2"
            ]
        },
        "output": [
            "CLIP"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CLIP"
        ],
        "name": "CLIPMergeAdd",
        "display_name": "CLIPMergeAdd",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging",
        "category": "advanced/model_merging",
        "output_node": false
    },
    "CLIPSave": {
        "input": {
            "required": {
                "clip": [
                    "CLIP"
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "clip/ComfyUI"
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "clip",
                "filename_prefix"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "CLIPSave",
        "display_name": "CLIPSave",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging",
        "category": "advanced/model_merging",
        "output_node": true
    },
    "VAESave": {
        "input": {
            "required": {
                "vae": [
                    "VAE"
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "vae/ComfyUI_vae"
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "vae",
                "filename_prefix"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "VAESave",
        "display_name": "VAESave",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging",
        "category": "advanced/model_merging",
        "output_node": true
    },
    "ModelSave": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "diffusion_models/ComfyUI"
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "model",
                "filename_prefix"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "ModelSave",
        "display_name": "ModelSave",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging",
        "category": "advanced/model_merging",
        "output_node": true
    },
    "TomePatchModel": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "ratio": [
                    "FLOAT",
                    {
                        "default": 0.3,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "ratio"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "TomePatchModel",
        "display_name": "TomePatchModel",
        "description": "",
        "python_module": "comfy_extras.nodes_tomesd",
        "category": "model_patches/unet",
        "output_node": false
    },
    "CLIPTextEncodeSDXLRefiner": {
        "input": {
            "required": {
                "ascore": [
                    "FLOAT",
                    {
                        "default": 6.0,
                        "min": 0.0,
                        "max": 1000.0,
                        "step": 0.01
                    }
                ],
                "width": [
                    "INT",
                    {
                        "default": 1024.0,
                        "min": 0,
                        "max": 16384
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 1024.0,
                        "min": 0,
                        "max": 16384
                    }
                ],
                "text": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "clip": [
                    "CLIP"
                ]
            }
        },
        "input_order": {
            "required": [
                "ascore",
                "width",
                "height",
                "text",
                "clip"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "CLIPTextEncodeSDXLRefiner",
        "display_name": "CLIPTextEncodeSDXLRefiner",
        "description": "",
        "python_module": "comfy_extras.nodes_clip_sdxl",
        "category": "advanced/conditioning",
        "output_node": false
    },
    "CLIPTextEncodeSDXL": {
        "input": {
            "required": {
                "clip": [
                    "CLIP"
                ],
                "width": [
                    "INT",
                    {
                        "default": 1024.0,
                        "min": 0,
                        "max": 16384
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 1024.0,
                        "min": 0,
                        "max": 16384
                    }
                ],
                "crop_w": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384
                    }
                ],
                "crop_h": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384
                    }
                ],
                "target_width": [
                    "INT",
                    {
                        "default": 1024.0,
                        "min": 0,
                        "max": 16384
                    }
                ],
                "target_height": [
                    "INT",
                    {
                        "default": 1024.0,
                        "min": 0,
                        "max": 16384
                    }
                ],
                "text_g": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "text_l": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip",
                "width",
                "height",
                "crop_w",
                "crop_h",
                "target_width",
                "target_height",
                "text_g",
                "text_l"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "CLIPTextEncodeSDXL",
        "display_name": "CLIPTextEncodeSDXL",
        "description": "",
        "python_module": "comfy_extras.nodes_clip_sdxl",
        "category": "advanced/conditioning",
        "output_node": false
    },
    "Canny": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "low_threshold": [
                    "FLOAT",
                    {
                        "default": 0.4,
                        "min": 0.01,
                        "max": 0.99,
                        "step": 0.01
                    }
                ],
                "high_threshold": [
                    "FLOAT",
                    {
                        "default": 0.8,
                        "min": 0.01,
                        "max": 0.99,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "low_threshold",
                "high_threshold"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "Canny",
        "display_name": "Canny",
        "description": "",
        "python_module": "comfy_extras.nodes_canny",
        "category": "image/preprocessors",
        "output_node": false
    },
    "FreeU": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "b1": [
                    "FLOAT",
                    {
                        "default": 1.1,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "b2": [
                    "FLOAT",
                    {
                        "default": 1.2,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "s1": [
                    "FLOAT",
                    {
                        "default": 0.9,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "s2": [
                    "FLOAT",
                    {
                        "default": 0.2,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "b1",
                "b2",
                "s1",
                "s2"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "FreeU",
        "display_name": "FreeU",
        "description": "",
        "python_module": "comfy_extras.nodes_freelunch",
        "category": "model_patches/unet",
        "output_node": false
    },
    "FreeU_V2": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "b1": [
                    "FLOAT",
                    {
                        "default": 1.3,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "b2": [
                    "FLOAT",
                    {
                        "default": 1.4,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "s1": [
                    "FLOAT",
                    {
                        "default": 0.9,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "s2": [
                    "FLOAT",
                    {
                        "default": 0.2,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "b1",
                "b2",
                "s1",
                "s2"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "FreeU_V2",
        "display_name": "FreeU_V2",
        "description": "",
        "python_module": "comfy_extras.nodes_freelunch",
        "category": "model_patches/unet",
        "output_node": false
    },
    "SamplerCustom": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "add_noise": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "noise_seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true
                    }
                ],
                "cfg": [
                    "FLOAT",
                    {
                        "default": 8.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.1,
                        "round": 0.01
                    }
                ],
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "sampler": [
                    "SAMPLER"
                ],
                "sigmas": [
                    "SIGMAS"
                ],
                "latent_image": [
                    "LATENT"
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "add_noise",
                "noise_seed",
                "cfg",
                "positive",
                "negative",
                "sampler",
                "sigmas",
                "latent_image"
            ]
        },
        "output": [
            "LATENT",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "output",
            "denoised_output"
        ],
        "name": "SamplerCustom",
        "display_name": "SamplerCustom",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling",
        "output_node": false
    },
    "BasicScheduler": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "scheduler": [
                    [
                        "simple",
                        "sgm_uniform",
                        "karras",
                        "exponential",
                        "ddim_uniform",
                        "beta",
                        "normal",
                        "linear_quadratic",
                        "kl_optimal"
                    ]
                ],
                "steps": [
                    "INT",
                    {
                        "default": 20,
                        "min": 1,
                        "max": 10000
                    }
                ],
                "denoise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "scheduler",
                "steps",
                "denoise"
            ]
        },
        "output": [
            "SIGMAS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SIGMAS"
        ],
        "name": "BasicScheduler",
        "display_name": "BasicScheduler",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/schedulers",
        "output_node": false
    },
    "KarrasScheduler": {
        "input": {
            "required": {
                "steps": [
                    "INT",
                    {
                        "default": 20,
                        "min": 1,
                        "max": 10000
                    }
                ],
                "sigma_max": [
                    "FLOAT",
                    {
                        "default": 14.614642,
                        "min": 0.0,
                        "max": 5000.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "sigma_min": [
                    "FLOAT",
                    {
                        "default": 0.0291675,
                        "min": 0.0,
                        "max": 5000.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "rho": [
                    "FLOAT",
                    {
                        "default": 7.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "steps",
                "sigma_max",
                "sigma_min",
                "rho"
            ]
        },
        "output": [
            "SIGMAS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SIGMAS"
        ],
        "name": "KarrasScheduler",
        "display_name": "KarrasScheduler",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/schedulers",
        "output_node": false
    },
    "ExponentialScheduler": {
        "input": {
            "required": {
                "steps": [
                    "INT",
                    {
                        "default": 20,
                        "min": 1,
                        "max": 10000
                    }
                ],
                "sigma_max": [
                    "FLOAT",
                    {
                        "default": 14.614642,
                        "min": 0.0,
                        "max": 5000.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "sigma_min": [
                    "FLOAT",
                    {
                        "default": 0.0291675,
                        "min": 0.0,
                        "max": 5000.0,
                        "step": 0.01,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "steps",
                "sigma_max",
                "sigma_min"
            ]
        },
        "output": [
            "SIGMAS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SIGMAS"
        ],
        "name": "ExponentialScheduler",
        "display_name": "ExponentialScheduler",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/schedulers",
        "output_node": false
    },
    "PolyexponentialScheduler": {
        "input": {
            "required": {
                "steps": [
                    "INT",
                    {
                        "default": 20,
                        "min": 1,
                        "max": 10000
                    }
                ],
                "sigma_max": [
                    "FLOAT",
                    {
                        "default": 14.614642,
                        "min": 0.0,
                        "max": 5000.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "sigma_min": [
                    "FLOAT",
                    {
                        "default": 0.0291675,
                        "min": 0.0,
                        "max": 5000.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "rho": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "steps",
                "sigma_max",
                "sigma_min",
                "rho"
            ]
        },
        "output": [
            "SIGMAS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SIGMAS"
        ],
        "name": "PolyexponentialScheduler",
        "display_name": "PolyexponentialScheduler",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/schedulers",
        "output_node": false
    },
    "LaplaceScheduler": {
        "input": {
            "required": {
                "steps": [
                    "INT",
                    {
                        "default": 20,
                        "min": 1,
                        "max": 10000
                    }
                ],
                "sigma_max": [
                    "FLOAT",
                    {
                        "default": 14.614642,
                        "min": 0.0,
                        "max": 5000.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "sigma_min": [
                    "FLOAT",
                    {
                        "default": 0.0291675,
                        "min": 0.0,
                        "max": 5000.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "mu": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": -10.0,
                        "max": 10.0,
                        "step": 0.1,
                        "round": false
                    }
                ],
                "beta": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.1,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "steps",
                "sigma_max",
                "sigma_min",
                "mu",
                "beta"
            ]
        },
        "output": [
            "SIGMAS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SIGMAS"
        ],
        "name": "LaplaceScheduler",
        "display_name": "LaplaceScheduler",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/schedulers",
        "output_node": false
    },
    "VPScheduler": {
        "input": {
            "required": {
                "steps": [
                    "INT",
                    {
                        "default": 20,
                        "min": 1,
                        "max": 10000
                    }
                ],
                "beta_d": [
                    "FLOAT",
                    {
                        "default": 19.9,
                        "min": 0.0,
                        "max": 5000.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "beta_min": [
                    "FLOAT",
                    {
                        "default": 0.1,
                        "min": 0.0,
                        "max": 5000.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "eps_s": [
                    "FLOAT",
                    {
                        "default": 0.001,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.0001,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "steps",
                "beta_d",
                "beta_min",
                "eps_s"
            ]
        },
        "output": [
            "SIGMAS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SIGMAS"
        ],
        "name": "VPScheduler",
        "display_name": "VPScheduler",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/schedulers",
        "output_node": false
    },
    "BetaSamplingScheduler": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "steps": [
                    "INT",
                    {
                        "default": 20,
                        "min": 1,
                        "max": 10000
                    }
                ],
                "alpha": [
                    "FLOAT",
                    {
                        "default": 0.6,
                        "min": 0.0,
                        "max": 50.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "beta": [
                    "FLOAT",
                    {
                        "default": 0.6,
                        "min": 0.0,
                        "max": 50.0,
                        "step": 0.01,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "steps",
                "alpha",
                "beta"
            ]
        },
        "output": [
            "SIGMAS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SIGMAS"
        ],
        "name": "BetaSamplingScheduler",
        "display_name": "BetaSamplingScheduler",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/schedulers",
        "output_node": false
    },
    "SDTurboScheduler": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "steps": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 10
                    }
                ],
                "denoise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "steps",
                "denoise"
            ]
        },
        "output": [
            "SIGMAS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SIGMAS"
        ],
        "name": "SDTurboScheduler",
        "display_name": "SDTurboScheduler",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/schedulers",
        "output_node": false
    },
    "KSamplerSelect": {
        "input": {
            "required": {
                "sampler_name": [
                    [
                        "euler",
                        "euler_cfg_pp",
                        "euler_ancestral",
                        "euler_ancestral_cfg_pp",
                        "heun",
                        "heunpp2",
                        "dpm_2",
                        "dpm_2_ancestral",
                        "lms",
                        "dpm_fast",
                        "dpm_adaptive",
                        "dpmpp_2s_ancestral",
                        "dpmpp_2s_ancestral_cfg_pp",
                        "dpmpp_sde",
                        "dpmpp_sde_gpu",
                        "dpmpp_2m",
                        "dpmpp_2m_cfg_pp",
                        "dpmpp_2m_sde",
                        "dpmpp_2m_sde_gpu",
                        "dpmpp_3m_sde",
                        "dpmpp_3m_sde_gpu",
                        "ddpm",
                        "lcm",
                        "ipndm",
                        "ipndm_v",
                        "deis",
                        "res_multistep",
                        "res_multistep_cfg_pp",
                        "res_multistep_ancestral",
                        "res_multistep_ancestral_cfg_pp",
                        "gradient_estimation",
                        "gradient_estimation_cfg_pp",
                        "er_sde",
                        "seeds_2",
                        "seeds_3",
                        "sa_solver",
                        "sa_solver_pece",
                        "ddim",
                        "uni_pc",
                        "uni_pc_bh2"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "sampler_name"
            ]
        },
        "output": [
            "SAMPLER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SAMPLER"
        ],
        "name": "KSamplerSelect",
        "display_name": "KSamplerSelect",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/samplers",
        "output_node": false
    },
    "SamplerEulerAncestral": {
        "input": {
            "required": {
                "eta": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "s_noise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "eta",
                "s_noise"
            ]
        },
        "output": [
            "SAMPLER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SAMPLER"
        ],
        "name": "SamplerEulerAncestral",
        "display_name": "SamplerEulerAncestral",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/samplers",
        "output_node": false
    },
    "SamplerEulerAncestralCFGPP": {
        "input": {
            "required": {
                "eta": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "s_noise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "eta",
                "s_noise"
            ]
        },
        "output": [
            "SAMPLER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SAMPLER"
        ],
        "name": "SamplerEulerAncestralCFGPP",
        "display_name": "SamplerEulerAncestralCFG++",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/samplers",
        "output_node": false
    },
    "SamplerLMS": {
        "input": {
            "required": {
                "order": [
                    "INT",
                    {
                        "default": 4,
                        "min": 1,
                        "max": 100
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "order"
            ]
        },
        "output": [
            "SAMPLER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SAMPLER"
        ],
        "name": "SamplerLMS",
        "display_name": "SamplerLMS",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/samplers",
        "output_node": false
    },
    "SamplerDPMPP_3M_SDE": {
        "input": {
            "required": {
                "eta": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "s_noise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "noise_device": [
                    [
                        "gpu",
                        "cpu"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "eta",
                "s_noise",
                "noise_device"
            ]
        },
        "output": [
            "SAMPLER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SAMPLER"
        ],
        "name": "SamplerDPMPP_3M_SDE",
        "display_name": "SamplerDPMPP_3M_SDE",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/samplers",
        "output_node": false
    },
    "SamplerDPMPP_2M_SDE": {
        "input": {
            "required": {
                "solver_type": [
                    [
                        "midpoint",
                        "heun"
                    ]
                ],
                "eta": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "s_noise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "noise_device": [
                    [
                        "gpu",
                        "cpu"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "solver_type",
                "eta",
                "s_noise",
                "noise_device"
            ]
        },
        "output": [
            "SAMPLER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SAMPLER"
        ],
        "name": "SamplerDPMPP_2M_SDE",
        "display_name": "SamplerDPMPP_2M_SDE",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/samplers",
        "output_node": false
    },
    "SamplerDPMPP_SDE": {
        "input": {
            "required": {
                "eta": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "s_noise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "r": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "noise_device": [
                    [
                        "gpu",
                        "cpu"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "eta",
                "s_noise",
                "r",
                "noise_device"
            ]
        },
        "output": [
            "SAMPLER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SAMPLER"
        ],
        "name": "SamplerDPMPP_SDE",
        "display_name": "SamplerDPMPP_SDE",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/samplers",
        "output_node": false
    },
    "SamplerDPMPP_2S_Ancestral": {
        "input": {
            "required": {
                "eta": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "s_noise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "eta",
                "s_noise"
            ]
        },
        "output": [
            "SAMPLER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SAMPLER"
        ],
        "name": "SamplerDPMPP_2S_Ancestral",
        "display_name": "SamplerDPMPP_2S_Ancestral",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/samplers",
        "output_node": false
    },
    "SamplerDPMAdaptative": {
        "input": {
            "required": {
                "order": [
                    "INT",
                    {
                        "default": 3,
                        "min": 2,
                        "max": 3
                    }
                ],
                "rtol": [
                    "FLOAT",
                    {
                        "default": 0.05,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "atol": [
                    "FLOAT",
                    {
                        "default": 0.0078,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "h_init": [
                    "FLOAT",
                    {
                        "default": 0.05,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "pcoeff": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "icoeff": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "dcoeff": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "accept_safety": [
                    "FLOAT",
                    {
                        "default": 0.81,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "eta": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "s_noise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "order",
                "rtol",
                "atol",
                "h_init",
                "pcoeff",
                "icoeff",
                "dcoeff",
                "accept_safety",
                "eta",
                "s_noise"
            ]
        },
        "output": [
            "SAMPLER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SAMPLER"
        ],
        "name": "SamplerDPMAdaptative",
        "display_name": "SamplerDPMAdaptative",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/samplers",
        "output_node": false
    },
    "SamplerER_SDE": {
        "input": {
            "required": {
                "solver_type": [
                    "COMBO",
                    {
                        "options": [
                            "ER-SDE",
                            "Reverse-time SDE",
                            "ODE"
                        ]
                    }
                ],
                "max_stage": [
                    "INT",
                    {
                        "default": 3,
                        "min": 1,
                        "max": 3
                    }
                ],
                "eta": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false,
                        "tooltip": "Stochastic strength of reverse-time SDE.\nWhen eta=0, it reduces to deterministic ODE. This setting doesn't apply to ER-SDE solver type."
                    }
                ],
                "s_noise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "solver_type",
                "max_stage",
                "eta",
                "s_noise"
            ]
        },
        "output": [
            "SAMPLER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SAMPLER"
        ],
        "name": "SamplerER_SDE",
        "display_name": "SamplerER_SDE",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/samplers",
        "output_node": false
    },
    "SamplerSASolver": {
        "input": {
            "required": {
                "model": [
                    "MODEL",
                    {}
                ],
                "eta": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "sde_start_percent": [
                    "FLOAT",
                    {
                        "default": 0.2,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "sde_end_percent": [
                    "FLOAT",
                    {
                        "default": 0.8,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "s_noise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "predictor_order": [
                    "INT",
                    {
                        "default": 3,
                        "min": 1,
                        "max": 6
                    }
                ],
                "corrector_order": [
                    "INT",
                    {
                        "default": 4,
                        "min": 0,
                        "max": 6
                    }
                ],
                "use_pece": [
                    "BOOLEAN",
                    {}
                ],
                "simple_order_2": [
                    "BOOLEAN",
                    {}
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "eta",
                "sde_start_percent",
                "sde_end_percent",
                "s_noise",
                "predictor_order",
                "corrector_order",
                "use_pece",
                "simple_order_2"
            ]
        },
        "output": [
            "SAMPLER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SAMPLER"
        ],
        "name": "SamplerSASolver",
        "display_name": "SamplerSASolver",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/samplers",
        "output_node": false
    },
    "SplitSigmas": {
        "input": {
            "required": {
                "sigmas": [
                    "SIGMAS"
                ],
                "step": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 10000
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "sigmas",
                "step"
            ]
        },
        "output": [
            "SIGMAS",
            "SIGMAS"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "high_sigmas",
            "low_sigmas"
        ],
        "name": "SplitSigmas",
        "display_name": "SplitSigmas",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/sigmas",
        "output_node": false
    },
    "SplitSigmasDenoise": {
        "input": {
            "required": {
                "sigmas": [
                    "SIGMAS"
                ],
                "denoise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "sigmas",
                "denoise"
            ]
        },
        "output": [
            "SIGMAS",
            "SIGMAS"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "high_sigmas",
            "low_sigmas"
        ],
        "name": "SplitSigmasDenoise",
        "display_name": "SplitSigmasDenoise",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/sigmas",
        "output_node": false
    },
    "FlipSigmas": {
        "input": {
            "required": {
                "sigmas": [
                    "SIGMAS"
                ]
            }
        },
        "input_order": {
            "required": [
                "sigmas"
            ]
        },
        "output": [
            "SIGMAS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SIGMAS"
        ],
        "name": "FlipSigmas",
        "display_name": "FlipSigmas",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/sigmas",
        "output_node": false
    },
    "SetFirstSigma": {
        "input": {
            "required": {
                "sigmas": [
                    "SIGMAS"
                ],
                "sigma": [
                    "FLOAT",
                    {
                        "default": 136.0,
                        "min": 0.0,
                        "max": 20000.0,
                        "step": 0.001,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "sigmas",
                "sigma"
            ]
        },
        "output": [
            "SIGMAS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SIGMAS"
        ],
        "name": "SetFirstSigma",
        "display_name": "SetFirstSigma",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/sigmas",
        "output_node": false
    },
    "ExtendIntermediateSigmas": {
        "input": {
            "required": {
                "sigmas": [
                    "SIGMAS"
                ],
                "steps": [
                    "INT",
                    {
                        "default": 2,
                        "min": 1,
                        "max": 100
                    }
                ],
                "start_at_sigma": [
                    "FLOAT",
                    {
                        "default": -1.0,
                        "min": -1.0,
                        "max": 20000.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "end_at_sigma": [
                    "FLOAT",
                    {
                        "default": 12.0,
                        "min": 0.0,
                        "max": 20000.0,
                        "step": 0.01,
                        "round": false
                    }
                ],
                "spacing": [
                    [
                        "linear",
                        "cosine",
                        "sine"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "sigmas",
                "steps",
                "start_at_sigma",
                "end_at_sigma",
                "spacing"
            ]
        },
        "output": [
            "SIGMAS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SIGMAS"
        ],
        "name": "ExtendIntermediateSigmas",
        "display_name": "ExtendIntermediateSigmas",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/sigmas",
        "output_node": false
    },
    "SamplingPercentToSigma": {
        "input": {
            "required": {
                "model": [
                    "MODEL",
                    {}
                ],
                "sampling_percent": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.0001
                    }
                ],
                "return_actual_sigma": [
                    "BOOLEAN",
                    {
                        "default": false,
                        "tooltip": "Return the actual sigma value instead of the value used for interval checks.\nThis only affects results at 0.0 and 1.0."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "sampling_percent",
                "return_actual_sigma"
            ]
        },
        "output": [
            "FLOAT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "sigma_value"
        ],
        "name": "SamplingPercentToSigma",
        "display_name": "SamplingPercentToSigma",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/sigmas",
        "output_node": false
    },
    "CFGGuider": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "cfg": [
                    "FLOAT",
                    {
                        "default": 8.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.1,
                        "round": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "positive",
                "negative",
                "cfg"
            ]
        },
        "output": [
            "GUIDER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "GUIDER"
        ],
        "name": "CFGGuider",
        "display_name": "CFGGuider",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/guiders",
        "output_node": false
    },
    "DualCFGGuider": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "cond1": [
                    "CONDITIONING"
                ],
                "cond2": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "cfg_conds": [
                    "FLOAT",
                    {
                        "default": 8.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.1,
                        "round": 0.01
                    }
                ],
                "cfg_cond2_negative": [
                    "FLOAT",
                    {
                        "default": 8.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.1,
                        "round": 0.01
                    }
                ],
                "style": [
                    [
                        "regular",
                        "nested"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "cond1",
                "cond2",
                "negative",
                "cfg_conds",
                "cfg_cond2_negative",
                "style"
            ]
        },
        "output": [
            "GUIDER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "GUIDER"
        ],
        "name": "DualCFGGuider",
        "display_name": "DualCFGGuider",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/guiders",
        "output_node": false
    },
    "BasicGuider": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "conditioning": [
                    "CONDITIONING"
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "conditioning"
            ]
        },
        "output": [
            "GUIDER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "GUIDER"
        ],
        "name": "BasicGuider",
        "display_name": "BasicGuider",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/guiders",
        "output_node": false
    },
    "RandomNoise": {
        "input": {
            "required": {
                "noise_seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "noise_seed"
            ]
        },
        "output": [
            "NOISE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "NOISE"
        ],
        "name": "RandomNoise",
        "display_name": "RandomNoise",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/noise",
        "output_node": false
    },
    "DisableNoise": {
        "input": {
            "required": {}
        },
        "input_order": {
            "required": []
        },
        "output": [
            "NOISE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "NOISE"
        ],
        "name": "DisableNoise",
        "display_name": "DisableNoise",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling/noise",
        "output_node": false
    },
    "AddNoise": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "noise": [
                    "NOISE"
                ],
                "sigmas": [
                    "SIGMAS"
                ],
                "latent_image": [
                    "LATENT"
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "noise",
                "sigmas",
                "latent_image"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "AddNoise",
        "display_name": "AddNoise",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "_for_testing/custom_sampling/noise",
        "output_node": false
    },
    "SamplerCustomAdvanced": {
        "input": {
            "required": {
                "noise": [
                    "NOISE"
                ],
                "guider": [
                    "GUIDER"
                ],
                "sampler": [
                    "SAMPLER"
                ],
                "sigmas": [
                    "SIGMAS"
                ],
                "latent_image": [
                    "LATENT"
                ]
            }
        },
        "input_order": {
            "required": [
                "noise",
                "guider",
                "sampler",
                "sigmas",
                "latent_image"
            ]
        },
        "output": [
            "LATENT",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "output",
            "denoised_output"
        ],
        "name": "SamplerCustomAdvanced",
        "display_name": "SamplerCustomAdvanced",
        "description": "",
        "python_module": "comfy_extras.nodes_custom_sampler",
        "category": "sampling/custom_sampling",
        "output_node": false
    },
    "HyperTile": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "tile_size": [
                    "INT",
                    {
                        "default": 256,
                        "min": 1,
                        "max": 2048
                    }
                ],
                "swap_size": [
                    "INT",
                    {
                        "default": 2,
                        "min": 1,
                        "max": 128
                    }
                ],
                "max_depth": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 10
                    }
                ],
                "scale_depth": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "tile_size",
                "swap_size",
                "max_depth",
                "scale_depth"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "HyperTile",
        "display_name": "HyperTile",
        "description": "",
        "python_module": "comfy_extras.nodes_hypertile",
        "category": "model_patches/unet",
        "output_node": false
    },
    "ModelSamplingDiscrete": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "sampling": [
                    [
                        "eps",
                        "v_prediction",
                        "lcm",
                        "x0",
                        "img_to_img"
                    ]
                ],
                "zsnr": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "sampling",
                "zsnr"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelSamplingDiscrete",
        "display_name": "ModelSamplingDiscrete",
        "description": "",
        "python_module": "comfy_extras.nodes_model_advanced",
        "category": "advanced/model",
        "output_node": false
    },
    "ModelSamplingContinuousEDM": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "sampling": [
                    [
                        "v_prediction",
                        "edm",
                        "edm_playground_v2.5",
                        "eps",
                        "cosmos_rflow"
                    ]
                ],
                "sigma_max": [
                    "FLOAT",
                    {
                        "default": 120.0,
                        "min": 0.0,
                        "max": 1000.0,
                        "step": 0.001,
                        "round": false
                    }
                ],
                "sigma_min": [
                    "FLOAT",
                    {
                        "default": 0.002,
                        "min": 0.0,
                        "max": 1000.0,
                        "step": 0.001,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "sampling",
                "sigma_max",
                "sigma_min"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelSamplingContinuousEDM",
        "display_name": "ModelSamplingContinuousEDM",
        "description": "",
        "python_module": "comfy_extras.nodes_model_advanced",
        "category": "advanced/model",
        "output_node": false
    },
    "ModelSamplingContinuousV": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "sampling": [
                    [
                        "v_prediction"
                    ]
                ],
                "sigma_max": [
                    "FLOAT",
                    {
                        "default": 500.0,
                        "min": 0.0,
                        "max": 1000.0,
                        "step": 0.001,
                        "round": false
                    }
                ],
                "sigma_min": [
                    "FLOAT",
                    {
                        "default": 0.03,
                        "min": 0.0,
                        "max": 1000.0,
                        "step": 0.001,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "sampling",
                "sigma_max",
                "sigma_min"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelSamplingContinuousV",
        "display_name": "ModelSamplingContinuousV",
        "description": "",
        "python_module": "comfy_extras.nodes_model_advanced",
        "category": "advanced/model",
        "output_node": false
    },
    "ModelSamplingStableCascade": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "shift": [
                    "FLOAT",
                    {
                        "default": 2.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "shift"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelSamplingStableCascade",
        "display_name": "ModelSamplingStableCascade",
        "description": "",
        "python_module": "comfy_extras.nodes_model_advanced",
        "category": "advanced/model",
        "output_node": false
    },
    "ModelSamplingSD3": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "shift": [
                    "FLOAT",
                    {
                        "default": 3.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "shift"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelSamplingSD3",
        "display_name": "ModelSamplingSD3",
        "description": "",
        "python_module": "comfy_extras.nodes_model_advanced",
        "category": "advanced/model",
        "output_node": false
    },
    "ModelSamplingAuraFlow": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "shift": [
                    "FLOAT",
                    {
                        "default": 1.73,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "shift"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelSamplingAuraFlow",
        "display_name": "ModelSamplingAuraFlow",
        "description": "",
        "python_module": "comfy_extras.nodes_model_advanced",
        "category": "advanced/model",
        "output_node": false
    },
    "ModelSamplingFlux": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "max_shift": [
                    "FLOAT",
                    {
                        "default": 1.15,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ],
                "base_shift": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ],
                "width": [
                    "INT",
                    {
                        "default": 1024,
                        "min": 16,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 1024,
                        "min": 16,
                        "max": 16384,
                        "step": 8
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "max_shift",
                "base_shift",
                "width",
                "height"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelSamplingFlux",
        "display_name": "ModelSamplingFlux",
        "description": "",
        "python_module": "comfy_extras.nodes_model_advanced",
        "category": "advanced/model",
        "output_node": false
    },
    "RescaleCFG": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "multiplier": [
                    "FLOAT",
                    {
                        "default": 0.7,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "multiplier"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "RescaleCFG",
        "display_name": "RescaleCFG",
        "description": "",
        "python_module": "comfy_extras.nodes_model_advanced",
        "category": "advanced/model",
        "output_node": false
    },
    "ModelComputeDtype": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "dtype": [
                    [
                        "default",
                        "fp32",
                        "fp16",
                        "bf16"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "dtype"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelComputeDtype",
        "display_name": "ModelComputeDtype",
        "description": "",
        "python_module": "comfy_extras.nodes_model_advanced",
        "category": "advanced/debug/model",
        "output_node": false
    },
    "PatchModelAddDownscale": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "block_number": [
                    "INT",
                    {
                        "default": 3,
                        "min": 1,
                        "max": 32,
                        "step": 1
                    }
                ],
                "downscale_factor": [
                    "FLOAT",
                    {
                        "default": 2.0,
                        "min": 0.1,
                        "max": 9.0,
                        "step": 0.001
                    }
                ],
                "start_percent": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "end_percent": [
                    "FLOAT",
                    {
                        "default": 0.35,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "downscale_after_skip": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "downscale_method": [
                    [
                        "bicubic",
                        "nearest-exact",
                        "bilinear",
                        "area",
                        "bislerp"
                    ]
                ],
                "upscale_method": [
                    [
                        "bicubic",
                        "nearest-exact",
                        "bilinear",
                        "area",
                        "bislerp"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "block_number",
                "downscale_factor",
                "start_percent",
                "end_percent",
                "downscale_after_skip",
                "downscale_method",
                "upscale_method"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "PatchModelAddDownscale",
        "display_name": "PatchModelAddDownscale (Kohya Deep Shrink)",
        "description": "",
        "python_module": "comfy_extras.nodes_model_downscale",
        "category": "model_patches/unet",
        "output_node": false
    },
    "ImageCrop": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 512,
                        "min": 1,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 512,
                        "min": 1,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "x": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "y": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "width",
                "height",
                "x",
                "y"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageCrop",
        "display_name": "Image Crop",
        "description": "",
        "python_module": "comfy_extras.nodes_images",
        "category": "image/transform",
        "output_node": false
    },
    "RepeatImageBatch": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "amount": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "amount"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "RepeatImageBatch",
        "display_name": "RepeatImageBatch",
        "description": "",
        "python_module": "comfy_extras.nodes_images",
        "category": "image/batch",
        "output_node": false
    },
    "ImageFromBatch": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "batch_index": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 4095
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "batch_index",
                "length"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageFromBatch",
        "display_name": "ImageFromBatch",
        "description": "",
        "python_module": "comfy_extras.nodes_images",
        "category": "image/batch",
        "output_node": false
    },
    "ImageAddNoise": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "The random seed used for creating the noise."
                    }
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "seed",
                "strength"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageAddNoise",
        "display_name": "ImageAddNoise",
        "description": "",
        "python_module": "comfy_extras.nodes_images",
        "category": "image",
        "output_node": false
    },
    "SaveAnimatedWEBP": {
        "input": {
            "required": {
                "images": [
                    "IMAGE"
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "ComfyUI"
                    }
                ],
                "fps": [
                    "FLOAT",
                    {
                        "default": 6.0,
                        "min": 0.01,
                        "max": 1000.0,
                        "step": 0.01
                    }
                ],
                "lossless": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "quality": [
                    "INT",
                    {
                        "default": 80,
                        "min": 0,
                        "max": 100
                    }
                ],
                "method": [
                    [
                        "default",
                        "fastest",
                        "slowest"
                    ]
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "images",
                "filename_prefix",
                "fps",
                "lossless",
                "quality",
                "method"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "SaveAnimatedWEBP",
        "display_name": "SaveAnimatedWEBP",
        "description": "",
        "python_module": "comfy_extras.nodes_images",
        "category": "image/animation",
        "output_node": true
    },
    "SaveAnimatedPNG": {
        "input": {
            "required": {
                "images": [
                    "IMAGE"
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "ComfyUI"
                    }
                ],
                "fps": [
                    "FLOAT",
                    {
                        "default": 6.0,
                        "min": 0.01,
                        "max": 1000.0,
                        "step": 0.01
                    }
                ],
                "compress_level": [
                    "INT",
                    {
                        "default": 4,
                        "min": 0,
                        "max": 9
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "images",
                "filename_prefix",
                "fps",
                "compress_level"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "SaveAnimatedPNG",
        "display_name": "SaveAnimatedPNG",
        "description": "",
        "python_module": "comfy_extras.nodes_images",
        "category": "image/animation",
        "output_node": true
    },
    "SaveSVGNode": {
        "input": {
            "required": {
                "svg": [
                    "SVG"
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "svg/ComfyUI",
                        "tooltip": "The prefix for the file to save. This may include formatting information such as %date:yyyy-MM-dd% or %Empty Latent Image.width% to include values from nodes."
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "svg",
                "filename_prefix"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "SaveSVGNode",
        "display_name": "SaveSVGNode",
        "description": "Save SVG files on disk.",
        "python_module": "comfy_extras.nodes_images",
        "category": "image/save",
        "output_node": true
    },
    "ImageStitch": {
        "input": {
            "required": {
                "image1": [
                    "IMAGE"
                ],
                "direction": [
                    [
                        "right",
                        "down",
                        "left",
                        "up"
                    ],
                    {
                        "default": "right"
                    }
                ],
                "match_image_size": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "spacing_width": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 1024,
                        "step": 2
                    }
                ],
                "spacing_color": [
                    [
                        "white",
                        "black",
                        "red",
                        "green",
                        "blue"
                    ],
                    {
                        "default": "white"
                    }
                ]
            },
            "optional": {
                "image2": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "image1",
                "direction",
                "match_image_size",
                "spacing_width",
                "spacing_color"
            ],
            "optional": [
                "image2"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageStitch",
        "display_name": "Image Stitch",
        "description": "\nStitches image2 to image1 in the specified direction.\nIf image2 is not provided, returns image1 unchanged.\nOptional spacing can be added between images.\n",
        "python_module": "comfy_extras.nodes_images",
        "category": "image/transform",
        "output_node": false
    },
    "ResizeAndPadImage": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "target_width": [
                    "INT",
                    {
                        "default": 512,
                        "min": 1,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "target_height": [
                    "INT",
                    {
                        "default": 512,
                        "min": 1,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "padding_color": [
                    [
                        "white",
                        "black"
                    ]
                ],
                "interpolation": [
                    [
                        "area",
                        "bicubic",
                        "nearest-exact",
                        "bilinear",
                        "lanczos"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "target_width",
                "target_height",
                "padding_color",
                "interpolation"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ResizeAndPadImage",
        "display_name": "ResizeAndPadImage",
        "description": "",
        "python_module": "comfy_extras.nodes_images",
        "category": "image/transform",
        "output_node": false
    },
    "GetImageSize": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ]
            },
            "hidden": {
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "image"
            ],
            "hidden": [
                "unique_id"
            ]
        },
        "output": [
            "INT",
            "INT",
            "INT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "width",
            "height",
            "batch_size"
        ],
        "name": "GetImageSize",
        "display_name": "Get Image Size",
        "description": "Returns width and height of the image, and passes it through unchanged.",
        "python_module": "comfy_extras.nodes_images",
        "category": "image",
        "output_node": false
    },
    "ImageRotate": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "rotation": [
                    [
                        "none",
                        "90 degrees",
                        "180 degrees",
                        "270 degrees"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "rotation"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageRotate",
        "display_name": "ImageRotate",
        "description": "",
        "python_module": "comfy_extras.nodes_images",
        "category": "image/transform",
        "output_node": false
    },
    "ImageFlip": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "flip_method": [
                    [
                        "x-axis: vertically",
                        "y-axis: horizontally"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "flip_method"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageFlip",
        "display_name": "ImageFlip",
        "description": "",
        "python_module": "comfy_extras.nodes_images",
        "category": "image/transform",
        "output_node": false
    },
    "ImageOnlyCheckpointLoader": {
        "input": {
            "required": {
                "ckpt_name": [
                    [
                        "3D_Anime.safetensors",
                        "3D_Concept.safetensors",
                        "FLUX1/flux1-dev-fp8.safetensors",
                        "GTA5_Artwork_Diffusion_gtav_style.safetensors",
                        "Juggernaut_X_RunDiffusion.safetensors",
                        "LTXV/ltxv-13b-0.9.7-dev-fp8.safetensors",
                        "MOHAWK_v20.safetensors",
                        "MOHAWK_v20BackedVAE.safetensors",
                        "RealVisXL_V4.0.safetensors",
                        "Realistic_Vision_V6.0_NV_B1.safetensors",
                        "RunComfyDefault/v1-5-pruned-emaonly.safetensors",
                        "SD1.5/v1-5-pruned-emaonly.ckpt",
                        "SD2.1/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors",
                        "SDXL-TURBO/sd_xl_turbo_1.0_fp16.safetensors",
                        "SDXL/sd_xl_base_1.0.safetensors",
                        "SDXL/sd_xl_base_1.0_0.9vae.safetensors",
                        "SDXL/sd_xl_refiner_1.0_0.9vae.safetensors",
                        "SUPIR/SUPIR-v0F.ckpt",
                        "SVD/svd.safetensors",
                        "SVD/svd_xt.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_gs_swin8_B_64l8gs32_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_mesh_swin8_B_64l8m256c_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_rf_swin8_B_64l8r16_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_enc_swin8_B_64l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_flow_img_dit_L_64l8p2_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_dec_conv3d_16l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_enc_conv3d_16l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_flow_img_dit_L_16l8_fp16.safetensors",
                        "TripoSR/model.ckpt",
                        "bigLust_v16.safetensors",
                        "ccsr/real-world_ccsr.ckpt",
                        "cyberrealisticPony_v110.safetensors",
                        "cyberrealisticPony_v8.safetensors",
                        "cyberrealisticPony_v85.safetensors",
                        "cyberrealisticPony_v90Alt1.safetensors",
                        "cyberrealisticXL_v57.safetensors",
                        "disneyPixarCartoon_v10.safetensors",
                        "dreamCreationVirtual3DECommerce_v10.safetensors",
                        "dreamshaperXL_v21TurboDPMSDE.safetensors",
                        "dreamshaper_8.safetensors",
                        "dynamicrafter/dynamicrafter_1024_v1.ckpt",
                        "dynamicrafter/dynamicrafter_1024_v1_bf16.safetensors",
                        "dynamicrafter/dynamicrafter_512_interp_v1.ckpt",
                        "dynamicrafter/dynamicrafter_512_interp_v1_bf16.safetensors",
                        "dynamicrafter/tooncrafter_512_interp-pruned-fp16.safetensors",
                        "epicrealismXL_v8Kiss.safetensors",
                        "epicrealismXL_vxivEyecandyRealism.safetensors",
                        "epicrealismXL_vxviLastfameRealism.safetensors",
                        "epicrealism_naturalSinRC1VAE.safetensors",
                        "flat2DAnimerge_v45Sharp.safetensors",
                        "flux/flux1-dev-bnb-nf4-v2.safetensors",
                        "flux/flux1-dev-fp8.safetensors",
                        "flux/flux1-dev.sft",
                        "flux/flux1-schnell-fp8.safetensors",
                        "flux/flux1-schnell.sft",
                        "flux/fluxRealistic_fluxRealisticSamayV2.safetensors",
                        "flux/kijai/flux1-dev-fp8.safetensors",
                        "flux/lumiere_flux_alpha-fp8.safetensors",
                        "flux1-dev-fp8.safetensors",
                        "flux1-dev.safetensors",
                        "flux1-redux-dev.safetensors",
                        "flux1-schnell.safetensors",
                        "illustriousXL_v01.safetensors",
                        "ilustmix_v6.safetensors",
                        "juggernautXL_ragnarokBy.safetensors",
                        "juggernautXL_versionXInpaint.safetensors",
                        "leosamsFilmgirlUltra_ultraBaseModel.safetensors",
                        "ltx/ltx-video-2b-v0.9.safetensors",
                        "ltxv-13b-0.9.7-dev.safetensors",
                        "lustifySDXLNSFW_endgame.safetensors",
                        "lustifySDXLNSFW_oltFIXEDTEXTURES.safetensors",
                        "majicmixRealistic_v7.safetensors",
                        "meinamix_v12Final.safetensors",
                        "noobaiCyberfix_eps11PerpCyberfix.safetensors",
                        "noobaiXLNAIXL_vPred10Version.safetensors",
                        "photon_v1.safetensors",
                        "ponyDiffusionV6XL_v6StartWithThisOne.safetensors",
                        "ponyRealism_V22MainVAE.safetensors",
                        "ponyRealism_V23.safetensors",
                        "ponyRealism_V23ULTRA.safetensors",
                        "realDream_sdxlPony15.safetensors",
                        "realisticVisionV51_v51VAE.safetensors",
                        "realisticVisionV60B1_v51HyperVAE.safetensors",
                        "realisticVisionV60B1_v51VAE.safetensors",
                        "realvisxlV50_v50LightningBakedvae.safetensors",
                        "sa1/stable_audio_open_1.0.safetensors",
                        "sc/stable_cascade_stage_b.safetensors",
                        "sc/stable_cascade_stage_c.safetensors",
                        "sd1/Deliberate_v2.safetensors",
                        "sd1/absolutereality_lcm.safetensors",
                        "sd1/animatrix_v20.safetensors",
                        "sd1/animeStills_v1.safetensors",
                        "sd1/animerge_v40.safetensors",
                        "sd1/anythingV3_fp16.safetensors",
                        "sd1/artUniverse_v80.safetensors",
                        "sd1/arthemyComics_v70.safetensors",
                        "sd1/cardosAnime_v20.safetensors",
                        "sd1/chilloutmix_NiPrunedFp16Fix.safetensors",
                        "sd1/chilloutmix_NiPrunedFp32Fix.safetensors",
                        "sd1/comfyroll_v10Anime.safetensors",
                        "sd1/comicDiffusion_v1.ckpt",
                        "sd1/comicDiffusion_v2.ckpt",
                        "sd1/crystalClear2_crystalClear2V1.safetensors",
                        "sd1/cyberrealistic_v33.safetensors",
                        "sd1/ddosmix_V2.safetensors",
                        "sd1/dreamshaper_8.safetensors",
                        "sd1/dreamshaper_8LCM.safetensors",
                        "sd1/dreamshaper_8_inpainting.safetensors",
                        "sd1/epicphotogasm_amateurreallife.safetensors",
                        "sd1/epicrealism_naturalSinRC1VAE.safetensors",
                        "sd1/f222_v1.ckpt",
                        "sd1/flat2DAnimerge_v20.safetensors",
                        "sd1/ghostmix_v20Bakedvae.safetensors",
                        "sd1/helloyoung25d_V10f.safetensors",
                        "sd1/helloyoung2d_V12g.safetensors",
                        "sd1/icbinpICantBelieveIts_afterburn.safetensors",
                        "sd1/icbinpICantBelieveIts_seco.safetensors",
                        "sd1/icomix_V05.safetensors",
                        "sd1/majicmixLux_v1.safetensors",
                        "sd1/majicmixLux_v2.safetensors",
                        "sd1/majicmixLux_v3.safetensors",
                        "sd1/majicmixSombre_v20.safetensors",
                        "sd1/meinamix_meinaV11.safetensors",
                        "sd1/meinapastel_v6Pastel.safetensors",
                        "sd1/meinaunreal_v41.safetensors",
                        "sd1/paradigmLCM_v10.safetensors",
                        "sd1/photographerAlpha7_v3.safetensors",
                        "sd1/photonLCM_v10.safetensors",
                        "sd1/photon_v1.safetensors",
                        "sd1/realcartoon3d_v14.safetensors",
                        "sd1/realdosmix_.safetensors",
                        "sd1/realisian_v50.safetensors",
                        "sd1/realisticVisionV60B1_v51VAE.safetensors",
                        "sd1/redshiftDiffusion_v1.ckpt",
                        "sd1/revAnimated_v122EOL.safetensors",
                        "sd1/toonyou_beta6.safetensors",
                        "sd1/universestable_v50Comics.safetensors",
                        "sd1/vinteprotogenmix_V20.safetensors",
                        "sd35/sd3.5_large.safetensors",
                        "sd35/sd3.5_large_fp8_scaled.safetensors",
                        "sd35/sd3.5_large_turbo.safetensors",
                        "sd3m/sd3_medium.safetensors",
                        "sd3m/sd3_medium_incl_clips.safetensors",
                        "sd3m/sd3_medium_incl_clips_t5xxlfp16.safetensors",
                        "sd3m/sd3_medium_incl_clips_t5xxlfp8.safetensors",
                        "sd_xl_refiner_1.0_0.9vae.safetensors",
                        "sdxl/Juggernaut-XL_v9_RunDiffusionPhoto_v2.safetensors",
                        "sdxl/albedobaseXL_v13.safetensors",
                        "sdxl/bluepencilxl_v310.safetensors",
                        "sdxl/breakdomainxl_V06d.safetensors",
                        "sdxl/counterfeitxl_v10.safetensors",
                        "sdxl/crystalClearXL_ccxl.safetensors",
                        "sdxl/dreamshaperXL_lightningDPMSDE.safetensors",
                        "sdxl/dreamshaperXL_v21TurboDPMSDE.safetensors",
                        "sdxl/dreamshaperXL_v2TurboDPMSDE.safetensors",
                        "sdxl/juggernautXL_v9Rdphoto2Lightning.safetensors",
                        "sdxl/juggernautXL_v9Rundiffusionphoto2.safetensors",
                        "sdxl/juggernautXL_version6Rundiffusion.safetensors",
                        "sdxl/leosamsHelloworldXL_helloworldXL70.safetensors",
                        "sdxl/moxieDiffusionXL_v18.safetensors",
                        "sdxl/perfectdeliberate_v5.safetensors",
                        "sdxl/playground-v2.5-1024px-aesthetic.fp16.safetensors",
                        "sdxl/playground-v2.5-1024px-aesthetic.safetensors",
                        "sdxl/proteus_v03.safetensors",
                        "sdxl/protovisionXLHighFidelity3D_releaseV660Bakedvae.safetensors",
                        "sdxl/realcartoonXL_v6.safetensors",
                        "sdxl/realitycheckXL_alpha11.safetensors",
                        "sdxl/reproductionSDXL_2v12.safetensors",
                        "sdxl/reproductionSDXL_v31.safetensors",
                        "sdxl/revAnimated_v11.safetensors",
                        "sdxl/sd_xl_base_1.0.safetensors",
                        "sdxl/sd_xl_turbo_1.0.safetensors",
                        "sdxl/sdxlUnstableDiffusers_v11.safetensors",
                        "sdxl/tamarinXL_v10.safetensors",
                        "sdxl/wildcardxXLTURBO_wildcardxXLTURBOV10.safetensors",
                        "supir/SUPIR-v0F.ckpt",
                        "supir/SUPIR-v0Q.ckpt",
                        "svd/svd.safetensors",
                        "svd/svd_xt.safetensors",
                        "svd/svd_xt_1_1.safetensors",
                        "uberRealisticPornMergePonyxl_ponyxlHybridV1.safetensors",
                        "upscale/x4-upscaler-ema.safetensors",
                        "v1-5-pruned-emaonly-fp16.safetensors",
                        "v1-5-pruned-emaonly.ckpt",
                        "v2-1_768-ema-pruned.safetensors",
                        "waiNSFWIllustrious_v140.safetensors",
                        "wildcardxXLANIMATION_wildcardxXLANIMATION.safetensors"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "ckpt_name"
            ]
        },
        "output": [
            "MODEL",
            "CLIP_VISION",
            "VAE"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "MODEL",
            "CLIP_VISION",
            "VAE"
        ],
        "name": "ImageOnlyCheckpointLoader",
        "display_name": "Image Only Checkpoint Loader (img2vid model)",
        "description": "",
        "python_module": "comfy_extras.nodes_video_model",
        "category": "loaders/video_models",
        "output_node": false
    },
    "SVD_img2vid_Conditioning": {
        "input": {
            "required": {
                "clip_vision": [
                    "CLIP_VISION"
                ],
                "init_image": [
                    "IMAGE"
                ],
                "vae": [
                    "VAE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 1024,
                        "min": 16,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 576,
                        "min": 16,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "video_frames": [
                    "INT",
                    {
                        "default": 14,
                        "min": 1,
                        "max": 4096
                    }
                ],
                "motion_bucket_id": [
                    "INT",
                    {
                        "default": 127,
                        "min": 1,
                        "max": 1023
                    }
                ],
                "fps": [
                    "INT",
                    {
                        "default": 6,
                        "min": 1,
                        "max": 1024
                    }
                ],
                "augmentation_level": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip_vision",
                "init_image",
                "vae",
                "width",
                "height",
                "video_frames",
                "motion_bucket_id",
                "fps",
                "augmentation_level"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "SVD_img2vid_Conditioning",
        "display_name": "SVD_img2vid_Conditioning",
        "description": "",
        "python_module": "comfy_extras.nodes_video_model",
        "category": "conditioning/video_models",
        "output_node": false
    },
    "VideoLinearCFGGuidance": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "min_cfg": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.5,
                        "round": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "min_cfg"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "VideoLinearCFGGuidance",
        "display_name": "VideoLinearCFGGuidance",
        "description": "",
        "python_module": "comfy_extras.nodes_video_model",
        "category": "sampling/video_models",
        "output_node": false
    },
    "VideoTriangleCFGGuidance": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "min_cfg": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.5,
                        "round": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "min_cfg"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "VideoTriangleCFGGuidance",
        "display_name": "VideoTriangleCFGGuidance",
        "description": "",
        "python_module": "comfy_extras.nodes_video_model",
        "category": "sampling/video_models",
        "output_node": false
    },
    "ImageOnlyCheckpointSave": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "clip_vision": [
                    "CLIP_VISION"
                ],
                "vae": [
                    "VAE"
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "checkpoints/ComfyUI"
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "model",
                "clip_vision",
                "vae",
                "filename_prefix"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "ImageOnlyCheckpointSave",
        "display_name": "ImageOnlyCheckpointSave",
        "description": "",
        "python_module": "comfy_extras.nodes_video_model",
        "category": "advanced/model_merging",
        "output_node": true
    },
    "ConditioningSetAreaPercentageVideo": {
        "input": {
            "required": {
                "conditioning": [
                    "CONDITIONING"
                ],
                "width": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "height": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "temporal": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "x": [
                    "FLOAT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "y": [
                    "FLOAT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "z": [
                    "FLOAT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning",
                "width",
                "height",
                "temporal",
                "x",
                "y",
                "z",
                "strength"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "ConditioningSetAreaPercentageVideo",
        "display_name": "ConditioningSetAreaPercentageVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_video_model",
        "category": "conditioning",
        "output_node": false
    },
    "TrainLoraNode": {
        "input": {
            "required": {
                "model": [
                    "MODEL",
                    {
                        "tooltip": "The model to train the LoRA on."
                    }
                ],
                "latents": [
                    "LATENT",
                    {
                        "tooltip": "The Latents to use for training, serve as dataset/input of the model."
                    }
                ],
                "positive": [
                    "CONDITIONING",
                    {
                        "tooltip": "The positive conditioning to use for training."
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 10000,
                        "step": 1,
                        "tooltip": "The batch size to use for training."
                    }
                ],
                "grad_accumulation_steps": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 1024,
                        "step": 1,
                        "tooltip": "The number of gradient accumulation steps to use for training."
                    }
                ],
                "steps": [
                    "INT",
                    {
                        "default": 16,
                        "min": 1,
                        "max": 100000,
                        "tooltip": "The number of steps to train the LoRA for."
                    }
                ],
                "learning_rate": [
                    "FLOAT",
                    {
                        "default": 0.0005,
                        "min": 1e-07,
                        "max": 1.0,
                        "step": 1e-06,
                        "tooltip": "The learning rate to use for training."
                    }
                ],
                "rank": [
                    "INT",
                    {
                        "default": 8,
                        "min": 1,
                        "max": 128,
                        "tooltip": "The rank of the LoRA layers."
                    }
                ],
                "optimizer": [
                    [
                        "AdamW",
                        "Adam",
                        "SGD",
                        "RMSprop"
                    ],
                    {
                        "default": "AdamW",
                        "tooltip": "The optimizer to use for training."
                    }
                ],
                "loss_function": [
                    [
                        "MSE",
                        "L1",
                        "Huber",
                        "SmoothL1"
                    ],
                    {
                        "default": "MSE",
                        "tooltip": "The loss function to use for training."
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "tooltip": "The seed to use for training (used in generator for LoRA weight initialization and noise sampling)"
                    }
                ],
                "training_dtype": [
                    [
                        "bf16",
                        "fp32"
                    ],
                    {
                        "default": "bf16",
                        "tooltip": "The dtype to use for training."
                    }
                ],
                "lora_dtype": [
                    [
                        "bf16",
                        "fp32"
                    ],
                    {
                        "default": "bf16",
                        "tooltip": "The dtype to use for lora."
                    }
                ],
                "algorithm": [
                    [
                        "LoRA",
                        "LoHa",
                        "LoKr",
                        "OFT"
                    ],
                    {
                        "default": "LoRA",
                        "tooltip": "The algorithm to use for training."
                    }
                ],
                "gradient_checkpointing": [
                    "BOOLEAN",
                    {
                        "default": true,
                        "tooltip": "Use gradient checkpointing for training."
                    }
                ],
                "existing_lora": [
                    [
                        "5shot.safetensors",
                        "AnimateLCM/AnimateLCM_sd15_t2v_lora.safetensors",
                        "Comics_V3-05.safetensors",
                        "Detailed_Hands-000001.safetensors",
                        "Drawing.safetensors",
                        "Duc_Abed.safetensors",
                        "Duc_Lustig.safetensors",
                        "Duc_Miller.safetensors",
                        "Duc_Nehama.safetensors",
                        "Duc_Shaintz.safetensors",
                        "Duc_Tidhar.safetensors",
                        "Expressive_H-000001.safetensors",
                        "FLUX.1-Turbo-Alpha.safetensors",
                        "FilmVelvia3.safetensors",
                        "FrankMiller-10.safetensors",
                        "Grungy_Picture_SDXL_V1.safetensors",
                        "LORAFlatColor_flatColor.pt",
                        "LZ-comic strip.safetensors",
                        "LineArt.safetensors",
                        "LoconLoraOffsetNoise_locon0501.pt",
                        "LowRA.safetensors",
                        "NSFW_master.safetensors",
                        "OilPainting.safetensors",
                        "Pencil_Sketch_Style.safetensors",
                        "PerfectEyesXL.safetensors",
                        "SDXL_StopMotion_lora.safetensors",
                        "SU_Twrk_EP62.safetensors",
                        "Samsung_UltraReal.safetensors",
                        "Titfuck_WAN14B_V1_Release.safetensors",
                        "UltraRealPhoto.safetensors",
                        "WAN_dr34mj0b.safetensors",
                        "Wan21_CausVid_14B_T2V_lora_rank32.safetensors",
                        "Wan21_CausVid_bidirect2_T2V_1_3B_lora_rank32.safetensors",
                        "Western_Comic_Style.safetensors",
                        "aardstyle1.0.safetensors",
                        "add-detail-xl.safetensors",
                        "add_detail.safetensors",
                        "aidmaRealisticSkin-FLUX-v0.1.safetensors",
                        "amateurphoto-v6-forcu.safetensors",
                        "animeoutlineV4_16.safetensors",
                        "bad-hands-5.pt",
                        "bounceV_01.safetensors",
                        "bustyFC-2.1.safetensors",
                        "comfyui_portrait_lora64.safetensors",
                        "comfyui_subject_lora16.safetensors",
                        "comic-000009.safetensors",
                        "detail_slider_v4.safetensors",
                        "detailz-wan.safetensors",
                        "dicks_epoch_100.safetensors",
                        "diffusion_pytorch_model.safetensors",
                        "elldrethslucidmix_Lora300.safetensors",
                        "epiNoiseoffset_v2.safetensors",
                        "erect_penis_epoch_80.safetensors",
                        "facials_epoch_50.safetensors",
                        "fingering_i2v_e248.safetensors",
                        "flux/In-Context-LoRA/couple-profile.safetensors",
                        "flux/In-Context-LoRA/film-storyboard.safetensors",
                        "flux/In-Context-LoRA/font-design.safetensors",
                        "flux/In-Context-LoRA/home-decoration.safetensors",
                        "flux/In-Context-LoRA/portrait-illustration.safetensors",
                        "flux/In-Context-LoRA/portrait-photography.safetensors",
                        "flux/In-Context-LoRA/ppt-templates.safetensors",
                        "flux/In-Context-LoRA/sandstorm-visual-effect.safetensors",
                        "flux/In-Context-LoRA/sparklers-visual-effect.safetensors",
                        "flux/In-Context-LoRA/visual-identity-design.safetensors",
                        "flux/UltraRealPhoto.safetensors",
                        "flux/anime_lora.safetensors",
                        "flux/anime_lora_comfy_converted.safetensors",
                        "flux/art_lora.safetensors",
                        "flux/art_lora_comfy_converted.safetensors",
                        "flux/disney_lora.safetensors",
                        "flux/disney_lora_comfy_converted.safetensors",
                        "flux/flux.1-turbo-alpha/diffusion_pytorch_model.safetensors",
                        "flux/furry_lora.safetensors",
                        "flux/mjv6_lora.safetensors",
                        "flux/mjv6_lora_comfy_converted.safetensors",
                        "flux/realism_lora.safetensors",
                        "flux/realism_lora_comfy_converted.safetensors",
                        "flux/scenery_lora.safetensors",
                        "flux/scenery_lora_comfy_converted.safetensors",
                        "flux1-canny-dev-lora.safetensors",
                        "flux1-depth-dev-lora.safetensors",
                        "fluxRealSkin-V2.safetensors",
                        "flux_lora_file_rank16_bf16-step00350.safetensors",
                        "flux_lora_file_rank16_bf16-step00750.safetensors",
                        "flux_realism_lora.safetensors",
                        "front_doggy_plow_v1_1_wan.safetensors",
                        "genitals_helper_v1.0_e219.safetensors",
                        "hunyuan/hyvideo_FastVideo_LoRA-fp8.safetensors",
                        "impressionism.safetensors",
                        "insert-anything_extracted_lora_rank_64-bf16.safetensors",
                        "jfj-deepthroat-v1.safetensors",
                        "kontext/Akira Toriyama - Dragon Ball Style - Kontext.safetensors",
                        "kontext/FlatAnimation\u3010style\u3011_flux_kontext_lora_v1-PAseer.safetensors",
                        "kontext/GuoHuaKontextLoRA.safetensors",
                        "kontext/HDR360.safetensors",
                        "kontext/HXHY-RealisticKontextLoRA1.6.safetensors",
                        "kontext/InScene-v1.0.safetensors",
                        "kontext/Three-view sketch.safetensors",
                        "kontext/fluffy-kontext-lora.safetensors",
                        "kontext/ghibliStyle_kontext_byJaneB.safetensors",
                        "kontext/glass-prism-kontext-lora.safetensors",
                        "kontext/kontext-pixelize-v1.1_000001500.safetensors",
                        "kontext/kontext_change_clothes_t1.safetensors",
                        "kontext/mech-anything-kontext.safetensors",
                        "kontext/unflux_v1.safetensors",
                        "lcm/sd1/pytorch_lora_weights.safetensors",
                        "lcm/sdxl/pytorch_lora_weights.safetensors",
                        "lineart + flat colors v2.safetensors",
                        "marymarvel-nvwls-v1.safetensors",
                        "mhk_comics.safetensors",
                        "mo.safetensors",
                        "modernAmericanComics_v10.safetensors",
                        "modernDisneyLORA_modiV1.safetensors",
                        "more_details.safetensors",
                        "nsfw_flux_lora_v1.safetensors",
                        "r1ge - AnimeRage.safetensors",
                        "ral-dissolve-sdxl.safetensors",
                        "rottingZombies.safetensors",
                        "sam_yang_offset_right_filesize.safetensors",
                        "sd1/3232pixel.safetensors",
                        "sd1/AoTStyle.safetensors",
                        "sd1/AxelStone-DocStasis.safetensors",
                        "sd1/DrippingArt.safetensors",
                        "sd1/GTA_Style.safetensors",
                        "sd1/LiquidAF-0-1.safetensors",
                        "sd1/Longan.safetensors",
                        "sd1/Magazine-10.safetensors",
                        "sd1/Naruto.safetensors",
                        "sd1/add_detail.safetensors",
                        "sd1/anime_minimalist_v1-000020.safetensors",
                        "sd1/animemix_v3_offset.safetensors",
                        "sd1/animeoutlineV4_16.safetensors",
                        "sd1/arcane_offset.safetensors",
                        "sd1/concept_master_1.0.safetensors",
                        "sd1/epi_noiseoffset2.pt",
                        "sd1/ghibli_style_offset.safetensors",
                        "sd1/ip-adapter-faceid-plus_sd15_lora.safetensors",
                        "sd1/ip-adapter-faceid-plusv2_sd15_lora.safetensors",
                        "sd1/ip-adapter-faceid_sd15_lora.safetensors",
                        "sd1/modernlogo.safetensors",
                        "sd1/more_details.safetensors",
                        "sd1/neg4all_bdsqlsz_V3.5.safetensors",
                        "sd1/sd15_lcm_lora.safetensors",
                        "sd1/tangbohu-line_1.0.safetensors",
                        "sd1/v3_sd15_adapter.ckpt",
                        "sdxl/3DRedmond-3DRenderStyle-3DRenderAF.safetensors",
                        "sdxl/Aether_Fire_v1_SDXL_LoRA.safetensors",
                        "sdxl/Aether_Ghost_v1.1_LoRA.safetensors",
                        "sdxl/Aether_Ghost_v1_LoRA.safetensors",
                        "sdxl/ClayAnimationRedm.safetensors",
                        "sdxl/DreamARTSDXL.safetensors",
                        "sdxl/MJ52.safetensors",
                        "sdxl/PS1Redmond-PS1Game-Playstation1Graphics.safetensors",
                        "sdxl/ParchartXL-2.0.safetensors",
                        "sdxl/PixelArtRedmond-Lite64.safetensors",
                        "sdxl/StickersRedmond.safetensors",
                        "sdxl/ToyRedmond-FnkRedmAF.safetensors",
                        "sdxl/WowifierXL-V2.safetensors",
                        "sdxl/add-detail-xl.safetensors",
                        "sdxl/cereal_box_sdxl_v1.safetensors",
                        "sdxl/crayons_v1_sdxl.safetensors",
                        "sdxl/fofr/emoji.safetensors",
                        "sdxl/ikea_instructions_xl_v1_5.safetensors",
                        "sdxl/ip-adapter-faceid-plusv2_sdxl_lora.safetensors",
                        "sdxl/ip-adapter-faceid_sdxl_lora.safetensors",
                        "sdxl/magik_smoke_v1.2.safetensors",
                        "sdxl/neg4all_xl_bdsqlsz_V5.safetensors",
                        "sdxl/sdxl_lightning_8step_lora.safetensors",
                        "sdxl/sdxl_offset_example_v10.safetensors",
                        "sdxl/wojak_SDXL.safetensors",
                        "sdxl/xl_more_art-full_v1.safetensors",
                        "skin_4-000015.safetensors",
                        "skin_tone_slider_v1.safetensors",
                        "wan-nsfw-e14-fixed.safetensors",
                        "wan2.1-1.3b-control-lora-tile-v1.0_comfy.safetensors",
                        "wan_cowgirl_v1.3.safetensors",
                        "wan_cumshot_i2v.safetensors",
                        "wan_female_masturbation.safetensors",
                        "wan_pov_missionary_i2v_v1.1.safetensors",
                        "xk3mt1ks.safetensors",
                        "xl_more_art-full-beta2.safetensors",
                        "xl_more_art-full_v1.safetensors",
                        "xl_yamer_style-2.0.safetensors",
                        "[None]"
                    ],
                    {
                        "default": "[None]",
                        "tooltip": "The existing LoRA to append to. Set to None for new LoRA."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "latents",
                "positive",
                "batch_size",
                "grad_accumulation_steps",
                "steps",
                "learning_rate",
                "rank",
                "optimizer",
                "loss_function",
                "seed",
                "training_dtype",
                "lora_dtype",
                "algorithm",
                "gradient_checkpointing",
                "existing_lora"
            ]
        },
        "output": [
            "MODEL",
            "LORA_MODEL",
            "LOSS_MAP",
            "INT"
        ],
        "output_is_list": [
            false,
            false,
            false,
            false
        ],
        "output_name": [
            "model_with_lora",
            "lora",
            "loss",
            "steps"
        ],
        "name": "TrainLoraNode",
        "display_name": "Train LoRA",
        "description": "",
        "python_module": "comfy_extras.nodes_train",
        "category": "training",
        "output_node": false,
        "experimental": true
    },
    "SaveLoRANode": {
        "input": {
            "required": {
                "lora": [
                    "LORA_MODEL",
                    {
                        "tooltip": "The LoRA model to save. Do not use the model with LoRA layers."
                    }
                ],
                "prefix": [
                    "STRING",
                    {
                        "default": "loras/ComfyUI_trained_lora",
                        "tooltip": "The prefix to use for the saved LoRA file."
                    }
                ]
            },
            "optional": {
                "steps": [
                    "INT",
                    {
                        "forceInput": true,
                        "tooltip": "Optional: The number of steps to LoRA has been trained for, used to name the saved file."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "lora",
                "prefix"
            ],
            "optional": [
                "steps"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "SaveLoRANode",
        "display_name": "Save LoRA Weights",
        "description": "",
        "python_module": "comfy_extras.nodes_train",
        "category": "loaders",
        "output_node": true,
        "experimental": true
    },
    "LoraModelLoader": {
        "input": {
            "required": {
                "model": [
                    "MODEL",
                    {
                        "tooltip": "The diffusion model the LoRA will be applied to."
                    }
                ],
                "lora": [
                    "LORA_MODEL",
                    {
                        "tooltip": "The LoRA model to apply to the diffusion model."
                    }
                ],
                "strength_model": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -100.0,
                        "max": 100.0,
                        "step": 0.01,
                        "tooltip": "How strongly to modify the diffusion model. This value can be negative."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "lora",
                "strength_model"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "LoraModelLoader",
        "display_name": "Load LoRA Model",
        "description": "Load Trained LoRA weights from Train LoRA node.",
        "python_module": "comfy_extras.nodes_train",
        "category": "loaders",
        "output_node": false,
        "output_tooltips": [
            "The modified diffusion model."
        ],
        "experimental": true
    },
    "LoadImageSetFromFolderNode": {
        "input": {
            "required": {
                "folder": [
                    [
                        "3d",
                        "RunComfy-example",
                        "RunComfy-example/depth",
                        "RunComfy-example/mask",
                        "RunComfy-example/outline",
                        "Test-50-frames",
                        "Test-50-frames/depth",
                        "Test-50-frames/mask-1-webp",
                        "Test-50-frames/outline",
                        "Test3-complete",
                        "Test3-complete/depth",
                        "Test3-complete/mask",
                        "Test3-complete/outline",
                        "clipspace",
                        "flux-lora-training",
                        "n-suite",
                        "pasted",
                        "tensorrt_lite",
                        "webp",
                        "webp/IPAdapter",
                        "webp/depth",
                        "webp/mask",
                        "webp/outline"
                    ],
                    {
                        "tooltip": "The folder to load images from."
                    }
                ]
            },
            "optional": {
                "resize_method": [
                    [
                        "None",
                        "Stretch",
                        "Crop",
                        "Pad"
                    ],
                    {
                        "default": "None"
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "folder"
            ],
            "optional": [
                "resize_method"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "LoadImageSetFromFolderNode",
        "display_name": "Load Image Dataset from Folder",
        "description": "Loads a batch of images from a directory for training.",
        "python_module": "comfy_extras.nodes_train",
        "category": "loaders",
        "output_node": false,
        "experimental": true
    },
    "LoadImageTextSetFromFolderNode": {
        "input": {
            "required": {
                "folder": [
                    [
                        "3d",
                        "RunComfy-example",
                        "RunComfy-example/depth",
                        "RunComfy-example/mask",
                        "RunComfy-example/outline",
                        "Test-50-frames",
                        "Test-50-frames/depth",
                        "Test-50-frames/mask-1-webp",
                        "Test-50-frames/outline",
                        "Test3-complete",
                        "Test3-complete/depth",
                        "Test3-complete/mask",
                        "Test3-complete/outline",
                        "clipspace",
                        "flux-lora-training",
                        "n-suite",
                        "pasted",
                        "tensorrt_lite",
                        "webp",
                        "webp/IPAdapter",
                        "webp/depth",
                        "webp/mask",
                        "webp/outline"
                    ],
                    {
                        "tooltip": "The folder to load images from."
                    }
                ],
                "clip": [
                    "CLIP",
                    {
                        "tooltip": "The CLIP model used for encoding the text."
                    }
                ]
            },
            "optional": {
                "resize_method": [
                    [
                        "None",
                        "Stretch",
                        "Crop",
                        "Pad"
                    ],
                    {
                        "default": "None"
                    }
                ],
                "width": [
                    "INT",
                    {
                        "default": -1,
                        "min": -1,
                        "max": 10000,
                        "step": 1,
                        "tooltip": "The width to resize the images to. -1 means use the original width."
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": -1,
                        "min": -1,
                        "max": 10000,
                        "step": 1,
                        "tooltip": "The height to resize the images to. -1 means use the original height."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "folder",
                "clip"
            ],
            "optional": [
                "resize_method",
                "width",
                "height"
            ]
        },
        "output": [
            "IMAGE",
            "CONDITIONING"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "IMAGE",
            "CONDITIONING"
        ],
        "name": "LoadImageTextSetFromFolderNode",
        "display_name": "Load Image and Text Dataset from Folder",
        "description": "Loads a batch of images and caption from a directory for training.",
        "python_module": "comfy_extras.nodes_train",
        "category": "loaders",
        "output_node": false,
        "experimental": true
    },
    "LossGraphNode": {
        "input": {
            "required": {
                "loss": [
                    "LOSS_MAP",
                    {
                        "default": {}
                    }
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "loss_graph"
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "loss",
                "filename_prefix"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "LossGraphNode",
        "display_name": "Plot Loss Graph",
        "description": "Plots the loss graph and saves it to the output directory.",
        "python_module": "comfy_extras.nodes_train",
        "category": "training",
        "output_node": true,
        "experimental": true
    },
    "SelfAttentionGuidance": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "scale": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": -2.0,
                        "max": 5.0,
                        "step": 0.01
                    }
                ],
                "blur_sigma": [
                    "FLOAT",
                    {
                        "default": 2.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "scale",
                "blur_sigma"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "SelfAttentionGuidance",
        "display_name": "Self-Attention Guidance",
        "description": "",
        "python_module": "comfy_extras.nodes_sag",
        "category": "_for_testing",
        "output_node": false
    },
    "PerpNeg": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "empty_conditioning": [
                    "CONDITIONING"
                ],
                "neg_scale": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "empty_conditioning",
                "neg_scale"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "PerpNeg",
        "display_name": "Perp-Neg (DEPRECATED by PerpNegGuider)",
        "description": "",
        "python_module": "comfy_extras.nodes_perpneg",
        "category": "_for_testing",
        "output_node": false,
        "deprecated": true
    },
    "PerpNegGuider": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "empty_conditioning": [
                    "CONDITIONING"
                ],
                "cfg": [
                    "FLOAT",
                    {
                        "default": 8.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.1,
                        "round": 0.01
                    }
                ],
                "neg_scale": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "positive",
                "negative",
                "empty_conditioning",
                "cfg",
                "neg_scale"
            ]
        },
        "output": [
            "GUIDER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "GUIDER"
        ],
        "name": "PerpNegGuider",
        "display_name": "PerpNegGuider",
        "description": "",
        "python_module": "comfy_extras.nodes_perpneg",
        "category": "_for_testing",
        "output_node": false
    },
    "StableZero123_Conditioning": {
        "input": {
            "required": {
                "clip_vision": [
                    "CLIP_VISION"
                ],
                "init_image": [
                    "IMAGE"
                ],
                "vae": [
                    "VAE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 256,
                        "min": 16,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 256,
                        "min": 16,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ],
                "elevation": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": -180.0,
                        "max": 180.0,
                        "step": 0.1,
                        "round": false
                    }
                ],
                "azimuth": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": -180.0,
                        "max": 180.0,
                        "step": 0.1,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip_vision",
                "init_image",
                "vae",
                "width",
                "height",
                "batch_size",
                "elevation",
                "azimuth"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "StableZero123_Conditioning",
        "display_name": "StableZero123_Conditioning",
        "description": "",
        "python_module": "comfy_extras.nodes_stable3d",
        "category": "conditioning/3d_models",
        "output_node": false
    },
    "StableZero123_Conditioning_Batched": {
        "input": {
            "required": {
                "clip_vision": [
                    "CLIP_VISION"
                ],
                "init_image": [
                    "IMAGE"
                ],
                "vae": [
                    "VAE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 256,
                        "min": 16,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 256,
                        "min": 16,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ],
                "elevation": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": -180.0,
                        "max": 180.0,
                        "step": 0.1,
                        "round": false
                    }
                ],
                "azimuth": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": -180.0,
                        "max": 180.0,
                        "step": 0.1,
                        "round": false
                    }
                ],
                "elevation_batch_increment": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": -180.0,
                        "max": 180.0,
                        "step": 0.1,
                        "round": false
                    }
                ],
                "azimuth_batch_increment": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": -180.0,
                        "max": 180.0,
                        "step": 0.1,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip_vision",
                "init_image",
                "vae",
                "width",
                "height",
                "batch_size",
                "elevation",
                "azimuth",
                "elevation_batch_increment",
                "azimuth_batch_increment"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "StableZero123_Conditioning_Batched",
        "display_name": "StableZero123_Conditioning_Batched",
        "description": "",
        "python_module": "comfy_extras.nodes_stable3d",
        "category": "conditioning/3d_models",
        "output_node": false
    },
    "SV3D_Conditioning": {
        "input": {
            "required": {
                "clip_vision": [
                    "CLIP_VISION"
                ],
                "init_image": [
                    "IMAGE"
                ],
                "vae": [
                    "VAE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 576,
                        "min": 16,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 576,
                        "min": 16,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "video_frames": [
                    "INT",
                    {
                        "default": 21,
                        "min": 1,
                        "max": 4096
                    }
                ],
                "elevation": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": -90.0,
                        "max": 90.0,
                        "step": 0.1,
                        "round": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip_vision",
                "init_image",
                "vae",
                "width",
                "height",
                "video_frames",
                "elevation"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "SV3D_Conditioning",
        "display_name": "SV3D_Conditioning",
        "description": "",
        "python_module": "comfy_extras.nodes_stable3d",
        "category": "conditioning/3d_models",
        "output_node": false
    },
    "SD_4XUpscale_Conditioning": {
        "input": {
            "required": {
                "images": [
                    "IMAGE"
                ],
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "scale_ratio": [
                    "FLOAT",
                    {
                        "default": 4.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "noise_augmentation": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "images",
                "positive",
                "negative",
                "scale_ratio",
                "noise_augmentation"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "SD_4XUpscale_Conditioning",
        "display_name": "SD_4XUpscale_Conditioning",
        "description": "",
        "python_module": "comfy_extras.nodes_sdupscale",
        "category": "conditioning/upscale_diffusion",
        "output_node": false
    },
    "PhotoMakerLoader": {
        "input": {
            "required": {
                "photomaker_model_name": [
                    [
                        "photomaker-v1.bin",
                        "photomaker-v2.bin"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "photomaker_model_name"
            ]
        },
        "output": [
            "PHOTOMAKER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "PHOTOMAKER"
        ],
        "name": "PhotoMakerLoader",
        "display_name": "PhotoMakerLoader",
        "description": "",
        "python_module": "comfy_extras.nodes_photomaker",
        "category": "_for_testing/photomaker",
        "output_node": false
    },
    "PhotoMakerEncode": {
        "input": {
            "required": {
                "photomaker": [
                    "PHOTOMAKER"
                ],
                "image": [
                    "IMAGE"
                ],
                "clip": [
                    "CLIP"
                ],
                "text": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true,
                        "default": "photograph of photomaker"
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "photomaker",
                "image",
                "clip",
                "text"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "PhotoMakerEncode",
        "display_name": "PhotoMakerEncode",
        "description": "",
        "python_module": "comfy_extras.nodes_photomaker",
        "category": "_for_testing/photomaker",
        "output_node": false
    },
    "CLIPTextEncodePixArtAlpha": {
        "input": {
            "required": {
                "width": [
                    "INT",
                    {
                        "default": 1024.0,
                        "min": 0,
                        "max": 16384
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 1024.0,
                        "min": 0,
                        "max": 16384
                    }
                ],
                "text": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "clip": [
                    "CLIP"
                ]
            }
        },
        "input_order": {
            "required": [
                "width",
                "height",
                "text",
                "clip"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "CLIPTextEncodePixArtAlpha",
        "display_name": "CLIPTextEncodePixArtAlpha",
        "description": "Encodes text and sets the resolution conditioning for PixArt Alpha. Does not apply to PixArt Sigma.",
        "python_module": "comfy_extras.nodes_pixart",
        "category": "advanced/conditioning",
        "output_node": false
    },
    "CLIPTextEncodeControlnet": {
        "input": {
            "required": {
                "clip": [
                    "CLIP"
                ],
                "conditioning": [
                    "CONDITIONING"
                ],
                "text": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip",
                "conditioning",
                "text"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "CLIPTextEncodeControlnet",
        "display_name": "CLIPTextEncodeControlnet",
        "description": "",
        "python_module": "comfy_extras.nodes_cond",
        "category": "_for_testing/conditioning",
        "output_node": false
    },
    "T5TokenizerOptions": {
        "input": {
            "required": {
                "clip": [
                    "CLIP"
                ],
                "min_padding": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 10000,
                        "step": 1
                    }
                ],
                "min_length": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 10000,
                        "step": 1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip",
                "min_padding",
                "min_length"
            ]
        },
        "output": [
            "CLIP"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CLIP"
        ],
        "name": "T5TokenizerOptions",
        "display_name": "T5TokenizerOptions",
        "description": "",
        "python_module": "comfy_extras.nodes_cond",
        "category": "_for_testing/conditioning",
        "output_node": false
    },
    "Morphology": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "operation": [
                    [
                        "erode",
                        "dilate",
                        "open",
                        "close",
                        "gradient",
                        "bottom_hat",
                        "top_hat"
                    ]
                ],
                "kernel_size": [
                    "INT",
                    {
                        "default": 3,
                        "min": 3,
                        "max": 999,
                        "step": 1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "operation",
                "kernel_size"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "Morphology",
        "display_name": "ImageMorphology",
        "description": "",
        "python_module": "comfy_extras.nodes_morphology",
        "category": "image/postprocessing",
        "output_node": false
    },
    "ImageRGBToYUV": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "image"
            ]
        },
        "output": [
            "IMAGE",
            "IMAGE",
            "IMAGE"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "Y",
            "U",
            "V"
        ],
        "name": "ImageRGBToYUV",
        "display_name": "ImageRGBToYUV",
        "description": "",
        "python_module": "comfy_extras.nodes_morphology",
        "category": "image/batch",
        "output_node": false
    },
    "ImageYUVToRGB": {
        "input": {
            "required": {
                "Y": [
                    "IMAGE"
                ],
                "U": [
                    "IMAGE"
                ],
                "V": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "Y",
                "U",
                "V"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "ImageYUVToRGB",
        "display_name": "ImageYUVToRGB",
        "description": "",
        "python_module": "comfy_extras.nodes_morphology",
        "category": "image/batch",
        "output_node": false
    },
    "StableCascade_EmptyLatentImage": {
        "input": {
            "required": {
                "width": [
                    "INT",
                    {
                        "default": 1024,
                        "min": 256,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 1024,
                        "min": 256,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "compression": [
                    "INT",
                    {
                        "default": 42,
                        "min": 4,
                        "max": 128,
                        "step": 1
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "width",
                "height",
                "compression",
                "batch_size"
            ]
        },
        "output": [
            "LATENT",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "stage_c",
            "stage_b"
        ],
        "name": "StableCascade_EmptyLatentImage",
        "display_name": "StableCascade_EmptyLatentImage",
        "description": "",
        "python_module": "comfy_extras.nodes_stable_cascade",
        "category": "latent/stable_cascade",
        "output_node": false
    },
    "StableCascade_StageB_Conditioning": {
        "input": {
            "required": {
                "conditioning": [
                    "CONDITIONING"
                ],
                "stage_c": [
                    "LATENT"
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning",
                "stage_c"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "StableCascade_StageB_Conditioning",
        "display_name": "StableCascade_StageB_Conditioning",
        "description": "",
        "python_module": "comfy_extras.nodes_stable_cascade",
        "category": "conditioning/stable_cascade",
        "output_node": false
    },
    "StableCascade_StageC_VAEEncode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "vae": [
                    "VAE"
                ],
                "compression": [
                    "INT",
                    {
                        "default": 42,
                        "min": 4,
                        "max": 128,
                        "step": 1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "vae",
                "compression"
            ]
        },
        "output": [
            "LATENT",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "stage_c",
            "stage_b"
        ],
        "name": "StableCascade_StageC_VAEEncode",
        "display_name": "StableCascade_StageC_VAEEncode",
        "description": "",
        "python_module": "comfy_extras.nodes_stable_cascade",
        "category": "latent/stable_cascade",
        "output_node": false
    },
    "StableCascade_SuperResolutionControlnet": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "vae": [
                    "VAE"
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "vae"
            ]
        },
        "output": [
            "IMAGE",
            "LATENT",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "controlnet_input",
            "stage_c",
            "stage_b"
        ],
        "name": "StableCascade_SuperResolutionControlnet",
        "display_name": "StableCascade_SuperResolutionControlnet",
        "description": "",
        "python_module": "comfy_extras.nodes_stable_cascade",
        "category": "_for_testing/stable_cascade",
        "output_node": false,
        "experimental": true
    },
    "DifferentialDiffusion": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ]
            }
        },
        "input_order": {
            "required": [
                "model"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "DifferentialDiffusion",
        "display_name": "Differential Diffusion",
        "description": "",
        "python_module": "comfy_extras.nodes_differential_diffusion",
        "category": "_for_testing",
        "output_node": false
    },
    "InstructPixToPixConditioning": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "vae": [
                    "VAE"
                ],
                "pixels": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "vae",
                "pixels"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "InstructPixToPixConditioning",
        "display_name": "InstructPixToPixConditioning",
        "description": "",
        "python_module": "comfy_extras.nodes_ip2p",
        "category": "conditioning/instructpix2pix",
        "output_node": false
    },
    "ModelMergeSD1": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "time_embed.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "label_emb.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "middle_block.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "middle_block.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "middle_block.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "out.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "time_embed.",
                "label_emb.",
                "input_blocks.0.",
                "input_blocks.1.",
                "input_blocks.2.",
                "input_blocks.3.",
                "input_blocks.4.",
                "input_blocks.5.",
                "input_blocks.6.",
                "input_blocks.7.",
                "input_blocks.8.",
                "input_blocks.9.",
                "input_blocks.10.",
                "input_blocks.11.",
                "middle_block.0.",
                "middle_block.1.",
                "middle_block.2.",
                "output_blocks.0.",
                "output_blocks.1.",
                "output_blocks.2.",
                "output_blocks.3.",
                "output_blocks.4.",
                "output_blocks.5.",
                "output_blocks.6.",
                "output_blocks.7.",
                "output_blocks.8.",
                "output_blocks.9.",
                "output_blocks.10.",
                "output_blocks.11.",
                "out."
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeSD1",
        "display_name": "ModelMergeSD1",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging_model_specific",
        "category": "advanced/model_merging/model_specific",
        "output_node": false
    },
    "ModelMergeSD2": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "time_embed.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "label_emb.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "middle_block.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "middle_block.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "middle_block.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "out.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "time_embed.",
                "label_emb.",
                "input_blocks.0.",
                "input_blocks.1.",
                "input_blocks.2.",
                "input_blocks.3.",
                "input_blocks.4.",
                "input_blocks.5.",
                "input_blocks.6.",
                "input_blocks.7.",
                "input_blocks.8.",
                "input_blocks.9.",
                "input_blocks.10.",
                "input_blocks.11.",
                "middle_block.0.",
                "middle_block.1.",
                "middle_block.2.",
                "output_blocks.0.",
                "output_blocks.1.",
                "output_blocks.2.",
                "output_blocks.3.",
                "output_blocks.4.",
                "output_blocks.5.",
                "output_blocks.6.",
                "output_blocks.7.",
                "output_blocks.8.",
                "output_blocks.9.",
                "output_blocks.10.",
                "output_blocks.11.",
                "out."
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeSD2",
        "display_name": "ModelMergeSD2",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging_model_specific",
        "category": "advanced/model_merging/model_specific",
        "output_node": false
    },
    "ModelMergeSDXL": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "time_embed.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "label_emb.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.0": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.1": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.2": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.3": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.4": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.5": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.6": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.7": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "input_blocks.8": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "middle_block.0": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "middle_block.1": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "middle_block.2": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.0": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.1": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.2": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.3": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.4": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.5": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.6": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.7": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "output_blocks.8": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "out.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "time_embed.",
                "label_emb.",
                "input_blocks.0",
                "input_blocks.1",
                "input_blocks.2",
                "input_blocks.3",
                "input_blocks.4",
                "input_blocks.5",
                "input_blocks.6",
                "input_blocks.7",
                "input_blocks.8",
                "middle_block.0",
                "middle_block.1",
                "middle_block.2",
                "output_blocks.0",
                "output_blocks.1",
                "output_blocks.2",
                "output_blocks.3",
                "output_blocks.4",
                "output_blocks.5",
                "output_blocks.6",
                "output_blocks.7",
                "output_blocks.8",
                "out."
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeSDXL",
        "display_name": "ModelMergeSDXL",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging_model_specific",
        "category": "advanced/model_merging/model_specific",
        "output_node": false
    },
    "ModelMergeSD3_2B": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "pos_embed.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "x_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "context_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "y_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "t_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.12.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.13.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.14.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.15.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.16.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.17.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.18.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.19.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.20.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.21.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.22.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.23.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "final_layer.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "pos_embed.",
                "x_embedder.",
                "context_embedder.",
                "y_embedder.",
                "t_embedder.",
                "joint_blocks.0.",
                "joint_blocks.1.",
                "joint_blocks.2.",
                "joint_blocks.3.",
                "joint_blocks.4.",
                "joint_blocks.5.",
                "joint_blocks.6.",
                "joint_blocks.7.",
                "joint_blocks.8.",
                "joint_blocks.9.",
                "joint_blocks.10.",
                "joint_blocks.11.",
                "joint_blocks.12.",
                "joint_blocks.13.",
                "joint_blocks.14.",
                "joint_blocks.15.",
                "joint_blocks.16.",
                "joint_blocks.17.",
                "joint_blocks.18.",
                "joint_blocks.19.",
                "joint_blocks.20.",
                "joint_blocks.21.",
                "joint_blocks.22.",
                "joint_blocks.23.",
                "final_layer."
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeSD3_2B",
        "display_name": "ModelMergeSD3_2B",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging_model_specific",
        "category": "advanced/model_merging/model_specific",
        "output_node": false
    },
    "ModelMergeAuraflow": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "init_x_linear.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "positional_encoding": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "cond_seq_linear.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "register_tokens": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "t_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_layers.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_layers.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_layers.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_layers.3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.12.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.13.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.14.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.15.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.16.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.17.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.18.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.19.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.20.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.21.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.22.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.23.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.24.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.25.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.26.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.27.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.28.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.29.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.30.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_layers.31.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "modF.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "final_linear.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "init_x_linear.",
                "positional_encoding",
                "cond_seq_linear.",
                "register_tokens",
                "t_embedder.",
                "double_layers.0.",
                "double_layers.1.",
                "double_layers.2.",
                "double_layers.3.",
                "single_layers.0.",
                "single_layers.1.",
                "single_layers.2.",
                "single_layers.3.",
                "single_layers.4.",
                "single_layers.5.",
                "single_layers.6.",
                "single_layers.7.",
                "single_layers.8.",
                "single_layers.9.",
                "single_layers.10.",
                "single_layers.11.",
                "single_layers.12.",
                "single_layers.13.",
                "single_layers.14.",
                "single_layers.15.",
                "single_layers.16.",
                "single_layers.17.",
                "single_layers.18.",
                "single_layers.19.",
                "single_layers.20.",
                "single_layers.21.",
                "single_layers.22.",
                "single_layers.23.",
                "single_layers.24.",
                "single_layers.25.",
                "single_layers.26.",
                "single_layers.27.",
                "single_layers.28.",
                "single_layers.29.",
                "single_layers.30.",
                "single_layers.31.",
                "modF.",
                "final_linear."
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeAuraflow",
        "display_name": "ModelMergeAuraflow",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging_model_specific",
        "category": "advanced/model_merging/model_specific",
        "output_node": false
    },
    "ModelMergeFlux1": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "img_in.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "time_in.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "guidance_in": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "vector_in.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "txt_in.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.12.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.13.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.14.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.15.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.16.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.17.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "double_blocks.18.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.12.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.13.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.14.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.15.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.16.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.17.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.18.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.19.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.20.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.21.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.22.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.23.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.24.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.25.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.26.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.27.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.28.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.29.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.30.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.31.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.32.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.33.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.34.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.35.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.36.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "single_blocks.37.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "final_layer.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "img_in.",
                "time_in.",
                "guidance_in",
                "vector_in.",
                "txt_in.",
                "double_blocks.0.",
                "double_blocks.1.",
                "double_blocks.2.",
                "double_blocks.3.",
                "double_blocks.4.",
                "double_blocks.5.",
                "double_blocks.6.",
                "double_blocks.7.",
                "double_blocks.8.",
                "double_blocks.9.",
                "double_blocks.10.",
                "double_blocks.11.",
                "double_blocks.12.",
                "double_blocks.13.",
                "double_blocks.14.",
                "double_blocks.15.",
                "double_blocks.16.",
                "double_blocks.17.",
                "double_blocks.18.",
                "single_blocks.0.",
                "single_blocks.1.",
                "single_blocks.2.",
                "single_blocks.3.",
                "single_blocks.4.",
                "single_blocks.5.",
                "single_blocks.6.",
                "single_blocks.7.",
                "single_blocks.8.",
                "single_blocks.9.",
                "single_blocks.10.",
                "single_blocks.11.",
                "single_blocks.12.",
                "single_blocks.13.",
                "single_blocks.14.",
                "single_blocks.15.",
                "single_blocks.16.",
                "single_blocks.17.",
                "single_blocks.18.",
                "single_blocks.19.",
                "single_blocks.20.",
                "single_blocks.21.",
                "single_blocks.22.",
                "single_blocks.23.",
                "single_blocks.24.",
                "single_blocks.25.",
                "single_blocks.26.",
                "single_blocks.27.",
                "single_blocks.28.",
                "single_blocks.29.",
                "single_blocks.30.",
                "single_blocks.31.",
                "single_blocks.32.",
                "single_blocks.33.",
                "single_blocks.34.",
                "single_blocks.35.",
                "single_blocks.36.",
                "single_blocks.37.",
                "final_layer."
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeFlux1",
        "display_name": "ModelMergeFlux1",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging_model_specific",
        "category": "advanced/model_merging/model_specific",
        "output_node": false
    },
    "ModelMergeSD35_Large": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "pos_embed.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "x_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "context_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "y_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "t_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.12.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.13.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.14.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.15.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.16.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.17.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.18.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.19.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.20.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.21.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.22.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.23.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.24.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.25.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.26.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.27.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.28.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.29.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.30.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.31.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.32.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.33.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.34.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.35.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.36.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "joint_blocks.37.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "final_layer.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "pos_embed.",
                "x_embedder.",
                "context_embedder.",
                "y_embedder.",
                "t_embedder.",
                "joint_blocks.0.",
                "joint_blocks.1.",
                "joint_blocks.2.",
                "joint_blocks.3.",
                "joint_blocks.4.",
                "joint_blocks.5.",
                "joint_blocks.6.",
                "joint_blocks.7.",
                "joint_blocks.8.",
                "joint_blocks.9.",
                "joint_blocks.10.",
                "joint_blocks.11.",
                "joint_blocks.12.",
                "joint_blocks.13.",
                "joint_blocks.14.",
                "joint_blocks.15.",
                "joint_blocks.16.",
                "joint_blocks.17.",
                "joint_blocks.18.",
                "joint_blocks.19.",
                "joint_blocks.20.",
                "joint_blocks.21.",
                "joint_blocks.22.",
                "joint_blocks.23.",
                "joint_blocks.24.",
                "joint_blocks.25.",
                "joint_blocks.26.",
                "joint_blocks.27.",
                "joint_blocks.28.",
                "joint_blocks.29.",
                "joint_blocks.30.",
                "joint_blocks.31.",
                "joint_blocks.32.",
                "joint_blocks.33.",
                "joint_blocks.34.",
                "joint_blocks.35.",
                "joint_blocks.36.",
                "joint_blocks.37.",
                "final_layer."
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeSD35_Large",
        "display_name": "ModelMergeSD35_Large",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging_model_specific",
        "category": "advanced/model_merging/model_specific",
        "output_node": false
    },
    "ModelMergeMochiPreview": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "pos_frequencies.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "t_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "t5_y_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "t5_yproj.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.12.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.13.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.14.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.15.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.16.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.17.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.18.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.19.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.20.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.21.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.22.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.23.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.24.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.25.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.26.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.27.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.28.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.29.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.30.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.31.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.32.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.33.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.34.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.35.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.36.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.37.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.38.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.39.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.40.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.41.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.42.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.43.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.44.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.45.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.46.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.47.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "final_layer.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "pos_frequencies.",
                "t_embedder.",
                "t5_y_embedder.",
                "t5_yproj.",
                "blocks.0.",
                "blocks.1.",
                "blocks.2.",
                "blocks.3.",
                "blocks.4.",
                "blocks.5.",
                "blocks.6.",
                "blocks.7.",
                "blocks.8.",
                "blocks.9.",
                "blocks.10.",
                "blocks.11.",
                "blocks.12.",
                "blocks.13.",
                "blocks.14.",
                "blocks.15.",
                "blocks.16.",
                "blocks.17.",
                "blocks.18.",
                "blocks.19.",
                "blocks.20.",
                "blocks.21.",
                "blocks.22.",
                "blocks.23.",
                "blocks.24.",
                "blocks.25.",
                "blocks.26.",
                "blocks.27.",
                "blocks.28.",
                "blocks.29.",
                "blocks.30.",
                "blocks.31.",
                "blocks.32.",
                "blocks.33.",
                "blocks.34.",
                "blocks.35.",
                "blocks.36.",
                "blocks.37.",
                "blocks.38.",
                "blocks.39.",
                "blocks.40.",
                "blocks.41.",
                "blocks.42.",
                "blocks.43.",
                "blocks.44.",
                "blocks.45.",
                "blocks.46.",
                "blocks.47.",
                "final_layer."
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeMochiPreview",
        "display_name": "ModelMergeMochiPreview",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging_model_specific",
        "category": "advanced/model_merging/model_specific",
        "output_node": false
    },
    "ModelMergeLTXV": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "patchify_proj.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "adaln_single.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "caption_projection.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.12.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.13.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.14.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.15.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.16.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.17.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.18.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.19.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.20.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.21.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.22.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.23.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.24.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.25.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.26.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "transformer_blocks.27.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "scale_shift_table": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "proj_out.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "patchify_proj.",
                "adaln_single.",
                "caption_projection.",
                "transformer_blocks.0.",
                "transformer_blocks.1.",
                "transformer_blocks.2.",
                "transformer_blocks.3.",
                "transformer_blocks.4.",
                "transformer_blocks.5.",
                "transformer_blocks.6.",
                "transformer_blocks.7.",
                "transformer_blocks.8.",
                "transformer_blocks.9.",
                "transformer_blocks.10.",
                "transformer_blocks.11.",
                "transformer_blocks.12.",
                "transformer_blocks.13.",
                "transformer_blocks.14.",
                "transformer_blocks.15.",
                "transformer_blocks.16.",
                "transformer_blocks.17.",
                "transformer_blocks.18.",
                "transformer_blocks.19.",
                "transformer_blocks.20.",
                "transformer_blocks.21.",
                "transformer_blocks.22.",
                "transformer_blocks.23.",
                "transformer_blocks.24.",
                "transformer_blocks.25.",
                "transformer_blocks.26.",
                "transformer_blocks.27.",
                "scale_shift_table",
                "proj_out."
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeLTXV",
        "display_name": "ModelMergeLTXV",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging_model_specific",
        "category": "advanced/model_merging/model_specific",
        "output_node": false
    },
    "ModelMergeCosmos7B": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "pos_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "extra_pos_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "x_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "t_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "affline_norm.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block12.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block13.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block14.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block15.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block16.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block17.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block18.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block19.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block20.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block21.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block22.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block23.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block24.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block25.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block26.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block27.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "final_layer.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "pos_embedder.",
                "extra_pos_embedder.",
                "x_embedder.",
                "t_embedder.",
                "affline_norm.",
                "blocks.block0.",
                "blocks.block1.",
                "blocks.block2.",
                "blocks.block3.",
                "blocks.block4.",
                "blocks.block5.",
                "blocks.block6.",
                "blocks.block7.",
                "blocks.block8.",
                "blocks.block9.",
                "blocks.block10.",
                "blocks.block11.",
                "blocks.block12.",
                "blocks.block13.",
                "blocks.block14.",
                "blocks.block15.",
                "blocks.block16.",
                "blocks.block17.",
                "blocks.block18.",
                "blocks.block19.",
                "blocks.block20.",
                "blocks.block21.",
                "blocks.block22.",
                "blocks.block23.",
                "blocks.block24.",
                "blocks.block25.",
                "blocks.block26.",
                "blocks.block27.",
                "final_layer."
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeCosmos7B",
        "display_name": "ModelMergeCosmos7B",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging_model_specific",
        "category": "advanced/model_merging/model_specific",
        "output_node": false
    },
    "ModelMergeCosmos14B": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "pos_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "extra_pos_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "x_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "t_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "affline_norm.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block12.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block13.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block14.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block15.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block16.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block17.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block18.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block19.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block20.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block21.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block22.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block23.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block24.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block25.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block26.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block27.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block28.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block29.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block30.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block31.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block32.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block33.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block34.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.block35.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "final_layer.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "pos_embedder.",
                "extra_pos_embedder.",
                "x_embedder.",
                "t_embedder.",
                "affline_norm.",
                "blocks.block0.",
                "blocks.block1.",
                "blocks.block2.",
                "blocks.block3.",
                "blocks.block4.",
                "blocks.block5.",
                "blocks.block6.",
                "blocks.block7.",
                "blocks.block8.",
                "blocks.block9.",
                "blocks.block10.",
                "blocks.block11.",
                "blocks.block12.",
                "blocks.block13.",
                "blocks.block14.",
                "blocks.block15.",
                "blocks.block16.",
                "blocks.block17.",
                "blocks.block18.",
                "blocks.block19.",
                "blocks.block20.",
                "blocks.block21.",
                "blocks.block22.",
                "blocks.block23.",
                "blocks.block24.",
                "blocks.block25.",
                "blocks.block26.",
                "blocks.block27.",
                "blocks.block28.",
                "blocks.block29.",
                "blocks.block30.",
                "blocks.block31.",
                "blocks.block32.",
                "blocks.block33.",
                "blocks.block34.",
                "blocks.block35.",
                "final_layer."
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeCosmos14B",
        "display_name": "ModelMergeCosmos14B",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging_model_specific",
        "category": "advanced/model_merging/model_specific",
        "output_node": false
    },
    "ModelMergeWAN2_1": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "patch_embedding.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "time_embedding.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "time_projection.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "text_embedding.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "img_emb.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.12.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.13.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.14.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.15.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.16.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.17.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.18.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.19.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.20.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.21.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.22.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.23.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.24.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.25.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.26.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.27.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.28.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.29.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.30.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.31.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.32.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.33.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.34.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.35.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.36.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.37.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.38.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.39.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "head.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "patch_embedding.",
                "time_embedding.",
                "time_projection.",
                "text_embedding.",
                "img_emb.",
                "blocks.0.",
                "blocks.1.",
                "blocks.2.",
                "blocks.3.",
                "blocks.4.",
                "blocks.5.",
                "blocks.6.",
                "blocks.7.",
                "blocks.8.",
                "blocks.9.",
                "blocks.10.",
                "blocks.11.",
                "blocks.12.",
                "blocks.13.",
                "blocks.14.",
                "blocks.15.",
                "blocks.16.",
                "blocks.17.",
                "blocks.18.",
                "blocks.19.",
                "blocks.20.",
                "blocks.21.",
                "blocks.22.",
                "blocks.23.",
                "blocks.24.",
                "blocks.25.",
                "blocks.26.",
                "blocks.27.",
                "blocks.28.",
                "blocks.29.",
                "blocks.30.",
                "blocks.31.",
                "blocks.32.",
                "blocks.33.",
                "blocks.34.",
                "blocks.35.",
                "blocks.36.",
                "blocks.37.",
                "blocks.38.",
                "blocks.39.",
                "head."
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeWAN2_1",
        "display_name": "ModelMergeWAN2_1",
        "description": "1.3B model has 30 blocks, 14B model has 40 blocks. Image to video model has the extra img_emb.",
        "python_module": "comfy_extras.nodes_model_merging_model_specific",
        "category": "advanced/model_merging/model_specific",
        "output_node": false
    },
    "ModelMergeCosmosPredict2_2B": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "pos_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "x_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "t_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "t_embedding_norm.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.12.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.13.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.14.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.15.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.16.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.17.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.18.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.19.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.20.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.21.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.22.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.23.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.24.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.25.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.26.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.27.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "final_layer.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "pos_embedder.",
                "x_embedder.",
                "t_embedder.",
                "t_embedding_norm.",
                "blocks.0.",
                "blocks.1.",
                "blocks.2.",
                "blocks.3.",
                "blocks.4.",
                "blocks.5.",
                "blocks.6.",
                "blocks.7.",
                "blocks.8.",
                "blocks.9.",
                "blocks.10.",
                "blocks.11.",
                "blocks.12.",
                "blocks.13.",
                "blocks.14.",
                "blocks.15.",
                "blocks.16.",
                "blocks.17.",
                "blocks.18.",
                "blocks.19.",
                "blocks.20.",
                "blocks.21.",
                "blocks.22.",
                "blocks.23.",
                "blocks.24.",
                "blocks.25.",
                "blocks.26.",
                "blocks.27.",
                "final_layer."
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeCosmosPredict2_2B",
        "display_name": "ModelMergeCosmosPredict2_2B",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging_model_specific",
        "category": "advanced/model_merging/model_specific",
        "output_node": false
    },
    "ModelMergeCosmosPredict2_14B": {
        "input": {
            "required": {
                "model1": [
                    "MODEL"
                ],
                "model2": [
                    "MODEL"
                ],
                "pos_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "x_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "t_embedder.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "t_embedding_norm.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.0.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.1.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.2.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.3.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.4.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.5.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.6.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.7.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.8.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.9.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.10.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.11.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.12.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.13.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.14.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.15.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.16.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.17.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.18.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.19.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.20.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.21.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.22.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.23.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.24.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.25.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.26.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.27.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.28.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.29.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.30.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.31.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.32.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.33.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.34.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "blocks.35.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ],
                "final_layer.": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model1",
                "model2",
                "pos_embedder.",
                "x_embedder.",
                "t_embedder.",
                "t_embedding_norm.",
                "blocks.0.",
                "blocks.1.",
                "blocks.2.",
                "blocks.3.",
                "blocks.4.",
                "blocks.5.",
                "blocks.6.",
                "blocks.7.",
                "blocks.8.",
                "blocks.9.",
                "blocks.10.",
                "blocks.11.",
                "blocks.12.",
                "blocks.13.",
                "blocks.14.",
                "blocks.15.",
                "blocks.16.",
                "blocks.17.",
                "blocks.18.",
                "blocks.19.",
                "blocks.20.",
                "blocks.21.",
                "blocks.22.",
                "blocks.23.",
                "blocks.24.",
                "blocks.25.",
                "blocks.26.",
                "blocks.27.",
                "blocks.28.",
                "blocks.29.",
                "blocks.30.",
                "blocks.31.",
                "blocks.32.",
                "blocks.33.",
                "blocks.34.",
                "blocks.35.",
                "final_layer."
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelMergeCosmosPredict2_14B",
        "display_name": "ModelMergeCosmosPredict2_14B",
        "description": "",
        "python_module": "comfy_extras.nodes_model_merging_model_specific",
        "category": "advanced/model_merging/model_specific",
        "output_node": false
    },
    "PerturbedAttentionGuidance": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "scale": [
                    "FLOAT",
                    {
                        "default": 3.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01,
                        "round": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "scale"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "PerturbedAttentionGuidance",
        "display_name": "PerturbedAttentionGuidance",
        "description": "",
        "python_module": "comfy_extras.nodes_pag",
        "category": "model_patches/unet",
        "output_node": false
    },
    "AlignYourStepsScheduler": {
        "input": {
            "required": {
                "model_type": [
                    [
                        "SD1",
                        "SDXL",
                        "SVD"
                    ]
                ],
                "steps": [
                    "INT",
                    {
                        "default": 10,
                        "min": 1,
                        "max": 10000
                    }
                ],
                "denoise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model_type",
                "steps",
                "denoise"
            ]
        },
        "output": [
            "SIGMAS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SIGMAS"
        ],
        "name": "AlignYourStepsScheduler",
        "display_name": "AlignYourStepsScheduler",
        "description": "",
        "python_module": "comfy_extras.nodes_align_your_steps",
        "category": "sampling/custom_sampling/schedulers",
        "output_node": false
    },
    "UNetSelfAttentionMultiply": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "q": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "k": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "v": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "out": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "q",
                "k",
                "v",
                "out"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "UNetSelfAttentionMultiply",
        "display_name": "UNetSelfAttentionMultiply",
        "description": "",
        "python_module": "comfy_extras.nodes_attention_multiply",
        "category": "_for_testing/attention_experiments",
        "output_node": false
    },
    "UNetCrossAttentionMultiply": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "q": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "k": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "v": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "out": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "q",
                "k",
                "v",
                "out"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "UNetCrossAttentionMultiply",
        "display_name": "UNetCrossAttentionMultiply",
        "description": "",
        "python_module": "comfy_extras.nodes_attention_multiply",
        "category": "_for_testing/attention_experiments",
        "output_node": false
    },
    "CLIPAttentionMultiply": {
        "input": {
            "required": {
                "clip": [
                    "CLIP"
                ],
                "q": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "k": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "v": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "out": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip",
                "q",
                "k",
                "v",
                "out"
            ]
        },
        "output": [
            "CLIP"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CLIP"
        ],
        "name": "CLIPAttentionMultiply",
        "display_name": "CLIPAttentionMultiply",
        "description": "",
        "python_module": "comfy_extras.nodes_attention_multiply",
        "category": "_for_testing/attention_experiments",
        "output_node": false
    },
    "UNetTemporalAttentionMultiply": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "self_structural": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "self_temporal": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "cross_structural": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "cross_temporal": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "self_structural",
                "self_temporal",
                "cross_structural",
                "cross_temporal"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "UNetTemporalAttentionMultiply",
        "display_name": "UNetTemporalAttentionMultiply",
        "description": "",
        "python_module": "comfy_extras.nodes_attention_multiply",
        "category": "_for_testing/attention_experiments",
        "output_node": false
    },
    "SamplerLCMUpscale": {
        "input": {
            "required": {
                "scale_ratio": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.1,
                        "max": 20.0,
                        "step": 0.01
                    }
                ],
                "scale_steps": [
                    "INT",
                    {
                        "default": -1,
                        "min": -1,
                        "max": 1000,
                        "step": 1
                    }
                ],
                "upscale_method": [
                    [
                        "bislerp",
                        "nearest-exact",
                        "bilinear",
                        "area",
                        "bicubic"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "scale_ratio",
                "scale_steps",
                "upscale_method"
            ]
        },
        "output": [
            "SAMPLER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SAMPLER"
        ],
        "name": "SamplerLCMUpscale",
        "display_name": "SamplerLCMUpscale",
        "description": "",
        "python_module": "comfy_extras.nodes_advanced_samplers",
        "category": "sampling/custom_sampling/samplers",
        "output_node": false
    },
    "SamplerEulerCFGpp": {
        "input": {
            "required": {
                "version": [
                    [
                        "regular",
                        "alternative"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "version"
            ]
        },
        "output": [
            "SAMPLER"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SAMPLER"
        ],
        "name": "SamplerEulerCFGpp",
        "display_name": "SamplerEulerCFG++",
        "description": "",
        "python_module": "comfy_extras.nodes_advanced_samplers",
        "category": "_for_testing",
        "output_node": false
    },
    "WebcamCapture": {
        "input": {
            "required": {
                "image": [
                    "WEBCAM",
                    {}
                ],
                "width": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 16384,
                        "step": 1
                    }
                ],
                "capture_on_queue": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "width",
                "height",
                "capture_on_queue"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "WebcamCapture",
        "display_name": "Webcam Capture",
        "description": "",
        "python_module": "comfy_extras.nodes_webcam",
        "category": "image",
        "output_node": false
    },
    "EmptyLatentAudio": {
        "input": {
            "required": {
                "seconds": [
                    "FLOAT",
                    {
                        "default": 47.6,
                        "min": 1.0,
                        "max": 1000.0,
                        "step": 0.1
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096,
                        "tooltip": "The number of latent images in the batch."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "seconds",
                "batch_size"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "EmptyLatentAudio",
        "display_name": "Empty Latent Audio",
        "description": "",
        "python_module": "comfy_extras.nodes_audio",
        "category": "latent/audio",
        "output_node": false
    },
    "VAEEncodeAudio": {
        "input": {
            "required": {
                "audio": [
                    "AUDIO"
                ],
                "vae": [
                    "VAE"
                ]
            }
        },
        "input_order": {
            "required": [
                "audio",
                "vae"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "VAEEncodeAudio",
        "display_name": "VAE Encode Audio",
        "description": "",
        "python_module": "comfy_extras.nodes_audio",
        "category": "latent/audio",
        "output_node": false
    },
    "VAEDecodeAudio": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "vae": [
                    "VAE"
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "vae"
            ]
        },
        "output": [
            "AUDIO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "AUDIO"
        ],
        "name": "VAEDecodeAudio",
        "display_name": "VAE Decode Audio",
        "description": "",
        "python_module": "comfy_extras.nodes_audio",
        "category": "latent/audio",
        "output_node": false
    },
    "SaveAudio": {
        "input": {
            "required": {
                "audio": [
                    "AUDIO"
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "audio/ComfyUI"
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "audio",
                "filename_prefix"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "SaveAudio",
        "display_name": "Save Audio (FLAC)",
        "description": "",
        "python_module": "comfy_extras.nodes_audio",
        "category": "audio",
        "output_node": true
    },
    "SaveAudioMP3": {
        "input": {
            "required": {
                "audio": [
                    "AUDIO"
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "audio/ComfyUI"
                    }
                ],
                "quality": [
                    [
                        "V0",
                        "128k",
                        "320k"
                    ],
                    {
                        "default": "V0"
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "audio",
                "filename_prefix",
                "quality"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "SaveAudioMP3",
        "display_name": "Save Audio (MP3)",
        "description": "",
        "python_module": "comfy_extras.nodes_audio",
        "category": "audio",
        "output_node": true
    },
    "SaveAudioOpus": {
        "input": {
            "required": {
                "audio": [
                    "AUDIO"
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "audio/ComfyUI"
                    }
                ],
                "quality": [
                    [
                        "64k",
                        "96k",
                        "128k",
                        "192k",
                        "320k"
                    ],
                    {
                        "default": "128k"
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "audio",
                "filename_prefix",
                "quality"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "SaveAudioOpus",
        "display_name": "Save Audio (Opus)",
        "description": "",
        "python_module": "comfy_extras.nodes_audio",
        "category": "audio",
        "output_node": true
    },
    "LoadAudio": {
        "input": {
            "required": {
                "audio": [
                    [
                        "0000.mp4",
                        "02001_1 (1).mp4",
                        "02001_1.mp4",
                        "03017_1.mp4",
                        "03024 (1).mp4",
                        "03024.mp4",
                        "07003 (1).mp4",
                        "07003 (2).mp4",
                        "07003.mp4",
                        "09047.mp4",
                        "1 (2).wav",
                        "1001_input.mp4",
                        "1021_input-2s.mp4",
                        "1021_input.mp4",
                        "1021_input_5s.mp4",
                        "10_2s.mp4",
                        "11006.mp4",
                        "11008 (2).mp4",
                        "11008.mp4",
                        "11008_1.mp4",
                        "11008_1_1 (1).mp4",
                        "11008_1_1.mp4",
                        "1101_H.264.mp4",
                        "1102_H.264.mp4",
                        "1103_H.264.mp4",
                        "1104.mp4",
                        "1105.mp4",
                        "1106.mp4",
                        "1107.mp4",
                        "11_2s.mp4",
                        "1boy-1-1080.mp4",
                        "1boy-2.mp4",
                        "202403221843 (2).mp4",
                        "202403221843 (4).mp4",
                        "202404042125.mp4",
                        "202404042216 (1) (1).mp4",
                        "202404042216 (1).mp4",
                        "202404042216.mp4",
                        "202404191453.mp4",
                        "202404191810 (1) (1).mp4",
                        "202404191810 (1).mp4",
                        "202404191810 (3).mp4",
                        "202404191810 (4).mp4",
                        "202404251935.mp4",
                        "202404252058 (1).mp4",
                        "202404252058.mp4",
                        "202405091509 (1).mp4",
                        "202405091509.mp4",
                        "202407092009 (4).mp4",
                        "202407262309.mp4",
                        "202409031945 (2).mp4",
                        "202409131521 (1).mp4",
                        "202409131521 (2).mp4",
                        "202409131521.mp4",
                        "202409152236.mp4",
                        "202411202208.mp4",
                        "202412132035.mp4",
                        "202412141045 (1).mp4",
                        "202412141045 (2).mp4",
                        "202412141045.mp4",
                        "202502102056.mp4",
                        "25328-349634257_medium.mp4",
                        "2s.mp4",
                        "2\u670824\u65e5(4).mp4",
                        "308927219-33621520-a429-4155-aa3a-ac5cd15bda56.mp4",
                        "3139866-hd_720_1280_30fps.mp4",
                        "4380323-hd_1080_1920_30fps.mp4",
                        "4990346-hd_1080_1920_30fps.mp4",
                        "5.wav",
                        "71834-540475381_medium.mp4",
                        "7326816-hd_1080_1920_24fps.mp4",
                        "8116023-hd_1080_1920_25fps.mp4",
                        "BeachGirlVidSBS.mp4",
                        "Gen-3 Alpha Turbo 2850506560, A cinematic close do, Cropped - pexels-gon, M 5.mp4",
                        "InShot_20240913_013852769.mp4",
                        "LightMap_2.mp4",
                        "Nocturna_011_Chica_Caminando_02 (1).mp4",
                        "Professional_Mode_16x9_A_woman_in_a_red_raincoat_walks_ (1).mp4",
                        "RunComfy_examples_1080_video.mp4",
                        "RunComfy_examples_1081_video.mp4",
                        "RunComfy_examples_1082_video.mp4",
                        "RunComfy_examples_1093_video.mp4",
                        "RunComfy_examples_1124_1.mp4",
                        "RunComfy_examples_1128.mp4",
                        "RunComfy_examples_1133.mp4",
                        "RunComfy_examples_1134.mp4",
                        "RunComfy_examples_1157_2.wav",
                        "RunComfy_examples_1164_2.wav",
                        "RunComfy_examples_1172_2.mp3",
                        "RunComfy_examples_1178.mp4",
                        "Runcomfy_Example_1208_2.mp4",
                        "a.mp4",
                        "asset (9).mp4",
                        "audio_022255_temp.wav",
                        "audio_215785_temp.wav",
                        "audio_429127_temp.wav",
                        "audio_504171_temp.wav",
                        "audio_752628_temp.wav",
                        "audio_828125_temp.wav",
                        "audio_879071_temp.wav",
                        "audio_945ecf_temp.wav",
                        "audio_b9fd7e_temp.wav",
                        "audio_f44d32_temp.wav",
                        "black-white-video (1).mp4",
                        "black-white-video.mp4",
                        "canny.mp4",
                        "cut_two_1s.mp4",
                        "depth.mp4",
                        "mask.mp4",
                        "nature_4.mp4",
                        "original - 1.mp4",
                        "original - 2.mp4",
                        "production_id_4990425 (1080p).mp4",
                        "vecteezy_white-fluid-transitions-loop-animation_42106295 (1).mp4",
                        "vecteezy_white-fluid-transitions-loop-animation_42106295 (2).mp4",
                        "vecteezy_white-fluid-transitions-loop-animation_42106295.mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (6) (1).mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (6).mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (7).mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (8) (1).mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (8) (2).mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (8).mp4"
                    ],
                    {
                        "audio_upload": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "audio"
            ]
        },
        "output": [
            "AUDIO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "AUDIO"
        ],
        "name": "LoadAudio",
        "display_name": "Load Audio",
        "description": "",
        "python_module": "comfy_extras.nodes_audio",
        "category": "audio",
        "output_node": false
    },
    "PreviewAudio": {
        "input": {
            "required": {
                "audio": [
                    "AUDIO"
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "audio"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "PreviewAudio",
        "display_name": "Preview Audio",
        "description": "",
        "python_module": "comfy_extras.nodes_audio",
        "category": "audio",
        "output_node": true
    },
    "ConditioningStableAudio": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "seconds_start": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 1000.0,
                        "step": 0.1
                    }
                ],
                "seconds_total": [
                    "FLOAT",
                    {
                        "default": 47.0,
                        "min": 0.0,
                        "max": 1000.0,
                        "step": 0.1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "seconds_start",
                "seconds_total"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative"
        ],
        "name": "ConditioningStableAudio",
        "display_name": "ConditioningStableAudio",
        "description": "",
        "python_module": "comfy_extras.nodes_audio",
        "category": "conditioning",
        "output_node": false
    },
    "TripleCLIPLoader": {
        "input": {
            "required": {
                "clip_name1": [
                    [
                        "EVA02_CLIP_L_336_psz14_s6B.pt",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "ViT-L-14.pt",
                        "clip-vit-large-patch14/model.safetensors",
                        "clip_g_hidream.safetensors",
                        "clip_l.safetensors",
                        "clip_l_hidream.safetensors",
                        "google--siglip-so400m-patch14-384/model.safetensors",
                        "llama_3.1_8b_instruct_fp8_scaled.safetensors",
                        "llava_llama3_fp16.safetensors",
                        "llava_llama3_fp8_scaled.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "oldt5_xxl_fp16.safetensors",
                        "oldt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "open-clip-xlm-roberta-large-vit-huge-14_visual_fp16.safetensors",
                        "qwen_2.5_vl_7b.safetensors",
                        "qwen_2.5_vl_7b_fp8_scaled.safetensors",
                        "sa1/t5_base.safetensors",
                        "sc/model.safetensors",
                        "sd3m/clip_g.safetensors",
                        "sd3m/clip_l.safetensors",
                        "sd3m/t5xxl_fp16.safetensors",
                        "sd3m/t5xxl_fp8_e4m3fn.safetensors",
                        "siglip-so400m-patch14-384/model.safetensors",
                        "t5/google_t5-v1_1-xxl_encoderonly-fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp16.safetensors",
                        "t5/t5xxl_fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "t5xxl_fp16.safetensors",
                        "t5xxl_fp8_e4m3fn.safetensors",
                        "t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "text_encoder/model-00001-of-00002.safetensors",
                        "text_encoder/model-00002-of-00002.safetensors",
                        "umt5-xxl-enc-bf16.safetensors",
                        "umt5-xxl-enc-fp8_e4m3fn.safetensors",
                        "umt5_xxl_fp16.safetensors",
                        "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "wan2_1/umt5-xxl-enc-bf16.safetensors",
                        "wan2_1/umt5-xxl-enc-fp8_e4m3fn.safetensors"
                    ]
                ],
                "clip_name2": [
                    [
                        "EVA02_CLIP_L_336_psz14_s6B.pt",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "ViT-L-14.pt",
                        "clip-vit-large-patch14/model.safetensors",
                        "clip_g_hidream.safetensors",
                        "clip_l.safetensors",
                        "clip_l_hidream.safetensors",
                        "google--siglip-so400m-patch14-384/model.safetensors",
                        "llama_3.1_8b_instruct_fp8_scaled.safetensors",
                        "llava_llama3_fp16.safetensors",
                        "llava_llama3_fp8_scaled.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "oldt5_xxl_fp16.safetensors",
                        "oldt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "open-clip-xlm-roberta-large-vit-huge-14_visual_fp16.safetensors",
                        "qwen_2.5_vl_7b.safetensors",
                        "qwen_2.5_vl_7b_fp8_scaled.safetensors",
                        "sa1/t5_base.safetensors",
                        "sc/model.safetensors",
                        "sd3m/clip_g.safetensors",
                        "sd3m/clip_l.safetensors",
                        "sd3m/t5xxl_fp16.safetensors",
                        "sd3m/t5xxl_fp8_e4m3fn.safetensors",
                        "siglip-so400m-patch14-384/model.safetensors",
                        "t5/google_t5-v1_1-xxl_encoderonly-fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp16.safetensors",
                        "t5/t5xxl_fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "t5xxl_fp16.safetensors",
                        "t5xxl_fp8_e4m3fn.safetensors",
                        "t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "text_encoder/model-00001-of-00002.safetensors",
                        "text_encoder/model-00002-of-00002.safetensors",
                        "umt5-xxl-enc-bf16.safetensors",
                        "umt5-xxl-enc-fp8_e4m3fn.safetensors",
                        "umt5_xxl_fp16.safetensors",
                        "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "wan2_1/umt5-xxl-enc-bf16.safetensors",
                        "wan2_1/umt5-xxl-enc-fp8_e4m3fn.safetensors"
                    ]
                ],
                "clip_name3": [
                    [
                        "EVA02_CLIP_L_336_psz14_s6B.pt",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "ViT-L-14.pt",
                        "clip-vit-large-patch14/model.safetensors",
                        "clip_g_hidream.safetensors",
                        "clip_l.safetensors",
                        "clip_l_hidream.safetensors",
                        "google--siglip-so400m-patch14-384/model.safetensors",
                        "llama_3.1_8b_instruct_fp8_scaled.safetensors",
                        "llava_llama3_fp16.safetensors",
                        "llava_llama3_fp8_scaled.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "oldt5_xxl_fp16.safetensors",
                        "oldt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "open-clip-xlm-roberta-large-vit-huge-14_visual_fp16.safetensors",
                        "qwen_2.5_vl_7b.safetensors",
                        "qwen_2.5_vl_7b_fp8_scaled.safetensors",
                        "sa1/t5_base.safetensors",
                        "sc/model.safetensors",
                        "sd3m/clip_g.safetensors",
                        "sd3m/clip_l.safetensors",
                        "sd3m/t5xxl_fp16.safetensors",
                        "sd3m/t5xxl_fp8_e4m3fn.safetensors",
                        "siglip-so400m-patch14-384/model.safetensors",
                        "t5/google_t5-v1_1-xxl_encoderonly-fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp16.safetensors",
                        "t5/t5xxl_fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "t5xxl_fp16.safetensors",
                        "t5xxl_fp8_e4m3fn.safetensors",
                        "t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "text_encoder/model-00001-of-00002.safetensors",
                        "text_encoder/model-00002-of-00002.safetensors",
                        "umt5-xxl-enc-bf16.safetensors",
                        "umt5-xxl-enc-fp8_e4m3fn.safetensors",
                        "umt5_xxl_fp16.safetensors",
                        "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "wan2_1/umt5-xxl-enc-bf16.safetensors",
                        "wan2_1/umt5-xxl-enc-fp8_e4m3fn.safetensors"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "clip_name1",
                "clip_name2",
                "clip_name3"
            ]
        },
        "output": [
            "CLIP"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CLIP"
        ],
        "name": "TripleCLIPLoader",
        "display_name": "TripleCLIPLoader",
        "description": "[Recipes]\n\nsd3: clip-l, clip-g, t5",
        "python_module": "comfy_extras.nodes_sd3",
        "category": "advanced/loaders",
        "output_node": false
    },
    "EmptySD3LatentImage": {
        "input": {
            "required": {
                "width": [
                    "INT",
                    {
                        "default": 1024,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 1024,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "width",
                "height",
                "batch_size"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "EmptySD3LatentImage",
        "display_name": "EmptySD3LatentImage",
        "description": "",
        "python_module": "comfy_extras.nodes_sd3",
        "category": "latent/sd3",
        "output_node": false
    },
    "CLIPTextEncodeSD3": {
        "input": {
            "required": {
                "clip": [
                    "CLIP"
                ],
                "clip_l": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "clip_g": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "t5xxl": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "empty_padding": [
                    [
                        "none",
                        "empty_prompt"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "clip",
                "clip_l",
                "clip_g",
                "t5xxl",
                "empty_padding"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "CLIPTextEncodeSD3",
        "display_name": "CLIPTextEncodeSD3",
        "description": "",
        "python_module": "comfy_extras.nodes_sd3",
        "category": "advanced/conditioning",
        "output_node": false
    },
    "ControlNetApplySD3": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "control_net": [
                    "CONTROL_NET"
                ],
                "vae": [
                    "VAE"
                ],
                "image": [
                    "IMAGE"
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "start_percent": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "end_percent": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "control_net",
                "vae",
                "image",
                "strength",
                "start_percent",
                "end_percent"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative"
        ],
        "name": "ControlNetApplySD3",
        "display_name": "Apply Controlnet with VAE",
        "description": "",
        "python_module": "comfy_extras.nodes_sd3",
        "category": "conditioning/controlnet",
        "output_node": false,
        "deprecated": true
    },
    "SkipLayerGuidanceSD3": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "layers": [
                    "STRING",
                    {
                        "default": "7, 8, 9",
                        "multiline": false
                    }
                ],
                "scale": [
                    "FLOAT",
                    {
                        "default": 3.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.1
                    }
                ],
                "start_percent": [
                    "FLOAT",
                    {
                        "default": 0.01,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "end_percent": [
                    "FLOAT",
                    {
                        "default": 0.15,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "layers",
                "scale",
                "start_percent",
                "end_percent"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "SkipLayerGuidanceSD3",
        "display_name": "SkipLayerGuidanceSD3",
        "description": "Generic version of SkipLayerGuidance node that can be used on every DiT model.",
        "python_module": "comfy_extras.nodes_sd3",
        "category": "advanced/guidance",
        "output_node": false,
        "experimental": true
    },
    "GITSScheduler": {
        "input": {
            "required": {
                "coeff": [
                    "FLOAT",
                    {
                        "default": 1.2,
                        "min": 0.8,
                        "max": 1.5,
                        "step": 0.05
                    }
                ],
                "steps": [
                    "INT",
                    {
                        "default": 10,
                        "min": 2,
                        "max": 1000
                    }
                ],
                "denoise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "coeff",
                "steps",
                "denoise"
            ]
        },
        "output": [
            "SIGMAS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SIGMAS"
        ],
        "name": "GITSScheduler",
        "display_name": "GITSScheduler",
        "description": "",
        "python_module": "comfy_extras.nodes_gits",
        "category": "sampling/custom_sampling/schedulers",
        "output_node": false
    },
    "SetUnionControlNetType": {
        "input": {
            "required": {
                "control_net": [
                    "CONTROL_NET"
                ],
                "type": [
                    [
                        "auto",
                        "openpose",
                        "depth",
                        "hed/pidi/scribble/ted",
                        "canny/lineart/anime_lineart/mlsd",
                        "normal",
                        "segment",
                        "tile",
                        "repaint"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "control_net",
                "type"
            ]
        },
        "output": [
            "CONTROL_NET"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONTROL_NET"
        ],
        "name": "SetUnionControlNetType",
        "display_name": "SetUnionControlNetType",
        "description": "",
        "python_module": "comfy_extras.nodes_controlnet",
        "category": "conditioning/controlnet",
        "output_node": false
    },
    "ControlNetInpaintingAliMamaApply": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "control_net": [
                    "CONTROL_NET"
                ],
                "vae": [
                    "VAE"
                ],
                "image": [
                    "IMAGE"
                ],
                "mask": [
                    "MASK"
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "start_percent": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "end_percent": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "control_net",
                "vae",
                "image",
                "mask",
                "strength",
                "start_percent",
                "end_percent"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative"
        ],
        "name": "ControlNetInpaintingAliMamaApply",
        "display_name": "ControlNetInpaintingAliMamaApply",
        "description": "",
        "python_module": "comfy_extras.nodes_controlnet",
        "category": "conditioning/controlnet",
        "output_node": false
    },
    "CLIPTextEncodeHunyuanDiT": {
        "input": {
            "required": {
                "clip": [
                    "CLIP"
                ],
                "bert": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "mt5xl": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip",
                "bert",
                "mt5xl"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "CLIPTextEncodeHunyuanDiT",
        "display_name": "CLIPTextEncodeHunyuanDiT",
        "description": "",
        "python_module": "comfy_extras.nodes_hunyuan",
        "category": "advanced/conditioning",
        "output_node": false
    },
    "TextEncodeHunyuanVideo_ImageToVideo": {
        "input": {
            "required": {
                "clip": [
                    "CLIP"
                ],
                "clip_vision_output": [
                    "CLIP_VISION_OUTPUT"
                ],
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "image_interleave": [
                    "INT",
                    {
                        "default": 2,
                        "min": 1,
                        "max": 512,
                        "tooltip": "How much the image influences things vs the text prompt. Higher number means more influence from the text prompt."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip",
                "clip_vision_output",
                "prompt",
                "image_interleave"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "TextEncodeHunyuanVideo_ImageToVideo",
        "display_name": "TextEncodeHunyuanVideo_ImageToVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_hunyuan",
        "category": "advanced/conditioning",
        "output_node": false
    },
    "EmptyHunyuanLatentVideo": {
        "input": {
            "required": {
                "width": [
                    "INT",
                    {
                        "default": 848,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 480,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 25,
                        "min": 1,
                        "max": 16384,
                        "step": 4
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "width",
                "height",
                "length",
                "batch_size"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "EmptyHunyuanLatentVideo",
        "display_name": "EmptyHunyuanLatentVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_hunyuan",
        "category": "latent/video",
        "output_node": false
    },
    "HunyuanImageToVideo": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "vae": [
                    "VAE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 848,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 480,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 53,
                        "min": 1,
                        "max": 16384,
                        "step": 4
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ],
                "guidance_type": [
                    [
                        "v1 (concat)",
                        "v2 (replace)",
                        "custom"
                    ]
                ]
            },
            "optional": {
                "start_image": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "vae",
                "width",
                "height",
                "length",
                "batch_size",
                "guidance_type"
            ],
            "optional": [
                "start_image"
            ]
        },
        "output": [
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "positive",
            "latent"
        ],
        "name": "HunyuanImageToVideo",
        "display_name": "HunyuanImageToVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_hunyuan",
        "category": "conditioning/video_models",
        "output_node": false
    },
    "CLIPTextEncodeFlux": {
        "input": {
            "required": {
                "clip": [
                    "CLIP"
                ],
                "clip_l": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "t5xxl": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "guidance": [
                    "FLOAT",
                    {
                        "default": 3.5,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip",
                "clip_l",
                "t5xxl",
                "guidance"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "CLIPTextEncodeFlux",
        "display_name": "CLIPTextEncodeFlux",
        "description": "",
        "python_module": "comfy_extras.nodes_flux",
        "category": "advanced/conditioning/flux",
        "output_node": false
    },
    "FluxGuidance": {
        "input": {
            "required": {
                "conditioning": [
                    "CONDITIONING"
                ],
                "guidance": [
                    "FLOAT",
                    {
                        "default": 3.5,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning",
                "guidance"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "FluxGuidance",
        "display_name": "FluxGuidance",
        "description": "",
        "python_module": "comfy_extras.nodes_flux",
        "category": "advanced/conditioning/flux",
        "output_node": false
    },
    "FluxDisableGuidance": {
        "input": {
            "required": {
                "conditioning": [
                    "CONDITIONING"
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "FluxDisableGuidance",
        "display_name": "FluxDisableGuidance",
        "description": "This node completely disables the guidance embed on Flux and Flux like models",
        "python_module": "comfy_extras.nodes_flux",
        "category": "advanced/conditioning/flux",
        "output_node": false
    },
    "FluxKontextImageScale": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "image"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "FluxKontextImageScale",
        "display_name": "FluxKontextImageScale",
        "description": "This node resizes the image to one that is more optimal for flux kontext.",
        "python_module": "comfy_extras.nodes_flux",
        "category": "advanced/conditioning/flux",
        "output_node": false
    },
    "LoraSave": {
        "input": {
            "required": {
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "loras/ComfyUI_extracted_lora"
                    }
                ],
                "rank": [
                    "INT",
                    {
                        "default": 8,
                        "min": 1,
                        "max": 4096,
                        "step": 1
                    }
                ],
                "lora_type": [
                    [
                        "standard",
                        "full_diff"
                    ]
                ],
                "bias_diff": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ]
            },
            "optional": {
                "model_diff": [
                    "MODEL",
                    {
                        "tooltip": "The ModelSubtract output to be converted to a lora."
                    }
                ],
                "text_encoder_diff": [
                    "CLIP",
                    {
                        "tooltip": "The CLIPSubtract output to be converted to a lora."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "filename_prefix",
                "rank",
                "lora_type",
                "bias_diff"
            ],
            "optional": [
                "model_diff",
                "text_encoder_diff"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "LoraSave",
        "display_name": "Extract and Save Lora",
        "description": "",
        "python_module": "comfy_extras.nodes_lora_extract",
        "category": "_for_testing",
        "output_node": true
    },
    "TorchCompileModel": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "backend": [
                    [
                        "inductor",
                        "cudagraphs"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "backend"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "TorchCompileModel",
        "display_name": "TorchCompileModel",
        "description": "",
        "python_module": "comfy_extras.nodes_torch_compile",
        "category": "_for_testing",
        "output_node": false,
        "experimental": true
    },
    "EmptyMochiLatentVideo": {
        "input": {
            "required": {
                "width": [
                    "INT",
                    {
                        "default": 848,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 480,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 25,
                        "min": 7,
                        "max": 16384,
                        "step": 6
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "width",
                "height",
                "length",
                "batch_size"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "EmptyMochiLatentVideo",
        "display_name": "EmptyMochiLatentVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_mochi",
        "category": "latent/video",
        "output_node": false
    },
    "SkipLayerGuidanceDiT": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "double_layers": [
                    "STRING",
                    {
                        "default": "7, 8, 9",
                        "multiline": false
                    }
                ],
                "single_layers": [
                    "STRING",
                    {
                        "default": "7, 8, 9",
                        "multiline": false
                    }
                ],
                "scale": [
                    "FLOAT",
                    {
                        "default": 3.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.1
                    }
                ],
                "start_percent": [
                    "FLOAT",
                    {
                        "default": 0.01,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "end_percent": [
                    "FLOAT",
                    {
                        "default": 0.15,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "rescaling_scale": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "double_layers",
                "single_layers",
                "scale",
                "start_percent",
                "end_percent",
                "rescaling_scale"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "SkipLayerGuidanceDiT",
        "display_name": "SkipLayerGuidanceDiT",
        "description": "Generic version of SkipLayerGuidance node that can be used on every DiT model.",
        "python_module": "comfy_extras.nodes_slg",
        "category": "advanced/guidance",
        "output_node": false,
        "experimental": true
    },
    "SkipLayerGuidanceDiTSimple": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "double_layers": [
                    "STRING",
                    {
                        "default": "7, 8, 9",
                        "multiline": false
                    }
                ],
                "single_layers": [
                    "STRING",
                    {
                        "default": "7, 8, 9",
                        "multiline": false
                    }
                ],
                "start_percent": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "end_percent": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "double_layers",
                "single_layers",
                "start_percent",
                "end_percent"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "SkipLayerGuidanceDiTSimple",
        "display_name": "SkipLayerGuidanceDiTSimple",
        "description": "Simple version of the SkipLayerGuidanceDiT node that only modifies the uncond pass.",
        "python_module": "comfy_extras.nodes_slg",
        "category": "advanced/guidance",
        "output_node": false,
        "experimental": true
    },
    "Mahiro": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ]
            }
        },
        "input_order": {
            "required": [
                "model"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "patched_model"
        ],
        "name": "Mahiro",
        "display_name": "Mahiro is so cute that she deserves a better guidance function!! (\u3002\u30fb\u03c9\u30fb\u3002)",
        "description": "Modify the guidance to scale more on the 'direction' of the positive prompt rather than the difference between the negative prompt.",
        "python_module": "comfy_extras.nodes_mahiro",
        "category": "_for_testing",
        "output_node": false
    },
    "EmptyLTXVLatentVideo": {
        "input": {
            "required": {
                "width": [
                    "INT",
                    {
                        "default": 768,
                        "min": 64,
                        "max": 16384,
                        "step": 32
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 512,
                        "min": 64,
                        "max": 16384,
                        "step": 32
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 97,
                        "min": 1,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "width",
                "height",
                "length",
                "batch_size"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "EmptyLTXVLatentVideo",
        "display_name": "EmptyLTXVLatentVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_lt",
        "category": "latent/video/ltxv",
        "output_node": false
    },
    "LTXVImgToVideo": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "vae": [
                    "VAE"
                ],
                "image": [
                    "IMAGE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 768,
                        "min": 64,
                        "max": 16384,
                        "step": 32
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 512,
                        "min": 64,
                        "max": 16384,
                        "step": 32
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 97,
                        "min": 9,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "vae",
                "image",
                "width",
                "height",
                "length",
                "batch_size",
                "strength"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "LTXVImgToVideo",
        "display_name": "LTXVImgToVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_lt",
        "category": "conditioning/video_models",
        "output_node": false
    },
    "ModelSamplingLTXV": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "max_shift": [
                    "FLOAT",
                    {
                        "default": 2.05,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ],
                "base_shift": [
                    "FLOAT",
                    {
                        "default": 0.95,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ]
            },
            "optional": {
                "latent": [
                    "LATENT"
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "max_shift",
                "base_shift"
            ],
            "optional": [
                "latent"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "ModelSamplingLTXV",
        "display_name": "ModelSamplingLTXV",
        "description": "",
        "python_module": "comfy_extras.nodes_lt",
        "category": "advanced/model",
        "output_node": false
    },
    "LTXVConditioning": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "frame_rate": [
                    "FLOAT",
                    {
                        "default": 25.0,
                        "min": 0.0,
                        "max": 1000.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "frame_rate"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative"
        ],
        "name": "LTXVConditioning",
        "display_name": "LTXVConditioning",
        "description": "",
        "python_module": "comfy_extras.nodes_lt",
        "category": "conditioning/video_models",
        "output_node": false
    },
    "LTXVScheduler": {
        "input": {
            "required": {
                "steps": [
                    "INT",
                    {
                        "default": 20,
                        "min": 1,
                        "max": 10000
                    }
                ],
                "max_shift": [
                    "FLOAT",
                    {
                        "default": 2.05,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ],
                "base_shift": [
                    "FLOAT",
                    {
                        "default": 0.95,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ],
                "stretch": [
                    "BOOLEAN",
                    {
                        "default": true,
                        "tooltip": "Stretch the sigmas to be in the range [terminal, 1]."
                    }
                ],
                "terminal": [
                    "FLOAT",
                    {
                        "default": 0.1,
                        "min": 0.0,
                        "max": 0.99,
                        "step": 0.01,
                        "tooltip": "The terminal value of the sigmas after stretching."
                    }
                ]
            },
            "optional": {
                "latent": [
                    "LATENT"
                ]
            }
        },
        "input_order": {
            "required": [
                "steps",
                "max_shift",
                "base_shift",
                "stretch",
                "terminal"
            ],
            "optional": [
                "latent"
            ]
        },
        "output": [
            "SIGMAS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SIGMAS"
        ],
        "name": "LTXVScheduler",
        "display_name": "LTXVScheduler",
        "description": "",
        "python_module": "comfy_extras.nodes_lt",
        "category": "sampling/custom_sampling/schedulers",
        "output_node": false
    },
    "LTXVAddGuide": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "vae": [
                    "VAE"
                ],
                "latent": [
                    "LATENT"
                ],
                "image": [
                    "IMAGE",
                    {
                        "tooltip": "Image or video to condition the latent video on. Must be 8*n + 1 frames.If the video is not 8*n + 1 frames, it will be cropped to the nearest 8*n + 1 frames."
                    }
                ],
                "frame_idx": [
                    "INT",
                    {
                        "default": 0,
                        "min": -9999,
                        "max": 9999,
                        "tooltip": "Frame index to start the conditioning at. For single-frame images or videos with 1-8 frames, any frame_idx value is acceptable. For videos with 9+ frames, frame_idx must be divisible by 8, otherwise it will be rounded down to the nearest multiple of 8. Negative values are counted from the end of the video."
                    }
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "vae",
                "latent",
                "image",
                "frame_idx",
                "strength"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "LTXVAddGuide",
        "display_name": "LTXVAddGuide",
        "description": "",
        "python_module": "comfy_extras.nodes_lt",
        "category": "conditioning/video_models",
        "output_node": false
    },
    "LTXVPreprocess": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "img_compression": [
                    "INT",
                    {
                        "default": 35,
                        "min": 0,
                        "max": 100,
                        "tooltip": "Amount of compression to apply on image."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "img_compression"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "output_image"
        ],
        "name": "LTXVPreprocess",
        "display_name": "LTXVPreprocess",
        "description": "",
        "python_module": "comfy_extras.nodes_lt",
        "category": "image",
        "output_node": false
    },
    "LTXVCropGuides": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "latent": [
                    "LATENT"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "latent"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "LTXVCropGuides",
        "display_name": "LTXVCropGuides",
        "description": "",
        "python_module": "comfy_extras.nodes_lt",
        "category": "conditioning/video_models",
        "output_node": false
    },
    "CreateHookLora": {
        "input": {
            "required": {
                "lora_name": [
                    [
                        "5shot.safetensors",
                        "AnimateLCM/AnimateLCM_sd15_t2v_lora.safetensors",
                        "Comics_V3-05.safetensors",
                        "Detailed_Hands-000001.safetensors",
                        "Drawing.safetensors",
                        "Duc_Abed.safetensors",
                        "Duc_Lustig.safetensors",
                        "Duc_Miller.safetensors",
                        "Duc_Nehama.safetensors",
                        "Duc_Shaintz.safetensors",
                        "Duc_Tidhar.safetensors",
                        "Expressive_H-000001.safetensors",
                        "FLUX.1-Turbo-Alpha.safetensors",
                        "FilmVelvia3.safetensors",
                        "FrankMiller-10.safetensors",
                        "Grungy_Picture_SDXL_V1.safetensors",
                        "LORAFlatColor_flatColor.pt",
                        "LZ-comic strip.safetensors",
                        "LineArt.safetensors",
                        "LoconLoraOffsetNoise_locon0501.pt",
                        "LowRA.safetensors",
                        "NSFW_master.safetensors",
                        "OilPainting.safetensors",
                        "Pencil_Sketch_Style.safetensors",
                        "PerfectEyesXL.safetensors",
                        "SDXL_StopMotion_lora.safetensors",
                        "SU_Twrk_EP62.safetensors",
                        "Samsung_UltraReal.safetensors",
                        "Titfuck_WAN14B_V1_Release.safetensors",
                        "UltraRealPhoto.safetensors",
                        "WAN_dr34mj0b.safetensors",
                        "Wan21_CausVid_14B_T2V_lora_rank32.safetensors",
                        "Wan21_CausVid_bidirect2_T2V_1_3B_lora_rank32.safetensors",
                        "Western_Comic_Style.safetensors",
                        "aardstyle1.0.safetensors",
                        "add-detail-xl.safetensors",
                        "add_detail.safetensors",
                        "aidmaRealisticSkin-FLUX-v0.1.safetensors",
                        "amateurphoto-v6-forcu.safetensors",
                        "animeoutlineV4_16.safetensors",
                        "bad-hands-5.pt",
                        "bounceV_01.safetensors",
                        "bustyFC-2.1.safetensors",
                        "comfyui_portrait_lora64.safetensors",
                        "comfyui_subject_lora16.safetensors",
                        "comic-000009.safetensors",
                        "detail_slider_v4.safetensors",
                        "detailz-wan.safetensors",
                        "dicks_epoch_100.safetensors",
                        "diffusion_pytorch_model.safetensors",
                        "elldrethslucidmix_Lora300.safetensors",
                        "epiNoiseoffset_v2.safetensors",
                        "erect_penis_epoch_80.safetensors",
                        "facials_epoch_50.safetensors",
                        "fingering_i2v_e248.safetensors",
                        "flux/In-Context-LoRA/couple-profile.safetensors",
                        "flux/In-Context-LoRA/film-storyboard.safetensors",
                        "flux/In-Context-LoRA/font-design.safetensors",
                        "flux/In-Context-LoRA/home-decoration.safetensors",
                        "flux/In-Context-LoRA/portrait-illustration.safetensors",
                        "flux/In-Context-LoRA/portrait-photography.safetensors",
                        "flux/In-Context-LoRA/ppt-templates.safetensors",
                        "flux/In-Context-LoRA/sandstorm-visual-effect.safetensors",
                        "flux/In-Context-LoRA/sparklers-visual-effect.safetensors",
                        "flux/In-Context-LoRA/visual-identity-design.safetensors",
                        "flux/UltraRealPhoto.safetensors",
                        "flux/anime_lora.safetensors",
                        "flux/anime_lora_comfy_converted.safetensors",
                        "flux/art_lora.safetensors",
                        "flux/art_lora_comfy_converted.safetensors",
                        "flux/disney_lora.safetensors",
                        "flux/disney_lora_comfy_converted.safetensors",
                        "flux/flux.1-turbo-alpha/diffusion_pytorch_model.safetensors",
                        "flux/furry_lora.safetensors",
                        "flux/mjv6_lora.safetensors",
                        "flux/mjv6_lora_comfy_converted.safetensors",
                        "flux/realism_lora.safetensors",
                        "flux/realism_lora_comfy_converted.safetensors",
                        "flux/scenery_lora.safetensors",
                        "flux/scenery_lora_comfy_converted.safetensors",
                        "flux1-canny-dev-lora.safetensors",
                        "flux1-depth-dev-lora.safetensors",
                        "fluxRealSkin-V2.safetensors",
                        "flux_lora_file_rank16_bf16-step00350.safetensors",
                        "flux_lora_file_rank16_bf16-step00750.safetensors",
                        "flux_realism_lora.safetensors",
                        "front_doggy_plow_v1_1_wan.safetensors",
                        "genitals_helper_v1.0_e219.safetensors",
                        "hunyuan/hyvideo_FastVideo_LoRA-fp8.safetensors",
                        "impressionism.safetensors",
                        "insert-anything_extracted_lora_rank_64-bf16.safetensors",
                        "jfj-deepthroat-v1.safetensors",
                        "kontext/Akira Toriyama - Dragon Ball Style - Kontext.safetensors",
                        "kontext/FlatAnimation\u3010style\u3011_flux_kontext_lora_v1-PAseer.safetensors",
                        "kontext/GuoHuaKontextLoRA.safetensors",
                        "kontext/HDR360.safetensors",
                        "kontext/HXHY-RealisticKontextLoRA1.6.safetensors",
                        "kontext/InScene-v1.0.safetensors",
                        "kontext/Three-view sketch.safetensors",
                        "kontext/fluffy-kontext-lora.safetensors",
                        "kontext/ghibliStyle_kontext_byJaneB.safetensors",
                        "kontext/glass-prism-kontext-lora.safetensors",
                        "kontext/kontext-pixelize-v1.1_000001500.safetensors",
                        "kontext/kontext_change_clothes_t1.safetensors",
                        "kontext/mech-anything-kontext.safetensors",
                        "kontext/unflux_v1.safetensors",
                        "lcm/sd1/pytorch_lora_weights.safetensors",
                        "lcm/sdxl/pytorch_lora_weights.safetensors",
                        "lineart + flat colors v2.safetensors",
                        "marymarvel-nvwls-v1.safetensors",
                        "mhk_comics.safetensors",
                        "mo.safetensors",
                        "modernAmericanComics_v10.safetensors",
                        "modernDisneyLORA_modiV1.safetensors",
                        "more_details.safetensors",
                        "nsfw_flux_lora_v1.safetensors",
                        "r1ge - AnimeRage.safetensors",
                        "ral-dissolve-sdxl.safetensors",
                        "rottingZombies.safetensors",
                        "sam_yang_offset_right_filesize.safetensors",
                        "sd1/3232pixel.safetensors",
                        "sd1/AoTStyle.safetensors",
                        "sd1/AxelStone-DocStasis.safetensors",
                        "sd1/DrippingArt.safetensors",
                        "sd1/GTA_Style.safetensors",
                        "sd1/LiquidAF-0-1.safetensors",
                        "sd1/Longan.safetensors",
                        "sd1/Magazine-10.safetensors",
                        "sd1/Naruto.safetensors",
                        "sd1/add_detail.safetensors",
                        "sd1/anime_minimalist_v1-000020.safetensors",
                        "sd1/animemix_v3_offset.safetensors",
                        "sd1/animeoutlineV4_16.safetensors",
                        "sd1/arcane_offset.safetensors",
                        "sd1/concept_master_1.0.safetensors",
                        "sd1/epi_noiseoffset2.pt",
                        "sd1/ghibli_style_offset.safetensors",
                        "sd1/ip-adapter-faceid-plus_sd15_lora.safetensors",
                        "sd1/ip-adapter-faceid-plusv2_sd15_lora.safetensors",
                        "sd1/ip-adapter-faceid_sd15_lora.safetensors",
                        "sd1/modernlogo.safetensors",
                        "sd1/more_details.safetensors",
                        "sd1/neg4all_bdsqlsz_V3.5.safetensors",
                        "sd1/sd15_lcm_lora.safetensors",
                        "sd1/tangbohu-line_1.0.safetensors",
                        "sd1/v3_sd15_adapter.ckpt",
                        "sdxl/3DRedmond-3DRenderStyle-3DRenderAF.safetensors",
                        "sdxl/Aether_Fire_v1_SDXL_LoRA.safetensors",
                        "sdxl/Aether_Ghost_v1.1_LoRA.safetensors",
                        "sdxl/Aether_Ghost_v1_LoRA.safetensors",
                        "sdxl/ClayAnimationRedm.safetensors",
                        "sdxl/DreamARTSDXL.safetensors",
                        "sdxl/MJ52.safetensors",
                        "sdxl/PS1Redmond-PS1Game-Playstation1Graphics.safetensors",
                        "sdxl/ParchartXL-2.0.safetensors",
                        "sdxl/PixelArtRedmond-Lite64.safetensors",
                        "sdxl/StickersRedmond.safetensors",
                        "sdxl/ToyRedmond-FnkRedmAF.safetensors",
                        "sdxl/WowifierXL-V2.safetensors",
                        "sdxl/add-detail-xl.safetensors",
                        "sdxl/cereal_box_sdxl_v1.safetensors",
                        "sdxl/crayons_v1_sdxl.safetensors",
                        "sdxl/fofr/emoji.safetensors",
                        "sdxl/ikea_instructions_xl_v1_5.safetensors",
                        "sdxl/ip-adapter-faceid-plusv2_sdxl_lora.safetensors",
                        "sdxl/ip-adapter-faceid_sdxl_lora.safetensors",
                        "sdxl/magik_smoke_v1.2.safetensors",
                        "sdxl/neg4all_xl_bdsqlsz_V5.safetensors",
                        "sdxl/sdxl_lightning_8step_lora.safetensors",
                        "sdxl/sdxl_offset_example_v10.safetensors",
                        "sdxl/wojak_SDXL.safetensors",
                        "sdxl/xl_more_art-full_v1.safetensors",
                        "skin_4-000015.safetensors",
                        "skin_tone_slider_v1.safetensors",
                        "wan-nsfw-e14-fixed.safetensors",
                        "wan2.1-1.3b-control-lora-tile-v1.0_comfy.safetensors",
                        "wan_cowgirl_v1.3.safetensors",
                        "wan_cumshot_i2v.safetensors",
                        "wan_female_masturbation.safetensors",
                        "wan_pov_missionary_i2v_v1.1.safetensors",
                        "xk3mt1ks.safetensors",
                        "xl_more_art-full-beta2.safetensors",
                        "xl_more_art-full_v1.safetensors",
                        "xl_yamer_style-2.0.safetensors"
                    ]
                ],
                "strength_model": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -20.0,
                        "max": 20.0,
                        "step": 0.01
                    }
                ],
                "strength_clip": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -20.0,
                        "max": 20.0,
                        "step": 0.01
                    }
                ]
            },
            "optional": {
                "prev_hooks": [
                    "HOOKS"
                ]
            }
        },
        "input_order": {
            "required": [
                "lora_name",
                "strength_model",
                "strength_clip"
            ],
            "optional": [
                "prev_hooks"
            ]
        },
        "output": [
            "HOOKS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "HOOKS"
        ],
        "name": "CreateHookLora",
        "display_name": "Create Hook LoRA",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/create",
        "output_node": false,
        "experimental": true
    },
    "CreateHookLoraModelOnly": {
        "input": {
            "required": {
                "lora_name": [
                    [
                        "5shot.safetensors",
                        "AnimateLCM/AnimateLCM_sd15_t2v_lora.safetensors",
                        "Comics_V3-05.safetensors",
                        "Detailed_Hands-000001.safetensors",
                        "Drawing.safetensors",
                        "Duc_Abed.safetensors",
                        "Duc_Lustig.safetensors",
                        "Duc_Miller.safetensors",
                        "Duc_Nehama.safetensors",
                        "Duc_Shaintz.safetensors",
                        "Duc_Tidhar.safetensors",
                        "Expressive_H-000001.safetensors",
                        "FLUX.1-Turbo-Alpha.safetensors",
                        "FilmVelvia3.safetensors",
                        "FrankMiller-10.safetensors",
                        "Grungy_Picture_SDXL_V1.safetensors",
                        "LORAFlatColor_flatColor.pt",
                        "LZ-comic strip.safetensors",
                        "LineArt.safetensors",
                        "LoconLoraOffsetNoise_locon0501.pt",
                        "LowRA.safetensors",
                        "NSFW_master.safetensors",
                        "OilPainting.safetensors",
                        "Pencil_Sketch_Style.safetensors",
                        "PerfectEyesXL.safetensors",
                        "SDXL_StopMotion_lora.safetensors",
                        "SU_Twrk_EP62.safetensors",
                        "Samsung_UltraReal.safetensors",
                        "Titfuck_WAN14B_V1_Release.safetensors",
                        "UltraRealPhoto.safetensors",
                        "WAN_dr34mj0b.safetensors",
                        "Wan21_CausVid_14B_T2V_lora_rank32.safetensors",
                        "Wan21_CausVid_bidirect2_T2V_1_3B_lora_rank32.safetensors",
                        "Western_Comic_Style.safetensors",
                        "aardstyle1.0.safetensors",
                        "add-detail-xl.safetensors",
                        "add_detail.safetensors",
                        "aidmaRealisticSkin-FLUX-v0.1.safetensors",
                        "amateurphoto-v6-forcu.safetensors",
                        "animeoutlineV4_16.safetensors",
                        "bad-hands-5.pt",
                        "bounceV_01.safetensors",
                        "bustyFC-2.1.safetensors",
                        "comfyui_portrait_lora64.safetensors",
                        "comfyui_subject_lora16.safetensors",
                        "comic-000009.safetensors",
                        "detail_slider_v4.safetensors",
                        "detailz-wan.safetensors",
                        "dicks_epoch_100.safetensors",
                        "diffusion_pytorch_model.safetensors",
                        "elldrethslucidmix_Lora300.safetensors",
                        "epiNoiseoffset_v2.safetensors",
                        "erect_penis_epoch_80.safetensors",
                        "facials_epoch_50.safetensors",
                        "fingering_i2v_e248.safetensors",
                        "flux/In-Context-LoRA/couple-profile.safetensors",
                        "flux/In-Context-LoRA/film-storyboard.safetensors",
                        "flux/In-Context-LoRA/font-design.safetensors",
                        "flux/In-Context-LoRA/home-decoration.safetensors",
                        "flux/In-Context-LoRA/portrait-illustration.safetensors",
                        "flux/In-Context-LoRA/portrait-photography.safetensors",
                        "flux/In-Context-LoRA/ppt-templates.safetensors",
                        "flux/In-Context-LoRA/sandstorm-visual-effect.safetensors",
                        "flux/In-Context-LoRA/sparklers-visual-effect.safetensors",
                        "flux/In-Context-LoRA/visual-identity-design.safetensors",
                        "flux/UltraRealPhoto.safetensors",
                        "flux/anime_lora.safetensors",
                        "flux/anime_lora_comfy_converted.safetensors",
                        "flux/art_lora.safetensors",
                        "flux/art_lora_comfy_converted.safetensors",
                        "flux/disney_lora.safetensors",
                        "flux/disney_lora_comfy_converted.safetensors",
                        "flux/flux.1-turbo-alpha/diffusion_pytorch_model.safetensors",
                        "flux/furry_lora.safetensors",
                        "flux/mjv6_lora.safetensors",
                        "flux/mjv6_lora_comfy_converted.safetensors",
                        "flux/realism_lora.safetensors",
                        "flux/realism_lora_comfy_converted.safetensors",
                        "flux/scenery_lora.safetensors",
                        "flux/scenery_lora_comfy_converted.safetensors",
                        "flux1-canny-dev-lora.safetensors",
                        "flux1-depth-dev-lora.safetensors",
                        "fluxRealSkin-V2.safetensors",
                        "flux_lora_file_rank16_bf16-step00350.safetensors",
                        "flux_lora_file_rank16_bf16-step00750.safetensors",
                        "flux_realism_lora.safetensors",
                        "front_doggy_plow_v1_1_wan.safetensors",
                        "genitals_helper_v1.0_e219.safetensors",
                        "hunyuan/hyvideo_FastVideo_LoRA-fp8.safetensors",
                        "impressionism.safetensors",
                        "insert-anything_extracted_lora_rank_64-bf16.safetensors",
                        "jfj-deepthroat-v1.safetensors",
                        "kontext/Akira Toriyama - Dragon Ball Style - Kontext.safetensors",
                        "kontext/FlatAnimation\u3010style\u3011_flux_kontext_lora_v1-PAseer.safetensors",
                        "kontext/GuoHuaKontextLoRA.safetensors",
                        "kontext/HDR360.safetensors",
                        "kontext/HXHY-RealisticKontextLoRA1.6.safetensors",
                        "kontext/InScene-v1.0.safetensors",
                        "kontext/Three-view sketch.safetensors",
                        "kontext/fluffy-kontext-lora.safetensors",
                        "kontext/ghibliStyle_kontext_byJaneB.safetensors",
                        "kontext/glass-prism-kontext-lora.safetensors",
                        "kontext/kontext-pixelize-v1.1_000001500.safetensors",
                        "kontext/kontext_change_clothes_t1.safetensors",
                        "kontext/mech-anything-kontext.safetensors",
                        "kontext/unflux_v1.safetensors",
                        "lcm/sd1/pytorch_lora_weights.safetensors",
                        "lcm/sdxl/pytorch_lora_weights.safetensors",
                        "lineart + flat colors v2.safetensors",
                        "marymarvel-nvwls-v1.safetensors",
                        "mhk_comics.safetensors",
                        "mo.safetensors",
                        "modernAmericanComics_v10.safetensors",
                        "modernDisneyLORA_modiV1.safetensors",
                        "more_details.safetensors",
                        "nsfw_flux_lora_v1.safetensors",
                        "r1ge - AnimeRage.safetensors",
                        "ral-dissolve-sdxl.safetensors",
                        "rottingZombies.safetensors",
                        "sam_yang_offset_right_filesize.safetensors",
                        "sd1/3232pixel.safetensors",
                        "sd1/AoTStyle.safetensors",
                        "sd1/AxelStone-DocStasis.safetensors",
                        "sd1/DrippingArt.safetensors",
                        "sd1/GTA_Style.safetensors",
                        "sd1/LiquidAF-0-1.safetensors",
                        "sd1/Longan.safetensors",
                        "sd1/Magazine-10.safetensors",
                        "sd1/Naruto.safetensors",
                        "sd1/add_detail.safetensors",
                        "sd1/anime_minimalist_v1-000020.safetensors",
                        "sd1/animemix_v3_offset.safetensors",
                        "sd1/animeoutlineV4_16.safetensors",
                        "sd1/arcane_offset.safetensors",
                        "sd1/concept_master_1.0.safetensors",
                        "sd1/epi_noiseoffset2.pt",
                        "sd1/ghibli_style_offset.safetensors",
                        "sd1/ip-adapter-faceid-plus_sd15_lora.safetensors",
                        "sd1/ip-adapter-faceid-plusv2_sd15_lora.safetensors",
                        "sd1/ip-adapter-faceid_sd15_lora.safetensors",
                        "sd1/modernlogo.safetensors",
                        "sd1/more_details.safetensors",
                        "sd1/neg4all_bdsqlsz_V3.5.safetensors",
                        "sd1/sd15_lcm_lora.safetensors",
                        "sd1/tangbohu-line_1.0.safetensors",
                        "sd1/v3_sd15_adapter.ckpt",
                        "sdxl/3DRedmond-3DRenderStyle-3DRenderAF.safetensors",
                        "sdxl/Aether_Fire_v1_SDXL_LoRA.safetensors",
                        "sdxl/Aether_Ghost_v1.1_LoRA.safetensors",
                        "sdxl/Aether_Ghost_v1_LoRA.safetensors",
                        "sdxl/ClayAnimationRedm.safetensors",
                        "sdxl/DreamARTSDXL.safetensors",
                        "sdxl/MJ52.safetensors",
                        "sdxl/PS1Redmond-PS1Game-Playstation1Graphics.safetensors",
                        "sdxl/ParchartXL-2.0.safetensors",
                        "sdxl/PixelArtRedmond-Lite64.safetensors",
                        "sdxl/StickersRedmond.safetensors",
                        "sdxl/ToyRedmond-FnkRedmAF.safetensors",
                        "sdxl/WowifierXL-V2.safetensors",
                        "sdxl/add-detail-xl.safetensors",
                        "sdxl/cereal_box_sdxl_v1.safetensors",
                        "sdxl/crayons_v1_sdxl.safetensors",
                        "sdxl/fofr/emoji.safetensors",
                        "sdxl/ikea_instructions_xl_v1_5.safetensors",
                        "sdxl/ip-adapter-faceid-plusv2_sdxl_lora.safetensors",
                        "sdxl/ip-adapter-faceid_sdxl_lora.safetensors",
                        "sdxl/magik_smoke_v1.2.safetensors",
                        "sdxl/neg4all_xl_bdsqlsz_V5.safetensors",
                        "sdxl/sdxl_lightning_8step_lora.safetensors",
                        "sdxl/sdxl_offset_example_v10.safetensors",
                        "sdxl/wojak_SDXL.safetensors",
                        "sdxl/xl_more_art-full_v1.safetensors",
                        "skin_4-000015.safetensors",
                        "skin_tone_slider_v1.safetensors",
                        "wan-nsfw-e14-fixed.safetensors",
                        "wan2.1-1.3b-control-lora-tile-v1.0_comfy.safetensors",
                        "wan_cowgirl_v1.3.safetensors",
                        "wan_cumshot_i2v.safetensors",
                        "wan_female_masturbation.safetensors",
                        "wan_pov_missionary_i2v_v1.1.safetensors",
                        "xk3mt1ks.safetensors",
                        "xl_more_art-full-beta2.safetensors",
                        "xl_more_art-full_v1.safetensors",
                        "xl_yamer_style-2.0.safetensors"
                    ]
                ],
                "strength_model": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -20.0,
                        "max": 20.0,
                        "step": 0.01
                    }
                ]
            },
            "optional": {
                "prev_hooks": [
                    "HOOKS"
                ]
            }
        },
        "input_order": {
            "required": [
                "lora_name",
                "strength_model"
            ],
            "optional": [
                "prev_hooks"
            ]
        },
        "output": [
            "HOOKS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "HOOKS"
        ],
        "name": "CreateHookLoraModelOnly",
        "display_name": "Create Hook LoRA (MO)",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/create",
        "output_node": false,
        "experimental": true
    },
    "CreateHookModelAsLora": {
        "input": {
            "required": {
                "ckpt_name": [
                    [
                        "3D_Anime.safetensors",
                        "3D_Concept.safetensors",
                        "FLUX1/flux1-dev-fp8.safetensors",
                        "GTA5_Artwork_Diffusion_gtav_style.safetensors",
                        "Juggernaut_X_RunDiffusion.safetensors",
                        "LTXV/ltxv-13b-0.9.7-dev-fp8.safetensors",
                        "MOHAWK_v20.safetensors",
                        "MOHAWK_v20BackedVAE.safetensors",
                        "RealVisXL_V4.0.safetensors",
                        "Realistic_Vision_V6.0_NV_B1.safetensors",
                        "RunComfyDefault/v1-5-pruned-emaonly.safetensors",
                        "SD1.5/v1-5-pruned-emaonly.ckpt",
                        "SD2.1/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors",
                        "SDXL-TURBO/sd_xl_turbo_1.0_fp16.safetensors",
                        "SDXL/sd_xl_base_1.0.safetensors",
                        "SDXL/sd_xl_base_1.0_0.9vae.safetensors",
                        "SDXL/sd_xl_refiner_1.0_0.9vae.safetensors",
                        "SUPIR/SUPIR-v0F.ckpt",
                        "SVD/svd.safetensors",
                        "SVD/svd_xt.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_gs_swin8_B_64l8gs32_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_mesh_swin8_B_64l8m256c_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_rf_swin8_B_64l8r16_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_enc_swin8_B_64l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_flow_img_dit_L_64l8p2_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_dec_conv3d_16l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_enc_conv3d_16l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_flow_img_dit_L_16l8_fp16.safetensors",
                        "TripoSR/model.ckpt",
                        "bigLust_v16.safetensors",
                        "ccsr/real-world_ccsr.ckpt",
                        "cyberrealisticPony_v110.safetensors",
                        "cyberrealisticPony_v8.safetensors",
                        "cyberrealisticPony_v85.safetensors",
                        "cyberrealisticPony_v90Alt1.safetensors",
                        "cyberrealisticXL_v57.safetensors",
                        "disneyPixarCartoon_v10.safetensors",
                        "dreamCreationVirtual3DECommerce_v10.safetensors",
                        "dreamshaperXL_v21TurboDPMSDE.safetensors",
                        "dreamshaper_8.safetensors",
                        "dynamicrafter/dynamicrafter_1024_v1.ckpt",
                        "dynamicrafter/dynamicrafter_1024_v1_bf16.safetensors",
                        "dynamicrafter/dynamicrafter_512_interp_v1.ckpt",
                        "dynamicrafter/dynamicrafter_512_interp_v1_bf16.safetensors",
                        "dynamicrafter/tooncrafter_512_interp-pruned-fp16.safetensors",
                        "epicrealismXL_v8Kiss.safetensors",
                        "epicrealismXL_vxivEyecandyRealism.safetensors",
                        "epicrealismXL_vxviLastfameRealism.safetensors",
                        "epicrealism_naturalSinRC1VAE.safetensors",
                        "flat2DAnimerge_v45Sharp.safetensors",
                        "flux/flux1-dev-bnb-nf4-v2.safetensors",
                        "flux/flux1-dev-fp8.safetensors",
                        "flux/flux1-dev.sft",
                        "flux/flux1-schnell-fp8.safetensors",
                        "flux/flux1-schnell.sft",
                        "flux/fluxRealistic_fluxRealisticSamayV2.safetensors",
                        "flux/kijai/flux1-dev-fp8.safetensors",
                        "flux/lumiere_flux_alpha-fp8.safetensors",
                        "flux1-dev-fp8.safetensors",
                        "flux1-dev.safetensors",
                        "flux1-redux-dev.safetensors",
                        "flux1-schnell.safetensors",
                        "illustriousXL_v01.safetensors",
                        "ilustmix_v6.safetensors",
                        "juggernautXL_ragnarokBy.safetensors",
                        "juggernautXL_versionXInpaint.safetensors",
                        "leosamsFilmgirlUltra_ultraBaseModel.safetensors",
                        "ltx/ltx-video-2b-v0.9.safetensors",
                        "ltxv-13b-0.9.7-dev.safetensors",
                        "lustifySDXLNSFW_endgame.safetensors",
                        "lustifySDXLNSFW_oltFIXEDTEXTURES.safetensors",
                        "majicmixRealistic_v7.safetensors",
                        "meinamix_v12Final.safetensors",
                        "noobaiCyberfix_eps11PerpCyberfix.safetensors",
                        "noobaiXLNAIXL_vPred10Version.safetensors",
                        "photon_v1.safetensors",
                        "ponyDiffusionV6XL_v6StartWithThisOne.safetensors",
                        "ponyRealism_V22MainVAE.safetensors",
                        "ponyRealism_V23.safetensors",
                        "ponyRealism_V23ULTRA.safetensors",
                        "realDream_sdxlPony15.safetensors",
                        "realisticVisionV51_v51VAE.safetensors",
                        "realisticVisionV60B1_v51HyperVAE.safetensors",
                        "realisticVisionV60B1_v51VAE.safetensors",
                        "realvisxlV50_v50LightningBakedvae.safetensors",
                        "sa1/stable_audio_open_1.0.safetensors",
                        "sc/stable_cascade_stage_b.safetensors",
                        "sc/stable_cascade_stage_c.safetensors",
                        "sd1/Deliberate_v2.safetensors",
                        "sd1/absolutereality_lcm.safetensors",
                        "sd1/animatrix_v20.safetensors",
                        "sd1/animeStills_v1.safetensors",
                        "sd1/animerge_v40.safetensors",
                        "sd1/anythingV3_fp16.safetensors",
                        "sd1/artUniverse_v80.safetensors",
                        "sd1/arthemyComics_v70.safetensors",
                        "sd1/cardosAnime_v20.safetensors",
                        "sd1/chilloutmix_NiPrunedFp16Fix.safetensors",
                        "sd1/chilloutmix_NiPrunedFp32Fix.safetensors",
                        "sd1/comfyroll_v10Anime.safetensors",
                        "sd1/comicDiffusion_v1.ckpt",
                        "sd1/comicDiffusion_v2.ckpt",
                        "sd1/crystalClear2_crystalClear2V1.safetensors",
                        "sd1/cyberrealistic_v33.safetensors",
                        "sd1/ddosmix_V2.safetensors",
                        "sd1/dreamshaper_8.safetensors",
                        "sd1/dreamshaper_8LCM.safetensors",
                        "sd1/dreamshaper_8_inpainting.safetensors",
                        "sd1/epicphotogasm_amateurreallife.safetensors",
                        "sd1/epicrealism_naturalSinRC1VAE.safetensors",
                        "sd1/f222_v1.ckpt",
                        "sd1/flat2DAnimerge_v20.safetensors",
                        "sd1/ghostmix_v20Bakedvae.safetensors",
                        "sd1/helloyoung25d_V10f.safetensors",
                        "sd1/helloyoung2d_V12g.safetensors",
                        "sd1/icbinpICantBelieveIts_afterburn.safetensors",
                        "sd1/icbinpICantBelieveIts_seco.safetensors",
                        "sd1/icomix_V05.safetensors",
                        "sd1/majicmixLux_v1.safetensors",
                        "sd1/majicmixLux_v2.safetensors",
                        "sd1/majicmixLux_v3.safetensors",
                        "sd1/majicmixSombre_v20.safetensors",
                        "sd1/meinamix_meinaV11.safetensors",
                        "sd1/meinapastel_v6Pastel.safetensors",
                        "sd1/meinaunreal_v41.safetensors",
                        "sd1/paradigmLCM_v10.safetensors",
                        "sd1/photographerAlpha7_v3.safetensors",
                        "sd1/photonLCM_v10.safetensors",
                        "sd1/photon_v1.safetensors",
                        "sd1/realcartoon3d_v14.safetensors",
                        "sd1/realdosmix_.safetensors",
                        "sd1/realisian_v50.safetensors",
                        "sd1/realisticVisionV60B1_v51VAE.safetensors",
                        "sd1/redshiftDiffusion_v1.ckpt",
                        "sd1/revAnimated_v122EOL.safetensors",
                        "sd1/toonyou_beta6.safetensors",
                        "sd1/universestable_v50Comics.safetensors",
                        "sd1/vinteprotogenmix_V20.safetensors",
                        "sd35/sd3.5_large.safetensors",
                        "sd35/sd3.5_large_fp8_scaled.safetensors",
                        "sd35/sd3.5_large_turbo.safetensors",
                        "sd3m/sd3_medium.safetensors",
                        "sd3m/sd3_medium_incl_clips.safetensors",
                        "sd3m/sd3_medium_incl_clips_t5xxlfp16.safetensors",
                        "sd3m/sd3_medium_incl_clips_t5xxlfp8.safetensors",
                        "sd_xl_refiner_1.0_0.9vae.safetensors",
                        "sdxl/Juggernaut-XL_v9_RunDiffusionPhoto_v2.safetensors",
                        "sdxl/albedobaseXL_v13.safetensors",
                        "sdxl/bluepencilxl_v310.safetensors",
                        "sdxl/breakdomainxl_V06d.safetensors",
                        "sdxl/counterfeitxl_v10.safetensors",
                        "sdxl/crystalClearXL_ccxl.safetensors",
                        "sdxl/dreamshaperXL_lightningDPMSDE.safetensors",
                        "sdxl/dreamshaperXL_v21TurboDPMSDE.safetensors",
                        "sdxl/dreamshaperXL_v2TurboDPMSDE.safetensors",
                        "sdxl/juggernautXL_v9Rdphoto2Lightning.safetensors",
                        "sdxl/juggernautXL_v9Rundiffusionphoto2.safetensors",
                        "sdxl/juggernautXL_version6Rundiffusion.safetensors",
                        "sdxl/leosamsHelloworldXL_helloworldXL70.safetensors",
                        "sdxl/moxieDiffusionXL_v18.safetensors",
                        "sdxl/perfectdeliberate_v5.safetensors",
                        "sdxl/playground-v2.5-1024px-aesthetic.fp16.safetensors",
                        "sdxl/playground-v2.5-1024px-aesthetic.safetensors",
                        "sdxl/proteus_v03.safetensors",
                        "sdxl/protovisionXLHighFidelity3D_releaseV660Bakedvae.safetensors",
                        "sdxl/realcartoonXL_v6.safetensors",
                        "sdxl/realitycheckXL_alpha11.safetensors",
                        "sdxl/reproductionSDXL_2v12.safetensors",
                        "sdxl/reproductionSDXL_v31.safetensors",
                        "sdxl/revAnimated_v11.safetensors",
                        "sdxl/sd_xl_base_1.0.safetensors",
                        "sdxl/sd_xl_turbo_1.0.safetensors",
                        "sdxl/sdxlUnstableDiffusers_v11.safetensors",
                        "sdxl/tamarinXL_v10.safetensors",
                        "sdxl/wildcardxXLTURBO_wildcardxXLTURBOV10.safetensors",
                        "supir/SUPIR-v0F.ckpt",
                        "supir/SUPIR-v0Q.ckpt",
                        "svd/svd.safetensors",
                        "svd/svd_xt.safetensors",
                        "svd/svd_xt_1_1.safetensors",
                        "uberRealisticPornMergePonyxl_ponyxlHybridV1.safetensors",
                        "upscale/x4-upscaler-ema.safetensors",
                        "v1-5-pruned-emaonly-fp16.safetensors",
                        "v1-5-pruned-emaonly.ckpt",
                        "v2-1_768-ema-pruned.safetensors",
                        "waiNSFWIllustrious_v140.safetensors",
                        "wildcardxXLANIMATION_wildcardxXLANIMATION.safetensors"
                    ]
                ],
                "strength_model": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -20.0,
                        "max": 20.0,
                        "step": 0.01
                    }
                ],
                "strength_clip": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -20.0,
                        "max": 20.0,
                        "step": 0.01
                    }
                ]
            },
            "optional": {
                "prev_hooks": [
                    "HOOKS"
                ]
            }
        },
        "input_order": {
            "required": [
                "ckpt_name",
                "strength_model",
                "strength_clip"
            ],
            "optional": [
                "prev_hooks"
            ]
        },
        "output": [
            "HOOKS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "HOOKS"
        ],
        "name": "CreateHookModelAsLora",
        "display_name": "Create Hook Model as LoRA",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/create",
        "output_node": false,
        "experimental": true
    },
    "CreateHookModelAsLoraModelOnly": {
        "input": {
            "required": {
                "ckpt_name": [
                    [
                        "3D_Anime.safetensors",
                        "3D_Concept.safetensors",
                        "FLUX1/flux1-dev-fp8.safetensors",
                        "GTA5_Artwork_Diffusion_gtav_style.safetensors",
                        "Juggernaut_X_RunDiffusion.safetensors",
                        "LTXV/ltxv-13b-0.9.7-dev-fp8.safetensors",
                        "MOHAWK_v20.safetensors",
                        "MOHAWK_v20BackedVAE.safetensors",
                        "RealVisXL_V4.0.safetensors",
                        "Realistic_Vision_V6.0_NV_B1.safetensors",
                        "RunComfyDefault/v1-5-pruned-emaonly.safetensors",
                        "SD1.5/v1-5-pruned-emaonly.ckpt",
                        "SD2.1/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors",
                        "SDXL-TURBO/sd_xl_turbo_1.0_fp16.safetensors",
                        "SDXL/sd_xl_base_1.0.safetensors",
                        "SDXL/sd_xl_base_1.0_0.9vae.safetensors",
                        "SDXL/sd_xl_refiner_1.0_0.9vae.safetensors",
                        "SUPIR/SUPIR-v0F.ckpt",
                        "SVD/svd.safetensors",
                        "SVD/svd_xt.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_gs_swin8_B_64l8gs32_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_mesh_swin8_B_64l8m256c_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_dec_rf_swin8_B_64l8r16_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_enc_swin8_B_64l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/slat_flow_img_dit_L_64l8p2_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_dec_conv3d_16l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_enc_conv3d_16l8_fp16.safetensors",
                        "TRELLIS-image-large/ckpts/ss_flow_img_dit_L_16l8_fp16.safetensors",
                        "TripoSR/model.ckpt",
                        "bigLust_v16.safetensors",
                        "ccsr/real-world_ccsr.ckpt",
                        "cyberrealisticPony_v110.safetensors",
                        "cyberrealisticPony_v8.safetensors",
                        "cyberrealisticPony_v85.safetensors",
                        "cyberrealisticPony_v90Alt1.safetensors",
                        "cyberrealisticXL_v57.safetensors",
                        "disneyPixarCartoon_v10.safetensors",
                        "dreamCreationVirtual3DECommerce_v10.safetensors",
                        "dreamshaperXL_v21TurboDPMSDE.safetensors",
                        "dreamshaper_8.safetensors",
                        "dynamicrafter/dynamicrafter_1024_v1.ckpt",
                        "dynamicrafter/dynamicrafter_1024_v1_bf16.safetensors",
                        "dynamicrafter/dynamicrafter_512_interp_v1.ckpt",
                        "dynamicrafter/dynamicrafter_512_interp_v1_bf16.safetensors",
                        "dynamicrafter/tooncrafter_512_interp-pruned-fp16.safetensors",
                        "epicrealismXL_v8Kiss.safetensors",
                        "epicrealismXL_vxivEyecandyRealism.safetensors",
                        "epicrealismXL_vxviLastfameRealism.safetensors",
                        "epicrealism_naturalSinRC1VAE.safetensors",
                        "flat2DAnimerge_v45Sharp.safetensors",
                        "flux/flux1-dev-bnb-nf4-v2.safetensors",
                        "flux/flux1-dev-fp8.safetensors",
                        "flux/flux1-dev.sft",
                        "flux/flux1-schnell-fp8.safetensors",
                        "flux/flux1-schnell.sft",
                        "flux/fluxRealistic_fluxRealisticSamayV2.safetensors",
                        "flux/kijai/flux1-dev-fp8.safetensors",
                        "flux/lumiere_flux_alpha-fp8.safetensors",
                        "flux1-dev-fp8.safetensors",
                        "flux1-dev.safetensors",
                        "flux1-redux-dev.safetensors",
                        "flux1-schnell.safetensors",
                        "illustriousXL_v01.safetensors",
                        "ilustmix_v6.safetensors",
                        "juggernautXL_ragnarokBy.safetensors",
                        "juggernautXL_versionXInpaint.safetensors",
                        "leosamsFilmgirlUltra_ultraBaseModel.safetensors",
                        "ltx/ltx-video-2b-v0.9.safetensors",
                        "ltxv-13b-0.9.7-dev.safetensors",
                        "lustifySDXLNSFW_endgame.safetensors",
                        "lustifySDXLNSFW_oltFIXEDTEXTURES.safetensors",
                        "majicmixRealistic_v7.safetensors",
                        "meinamix_v12Final.safetensors",
                        "noobaiCyberfix_eps11PerpCyberfix.safetensors",
                        "noobaiXLNAIXL_vPred10Version.safetensors",
                        "photon_v1.safetensors",
                        "ponyDiffusionV6XL_v6StartWithThisOne.safetensors",
                        "ponyRealism_V22MainVAE.safetensors",
                        "ponyRealism_V23.safetensors",
                        "ponyRealism_V23ULTRA.safetensors",
                        "realDream_sdxlPony15.safetensors",
                        "realisticVisionV51_v51VAE.safetensors",
                        "realisticVisionV60B1_v51HyperVAE.safetensors",
                        "realisticVisionV60B1_v51VAE.safetensors",
                        "realvisxlV50_v50LightningBakedvae.safetensors",
                        "sa1/stable_audio_open_1.0.safetensors",
                        "sc/stable_cascade_stage_b.safetensors",
                        "sc/stable_cascade_stage_c.safetensors",
                        "sd1/Deliberate_v2.safetensors",
                        "sd1/absolutereality_lcm.safetensors",
                        "sd1/animatrix_v20.safetensors",
                        "sd1/animeStills_v1.safetensors",
                        "sd1/animerge_v40.safetensors",
                        "sd1/anythingV3_fp16.safetensors",
                        "sd1/artUniverse_v80.safetensors",
                        "sd1/arthemyComics_v70.safetensors",
                        "sd1/cardosAnime_v20.safetensors",
                        "sd1/chilloutmix_NiPrunedFp16Fix.safetensors",
                        "sd1/chilloutmix_NiPrunedFp32Fix.safetensors",
                        "sd1/comfyroll_v10Anime.safetensors",
                        "sd1/comicDiffusion_v1.ckpt",
                        "sd1/comicDiffusion_v2.ckpt",
                        "sd1/crystalClear2_crystalClear2V1.safetensors",
                        "sd1/cyberrealistic_v33.safetensors",
                        "sd1/ddosmix_V2.safetensors",
                        "sd1/dreamshaper_8.safetensors",
                        "sd1/dreamshaper_8LCM.safetensors",
                        "sd1/dreamshaper_8_inpainting.safetensors",
                        "sd1/epicphotogasm_amateurreallife.safetensors",
                        "sd1/epicrealism_naturalSinRC1VAE.safetensors",
                        "sd1/f222_v1.ckpt",
                        "sd1/flat2DAnimerge_v20.safetensors",
                        "sd1/ghostmix_v20Bakedvae.safetensors",
                        "sd1/helloyoung25d_V10f.safetensors",
                        "sd1/helloyoung2d_V12g.safetensors",
                        "sd1/icbinpICantBelieveIts_afterburn.safetensors",
                        "sd1/icbinpICantBelieveIts_seco.safetensors",
                        "sd1/icomix_V05.safetensors",
                        "sd1/majicmixLux_v1.safetensors",
                        "sd1/majicmixLux_v2.safetensors",
                        "sd1/majicmixLux_v3.safetensors",
                        "sd1/majicmixSombre_v20.safetensors",
                        "sd1/meinamix_meinaV11.safetensors",
                        "sd1/meinapastel_v6Pastel.safetensors",
                        "sd1/meinaunreal_v41.safetensors",
                        "sd1/paradigmLCM_v10.safetensors",
                        "sd1/photographerAlpha7_v3.safetensors",
                        "sd1/photonLCM_v10.safetensors",
                        "sd1/photon_v1.safetensors",
                        "sd1/realcartoon3d_v14.safetensors",
                        "sd1/realdosmix_.safetensors",
                        "sd1/realisian_v50.safetensors",
                        "sd1/realisticVisionV60B1_v51VAE.safetensors",
                        "sd1/redshiftDiffusion_v1.ckpt",
                        "sd1/revAnimated_v122EOL.safetensors",
                        "sd1/toonyou_beta6.safetensors",
                        "sd1/universestable_v50Comics.safetensors",
                        "sd1/vinteprotogenmix_V20.safetensors",
                        "sd35/sd3.5_large.safetensors",
                        "sd35/sd3.5_large_fp8_scaled.safetensors",
                        "sd35/sd3.5_large_turbo.safetensors",
                        "sd3m/sd3_medium.safetensors",
                        "sd3m/sd3_medium_incl_clips.safetensors",
                        "sd3m/sd3_medium_incl_clips_t5xxlfp16.safetensors",
                        "sd3m/sd3_medium_incl_clips_t5xxlfp8.safetensors",
                        "sd_xl_refiner_1.0_0.9vae.safetensors",
                        "sdxl/Juggernaut-XL_v9_RunDiffusionPhoto_v2.safetensors",
                        "sdxl/albedobaseXL_v13.safetensors",
                        "sdxl/bluepencilxl_v310.safetensors",
                        "sdxl/breakdomainxl_V06d.safetensors",
                        "sdxl/counterfeitxl_v10.safetensors",
                        "sdxl/crystalClearXL_ccxl.safetensors",
                        "sdxl/dreamshaperXL_lightningDPMSDE.safetensors",
                        "sdxl/dreamshaperXL_v21TurboDPMSDE.safetensors",
                        "sdxl/dreamshaperXL_v2TurboDPMSDE.safetensors",
                        "sdxl/juggernautXL_v9Rdphoto2Lightning.safetensors",
                        "sdxl/juggernautXL_v9Rundiffusionphoto2.safetensors",
                        "sdxl/juggernautXL_version6Rundiffusion.safetensors",
                        "sdxl/leosamsHelloworldXL_helloworldXL70.safetensors",
                        "sdxl/moxieDiffusionXL_v18.safetensors",
                        "sdxl/perfectdeliberate_v5.safetensors",
                        "sdxl/playground-v2.5-1024px-aesthetic.fp16.safetensors",
                        "sdxl/playground-v2.5-1024px-aesthetic.safetensors",
                        "sdxl/proteus_v03.safetensors",
                        "sdxl/protovisionXLHighFidelity3D_releaseV660Bakedvae.safetensors",
                        "sdxl/realcartoonXL_v6.safetensors",
                        "sdxl/realitycheckXL_alpha11.safetensors",
                        "sdxl/reproductionSDXL_2v12.safetensors",
                        "sdxl/reproductionSDXL_v31.safetensors",
                        "sdxl/revAnimated_v11.safetensors",
                        "sdxl/sd_xl_base_1.0.safetensors",
                        "sdxl/sd_xl_turbo_1.0.safetensors",
                        "sdxl/sdxlUnstableDiffusers_v11.safetensors",
                        "sdxl/tamarinXL_v10.safetensors",
                        "sdxl/wildcardxXLTURBO_wildcardxXLTURBOV10.safetensors",
                        "supir/SUPIR-v0F.ckpt",
                        "supir/SUPIR-v0Q.ckpt",
                        "svd/svd.safetensors",
                        "svd/svd_xt.safetensors",
                        "svd/svd_xt_1_1.safetensors",
                        "uberRealisticPornMergePonyxl_ponyxlHybridV1.safetensors",
                        "upscale/x4-upscaler-ema.safetensors",
                        "v1-5-pruned-emaonly-fp16.safetensors",
                        "v1-5-pruned-emaonly.ckpt",
                        "v2-1_768-ema-pruned.safetensors",
                        "waiNSFWIllustrious_v140.safetensors",
                        "wildcardxXLANIMATION_wildcardxXLANIMATION.safetensors"
                    ]
                ],
                "strength_model": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -20.0,
                        "max": 20.0,
                        "step": 0.01
                    }
                ]
            },
            "optional": {
                "prev_hooks": [
                    "HOOKS"
                ]
            }
        },
        "input_order": {
            "required": [
                "ckpt_name",
                "strength_model"
            ],
            "optional": [
                "prev_hooks"
            ]
        },
        "output": [
            "HOOKS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "HOOKS"
        ],
        "name": "CreateHookModelAsLoraModelOnly",
        "display_name": "Create Hook Model as LoRA (MO)",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/create",
        "output_node": false,
        "experimental": true
    },
    "SetHookKeyframes": {
        "input": {
            "required": {
                "hooks": [
                    "HOOKS"
                ]
            },
            "optional": {
                "hook_kf": [
                    "HOOK_KEYFRAMES"
                ]
            }
        },
        "input_order": {
            "required": [
                "hooks"
            ],
            "optional": [
                "hook_kf"
            ]
        },
        "output": [
            "HOOKS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "HOOKS"
        ],
        "name": "SetHookKeyframes",
        "display_name": "Set Hook Keyframes",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/scheduling",
        "output_node": false,
        "experimental": true
    },
    "CreateHookKeyframe": {
        "input": {
            "required": {
                "strength_mult": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -20.0,
                        "max": 20.0,
                        "step": 0.01
                    }
                ],
                "start_percent": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ]
            },
            "optional": {
                "prev_hook_kf": [
                    "HOOK_KEYFRAMES"
                ]
            }
        },
        "input_order": {
            "required": [
                "strength_mult",
                "start_percent"
            ],
            "optional": [
                "prev_hook_kf"
            ]
        },
        "output": [
            "HOOK_KEYFRAMES"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "HOOK_KF"
        ],
        "name": "CreateHookKeyframe",
        "display_name": "Create Hook Keyframe",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/scheduling",
        "output_node": false,
        "experimental": true
    },
    "CreateHookKeyframesInterpolated": {
        "input": {
            "required": {
                "strength_start": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.001
                    }
                ],
                "strength_end": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.001
                    }
                ],
                "interpolation": [
                    [
                        "linear",
                        "ease_in",
                        "ease_out",
                        "ease_in_out"
                    ]
                ],
                "start_percent": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "end_percent": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "keyframes_count": [
                    "INT",
                    {
                        "default": 5,
                        "min": 2,
                        "max": 100,
                        "step": 1
                    }
                ],
                "print_keyframes": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ]
            },
            "optional": {
                "prev_hook_kf": [
                    "HOOK_KEYFRAMES"
                ]
            }
        },
        "input_order": {
            "required": [
                "strength_start",
                "strength_end",
                "interpolation",
                "start_percent",
                "end_percent",
                "keyframes_count",
                "print_keyframes"
            ],
            "optional": [
                "prev_hook_kf"
            ]
        },
        "output": [
            "HOOK_KEYFRAMES"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "HOOK_KF"
        ],
        "name": "CreateHookKeyframesInterpolated",
        "display_name": "Create Hook Keyframes Interp.",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/scheduling",
        "output_node": false,
        "experimental": true
    },
    "CreateHookKeyframesFromFloats": {
        "input": {
            "required": {
                "floats_strength": [
                    "FLOATS",
                    {
                        "default": -1,
                        "min": -1,
                        "step": 0.001,
                        "forceInput": true
                    }
                ],
                "start_percent": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "end_percent": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "print_keyframes": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ]
            },
            "optional": {
                "prev_hook_kf": [
                    "HOOK_KEYFRAMES"
                ]
            }
        },
        "input_order": {
            "required": [
                "floats_strength",
                "start_percent",
                "end_percent",
                "print_keyframes"
            ],
            "optional": [
                "prev_hook_kf"
            ]
        },
        "output": [
            "HOOK_KEYFRAMES"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "HOOK_KF"
        ],
        "name": "CreateHookKeyframesFromFloats",
        "display_name": "Create Hook Keyframes From Floats",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/scheduling",
        "output_node": false,
        "experimental": true
    },
    "CombineHooks2": {
        "input": {
            "required": {},
            "optional": {
                "hooks_A": [
                    "HOOKS"
                ],
                "hooks_B": [
                    "HOOKS"
                ]
            }
        },
        "input_order": {
            "required": [],
            "optional": [
                "hooks_A",
                "hooks_B"
            ]
        },
        "output": [
            "HOOKS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "HOOKS"
        ],
        "name": "CombineHooks2",
        "display_name": "Combine Hooks [2]",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/combine",
        "output_node": false,
        "experimental": true
    },
    "CombineHooks4": {
        "input": {
            "required": {},
            "optional": {
                "hooks_A": [
                    "HOOKS"
                ],
                "hooks_B": [
                    "HOOKS"
                ],
                "hooks_C": [
                    "HOOKS"
                ],
                "hooks_D": [
                    "HOOKS"
                ]
            }
        },
        "input_order": {
            "required": [],
            "optional": [
                "hooks_A",
                "hooks_B",
                "hooks_C",
                "hooks_D"
            ]
        },
        "output": [
            "HOOKS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "HOOKS"
        ],
        "name": "CombineHooks4",
        "display_name": "Combine Hooks [4]",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/combine",
        "output_node": false,
        "experimental": true
    },
    "CombineHooks8": {
        "input": {
            "required": {},
            "optional": {
                "hooks_A": [
                    "HOOKS"
                ],
                "hooks_B": [
                    "HOOKS"
                ],
                "hooks_C": [
                    "HOOKS"
                ],
                "hooks_D": [
                    "HOOKS"
                ],
                "hooks_E": [
                    "HOOKS"
                ],
                "hooks_F": [
                    "HOOKS"
                ],
                "hooks_G": [
                    "HOOKS"
                ],
                "hooks_H": [
                    "HOOKS"
                ]
            }
        },
        "input_order": {
            "required": [],
            "optional": [
                "hooks_A",
                "hooks_B",
                "hooks_C",
                "hooks_D",
                "hooks_E",
                "hooks_F",
                "hooks_G",
                "hooks_H"
            ]
        },
        "output": [
            "HOOKS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "HOOKS"
        ],
        "name": "CombineHooks8",
        "display_name": "Combine Hooks [8]",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/combine",
        "output_node": false,
        "experimental": true
    },
    "ConditioningSetProperties": {
        "input": {
            "required": {
                "cond_NEW": [
                    "CONDITIONING"
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "set_cond_area": [
                    [
                        "default",
                        "mask bounds"
                    ]
                ]
            },
            "optional": {
                "mask": [
                    "MASK"
                ],
                "hooks": [
                    "HOOKS"
                ],
                "timesteps": [
                    "TIMESTEPS_RANGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "cond_NEW",
                "strength",
                "set_cond_area"
            ],
            "optional": [
                "mask",
                "hooks",
                "timesteps"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "ConditioningSetProperties",
        "display_name": "Cond Set Props",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/cond single",
        "output_node": false,
        "experimental": true
    },
    "ConditioningSetPropertiesAndCombine": {
        "input": {
            "required": {
                "cond": [
                    "CONDITIONING"
                ],
                "cond_NEW": [
                    "CONDITIONING"
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "set_cond_area": [
                    [
                        "default",
                        "mask bounds"
                    ]
                ]
            },
            "optional": {
                "mask": [
                    "MASK"
                ],
                "hooks": [
                    "HOOKS"
                ],
                "timesteps": [
                    "TIMESTEPS_RANGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "cond",
                "cond_NEW",
                "strength",
                "set_cond_area"
            ],
            "optional": [
                "mask",
                "hooks",
                "timesteps"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "ConditioningSetPropertiesAndCombine",
        "display_name": "Cond Set Props Combine",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/cond single",
        "output_node": false,
        "experimental": true
    },
    "PairConditioningSetProperties": {
        "input": {
            "required": {
                "positive_NEW": [
                    "CONDITIONING"
                ],
                "negative_NEW": [
                    "CONDITIONING"
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "set_cond_area": [
                    [
                        "default",
                        "mask bounds"
                    ]
                ]
            },
            "optional": {
                "mask": [
                    "MASK"
                ],
                "hooks": [
                    "HOOKS"
                ],
                "timesteps": [
                    "TIMESTEPS_RANGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive_NEW",
                "negative_NEW",
                "strength",
                "set_cond_area"
            ],
            "optional": [
                "mask",
                "hooks",
                "timesteps"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative"
        ],
        "name": "PairConditioningSetProperties",
        "display_name": "Cond Pair Set Props",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/cond pair",
        "output_node": false,
        "experimental": true
    },
    "PairConditioningSetPropertiesAndCombine": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "positive_NEW": [
                    "CONDITIONING"
                ],
                "negative_NEW": [
                    "CONDITIONING"
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ],
                "set_cond_area": [
                    [
                        "default",
                        "mask bounds"
                    ]
                ]
            },
            "optional": {
                "mask": [
                    "MASK"
                ],
                "hooks": [
                    "HOOKS"
                ],
                "timesteps": [
                    "TIMESTEPS_RANGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "positive_NEW",
                "negative_NEW",
                "strength",
                "set_cond_area"
            ],
            "optional": [
                "mask",
                "hooks",
                "timesteps"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative"
        ],
        "name": "PairConditioningSetPropertiesAndCombine",
        "display_name": "Cond Pair Set Props Combine",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/cond pair",
        "output_node": false,
        "experimental": true
    },
    "ConditioningSetDefaultCombine": {
        "input": {
            "required": {
                "cond": [
                    "CONDITIONING"
                ],
                "cond_DEFAULT": [
                    "CONDITIONING"
                ]
            },
            "optional": {
                "hooks": [
                    "HOOKS"
                ]
            }
        },
        "input_order": {
            "required": [
                "cond",
                "cond_DEFAULT"
            ],
            "optional": [
                "hooks"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "ConditioningSetDefaultCombine",
        "display_name": "Cond Set Default Combine",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/cond single",
        "output_node": false,
        "experimental": true
    },
    "PairConditioningSetDefaultCombine": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "positive_DEFAULT": [
                    "CONDITIONING"
                ],
                "negative_DEFAULT": [
                    "CONDITIONING"
                ]
            },
            "optional": {
                "hooks": [
                    "HOOKS"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "positive_DEFAULT",
                "negative_DEFAULT"
            ],
            "optional": [
                "hooks"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative"
        ],
        "name": "PairConditioningSetDefaultCombine",
        "display_name": "Cond Pair Set Default Combine",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/cond pair",
        "output_node": false,
        "experimental": true
    },
    "PairConditioningCombine": {
        "input": {
            "required": {
                "positive_A": [
                    "CONDITIONING"
                ],
                "negative_A": [
                    "CONDITIONING"
                ],
                "positive_B": [
                    "CONDITIONING"
                ],
                "negative_B": [
                    "CONDITIONING"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive_A",
                "negative_A",
                "positive_B",
                "negative_B"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative"
        ],
        "name": "PairConditioningCombine",
        "display_name": "Cond Pair Combine",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/cond pair",
        "output_node": false,
        "experimental": true
    },
    "SetClipHooks": {
        "input": {
            "required": {
                "clip": [
                    "CLIP"
                ],
                "apply_to_conds": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "schedule_clip": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ]
            },
            "optional": {
                "hooks": [
                    "HOOKS"
                ]
            }
        },
        "input_order": {
            "required": [
                "clip",
                "apply_to_conds",
                "schedule_clip"
            ],
            "optional": [
                "hooks"
            ]
        },
        "output": [
            "CLIP"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CLIP"
        ],
        "name": "SetClipHooks",
        "display_name": "Set CLIP Hooks",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks/clip",
        "output_node": false,
        "experimental": true
    },
    "ConditioningTimestepsRange": {
        "input": {
            "required": {
                "start_percent": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ],
                "end_percent": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.001
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "start_percent",
                "end_percent"
            ]
        },
        "output": [
            "TIMESTEPS_RANGE",
            "TIMESTEPS_RANGE",
            "TIMESTEPS_RANGE"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "TIMESTEPS_RANGE",
            "BEFORE_RANGE",
            "AFTER_RANGE"
        ],
        "name": "ConditioningTimestepsRange",
        "display_name": "Timesteps Range",
        "description": "",
        "python_module": "comfy_extras.nodes_hooks",
        "category": "advanced/hooks",
        "output_node": false,
        "experimental": true
    },
    "Load3D": {
        "input": {
            "required": {
                "model_file": [
                    [],
                    {
                        "file_upload": true
                    }
                ],
                "image": [
                    "LOAD_3D",
                    {}
                ],
                "width": [
                    "INT",
                    {
                        "default": 1024,
                        "min": 1,
                        "max": 4096,
                        "step": 1
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 1024,
                        "min": 1,
                        "max": 4096,
                        "step": 1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model_file",
                "image",
                "width",
                "height"
            ]
        },
        "output": [
            "IMAGE",
            "MASK",
            "STRING",
            "IMAGE",
            "IMAGE",
            "LOAD3D_CAMERA",
            "VIDEO"
        ],
        "output_is_list": [
            false,
            false,
            false,
            false,
            false,
            false,
            false
        ],
        "output_name": [
            "image",
            "mask",
            "mesh_path",
            "normal",
            "lineart",
            "camera_info",
            "recording_video"
        ],
        "name": "Load3D",
        "display_name": "Load 3D",
        "description": "",
        "python_module": "comfy_extras.nodes_load_3d",
        "category": "3d",
        "output_node": false,
        "experimental": true
    },
    "Load3DAnimation": {
        "input": {
            "required": {
                "model_file": [
                    [],
                    {
                        "file_upload": true
                    }
                ],
                "image": [
                    "LOAD_3D_ANIMATION",
                    {}
                ],
                "width": [
                    "INT",
                    {
                        "default": 1024,
                        "min": 1,
                        "max": 4096,
                        "step": 1
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 1024,
                        "min": 1,
                        "max": 4096,
                        "step": 1
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model_file",
                "image",
                "width",
                "height"
            ]
        },
        "output": [
            "IMAGE",
            "MASK",
            "STRING",
            "IMAGE",
            "LOAD3D_CAMERA",
            "VIDEO"
        ],
        "output_is_list": [
            false,
            false,
            false,
            false,
            false,
            false
        ],
        "output_name": [
            "image",
            "mask",
            "mesh_path",
            "normal",
            "camera_info",
            "recording_video"
        ],
        "name": "Load3DAnimation",
        "display_name": "Load 3D - Animation",
        "description": "",
        "python_module": "comfy_extras.nodes_load_3d",
        "category": "3d",
        "output_node": false,
        "experimental": true
    },
    "Preview3D": {
        "input": {
            "required": {
                "model_file": [
                    "STRING",
                    {
                        "default": "",
                        "multiline": false
                    }
                ]
            },
            "optional": {
                "camera_info": [
                    "LOAD3D_CAMERA",
                    {}
                ]
            }
        },
        "input_order": {
            "required": [
                "model_file"
            ],
            "optional": [
                "camera_info"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "Preview3D",
        "display_name": "Preview 3D",
        "description": "",
        "python_module": "comfy_extras.nodes_load_3d",
        "category": "3d",
        "output_node": true,
        "experimental": true
    },
    "Preview3DAnimation": {
        "input": {
            "required": {
                "model_file": [
                    "STRING",
                    {
                        "default": "",
                        "multiline": false
                    }
                ]
            },
            "optional": {
                "camera_info": [
                    "LOAD3D_CAMERA",
                    {}
                ]
            }
        },
        "input_order": {
            "required": [
                "model_file"
            ],
            "optional": [
                "camera_info"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "Preview3DAnimation",
        "display_name": "Preview 3D - Animation",
        "description": "",
        "python_module": "comfy_extras.nodes_load_3d",
        "category": "3d",
        "output_node": true,
        "experimental": true
    },
    "EmptyCosmosLatentVideo": {
        "input": {
            "required": {
                "width": [
                    "INT",
                    {
                        "default": 1280,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 704,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 121,
                        "min": 1,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "width",
                "height",
                "length",
                "batch_size"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "EmptyCosmosLatentVideo",
        "display_name": "EmptyCosmosLatentVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_cosmos",
        "category": "latent/video",
        "output_node": false
    },
    "CosmosImageToVideoLatent": {
        "input": {
            "required": {
                "vae": [
                    "VAE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 1280,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 704,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 121,
                        "min": 1,
                        "max": 16384,
                        "step": 8
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            },
            "optional": {
                "start_image": [
                    "IMAGE"
                ],
                "end_image": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "vae",
                "width",
                "height",
                "length",
                "batch_size"
            ],
            "optional": [
                "start_image",
                "end_image"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "CosmosImageToVideoLatent",
        "display_name": "CosmosImageToVideoLatent",
        "description": "",
        "python_module": "comfy_extras.nodes_cosmos",
        "category": "conditioning/inpaint",
        "output_node": false
    },
    "CosmosPredict2ImageToVideoLatent": {
        "input": {
            "required": {
                "vae": [
                    "VAE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 848,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 480,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 93,
                        "min": 1,
                        "max": 16384,
                        "step": 4
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            },
            "optional": {
                "start_image": [
                    "IMAGE"
                ],
                "end_image": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "vae",
                "width",
                "height",
                "length",
                "batch_size"
            ],
            "optional": [
                "start_image",
                "end_image"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "CosmosPredict2ImageToVideoLatent",
        "display_name": "CosmosPredict2ImageToVideoLatent",
        "description": "",
        "python_module": "comfy_extras.nodes_cosmos",
        "category": "conditioning/inpaint",
        "output_node": false
    },
    "SaveWEBM": {
        "input": {
            "required": {
                "images": [
                    "IMAGE"
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "ComfyUI"
                    }
                ],
                "codec": [
                    [
                        "vp9",
                        "av1"
                    ]
                ],
                "fps": [
                    "FLOAT",
                    {
                        "default": 24.0,
                        "min": 0.01,
                        "max": 1000.0,
                        "step": 0.01
                    }
                ],
                "crf": [
                    "FLOAT",
                    {
                        "default": 32.0,
                        "min": 0,
                        "max": 63.0,
                        "step": 1,
                        "tooltip": "Higher crf means lower quality with a smaller file size, lower crf means higher quality higher filesize."
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "images",
                "filename_prefix",
                "codec",
                "fps",
                "crf"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "SaveWEBM",
        "display_name": "SaveWEBM",
        "description": "",
        "python_module": "comfy_extras.nodes_video",
        "category": "image/video",
        "output_node": true,
        "experimental": true
    },
    "SaveVideo": {
        "input": {
            "required": {
                "video": [
                    "VIDEO",
                    {
                        "tooltip": "The video to save."
                    }
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "video/ComfyUI",
                        "tooltip": "The prefix for the file to save. This may include formatting information such as %date:yyyy-MM-dd% or %Empty Latent Image.width% to include values from nodes."
                    }
                ],
                "format": [
                    [
                        "auto",
                        "mp4"
                    ],
                    {
                        "default": "auto",
                        "tooltip": "The format to save the video as."
                    }
                ],
                "codec": [
                    [
                        "auto",
                        "h264"
                    ],
                    {
                        "default": "auto",
                        "tooltip": "The codec to use for the video."
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "video",
                "filename_prefix",
                "format",
                "codec"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "SaveVideo",
        "display_name": "Save Video",
        "description": "Saves the input images to your ComfyUI output directory.",
        "python_module": "comfy_extras.nodes_video",
        "category": "image/video",
        "output_node": true
    },
    "CreateVideo": {
        "input": {
            "required": {
                "images": [
                    "IMAGE",
                    {
                        "tooltip": "The images to create a video from."
                    }
                ],
                "fps": [
                    "FLOAT",
                    {
                        "default": 30.0,
                        "min": 1.0,
                        "max": 120.0,
                        "step": 1.0
                    }
                ]
            },
            "optional": {
                "audio": [
                    "AUDIO",
                    {
                        "tooltip": "The audio to add to the video."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "images",
                "fps"
            ],
            "optional": [
                "audio"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "CreateVideo",
        "display_name": "Create Video",
        "description": "Create a video from images.",
        "python_module": "comfy_extras.nodes_video",
        "category": "image/video",
        "output_node": false
    },
    "GetVideoComponents": {
        "input": {
            "required": {
                "video": [
                    "VIDEO",
                    {
                        "tooltip": "The video to extract components from."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "video"
            ]
        },
        "output": [
            "IMAGE",
            "AUDIO",
            "FLOAT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "images",
            "audio",
            "fps"
        ],
        "name": "GetVideoComponents",
        "display_name": "Get Video Components",
        "description": "Extracts all components from a video: frames, audio, and framerate.",
        "python_module": "comfy_extras.nodes_video",
        "category": "image/video",
        "output_node": false
    },
    "LoadVideo": {
        "input": {
            "required": {
                "file": [
                    [
                        "0000.mp4",
                        "02001_1 (1).mp4",
                        "02001_1.mp4",
                        "03017_1.mp4",
                        "03024 (1).mp4",
                        "03024.mp4",
                        "07003 (1).mp4",
                        "07003 (2).mp4",
                        "07003.mp4",
                        "09047.mp4",
                        "1001_input.mp4",
                        "1021_input-2s.mp4",
                        "1021_input.mp4",
                        "1021_input_5s.mp4",
                        "10_2s.mp4",
                        "11006.mp4",
                        "11008 (2).mp4",
                        "11008.mp4",
                        "11008_1.mp4",
                        "11008_1_1 (1).mp4",
                        "11008_1_1.mp4",
                        "1101_H.264.mp4",
                        "1102_H.264.mp4",
                        "1103_H.264.mp4",
                        "1104.mp4",
                        "1105.mp4",
                        "1106.mp4",
                        "1107.mp4",
                        "11_2s.mp4",
                        "1boy-1-1080.mp4",
                        "1boy-2.mp4",
                        "202403221843 (2).mp4",
                        "202403221843 (4).mp4",
                        "202404042125.mp4",
                        "202404042216 (1) (1).mp4",
                        "202404042216 (1).mp4",
                        "202404042216.mp4",
                        "202404191453.mp4",
                        "202404191810 (1) (1).mp4",
                        "202404191810 (1).mp4",
                        "202404191810 (3).mp4",
                        "202404191810 (4).mp4",
                        "202404251935.mp4",
                        "202404252058 (1).mp4",
                        "202404252058.mp4",
                        "202405091509 (1).mp4",
                        "202405091509.mp4",
                        "202407092009 (4).mp4",
                        "202407262309.mp4",
                        "202409031945 (2).mp4",
                        "202409131521 (1).mp4",
                        "202409131521 (2).mp4",
                        "202409131521.mp4",
                        "202409152236.mp4",
                        "202411202208.mp4",
                        "202412132035.mp4",
                        "202412141045 (1).mp4",
                        "202412141045 (2).mp4",
                        "202412141045.mp4",
                        "202502102056.mp4",
                        "25328-349634257_medium.mp4",
                        "2s.mp4",
                        "2\u670824\u65e5(4).mp4",
                        "308927219-33621520-a429-4155-aa3a-ac5cd15bda56.mp4",
                        "3139866-hd_720_1280_30fps.mp4",
                        "4380323-hd_1080_1920_30fps.mp4",
                        "4990346-hd_1080_1920_30fps.mp4",
                        "71834-540475381_medium.mp4",
                        "7326816-hd_1080_1920_24fps.mp4",
                        "8116023-hd_1080_1920_25fps.mp4",
                        "BeachGirlVidSBS.mp4",
                        "Gen-3 Alpha Turbo 2850506560, A cinematic close do, Cropped - pexels-gon, M 5.mp4",
                        "InShot_20240913_013852769.mp4",
                        "LightMap_2.mp4",
                        "Nocturna_011_Chica_Caminando_02 (1).mp4",
                        "Professional_Mode_16x9_A_woman_in_a_red_raincoat_walks_ (1).mp4",
                        "RunComfy_examples_1080_video.mp4",
                        "RunComfy_examples_1081_video.mp4",
                        "RunComfy_examples_1082_video.mp4",
                        "RunComfy_examples_1093_video.mp4",
                        "RunComfy_examples_1124_1.mp4",
                        "RunComfy_examples_1128.mp4",
                        "RunComfy_examples_1133.mp4",
                        "RunComfy_examples_1134.mp4",
                        "RunComfy_examples_1178.mp4",
                        "Runcomfy_Example_1208_2.mp4",
                        "a.mp4",
                        "asset (9).mp4",
                        "black-white-video (1).mp4",
                        "black-white-video.mp4",
                        "canny.mp4",
                        "cut_two_1s.mp4",
                        "depth.mp4",
                        "mask.mp4",
                        "nature_4.mp4",
                        "original - 1.mp4",
                        "original - 2.mp4",
                        "production_id_4990425 (1080p).mp4",
                        "vecteezy_white-fluid-transitions-loop-animation_42106295 (1).mp4",
                        "vecteezy_white-fluid-transitions-loop-animation_42106295 (2).mp4",
                        "vecteezy_white-fluid-transitions-loop-animation_42106295.mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (6) (1).mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (6).mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (7).mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (8) (1).mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (8) (2).mp4",
                        "\u672a\u547d\u540d\u8349\u7a3f (8).mp4"
                    ],
                    {
                        "video_upload": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "file"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "LoadVideo",
        "display_name": "Load Video",
        "description": "",
        "python_module": "comfy_extras.nodes_video",
        "category": "image/video",
        "output_node": false
    },
    "CLIPTextEncodeLumina2": {
        "input": {
            "required": {
                "system_prompt": [
                    [
                        "superior",
                        "alignment"
                    ],
                    {
                        "tooltip": "Lumina2 provide two types of system prompts:Superior: You are an assistant designed to generate superior images with the superior degree of image-text alignment based on textual prompts or user prompts. Alignment: You are an assistant designed to generate high-quality images with the highest degree of image-text alignment based on textual prompts."
                    }
                ],
                "user_prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true,
                        "tooltip": "The text to be encoded."
                    }
                ],
                "clip": [
                    "CLIP",
                    {
                        "tooltip": "The CLIP model used for encoding the text."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "system_prompt",
                "user_prompt",
                "clip"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "CLIPTextEncodeLumina2",
        "display_name": "CLIP Text Encode for Lumina2",
        "description": "Encodes a system prompt and a user prompt using a CLIP model into an embedding that can be used to guide the diffusion model towards generating specific images.",
        "python_module": "comfy_extras.nodes_lumina2",
        "category": "conditioning",
        "output_node": false,
        "output_tooltips": [
            "A conditioning containing the embedded text used to guide the diffusion model."
        ]
    },
    "RenormCFG": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "cfg_trunc": [
                    "FLOAT",
                    {
                        "default": 100,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ],
                "renorm_cfg": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "cfg_trunc",
                "renorm_cfg"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "RenormCFG",
        "display_name": "RenormCFG",
        "description": "",
        "python_module": "comfy_extras.nodes_lumina2",
        "category": "advanced/model",
        "output_node": false
    },
    "WanTrackToVideo": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "vae": [
                    "VAE"
                ],
                "tracks": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "[]"
                    }
                ],
                "width": [
                    "INT",
                    {
                        "default": 832,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 480,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 81,
                        "min": 1,
                        "max": 16384,
                        "step": 4
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ],
                "temperature": [
                    "FLOAT",
                    {
                        "default": 220.0,
                        "min": 1.0,
                        "max": 1000.0,
                        "step": 0.1
                    }
                ],
                "topk": [
                    "INT",
                    {
                        "default": 2,
                        "min": 1,
                        "max": 10
                    }
                ],
                "start_image": [
                    "IMAGE"
                ]
            },
            "optional": {
                "clip_vision_output": [
                    "CLIP_VISION_OUTPUT"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "vae",
                "tracks",
                "width",
                "height",
                "length",
                "batch_size",
                "temperature",
                "topk",
                "start_image"
            ],
            "optional": [
                "clip_vision_output"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "WanTrackToVideo",
        "display_name": "WanTrackToVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_wan",
        "category": "conditioning/video_models",
        "output_node": false
    },
    "WanImageToVideo": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "vae": [
                    "VAE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 832,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 480,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 81,
                        "min": 1,
                        "max": 16384,
                        "step": 4
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            },
            "optional": {
                "clip_vision_output": [
                    "CLIP_VISION_OUTPUT"
                ],
                "start_image": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "vae",
                "width",
                "height",
                "length",
                "batch_size"
            ],
            "optional": [
                "clip_vision_output",
                "start_image"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "WanImageToVideo",
        "display_name": "WanImageToVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_wan",
        "category": "conditioning/video_models",
        "output_node": false
    },
    "WanFunControlToVideo": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "vae": [
                    "VAE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 832,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 480,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 81,
                        "min": 1,
                        "max": 16384,
                        "step": 4
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            },
            "optional": {
                "clip_vision_output": [
                    "CLIP_VISION_OUTPUT"
                ],
                "start_image": [
                    "IMAGE"
                ],
                "control_video": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "vae",
                "width",
                "height",
                "length",
                "batch_size"
            ],
            "optional": [
                "clip_vision_output",
                "start_image",
                "control_video"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "WanFunControlToVideo",
        "display_name": "WanFunControlToVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_wan",
        "category": "conditioning/video_models",
        "output_node": false
    },
    "WanFunInpaintToVideo": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "vae": [
                    "VAE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 832,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 480,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 81,
                        "min": 1,
                        "max": 16384,
                        "step": 4
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            },
            "optional": {
                "clip_vision_output": [
                    "CLIP_VISION_OUTPUT"
                ],
                "start_image": [
                    "IMAGE"
                ],
                "end_image": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "vae",
                "width",
                "height",
                "length",
                "batch_size"
            ],
            "optional": [
                "clip_vision_output",
                "start_image",
                "end_image"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "WanFunInpaintToVideo",
        "display_name": "WanFunInpaintToVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_wan",
        "category": "conditioning/video_models",
        "output_node": false
    },
    "WanFirstLastFrameToVideo": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "vae": [
                    "VAE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 832,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 480,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 81,
                        "min": 1,
                        "max": 16384,
                        "step": 4
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            },
            "optional": {
                "clip_vision_start_image": [
                    "CLIP_VISION_OUTPUT"
                ],
                "clip_vision_end_image": [
                    "CLIP_VISION_OUTPUT"
                ],
                "start_image": [
                    "IMAGE"
                ],
                "end_image": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "vae",
                "width",
                "height",
                "length",
                "batch_size"
            ],
            "optional": [
                "clip_vision_start_image",
                "clip_vision_end_image",
                "start_image",
                "end_image"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "WanFirstLastFrameToVideo",
        "display_name": "WanFirstLastFrameToVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_wan",
        "category": "conditioning/video_models",
        "output_node": false
    },
    "WanVaceToVideo": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "vae": [
                    "VAE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 832,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 480,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 81,
                        "min": 1,
                        "max": 16384,
                        "step": 4
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1000.0,
                        "step": 0.01
                    }
                ]
            },
            "optional": {
                "control_video": [
                    "IMAGE"
                ],
                "control_masks": [
                    "MASK"
                ],
                "reference_image": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "vae",
                "width",
                "height",
                "length",
                "batch_size",
                "strength"
            ],
            "optional": [
                "control_video",
                "control_masks",
                "reference_image"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT",
            "INT"
        ],
        "output_is_list": [
            false,
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent",
            "trim_latent"
        ],
        "name": "WanVaceToVideo",
        "display_name": "WanVaceToVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_wan",
        "category": "conditioning/video_models",
        "output_node": false,
        "experimental": true
    },
    "TrimVideoLatent": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "trim_amount": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 99999
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "trim_amount"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "TrimVideoLatent",
        "display_name": "TrimVideoLatent",
        "description": "",
        "python_module": "comfy_extras.nodes_wan",
        "category": "latent/video",
        "output_node": false,
        "experimental": true
    },
    "WanCameraImageToVideo": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "vae": [
                    "VAE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 832,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 480,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 81,
                        "min": 1,
                        "max": 16384,
                        "step": 4
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            },
            "optional": {
                "clip_vision_output": [
                    "CLIP_VISION_OUTPUT"
                ],
                "start_image": [
                    "IMAGE"
                ],
                "camera_conditions": [
                    "WAN_CAMERA_EMBEDDING"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "vae",
                "width",
                "height",
                "length",
                "batch_size"
            ],
            "optional": [
                "clip_vision_output",
                "start_image",
                "camera_conditions"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative",
            "latent"
        ],
        "name": "WanCameraImageToVideo",
        "display_name": "WanCameraImageToVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_wan",
        "category": "conditioning/video_models",
        "output_node": false
    },
    "WanPhantomSubjectToVideo": {
        "input": {
            "required": {
                "positive": [
                    "CONDITIONING"
                ],
                "negative": [
                    "CONDITIONING"
                ],
                "vae": [
                    "VAE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 832,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 480,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 81,
                        "min": 1,
                        "max": 16384,
                        "step": 4
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            },
            "optional": {
                "images": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "positive",
                "negative",
                "vae",
                "width",
                "height",
                "length",
                "batch_size"
            ],
            "optional": [
                "images"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING",
            "CONDITIONING",
            "LATENT"
        ],
        "output_is_list": [
            false,
            false,
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative_text",
            "negative_img_text",
            "latent"
        ],
        "name": "WanPhantomSubjectToVideo",
        "display_name": "WanPhantomSubjectToVideo",
        "description": "",
        "python_module": "comfy_extras.nodes_wan",
        "category": "conditioning/video_models",
        "output_node": false
    },
    "Wan22ImageToVideoLatent": {
        "input": {
            "required": {
                "vae": [
                    "VAE"
                ],
                "width": [
                    "INT",
                    {
                        "default": 1280,
                        "min": 32,
                        "max": 16384,
                        "step": 32
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 704,
                        "min": 32,
                        "max": 16384,
                        "step": 32
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 49,
                        "min": 1,
                        "max": 16384,
                        "step": 4
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096
                    }
                ]
            },
            "optional": {
                "start_image": [
                    "IMAGE"
                ]
            }
        },
        "input_order": {
            "required": [
                "vae",
                "width",
                "height",
                "length",
                "batch_size"
            ],
            "optional": [
                "start_image"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "Wan22ImageToVideoLatent",
        "display_name": "Wan22ImageToVideoLatent",
        "description": "",
        "python_module": "comfy_extras.nodes_wan",
        "category": "conditioning/inpaint",
        "output_node": false
    },
    "LotusConditioning": {
        "input": {
            "required": {}
        },
        "input_order": {
            "required": []
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "conditioning"
        ],
        "name": "LotusConditioning",
        "display_name": "LotusConditioning",
        "description": "",
        "python_module": "comfy_extras.nodes_lotus",
        "category": "conditioning/lotus",
        "output_node": false
    },
    "EmptyLatentHunyuan3Dv2": {
        "input": {
            "required": {
                "resolution": [
                    "INT",
                    {
                        "default": 3072,
                        "min": 1,
                        "max": 8192
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096,
                        "tooltip": "The number of latent images in the batch."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "resolution",
                "batch_size"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "EmptyLatentHunyuan3Dv2",
        "display_name": "EmptyLatentHunyuan3Dv2",
        "description": "",
        "python_module": "comfy_extras.nodes_hunyuan3d",
        "category": "latent/3d",
        "output_node": false
    },
    "Hunyuan3Dv2Conditioning": {
        "input": {
            "required": {
                "clip_vision_output": [
                    "CLIP_VISION_OUTPUT"
                ]
            }
        },
        "input_order": {
            "required": [
                "clip_vision_output"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative"
        ],
        "name": "Hunyuan3Dv2Conditioning",
        "display_name": "Hunyuan3Dv2Conditioning",
        "description": "",
        "python_module": "comfy_extras.nodes_hunyuan3d",
        "category": "conditioning/video_models",
        "output_node": false
    },
    "Hunyuan3Dv2ConditioningMultiView": {
        "input": {
            "required": {},
            "optional": {
                "front": [
                    "CLIP_VISION_OUTPUT"
                ],
                "left": [
                    "CLIP_VISION_OUTPUT"
                ],
                "back": [
                    "CLIP_VISION_OUTPUT"
                ],
                "right": [
                    "CLIP_VISION_OUTPUT"
                ]
            }
        },
        "input_order": {
            "required": [],
            "optional": [
                "front",
                "left",
                "back",
                "right"
            ]
        },
        "output": [
            "CONDITIONING",
            "CONDITIONING"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "positive",
            "negative"
        ],
        "name": "Hunyuan3Dv2ConditioningMultiView",
        "display_name": "Hunyuan3Dv2ConditioningMultiView",
        "description": "",
        "python_module": "comfy_extras.nodes_hunyuan3d",
        "category": "conditioning/video_models",
        "output_node": false
    },
    "VAEDecodeHunyuan3D": {
        "input": {
            "required": {
                "samples": [
                    "LATENT"
                ],
                "vae": [
                    "VAE"
                ],
                "num_chunks": [
                    "INT",
                    {
                        "default": 8000,
                        "min": 1000,
                        "max": 500000
                    }
                ],
                "octree_resolution": [
                    "INT",
                    {
                        "default": 256,
                        "min": 16,
                        "max": 512
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "samples",
                "vae",
                "num_chunks",
                "octree_resolution"
            ]
        },
        "output": [
            "VOXEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VOXEL"
        ],
        "name": "VAEDecodeHunyuan3D",
        "display_name": "VAEDecodeHunyuan3D",
        "description": "",
        "python_module": "comfy_extras.nodes_hunyuan3d",
        "category": "latent/3d",
        "output_node": false
    },
    "VoxelToMeshBasic": {
        "input": {
            "required": {
                "voxel": [
                    "VOXEL"
                ],
                "threshold": [
                    "FLOAT",
                    {
                        "default": 0.6,
                        "min": -1.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "voxel",
                "threshold"
            ]
        },
        "output": [
            "MESH"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MESH"
        ],
        "name": "VoxelToMeshBasic",
        "display_name": "VoxelToMeshBasic",
        "description": "",
        "python_module": "comfy_extras.nodes_hunyuan3d",
        "category": "3d",
        "output_node": false
    },
    "VoxelToMesh": {
        "input": {
            "required": {
                "voxel": [
                    "VOXEL"
                ],
                "algorithm": [
                    [
                        "surface net",
                        "basic"
                    ]
                ],
                "threshold": [
                    "FLOAT",
                    {
                        "default": 0.6,
                        "min": -1.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "voxel",
                "algorithm",
                "threshold"
            ]
        },
        "output": [
            "MESH"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MESH"
        ],
        "name": "VoxelToMesh",
        "display_name": "VoxelToMesh",
        "description": "",
        "python_module": "comfy_extras.nodes_hunyuan3d",
        "category": "3d",
        "output_node": false
    },
    "SaveGLB": {
        "input": {
            "required": {
                "mesh": [
                    "MESH"
                ],
                "filename_prefix": [
                    "STRING",
                    {
                        "default": "mesh/ComfyUI"
                    }
                ]
            },
            "hidden": {
                "prompt": "PROMPT",
                "extra_pnginfo": "EXTRA_PNGINFO"
            }
        },
        "input_order": {
            "required": [
                "mesh",
                "filename_prefix"
            ],
            "hidden": [
                "prompt",
                "extra_pnginfo"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "SaveGLB",
        "display_name": "SaveGLB",
        "description": "",
        "python_module": "comfy_extras.nodes_hunyuan3d",
        "category": "3d",
        "output_node": true
    },
    "PrimitiveString": {
        "input": {
            "required": {
                "value": [
                    "STRING",
                    {}
                ]
            }
        },
        "input_order": {
            "required": [
                "value"
            ]
        },
        "output": [
            "STRING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "STRING"
        ],
        "name": "PrimitiveString",
        "display_name": "String",
        "description": "",
        "python_module": "comfy_extras.nodes_primitive",
        "category": "utils/primitive",
        "output_node": false
    },
    "PrimitiveStringMultiline": {
        "input": {
            "required": {
                "value": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "value"
            ]
        },
        "output": [
            "STRING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "STRING"
        ],
        "name": "PrimitiveStringMultiline",
        "display_name": "String (Multiline)",
        "description": "",
        "python_module": "comfy_extras.nodes_primitive",
        "category": "utils/primitive",
        "output_node": false
    },
    "PrimitiveInt": {
        "input": {
            "required": {
                "value": [
                    "INT",
                    {
                        "min": -9223372036854775807,
                        "max": 9223372036854775807,
                        "control_after_generate": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "value"
            ]
        },
        "output": [
            "INT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "INT"
        ],
        "name": "PrimitiveInt",
        "display_name": "Int",
        "description": "",
        "python_module": "comfy_extras.nodes_primitive",
        "category": "utils/primitive",
        "output_node": false
    },
    "PrimitiveFloat": {
        "input": {
            "required": {
                "value": [
                    "FLOAT",
                    {
                        "min": -9223372036854775807,
                        "max": 9223372036854775807
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "value"
            ]
        },
        "output": [
            "FLOAT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "FLOAT"
        ],
        "name": "PrimitiveFloat",
        "display_name": "Float",
        "description": "",
        "python_module": "comfy_extras.nodes_primitive",
        "category": "utils/primitive",
        "output_node": false
    },
    "PrimitiveBoolean": {
        "input": {
            "required": {
                "value": [
                    "BOOLEAN",
                    {}
                ]
            }
        },
        "input_order": {
            "required": [
                "value"
            ]
        },
        "output": [
            "BOOLEAN"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "BOOLEAN"
        ],
        "name": "PrimitiveBoolean",
        "display_name": "Boolean",
        "description": "",
        "python_module": "comfy_extras.nodes_primitive",
        "category": "utils/primitive",
        "output_node": false
    },
    "CFGZeroStar": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ]
            }
        },
        "input_order": {
            "required": [
                "model"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "patched_model"
        ],
        "name": "CFGZeroStar",
        "display_name": "CFGZeroStar",
        "description": "",
        "python_module": "comfy_extras.nodes_cfg",
        "category": "advanced/guidance",
        "output_node": false
    },
    "CFGNorm": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 100.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "strength"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "patched_model"
        ],
        "name": "CFGNorm",
        "display_name": "CFGNorm",
        "description": "",
        "python_module": "comfy_extras.nodes_cfg",
        "category": "advanced/guidance",
        "output_node": false,
        "experimental": true
    },
    "OptimalStepsScheduler": {
        "input": {
            "required": {
                "model_type": [
                    [
                        "FLUX",
                        "Wan",
                        "Chroma"
                    ]
                ],
                "steps": [
                    "INT",
                    {
                        "default": 20,
                        "min": 3,
                        "max": 1000
                    }
                ],
                "denoise": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model_type",
                "steps",
                "denoise"
            ]
        },
        "output": [
            "SIGMAS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SIGMAS"
        ],
        "name": "OptimalStepsScheduler",
        "display_name": "OptimalStepsScheduler",
        "description": "",
        "python_module": "comfy_extras.nodes_optimalsteps",
        "category": "sampling/custom_sampling/schedulers",
        "output_node": false
    },
    "QuadrupleCLIPLoader": {
        "input": {
            "required": {
                "clip_name1": [
                    [
                        "EVA02_CLIP_L_336_psz14_s6B.pt",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "ViT-L-14.pt",
                        "clip-vit-large-patch14/model.safetensors",
                        "clip_g_hidream.safetensors",
                        "clip_l.safetensors",
                        "clip_l_hidream.safetensors",
                        "google--siglip-so400m-patch14-384/model.safetensors",
                        "llama_3.1_8b_instruct_fp8_scaled.safetensors",
                        "llava_llama3_fp16.safetensors",
                        "llava_llama3_fp8_scaled.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "oldt5_xxl_fp16.safetensors",
                        "oldt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "open-clip-xlm-roberta-large-vit-huge-14_visual_fp16.safetensors",
                        "qwen_2.5_vl_7b.safetensors",
                        "qwen_2.5_vl_7b_fp8_scaled.safetensors",
                        "sa1/t5_base.safetensors",
                        "sc/model.safetensors",
                        "sd3m/clip_g.safetensors",
                        "sd3m/clip_l.safetensors",
                        "sd3m/t5xxl_fp16.safetensors",
                        "sd3m/t5xxl_fp8_e4m3fn.safetensors",
                        "siglip-so400m-patch14-384/model.safetensors",
                        "t5/google_t5-v1_1-xxl_encoderonly-fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp16.safetensors",
                        "t5/t5xxl_fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "t5xxl_fp16.safetensors",
                        "t5xxl_fp8_e4m3fn.safetensors",
                        "t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "text_encoder/model-00001-of-00002.safetensors",
                        "text_encoder/model-00002-of-00002.safetensors",
                        "umt5-xxl-enc-bf16.safetensors",
                        "umt5-xxl-enc-fp8_e4m3fn.safetensors",
                        "umt5_xxl_fp16.safetensors",
                        "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "wan2_1/umt5-xxl-enc-bf16.safetensors",
                        "wan2_1/umt5-xxl-enc-fp8_e4m3fn.safetensors"
                    ]
                ],
                "clip_name2": [
                    [
                        "EVA02_CLIP_L_336_psz14_s6B.pt",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "ViT-L-14.pt",
                        "clip-vit-large-patch14/model.safetensors",
                        "clip_g_hidream.safetensors",
                        "clip_l.safetensors",
                        "clip_l_hidream.safetensors",
                        "google--siglip-so400m-patch14-384/model.safetensors",
                        "llama_3.1_8b_instruct_fp8_scaled.safetensors",
                        "llava_llama3_fp16.safetensors",
                        "llava_llama3_fp8_scaled.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "oldt5_xxl_fp16.safetensors",
                        "oldt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "open-clip-xlm-roberta-large-vit-huge-14_visual_fp16.safetensors",
                        "qwen_2.5_vl_7b.safetensors",
                        "qwen_2.5_vl_7b_fp8_scaled.safetensors",
                        "sa1/t5_base.safetensors",
                        "sc/model.safetensors",
                        "sd3m/clip_g.safetensors",
                        "sd3m/clip_l.safetensors",
                        "sd3m/t5xxl_fp16.safetensors",
                        "sd3m/t5xxl_fp8_e4m3fn.safetensors",
                        "siglip-so400m-patch14-384/model.safetensors",
                        "t5/google_t5-v1_1-xxl_encoderonly-fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp16.safetensors",
                        "t5/t5xxl_fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "t5xxl_fp16.safetensors",
                        "t5xxl_fp8_e4m3fn.safetensors",
                        "t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "text_encoder/model-00001-of-00002.safetensors",
                        "text_encoder/model-00002-of-00002.safetensors",
                        "umt5-xxl-enc-bf16.safetensors",
                        "umt5-xxl-enc-fp8_e4m3fn.safetensors",
                        "umt5_xxl_fp16.safetensors",
                        "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "wan2_1/umt5-xxl-enc-bf16.safetensors",
                        "wan2_1/umt5-xxl-enc-fp8_e4m3fn.safetensors"
                    ]
                ],
                "clip_name3": [
                    [
                        "EVA02_CLIP_L_336_psz14_s6B.pt",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "ViT-L-14.pt",
                        "clip-vit-large-patch14/model.safetensors",
                        "clip_g_hidream.safetensors",
                        "clip_l.safetensors",
                        "clip_l_hidream.safetensors",
                        "google--siglip-so400m-patch14-384/model.safetensors",
                        "llama_3.1_8b_instruct_fp8_scaled.safetensors",
                        "llava_llama3_fp16.safetensors",
                        "llava_llama3_fp8_scaled.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "oldt5_xxl_fp16.safetensors",
                        "oldt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "open-clip-xlm-roberta-large-vit-huge-14_visual_fp16.safetensors",
                        "qwen_2.5_vl_7b.safetensors",
                        "qwen_2.5_vl_7b_fp8_scaled.safetensors",
                        "sa1/t5_base.safetensors",
                        "sc/model.safetensors",
                        "sd3m/clip_g.safetensors",
                        "sd3m/clip_l.safetensors",
                        "sd3m/t5xxl_fp16.safetensors",
                        "sd3m/t5xxl_fp8_e4m3fn.safetensors",
                        "siglip-so400m-patch14-384/model.safetensors",
                        "t5/google_t5-v1_1-xxl_encoderonly-fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp16.safetensors",
                        "t5/t5xxl_fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "t5xxl_fp16.safetensors",
                        "t5xxl_fp8_e4m3fn.safetensors",
                        "t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "text_encoder/model-00001-of-00002.safetensors",
                        "text_encoder/model-00002-of-00002.safetensors",
                        "umt5-xxl-enc-bf16.safetensors",
                        "umt5-xxl-enc-fp8_e4m3fn.safetensors",
                        "umt5_xxl_fp16.safetensors",
                        "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "wan2_1/umt5-xxl-enc-bf16.safetensors",
                        "wan2_1/umt5-xxl-enc-fp8_e4m3fn.safetensors"
                    ]
                ],
                "clip_name4": [
                    [
                        "EVA02_CLIP_L_336_psz14_s6B.pt",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "ViT-L-14.pt",
                        "clip-vit-large-patch14/model.safetensors",
                        "clip_g_hidream.safetensors",
                        "clip_l.safetensors",
                        "clip_l_hidream.safetensors",
                        "google--siglip-so400m-patch14-384/model.safetensors",
                        "llama_3.1_8b_instruct_fp8_scaled.safetensors",
                        "llava_llama3_fp16.safetensors",
                        "llava_llama3_fp8_scaled.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
                        "long_clip/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors",
                        "oldt5_xxl_fp16.safetensors",
                        "oldt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "open-clip-xlm-roberta-large-vit-huge-14_visual_fp16.safetensors",
                        "qwen_2.5_vl_7b.safetensors",
                        "qwen_2.5_vl_7b_fp8_scaled.safetensors",
                        "sa1/t5_base.safetensors",
                        "sc/model.safetensors",
                        "sd3m/clip_g.safetensors",
                        "sd3m/clip_l.safetensors",
                        "sd3m/t5xxl_fp16.safetensors",
                        "sd3m/t5xxl_fp8_e4m3fn.safetensors",
                        "siglip-so400m-patch14-384/model.safetensors",
                        "t5/google_t5-v1_1-xxl_encoderonly-fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp16.safetensors",
                        "t5/t5xxl_fp8_e4m3fn.safetensors",
                        "t5/t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "t5xxl_fp16.safetensors",
                        "t5xxl_fp8_e4m3fn.safetensors",
                        "t5xxl_fp8_e4m3fn_scaled.safetensors",
                        "text_encoder/model-00001-of-00002.safetensors",
                        "text_encoder/model-00002-of-00002.safetensors",
                        "umt5-xxl-enc-bf16.safetensors",
                        "umt5-xxl-enc-fp8_e4m3fn.safetensors",
                        "umt5_xxl_fp16.safetensors",
                        "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
                        "wan2_1/umt5-xxl-enc-bf16.safetensors",
                        "wan2_1/umt5-xxl-enc-fp8_e4m3fn.safetensors"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "clip_name1",
                "clip_name2",
                "clip_name3",
                "clip_name4"
            ]
        },
        "output": [
            "CLIP"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CLIP"
        ],
        "name": "QuadrupleCLIPLoader",
        "display_name": "QuadrupleCLIPLoader",
        "description": "[Recipes]\n\nhidream: long clip-l, long clip-g, t5xxl, llama_8b_3.1_instruct",
        "python_module": "comfy_extras.nodes_hidream",
        "category": "advanced/loaders",
        "output_node": false
    },
    "CLIPTextEncodeHiDream": {
        "input": {
            "required": {
                "clip": [
                    "CLIP"
                ],
                "clip_l": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "clip_g": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "t5xxl": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "llama": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip",
                "clip_l",
                "clip_g",
                "t5xxl",
                "llama"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "CLIPTextEncodeHiDream",
        "display_name": "CLIPTextEncodeHiDream",
        "description": "",
        "python_module": "comfy_extras.nodes_hidream",
        "category": "advanced/conditioning",
        "output_node": false
    },
    "FreSca": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "scale_low": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0,
                        "max": 10,
                        "step": 0.01,
                        "tooltip": "Scaling factor for low-frequency components"
                    }
                ],
                "scale_high": [
                    "FLOAT",
                    {
                        "default": 1.25,
                        "min": 0,
                        "max": 10,
                        "step": 0.01,
                        "tooltip": "Scaling factor for high-frequency components"
                    }
                ],
                "freq_cutoff": [
                    "INT",
                    {
                        "default": 20,
                        "min": 1,
                        "max": 10000,
                        "step": 1,
                        "tooltip": "Number of frequency indices around center to consider as low-frequency"
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "scale_low",
                "scale_high",
                "freq_cutoff"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "FreSca",
        "display_name": "FreSca",
        "description": "Applies frequency-dependent scaling to the guidance",
        "python_module": "comfy_extras.nodes_fresca",
        "category": "_for_testing",
        "output_node": false
    },
    "APG": {
        "input": {
            "required": {
                "model": [
                    "MODEL"
                ],
                "eta": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": -10.0,
                        "max": 10.0,
                        "step": 0.01,
                        "tooltip": "Controls the scale of the parallel guidance vector. Default CFG behavior at a setting of 1."
                    }
                ],
                "norm_threshold": [
                    "FLOAT",
                    {
                        "default": 5.0,
                        "min": 0.0,
                        "max": 50.0,
                        "step": 0.1,
                        "tooltip": "Normalize guidance vector to this value, normalization disable at a setting of 0."
                    }
                ],
                "momentum": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": -5.0,
                        "max": 1.0,
                        "step": 0.01,
                        "tooltip": "Controls a running average of guidance during diffusion, disabled at a setting of 0."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "model",
                "eta",
                "norm_threshold",
                "momentum"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "MODEL"
        ],
        "name": "APG",
        "display_name": "Adaptive Projected Guidance",
        "description": "",
        "python_module": "comfy_extras.nodes_apg",
        "category": "sampling/custom_sampling",
        "output_node": false
    },
    "PreviewAny": {
        "input": {
            "required": {
                "source": [
                    "*",
                    {}
                ]
            }
        },
        "input_order": {
            "required": [
                "source"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "PreviewAny",
        "display_name": "Preview Any",
        "description": "",
        "python_module": "comfy_extras.nodes_preview_any",
        "category": "utils",
        "output_node": true
    },
    "TextEncodeAceStepAudio": {
        "input": {
            "required": {
                "clip": [
                    "CLIP"
                ],
                "tags": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "lyrics": [
                    "STRING",
                    {
                        "multiline": true,
                        "dynamicPrompts": true
                    }
                ],
                "lyrics_strength": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 10.0,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "clip",
                "tags",
                "lyrics",
                "lyrics_strength"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "TextEncodeAceStepAudio",
        "display_name": "TextEncodeAceStepAudio",
        "description": "",
        "python_module": "comfy_extras.nodes_ace",
        "category": "conditioning",
        "output_node": false
    },
    "EmptyAceStepLatentAudio": {
        "input": {
            "required": {
                "seconds": [
                    "FLOAT",
                    {
                        "default": 120.0,
                        "min": 1.0,
                        "max": 1000.0,
                        "step": 0.1
                    }
                ],
                "batch_size": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 4096,
                        "tooltip": "The number of latent images in the batch."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "seconds",
                "batch_size"
            ]
        },
        "output": [
            "LATENT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "LATENT"
        ],
        "name": "EmptyAceStepLatentAudio",
        "display_name": "EmptyAceStepLatentAudio",
        "description": "",
        "python_module": "comfy_extras.nodes_ace",
        "category": "latent/audio",
        "output_node": false
    },
    "StringConcatenate": {
        "input": {
            "required": {
                "string_a": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "string_b": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "delimiter": [
                    "STRING",
                    {
                        "multiline": false,
                        "default": ""
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "string_a",
                "string_b",
                "delimiter"
            ]
        },
        "output": [
            "STRING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "STRING"
        ],
        "name": "StringConcatenate",
        "display_name": "Concatenate",
        "description": "",
        "python_module": "comfy_extras.nodes_string",
        "category": "utils/string",
        "output_node": false
    },
    "StringSubstring": {
        "input": {
            "required": {
                "string": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "start": [
                    "INT",
                    {}
                ],
                "end": [
                    "INT",
                    {}
                ]
            }
        },
        "input_order": {
            "required": [
                "string",
                "start",
                "end"
            ]
        },
        "output": [
            "STRING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "STRING"
        ],
        "name": "StringSubstring",
        "display_name": "Substring",
        "description": "",
        "python_module": "comfy_extras.nodes_string",
        "category": "utils/string",
        "output_node": false
    },
    "StringLength": {
        "input": {
            "required": {
                "string": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "string"
            ]
        },
        "output": [
            "INT"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "length"
        ],
        "name": "StringLength",
        "display_name": "Length",
        "description": "",
        "python_module": "comfy_extras.nodes_string",
        "category": "utils/string",
        "output_node": false
    },
    "CaseConverter": {
        "input": {
            "required": {
                "string": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "mode": [
                    "COMBO",
                    {
                        "options": [
                            "UPPERCASE",
                            "lowercase",
                            "Capitalize",
                            "Title Case"
                        ]
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "string",
                "mode"
            ]
        },
        "output": [
            "STRING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "STRING"
        ],
        "name": "CaseConverter",
        "display_name": "Case Converter",
        "description": "",
        "python_module": "comfy_extras.nodes_string",
        "category": "utils/string",
        "output_node": false
    },
    "StringTrim": {
        "input": {
            "required": {
                "string": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "mode": [
                    "COMBO",
                    {
                        "options": [
                            "Both",
                            "Left",
                            "Right"
                        ]
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "string",
                "mode"
            ]
        },
        "output": [
            "STRING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "STRING"
        ],
        "name": "StringTrim",
        "display_name": "Trim",
        "description": "",
        "python_module": "comfy_extras.nodes_string",
        "category": "utils/string",
        "output_node": false
    },
    "StringReplace": {
        "input": {
            "required": {
                "string": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "find": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "replace": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "string",
                "find",
                "replace"
            ]
        },
        "output": [
            "STRING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "STRING"
        ],
        "name": "StringReplace",
        "display_name": "Replace",
        "description": "",
        "python_module": "comfy_extras.nodes_string",
        "category": "utils/string",
        "output_node": false
    },
    "StringContains": {
        "input": {
            "required": {
                "string": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "substring": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "case_sensitive": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "string",
                "substring",
                "case_sensitive"
            ]
        },
        "output": [
            "BOOLEAN"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "contains"
        ],
        "name": "StringContains",
        "display_name": "Contains",
        "description": "",
        "python_module": "comfy_extras.nodes_string",
        "category": "utils/string",
        "output_node": false
    },
    "StringCompare": {
        "input": {
            "required": {
                "string_a": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "string_b": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "mode": [
                    "COMBO",
                    {
                        "options": [
                            "Starts With",
                            "Ends With",
                            "Equal"
                        ]
                    }
                ],
                "case_sensitive": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "string_a",
                "string_b",
                "mode",
                "case_sensitive"
            ]
        },
        "output": [
            "BOOLEAN"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "BOOLEAN"
        ],
        "name": "StringCompare",
        "display_name": "Compare",
        "description": "",
        "python_module": "comfy_extras.nodes_string",
        "category": "utils/string",
        "output_node": false
    },
    "RegexMatch": {
        "input": {
            "required": {
                "string": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "regex_pattern": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "case_insensitive": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "multiline": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ],
                "dotall": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "string",
                "regex_pattern",
                "case_insensitive",
                "multiline",
                "dotall"
            ]
        },
        "output": [
            "BOOLEAN"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "matches"
        ],
        "name": "RegexMatch",
        "display_name": "Regex Match",
        "description": "",
        "python_module": "comfy_extras.nodes_string",
        "category": "utils/string",
        "output_node": false
    },
    "RegexExtract": {
        "input": {
            "required": {
                "string": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "regex_pattern": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "mode": [
                    "COMBO",
                    {
                        "options": [
                            "First Match",
                            "All Matches",
                            "First Group",
                            "All Groups"
                        ]
                    }
                ],
                "case_insensitive": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "multiline": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ],
                "dotall": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ],
                "group_index": [
                    "INT",
                    {
                        "default": 1,
                        "min": 0,
                        "max": 100
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "string",
                "regex_pattern",
                "mode",
                "case_insensitive",
                "multiline",
                "dotall",
                "group_index"
            ]
        },
        "output": [
            "STRING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "STRING"
        ],
        "name": "RegexExtract",
        "display_name": "Regex Extract",
        "description": "",
        "python_module": "comfy_extras.nodes_string",
        "category": "utils/string",
        "output_node": false
    },
    "RegexReplace": {
        "input": {
            "required": {
                "string": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "regex_pattern": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "replace": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ]
            },
            "optional": {
                "case_insensitive": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "multiline": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ],
                "dotall": [
                    "BOOLEAN",
                    {
                        "default": false,
                        "tooltip": "When enabled, the dot (.) character will match any character including newline characters. When disabled, dots won't match newlines."
                    }
                ],
                "count": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 100,
                        "tooltip": "Maximum number of replacements to make. Set to 0 to replace all occurrences (default). Set to 1 to replace only the first match, 2 for the first two matches, etc."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "string",
                "regex_pattern",
                "replace"
            ],
            "optional": [
                "case_insensitive",
                "multiline",
                "dotall",
                "count"
            ]
        },
        "output": [
            "STRING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "STRING"
        ],
        "name": "RegexReplace",
        "display_name": "Regex Replace",
        "description": "Find and replace text using regex patterns.",
        "python_module": "comfy_extras.nodes_string",
        "category": "utils/string",
        "output_node": false
    },
    "WanCameraEmbedding": {
        "input": {
            "required": {
                "camera_pose": [
                    [
                        "Static",
                        "Pan Up",
                        "Pan Down",
                        "Pan Left",
                        "Pan Right",
                        "Zoom In",
                        "Zoom Out",
                        "Anti Clockwise (ACW)",
                        "ClockWise (CW)"
                    ],
                    {
                        "default": "Static"
                    }
                ],
                "width": [
                    "INT",
                    {
                        "default": 832,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "height": [
                    "INT",
                    {
                        "default": 480,
                        "min": 16,
                        "max": 16384,
                        "step": 16
                    }
                ],
                "length": [
                    "INT",
                    {
                        "default": 81,
                        "min": 1,
                        "max": 16384,
                        "step": 4
                    }
                ]
            },
            "optional": {
                "speed": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0,
                        "max": 10.0,
                        "step": 0.1
                    }
                ],
                "fx": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0,
                        "max": 1,
                        "step": 1e-09
                    }
                ],
                "fy": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0,
                        "max": 1,
                        "step": 1e-09
                    }
                ],
                "cx": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0,
                        "max": 1,
                        "step": 0.01
                    }
                ],
                "cy": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0,
                        "max": 1,
                        "step": 0.01
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "camera_pose",
                "width",
                "height",
                "length"
            ],
            "optional": [
                "speed",
                "fx",
                "fy",
                "cx",
                "cy"
            ]
        },
        "output": [
            "WAN_CAMERA_EMBEDDING",
            "INT",
            "INT",
            "INT"
        ],
        "output_is_list": [
            false,
            false,
            false,
            false
        ],
        "output_name": [
            "camera_embedding",
            "width",
            "height",
            "length"
        ],
        "name": "WanCameraEmbedding",
        "display_name": "WanCameraEmbedding",
        "description": "",
        "python_module": "comfy_extras.nodes_camera_trajectory",
        "category": "camera",
        "output_node": false
    },
    "ReferenceLatent": {
        "input": {
            "required": {
                "conditioning": [
                    "CONDITIONING"
                ]
            },
            "optional": {
                "latent": [
                    "LATENT"
                ]
            }
        },
        "input_order": {
            "required": [
                "conditioning"
            ],
            "optional": [
                "latent"
            ]
        },
        "output": [
            "CONDITIONING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "CONDITIONING"
        ],
        "name": "ReferenceLatent",
        "display_name": "ReferenceLatent",
        "description": "This node sets the guiding latent for an edit model. If the model supports it you can chain multiple to set multiple reference images.",
        "python_module": "comfy_extras.nodes_edit_model",
        "category": "advanced/conditioning/edit_models",
        "output_node": false
    },
    "TCFG": {
        "input": {
            "required": {
                "model": [
                    "MODEL",
                    {}
                ]
            }
        },
        "input_order": {
            "required": [
                "model"
            ]
        },
        "output": [
            "MODEL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "patched_model"
        ],
        "name": "TCFG",
        "display_name": "Tangential Damping CFG",
        "description": "TCFG \u2013 Tangential Damping CFG (2503.18137)\n\nRefine the uncond (negative) to align with the cond (positive) for improving quality.",
        "python_module": "comfy_extras.nodes_tcfg",
        "category": "advanced/guidance",
        "output_node": false
    },
    "IdeogramV1": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation"
                    }
                ],
                "turbo": [
                    "BOOLEAN",
                    {
                        "default": false,
                        "tooltip": "Whether to use turbo mode (faster generation, potentially lower quality)"
                    }
                ]
            },
            "optional": {
                "aspect_ratio": [
                    "COMBO",
                    {
                        "options": [
                            "1:1",
                            "4:3",
                            "3:4",
                            "16:9",
                            "9:16",
                            "2:1",
                            "1:2",
                            "3:2",
                            "2:3",
                            "4:5",
                            "5:4"
                        ],
                        "default": "1:1",
                        "tooltip": "The aspect ratio for image generation."
                    }
                ],
                "magic_prompt_option": [
                    "COMBO",
                    {
                        "options": [
                            "AUTO",
                            "ON",
                            "OFF"
                        ],
                        "default": "AUTO",
                        "tooltip": "Determine if MagicPrompt should be used in generation"
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 2147483647,
                        "step": 1,
                        "control_after_generate": true,
                        "display": "number"
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Description of what to exclude from the image"
                    }
                ],
                "num_images": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 8,
                        "step": 1,
                        "display": "number"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "turbo"
            ],
            "optional": [
                "aspect_ratio",
                "magic_prompt_option",
                "seed",
                "negative_prompt",
                "num_images"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "IdeogramV1",
        "display_name": "Ideogram V1",
        "description": "Generates images using the Ideogram V1 model.",
        "python_module": "comfy_api_nodes.nodes_ideogram",
        "category": "api node/image/Ideogram",
        "output_node": false,
        "api_node": true
    },
    "IdeogramV2": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation"
                    }
                ],
                "turbo": [
                    "BOOLEAN",
                    {
                        "default": false,
                        "tooltip": "Whether to use turbo mode (faster generation, potentially lower quality)"
                    }
                ]
            },
            "optional": {
                "aspect_ratio": [
                    "COMBO",
                    {
                        "options": [
                            "1:1",
                            "4:3",
                            "3:4",
                            "16:9",
                            "9:16",
                            "2:1",
                            "1:2",
                            "3:2",
                            "2:3",
                            "4:5",
                            "5:4"
                        ],
                        "default": "1:1",
                        "tooltip": "The aspect ratio for image generation. Ignored if resolution is not set to AUTO."
                    }
                ],
                "resolution": [
                    "COMBO",
                    {
                        "options": [
                            "Auto",
                            "512 x 1536",
                            "576 x 1408",
                            "576 x 1472",
                            "576 x 1536",
                            "640 x 1024",
                            "640 x 1344",
                            "640 x 1408",
                            "640 x 1472",
                            "640 x 1536",
                            "704 x 1152",
                            "704 x 1216",
                            "704 x 1280",
                            "704 x 1344",
                            "704 x 1408",
                            "704 x 1472",
                            "720 x 1280",
                            "736 x 1312",
                            "768 x 1024",
                            "768 x 1088",
                            "768 x 1152",
                            "768 x 1216",
                            "768 x 1232",
                            "768 x 1280",
                            "768 x 1344",
                            "832 x 960",
                            "832 x 1024",
                            "832 x 1088",
                            "832 x 1152",
                            "832 x 1216",
                            "832 x 1248",
                            "864 x 1152",
                            "896 x 960",
                            "896 x 1024",
                            "896 x 1088",
                            "896 x 1120",
                            "896 x 1152",
                            "960 x 832",
                            "960 x 896",
                            "960 x 1024",
                            "960 x 1088",
                            "1024 x 640",
                            "1024 x 768",
                            "1024 x 832",
                            "1024 x 896",
                            "1024 x 960",
                            "1024 x 1024",
                            "1088 x 768",
                            "1088 x 832",
                            "1088 x 896",
                            "1088 x 960",
                            "1120 x 896",
                            "1152 x 704",
                            "1152 x 768",
                            "1152 x 832",
                            "1152 x 864",
                            "1152 x 896",
                            "1216 x 704",
                            "1216 x 768",
                            "1216 x 832",
                            "1232 x 768",
                            "1248 x 832",
                            "1280 x 704",
                            "1280 x 720",
                            "1280 x 768",
                            "1280 x 800",
                            "1312 x 736",
                            "1344 x 640",
                            "1344 x 704",
                            "1344 x 768",
                            "1408 x 576",
                            "1408 x 640",
                            "1408 x 704",
                            "1472 x 576",
                            "1472 x 640",
                            "1472 x 704",
                            "1536 x 512",
                            "1536 x 576",
                            "1536 x 640"
                        ],
                        "default": "Auto",
                        "tooltip": "The resolution for image generation. If not set to AUTO, this overrides the aspect_ratio setting."
                    }
                ],
                "magic_prompt_option": [
                    "COMBO",
                    {
                        "options": [
                            "AUTO",
                            "ON",
                            "OFF"
                        ],
                        "default": "AUTO",
                        "tooltip": "Determine if MagicPrompt should be used in generation"
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 2147483647,
                        "step": 1,
                        "control_after_generate": true,
                        "display": "number"
                    }
                ],
                "style_type": [
                    "COMBO",
                    {
                        "options": [
                            "AUTO",
                            "GENERAL",
                            "REALISTIC",
                            "DESIGN",
                            "RENDER_3D",
                            "ANIME"
                        ],
                        "default": "NONE",
                        "tooltip": "Style type for generation (V2 only)"
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Description of what to exclude from the image"
                    }
                ],
                "num_images": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 8,
                        "step": 1,
                        "display": "number"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "turbo"
            ],
            "optional": [
                "aspect_ratio",
                "resolution",
                "magic_prompt_option",
                "seed",
                "style_type",
                "negative_prompt",
                "num_images"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "IdeogramV2",
        "display_name": "Ideogram V2",
        "description": "Generates images using the Ideogram V2 model.",
        "python_module": "comfy_api_nodes.nodes_ideogram",
        "category": "api node/image/Ideogram",
        "output_node": false,
        "api_node": true
    },
    "IdeogramV3": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation or editing"
                    }
                ]
            },
            "optional": {
                "image": [
                    "IMAGE",
                    {
                        "default": null,
                        "tooltip": "Optional reference image for image editing."
                    }
                ],
                "mask": [
                    "MASK",
                    {
                        "default": null,
                        "tooltip": "Optional mask for inpainting (white areas will be replaced)"
                    }
                ],
                "aspect_ratio": [
                    "COMBO",
                    {
                        "options": [
                            "1:3",
                            "3:1",
                            "1:2",
                            "2:1",
                            "9:16",
                            "16:9",
                            "10:16",
                            "16:10",
                            "2:3",
                            "3:2",
                            "3:4",
                            "4:3",
                            "4:5",
                            "5:4",
                            "1:1"
                        ],
                        "default": "1:1",
                        "tooltip": "The aspect ratio for image generation. Ignored if resolution is not set to Auto."
                    }
                ],
                "resolution": [
                    "COMBO",
                    {
                        "options": [
                            "Auto",
                            "512x1536",
                            "576x1408",
                            "576x1472",
                            "576x1536",
                            "640x1344",
                            "640x1408",
                            "640x1472",
                            "640x1536",
                            "704x1152",
                            "704x1216",
                            "704x1280",
                            "704x1344",
                            "704x1408",
                            "704x1472",
                            "736x1312",
                            "768x1088",
                            "768x1216",
                            "768x1280",
                            "768x1344",
                            "800x1280",
                            "832x960",
                            "832x1024",
                            "832x1088",
                            "832x1152",
                            "832x1216",
                            "832x1248",
                            "864x1152",
                            "896x960",
                            "896x1024",
                            "896x1088",
                            "896x1120",
                            "896x1152",
                            "960x832",
                            "960x896",
                            "960x1024",
                            "960x1088",
                            "1024x832",
                            "1024x896",
                            "1024x960",
                            "1024x1024",
                            "1088x768",
                            "1088x832",
                            "1088x896",
                            "1088x960",
                            "1120x896",
                            "1152x704",
                            "1152x832",
                            "1152x864",
                            "1152x896",
                            "1216x704",
                            "1216x768",
                            "1216x832",
                            "1248x832",
                            "1280x704",
                            "1280x768",
                            "1280x800",
                            "1312x736",
                            "1344x640",
                            "1344x704",
                            "1344x768",
                            "1408x576",
                            "1408x640",
                            "1408x704",
                            "1472x576",
                            "1472x640",
                            "1472x704",
                            "1536x512",
                            "1536x576",
                            "1536x640"
                        ],
                        "default": "Auto",
                        "tooltip": "The resolution for image generation. If not set to Auto, this overrides the aspect_ratio setting."
                    }
                ],
                "magic_prompt_option": [
                    "COMBO",
                    {
                        "options": [
                            "AUTO",
                            "ON",
                            "OFF"
                        ],
                        "default": "AUTO",
                        "tooltip": "Determine if MagicPrompt should be used in generation"
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 2147483647,
                        "step": 1,
                        "control_after_generate": true,
                        "display": "number"
                    }
                ],
                "num_images": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 8,
                        "step": 1,
                        "display": "number"
                    }
                ],
                "rendering_speed": [
                    "COMBO",
                    {
                        "options": [
                            "BALANCED",
                            "TURBO",
                            "QUALITY"
                        ],
                        "default": "BALANCED",
                        "tooltip": "Controls the trade-off between generation speed and quality"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt"
            ],
            "optional": [
                "image",
                "mask",
                "aspect_ratio",
                "resolution",
                "magic_prompt_option",
                "seed",
                "num_images",
                "rendering_speed"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "IdeogramV3",
        "display_name": "Ideogram V3",
        "description": "Generates images using the Ideogram V3 model. Supports both regular image generation from text prompts and image editing with mask.",
        "python_module": "comfy_api_nodes.nodes_ideogram",
        "category": "api node/image/Ideogram",
        "output_node": false,
        "api_node": true
    },
    "OpenAIDalle2": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Text prompt for DALL\u00b7E"
                    }
                ]
            },
            "optional": {
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 2147483647,
                        "step": 1,
                        "display": "number",
                        "control_after_generate": true,
                        "tooltip": "not implemented yet in backend"
                    }
                ],
                "size": [
                    "COMBO",
                    {
                        "options": [
                            "256x256",
                            "512x512",
                            "1024x1024"
                        ],
                        "default": "1024x1024",
                        "tooltip": "Image size"
                    }
                ],
                "n": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 8,
                        "step": 1,
                        "display": "number",
                        "tooltip": "How many images to generate"
                    }
                ],
                "image": [
                    "IMAGE",
                    {
                        "default": null,
                        "tooltip": "Optional reference image for image editing."
                    }
                ],
                "mask": [
                    "MASK",
                    {
                        "default": null,
                        "tooltip": "Optional mask for inpainting (white areas will be replaced)"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt"
            ],
            "optional": [
                "seed",
                "size",
                "n",
                "image",
                "mask"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "OpenAIDalle2",
        "display_name": "OpenAI DALL\u00b7E 2",
        "description": "Generates images synchronously via OpenAI's DALL\u00b7E 2 endpoint.",
        "python_module": "comfy_api_nodes.nodes_openai",
        "category": "api node/image/OpenAI",
        "output_node": false,
        "api_node": true
    },
    "OpenAIDalle3": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Text prompt for DALL\u00b7E"
                    }
                ]
            },
            "optional": {
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 2147483647,
                        "step": 1,
                        "display": "number",
                        "control_after_generate": true,
                        "tooltip": "not implemented yet in backend"
                    }
                ],
                "quality": [
                    "COMBO",
                    {
                        "options": [
                            "standard",
                            "hd"
                        ],
                        "default": "standard",
                        "tooltip": "Image quality"
                    }
                ],
                "style": [
                    "COMBO",
                    {
                        "options": [
                            "natural",
                            "vivid"
                        ],
                        "default": "natural",
                        "tooltip": "Vivid causes the model to lean towards generating hyper-real and dramatic images. Natural causes the model to produce more natural, less hyper-real looking images."
                    }
                ],
                "size": [
                    "COMBO",
                    {
                        "options": [
                            "1024x1024",
                            "1024x1792",
                            "1792x1024"
                        ],
                        "default": "1024x1024",
                        "tooltip": "Image size"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt"
            ],
            "optional": [
                "seed",
                "quality",
                "style",
                "size"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "OpenAIDalle3",
        "display_name": "OpenAI DALL\u00b7E 3",
        "description": "Generates images synchronously via OpenAI's DALL\u00b7E 3 endpoint.",
        "python_module": "comfy_api_nodes.nodes_openai",
        "category": "api node/image/OpenAI",
        "output_node": false,
        "api_node": true
    },
    "OpenAIGPTImage1": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Text prompt for GPT Image 1"
                    }
                ]
            },
            "optional": {
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 2147483647,
                        "step": 1,
                        "display": "number",
                        "control_after_generate": true,
                        "tooltip": "not implemented yet in backend"
                    }
                ],
                "quality": [
                    "COMBO",
                    {
                        "options": [
                            "low",
                            "medium",
                            "high"
                        ],
                        "default": "low",
                        "tooltip": "Image quality, affects cost and generation time."
                    }
                ],
                "background": [
                    "COMBO",
                    {
                        "options": [
                            "opaque",
                            "transparent"
                        ],
                        "default": "opaque",
                        "tooltip": "Return image with or without background"
                    }
                ],
                "size": [
                    "COMBO",
                    {
                        "options": [
                            "auto",
                            "1024x1024",
                            "1024x1536",
                            "1536x1024"
                        ],
                        "default": "auto",
                        "tooltip": "Image size"
                    }
                ],
                "n": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 8,
                        "step": 1,
                        "display": "number",
                        "tooltip": "How many images to generate"
                    }
                ],
                "image": [
                    "IMAGE",
                    {
                        "default": null,
                        "tooltip": "Optional reference image for image editing."
                    }
                ],
                "mask": [
                    "MASK",
                    {
                        "default": null,
                        "tooltip": "Optional mask for inpainting (white areas will be replaced)"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt"
            ],
            "optional": [
                "seed",
                "quality",
                "background",
                "size",
                "n",
                "image",
                "mask"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "OpenAIGPTImage1",
        "display_name": "OpenAI GPT Image 1",
        "description": "Generates images synchronously via OpenAI's GPT Image 1 endpoint.",
        "python_module": "comfy_api_nodes.nodes_openai",
        "category": "api node/image/OpenAI",
        "output_node": false,
        "api_node": true
    },
    "OpenAIChatNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Text inputs to the model, used to generate a response."
                    }
                ],
                "persist_context": [
                    "BOOLEAN",
                    {
                        "default": true,
                        "tooltip": "Persist chat context between calls (multi-turn conversation)"
                    }
                ],
                "model": [
                    "COMBO",
                    {
                        "options": [
                            "o4-mini",
                            "o1",
                            "o3",
                            "o1-pro",
                            "gpt-4o",
                            "gpt-4.1",
                            "gpt-4.1-mini",
                            "gpt-4.1-nano"
                        ],
                        "default": null,
                        "tooltip": "The model used to generate the response"
                    }
                ]
            },
            "optional": {
                "images": [
                    "IMAGE",
                    {
                        "default": null,
                        "tooltip": "Optional image(s) to use as context for the model. To include multiple images, you can use the Batch Images node."
                    }
                ],
                "files": [
                    "OPENAI_INPUT_FILES",
                    {
                        "default": null,
                        "tooltip": "Optional file(s) to use as context for the model. Accepts inputs from the OpenAI Chat Input Files node."
                    }
                ],
                "advanced_options": [
                    "OPENAI_CHAT_CONFIG",
                    {
                        "default": null,
                        "tooltip": "Optional configuration for the model. Accepts inputs from the OpenAI Chat Advanced Options node."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "persist_context",
                "model"
            ],
            "optional": [
                "images",
                "files",
                "advanced_options"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "STRING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "STRING"
        ],
        "name": "OpenAIChatNode",
        "display_name": "OpenAI Chat",
        "description": "Generate text responses from an OpenAI model.",
        "python_module": "comfy_api_nodes.nodes_openai",
        "category": "api node/text/OpenAI",
        "output_node": false,
        "api_node": true
    },
    "OpenAIInputFiles": {
        "input": {
            "required": {
                "file": [
                    "COMBO",
                    {
                        "tooltip": "Input files to include as context for the model. Only accepts text (.txt) and PDF (.pdf) files for now.",
                        "options": [],
                        "default": null
                    }
                ]
            },
            "optional": {
                "OPENAI_INPUT_FILES": [
                    "OPENAI_INPUT_FILES",
                    {
                        "tooltip": "An optional additional file(s) to batch together with the file loaded from this node. Allows chaining of input files so that a single message can include multiple input files.",
                        "default": null
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "file"
            ],
            "optional": [
                "OPENAI_INPUT_FILES"
            ]
        },
        "output": [
            "OPENAI_INPUT_FILES"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "OPENAI_INPUT_FILES"
        ],
        "name": "OpenAIInputFiles",
        "display_name": "OpenAI Chat Input Files",
        "description": "Loads and prepares input files (text, pdf, etc.) to include as inputs for the OpenAI Chat Node. The files will be read by the OpenAI model when generating a response. \ud83d\udec8 TIP: Can be chained together with other OpenAI Input File nodes.",
        "python_module": "comfy_api_nodes.nodes_openai",
        "category": "api node/text/OpenAI",
        "output_node": false
    },
    "OpenAIChatConfig": {
        "input": {
            "required": {
                "truncation": [
                    "COMBO",
                    {
                        "options": [
                            "auto",
                            "disabled"
                        ],
                        "default": "auto",
                        "tooltip": "The truncation strategy to use for the model response. auto: If the context of this response and previous ones exceeds the model's context window size, the model will truncate the response to fit the context window by dropping input items in the middle of the conversation.disabled: If a model response will exceed the context window size for a model, the request will fail with a 400 error"
                    }
                ]
            },
            "optional": {
                "max_output_tokens": [
                    "INT",
                    {
                        "default": 4096,
                        "tooltip": "An upper bound for the number of tokens that can be generated for a response, including visible output tokens",
                        "min": 16,
                        "max": 16384
                    }
                ],
                "instructions": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Instructions for the model on how to generate the response",
                        "multiline": true
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "truncation"
            ],
            "optional": [
                "max_output_tokens",
                "instructions"
            ]
        },
        "output": [
            "OPENAI_CHAT_CONFIG"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "OPENAI_CHAT_CONFIG"
        ],
        "name": "OpenAIChatConfig",
        "display_name": "OpenAI Chat Advanced Options",
        "description": "Allows specifying advanced configuration options for the OpenAI Chat Nodes.",
        "python_module": "comfy_api_nodes.nodes_openai",
        "category": "api node/text/OpenAI",
        "output_node": false
    },
    "MinimaxTextToVideoNode": {
        "input": {
            "required": {
                "prompt_text": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Text prompt to guide the video generation"
                    }
                ],
                "model": [
                    [
                        "T2V-01",
                        "T2V-01-Director"
                    ],
                    {
                        "default": "T2V-01",
                        "tooltip": "Model to use for video generation"
                    }
                ]
            },
            "optional": {
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "The random seed used for creating the noise."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt_text",
                "model"
            ],
            "optional": [
                "seed"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "MinimaxTextToVideoNode",
        "display_name": "MiniMax Text to Video",
        "description": "Generates videos from prompts using MiniMax's API",
        "python_module": "comfy_api_nodes.nodes_minimax",
        "category": "api node/video/MiniMax",
        "output_node": true,
        "api_node": true
    },
    "MinimaxImageToVideoNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE",
                    {
                        "tooltip": "Image to use as first frame of video generation"
                    }
                ],
                "prompt_text": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Text prompt to guide the video generation"
                    }
                ],
                "model": [
                    [
                        "I2V-01-Director",
                        "I2V-01",
                        "I2V-01-live"
                    ],
                    {
                        "default": "I2V-01",
                        "tooltip": "Model to use for video generation"
                    }
                ]
            },
            "optional": {
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "The random seed used for creating the noise."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "image",
                "prompt_text",
                "model"
            ],
            "optional": [
                "seed"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "MinimaxImageToVideoNode",
        "display_name": "MiniMax Image to Video",
        "description": "Generates videos from an image and prompts using MiniMax's API",
        "python_module": "comfy_api_nodes.nodes_minimax",
        "category": "api node/video/MiniMax",
        "output_node": true,
        "api_node": true
    },
    "VeoVideoGenerationNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Text description of the video"
                    }
                ],
                "aspect_ratio": [
                    "COMBO",
                    {
                        "options": [
                            "16:9",
                            "9:16"
                        ],
                        "default": "16:9",
                        "tooltip": "Aspect ratio of the output video"
                    }
                ]
            },
            "optional": {
                "negative_prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Negative text prompt to guide what to avoid in the video"
                    }
                ],
                "duration_seconds": [
                    "INT",
                    {
                        "default": 5,
                        "min": 5,
                        "max": 8,
                        "step": 1,
                        "display": "number",
                        "tooltip": "Duration of the output video in seconds"
                    }
                ],
                "enhance_prompt": [
                    "BOOLEAN",
                    {
                        "default": true,
                        "tooltip": "Whether to enhance the prompt with AI assistance"
                    }
                ],
                "person_generation": [
                    "COMBO",
                    {
                        "options": [
                            "ALLOW",
                            "BLOCK"
                        ],
                        "default": "ALLOW",
                        "tooltip": "Whether to allow generating people in the video"
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 4294967295,
                        "step": 1,
                        "display": "number",
                        "control_after_generate": true,
                        "tooltip": "Seed for video generation (0 for random)"
                    }
                ],
                "image": [
                    "IMAGE",
                    {
                        "default": null,
                        "tooltip": "Optional reference image to guide video generation"
                    }
                ],
                "model": [
                    "COMBO",
                    {
                        "options": [
                            "veo-2.0-generate-001"
                        ],
                        "default": "veo-2.0-generate-001",
                        "tooltip": "Veo 2 model to use for video generation"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "aspect_ratio"
            ],
            "optional": [
                "negative_prompt",
                "duration_seconds",
                "enhance_prompt",
                "person_generation",
                "seed",
                "image",
                "model"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "VeoVideoGenerationNode",
        "display_name": "Google Veo 2 Video Generation",
        "description": "Generates videos from text prompts using Google's Veo 2 API",
        "python_module": "comfy_api_nodes.nodes_veo2",
        "category": "api node/video/Veo",
        "output_node": false,
        "api_node": true
    },
    "Veo3VideoGenerationNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Text description of the video"
                    }
                ],
                "aspect_ratio": [
                    "COMBO",
                    {
                        "options": [
                            "16:9",
                            "9:16"
                        ],
                        "default": "16:9",
                        "tooltip": "Aspect ratio of the output video"
                    }
                ]
            },
            "optional": {
                "negative_prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Negative text prompt to guide what to avoid in the video"
                    }
                ],
                "duration_seconds": [
                    "INT",
                    {
                        "default": 8,
                        "min": 8,
                        "max": 8,
                        "step": 1,
                        "display": "number",
                        "tooltip": "Duration of the output video in seconds (Veo 3 only supports 8 seconds)"
                    }
                ],
                "enhance_prompt": [
                    "BOOLEAN",
                    {
                        "default": true,
                        "tooltip": "Whether to enhance the prompt with AI assistance"
                    }
                ],
                "person_generation": [
                    "COMBO",
                    {
                        "options": [
                            "ALLOW",
                            "BLOCK"
                        ],
                        "default": "ALLOW",
                        "tooltip": "Whether to allow generating people in the video"
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 4294967295,
                        "step": 1,
                        "display": "number",
                        "control_after_generate": true,
                        "tooltip": "Seed for video generation (0 for random)"
                    }
                ],
                "image": [
                    "IMAGE",
                    {
                        "default": null,
                        "tooltip": "Optional reference image to guide video generation"
                    }
                ],
                "model": [
                    "COMBO",
                    {
                        "options": [
                            "veo-3.0-generate-001",
                            "veo-3.0-fast-generate-001"
                        ],
                        "default": "veo-3.0-generate-001",
                        "tooltip": "Veo 3 model to use for video generation"
                    }
                ],
                "generate_audio": [
                    "BOOLEAN",
                    {
                        "default": false,
                        "tooltip": "Generate audio for the video. Supported by all Veo 3 models."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "aspect_ratio"
            ],
            "optional": [
                "negative_prompt",
                "duration_seconds",
                "enhance_prompt",
                "person_generation",
                "seed",
                "image",
                "model",
                "generate_audio"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "Veo3VideoGenerationNode",
        "display_name": "Google Veo 3 Video Generation",
        "description": "Generates videos from text prompts using Google's Veo 2 API",
        "python_module": "comfy_api_nodes.nodes_veo2",
        "category": "api node/video/Veo",
        "output_node": false,
        "api_node": true
    },
    "KlingCameraControls": {
        "input": {
            "required": {
                "camera_control_type": [
                    "COMBO",
                    {
                        "options": [
                            "simple",
                            "down_back",
                            "forward_up",
                            "right_turn_forward",
                            "left_turn_forward"
                        ],
                        "default": null
                    }
                ],
                "horizontal_movement": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": -10.0,
                        "max": 10.0,
                        "step": 0.25,
                        "display": "slider",
                        "tooltip": "Controls camera's movement along horizontal axis (x-axis). Negative indicates left, positive indicates right"
                    }
                ],
                "vertical_movement": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": -10.0,
                        "max": 10.0,
                        "step": 0.25,
                        "display": "slider",
                        "tooltip": "Controls camera's movement along vertical axis (y-axis). Negative indicates downward, positive indicates upward."
                    }
                ],
                "pan": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": -10.0,
                        "max": 10.0,
                        "step": 0.25,
                        "display": "slider",
                        "tooltip": "Controls camera's rotation in vertical plane (x-axis). Negative indicates downward rotation, positive indicates upward rotation."
                    }
                ],
                "tilt": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": -10.0,
                        "max": 10.0,
                        "step": 0.25,
                        "display": "slider",
                        "tooltip": "Controls camera's rotation in horizontal plane (y-axis). Negative indicates left rotation, positive indicates right rotation."
                    }
                ],
                "roll": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": -10.0,
                        "max": 10.0,
                        "step": 0.25,
                        "display": "slider",
                        "tooltip": "Controls camera's rolling amount (z-axis). Negative indicates counterclockwise, positive indicates clockwise."
                    }
                ],
                "zoom": [
                    "FLOAT",
                    {
                        "default": 0.0,
                        "min": -10.0,
                        "max": 10.0,
                        "step": 0.25,
                        "display": "slider",
                        "tooltip": "Controls change in camera's focal length. Negative indicates narrower field of view, positive indicates wider field of view."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "camera_control_type",
                "horizontal_movement",
                "vertical_movement",
                "pan",
                "tilt",
                "roll",
                "zoom"
            ]
        },
        "output": [
            "CAMERA_CONTROL"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "camera_control"
        ],
        "name": "KlingCameraControls",
        "display_name": "Kling Camera Controls",
        "description": "Allows specifying configuration options for Kling Camera Controls and motion control effects.",
        "python_module": "comfy_api_nodes.nodes_kling",
        "category": "api node/video/Kling",
        "output_node": false,
        "api_node": false
    },
    "KlingTextToVideoNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Positive text prompt",
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Negative text prompt",
                        "multiline": true
                    }
                ],
                "cfg_scale": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0
                    }
                ],
                "aspect_ratio": [
                    "COMBO",
                    {
                        "options": [
                            "16:9",
                            "9:16",
                            "1:1"
                        ],
                        "default": "16:9"
                    }
                ],
                "mode": [
                    [
                        "standard mode / 5s duration / kling-v1",
                        "standard mode / 10s duration / kling-v1",
                        "pro mode / 5s duration / kling-v1",
                        "pro mode / 10s duration / kling-v1",
                        "standard mode / 5s duration / kling-v1-6",
                        "standard mode / 10s duration / kling-v1-6",
                        "pro mode / 5s duration / kling-v2-master",
                        "pro mode / 10s duration / kling-v2-master",
                        "standard mode / 5s duration / kling-v2-master",
                        "standard mode / 10s duration / kling-v2-master"
                    ],
                    {
                        "default": "standard mode / 5s duration / kling-v1-6",
                        "tooltip": "The configuration to use for the video generation following the format: mode / duration / model_name."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "negative_prompt",
                "cfg_scale",
                "aspect_ratio",
                "mode"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO",
            "STRING",
            "STRING"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "VIDEO",
            "video_id",
            "duration"
        ],
        "name": "KlingTextToVideoNode",
        "display_name": "Kling Text to Video",
        "description": "Kling Text to Video Node",
        "python_module": "comfy_api_nodes.nodes_kling",
        "category": "api node/video/Kling",
        "output_node": false,
        "api_node": true
    },
    "KlingImage2VideoNode": {
        "input": {
            "required": {
                "start_frame": [
                    "IMAGE",
                    {
                        "default": null,
                        "tooltip": "The reference image used to generate the video."
                    }
                ],
                "prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Positive text prompt",
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Negative text prompt",
                        "multiline": true
                    }
                ],
                "model_name": [
                    "COMBO",
                    {
                        "options": [
                            "kling-v1",
                            "kling-v1-5",
                            "kling-v1-6",
                            "kling-v2-master"
                        ],
                        "default": "kling-v2-master"
                    }
                ],
                "cfg_scale": [
                    "FLOAT",
                    {
                        "default": 0.8,
                        "min": 0.0,
                        "max": 1.0
                    }
                ],
                "mode": [
                    "COMBO",
                    {
                        "options": [
                            "std",
                            "pro"
                        ],
                        "default": "std"
                    }
                ],
                "aspect_ratio": [
                    "COMBO",
                    {
                        "options": [
                            "16:9",
                            "9:16",
                            "1:1"
                        ],
                        "default": "16:9"
                    }
                ],
                "duration": [
                    "COMBO",
                    {
                        "options": [
                            "5",
                            "10"
                        ],
                        "default": "5"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "start_frame",
                "prompt",
                "negative_prompt",
                "model_name",
                "cfg_scale",
                "mode",
                "aspect_ratio",
                "duration"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO",
            "STRING",
            "STRING"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "VIDEO",
            "video_id",
            "duration"
        ],
        "name": "KlingImage2VideoNode",
        "display_name": "Kling Image to Video",
        "description": "Kling Image to Video Node",
        "python_module": "comfy_api_nodes.nodes_kling",
        "category": "api node/video/Kling",
        "output_node": false,
        "api_node": true
    },
    "KlingCameraControlI2VNode": {
        "input": {
            "required": {
                "start_frame": [
                    "IMAGE",
                    {
                        "default": null,
                        "tooltip": "Reference Image - URL or Base64 encoded string, cannot exceed 10MB, resolution not less than 300*300px, aspect ratio between 1:2.5 ~ 2.5:1. Base64 should not include data:image prefix."
                    }
                ],
                "prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Positive text prompt",
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Negative text prompt",
                        "multiline": true
                    }
                ],
                "cfg_scale": [
                    "FLOAT",
                    {
                        "default": 0.75,
                        "min": 0.0,
                        "max": 1.0
                    }
                ],
                "aspect_ratio": [
                    "COMBO",
                    {
                        "options": [
                            "16:9",
                            "9:16",
                            "1:1"
                        ],
                        "default": "16:9"
                    }
                ],
                "camera_control": [
                    "CAMERA_CONTROL",
                    {
                        "tooltip": "Can be created using the Kling Camera Controls node. Controls the camera movement and motion during the video generation."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "start_frame",
                "prompt",
                "negative_prompt",
                "cfg_scale",
                "aspect_ratio",
                "camera_control"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO",
            "STRING",
            "STRING"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "VIDEO",
            "video_id",
            "duration"
        ],
        "name": "KlingCameraControlI2VNode",
        "display_name": "Kling Image to Video (Camera Control)",
        "description": "Transform still images into cinematic videos with professional camera movements that simulate real-world cinematography. Control virtual camera actions including zoom, rotation, pan, tilt, and first-person view, while maintaining focus on your original image.",
        "python_module": "comfy_api_nodes.nodes_kling",
        "category": "api node/video/Kling",
        "output_node": false,
        "api_node": true
    },
    "KlingCameraControlT2VNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Positive text prompt",
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Negative text prompt",
                        "multiline": true
                    }
                ],
                "cfg_scale": [
                    "FLOAT",
                    {
                        "default": 0.75,
                        "min": 0.0,
                        "max": 1.0
                    }
                ],
                "aspect_ratio": [
                    "COMBO",
                    {
                        "options": [
                            "16:9",
                            "9:16",
                            "1:1"
                        ],
                        "default": "16:9"
                    }
                ],
                "camera_control": [
                    "CAMERA_CONTROL",
                    {
                        "tooltip": "Can be created using the Kling Camera Controls node. Controls the camera movement and motion during the video generation."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "negative_prompt",
                "cfg_scale",
                "aspect_ratio",
                "camera_control"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO",
            "STRING",
            "STRING"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "VIDEO",
            "video_id",
            "duration"
        ],
        "name": "KlingCameraControlT2VNode",
        "display_name": "Kling Text to Video (Camera Control)",
        "description": "Transform text into cinematic videos with professional camera movements that simulate real-world cinematography. Control virtual camera actions including zoom, rotation, pan, tilt, and first-person view, while maintaining focus on your original text.",
        "python_module": "comfy_api_nodes.nodes_kling",
        "category": "api node/video/Kling",
        "output_node": false,
        "api_node": true
    },
    "KlingStartEndFrameNode": {
        "input": {
            "required": {
                "start_frame": [
                    "IMAGE",
                    {
                        "default": null,
                        "tooltip": "Reference Image - URL or Base64 encoded string, cannot exceed 10MB, resolution not less than 300*300px, aspect ratio between 1:2.5 ~ 2.5:1. Base64 should not include data:image prefix."
                    }
                ],
                "end_frame": [
                    "IMAGE",
                    {
                        "default": null,
                        "tooltip": "Reference Image - End frame control. URL or Base64 encoded string, cannot exceed 10MB, resolution not less than 300*300px. Base64 should not include data:image prefix."
                    }
                ],
                "prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Positive text prompt",
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Negative text prompt",
                        "multiline": true
                    }
                ],
                "cfg_scale": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0.0,
                        "max": 1.0
                    }
                ],
                "aspect_ratio": [
                    "COMBO",
                    {
                        "options": [
                            "16:9",
                            "9:16",
                            "1:1"
                        ],
                        "default": "16:9"
                    }
                ],
                "mode": [
                    [
                        "standard mode / 5s duration / kling-v1",
                        "pro mode / 5s duration / kling-v1",
                        "pro mode / 5s duration / kling-v1-5",
                        "pro mode / 10s duration / kling-v1-5",
                        "pro mode / 5s duration / kling-v1-6",
                        "pro mode / 10s duration / kling-v1-6"
                    ],
                    {
                        "default": "pro mode / 5s duration / kling-v1-5",
                        "tooltip": "The configuration to use for the video generation following the format: mode / duration / model_name."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "start_frame",
                "end_frame",
                "prompt",
                "negative_prompt",
                "cfg_scale",
                "aspect_ratio",
                "mode"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO",
            "STRING",
            "STRING"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "VIDEO",
            "video_id",
            "duration"
        ],
        "name": "KlingStartEndFrameNode",
        "display_name": "Kling Start-End Frame to Video",
        "description": "Generate a video sequence that transitions between your provided start and end images. The node creates all frames in between, producing a smooth transformation from the first frame to the last.",
        "python_module": "comfy_api_nodes.nodes_kling",
        "category": "api node/video/Kling",
        "output_node": false,
        "api_node": true
    },
    "KlingVideoExtendNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Positive text prompt for guiding the video extension",
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Negative text prompt for elements to avoid in the extended video",
                        "multiline": true
                    }
                ],
                "cfg_scale": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0.0,
                        "max": 1.0
                    }
                ],
                "video_id": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "The ID of the video to be extended. Supports videos generated by text-to-video, image-to-video, and previous video extension operations. Cannot exceed 3 minutes total duration after extension.",
                        "forceInput": true
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "negative_prompt",
                "cfg_scale",
                "video_id"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO",
            "STRING",
            "STRING"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "VIDEO",
            "video_id",
            "duration"
        ],
        "name": "KlingVideoExtendNode",
        "display_name": "Kling Video Extend",
        "description": "Kling Video Extend Node. Extend videos made by other Kling nodes. The video_id is created by using other Kling Nodes.",
        "python_module": "comfy_api_nodes.nodes_kling",
        "category": "api node/video/Kling",
        "output_node": false,
        "api_node": true
    },
    "KlingLipSyncAudioToVideoNode": {
        "input": {
            "required": {
                "video": [
                    "VIDEO",
                    {}
                ],
                "audio": [
                    "AUDIO",
                    {}
                ],
                "voice_language": [
                    "COMBO",
                    {
                        "options": [
                            "zh",
                            "en"
                        ],
                        "default": "en"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "video",
                "audio",
                "voice_language"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO",
            "STRING",
            "STRING"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "VIDEO",
            "video_id",
            "duration"
        ],
        "name": "KlingLipSyncAudioToVideoNode",
        "display_name": "Kling Lip Sync Video with Audio",
        "description": "Kling Lip Sync Audio to Video Node. Syncs mouth movements in a video file to the audio content of an audio file. When using, ensure that the audio contains clearly distinguishable vocals and that the video contains a distinct face. The audio file should not be larger than 5MB. The video file should not be larger than 100MB, should have height/width between 720px and 1920px, and should be between 2s and 10s in length.",
        "python_module": "comfy_api_nodes.nodes_kling",
        "category": "api node/video/Kling",
        "output_node": false,
        "api_node": true
    },
    "KlingLipSyncTextToVideoNode": {
        "input": {
            "required": {
                "video": [
                    "VIDEO",
                    {}
                ],
                "text": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Text Content for Lip-Sync Video Generation. Required when mode is text2video. Maximum length is 120 characters.",
                        "multiline": true
                    }
                ],
                "voice": [
                    [
                        "Melody",
                        "Sunny",
                        "Sage",
                        "Ace",
                        "Blossom",
                        "Peppy",
                        "Dove",
                        "Shine",
                        "Anchor",
                        "Lyric",
                        "Tender",
                        "Siren",
                        "Zippy",
                        "Bud",
                        "Sprite",
                        "Candy",
                        "Beacon",
                        "Rock",
                        "Titan",
                        "Grace",
                        "Helen",
                        "Lore",
                        "Crag",
                        "Prattle",
                        "Hearth",
                        "The Reader",
                        "Commercial Lady",
                        "\u9633\u5149\u5c11\u5e74",
                        "\u61c2\u4e8b\u5c0f\u5f1f",
                        "\u8fd0\u52a8\u5c11\u5e74",
                        "\u9752\u6625\u5c11\u5973",
                        "\u6e29\u67d4\u5c0f\u59b9",
                        "\u5143\u6c14\u5c11\u5973",
                        "\u9633\u5149\u7537\u751f",
                        "\u5e7d\u9ed8\u5c0f\u54e5",
                        "\u6587\u827a\u5c0f\u54e5",
                        "\u751c\u7f8e\u90bb\u5bb6",
                        "\u6e29\u67d4\u59d0\u59d0",
                        "\u804c\u573a\u5973\u9752",
                        "\u6d3b\u6cfc\u7537\u7ae5",
                        "\u4fcf\u76ae\u5973\u7ae5",
                        "\u7a33\u91cd\u8001\u7238",
                        "\u6e29\u67d4\u5988\u5988",
                        "\u4e25\u8083\u4e0a\u53f8",
                        "\u4f18\u96c5\u8d35\u5987",
                        "\u6148\u7965\u7237\u7237",
                        "\u5520\u53e8\u7237\u7237",
                        "\u5520\u53e8\u5976\u5976",
                        "\u548c\u853c\u5976\u5976",
                        "\u4e1c\u5317\u8001\u94c1",
                        "\u91cd\u5e86\u5c0f\u4f19",
                        "\u56db\u5ddd\u59b9\u5b50",
                        "\u6f6e\u6c55\u5927\u53d4",
                        "\u53f0\u6e7e\u7537\u751f",
                        "\u897f\u5b89\u638c\u67dc",
                        "\u5929\u6d25\u59d0\u59d0",
                        "\u65b0\u95fb\u64ad\u62a5\u7537",
                        "\u8bd1\u5236\u7247\u7537",
                        "\u6492\u5a07\u5973\u53cb",
                        "\u5200\u7247\u70df\u55d3",
                        "\u4e56\u5de7\u6b63\u592a"
                    ],
                    {
                        "default": "Melody"
                    }
                ],
                "voice_speed": [
                    "FLOAT",
                    {
                        "default": 1,
                        "tooltip": "Speech Rate. Valid range: 0.8~2.0, accurate to one decimal place.",
                        "min": 0.8,
                        "max": 2.0,
                        "slider": true
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "video",
                "text",
                "voice",
                "voice_speed"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO",
            "STRING",
            "STRING"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "VIDEO",
            "video_id",
            "duration"
        ],
        "name": "KlingLipSyncTextToVideoNode",
        "display_name": "Kling Lip Sync Video with Text",
        "description": "Kling Lip Sync Text to Video Node. Syncs mouth movements in a video file to a text prompt. The video file should not be larger than 100MB, should have height/width between 720px and 1920px, and should be between 2s and 10s in length.",
        "python_module": "comfy_api_nodes.nodes_kling",
        "category": "api node/video/Kling",
        "output_node": false,
        "api_node": true
    },
    "KlingVirtualTryOnNode": {
        "input": {
            "required": {
                "human_image": [
                    "IMAGE",
                    {}
                ],
                "cloth_image": [
                    "IMAGE",
                    {}
                ],
                "model_name": [
                    "COMBO",
                    {
                        "options": [
                            "kolors-virtual-try-on-v1",
                            "kolors-virtual-try-on-v1-5"
                        ],
                        "default": "kolors-virtual-try-on-v1"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "human_image",
                "cloth_image",
                "model_name"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "KlingVirtualTryOnNode",
        "display_name": "Kling Virtual Try On",
        "description": "Kling Virtual Try On Node. Input a human image and a cloth image to try on the cloth on the human. You can merge multiple clothing item pictures into one image with a white background.",
        "python_module": "comfy_api_nodes.nodes_kling",
        "category": "api node/image/Kling",
        "output_node": false,
        "api_node": true
    },
    "KlingImageGenerationNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "tooltip": "Positive text prompt",
                        "multiline": true,
                        "max_length": 500
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Negative text prompt",
                        "multiline": true
                    }
                ],
                "image_type": [
                    "COMBO",
                    {
                        "options": [
                            "subject",
                            "face"
                        ],
                        "default": null
                    }
                ],
                "image_fidelity": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "tooltip": "Reference intensity for user-uploaded images",
                        "min": 0.0,
                        "max": 1.0,
                        "slider": true,
                        "step": 0.01
                    }
                ],
                "human_fidelity": [
                    "FLOAT",
                    {
                        "default": 0.45,
                        "tooltip": "Subject reference similarity",
                        "min": 0.0,
                        "max": 1.0,
                        "slider": true,
                        "step": 0.01
                    }
                ],
                "model_name": [
                    "COMBO",
                    {
                        "options": [
                            "kling-v1",
                            "kling-v1-5",
                            "kling-v2"
                        ],
                        "default": "kling-v1"
                    }
                ],
                "aspect_ratio": [
                    "COMBO",
                    {
                        "options": [
                            "16:9",
                            "9:16",
                            "1:1",
                            "4:3",
                            "3:4",
                            "3:2",
                            "2:3",
                            "21:9"
                        ],
                        "default": "16:9"
                    }
                ],
                "n": [
                    "INT",
                    {
                        "default": 1,
                        "tooltip": "Number of generated images",
                        "min": 1,
                        "max": 9
                    }
                ]
            },
            "optional": {
                "image": [
                    "IMAGE",
                    {}
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "negative_prompt",
                "image_type",
                "image_fidelity",
                "human_fidelity",
                "model_name",
                "aspect_ratio",
                "n"
            ],
            "optional": [
                "image"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "KlingImageGenerationNode",
        "display_name": "Kling Image Generation",
        "description": "Kling Image Generation Node. Generate an image from a text prompt with an optional reference image.",
        "python_module": "comfy_api_nodes.nodes_kling",
        "category": "api node/image/Kling",
        "output_node": false,
        "api_node": true
    },
    "KlingSingleImageVideoEffectNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE",
                    {
                        "tooltip": " Reference Image. URL or Base64 encoded string (without data:image prefix). File size cannot exceed 10MB, resolution not less than 300*300px, aspect ratio between 1:2.5 ~ 2.5:1"
                    }
                ],
                "effect_scene": [
                    "COMBO",
                    {
                        "options": [
                            "bloombloom",
                            "dizzydizzy",
                            "fuzzyfuzzy",
                            "squish",
                            "expansion"
                        ]
                    }
                ],
                "model_name": [
                    "COMBO",
                    {
                        "options": [
                            "kling-v1-6"
                        ]
                    }
                ],
                "duration": [
                    "COMBO",
                    {
                        "options": [
                            "5",
                            "10"
                        ]
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "image",
                "effect_scene",
                "model_name",
                "duration"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO",
            "STRING",
            "STRING"
        ],
        "output_is_list": [
            false,
            false,
            false
        ],
        "output_name": [
            "VIDEO",
            "video_id",
            "duration"
        ],
        "name": "KlingSingleImageVideoEffectNode",
        "display_name": "Kling Video Effects",
        "description": "Achieve different special effects when generating a video based on the effect_scene.",
        "python_module": "comfy_api_nodes.nodes_kling",
        "category": "api node/video/Kling",
        "output_node": false,
        "api_node": true
    },
    "KlingDualCharacterVideoEffectNode": {
        "input": {
            "required": {
                "image_left": [
                    "IMAGE",
                    {
                        "tooltip": "Left side image"
                    }
                ],
                "image_right": [
                    "IMAGE",
                    {
                        "tooltip": "Right side image"
                    }
                ],
                "effect_scene": [
                    "COMBO",
                    {
                        "options": [
                            "hug",
                            "kiss",
                            "heart_gesture"
                        ]
                    }
                ],
                "model_name": [
                    "COMBO",
                    {
                        "options": [
                            "kling-v1",
                            "kling-v1-5",
                            "kling-v1-6"
                        ],
                        "default": "kling-v1"
                    }
                ],
                "mode": [
                    "COMBO",
                    {
                        "options": [
                            "std",
                            "pro"
                        ],
                        "default": "std"
                    }
                ],
                "duration": [
                    "COMBO",
                    {
                        "options": [
                            "5",
                            "10"
                        ]
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "image_left",
                "image_right",
                "effect_scene",
                "model_name",
                "mode",
                "duration"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO",
            "STRING"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "VIDEO",
            "duration"
        ],
        "name": "KlingDualCharacterVideoEffectNode",
        "display_name": "Kling Dual Character Video Effects",
        "description": "Achieve different special effects when generating a video based on the effect_scene. First image will be positioned on left side, second on right side of the composite.",
        "python_module": "comfy_api_nodes.nodes_kling",
        "category": "api node/video/Kling",
        "output_node": false,
        "api_node": true
    },
    "FluxProUltraImageNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation"
                    }
                ],
                "prompt_upsampling": [
                    "BOOLEAN",
                    {
                        "default": false,
                        "tooltip": "Whether to perform upsampling on the prompt. If active, automatically modifies the prompt for more creative generation, but results are nondeterministic (same seed will not produce exactly the same result)."
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "The random seed used for creating the noise."
                    }
                ],
                "aspect_ratio": [
                    "STRING",
                    {
                        "default": "16:9",
                        "tooltip": "Aspect ratio of image; must be between 1:4 and 4:1."
                    }
                ],
                "raw": [
                    "BOOLEAN",
                    {
                        "default": false,
                        "tooltip": "When True, generate less processed, more natural-looking images."
                    }
                ]
            },
            "optional": {
                "image_prompt": [
                    "IMAGE"
                ],
                "image_prompt_strength": [
                    "FLOAT",
                    {
                        "default": 0.1,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01,
                        "tooltip": "Blend between the prompt and the image prompt."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "prompt_upsampling",
                "seed",
                "aspect_ratio",
                "raw"
            ],
            "optional": [
                "image_prompt",
                "image_prompt_strength"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "FluxProUltraImageNode",
        "display_name": "Flux 1.1 [pro] Ultra Image",
        "description": "Generates images using Flux Pro 1.1 Ultra via api based on prompt and resolution.",
        "python_module": "comfy_api_nodes.nodes_bfl",
        "category": "api node/image/BFL",
        "output_node": false,
        "api_node": true
    },
    "FluxKontextProImageNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation - specify what and how to edit."
                    }
                ],
                "aspect_ratio": [
                    "STRING",
                    {
                        "default": "16:9",
                        "tooltip": "Aspect ratio of image; must be between 1:4 and 4:1."
                    }
                ],
                "guidance": [
                    "FLOAT",
                    {
                        "default": 3.0,
                        "min": 0.1,
                        "max": 99.0,
                        "step": 0.1,
                        "tooltip": "Guidance strength for the image generation process"
                    }
                ],
                "steps": [
                    "INT",
                    {
                        "default": 50,
                        "min": 1,
                        "max": 150,
                        "tooltip": "Number of steps for the image generation process"
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 1234,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "The random seed used for creating the noise."
                    }
                ],
                "prompt_upsampling": [
                    "BOOLEAN",
                    {
                        "default": false,
                        "tooltip": "Whether to perform upsampling on the prompt. If active, automatically modifies the prompt for more creative generation, but results are nondeterministic (same seed will not produce exactly the same result)."
                    }
                ]
            },
            "optional": {
                "input_image": [
                    "IMAGE"
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "aspect_ratio",
                "guidance",
                "steps",
                "seed",
                "prompt_upsampling"
            ],
            "optional": [
                "input_image"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "FluxKontextProImageNode",
        "display_name": "Flux.1 Kontext [pro] Image",
        "description": "Edits images using Flux.1 Kontext [pro] via api based on prompt and aspect ratio.",
        "python_module": "comfy_api_nodes.nodes_bfl",
        "category": "api node/image/BFL",
        "output_node": false,
        "api_node": true
    },
    "FluxKontextMaxImageNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation - specify what and how to edit."
                    }
                ],
                "aspect_ratio": [
                    "STRING",
                    {
                        "default": "16:9",
                        "tooltip": "Aspect ratio of image; must be between 1:4 and 4:1."
                    }
                ],
                "guidance": [
                    "FLOAT",
                    {
                        "default": 3.0,
                        "min": 0.1,
                        "max": 99.0,
                        "step": 0.1,
                        "tooltip": "Guidance strength for the image generation process"
                    }
                ],
                "steps": [
                    "INT",
                    {
                        "default": 50,
                        "min": 1,
                        "max": 150,
                        "tooltip": "Number of steps for the image generation process"
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 1234,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "The random seed used for creating the noise."
                    }
                ],
                "prompt_upsampling": [
                    "BOOLEAN",
                    {
                        "default": false,
                        "tooltip": "Whether to perform upsampling on the prompt. If active, automatically modifies the prompt for more creative generation, but results are nondeterministic (same seed will not produce exactly the same result)."
                    }
                ]
            },
            "optional": {
                "input_image": [
                    "IMAGE"
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "aspect_ratio",
                "guidance",
                "steps",
                "seed",
                "prompt_upsampling"
            ],
            "optional": [
                "input_image"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "FluxKontextMaxImageNode",
        "display_name": "Flux.1 Kontext [max] Image",
        "description": "Edits images using Flux.1 Kontext [max] via api based on prompt and aspect ratio.",
        "python_module": "comfy_api_nodes.nodes_bfl",
        "category": "api node/image/BFL",
        "output_node": false,
        "api_node": true
    },
    "FluxProExpandNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation"
                    }
                ],
                "prompt_upsampling": [
                    "BOOLEAN",
                    {
                        "default": false,
                        "tooltip": "Whether to perform upsampling on the prompt. If active, automatically modifies the prompt for more creative generation, but results are nondeterministic (same seed will not produce exactly the same result)."
                    }
                ],
                "top": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 2048,
                        "tooltip": "Number of pixels to expand at the top of the image"
                    }
                ],
                "bottom": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 2048,
                        "tooltip": "Number of pixels to expand at the bottom of the image"
                    }
                ],
                "left": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 2048,
                        "tooltip": "Number of pixels to expand at the left side of the image"
                    }
                ],
                "right": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 2048,
                        "tooltip": "Number of pixels to expand at the right side of the image"
                    }
                ],
                "guidance": [
                    "FLOAT",
                    {
                        "default": 60,
                        "min": 1.5,
                        "max": 100,
                        "tooltip": "Guidance strength for the image generation process"
                    }
                ],
                "steps": [
                    "INT",
                    {
                        "default": 50,
                        "min": 15,
                        "max": 50,
                        "tooltip": "Number of steps for the image generation process"
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "The random seed used for creating the noise."
                    }
                ]
            },
            "optional": {},
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "image",
                "prompt",
                "prompt_upsampling",
                "top",
                "bottom",
                "left",
                "right",
                "guidance",
                "steps",
                "seed"
            ],
            "optional": [],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "FluxProExpandNode",
        "display_name": "Flux.1 Expand Image",
        "description": "Outpaints image based on prompt.",
        "python_module": "comfy_api_nodes.nodes_bfl",
        "category": "api node/image/BFL",
        "output_node": false,
        "api_node": true
    },
    "FluxProFillNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "mask": [
                    "MASK"
                ],
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation"
                    }
                ],
                "prompt_upsampling": [
                    "BOOLEAN",
                    {
                        "default": false,
                        "tooltip": "Whether to perform upsampling on the prompt. If active, automatically modifies the prompt for more creative generation, but results are nondeterministic (same seed will not produce exactly the same result)."
                    }
                ],
                "guidance": [
                    "FLOAT",
                    {
                        "default": 60,
                        "min": 1.5,
                        "max": 100,
                        "tooltip": "Guidance strength for the image generation process"
                    }
                ],
                "steps": [
                    "INT",
                    {
                        "default": 50,
                        "min": 15,
                        "max": 50,
                        "tooltip": "Number of steps for the image generation process"
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "The random seed used for creating the noise."
                    }
                ]
            },
            "optional": {},
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "image",
                "mask",
                "prompt",
                "prompt_upsampling",
                "guidance",
                "steps",
                "seed"
            ],
            "optional": [],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "FluxProFillNode",
        "display_name": "Flux.1 Fill Image",
        "description": "Inpaints image based on mask and prompt.",
        "python_module": "comfy_api_nodes.nodes_bfl",
        "category": "api node/image/BFL",
        "output_node": false,
        "api_node": true
    },
    "FluxProCannyNode": {
        "input": {
            "required": {
                "control_image": [
                    "IMAGE"
                ],
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation"
                    }
                ],
                "prompt_upsampling": [
                    "BOOLEAN",
                    {
                        "default": false,
                        "tooltip": "Whether to perform upsampling on the prompt. If active, automatically modifies the prompt for more creative generation, but results are nondeterministic (same seed will not produce exactly the same result)."
                    }
                ],
                "canny_low_threshold": [
                    "FLOAT",
                    {
                        "default": 0.1,
                        "min": 0.01,
                        "max": 0.99,
                        "step": 0.01,
                        "tooltip": "Low threshold for Canny edge detection; ignored if skip_processing is True"
                    }
                ],
                "canny_high_threshold": [
                    "FLOAT",
                    {
                        "default": 0.4,
                        "min": 0.01,
                        "max": 0.99,
                        "step": 0.01,
                        "tooltip": "High threshold for Canny edge detection; ignored if skip_processing is True"
                    }
                ],
                "skip_preprocessing": [
                    "BOOLEAN",
                    {
                        "default": false,
                        "tooltip": "Whether to skip preprocessing; set to True if control_image already is canny-fied, False if it is a raw image."
                    }
                ],
                "guidance": [
                    "FLOAT",
                    {
                        "default": 30,
                        "min": 1,
                        "max": 100,
                        "tooltip": "Guidance strength for the image generation process"
                    }
                ],
                "steps": [
                    "INT",
                    {
                        "default": 50,
                        "min": 15,
                        "max": 50,
                        "tooltip": "Number of steps for the image generation process"
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "The random seed used for creating the noise."
                    }
                ]
            },
            "optional": {},
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "control_image",
                "prompt",
                "prompt_upsampling",
                "canny_low_threshold",
                "canny_high_threshold",
                "skip_preprocessing",
                "guidance",
                "steps",
                "seed"
            ],
            "optional": [],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "FluxProCannyNode",
        "display_name": "Flux.1 Canny Control Image",
        "description": "Generate image using a control image (canny).",
        "python_module": "comfy_api_nodes.nodes_bfl",
        "category": "api node/image/BFL",
        "output_node": false,
        "api_node": true
    },
    "FluxProDepthNode": {
        "input": {
            "required": {
                "control_image": [
                    "IMAGE"
                ],
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation"
                    }
                ],
                "prompt_upsampling": [
                    "BOOLEAN",
                    {
                        "default": false,
                        "tooltip": "Whether to perform upsampling on the prompt. If active, automatically modifies the prompt for more creative generation, but results are nondeterministic (same seed will not produce exactly the same result)."
                    }
                ],
                "skip_preprocessing": [
                    "BOOLEAN",
                    {
                        "default": false,
                        "tooltip": "Whether to skip preprocessing; set to True if control_image already is depth-ified, False if it is a raw image."
                    }
                ],
                "guidance": [
                    "FLOAT",
                    {
                        "default": 15,
                        "min": 1,
                        "max": 100,
                        "tooltip": "Guidance strength for the image generation process"
                    }
                ],
                "steps": [
                    "INT",
                    {
                        "default": 50,
                        "min": 15,
                        "max": 50,
                        "tooltip": "Number of steps for the image generation process"
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "The random seed used for creating the noise."
                    }
                ]
            },
            "optional": {},
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "control_image",
                "prompt",
                "prompt_upsampling",
                "skip_preprocessing",
                "guidance",
                "steps",
                "seed"
            ],
            "optional": [],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "FluxProDepthNode",
        "display_name": "Flux.1 Depth Control Image",
        "description": "Generate image using a control image (depth).",
        "python_module": "comfy_api_nodes.nodes_bfl",
        "category": "api node/image/BFL",
        "output_node": false,
        "api_node": true
    },
    "LumaImageNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation"
                    }
                ],
                "model": [
                    [
                        "photon-1",
                        "photon-flash-1"
                    ]
                ],
                "aspect_ratio": [
                    [
                        "1:1",
                        "16:9",
                        "9:16",
                        "4:3",
                        "3:4",
                        "21:9",
                        "9:21"
                    ],
                    {
                        "default": "16:9"
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "Seed to determine if node should re-run; actual results are nondeterministic regardless of seed."
                    }
                ],
                "style_image_weight": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01,
                        "tooltip": "Weight of style image. Ignored if no style_image provided."
                    }
                ]
            },
            "optional": {
                "image_luma_ref": [
                    "LUMA_REF",
                    {
                        "tooltip": "Luma Reference node connection to influence generation with input images; up to 4 images can be considered."
                    }
                ],
                "style_image": [
                    "IMAGE",
                    {
                        "tooltip": "Style reference image; only 1 image will be used."
                    }
                ],
                "character_image": [
                    "IMAGE",
                    {
                        "tooltip": "Character reference images; can be a batch of multiple, up to 4 images can be considered."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "model",
                "aspect_ratio",
                "seed",
                "style_image_weight"
            ],
            "optional": [
                "image_luma_ref",
                "style_image",
                "character_image"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "LumaImageNode",
        "display_name": "Luma Text to Image",
        "description": "Generates images synchronously based on prompt and aspect ratio.",
        "python_module": "comfy_api_nodes.nodes_luma",
        "category": "api node/image/Luma",
        "output_node": false,
        "api_node": true
    },
    "LumaImageModifyNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation"
                    }
                ],
                "image_weight": [
                    "FLOAT",
                    {
                        "default": 0.1,
                        "min": 0.0,
                        "max": 0.98,
                        "step": 0.01,
                        "tooltip": "Weight of the image; the closer to 1.0, the less the image will be modified."
                    }
                ],
                "model": [
                    [
                        "photon-1",
                        "photon-flash-1"
                    ]
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "Seed to determine if node should re-run; actual results are nondeterministic regardless of seed."
                    }
                ]
            },
            "optional": {},
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "image",
                "prompt",
                "image_weight",
                "model",
                "seed"
            ],
            "optional": [],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "LumaImageModifyNode",
        "display_name": "Luma Image to Image",
        "description": "Modifies images synchronously based on prompt and aspect ratio.",
        "python_module": "comfy_api_nodes.nodes_luma",
        "category": "api node/image/Luma",
        "output_node": false,
        "api_node": true
    },
    "LumaVideoNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the video generation"
                    }
                ],
                "model": [
                    [
                        "ray-2",
                        "ray-flash-2",
                        "ray-1-6"
                    ]
                ],
                "aspect_ratio": [
                    [
                        "1:1",
                        "16:9",
                        "9:16",
                        "4:3",
                        "3:4",
                        "21:9",
                        "9:21"
                    ],
                    {
                        "default": "16:9"
                    }
                ],
                "resolution": [
                    [
                        "540p",
                        "720p",
                        "1080p",
                        "4k"
                    ],
                    {
                        "default": "540p"
                    }
                ],
                "duration": [
                    [
                        "5s",
                        "9s"
                    ]
                ],
                "loop": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "Seed to determine if node should re-run; actual results are nondeterministic regardless of seed."
                    }
                ]
            },
            "optional": {
                "luma_concepts": [
                    "LUMA_CONCEPTS",
                    {
                        "tooltip": "Optional Camera Concepts to dictate camera motion via the Luma Concepts node."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "model",
                "aspect_ratio",
                "resolution",
                "duration",
                "loop",
                "seed"
            ],
            "optional": [
                "luma_concepts"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "LumaVideoNode",
        "display_name": "Luma Text to Video",
        "description": "Generates videos synchronously based on prompt and output_size.",
        "python_module": "comfy_api_nodes.nodes_luma",
        "category": "api node/video/Luma",
        "output_node": false,
        "api_node": true
    },
    "LumaImageToVideoNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the video generation"
                    }
                ],
                "model": [
                    [
                        "ray-2",
                        "ray-flash-2",
                        "ray-1-6"
                    ]
                ],
                "resolution": [
                    [
                        "540p",
                        "720p",
                        "1080p",
                        "4k"
                    ],
                    {
                        "default": "540p"
                    }
                ],
                "duration": [
                    [
                        "5s",
                        "9s"
                    ]
                ],
                "loop": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "Seed to determine if node should re-run; actual results are nondeterministic regardless of seed."
                    }
                ]
            },
            "optional": {
                "first_image": [
                    "IMAGE",
                    {
                        "tooltip": "First frame of generated video."
                    }
                ],
                "last_image": [
                    "IMAGE",
                    {
                        "tooltip": "Last frame of generated video."
                    }
                ],
                "luma_concepts": [
                    "LUMA_CONCEPTS",
                    {
                        "tooltip": "Optional Camera Concepts to dictate camera motion via the Luma Concepts node."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "model",
                "resolution",
                "duration",
                "loop",
                "seed"
            ],
            "optional": [
                "first_image",
                "last_image",
                "luma_concepts"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "LumaImageToVideoNode",
        "display_name": "Luma Image to Video",
        "description": "Generates videos synchronously based on prompt, input images, and output_size.",
        "python_module": "comfy_api_nodes.nodes_luma",
        "category": "api node/video/Luma",
        "output_node": false,
        "api_node": true
    },
    "LumaReferenceNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE",
                    {
                        "tooltip": "Image to use as reference."
                    }
                ],
                "weight": [
                    "FLOAT",
                    {
                        "default": 1.0,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01,
                        "tooltip": "Weight of image reference."
                    }
                ]
            },
            "optional": {
                "luma_ref": [
                    "LUMA_REF"
                ]
            }
        },
        "input_order": {
            "required": [
                "image",
                "weight"
            ],
            "optional": [
                "luma_ref"
            ]
        },
        "output": [
            "LUMA_REF"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "luma_ref"
        ],
        "name": "LumaReferenceNode",
        "display_name": "Luma Reference",
        "description": "Holds an image and weight for use with Luma Generate Image node.",
        "python_module": "comfy_api_nodes.nodes_luma",
        "category": "api node/image/Luma",
        "output_node": false
    },
    "LumaConceptsNode": {
        "input": {
            "required": {
                "concept1": [
                    [
                        "None",
                        "truck_left",
                        "pan_right",
                        "pedestal_down",
                        "low_angle",
                        "pedestal_up",
                        "selfie",
                        "pan_left",
                        "roll_right",
                        "zoom_in",
                        "over_the_shoulder",
                        "orbit_right",
                        "orbit_left",
                        "static",
                        "tiny_planet",
                        "high_angle",
                        "bolt_cam",
                        "dolly_zoom",
                        "overhead",
                        "zoom_out",
                        "handheld",
                        "roll_left",
                        "pov",
                        "aerial_drone",
                        "push_in",
                        "crane_down",
                        "truck_right",
                        "tilt_down",
                        "elevator_doors",
                        "tilt_up",
                        "ground_level",
                        "pull_out",
                        "aerial",
                        "crane_up",
                        "eye_level"
                    ]
                ],
                "concept2": [
                    [
                        "None",
                        "truck_left",
                        "pan_right",
                        "pedestal_down",
                        "low_angle",
                        "pedestal_up",
                        "selfie",
                        "pan_left",
                        "roll_right",
                        "zoom_in",
                        "over_the_shoulder",
                        "orbit_right",
                        "orbit_left",
                        "static",
                        "tiny_planet",
                        "high_angle",
                        "bolt_cam",
                        "dolly_zoom",
                        "overhead",
                        "zoom_out",
                        "handheld",
                        "roll_left",
                        "pov",
                        "aerial_drone",
                        "push_in",
                        "crane_down",
                        "truck_right",
                        "tilt_down",
                        "elevator_doors",
                        "tilt_up",
                        "ground_level",
                        "pull_out",
                        "aerial",
                        "crane_up",
                        "eye_level"
                    ]
                ],
                "concept3": [
                    [
                        "None",
                        "truck_left",
                        "pan_right",
                        "pedestal_down",
                        "low_angle",
                        "pedestal_up",
                        "selfie",
                        "pan_left",
                        "roll_right",
                        "zoom_in",
                        "over_the_shoulder",
                        "orbit_right",
                        "orbit_left",
                        "static",
                        "tiny_planet",
                        "high_angle",
                        "bolt_cam",
                        "dolly_zoom",
                        "overhead",
                        "zoom_out",
                        "handheld",
                        "roll_left",
                        "pov",
                        "aerial_drone",
                        "push_in",
                        "crane_down",
                        "truck_right",
                        "tilt_down",
                        "elevator_doors",
                        "tilt_up",
                        "ground_level",
                        "pull_out",
                        "aerial",
                        "crane_up",
                        "eye_level"
                    ]
                ],
                "concept4": [
                    [
                        "None",
                        "truck_left",
                        "pan_right",
                        "pedestal_down",
                        "low_angle",
                        "pedestal_up",
                        "selfie",
                        "pan_left",
                        "roll_right",
                        "zoom_in",
                        "over_the_shoulder",
                        "orbit_right",
                        "orbit_left",
                        "static",
                        "tiny_planet",
                        "high_angle",
                        "bolt_cam",
                        "dolly_zoom",
                        "overhead",
                        "zoom_out",
                        "handheld",
                        "roll_left",
                        "pov",
                        "aerial_drone",
                        "push_in",
                        "crane_down",
                        "truck_right",
                        "tilt_down",
                        "elevator_doors",
                        "tilt_up",
                        "ground_level",
                        "pull_out",
                        "aerial",
                        "crane_up",
                        "eye_level"
                    ]
                ]
            },
            "optional": {
                "luma_concepts": [
                    "LUMA_CONCEPTS",
                    {
                        "tooltip": "Optional Camera Concepts to add to the ones chosen here."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "concept1",
                "concept2",
                "concept3",
                "concept4"
            ],
            "optional": [
                "luma_concepts"
            ]
        },
        "output": [
            "LUMA_CONCEPTS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "luma_concepts"
        ],
        "name": "LumaConceptsNode",
        "display_name": "Luma Concepts",
        "description": "Holds one or more Camera Concepts for use with Luma Text to Video and Luma Image to Video nodes.",
        "python_module": "comfy_api_nodes.nodes_luma",
        "category": "api node/video/Luma",
        "output_node": false
    },
    "RecraftTextToImageNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation."
                    }
                ],
                "size": [
                    [
                        "1024x1024",
                        "1365x1024",
                        "1024x1365",
                        "1536x1024",
                        "1024x1536",
                        "1820x1024",
                        "1024x1820",
                        "1024x2048",
                        "2048x1024",
                        "1434x1024",
                        "1024x1434",
                        "1024x1280",
                        "1280x1024",
                        "1024x1707",
                        "1707x1024"
                    ],
                    {
                        "default": "1024x1024",
                        "tooltip": "The size of the generated image."
                    }
                ],
                "n": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 6,
                        "tooltip": "The number of images to generate."
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "Seed to determine if node should re-run; actual results are nondeterministic regardless of seed."
                    }
                ]
            },
            "optional": {
                "recraft_style": [
                    "RECRAFT_V3_STYLE"
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": "",
                        "forceInput": true,
                        "tooltip": "An optional text description of undesired elements on an image."
                    }
                ],
                "recraft_controls": [
                    "RECRAFT_CONTROLS",
                    {
                        "tooltip": "Optional additional controls over the generation via the Recraft Controls node."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "size",
                "n",
                "seed"
            ],
            "optional": [
                "recraft_style",
                "negative_prompt",
                "recraft_controls"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "RecraftTextToImageNode",
        "display_name": "Recraft Text to Image",
        "description": "Generates images synchronously based on prompt and resolution.",
        "python_module": "comfy_api_nodes.nodes_recraft",
        "category": "api node/image/Recraft",
        "output_node": false,
        "api_node": true
    },
    "RecraftImageToImageNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation."
                    }
                ],
                "n": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 6,
                        "tooltip": "The number of images to generate."
                    }
                ],
                "strength": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01,
                        "tooltip": "Defines the difference with the original image, should lie in [0, 1], where 0 means almost identical, and 1 means miserable similarity."
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "Seed to determine if node should re-run; actual results are nondeterministic regardless of seed."
                    }
                ]
            },
            "optional": {
                "recraft_style": [
                    "RECRAFT_V3_STYLE"
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": "",
                        "forceInput": true,
                        "tooltip": "An optional text description of undesired elements on an image."
                    }
                ],
                "recraft_controls": [
                    "RECRAFT_CONTROLS",
                    {
                        "tooltip": "Optional additional controls over the generation via the Recraft Controls node."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "image",
                "prompt",
                "n",
                "strength",
                "seed"
            ],
            "optional": [
                "recraft_style",
                "negative_prompt",
                "recraft_controls"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "RecraftImageToImageNode",
        "display_name": "Recraft Image to Image",
        "description": "Modify image based on prompt and strength.",
        "python_module": "comfy_api_nodes.nodes_recraft",
        "category": "api node/image/Recraft",
        "output_node": false,
        "api_node": true
    },
    "RecraftImageInpaintingNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "mask": [
                    "MASK"
                ],
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation."
                    }
                ],
                "n": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 6,
                        "tooltip": "The number of images to generate."
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "Seed to determine if node should re-run; actual results are nondeterministic regardless of seed."
                    }
                ]
            },
            "optional": {
                "recraft_style": [
                    "RECRAFT_V3_STYLE"
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": "",
                        "forceInput": true,
                        "tooltip": "An optional text description of undesired elements on an image."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "image",
                "mask",
                "prompt",
                "n",
                "seed"
            ],
            "optional": [
                "recraft_style",
                "negative_prompt"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "RecraftImageInpaintingNode",
        "display_name": "Recraft Image Inpainting",
        "description": "Modify image based on prompt and mask.",
        "python_module": "comfy_api_nodes.nodes_recraft",
        "category": "api node/image/Recraft",
        "output_node": false,
        "api_node": true
    },
    "RecraftTextToVectorNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation."
                    }
                ],
                "substyle": [
                    [
                        "None",
                        "bold_stroke",
                        "chemistry",
                        "colored_stencil",
                        "contour_pop_art",
                        "cosmics",
                        "cutout",
                        "depressive",
                        "editorial",
                        "emotional_flat",
                        "engraving",
                        "infographical",
                        "line_art",
                        "line_circuit",
                        "linocut",
                        "marker_outline",
                        "mosaic",
                        "naivector",
                        "roundish_flat",
                        "seamless",
                        "segmented_colors",
                        "sharp_contrast",
                        "thin",
                        "vector_photo",
                        "vivid_shapes"
                    ]
                ],
                "size": [
                    [
                        "1024x1024",
                        "1365x1024",
                        "1024x1365",
                        "1536x1024",
                        "1024x1536",
                        "1820x1024",
                        "1024x1820",
                        "1024x2048",
                        "2048x1024",
                        "1434x1024",
                        "1024x1434",
                        "1024x1280",
                        "1280x1024",
                        "1024x1707",
                        "1707x1024"
                    ],
                    {
                        "default": "1024x1024",
                        "tooltip": "The size of the generated image."
                    }
                ],
                "n": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 6,
                        "tooltip": "The number of images to generate."
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "Seed to determine if node should re-run; actual results are nondeterministic regardless of seed."
                    }
                ]
            },
            "optional": {
                "negative_prompt": [
                    "STRING",
                    {
                        "default": "",
                        "forceInput": true,
                        "tooltip": "An optional text description of undesired elements on an image."
                    }
                ],
                "recraft_controls": [
                    "RECRAFT_CONTROLS",
                    {
                        "tooltip": "Optional additional controls over the generation via the Recraft Controls node."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "substyle",
                "size",
                "n",
                "seed"
            ],
            "optional": [
                "negative_prompt",
                "recraft_controls"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "SVG"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SVG"
        ],
        "name": "RecraftTextToVectorNode",
        "display_name": "Recraft Text to Vector",
        "description": "Generates SVG synchronously based on prompt and resolution.",
        "python_module": "comfy_api_nodes.nodes_recraft",
        "category": "api node/image/Recraft",
        "output_node": false,
        "api_node": true
    },
    "RecraftVectorizeImageNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ]
            },
            "optional": {},
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "image"
            ],
            "optional": [],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "SVG"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "SVG"
        ],
        "name": "RecraftVectorizeImageNode",
        "display_name": "Recraft Vectorize Image",
        "description": "Generates SVG synchronously from an input image.",
        "python_module": "comfy_api_nodes.nodes_recraft",
        "category": "api node/image/Recraft",
        "output_node": false,
        "api_node": true
    },
    "RecraftRemoveBackgroundNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ]
            },
            "optional": {},
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "image"
            ],
            "optional": [],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "IMAGE",
            "MASK"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "IMAGE",
            "MASK"
        ],
        "name": "RecraftRemoveBackgroundNode",
        "display_name": "Recraft Remove Background",
        "description": "Remove background from image, and return processed image and mask.",
        "python_module": "comfy_api_nodes.nodes_recraft",
        "category": "api node/image/Recraft",
        "output_node": false,
        "api_node": true
    },
    "RecraftReplaceBackgroundNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the image generation."
                    }
                ],
                "n": [
                    "INT",
                    {
                        "default": 1,
                        "min": 1,
                        "max": 6,
                        "tooltip": "The number of images to generate."
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "Seed to determine if node should re-run; actual results are nondeterministic regardless of seed."
                    }
                ]
            },
            "optional": {
                "recraft_style": [
                    "RECRAFT_V3_STYLE"
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": "",
                        "forceInput": true,
                        "tooltip": "An optional text description of undesired elements on an image."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "image",
                "prompt",
                "n",
                "seed"
            ],
            "optional": [
                "recraft_style",
                "negative_prompt"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "RecraftReplaceBackgroundNode",
        "display_name": "Recraft Replace Background",
        "description": "Replace background on image, based on provided prompt.",
        "python_module": "comfy_api_nodes.nodes_recraft",
        "category": "api node/image/Recraft",
        "output_node": false,
        "api_node": true
    },
    "RecraftCrispUpscaleNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ]
            },
            "optional": {},
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "image"
            ],
            "optional": [],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "RecraftCrispUpscaleNode",
        "display_name": "Recraft Crisp Upscale Image",
        "description": "Upscale image synchronously.\nEnhances a given raster image using \u2018crisp upscale\u2019 tool, increasing image resolution, making the image sharper and cleaner.",
        "python_module": "comfy_api_nodes.nodes_recraft",
        "category": "api node/image/Recraft",
        "output_node": false,
        "api_node": true
    },
    "RecraftCreativeUpscaleNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ]
            },
            "optional": {},
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "image"
            ],
            "optional": [],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "RecraftCreativeUpscaleNode",
        "display_name": "Recraft Creative Upscale Image",
        "description": "Upscale image synchronously.\nEnhances a given raster image using \u2018creative upscale\u2019 tool, boosting resolution with a focus on refining small details and faces.",
        "python_module": "comfy_api_nodes.nodes_recraft",
        "category": "api node/image/Recraft",
        "output_node": false,
        "api_node": true
    },
    "RecraftStyleV3RealisticImage": {
        "input": {
            "required": {
                "substyle": [
                    [
                        "None",
                        "b_and_w",
                        "enterprise",
                        "evening_light",
                        "faded_nostalgia",
                        "forest_life",
                        "hard_flash",
                        "hdr",
                        "motion_blur",
                        "mystic_naturalism",
                        "natural_light",
                        "natural_tones",
                        "organic_calm",
                        "real_life_glow",
                        "retro_realism",
                        "retro_snapshot",
                        "studio_portrait",
                        "urban_drama",
                        "village_realism",
                        "warm_folk"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "substyle"
            ]
        },
        "output": [
            "RECRAFT_V3_STYLE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "recraft_style"
        ],
        "name": "RecraftStyleV3RealisticImage",
        "display_name": "Recraft Style - Realistic Image",
        "description": "Select realistic_image style and optional substyle.",
        "python_module": "comfy_api_nodes.nodes_recraft",
        "category": "api node/image/Recraft",
        "output_node": false
    },
    "RecraftStyleV3DigitalIllustration": {
        "input": {
            "required": {
                "substyle": [
                    [
                        "None",
                        "2d_art_poster",
                        "2d_art_poster_2",
                        "antiquarian",
                        "bold_fantasy",
                        "child_book",
                        "child_books",
                        "cover",
                        "crosshatch",
                        "digital_engraving",
                        "engraving_color",
                        "expressionism",
                        "freehand_details",
                        "grain",
                        "grain_20",
                        "graphic_intensity",
                        "hand_drawn",
                        "hand_drawn_outline",
                        "handmade_3d",
                        "hard_comics",
                        "infantile_sketch",
                        "long_shadow",
                        "modern_folk",
                        "multicolor",
                        "neon_calm",
                        "noir",
                        "nostalgic_pastel",
                        "outline_details",
                        "pastel_gradient",
                        "pastel_sketch",
                        "pixel_art",
                        "plastic",
                        "pop_art",
                        "pop_renaissance",
                        "seamless",
                        "street_art",
                        "tablet_sketch",
                        "urban_glow",
                        "urban_sketching",
                        "vanilla_dreams",
                        "young_adult_book",
                        "young_adult_book_2"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "substyle"
            ]
        },
        "output": [
            "RECRAFT_V3_STYLE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "recraft_style"
        ],
        "name": "RecraftStyleV3DigitalIllustration",
        "display_name": "Recraft Style - Digital Illustration",
        "description": "Select realistic_image style and optional substyle.",
        "python_module": "comfy_api_nodes.nodes_recraft",
        "category": "api node/image/Recraft",
        "output_node": false
    },
    "RecraftStyleV3LogoRaster": {
        "input": {
            "required": {
                "substyle": [
                    [
                        "emblem_graffiti",
                        "emblem_pop_art",
                        "emblem_punk",
                        "emblem_stamp",
                        "emblem_vintage"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "substyle"
            ]
        },
        "output": [
            "RECRAFT_V3_STYLE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "recraft_style"
        ],
        "name": "RecraftStyleV3LogoRaster",
        "display_name": "Recraft Style - Logo Raster",
        "description": "Select realistic_image style and optional substyle.",
        "python_module": "comfy_api_nodes.nodes_recraft",
        "category": "api node/image/Recraft",
        "output_node": false
    },
    "RecraftStyleV3InfiniteStyleLibrary": {
        "input": {
            "required": {
                "style_id": [
                    "STRING",
                    {
                        "default": "",
                        "tooltip": "UUID of style from Infinite Style Library."
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "style_id"
            ]
        },
        "output": [
            "RECRAFT_V3_STYLE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "recraft_style"
        ],
        "name": "RecraftStyleV3InfiniteStyleLibrary",
        "display_name": "Recraft Style - Infinite Style Library",
        "description": "Select style based on preexisting UUID from Recraft's Infinite Style Library.",
        "python_module": "comfy_api_nodes.nodes_recraft",
        "category": "api node/image/Recraft",
        "output_node": false
    },
    "RecraftColorRGB": {
        "input": {
            "required": {
                "r": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 255,
                        "tooltip": "Red value of color."
                    }
                ],
                "g": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 255,
                        "tooltip": "Green value of color."
                    }
                ],
                "b": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 255,
                        "tooltip": "Blue value of color."
                    }
                ]
            },
            "optional": {
                "recraft_color": [
                    "RECRAFT_COLOR"
                ]
            }
        },
        "input_order": {
            "required": [
                "r",
                "g",
                "b"
            ],
            "optional": [
                "recraft_color"
            ]
        },
        "output": [
            "RECRAFT_COLOR"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "recraft_color"
        ],
        "name": "RecraftColorRGB",
        "display_name": "Recraft Color RGB",
        "description": "Create Recraft Color by choosing specific RGB values.",
        "python_module": "comfy_api_nodes.nodes_recraft",
        "category": "api node/image/Recraft",
        "output_node": false
    },
    "RecraftControls": {
        "input": {
            "required": {},
            "optional": {
                "colors": [
                    "RECRAFT_COLOR"
                ],
                "background_color": [
                    "RECRAFT_COLOR"
                ]
            }
        },
        "input_order": {
            "required": [],
            "optional": [
                "colors",
                "background_color"
            ]
        },
        "output": [
            "RECRAFT_CONTROLS"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "recraft_controls"
        ],
        "name": "RecraftControls",
        "display_name": "Recraft Controls",
        "description": "Create Recraft Controls for customizing Recraft generation.",
        "python_module": "comfy_api_nodes.nodes_recraft",
        "category": "api node/image/Recraft",
        "output_node": false
    },
    "PixverseTextToVideoNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the video generation"
                    }
                ],
                "aspect_ratio": [
                    [
                        "16:9",
                        "4:3",
                        "1:1",
                        "3:4",
                        "9:16"
                    ]
                ],
                "quality": [
                    [
                        "360p",
                        "540p",
                        "720p",
                        "1080p"
                    ],
                    {
                        "default": "540p"
                    }
                ],
                "duration_seconds": [
                    [
                        5,
                        8
                    ]
                ],
                "motion_mode": [
                    [
                        "normal",
                        "fast"
                    ]
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 2147483647,
                        "control_after_generate": true,
                        "tooltip": "Seed for video generation."
                    }
                ]
            },
            "optional": {
                "negative_prompt": [
                    "STRING",
                    {
                        "default": "",
                        "forceInput": true,
                        "tooltip": "An optional text description of undesired elements on an image."
                    }
                ],
                "pixverse_template": [
                    "PIXVERSE_TEMPLATE",
                    {
                        "tooltip": "An optional template to influence style of generation, created by the PixVerse Template node."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "aspect_ratio",
                "quality",
                "duration_seconds",
                "motion_mode",
                "seed"
            ],
            "optional": [
                "negative_prompt",
                "pixverse_template"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "PixverseTextToVideoNode",
        "display_name": "PixVerse Text to Video",
        "description": "Generates videos based on prompt and output_size.",
        "python_module": "comfy_api_nodes.nodes_pixverse",
        "category": "api node/video/PixVerse",
        "output_node": false,
        "api_node": true
    },
    "PixverseImageToVideoNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the video generation"
                    }
                ],
                "quality": [
                    [
                        "360p",
                        "540p",
                        "720p",
                        "1080p"
                    ],
                    {
                        "default": "540p"
                    }
                ],
                "duration_seconds": [
                    [
                        5,
                        8
                    ]
                ],
                "motion_mode": [
                    [
                        "normal",
                        "fast"
                    ]
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 2147483647,
                        "control_after_generate": true,
                        "tooltip": "Seed for video generation."
                    }
                ]
            },
            "optional": {
                "negative_prompt": [
                    "STRING",
                    {
                        "default": "",
                        "forceInput": true,
                        "tooltip": "An optional text description of undesired elements on an image."
                    }
                ],
                "pixverse_template": [
                    "PIXVERSE_TEMPLATE",
                    {
                        "tooltip": "An optional template to influence style of generation, created by the PixVerse Template node."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "image",
                "prompt",
                "quality",
                "duration_seconds",
                "motion_mode",
                "seed"
            ],
            "optional": [
                "negative_prompt",
                "pixverse_template"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "PixverseImageToVideoNode",
        "display_name": "PixVerse Image to Video",
        "description": "Generates videos based on prompt and output_size.",
        "python_module": "comfy_api_nodes.nodes_pixverse",
        "category": "api node/video/PixVerse",
        "output_node": false,
        "api_node": true
    },
    "PixverseTransitionVideoNode": {
        "input": {
            "required": {
                "first_frame": [
                    "IMAGE"
                ],
                "last_frame": [
                    "IMAGE"
                ],
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Prompt for the video generation"
                    }
                ],
                "quality": [
                    [
                        "360p",
                        "540p",
                        "720p",
                        "1080p"
                    ],
                    {
                        "default": "540p"
                    }
                ],
                "duration_seconds": [
                    [
                        5,
                        8
                    ]
                ],
                "motion_mode": [
                    [
                        "normal",
                        "fast"
                    ]
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 2147483647,
                        "control_after_generate": true,
                        "tooltip": "Seed for video generation."
                    }
                ]
            },
            "optional": {
                "negative_prompt": [
                    "STRING",
                    {
                        "default": "",
                        "forceInput": true,
                        "tooltip": "An optional text description of undesired elements on an image."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "first_frame",
                "last_frame",
                "prompt",
                "quality",
                "duration_seconds",
                "motion_mode",
                "seed"
            ],
            "optional": [
                "negative_prompt"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "PixverseTransitionVideoNode",
        "display_name": "PixVerse Transition Video",
        "description": "Generates videos based on prompt and output_size.",
        "python_module": "comfy_api_nodes.nodes_pixverse",
        "category": "api node/video/PixVerse",
        "output_node": false,
        "api_node": true
    },
    "PixverseTemplateNode": {
        "input": {
            "required": {
                "template": [
                    [
                        "Microwave",
                        "Suit Swagger",
                        "Anything, Robot",
                        "Subject 3 Fever",
                        "kiss kiss"
                    ]
                ]
            }
        },
        "input_order": {
            "required": [
                "template"
            ]
        },
        "output": [
            "PIXVERSE_TEMPLATE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "pixverse_template"
        ],
        "name": "PixverseTemplateNode",
        "display_name": "PixVerse Template",
        "description": "",
        "python_module": "comfy_api_nodes.nodes_pixverse",
        "category": "api node/video/PixVerse",
        "output_node": false
    },
    "StabilityStableImageUltraNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "What you wish to see in the output image. A strong, descriptive prompt that clearly definesWhat you wish to see in the output image. A strong, descriptive prompt that clearly defineselements, colors, and subjects will lead to better results. To control the weight of a given word use the format `(word:weight)`,where `word` is the word you'd like to control the weight of and `weight`is a value between 0 and 1. For example: `The sky was a crisp (blue:0.3) and (green:0.8)`would convey a sky that was blue and green, but more green than blue."
                    }
                ],
                "aspect_ratio": [
                    [
                        "1:1",
                        "16:9",
                        "9:16",
                        "3:2",
                        "2:3",
                        "5:4",
                        "4:5",
                        "21:9",
                        "9:21"
                    ],
                    {
                        "default": "1:1",
                        "tooltip": "Aspect ratio of generated image."
                    }
                ],
                "style_preset": [
                    [
                        "None",
                        "3d-model",
                        "analog-film",
                        "anime",
                        "cinematic",
                        "comic-book",
                        "digital-art",
                        "enhance",
                        "fantasy-art",
                        "isometric",
                        "line-art",
                        "low-poly",
                        "modeling-compound",
                        "neon-punk",
                        "origami",
                        "photographic",
                        "pixel-art",
                        "tile-texture"
                    ],
                    {
                        "tooltip": "Optional desired style of generated image."
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 4294967294,
                        "control_after_generate": true,
                        "tooltip": "The random seed used for creating the noise."
                    }
                ]
            },
            "optional": {
                "image": [
                    "IMAGE"
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": "",
                        "forceInput": true,
                        "tooltip": "A blurb of text describing what you do not wish to see in the output image. This is an advanced feature."
                    }
                ],
                "image_denoise": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01,
                        "tooltip": "Denoise of input image; 0.0 yields image identical to input, 1.0 is as if no image was provided at all."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "aspect_ratio",
                "style_preset",
                "seed"
            ],
            "optional": [
                "image",
                "negative_prompt",
                "image_denoise"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "StabilityStableImageUltraNode",
        "display_name": "Stability AI Stable Image Ultra",
        "description": "Generates images synchronously based on prompt and resolution.",
        "python_module": "comfy_api_nodes.nodes_stability",
        "category": "api node/image/Stability AI",
        "output_node": false,
        "api_node": true
    },
    "StabilityStableImageSD_3_5Node": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "What you wish to see in the output image. A strong, descriptive prompt that clearly defines elements, colors, and subjects will lead to better results."
                    }
                ],
                "model": [
                    [
                        "sd3.5-large",
                        "sd3.5-medium"
                    ]
                ],
                "aspect_ratio": [
                    [
                        "1:1",
                        "16:9",
                        "9:16",
                        "3:2",
                        "2:3",
                        "5:4",
                        "4:5",
                        "21:9",
                        "9:21"
                    ],
                    {
                        "default": "1:1",
                        "tooltip": "Aspect ratio of generated image."
                    }
                ],
                "style_preset": [
                    [
                        "None",
                        "3d-model",
                        "analog-film",
                        "anime",
                        "cinematic",
                        "comic-book",
                        "digital-art",
                        "enhance",
                        "fantasy-art",
                        "isometric",
                        "line-art",
                        "low-poly",
                        "modeling-compound",
                        "neon-punk",
                        "origami",
                        "photographic",
                        "pixel-art",
                        "tile-texture"
                    ],
                    {
                        "tooltip": "Optional desired style of generated image."
                    }
                ],
                "cfg_scale": [
                    "FLOAT",
                    {
                        "default": 4.0,
                        "min": 1.0,
                        "max": 10.0,
                        "step": 0.1,
                        "tooltip": "How strictly the diffusion process adheres to the prompt text (higher values keep your image closer to your prompt)"
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 4294967294,
                        "control_after_generate": true,
                        "tooltip": "The random seed used for creating the noise."
                    }
                ]
            },
            "optional": {
                "image": [
                    "IMAGE"
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": "",
                        "forceInput": true,
                        "tooltip": "Keywords of what you do not wish to see in the output image. This is an advanced feature."
                    }
                ],
                "image_denoise": [
                    "FLOAT",
                    {
                        "default": 0.5,
                        "min": 0.0,
                        "max": 1.0,
                        "step": 0.01,
                        "tooltip": "Denoise of input image; 0.0 yields image identical to input, 1.0 is as if no image was provided at all."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "model",
                "aspect_ratio",
                "style_preset",
                "cfg_scale",
                "seed"
            ],
            "optional": [
                "image",
                "negative_prompt",
                "image_denoise"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "StabilityStableImageSD_3_5Node",
        "display_name": "Stability AI Stable Diffusion 3.5 Image",
        "description": "Generates images synchronously based on prompt and resolution.",
        "python_module": "comfy_api_nodes.nodes_stability",
        "category": "api node/image/Stability AI",
        "output_node": false,
        "api_node": true
    },
    "StabilityUpscaleConservativeNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "What you wish to see in the output image. A strong, descriptive prompt that clearly defines elements, colors, and subjects will lead to better results."
                    }
                ],
                "creativity": [
                    "FLOAT",
                    {
                        "default": 0.35,
                        "min": 0.2,
                        "max": 0.5,
                        "step": 0.01,
                        "tooltip": "Controls the likelihood of creating additional details not heavily conditioned by the init image."
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 4294967294,
                        "control_after_generate": true,
                        "tooltip": "The random seed used for creating the noise."
                    }
                ]
            },
            "optional": {
                "negative_prompt": [
                    "STRING",
                    {
                        "default": "",
                        "forceInput": true,
                        "tooltip": "Keywords of what you do not wish to see in the output image. This is an advanced feature."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "image",
                "prompt",
                "creativity",
                "seed"
            ],
            "optional": [
                "negative_prompt"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "StabilityUpscaleConservativeNode",
        "display_name": "Stability AI Upscale Conservative",
        "description": "Upscale image with minimal alterations to 4K resolution.",
        "python_module": "comfy_api_nodes.nodes_stability",
        "category": "api node/image/Stability AI",
        "output_node": false,
        "api_node": true
    },
    "StabilityUpscaleCreativeNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ],
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "What you wish to see in the output image. A strong, descriptive prompt that clearly defines elements, colors, and subjects will lead to better results."
                    }
                ],
                "creativity": [
                    "FLOAT",
                    {
                        "default": 0.3,
                        "min": 0.1,
                        "max": 0.5,
                        "step": 0.01,
                        "tooltip": "Controls the likelihood of creating additional details not heavily conditioned by the init image."
                    }
                ],
                "style_preset": [
                    [
                        "None",
                        "3d-model",
                        "analog-film",
                        "anime",
                        "cinematic",
                        "comic-book",
                        "digital-art",
                        "enhance",
                        "fantasy-art",
                        "isometric",
                        "line-art",
                        "low-poly",
                        "modeling-compound",
                        "neon-punk",
                        "origami",
                        "photographic",
                        "pixel-art",
                        "tile-texture"
                    ],
                    {
                        "tooltip": "Optional desired style of generated image."
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 4294967294,
                        "control_after_generate": true,
                        "tooltip": "The random seed used for creating the noise."
                    }
                ]
            },
            "optional": {
                "negative_prompt": [
                    "STRING",
                    {
                        "default": "",
                        "forceInput": true,
                        "tooltip": "Keywords of what you do not wish to see in the output image. This is an advanced feature."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "image",
                "prompt",
                "creativity",
                "style_preset",
                "seed"
            ],
            "optional": [
                "negative_prompt"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "StabilityUpscaleCreativeNode",
        "display_name": "Stability AI Upscale Creative",
        "description": "Upscale image with minimal alterations to 4K resolution.",
        "python_module": "comfy_api_nodes.nodes_stability",
        "category": "api node/image/Stability AI",
        "output_node": false,
        "api_node": true
    },
    "StabilityUpscaleFastNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ]
            },
            "optional": {},
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "image"
            ],
            "optional": [],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "StabilityUpscaleFastNode",
        "display_name": "Stability AI Upscale Fast",
        "description": "Quickly upscales an image via Stability API call to 4x its original size; intended for upscaling low-quality/compressed images.",
        "python_module": "comfy_api_nodes.nodes_stability",
        "category": "api node/image/Stability AI",
        "output_node": false,
        "api_node": true
    },
    "PikaImageToVideoNode2_2": {
        "input": {
            "required": {
                "image": [
                    "IMAGE",
                    {
                        "tooltip": "The image to convert to video"
                    }
                ],
                "prompt_text": [
                    "STRING",
                    {
                        "default": null,
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": null,
                        "multiline": true
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": null,
                        "min": 0,
                        "max": 4294967295,
                        "control_after_generate": true
                    }
                ],
                "resolution": [
                    "COMBO",
                    {
                        "options": [
                            "1080p",
                            "720p"
                        ],
                        "default": "1080p"
                    }
                ],
                "duration": [
                    "COMBO",
                    {
                        "options": [
                            5,
                            10
                        ],
                        "default": 5
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "image",
                "prompt_text",
                "negative_prompt",
                "seed",
                "resolution",
                "duration"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "PikaImageToVideoNode2_2",
        "display_name": "Pika Image to Video",
        "description": "Sends an image and prompt to the Pika API v2.2 to generate a video.",
        "python_module": "comfy_api_nodes.nodes_pika",
        "category": "api node/video/Pika",
        "output_node": false,
        "api_node": true
    },
    "PikaTextToVideoNode2_2": {
        "input": {
            "required": {
                "prompt_text": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": null,
                        "multiline": true
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": null,
                        "min": 0,
                        "max": 4294967295,
                        "control_after_generate": true
                    }
                ],
                "resolution": [
                    "COMBO",
                    {
                        "options": [
                            "1080p",
                            "720p"
                        ],
                        "default": "1080p"
                    }
                ],
                "duration": [
                    "COMBO",
                    {
                        "options": [
                            5,
                            10
                        ],
                        "default": 5
                    }
                ],
                "aspect_ratio": [
                    "FLOAT",
                    {
                        "default": 1.7777777777777777,
                        "tooltip": "Aspect ratio (width / height)",
                        "min": 0.4,
                        "max": 2.5,
                        "step": 0.001
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt_text",
                "negative_prompt",
                "seed",
                "resolution",
                "duration",
                "aspect_ratio"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "PikaTextToVideoNode2_2",
        "display_name": "Pika Text to Video",
        "description": "Sends a text prompt to the Pika API v2.2 to generate a video.",
        "python_module": "comfy_api_nodes.nodes_pika",
        "category": "api node/video/Pika",
        "output_node": false,
        "api_node": true
    },
    "PikaScenesV2_2": {
        "input": {
            "required": {
                "prompt_text": [
                    "STRING",
                    {
                        "default": null,
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": null,
                        "multiline": true
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": null,
                        "min": 0,
                        "max": 4294967295,
                        "control_after_generate": true
                    }
                ],
                "resolution": [
                    "COMBO",
                    {
                        "options": [
                            "1080p",
                            "720p"
                        ],
                        "default": "1080p"
                    }
                ],
                "duration": [
                    "COMBO",
                    {
                        "options": [
                            5,
                            10
                        ],
                        "default": 5
                    }
                ],
                "ingredients_mode": [
                    "COMBO",
                    {
                        "options": [
                            "creative",
                            "precise"
                        ],
                        "default": "creative"
                    }
                ],
                "aspect_ratio": [
                    "FLOAT",
                    {
                        "default": 1.7777777777777777,
                        "tooltip": "Aspect ratio (width / height)",
                        "step": 0.001,
                        "min": 0.4,
                        "max": 2.5
                    }
                ]
            },
            "optional": {
                "image_ingredient_1": [
                    "IMAGE",
                    {
                        "tooltip": "Image that will be used as ingredient to create a video."
                    }
                ],
                "image_ingredient_2": [
                    "IMAGE",
                    {
                        "tooltip": "Image that will be used as ingredient to create a video."
                    }
                ],
                "image_ingredient_3": [
                    "IMAGE",
                    {
                        "tooltip": "Image that will be used as ingredient to create a video."
                    }
                ],
                "image_ingredient_4": [
                    "IMAGE",
                    {
                        "tooltip": "Image that will be used as ingredient to create a video."
                    }
                ],
                "image_ingredient_5": [
                    "IMAGE",
                    {
                        "tooltip": "Image that will be used as ingredient to create a video."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt_text",
                "negative_prompt",
                "seed",
                "resolution",
                "duration",
                "ingredients_mode",
                "aspect_ratio"
            ],
            "optional": [
                "image_ingredient_1",
                "image_ingredient_2",
                "image_ingredient_3",
                "image_ingredient_4",
                "image_ingredient_5"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "PikaScenesV2_2",
        "display_name": "Pika Scenes (Video Image Composition)",
        "description": "Combine your images to create a video with the objects in them. Upload multiple images as ingredients and generate a high-quality video that incorporates all of them.",
        "python_module": "comfy_api_nodes.nodes_pika",
        "category": "api node/video/Pika",
        "output_node": false,
        "api_node": true
    },
    "Pikadditions": {
        "input": {
            "required": {
                "video": [
                    "VIDEO",
                    {
                        "tooltip": "The video to add an image to."
                    }
                ],
                "image": [
                    "IMAGE",
                    {
                        "tooltip": "The image to add to the video."
                    }
                ],
                "prompt_text": [
                    "STRING",
                    {
                        "default": null,
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": null,
                        "multiline": true
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": null,
                        "min": 0,
                        "max": 4294967295,
                        "control_after_generate": true
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "video",
                "image",
                "prompt_text",
                "negative_prompt",
                "seed"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "Pikadditions",
        "display_name": "Pikadditions (Video Object Insertion)",
        "description": "Add any object or image into your video. Upload a video and specify what you'd like to add to create a seamlessly integrated result.",
        "python_module": "comfy_api_nodes.nodes_pika",
        "category": "api node/video/Pika",
        "output_node": false,
        "api_node": true
    },
    "Pikaswaps": {
        "input": {
            "required": {
                "video": [
                    "VIDEO",
                    {
                        "tooltip": "The video to swap an object in."
                    }
                ],
                "image": [
                    "IMAGE",
                    {
                        "tooltip": "The image used to replace the masked object in the video."
                    }
                ],
                "mask": [
                    "MASK",
                    {
                        "tooltip": "Use the mask to define areas in the video to replace"
                    }
                ],
                "prompt_text": [
                    "STRING",
                    {
                        "default": null,
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": null,
                        "multiline": true
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": null,
                        "min": 0,
                        "max": 4294967295,
                        "control_after_generate": true
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "video",
                "image",
                "mask",
                "prompt_text",
                "negative_prompt",
                "seed"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "Pikaswaps",
        "display_name": "Pika Swaps (Video Object Replacement)",
        "description": "Swap out any object or region of your video with a new image or object. Define areas to replace either with a mask or coordinates.",
        "python_module": "comfy_api_nodes.nodes_pika",
        "category": "api node/video/Pika",
        "output_node": false,
        "api_node": true
    },
    "Pikaffects": {
        "input": {
            "required": {
                "image": [
                    "IMAGE",
                    {
                        "tooltip": "The reference image to apply the Pikaffect to."
                    }
                ],
                "pikaffect": [
                    "COMBO",
                    {
                        "options": [
                            "Cake-ify",
                            "Crumble",
                            "Crush",
                            "Decapitate",
                            "Deflate",
                            "Dissolve",
                            "Explode",
                            "Eye-pop",
                            "Inflate",
                            "Levitate",
                            "Melt",
                            "Peel",
                            "Poke",
                            "Squish",
                            "Ta-da",
                            "Tear"
                        ],
                        "default": "Cake-ify"
                    }
                ],
                "prompt_text": [
                    "STRING",
                    {
                        "default": null,
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": null,
                        "multiline": true
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": null,
                        "min": 0,
                        "max": 4294967295,
                        "control_after_generate": true
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "image",
                "pikaffect",
                "prompt_text",
                "negative_prompt",
                "seed"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "Pikaffects",
        "display_name": "Pikaffects (Video Effects)",
        "description": "Generate a video with a specific Pikaffect. Supported Pikaffects: Cake-ify, Crumble, Crush, Decapitate, Deflate, Dissolve, Explode, Eye-pop, Inflate, Levitate, Melt, Peel, Poke, Squish, Ta-da, Tear",
        "python_module": "comfy_api_nodes.nodes_pika",
        "category": "api node/video/Pika",
        "output_node": false,
        "api_node": true
    },
    "PikaStartEndFrameNode2_2": {
        "input": {
            "required": {
                "image_start": [
                    "IMAGE",
                    {
                        "tooltip": "The first image to combine."
                    }
                ],
                "image_end": [
                    "IMAGE",
                    {
                        "tooltip": "The last image to combine."
                    }
                ],
                "prompt_text": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": null,
                        "multiline": true
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": null,
                        "min": 0,
                        "max": 4294967295,
                        "control_after_generate": true
                    }
                ],
                "resolution": [
                    "COMBO",
                    {
                        "options": [
                            "1080p",
                            "720p"
                        ],
                        "default": "1080p"
                    }
                ],
                "duration": [
                    "COMBO",
                    {
                        "options": [
                            5,
                            10
                        ],
                        "default": null
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "image_start",
                "image_end",
                "prompt_text",
                "negative_prompt",
                "seed",
                "resolution",
                "duration"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "PikaStartEndFrameNode2_2",
        "display_name": "Pika Start and End Frame to Video",
        "description": "Generate a video by combining your first and last frame. Upload two images to define the start and end points, and let the AI create a smooth transition between them.",
        "python_module": "comfy_api_nodes.nodes_pika",
        "category": "api node/video/Pika",
        "output_node": false,
        "api_node": true
    },
    "RunwayFirstLastFrameNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Text prompt for the generation",
                        "multiline": true
                    }
                ],
                "start_frame": [
                    "IMAGE",
                    {
                        "tooltip": "Start frame to be used for the video"
                    }
                ],
                "end_frame": [
                    "IMAGE",
                    {
                        "tooltip": "End frame to be used for the video. Supported for gen3a_turbo only."
                    }
                ],
                "duration": [
                    "COMBO",
                    {
                        "options": [
                            5,
                            10
                        ]
                    }
                ],
                "ratio": [
                    "COMBO",
                    {
                        "options": [
                            "768:1280",
                            "1280:768"
                        ]
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "tooltip": "Random seed for generation",
                        "min": 0,
                        "max": 4294967295,
                        "control_after_generate": true
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "unique_id": "UNIQUE_ID",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "start_frame",
                "end_frame",
                "duration",
                "ratio",
                "seed"
            ],
            "hidden": [
                "auth_token",
                "unique_id",
                "comfy_api_key"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "RunwayFirstLastFrameNode",
        "display_name": "Runway First-Last-Frame to Video",
        "description": "Upload first and last keyframes, draft a prompt, and generate a video. More complex transitions, such as cases where the Last frame is completely different from the First frame, may benefit from the longer 10s duration. This would give the generation more time to smoothly transition between the two inputs. Before diving in, review these best practices to ensure that your input selections will set your generation up for success: https://help.runwayml.com/hc/en-us/articles/34170748696595-Creating-with-Keyframes-on-Gen-3.",
        "python_module": "comfy_api_nodes.nodes_runway",
        "category": "api node/video/Runway",
        "output_node": false,
        "api_node": true
    },
    "RunwayImageToVideoNodeGen3a": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Text prompt for the generation",
                        "multiline": true
                    }
                ],
                "start_frame": [
                    "IMAGE",
                    {
                        "tooltip": "Start frame to be used for the video"
                    }
                ],
                "duration": [
                    "COMBO",
                    {
                        "options": [
                            5,
                            10
                        ]
                    }
                ],
                "ratio": [
                    "COMBO",
                    {
                        "options": [
                            "768:1280",
                            "1280:768"
                        ]
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "tooltip": "Random seed for generation",
                        "min": 0,
                        "max": 4294967295,
                        "control_after_generate": true
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "start_frame",
                "duration",
                "ratio",
                "seed"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "RunwayImageToVideoNodeGen3a",
        "display_name": "Runway Image to Video (Gen3a Turbo)",
        "description": "Generate a video from a single starting frame using Gen3a Turbo model. Before diving in, review these best practices to ensure that your input selections will set your generation up for success: https://help.runwayml.com/hc/en-us/articles/33927968552339-Creating-with-Act-One-on-Gen-3-Alpha-and-Turbo.",
        "python_module": "comfy_api_nodes.nodes_runway",
        "category": "api node/video/Runway",
        "output_node": false,
        "api_node": true
    },
    "RunwayImageToVideoNodeGen4": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "default": null,
                        "tooltip": "Text prompt for the generation",
                        "multiline": true
                    }
                ],
                "start_frame": [
                    "IMAGE",
                    {
                        "tooltip": "Start frame to be used for the video"
                    }
                ],
                "duration": [
                    "COMBO",
                    {
                        "options": [
                            5,
                            10
                        ]
                    }
                ],
                "ratio": [
                    "COMBO",
                    {
                        "options": [
                            "1280:720",
                            "720:1280",
                            "1104:832",
                            "832:1104",
                            "960:960",
                            "1584:672"
                        ]
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "tooltip": "Random seed for generation",
                        "min": 0,
                        "max": 4294967295,
                        "control_after_generate": true
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "start_frame",
                "duration",
                "ratio",
                "seed"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "VIDEO"
        ],
        "name": "RunwayImageToVideoNodeGen4",
        "display_name": "Runway Image to Video (Gen4 Turbo)",
        "description": "Generate a video from a single starting frame using Gen4 Turbo model. Before diving in, review these best practices to ensure that your input selections will set your generation up for success: https://help.runwayml.com/hc/en-us/articles/37327109429011-Creating-with-Gen-4-Video.",
        "python_module": "comfy_api_nodes.nodes_runway",
        "category": "api node/video/Runway",
        "output_node": false,
        "api_node": true
    },
    "RunwayTextToImageNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "tooltip": "Text prompt for the image generation",
                        "multiline": true
                    }
                ],
                "ratio": [
                    "COMBO",
                    {
                        "options": [
                            "1920:1080",
                            "1080:1920",
                            "1024:1024",
                            "1360:768",
                            "1080:1080",
                            "1168:880",
                            "1440:1080",
                            "1080:1440",
                            "1808:768",
                            "2112:912"
                        ]
                    }
                ]
            },
            "optional": {
                "reference_image": [
                    "IMAGE",
                    {
                        "tooltip": "Optional reference image to guide the generation"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "ratio"
            ],
            "optional": [
                "reference_image"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "IMAGE"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "IMAGE"
        ],
        "name": "RunwayTextToImageNode",
        "display_name": "Runway Text to Image",
        "description": "Generate an image from a text prompt using Runway's Gen 4 model. You can also include reference images to guide the generation.",
        "python_module": "comfy_api_nodes.nodes_runway",
        "category": "api node/image/Runway",
        "output_node": false,
        "api_node": true
    },
    "TripoTextToModelNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ]
            },
            "optional": {
                "negative_prompt": [
                    "STRING",
                    {
                        "multiline": true
                    }
                ],
                "model_version": [
                    "COMBO",
                    {
                        "options": [
                            "v2.5-20250123",
                            "v2.0-20240919",
                            "v1.4-20240625"
                        ],
                        "default": "v2.5-20250123"
                    }
                ],
                "style": [
                    "COMBO",
                    {
                        "options": [
                            "person:person2cartoon",
                            "animal:venom",
                            "object:clay",
                            "object:steampunk",
                            "object:christmas",
                            "object:barbie",
                            "gold",
                            "ancient_bronze",
                            "None"
                        ],
                        "default": "None"
                    }
                ],
                "texture": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "pbr": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "image_seed": [
                    "INT",
                    {
                        "default": 42
                    }
                ],
                "model_seed": [
                    "INT",
                    {
                        "default": 42
                    }
                ],
                "texture_seed": [
                    "INT",
                    {
                        "default": 42
                    }
                ],
                "texture_quality": [
                    [
                        "standard",
                        "detailed"
                    ],
                    {
                        "default": "standard"
                    }
                ],
                "face_limit": [
                    "INT",
                    {
                        "min": -1,
                        "max": 500000,
                        "default": -1
                    }
                ],
                "quad": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt"
            ],
            "optional": [
                "negative_prompt",
                "model_version",
                "style",
                "texture",
                "pbr",
                "image_seed",
                "model_seed",
                "texture_seed",
                "texture_quality",
                "face_limit",
                "quad"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "STRING",
            "MODEL_TASK_ID"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "model_file",
            "model task_id"
        ],
        "name": "TripoTextToModelNode",
        "display_name": "Tripo: Text to Model",
        "description": "",
        "python_module": "comfy_api_nodes.nodes_tripo",
        "category": "api node/3d/Tripo",
        "output_node": true,
        "api_node": true
    },
    "TripoImageToModelNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ]
            },
            "optional": {
                "model_version": [
                    "COMBO",
                    {
                        "options": [
                            "v2.5-20250123",
                            "v2.0-20240919",
                            "v1.4-20240625"
                        ],
                        "default": null,
                        "tooltip": "The model version to use for generation"
                    }
                ],
                "style": [
                    "COMBO",
                    {
                        "options": [
                            "person:person2cartoon",
                            "animal:venom",
                            "object:clay",
                            "object:steampunk",
                            "object:christmas",
                            "object:barbie",
                            "gold",
                            "ancient_bronze",
                            "None"
                        ],
                        "default": "None"
                    }
                ],
                "texture": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "pbr": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "model_seed": [
                    "INT",
                    {
                        "default": 42
                    }
                ],
                "orientation": [
                    "COMBO",
                    {
                        "options": [
                            "align_image",
                            "default"
                        ],
                        "default": "default"
                    }
                ],
                "texture_seed": [
                    "INT",
                    {
                        "default": 42
                    }
                ],
                "texture_quality": [
                    [
                        "standard",
                        "detailed"
                    ],
                    {
                        "default": "standard"
                    }
                ],
                "texture_alignment": [
                    [
                        "original_image",
                        "geometry"
                    ],
                    {
                        "default": "original_image"
                    }
                ],
                "face_limit": [
                    "INT",
                    {
                        "min": -1,
                        "max": 500000,
                        "default": -1
                    }
                ],
                "quad": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "image"
            ],
            "optional": [
                "model_version",
                "style",
                "texture",
                "pbr",
                "model_seed",
                "orientation",
                "texture_seed",
                "texture_quality",
                "texture_alignment",
                "face_limit",
                "quad"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "STRING",
            "MODEL_TASK_ID"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "model_file",
            "model task_id"
        ],
        "name": "TripoImageToModelNode",
        "display_name": "Tripo: Image to Model",
        "description": "",
        "python_module": "comfy_api_nodes.nodes_tripo",
        "category": "api node/3d/Tripo",
        "output_node": true,
        "api_node": true
    },
    "TripoMultiviewToModelNode": {
        "input": {
            "required": {
                "image": [
                    "IMAGE"
                ]
            },
            "optional": {
                "image_left": [
                    "IMAGE"
                ],
                "image_back": [
                    "IMAGE"
                ],
                "image_right": [
                    "IMAGE"
                ],
                "model_version": [
                    "COMBO",
                    {
                        "options": [
                            "v2.5-20250123",
                            "v2.0-20240919",
                            "v1.4-20240625"
                        ],
                        "default": null,
                        "tooltip": "The model version to use for generation"
                    }
                ],
                "orientation": [
                    "COMBO",
                    {
                        "options": [
                            "align_image",
                            "default"
                        ],
                        "default": "default"
                    }
                ],
                "texture": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "pbr": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "model_seed": [
                    "INT",
                    {
                        "default": 42
                    }
                ],
                "texture_seed": [
                    "INT",
                    {
                        "default": 42
                    }
                ],
                "texture_quality": [
                    [
                        "standard",
                        "detailed"
                    ],
                    {
                        "default": "standard"
                    }
                ],
                "texture_alignment": [
                    [
                        "original_image",
                        "geometry"
                    ],
                    {
                        "default": "original_image"
                    }
                ],
                "face_limit": [
                    "INT",
                    {
                        "min": -1,
                        "max": 500000,
                        "default": -1
                    }
                ],
                "quad": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "image"
            ],
            "optional": [
                "image_left",
                "image_back",
                "image_right",
                "model_version",
                "orientation",
                "texture",
                "pbr",
                "model_seed",
                "texture_seed",
                "texture_quality",
                "texture_alignment",
                "face_limit",
                "quad"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "STRING",
            "MODEL_TASK_ID"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "model_file",
            "model task_id"
        ],
        "name": "TripoMultiviewToModelNode",
        "display_name": "Tripo: Multiview to Model",
        "description": "",
        "python_module": "comfy_api_nodes.nodes_tripo",
        "category": "api node/3d/Tripo",
        "output_node": true,
        "api_node": true
    },
    "TripoTextureNode": {
        "input": {
            "required": {
                "model_task_id": [
                    "MODEL_TASK_ID"
                ]
            },
            "optional": {
                "texture": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "pbr": [
                    "BOOLEAN",
                    {
                        "default": true
                    }
                ],
                "texture_seed": [
                    "INT",
                    {
                        "default": 42
                    }
                ],
                "texture_quality": [
                    [
                        "standard",
                        "detailed"
                    ],
                    {
                        "default": "standard"
                    }
                ],
                "texture_alignment": [
                    [
                        "original_image",
                        "geometry"
                    ],
                    {
                        "default": "original_image"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "model_task_id"
            ],
            "optional": [
                "texture",
                "pbr",
                "texture_seed",
                "texture_quality",
                "texture_alignment"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "STRING",
            "MODEL_TASK_ID"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "model_file",
            "model task_id"
        ],
        "name": "TripoTextureNode",
        "display_name": "Tripo: Texture model",
        "description": "",
        "python_module": "comfy_api_nodes.nodes_tripo",
        "category": "api node/3d/Tripo",
        "output_node": true,
        "api_node": true
    },
    "TripoRefineNode": {
        "input": {
            "required": {
                "model_task_id": [
                    "MODEL_TASK_ID",
                    {
                        "tooltip": "Must be a v1.4 Tripo model"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "model_task_id"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "STRING",
            "MODEL_TASK_ID"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "model_file",
            "model task_id"
        ],
        "name": "TripoRefineNode",
        "display_name": "Tripo: Refine Draft model",
        "description": "Refine a draft model created by v1.4 Tripo models only.",
        "python_module": "comfy_api_nodes.nodes_tripo",
        "category": "api node/3d/Tripo",
        "output_node": true,
        "api_node": true
    },
    "TripoRigNode": {
        "input": {
            "required": {
                "original_model_task_id": [
                    "MODEL_TASK_ID"
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "original_model_task_id"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "STRING",
            "RIG_TASK_ID"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "model_file",
            "rig task_id"
        ],
        "name": "TripoRigNode",
        "display_name": "Tripo: Rig model",
        "description": "",
        "python_module": "comfy_api_nodes.nodes_tripo",
        "category": "api node/3d/Tripo",
        "output_node": true,
        "api_node": true
    },
    "TripoRetargetNode": {
        "input": {
            "required": {
                "original_model_task_id": [
                    "RIG_TASK_ID"
                ],
                "animation": [
                    [
                        "preset:idle",
                        "preset:walk",
                        "preset:climb",
                        "preset:jump",
                        "preset:slash",
                        "preset:shoot",
                        "preset:hurt",
                        "preset:fall",
                        "preset:turn"
                    ]
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "original_model_task_id",
                "animation"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "STRING",
            "RETARGET_TASK_ID"
        ],
        "output_is_list": [
            false,
            false
        ],
        "output_name": [
            "model_file",
            "retarget task_id"
        ],
        "name": "TripoRetargetNode",
        "display_name": "Tripo: Retarget rigged model",
        "description": "",
        "python_module": "comfy_api_nodes.nodes_tripo",
        "category": "api node/3d/Tripo",
        "output_node": true,
        "api_node": true
    },
    "TripoConversionNode": {
        "input": {
            "required": {
                "original_model_task_id": [
                    "MODEL_TASK_ID,RIG_TASK_ID,RETARGET_TASK_ID"
                ],
                "format": [
                    [
                        "GLTF",
                        "USDZ",
                        "FBX",
                        "OBJ",
                        "STL",
                        "3MF"
                    ]
                ]
            },
            "optional": {
                "quad": [
                    "BOOLEAN",
                    {
                        "default": false
                    }
                ],
                "face_limit": [
                    "INT",
                    {
                        "min": -1,
                        "max": 500000,
                        "default": -1
                    }
                ],
                "texture_size": [
                    "INT",
                    {
                        "min": 128,
                        "max": 4096,
                        "default": 4096
                    }
                ],
                "texture_format": [
                    [
                        "BMP",
                        "DPX",
                        "HDR",
                        "JPEG",
                        "OPEN_EXR",
                        "PNG",
                        "TARGA",
                        "TIFF",
                        "WEBP"
                    ],
                    {
                        "default": "JPEG"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "original_model_task_id",
                "format"
            ],
            "optional": [
                "quad",
                "face_limit",
                "texture_size",
                "texture_format"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [],
        "output_is_list": [],
        "output_name": [],
        "name": "TripoConversionNode",
        "display_name": "Tripo: Convert model",
        "description": "",
        "python_module": "comfy_api_nodes.nodes_tripo",
        "category": "api node/3d/Tripo",
        "output_node": true,
        "api_node": true
    },
    "MoonvalleyImg2VideoNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "default": null,
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": "low-poly, flat shader, bad rigging, stiff animation, uncanny eyes, low-quality textures, looping glitch, cheap effect, overbloom, bloom spam, default lighting, game asset, stiff face, ugly specular, AI artifacts",
                        "tooltip": "Negative prompt text",
                        "multiline": true
                    }
                ],
                "resolution": [
                    "COMBO",
                    {
                        "options": [
                            "16:9 (1920 x 1080)",
                            "9:16 (1080 x 1920)",
                            "1:1 (1152 x 1152)",
                            "4:3 (1440 x 1080)",
                            "3:4 (1080 x 1440)",
                            "21:9 (2560 x 1080)"
                        ],
                        "default": "16:9 (1920 x 1080)",
                        "tooltip": "Resolution of the output video"
                    }
                ],
                "prompt_adherence": [
                    "FLOAT",
                    {
                        "default": 7.0,
                        "tooltip": "Guidance scale for generation control",
                        "step": 1,
                        "min": 1,
                        "max": 20
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 2330941637,
                        "tooltip": "Random seed value",
                        "min": 0,
                        "max": 4294967295,
                        "step": 1,
                        "display": "number",
                        "control_after_generate": true
                    }
                ],
                "steps": [
                    "INT",
                    {
                        "default": 100,
                        "tooltip": "Number of denoising steps",
                        "min": 1,
                        "max": 100
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            },
            "optional": {
                "image": [
                    "IMAGE",
                    {
                        "default": null,
                        "tooltip": "The reference image used to generate the video"
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "negative_prompt",
                "resolution",
                "prompt_adherence",
                "seed",
                "steps"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ],
            "optional": [
                "image"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "video"
        ],
        "name": "MoonvalleyImg2VideoNode",
        "display_name": "Moonvalley Marey Image to Video",
        "description": "Moonvalley Marey Image to Video Node",
        "python_module": "comfy_api_nodes.nodes_moonvalley",
        "category": "api node/video/Moonvalley Marey",
        "output_node": false,
        "api_node": true
    },
    "MoonvalleyTxt2VideoNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "default": null,
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": "low-poly, flat shader, bad rigging, stiff animation, uncanny eyes, low-quality textures, looping glitch, cheap effect, overbloom, bloom spam, default lighting, game asset, stiff face, ugly specular, AI artifacts",
                        "tooltip": "Negative prompt text",
                        "multiline": true
                    }
                ],
                "resolution": [
                    "COMBO",
                    {
                        "options": [
                            "16:9 (1920 x 1080)",
                            "9:16 (1080 x 1920)",
                            "1:1 (1152 x 1152)",
                            "4:3 (1440 x 1080)",
                            "3:4 (1080 x 1440)",
                            "21:9 (2560 x 1080)"
                        ],
                        "default": "16:9 (1920 x 1080)",
                        "tooltip": "Resolution of the output video"
                    }
                ],
                "prompt_adherence": [
                    "FLOAT",
                    {
                        "default": 7.0,
                        "tooltip": "Guidance scale for generation control",
                        "step": 1,
                        "min": 1,
                        "max": 20
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 411414247,
                        "tooltip": "Random seed value",
                        "min": 0,
                        "max": 4294967295,
                        "step": 1,
                        "display": "number",
                        "control_after_generate": true
                    }
                ],
                "steps": [
                    "INT",
                    {
                        "default": 100,
                        "tooltip": "Number of denoising steps",
                        "min": 1,
                        "max": 100
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            },
            "optional": {}
        },
        "input_order": {
            "required": [
                "prompt",
                "negative_prompt",
                "resolution",
                "prompt_adherence",
                "seed",
                "steps"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ],
            "optional": []
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "video"
        ],
        "name": "MoonvalleyTxt2VideoNode",
        "display_name": "Moonvalley Marey Text to Video",
        "description": "",
        "python_module": "comfy_api_nodes.nodes_moonvalley",
        "category": "api node/video/Moonvalley Marey",
        "output_node": false,
        "api_node": true
    },
    "MoonvalleyVideo2VideoNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "tooltip": "Describes the video to generate",
                        "multiline": true
                    }
                ],
                "negative_prompt": [
                    "STRING",
                    {
                        "default": "low-poly, flat shader, bad rigging, stiff animation, uncanny eyes, low-quality textures, looping glitch, cheap effect, overbloom, bloom spam, default lighting, game asset, stiff face, ugly specular, AI artifacts",
                        "tooltip": "Negative prompt text",
                        "multiline": true
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 3284327094,
                        "tooltip": "Random seed value",
                        "min": 0,
                        "max": 4294967295,
                        "step": 1,
                        "display": "number",
                        "control_after_generate": true
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            },
            "optional": {
                "video": [
                    "VIDEO",
                    {
                        "default": "",
                        "multiline": false,
                        "tooltip": "The reference video used to generate the output video. Must be at least 5 seconds long. Videos longer than 5s will be automatically trimmed. Only MP4 format supported."
                    }
                ],
                "control_type": [
                    [
                        "Motion Transfer",
                        "Pose Transfer"
                    ],
                    {
                        "default": "Motion Transfer"
                    }
                ],
                "motion_intensity": [
                    "INT",
                    {
                        "default": 100,
                        "step": 1,
                        "min": 0,
                        "max": 100,
                        "tooltip": "Only used if control_type is 'Motion Transfer'"
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "negative_prompt",
                "seed"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ],
            "optional": [
                "video",
                "control_type",
                "motion_intensity"
            ]
        },
        "output": [
            "VIDEO"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "video"
        ],
        "name": "MoonvalleyVideo2VideoNode",
        "display_name": "Moonvalley Marey Video to Video",
        "description": "",
        "python_module": "comfy_api_nodes.nodes_moonvalley",
        "category": "api node/video/Moonvalley Marey",
        "output_node": false,
        "api_node": true
    },
    "Rodin3D_Regular": {
        "input": {
            "required": {
                "Images": [
                    "IMAGE",
                    {
                        "forceInput": true
                    }
                ]
            },
            "optional": {
                "Seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 65535,
                        "display": "number"
                    }
                ],
                "Material_Type": [
                    "COMBO",
                    {
                        "options": [
                            "PBR",
                            "Shaded"
                        ],
                        "default": "PBR"
                    }
                ],
                "Polygon_count": [
                    "COMBO",
                    {
                        "options": [
                            "4K-Quad",
                            "8K-Quad",
                            "18K-Quad",
                            "50K-Quad",
                            "200K-Triangle"
                        ],
                        "default": "18K-Quad"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "Images"
            ],
            "optional": [
                "Seed",
                "Material_Type",
                "Polygon_count"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "STRING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "3D Model Path"
        ],
        "name": "Rodin3D_Regular",
        "display_name": "Rodin 3D Generate - Regular Generate",
        "description": "Generate 3D Assets using Rodin API",
        "python_module": "comfy_api_nodes.nodes_rodin",
        "category": "api node/3d/Rodin",
        "output_node": false,
        "api_node": true
    },
    "Rodin3D_Detail": {
        "input": {
            "required": {
                "Images": [
                    "IMAGE",
                    {
                        "forceInput": true
                    }
                ]
            },
            "optional": {
                "Seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 65535,
                        "display": "number"
                    }
                ],
                "Material_Type": [
                    "COMBO",
                    {
                        "options": [
                            "PBR",
                            "Shaded"
                        ],
                        "default": "PBR"
                    }
                ],
                "Polygon_count": [
                    "COMBO",
                    {
                        "options": [
                            "4K-Quad",
                            "8K-Quad",
                            "18K-Quad",
                            "50K-Quad",
                            "200K-Triangle"
                        ],
                        "default": "18K-Quad"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "Images"
            ],
            "optional": [
                "Seed",
                "Material_Type",
                "Polygon_count"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "STRING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "3D Model Path"
        ],
        "name": "Rodin3D_Detail",
        "display_name": "Rodin 3D Generate - Detail Generate",
        "description": "Generate 3D Assets using Rodin API",
        "python_module": "comfy_api_nodes.nodes_rodin",
        "category": "api node/3d/Rodin",
        "output_node": false,
        "api_node": true
    },
    "Rodin3D_Smooth": {
        "input": {
            "required": {
                "Images": [
                    "IMAGE",
                    {
                        "forceInput": true
                    }
                ]
            },
            "optional": {
                "Seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 65535,
                        "display": "number"
                    }
                ],
                "Material_Type": [
                    "COMBO",
                    {
                        "options": [
                            "PBR",
                            "Shaded"
                        ],
                        "default": "PBR"
                    }
                ],
                "Polygon_count": [
                    "COMBO",
                    {
                        "options": [
                            "4K-Quad",
                            "8K-Quad",
                            "18K-Quad",
                            "50K-Quad",
                            "200K-Triangle"
                        ],
                        "default": "18K-Quad"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "Images"
            ],
            "optional": [
                "Seed",
                "Material_Type",
                "Polygon_count"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "STRING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "3D Model Path"
        ],
        "name": "Rodin3D_Smooth",
        "display_name": "Rodin 3D Generate - Smooth Generate",
        "description": "Generate 3D Assets using Rodin API",
        "python_module": "comfy_api_nodes.nodes_rodin",
        "category": "api node/3d/Rodin",
        "output_node": false,
        "api_node": true
    },
    "Rodin3D_Sketch": {
        "input": {
            "required": {
                "Images": [
                    "IMAGE",
                    {
                        "forceInput": true
                    }
                ]
            },
            "optional": {
                "Seed": [
                    "INT",
                    {
                        "default": 0,
                        "min": 0,
                        "max": 65535,
                        "display": "number"
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG"
            }
        },
        "input_order": {
            "required": [
                "Images"
            ],
            "optional": [
                "Seed"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key"
            ]
        },
        "output": [
            "STRING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "3D Model Path"
        ],
        "name": "Rodin3D_Sketch",
        "display_name": "Rodin 3D Generate - Sketch Generate",
        "description": "Generate 3D Assets using Rodin API",
        "python_module": "comfy_api_nodes.nodes_rodin",
        "category": "api node/3d/Rodin",
        "output_node": false,
        "api_node": true
    },
    "GeminiNode": {
        "input": {
            "required": {
                "prompt": [
                    "STRING",
                    {
                        "multiline": true,
                        "default": "",
                        "tooltip": "Text inputs to the model, used to generate a response. You can include detailed instructions, questions, or context for the model."
                    }
                ],
                "model": [
                    "COMBO",
                    {
                        "tooltip": "The Gemini model to use for generating responses.",
                        "options": [
                            "gemini-2.5-pro-preview-05-06",
                            "gemini-2.5-flash-preview-04-17"
                        ],
                        "default": "gemini-2.5-pro-preview-05-06"
                    }
                ],
                "seed": [
                    "INT",
                    {
                        "default": 42,
                        "min": 0,
                        "max": 18446744073709551615,
                        "control_after_generate": true,
                        "tooltip": "When seed is fixed to a specific value, the model makes a best effort to provide the same response for repeated requests. Deterministic output isn't guaranteed. Also, changing the model or parameter settings, such as the temperature, can cause variations in the response even when you use the same seed value. By default, a random seed value is used."
                    }
                ]
            },
            "optional": {
                "images": [
                    "IMAGE",
                    {
                        "default": null,
                        "tooltip": "Optional image(s) to use as context for the model. To include multiple images, you can use the Batch Images node."
                    }
                ],
                "audio": [
                    "AUDIO",
                    {
                        "tooltip": "Optional audio to use as context for the model.",
                        "default": null
                    }
                ],
                "video": [
                    "VIDEO",
                    {
                        "tooltip": "Optional video to use as context for the model.",
                        "default": null
                    }
                ],
                "files": [
                    "GEMINI_INPUT_FILES",
                    {
                        "default": null,
                        "tooltip": "Optional file(s) to use as context for the model. Accepts inputs from the Gemini Generate Content Input Files node."
                    }
                ]
            },
            "hidden": {
                "auth_token": "AUTH_TOKEN_COMFY_ORG",
                "comfy_api_key": "API_KEY_COMFY_ORG",
                "unique_id": "UNIQUE_ID"
            }
        },
        "input_order": {
            "required": [
                "prompt",
                "model",
                "seed"
            ],
            "optional": [
                "images",
                "audio",
                "video",
                "files"
            ],
            "hidden": [
                "auth_token",
                "comfy_api_key",
                "unique_id"
            ]
        },
        "output": [
            "STRING"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "STRING"
        ],
        "name": "GeminiNode",
        "display_name": "Google Gemini",
        "description": "Generate text responses with Google's Gemini AI model. You can provide multiple types of inputs (text, images, audio, video) as context for generating more relevant and meaningful responses.",
        "python_module": "comfy_api_nodes.nodes_gemini",
        "category": "api node/text/Gemini",
        "output_node": false,
        "api_node": true
    },
    "GeminiInputFiles": {
        "input": {
            "required": {
                "file": [
                    "COMBO",
                    {
                        "tooltip": "Input files to include as context for the model. Only accepts text (.txt) and PDF (.pdf) files for now.",
                        "options": [],
                        "default": null
                    }
                ]
            },
            "optional": {
                "GEMINI_INPUT_FILES": [
                    "GEMINI_INPUT_FILES",
                    {
                        "tooltip": "An optional additional file(s) to batch together with the file loaded from this node. Allows chaining of input files so that a single message can include multiple input files.",
                        "default": null
                    }
                ]
            }
        },
        "input_order": {
            "required": [
                "file"
            ],
            "optional": [
                "GEMINI_INPUT_FILES"
            ]
        },
        "output": [
            "GEMINI_INPUT_FILES"
        ],
        "output_is_list": [
            false
        ],
        "output_name": [
            "GEMINI_INPUT_FILES"
        ],
        "name": "GeminiInputFiles",
        "display_name": "Gemini Input Files",
        "description": "Loads and prepares input files to include as inputs for Gemini LLM nodes. The files will be read by the Gemini model when generating a response. The contents of the text file count toward the token limit. \ud83d\udec8 TIP: Can be chained together with other Gemini Input File nodes.",
        "python_module": "comfy_api_nodes.nodes_gemini",
        "category": "api node/text/Gemini",
        "output_node": false
    }
}