From 5b01fd4deab17d9160ac4c35aa2de466254978d6 Mon Sep 17 00:00:00 2001 From: samith Date: Sat, 4 Jul 2026 20:21:14 +0530 Subject: [PATCH] Refactor model directory structure and add new configuration files - Deleted obsolete model directories: controlnet, detection, diffusers, diffusion_models, embeddings, frame_interpolation, geometry_estimation, gligen, hypernetworks, latent_upscale_models, loras, model_patches, optical_flow, photomaker, style_models, text_encoders, unet, upscale_models, vae, vae_approx. - Created new model directories for audio_encoders, background_removal, checkpoints, clip, clip_vision, and updated configs for various models including anything_v3, v1-inference, v2-inference, and inpainting. - Added detailed configuration files for model training and inference, including parameters for learning rates, model architectures, and data handling. --- folder_paths.py | 40 ++++++++++++++++--- .../put_audio_encoder_models_here | 0 .../put_background_removal_models_here | 0 .../checkpoints/put_checkpoints_here | 0 .../clip/put_clip_or_text_encoder_models_here | 0 .../clip_vision/put_clip_vision_models_here | 0 {models => model}/configs/anything_v3.yaml | 0 {models => model}/configs/v1-inference.yaml | 0 .../configs/v1-inference_clip_skip_2.yaml | 0 .../v1-inference_clip_skip_2_fp16.yaml | 0 .../configs/v1-inference_fp16.yaml | 0 .../configs/v1-inpainting-inference.yaml | 0 {models => model}/configs/v2-inference-v.yaml | 0 .../configs/v2-inference-v_fp32.yaml | 0 {models => model}/configs/v2-inference.yaml | 0 .../configs/v2-inference_fp32.yaml | 0 .../configs/v2-inpainting-inference.yaml | 0 .../controlnet/put_controlnets_and_t2i_here | 0 .../detection/put_detection_models_here | 0 .../diffusers/put_diffusers_models_here | 0 .../put_diffusion_model_files_here | 0 ...eddings_or_textual_inversion_concepts_here | 0 .../put_frame_interpolation_models_here | 0 .../put_geometry_estimation_models_here | 0 .../gligen/put_gligen_models_here | 0 .../hypernetworks/put_hypernetworks_here | 0 .../put_latent_upscale_models_here | 0 {models => model}/loras/put_loras_here | 0 .../model_patches/put_model_patches_here | 0 .../optical_flow/put_optical_flow_models_here | 0 .../photomaker/put_photomaker_models_here | 0 .../style_models/put_t2i_style_model_here | 0 .../text_encoders/put_text_encoder_files_here | 0 {models => model}/unet/put_unet_files_here | 0 .../put_esrgan_and_other_upscale_models_here | 0 {models => model}/vae/put_vae_here | 0 ...esd_encoder_pth_and_taesd_decoder_pth_here | 0 37 files changed, 35 insertions(+), 5 deletions(-) rename {models => model}/audio_encoders/put_audio_encoder_models_here (100%) rename {models => model}/background_removal/put_background_removal_models_here (100%) rename {models => model}/checkpoints/put_checkpoints_here (100%) rename {models => model}/clip/put_clip_or_text_encoder_models_here (100%) rename {models => model}/clip_vision/put_clip_vision_models_here (100%) rename {models => model}/configs/anything_v3.yaml (100%) rename {models => model}/configs/v1-inference.yaml (100%) rename {models => model}/configs/v1-inference_clip_skip_2.yaml (100%) rename {models => model}/configs/v1-inference_clip_skip_2_fp16.yaml (100%) rename {models => model}/configs/v1-inference_fp16.yaml (100%) rename {models => model}/configs/v1-inpainting-inference.yaml (100%) rename {models => model}/configs/v2-inference-v.yaml (100%) rename {models => model}/configs/v2-inference-v_fp32.yaml (100%) rename {models => model}/configs/v2-inference.yaml (100%) rename {models => model}/configs/v2-inference_fp32.yaml (100%) rename {models => model}/configs/v2-inpainting-inference.yaml (100%) rename {models => model}/controlnet/put_controlnets_and_t2i_here (100%) rename {models => model}/detection/put_detection_models_here (100%) rename {models => model}/diffusers/put_diffusers_models_here (100%) rename {models => model}/diffusion_models/put_diffusion_model_files_here (100%) rename {models => model}/embeddings/put_embeddings_or_textual_inversion_concepts_here (100%) rename {models => model}/frame_interpolation/put_frame_interpolation_models_here (100%) rename {models => model}/geometry_estimation/put_geometry_estimation_models_here (100%) rename {models => model}/gligen/put_gligen_models_here (100%) rename {models => model}/hypernetworks/put_hypernetworks_here (100%) rename {models => model}/latent_upscale_models/put_latent_upscale_models_here (100%) rename {models => model}/loras/put_loras_here (100%) rename {models => model}/model_patches/put_model_patches_here (100%) rename {models => model}/optical_flow/put_optical_flow_models_here (100%) rename {models => model}/photomaker/put_photomaker_models_here (100%) rename {models => model}/style_models/put_t2i_style_model_here (100%) rename {models => model}/text_encoders/put_text_encoder_files_here (100%) rename {models => model}/unet/put_unet_files_here (100%) rename {models => model}/upscale_models/put_esrgan_and_other_upscale_models_here (100%) rename {models => model}/vae/put_vae_here (100%) rename {models => model}/vae_approx/put_taesd_encoder_pth_and_taesd_decoder_pth_here (100%) diff --git a/folder_paths.py b/folder_paths.py index ee048b0f2df6..7593d2c1b5d9 100644 --- a/folder_paths.py +++ b/folder_paths.py @@ -4,7 +4,7 @@ import logging from typing import Literal, List from collections.abc import Collection - +import json from comfy.cli_args import args supported_pt_extensions: set[str] = {'.ckpt', '.pt', '.pt2', '.bin', '.pth', '.safetensors', '.pkl', '.sft'} @@ -13,11 +13,39 @@ # --base-directory - Resets all default paths configured in folder_paths with a new base path if args.base_directory: - base_path = os.path.abspath(args.base_directory) + raw_path = os.path.abspath(args.base_directory) else: - base_path = os.path.dirname(os.path.realpath(__file__)) + raw_path = os.path.dirname(os.path.realpath(__file__)) + + +def valid_path(saved_path,description = "Instance Folder"): + if os.path.exists(saved_path): + return saved_path + + redirect_path = os.path.join(os.path.dirname(__file__),"path.redirects.json") + if os.path.exists(redirect_path): + with open("redirect_path","r") as f: + redirects = json.load(f) + if description in redirects and os.path.exists(redirects[description]): + return redirects[description] + print(f"\n[!] ALERT: {description} not found at: {saved_path}") + new_path= input(f"Please paste the updated absolute path for '{description}': ").strip() + try: + redirects = {} + if os.path.exists(redirects): + with open(redirects, "r") as f: redirects = json.load(f) + redirects[description] = new_path + with open(redirects, "w") as f: json.dump(redirects, f, indent=4) + except Exception: + pass + + return new_path -models_dir = os.path.join(base_path, "models") + + +base_path = valid_path(raw_path,description = "ComfyUI Core Directory") + +models_dir =valid_path( os.path.join(base_path,"model"),description = "Model Directory") folder_names_and_paths["checkpoints"] = ([os.path.join(models_dir, "checkpoints")], supported_pt_extensions) folder_names_and_paths["configs"] = ([os.path.join(models_dir, "configs")], [".yaml"]) @@ -60,7 +88,7 @@ folder_names_and_paths["detection"] = ([os.path.join(models_dir, "detection")], supported_pt_extensions) -output_directory = os.path.join(base_path, "output") +output_directory =valid_path( os.path.join(base_path, "output"),"Output Directory") temp_directory = os.path.join(base_path, "temp") input_directory = os.path.join(base_path, "input") user_directory = os.path.join(base_path, "user") @@ -102,6 +130,8 @@ def __exit__(self, exc_type, exc_value, traceback): "fbx" : "model", } + + def map_legacy(folder_name: str) -> str: legacy = {"unet": "diffusion_models", "clip": "text_encoders"} diff --git a/models/audio_encoders/put_audio_encoder_models_here b/model/audio_encoders/put_audio_encoder_models_here similarity index 100% rename from models/audio_encoders/put_audio_encoder_models_here rename to model/audio_encoders/put_audio_encoder_models_here diff --git a/models/background_removal/put_background_removal_models_here b/model/background_removal/put_background_removal_models_here similarity index 100% rename from models/background_removal/put_background_removal_models_here rename to model/background_removal/put_background_removal_models_here diff --git a/models/checkpoints/put_checkpoints_here b/model/checkpoints/put_checkpoints_here similarity index 100% rename from models/checkpoints/put_checkpoints_here rename to model/checkpoints/put_checkpoints_here diff --git a/models/clip/put_clip_or_text_encoder_models_here b/model/clip/put_clip_or_text_encoder_models_here similarity index 100% rename from models/clip/put_clip_or_text_encoder_models_here rename to model/clip/put_clip_or_text_encoder_models_here diff --git a/models/clip_vision/put_clip_vision_models_here b/model/clip_vision/put_clip_vision_models_here similarity index 100% rename from models/clip_vision/put_clip_vision_models_here rename to model/clip_vision/put_clip_vision_models_here diff --git a/models/configs/anything_v3.yaml b/model/configs/anything_v3.yaml similarity index 100% rename from models/configs/anything_v3.yaml rename to model/configs/anything_v3.yaml diff --git a/models/configs/v1-inference.yaml b/model/configs/v1-inference.yaml similarity index 100% rename from models/configs/v1-inference.yaml rename to model/configs/v1-inference.yaml diff --git a/models/configs/v1-inference_clip_skip_2.yaml b/model/configs/v1-inference_clip_skip_2.yaml similarity index 100% rename from models/configs/v1-inference_clip_skip_2.yaml rename to model/configs/v1-inference_clip_skip_2.yaml diff --git a/models/configs/v1-inference_clip_skip_2_fp16.yaml b/model/configs/v1-inference_clip_skip_2_fp16.yaml similarity index 100% rename from models/configs/v1-inference_clip_skip_2_fp16.yaml rename to model/configs/v1-inference_clip_skip_2_fp16.yaml diff --git a/models/configs/v1-inference_fp16.yaml b/model/configs/v1-inference_fp16.yaml similarity index 100% rename from models/configs/v1-inference_fp16.yaml rename to model/configs/v1-inference_fp16.yaml diff --git a/models/configs/v1-inpainting-inference.yaml b/model/configs/v1-inpainting-inference.yaml similarity index 100% rename from models/configs/v1-inpainting-inference.yaml rename to model/configs/v1-inpainting-inference.yaml diff --git a/models/configs/v2-inference-v.yaml b/model/configs/v2-inference-v.yaml similarity index 100% rename from models/configs/v2-inference-v.yaml rename to model/configs/v2-inference-v.yaml diff --git a/models/configs/v2-inference-v_fp32.yaml b/model/configs/v2-inference-v_fp32.yaml similarity index 100% rename from models/configs/v2-inference-v_fp32.yaml rename to model/configs/v2-inference-v_fp32.yaml diff --git a/models/configs/v2-inference.yaml b/model/configs/v2-inference.yaml similarity index 100% rename from models/configs/v2-inference.yaml rename to model/configs/v2-inference.yaml diff --git a/models/configs/v2-inference_fp32.yaml b/model/configs/v2-inference_fp32.yaml similarity index 100% rename from models/configs/v2-inference_fp32.yaml rename to model/configs/v2-inference_fp32.yaml diff --git a/models/configs/v2-inpainting-inference.yaml b/model/configs/v2-inpainting-inference.yaml similarity index 100% rename from models/configs/v2-inpainting-inference.yaml rename to model/configs/v2-inpainting-inference.yaml diff --git a/models/controlnet/put_controlnets_and_t2i_here b/model/controlnet/put_controlnets_and_t2i_here similarity index 100% rename from models/controlnet/put_controlnets_and_t2i_here rename to model/controlnet/put_controlnets_and_t2i_here diff --git a/models/detection/put_detection_models_here b/model/detection/put_detection_models_here similarity index 100% rename from models/detection/put_detection_models_here rename to model/detection/put_detection_models_here diff --git a/models/diffusers/put_diffusers_models_here b/model/diffusers/put_diffusers_models_here similarity index 100% rename from models/diffusers/put_diffusers_models_here rename to model/diffusers/put_diffusers_models_here diff --git a/models/diffusion_models/put_diffusion_model_files_here b/model/diffusion_models/put_diffusion_model_files_here similarity index 100% rename from models/diffusion_models/put_diffusion_model_files_here rename to model/diffusion_models/put_diffusion_model_files_here diff --git a/models/embeddings/put_embeddings_or_textual_inversion_concepts_here b/model/embeddings/put_embeddings_or_textual_inversion_concepts_here similarity index 100% rename from models/embeddings/put_embeddings_or_textual_inversion_concepts_here rename to model/embeddings/put_embeddings_or_textual_inversion_concepts_here diff --git a/models/frame_interpolation/put_frame_interpolation_models_here b/model/frame_interpolation/put_frame_interpolation_models_here similarity index 100% rename from models/frame_interpolation/put_frame_interpolation_models_here rename to model/frame_interpolation/put_frame_interpolation_models_here diff --git a/models/geometry_estimation/put_geometry_estimation_models_here b/model/geometry_estimation/put_geometry_estimation_models_here similarity index 100% rename from models/geometry_estimation/put_geometry_estimation_models_here rename to model/geometry_estimation/put_geometry_estimation_models_here diff --git a/models/gligen/put_gligen_models_here b/model/gligen/put_gligen_models_here similarity index 100% rename from models/gligen/put_gligen_models_here rename to model/gligen/put_gligen_models_here diff --git a/models/hypernetworks/put_hypernetworks_here b/model/hypernetworks/put_hypernetworks_here similarity index 100% rename from models/hypernetworks/put_hypernetworks_here rename to model/hypernetworks/put_hypernetworks_here diff --git a/models/latent_upscale_models/put_latent_upscale_models_here b/model/latent_upscale_models/put_latent_upscale_models_here similarity index 100% rename from models/latent_upscale_models/put_latent_upscale_models_here rename to model/latent_upscale_models/put_latent_upscale_models_here diff --git a/models/loras/put_loras_here b/model/loras/put_loras_here similarity index 100% rename from models/loras/put_loras_here rename to model/loras/put_loras_here diff --git a/models/model_patches/put_model_patches_here b/model/model_patches/put_model_patches_here similarity index 100% rename from models/model_patches/put_model_patches_here rename to model/model_patches/put_model_patches_here diff --git a/models/optical_flow/put_optical_flow_models_here b/model/optical_flow/put_optical_flow_models_here similarity index 100% rename from models/optical_flow/put_optical_flow_models_here rename to model/optical_flow/put_optical_flow_models_here diff --git a/models/photomaker/put_photomaker_models_here b/model/photomaker/put_photomaker_models_here similarity index 100% rename from models/photomaker/put_photomaker_models_here rename to model/photomaker/put_photomaker_models_here diff --git a/models/style_models/put_t2i_style_model_here b/model/style_models/put_t2i_style_model_here similarity index 100% rename from models/style_models/put_t2i_style_model_here rename to model/style_models/put_t2i_style_model_here diff --git a/models/text_encoders/put_text_encoder_files_here b/model/text_encoders/put_text_encoder_files_here similarity index 100% rename from models/text_encoders/put_text_encoder_files_here rename to model/text_encoders/put_text_encoder_files_here diff --git a/models/unet/put_unet_files_here b/model/unet/put_unet_files_here similarity index 100% rename from models/unet/put_unet_files_here rename to model/unet/put_unet_files_here diff --git a/models/upscale_models/put_esrgan_and_other_upscale_models_here b/model/upscale_models/put_esrgan_and_other_upscale_models_here similarity index 100% rename from models/upscale_models/put_esrgan_and_other_upscale_models_here rename to model/upscale_models/put_esrgan_and_other_upscale_models_here diff --git a/models/vae/put_vae_here b/model/vae/put_vae_here similarity index 100% rename from models/vae/put_vae_here rename to model/vae/put_vae_here diff --git a/models/vae_approx/put_taesd_encoder_pth_and_taesd_decoder_pth_here b/model/vae_approx/put_taesd_encoder_pth_and_taesd_decoder_pth_here similarity index 100% rename from models/vae_approx/put_taesd_encoder_pth_and_taesd_decoder_pth_here rename to model/vae_approx/put_taesd_encoder_pth_and_taesd_decoder_pth_here