From aa602c66c1b31622da000b3477f988c4dd1bde00 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Tue, 11 Aug 2026 23:06:20 +0200 Subject: [PATCH] tweak diffusers/transformers logging Signed-off-by: Vladimir Mandic --- CHANGELOG.md | 1 + modules/logger.py | 20 +++++++++++++++----- modules/processing_diffusers.py | 2 +- modules/shared_items.py | 8 ++++++++ 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b4ec410d..9e347ba1a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ - nunchaku-lite support for `torch==2.13` - log long torch autotune operations - utilize torch.accelerator + - add `SD_DIFFUSERS_DEBUG` and `SD_TRANSFORMERS_DEBUG` env variables to trace diffusers and transformers internal operations - **Removed** - remove DirectML support latest release was over 2 years ago and is not compatible with modern frameworks diff --git a/modules/logger.py b/modules/logger.py index 85b2d47b5..71214a40a 100644 --- a/modules/logger.py +++ b/modules/logger.py @@ -280,9 +280,19 @@ def setup_logging(debug=None, trace=None, filename=None): # overrides logging.getLogger("lycoris").handlers = log.handlers logging.getLogger("ControlNet").handlers = log.handlers - - logging.getLogger("diffusers").setLevel(logging.ERROR) - logging.getLogger("diffusers.modular_pipelines").setLevel(logging.ERROR) - logging.getLogger("transformers").setLevel(logging.ERROR) - logging.getLogger("torch").setLevel(logging.ERROR) logging.getLogger("urllib3").setLevel(logging.ERROR) + + if os.environ.get('SD_DIFFUSERS_DEBUG', None) is not None: + logging.getLogger("diffusers").setLevel(logging.DEBUG) + logging.getLogger("diffusers.modular_pipelines").setLevel(logging.DEBUG) + else: + logging.getLogger("diffusers").setLevel(logging.WARNING) + logging.getLogger("diffusers.modular_pipelines").setLevel(logging.WARNING) + if os.environ.get('SD_TRANSFORMERS_DEBUG', None) is not None: + logging.getLogger("transformers").setLevel(logging.DEBUG) + else: + logging.getLogger("transformers").setLevel(logging.WARNING) + if os.environ.get('SD_TORCH_DEBUG', None) is not None: + logging.getLogger("torch").setLevel(logging.DEBUG) + else: + logging.getLogger("torch").setLevel(logging.WARNING) diff --git a/modules/processing_diffusers.py b/modules/processing_diffusers.py index df17ba13c..46b7d884b 100644 --- a/modules/processing_diffusers.py +++ b/modules/processing_diffusers.py @@ -4,7 +4,7 @@ import time import numpy as np import torch from PIL import Image -from modules import shared, devices, processing, sd_models, errors, sd_hijack_hypertile, processing_vae, sd_models_compile, timer, modelstats, extra_networks, attention +from modules import shared, processing, sd_models, errors, sd_hijack_hypertile, processing_vae, sd_models_compile, timer, modelstats, extra_networks, attention from modules.logger import log from modules.processing_helpers import resize_hires, calculate_base_steps, calculate_hires_steps, calculate_refiner_steps, save_intermediate, update_sampler, is_txt2img, is_refiner_enabled, get_job_name from modules.processing_args import set_pipeline_args diff --git a/modules/shared_items.py b/modules/shared_items.py index 3ebfb5baf..9be9f7acd 100644 --- a/modules/shared_items.py +++ b/modules/shared_items.py @@ -1,3 +1,4 @@ +import logging import diffusers @@ -5,6 +6,11 @@ class OnlinePipeline(diffusers.DiffusionPipeline): pass +logging_level = logging.getLogger("diffusers").level +print('HERE', logging_level) +logging.getLogger("diffusers").setLevel(logging.ERROR) +logging.getLogger("diffusers.modular_pipelines").setLevel(logging.ERROR) + pipelines = { 'Autodetect': None, 'AutoPipeline': diffusers.AutoPipelineForText2Image, @@ -88,6 +94,8 @@ pipelines = { 'SeFi': None, 'MageFlow': None, } +logging.getLogger("diffusers").setLevel(logging_level) +logging.getLogger("diffusers.modular_pipelines").setLevel(logging_level) def postprocessing_scripts():