From 6dee9f5ac7260fa8bb0dd36325ba4458a30fee6e Mon Sep 17 00:00:00 2001 From: Disty0 Date: Mon, 26 May 2025 21:21:01 +0300 Subject: [PATCH] Fix HiDream teacache not reseting --- modules/teacache/__init__.py | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/modules/teacache/__init__.py b/modules/teacache/__init__.py index 22abc7057..342a3130f 100644 --- a/modules/teacache/__init__.py +++ b/modules/teacache/__init__.py @@ -16,19 +16,14 @@ def apply_teacache(p): return if not hasattr(shared.sd_model, 'transformer'): return + shared.sd_model.transformer.__class__.enable_teacache = shared.opts.teacache_thresh > 0 + shared.sd_model.transformer.__class__.cnt = 0 + shared.sd_model.transformer.__class__.num_steps = p.steps + shared.sd_model.transformer.__class__.rel_l1_thresh = shared.opts.teacache_thresh # 0.25 for 1.5x speedup, 0.4 for 1.8x speedup, 0.6 for 2.0x speedup, 0.8 for 2.25x speedup + shared.sd_model.transformer.__class__.accumulated_rel_l1_distance = 0 + shared.sd_model.transformer.__class__.previous_modulated_input = None + shared.sd_model.transformer.__class__.previous_residual = None if shared.sd_model.__class__.__name__.startswith('HiDream'): - shared.sd_model.transformer.__class__.enable_teacache = shared.opts.teacache_thresh > 0 - shared.sd_model.transformer.__class__.cnt = 0 - shared.sd_model.transformer.__class__.num_steps = p.steps shared.sd_model.transformer.__class__.ret_steps = p.steps * 0.1 - shared.sd_model.transformer.__class__.rel_l1_thresh = shared.opts.teacache_thresh # 0.17 for 1.5x speedup, 0.25 for 1.7x speedup, 0.3 for 2x speedup, 0.45 for 2.6x speedup shared.sd_model.transformer.__class__.coefficients = [-3.13605009e+04, -7.12425503e+02, 4.91363285e+01, 8.26515490e+00, 1.08053901e-01] - else: - shared.sd_model.transformer.__class__.enable_teacache = shared.opts.teacache_thresh > 0 - shared.sd_model.transformer.__class__.cnt = 0 - shared.sd_model.transformer.__class__.num_steps = p.steps - shared.sd_model.transformer.__class__.rel_l1_thresh = shared.opts.teacache_thresh # 0.25 for 1.5x speedup, 0.4 for 1.8x speedup, 0.6 for 2.0x speedup, 0.8 for 2.25x speedup - shared.sd_model.transformer.__class__.accumulated_rel_l1_distance = 0 - shared.sd_model.transformer.__class__.previous_modulated_input = None - shared.sd_model.transformer.__class__.previous_residual = None shared.log.info(f'Transformers cache: type=teacache cls={shared.sd_model.__class__.__name__} thresh={shared.opts.teacache_thresh}')