diff --git a/TODO.md b/TODO.md index 1bad643d7..c4b820105 100644 --- a/TODO.md +++ b/TODO.md @@ -8,7 +8,7 @@ - Release **Enso** - Update **ROCm** - Tips **Color Grading** -- Tips **Latent Corrections** +- Regen **Localization** ## Internal diff --git a/html/locale_en.json b/html/locale_en.json index e4ee61e99..ef16327f0 100644 --- a/html/locale_en.json +++ b/html/locale_en.json @@ -163,7 +163,6 @@ {"id":"","label":"Batch size","localized":"","hint":"How many image to create in a single batch (increases generation performance at cost of higher VRAM usage)","ui":"txt2img"}, {"id":"","label":"Beta schedule","localized":"","hint":"Defines how beta (noise strength per step) grows. Options:
- default: the model default
- linear: evenly decays noise per step
- scaled: squared version of linear, used only by Stable Diffusion
- cosine: smoother decay, often better results with fewer steps
- sigmoid: sharp transition, experimental","ui":"txt2img"}, {"id":"","label":"Base shift","localized":"","hint":"Minimum shift value for low resolutions when using dynamic shifting.","ui":"txt2img"}, - {"id":"","label":"Brightness","localized":"","hint":"","ui":"txt2img"}, {"id":"","label":"Block","localized":"","hint":"","ui":"script_kohya_hires_fix"}, {"id":"","label":"Block size","localized":"","hint":"","ui":"script_nudenet"}, {"id":"","label":"Banned words","localized":"","hint":"","ui":"script_nudenet"}, @@ -235,8 +234,6 @@ {"id":"","label":"CLIP Analysis","localized":"","hint":"","ui":"caption"}, {"id":"","label":"Context","localized":"","hint":"","ui":"txt2img"}, {"id":"","label":"Correction mode","localized":"","hint":"","ui":"txt2img"}, - {"id":"","label":"Color","localized":"","hint":"","ui":"txt2img"}, - {"id":"","label":"Center","localized":"","hint":"","ui":"txt2img"}, {"id":"","label":"Color grading","localized":"","hint":"","ui":"txt2img"}, {"id":"","label":"Crop to portrait","localized":"","hint":"Crop input image to portrait-only before using it as IP adapter input","ui":"txt2img"}, {"id":"","label":"Concept Tokens","localized":"","hint":"","ui":"script_consistory"}, @@ -649,9 +646,6 @@ {"id":"","label":"HiDiffusion","localized":"","hint":"HiDiffusion allows creation of high-resolution images using your standard models without duplicates/distortions and improved performance","ui":"settings_advanced"}, {"id":"","label":"Height","localized":"","hint":"Image height","ui":"txt2img"}, {"id":"","label":"HiRes steps","localized":"","hint":"Number of sampling steps for upscaled picture. If 0, uses same as for original","ui":"txt2img"}, - {"id":"","label":"HDR clamp","localized":"","hint":"Adjusts the level of nonsensical details by pruning values that deviate significantly from the distribution mean. It is particularly useful for enhancing generation at higher guidance scales, identifying outliers early in the process and applying mathematical adjustments based on the Range (Boundary) and Threshold settings. Think of it as setting the range within which you want your image values to be, and adjusting the threshold determines which values should be brought back into that range","ui":"txt2img"}, - {"id":"","label":"HDR maximize","localized":"","hint":"Calculates a 'normalization factor' by dividing the maximum tensor value by the specified range multiplied by 4. This factor is then used to shift the channels within the given boundary, ensuring maximum dynamic range for subsequent processing. The objective is to optimize dynamic range for external applications like Photoshop, particularly for adjusting levels, contrast, and brightness","ui":"txt2img"}, - {"id":"","label":"HDR range","localized":"","hint":"","ui":"script_hdr"}, {"id":"","label":"Hue","localized":"","hint":"","ui":"script_lut_color_grading"}, {"id":"","label":"HQ init latents","localized":"","hint":"","ui":"script_instantir"}, {"id":"","label":"Height after","localized":"","hint":"","ui":"control"}, @@ -758,6 +752,15 @@ ], "l": [ + {"id":"","label":"Latent brightness","localized":"","hint":"","ui":"txt2img"}, + {"id":"","label":"Latent center","localized":"","hint":"","ui":"txt2img"}, + {"id":"","label":"Latent clamp","localized":"","hint":"Adjusts the level of nonsensical details by pruning values that deviate significantly from the distribution mean. It is particularly useful for enhancing generation at higher guidance scales, identifying outliers early in the process and applying mathematical adjustments based on the Range (Boundary) and Threshold settings. Think of it as setting the range within which you want your image values to be, and adjusting the threshold determines which values should be brought back into that range","ui":"txt2img"}, + {"id":"","label":"Latent color","localized":"","hint":"","ui":"txt2img"}, + {"id":"","label":"Latent max range","localized":"","hint":"","ui":"txt2img"}, + {"id":"","label":"Latent maximize","localized":"","hint":"Calculates a 'normalization factor' by dividing the maximum tensor value by the specified range multiplied by 4. This factor is then used to shift the channels within the given boundary, ensuring maximum dynamic range for subsequent processing. The objective is to optimize dynamic range for external applications like Photoshop, particularly for adjusting levels, contrast, and brightness","ui":"txt2img"}, + {"id":"","label":"Latent range","localized":"","hint":"","ui":"txt2img"}, + {"id":"","label":"Latent sharpen","localized":"","hint":"","ui":"txt2img"}, + {"id":"","label":"Latent threshold","localized":"","hint":"","ui":"txt2img"}, {"id":"prompt_enhance_load","label":"Load model","localized":"","hint":"","ui":"script_prompt_enhance"}, {"id":"prompt_enhance_custom_load","label":"Load custom model","localized":"","hint":"Load a custom model with the specified configuration","ui":"script_prompt_enhance"}, {"id":"control_mask_remove","label":"LaMa Remove","localized":"","hint":"","ui":"control"}, @@ -871,7 +874,6 @@ {"id":"","label":"Max overlap","localized":"","hint":"Maximum overlap between two detected items before one is discarded","ui":"txt2img"}, {"id":"","label":"Min size","localized":"","hint":"Minimum size of detected object as percentage of overal image","ui":"txt2img"}, {"id":"","label":"Max size","localized":"","hint":"Maximum size of detected object as percentage of overal image","ui":"txt2img"}, - {"id":"","label":"Max Range","localized":"","hint":"","ui":"txt2img"}, {"id":"","label":"Momentum","localized":"","hint":"","ui":"script_apg"}, {"id":"","label":"Mode x-axis","localized":"","hint":"","ui":"script_asymmetric_tiling"}, {"id":"","label":"Mode y-axis","localized":"","hint":"","ui":"script_asymmetric_tiling"}, @@ -1196,7 +1198,6 @@ {"id":"","label":"Refine negative prompt","localized":"","hint":"Negative prompt used for both second encoder in base model (if it exists) and for refiner pass (if enabled)","ui":"txt2img"}, {"id":"","label":"Renoise","localized":"","hint":"Apply additional noise during detailing","ui":"txt2img"}, {"id":"","label":"Renoise end","localized":"","hint":"Final step when renoise is applied","ui":"txt2img"}, - {"id":"","label":"Range","localized":"","hint":"","ui":"txt2img"}, {"id":"","label":"Repeat x-axis","localized":"","hint":"","ui":"script_asymmetric_tiling"}, {"id":"","label":"Repeat y-axis","localized":"","hint":"","ui":"script_asymmetric_tiling"}, {"id":"","label":"ReSwapper Model","localized":"","hint":"","ui":"script_face"}, @@ -1307,7 +1308,6 @@ {"id":"","label":"SEG config","localized":"","hint":"","ui":"txt2img"}, {"id":"","label":"Strength","localized":"","hint":"Denoising strength of during image operation controls how much of original image is allowed to change during generate","ui":"txt2img"}, {"id":"","label":"Sort detections","localized":"","hint":"Sort detected areas by from left to right instead of detection score","ui":"txt2img"}, - {"id":"","label":"Sharpen","localized":"","hint":"","ui":"txt2img"}, {"id":"","label":"Subject","localized":"","hint":"","ui":"script_consistory"}, {"id":"","label":"Same latent","localized":"","hint":"","ui":"script_consistory"}, {"id":"","label":"Share queries","localized":"","hint":"","ui":"script_consistory"}, @@ -1441,7 +1441,6 @@ {"id":"","label":"Timesteps override","localized":"","hint":"","ui":"txt2img"}, {"id":"","label":"thresholding","localized":"","hint":"","ui":"txt2img"}, {"id":"","label":"Texture tiling","localized":"","hint":"Apply seamless tiling to generated image so it can be used as a texture","ui":"txt2img"}, - {"id":"","label":"Threshold","localized":"","hint":"","ui":"txt2img"}, {"id":"","label":"Trigger word","localized":"","hint":"","ui":"script_face"}, {"id":"","label":"Temperature","localized":"","hint":"","ui":"script_flux_prompt_enhance_(legacy)"}, {"id":"","label":"Timestep","localized":"","hint":"","ui":"script_kohya_hires_fix"}, diff --git a/modules/ui_sections.py b/modules/ui_sections.py index 886e392a2..4a6b2d05a 100644 --- a/modules/ui_sections.py +++ b/modules/ui_sections.py @@ -172,15 +172,15 @@ def create_latent_inputs(tab): hdr_sharpen = gr.Slider(minimum=-4.0, maximum=4.0, step=0.05, value=0, label="Latent sharpen", elem_id=f"{tab}_hdr_sharpen") hdr_color = gr.Slider(minimum=0.0, maximum=16.0, step=0.1, value=0.0, label="Latent color", elem_id=f"{tab}_hdr_color") with gr.Row(elem_id=f"{tab}_hdr_clamp_row"): - hdr_clamp = gr.Checkbox(label="Clamp", value=False, elem_id=f"{tab}_hdr_clamp") - hdr_boundary = gr.Slider(minimum=0.0, maximum=10.0, step=0.1, value=4.0, label="Range", elem_id=f"{tab}_hdr_boundary") - hdr_threshold = gr.Slider(minimum=0.0, maximum=1.0, step=0.01, value=0.95, label="Threshold", elem_id=f"{tab}_hdr_threshold") + hdr_clamp = gr.Checkbox(label="Latent clamp", value=False, elem_id=f"{tab}_hdr_clamp") + hdr_boundary = gr.Slider(minimum=0.0, maximum=10.0, step=0.1, value=4.0, label="Latent range", elem_id=f"{tab}_hdr_boundary") + hdr_threshold = gr.Slider(minimum=0.0, maximum=1.0, step=0.01, value=0.95, label="Latent threshold", elem_id=f"{tab}_hdr_threshold") with gr.Row(elem_id=f"{tab}_hdr_max_row"): - hdr_maximize = gr.Checkbox(label="Maximize", value=False, elem_id=f"{tab}_hdr_maximize") - hdr_max_center = gr.Slider(minimum=0.0, maximum=2.0, step=0.1, value=0.6, label="Center", elem_id=f"{tab}_hdr_max_center") - hdr_max_boundary = gr.Slider(minimum=0.5, maximum=2.0, step=0.1, value=1.0, label="Max range", elem_id=f"{tab}_hdr_max_boundary") + hdr_maximize = gr.Checkbox(label="Latent maximize", value=False, elem_id=f"{tab}_hdr_maximize") + hdr_max_center = gr.Slider(minimum=0.0, maximum=2.0, step=0.1, value=0.6, label="Latent center", elem_id=f"{tab}_hdr_max_center") + hdr_max_boundary = gr.Slider(minimum=0.5, maximum=2.0, step=0.1, value=1.0, label="Latent max range", elem_id=f"{tab}_hdr_max_boundary") with gr.Row(elem_id=f"{tab}_hdr_color_row"): - hdr_color_picker = gr.ColorPicker(label="Tint color", show_label=True, container=False, value=None, elem_id=f"{tab}_hdr_color_picker") + hdr_color_picker = gr.ColorPicker(label="Latent tint", show_label=True, container=False, value=None, elem_id=f"{tab}_hdr_color_picker") hdr_tint_ratio = gr.Slider(label="Tint strength", minimum=-4.0, maximum=4.0, step=0.05, value=0.0, elem_id=f"{tab}_hdr_tint_ratio") return 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