| import os |
| import comfy.sd |
| from nodes import * |
| import random |
| import folder_paths |
|
|
| cnt=0 |
| ckpt_name="" |
| ckpt_path="" |
|
|
| class CheckpointLoaderRandom: |
| models_dir = os.path.join(os.getcwd(),"ComfyUI", "models") |
| ckpt_dir = os.path.join(models_dir, "checkpoints") |
| cnt=0 |
| ckpt_name="" |
| ckpt_path="" |
| |
| def __init__(self): |
| print(f"CheckpointLoaderRandom __init__") |
| pass |
| |
| @classmethod |
| def INPUT_TYPES(s): |
| return { |
| "required": { |
| "seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}), |
| "max": ("INT", {"default": 10, "min": 0, "max": 0xffffffffffffffff}), |
| |
| } |
| } |
| RETURN_TYPES = ("MODEL", "CLIP", "VAE") |
| FUNCTION = "load_checkpoint" |
|
|
| CATEGORY = "loaders" |
|
|
| def load_checkpoint(self, seed, max, output_vae=True, output_clip=True): |
| global cnt, ckpt_name, ckpt_path |
| print(f"cnt : { cnt}") |
| if ckpt_name=="" or cnt>=max : |
| cnt=0 |
| ckpt_names= folder_paths.get_filename_list("checkpoints") |
| |
| ckpt_name=random.choice(ckpt_names) |
| print(f"ckpt_name : { ckpt_name}") |
| ckpt_path = folder_paths.get_full_path("checkpoints", ckpt_name) |
| out = comfy.sd.load_checkpoint_guess_config(ckpt_path, output_vae=True, output_clip=True, embedding_directory=folder_paths.get_folder_paths("embeddings")) |
| cnt+=1 |
| return out |
| |
|
|