diff --git a/installer.py b/installer.py
index 14d089f35..bdfd5f453 100644
--- a/installer.py
+++ b/installer.py
@@ -495,12 +495,14 @@ def check_transformers():
return
pkg_transformers = package_spec('transformers')
pkg_tokenizers = package_spec('tokenizers')
- target_commit = '753d61104116eefc8ffc977327b441ee0c8d599f' # transformers commit hash == 4.57.6
+ # target_commit = '753d61104116eefc8ffc977327b441ee0c8d599f' # transformers commit hash == 4.57.6
+ target_commit = 'a28c974c7ac74c83dbf379e93ceecc2661730f63' # transformers commit hash == 4.57.6
if args.use_directml:
target_transformers = '4.52.4'
target_tokenizers = '0.21.4'
else:
- target_transformers = '4.57.6'
+ # target_transformers = '4.57.6'
+ target_transformers = None
target_tokenizers = '0.22.2'
if target_transformers is not None:
# Pinned release version (e.g. DirectML)
diff --git a/modules/api/control.py b/modules/api/control.py
index 234f22776..ff0dad474 100644
--- a/modules/api/control.py
+++ b/modules/api/control.py
@@ -179,7 +179,7 @@ class APIControl:
u = req.control[i]
ut = u.unit_type if u.unit_type is not None else default_type
if ut not in unit_types:
- shared.log.error(f'Control unknown unit type: type={ut} available={unit_types}')
+ log.error(f'Control unknown unit type: type={ut} available={unit_types}')
continue
if (len(self.units) > i) and (self.units[i].process_id == u.process) and (self.units[i].model_id == u.model) and (self.units[i].type == ut):
unit = self.units[i]
diff --git a/modules/processing_diffusers.py b/modules/processing_diffusers.py
index 4ad11c1d9..e719e0f06 100644
--- a/modules/processing_diffusers.py
+++ b/modules/processing_diffusers.py
@@ -510,7 +510,7 @@ def update_pipeline(sd_model, p: processing.StableDiffusionProcessing):
if sd_model is None:
sd_model = shared.sd_model
if sd_model is None:
- shared.log.warning('Processing: op=update model not loaded')
+ log.warning('Processing: op=update model not loaded')
return None
updated_model = sd_model
if sd_models.get_diffusers_task(sd_model) == sd_models.DiffusersTaskType.INPAINTING and getattr(p, 'image_mask', None) is None and p.task_args.get('image_mask', None) is None and getattr(p, 'mask', None) is None:
diff --git a/modules/sd_offload.py b/modules/sd_offload.py
index f8cd05658..e2568f1f5 100644
--- a/modules/sd_offload.py
+++ b/modules/sd_offload.py
@@ -7,7 +7,7 @@ import torch
import accelerate.hooks
import accelerate.utils.modeling
from modules.logger import log
-from modules import shared, devices, errors, model_quant, sd_models, sd_models_aux
+from modules import shared, devices, errors, model_quant, sd_models, sd_offload_aux
from modules.timer import process as process_timer
@@ -244,7 +244,7 @@ class OffloadHook(accelerate.hooks.ModelHook):
if shared.opts.diffusers_offload_pre:
t0 = time.time()
debug_move(f'Offload: type=balanced op=pre module={module.__class__.__name__}')
- sd_models_aux.evict_aux(reason=f'pre:{module.__class__.__name__}')
+ sd_offload_aux.evict_aux(reason=f'pre:{module.__class__.__name__}')
for pipe in get_pipe_variants():
for module_name in get_module_names(pipe):
module_instance = getattr(pipe, module_name, None)
diff --git a/modules/sd_offload_aux.py b/modules/sd_offload_aux.py
index 8b228fb1f..e7a157b4f 100644
--- a/modules/sd_offload_aux.py
+++ b/modules/sd_offload_aux.py
@@ -3,7 +3,6 @@ import dataclasses
import torch
from modules.logger import log
from modules import shared, devices
-from modules.timer import process as process_timer
move_stream = None
diff --git a/modules/sd_samplers_diffusers.py b/modules/sd_samplers_diffusers.py
index fac12eb2e..823a9f0f8 100644
--- a/modules/sd_samplers_diffusers.py
+++ b/modules/sd_samplers_diffusers.py
@@ -486,7 +486,7 @@ class DiffusionSampler:
try:
cls_source = inspect.getsource(constructor)
if '"flow_prediction"' not in cls_source and "'flow_prediction'" not in cls_source:
- shared.log.warning(f'Sampler: "{name}" does not support flow_prediction')
+ log.warning(f'Sampler: "{name}" does not support flow_prediction')
self.sampler = None
return
except (TypeError, OSError):
diff --git a/modules/token_merge.py b/modules/token_merge.py
index 800898f80..47fc09228 100644
--- a/modules/token_merge.py
+++ b/modules/token_merge.py
@@ -1,3 +1,4 @@
+from modules.logger import log
from modules import shared
@@ -20,7 +21,7 @@ def apply_token_merging(sd_model, p=None):
if current_tome == tome:
return
if hypertile and not shared.cmd_opts.experimental:
- shared.log.warning('Token merging not supported with HyperTile for UNet')
+ log.warning('Token merging not supported with HyperTile for UNet')
return
try:
import installer
@@ -34,10 +35,10 @@ def apply_token_merging(sd_model, p=None):
merge_crossattn=False,
merge_mlp=False
)
- shared.log.info(f'Applying ToMe: ratio={tome}')
+ log.info(f'Applying ToMe: ratio={tome}')
sd_model.applied_tome = tome
except Exception:
- shared.log.warning(f'Token merging not supported: pipeline={sd_model.__class__.__name__}')
+ log.warning(f'Token merging not supported: pipeline={sd_model.__class__.__name__}')
else:
sd_model.applied_tome = 0
@@ -45,7 +46,7 @@ def apply_token_merging(sd_model, p=None):
if current_todo == todo:
return
if hypertile and not shared.cmd_opts.experimental:
- shared.log.warning('Token merging not supported with HyperTile for UNet')
+ log.warning('Token merging not supported with HyperTile for UNet')
return
try:
from modules.todo.todo_utils import patch_attention_proc
@@ -61,10 +62,10 @@ def apply_token_merging(sd_model, p=None):
"ratio_level_2": 0.0,
}
patch_attention_proc(sd_model.unet, token_merge_args=token_merge_args)
- shared.log.info(f'Applying ToDo: ratio={todo}')
+ log.info(f'Applying ToDo: ratio={todo}')
sd_model.applied_todo = todo
except Exception:
- shared.log.warning(f'Token merging not supported: pipeline={sd_model.__class__.__name__}')
+ log.warning(f'Token merging not supported: pipeline={sd_model.__class__.__name__}')
else:
sd_model.applied_todo = 0
diff --git a/modules/ui_control.py b/modules/ui_control.py
index 6dbcd7216..32b953a55 100644
--- a/modules/ui_control.py
+++ b/modules/ui_control.py
@@ -197,11 +197,7 @@ def create_ui(_blocks: gr.Blocks=None):
guidance_name, guidance_scale, guidance_rescale, guidance_start, guidance_stop, cfg_scale, image_cfg_scale, diffusers_guidance_rescale, pag_scale, pag_adaptive, cfg_end = ui_guidance.create_guidance_inputs('control')
vae_type, tiling, hidiffusion, clip_skip = ui_sections.create_advanced_inputs('control')
- hdr_mode, hdr_brightness, hdr_color, hdr_sharpen, hdr_clamp, hdr_boundary, hdr_threshold, hdr_maximize, hdr_max_center, hdr_max_boundary, hdr_color_picker, hdr_tint_ratio, hdr_apply_hires, \
- grading_brightness, grading_contrast, grading_saturation, grading_hue, grading_gamma, grading_sharpness, grading_color_temp, \
- grading_shadows, grading_midtones, grading_highlights, grading_clahe_clip, grading_clahe_grid, \
- grading_shadows_tint, grading_highlights_tint, grading_split_tone_balance, \
- grading_vignette, grading_grain, grading_lut_file, grading_lut_strength = ui_sections.create_color_inputs('control')
+ hdr_mode, hdr_brightness, hdr_color, hdr_sharpen, hdr_clamp, hdr_boundary, hdr_threshold, hdr_maximize, hdr_max_center, hdr_max_boundary, hdr_color_picker, hdr_tint_ratio, hdr_apply_hires, grading_brightness, grading_contrast, grading_saturation, grading_hue, grading_gamma, grading_sharpness, grading_color_temp, grading_shadows, grading_midtones, grading_highlights, grading_clahe_clip, grading_clahe_grid, grading_shadows_tint, grading_highlights_tint, grading_split_tone_balance, grading_vignette, grading_grain, grading_lut_file, grading_lut_strength = ui_sections.create_color_inputs('control')
with gr.Accordion(open=False, label="Video", elem_id="control_video", elem_classes=["small-accordion"]):
with gr.Row():
diff --git a/modules/ui_img2img.py b/modules/ui_img2img.py
index efbdd783f..2f844853c 100644
--- a/modules/ui_img2img.py
+++ b/modules/ui_img2img.py
@@ -135,11 +135,7 @@ def create_ui():
guidance_name, guidance_scale, guidance_rescale, guidance_start, guidance_stop, cfg_scale, image_cfg_scale, diffusers_guidance_rescale, pag_scale, pag_adaptive, cfg_end = ui_guidance.create_guidance_inputs('img2img')
vae_type, tiling, hidiffusion, clip_skip = ui_sections.create_advanced_inputs('img2img')
- hdr_mode, hdr_brightness, hdr_color, hdr_sharpen, hdr_clamp, hdr_boundary, hdr_threshold, hdr_maximize, hdr_max_center, hdr_max_boundary, hdr_color_picker, hdr_tint_ratio, hdr_apply_hires, \
- grading_brightness, grading_contrast, grading_saturation, grading_hue, grading_gamma, grading_sharpness, grading_color_temp, \
- grading_shadows, grading_midtones, grading_highlights, grading_clahe_clip, grading_clahe_grid, \
- grading_shadows_tint, grading_highlights_tint, grading_split_tone_balance, \
- grading_vignette, grading_grain, grading_lut_file, grading_lut_strength = ui_sections.create_color_inputs('img2img')
+ hdr_mode, hdr_brightness, hdr_color, hdr_sharpen, hdr_clamp, hdr_boundary, hdr_threshold, hdr_maximize, hdr_max_center, hdr_max_boundary, hdr_color_picker, hdr_tint_ratio, hdr_apply_hires, grading_brightness, grading_contrast, grading_saturation, grading_hue, grading_gamma, grading_sharpness, grading_color_temp, grading_shadows, grading_midtones, grading_highlights, grading_clahe_clip, grading_clahe_grid, grading_shadows_tint, grading_highlights_tint, grading_split_tone_balance, grading_vignette, grading_grain, grading_lut_file, grading_lut_strength = ui_sections.create_color_inputs('img2img')
enable_hr, hr_sampler_index, hr_denoising_strength, hr_resize_mode, hr_resize_context, hr_upscaler, hr_force, hr_second_pass_steps, hr_scale, hr_resize_x, hr_resize_y, refiner_steps, hr_refiner_start, refiner_prompt, refiner_negative = ui_sections.create_hires_inputs('img2img')
detailer_enabled, detailer_prompt, detailer_negative, detailer_steps, detailer_strength, detailer_resolution = shared.yolo.ui('img2img')
diff --git a/modules/ui_txt2img.py b/modules/ui_txt2img.py
index 2c9ee9977..850acf7d8 100644
--- a/modules/ui_txt2img.py
+++ b/modules/ui_txt2img.py
@@ -35,11 +35,7 @@ def create_ui():
seed, reuse_seed, subseed, reuse_subseed, subseed_strength, seed_resize_from_h, seed_resize_from_w = ui_sections.create_seed_inputs('txt2img')
guidance_name, guidance_scale, guidance_rescale, guidance_start, guidance_stop, cfg_scale, image_cfg_scale, diffusers_guidance_rescale, pag_scale, pag_adaptive, cfg_end = ui_guidance.create_guidance_inputs('txt2img')
vae_type, tiling, hidiffusion, clip_skip = ui_sections.create_advanced_inputs('txt2img')
- hdr_mode, hdr_brightness, hdr_color, hdr_sharpen, hdr_clamp, hdr_boundary, hdr_threshold, hdr_maximize, hdr_max_center, hdr_max_boundary, hdr_color_picker, hdr_tint_ratio, hdr_apply_hires, \
- grading_brightness, grading_contrast, grading_saturation, grading_hue, grading_gamma, grading_sharpness, grading_color_temp, \
- grading_shadows, grading_midtones, grading_highlights, grading_clahe_clip, grading_clahe_grid, \
- grading_shadows_tint, grading_highlights_tint, grading_split_tone_balance, \
- grading_vignette, grading_grain, grading_lut_file, grading_lut_strength = ui_sections.create_color_inputs('txt2img')
+ hdr_mode, hdr_brightness, hdr_color, hdr_sharpen, hdr_clamp, hdr_boundary, hdr_threshold, hdr_maximize, hdr_max_center, hdr_max_boundary, hdr_color_picker, hdr_tint_ratio, hdr_apply_hires, grading_brightness, grading_contrast, grading_saturation, grading_hue, grading_gamma, grading_sharpness, grading_color_temp, grading_shadows, grading_midtones, grading_highlights, grading_clahe_clip, grading_clahe_grid, grading_shadows_tint, grading_highlights_tint, grading_split_tone_balance, grading_vignette, grading_grain, grading_lut_file, grading_lut_strength = ui_sections.create_color_inputs('txt2img')
enable_hr, hr_sampler_index, hr_denoising_strength, hr_resize_mode, hr_resize_context, hr_upscaler, hr_force, hr_second_pass_steps, hr_scale, hr_resize_x, hr_resize_y, refiner_steps, refiner_start, refiner_prompt, refiner_negative = ui_sections.create_hires_inputs('txt2img')
detailer_enabled, detailer_prompt, detailer_negative, detailer_steps, detailer_strength, detailer_resolution = shared.yolo.ui('txt2img')
override_settings = ui_common.create_override_inputs('txt2img')
diff --git a/requirements.txt b/requirements.txt
index 4856e7f57..9f44cd0fc 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -29,7 +29,7 @@ requests==2.32.3
tqdm==4.67.3
accelerate==1.12.0
einops==0.8.1
-huggingface_hub==0.36.2
+huggingface_hub==1.5.0
numpy==2.1.2
pandas==2.3.1
protobuf==6.33.5
diff --git a/scripts/lut.py b/scripts/lut.py
deleted file mode 100644
index 04ad5b5bc..000000000
--- a/scripts/lut.py
+++ /dev/null
@@ -1,69 +0,0 @@
-"""
-downloads: https://luts.iwltbap.com/
-lib: https://github.com/homm/pillow-lut-tools
-"""
-import os
-import gradio as gr
-from installer import install
-from modules import scripts_manager, processing
-from modules.logger import log
-
-
-class Script(scripts_manager.Script):
- def title(self):
- return 'LUT Color grading'
-
- def show(self, is_img2img): # pylint: disable=unused-argument
- return True
-
- def ui(self, _is_img2img):
- with gr.Row():
- gr.HTML("  LUT Color grading
")
- with gr.Row():
- original = gr.Checkbox(label='Include original image', value=True)
- with gr.Row():
- cube_file = gr.File(label='LUT .cube file', help='Download LUTs from https://luts.iwltbap.com/')
- # cube_file = gr.File(label='LUT .cube file')
- with gr.Row():
- gr.HTML("
Enhance LUT")
- with gr.Row():
- cube_scale = gr.Slider(label='Amplify LUT', minimum=0.0, maximum=5.0, step=0.05, value=1.0)
- brightness = gr.Slider(label='Brightness', minimum=-1, maximum=1, step=0.05, value=0)
- exposure = gr.Slider(label='Exposure', minimum=-5, maximum=5, step=0.05, value=0)
- contrast = gr.Slider(label='Contrast', minimum=-1, maximum=1, step=0.05, value=0)
- warmth = gr.Slider(label='Warmth', minimum=-1, maximum=1, step=0.05, value=0)
- saturation = gr.Slider(label='Saturation', minimum=-1, maximum=5, step=0.05, value=0)
- vibrance = gr.Slider(label='Vibrance', minimum=-1, maximum=5, step=0.05, value=0)
- hue = gr.Slider(label='Hue', minimum=0, maximum=1, step=0.05, value=0)
- gamma = gr.Slider(label='Gamma', minimum=0, maximum=10.0, step=0.1, value=1.0)
- return [original, cube_file, cube_scale, brightness, exposure, contrast, warmth, saturation, vibrance, hue, gamma]
-
- # auto-executed by the script-callback
- def after(self, p: processing.StableDiffusionProcessing, processed: processing.Processed, original, cube_file, cube_scale, brightness, exposure, contrast, warmth, saturation, vibrance, hue, gamma): # pylint: disable=arguments-differ, unused-argument
- install('pillow_lut', quiet=True)
- import pillow_lut
-
- cube = None
- name = os.path.splitext(os.path.basename(cube_file.name))[0] if cube_file is not None else None
- log.info(f'Color grading: cube="{name}" scale={cube_scale} brightness={brightness} exposure={exposure} contrast={contrast} warmth={warmth} saturation={saturation} vibrance={vibrance} hue={hue} gamma={gamma}')
- if cube_file is not None:
- try:
- cube = pillow_lut.load_cube_file(cube_file.name)
- cube = pillow_lut.amplify_lut(cube, cube_scale)
- cube = pillow_lut.rgb_color_enhance(source=cube, brightness=brightness, exposure=exposure, contrast=contrast, warmth=warmth, saturation=saturation, vibrance=vibrance, hue=hue, gamma=gamma)
- except Exception as e:
- log.error(f'Color grading: {e}')
-
- images = []
- if processed is not None and len(processed.images) > 0:
- for image in processed.images:
- info = image.info.get('parameters', '')
- if original:
- images.append(image)
- if cube is not None:
- filtered = image.filter(cube)
- filtered.info['parameters'] = f'{info}, LUT: {name}'
- images.append(filtered)
- processed.images = images
-
- return processed