4 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
40105e68f0 Refactor: Extract VAE error message into helper function
Co-authored-by: jags111 <5968619+jags111@users.noreply.github.com>
2026-02-03 17:03:24 +00:00
copilot-swe-agent[bot]
c819d6135a Add .gitignore and remove __pycache__ from tracking
Co-authored-by: jags111 <5968619+jags111@users.noreply.github.com>
2026-02-03 17:02:00 +00:00
copilot-swe-agent[bot]
b0e2632310 Add VAE validation for AIO models without embedded VAE
Co-authored-by: jags111 <5968619+jags111@users.noreply.github.com>
2026-02-03 17:01:35 +00:00
copilot-swe-agent[bot]
d79e4bc801 Initial plan 2026-02-03 16:58:18 +00:00
2 changed files with 34 additions and 2 deletions

18
.gitignore vendored
View File

@@ -1,4 +1,4 @@
# Python cache files
# Python cache
__pycache__/
*.py[cod]
*$py.class
@@ -21,3 +21,19 @@ wheels/
*.egg-info/
.installed.cfg
*.egg
# Virtual environments
venv/
ENV/
env/
# IDEs
.vscode/
.idea/
*.swp
*.swo
*~
# OS
.DS_Store
Thumbs.db

View File

@@ -99,6 +99,16 @@ def encode_prompts(positive_prompt, negative_prompt, token_normalization, weight
elif return_type == "both":
return positive_encoded, negative_encoded, clip, refiner_positive_encoded, refiner_negative_encoded, refiner_clip
########################################################################################################################
# Helper function for VAE error message
def get_missing_vae_error(ckpt_name):
"""Generate error message for checkpoints without embedded VAE"""
return (
f"Checkpoint '{ckpt_name}' does not contain an embedded VAE. "
f"This checkpoint (likely an AIO model) requires an external VAE. "
f"Please select a VAE file instead of 'Baked VAE'."
)
########################################################################################################################
# TSC Efficient Loader
class TSC_EfficientLoader:
@@ -166,6 +176,9 @@ class TSC_EfficientLoader:
f"{warning('Efficiency Nodes:')} Baked VAE not found in cache, loading checkpoint to extract VAE...")
_, _, vae = load_checkpoint(ckpt_name, my_unique_id, output_vae=True, cache=ckpt_cache,
cache_overwrite=True)
# Check if VAE extraction was successful
if vae is None:
raise ValueError(get_missing_vae_error(ckpt_name))
else:
model, clip, vae = load_checkpoint(ckpt_name, my_unique_id, cache=ckpt_cache, cache_overwrite=True)
lora_params = None
@@ -195,6 +208,9 @@ class TSC_EfficientLoader:
# Check for custom VAE
if vae_name != "Baked VAE":
vae = load_vae(vae_name, my_unique_id, cache=vae_cache, cache_overwrite=True)
elif vae is None:
# If "Baked VAE" was selected but checkpoint has no embedded VAE
raise ValueError(get_missing_vae_error(ckpt_name))
# Data for XY Plot
dependencies = (vae_name, ckpt_name, clip, clip_skip, refiner_name, refiner_clip, refiner_clip_skip,
@@ -506,7 +522,7 @@ class TSC_KSampler:
rng_source, cfg_denoiser, add_seed_noise, m_seed, m_weight = script["noise"]
smZ_rng_source.rng_rand_source(rng_source) # this function monkey patches comfy.sample.prepare_noise
if cfg_denoiser:
smZ_cfg_denoiser.register_hooks()
comfy.samplers.KSampler = smZ_cfg_denoiser.SDKSampler
if add_seed_noise:
comfy.sample.prepare_noise = cg_mixed_seed_noise.get_mixed_noise_function(comfy.sample.prepare_noise, m_seed, m_weight)
else: