* Add support for DAT upscaler models ([#14690](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14690), [#15039](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/15039))
* Add support for DAT upscaler models ([#14690](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14690), [#15039](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/15039))
* Extra Networks Tree View ([#14588](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14588), [#14900](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14900))
* Extra Networks Tree View ([#14588](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14588), [#14900](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14900))
* NPU Support ([#14801](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14801))
* NPU Support ([#14801](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14801))
* Propmpt comments support
* Prompt comments support
### Minor:
### Minor:
* Allow pasting in WIDTHxHEIGHT strings into the width/height fields ([#14296](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14296))
* Allow pasting in WIDTHxHEIGHT strings into the width/height fields ([#14296](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14296))
...
@@ -59,7 +59,7 @@
...
@@ -59,7 +59,7 @@
* modules/api/api.py: add api endpoint to refresh embeddings list ([#14715](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14715))
* modules/api/api.py: add api endpoint to refresh embeddings list ([#14715](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14715))
* Massive performance improvement for extra networks directories with a huge number of files in them in an attempt to tackle #14507 ([#14528](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14528))
* Massive performance improvement for extra networks directories with a huge number of files in them in an attempt to tackle #14507 ([#14528](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14528))
...
@@ -101,7 +101,7 @@
...
@@ -101,7 +101,7 @@
* Gracefully handle mtime read exception from cache ([#14933](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14933))
* Gracefully handle mtime read exception from cache ([#14933](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14933))
* Only trigger interrupt on `Esc` when interrupt button visible ([#14932](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14932))
* Only trigger interrupt on `Esc` when interrupt button visible ([#14932](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14932))
* Disable prompt token counters option actually disables token counting rather than just hiding results.
* Disable prompt token counters option actually disables token counting rather than just hiding results.
* avoid doble upscaling in inpaint ([#14966](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14966))
* avoid double upscaling in inpaint ([#14966](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14966))
* Fix #14591 using translated content to do categories mapping ([#14995](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14995))
* Fix #14591 using translated content to do categories mapping ([#14995](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14995))
* fix: the `split_threshold` parameter does not work when running Split oversized images ([#15006](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/15006))
* fix: the `split_threshold` parameter does not work when running Split oversized images ([#15006](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/15006))
* Fix resize-handle for mobile ([#15010](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/15010), [#15065](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/15065))
* Fix resize-handle for mobile ([#15010](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/15010), [#15065](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/15065))
...
@@ -171,7 +171,7 @@
...
@@ -171,7 +171,7 @@
* infotext updates: add option to disregard certain infotext fields, add option to not include VAE in infotext, add explanation to infotext settings page, move some options to infotext settings page
* infotext updates: add option to disregard certain infotext fields, add option to not include VAE in infotext, add explanation to infotext settings page, move some options to infotext settings page
* add FP32 fallback support on sd_vae_approx ([#14046](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14046))
* add FP32 fallback support on sd_vae_approx ([#14046](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14046))
* support XYZ scripts / split hires path from unet ([#14126](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14126))
* support XYZ scripts / split hires path from unet ([#14126](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14126))
* allow use of mutiple styles csv files ([#14125](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14125))
* allow use of multiple styles csv files ([#14125](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/14125))
* make extra network card description plaintext by default, with an option (Treat card description as HTML) to re-enable HTML as it was (originally by [#13241](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/13241))
* make extra network card description plaintext by default, with an option (Treat card description as HTML) to re-enable HTML as it was (originally by [#13241](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/13241))
* rework DDIM, PLMS, UniPC to use CFG denoiser same as in k-diffusion samplers:
* rework DDIM, PLMS, UniPC to use CFG denoiser same as in k-diffusion samplers:
* makes all of them work with img2img
* makes all of them work with img2img
* makes prompt composition posssible (AND)
* makes prompt composition possible (AND)
* makes them available for SDXL
* makes them available for SDXL
* always show extra networks tabs in the UI ([#11808](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/11808))
* always show extra networks tabs in the UI ([#11808](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/11808))
* use less RAM when creating models ([#11958](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/11958), [#12599](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/12599))
* use less RAM when creating models ([#11958](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/11958), [#12599](https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/12599))
...
@@ -484,7 +484,7 @@
...
@@ -484,7 +484,7 @@
* user metadata system for custom networks
* user metadata system for custom networks
* extended Lora metadata editor: set activation text, default weight, view tags, training info
* extended Lora metadata editor: set activation text, default weight, view tags, training info
* Lora extension rework to include other types of networks (all that were previously handled by LyCORIS extension)
* Lora extension rework to include other types of networks (all that were previously handled by LyCORIS extension)
* show github stars for extenstions
* show github stars for extensions
* img2img batch mode can read extra stuff from png info
* img2img batch mode can read extra stuff from png info
* img2img batch works with subdirectories
* img2img batch works with subdirectories
* hotkeys to move prompt elements: alt+left/right
* hotkeys to move prompt elements: alt+left/right
...
@@ -703,7 +703,7 @@
...
@@ -703,7 +703,7 @@
* do not wait for Stable Diffusion model to load at startup
* do not wait for Stable Diffusion model to load at startup
* add filename patterns: `[denoising]`
* add filename patterns: `[denoising]`
* directory hiding for extra networks: dirs starting with `.` will hide their cards on extra network tabs unless specifically searched for
* directory hiding for extra networks: dirs starting with `.` will hide their cards on extra network tabs unless specifically searched for
* LoRA: for the `<...>` text in prompt, use name of LoRA that is in the metdata of the file, if present, instead of filename (both can be used to activate LoRA)
* LoRA: for the `<...>` text in prompt, use name of LoRA that is in the metadata of the file, if present, instead of filename (both can be used to activate LoRA)
* LoRA: read infotext params from kohya-ss's extension parameters if they are present and if his extension is not active
* LoRA: read infotext params from kohya-ss's extension parameters if they are present and if his extension is not active
* LoRA: fix some LoRAs not working (ones that have 3x3 convolution layer)
* LoRA: fix some LoRAs not working (ones that have 3x3 convolution layer)
* LoRA: add an option to use old method of applying LoRAs (producing same results as with kohya-ss)
* LoRA: add an option to use old method of applying LoRAs (producing same results as with kohya-ss)
...
@@ -733,7 +733,7 @@
...
@@ -733,7 +733,7 @@
* fix gamepad navigation
* fix gamepad navigation
* make the lightbox fullscreen image function properly
* make the lightbox fullscreen image function properly
* fix squished thumbnails in extras tab
* fix squished thumbnails in extras tab
* keep "search" filter for extra networks when user refreshes the tab (previously it showed everthing after you refreshed)
* keep "search" filter for extra networks when user refreshes the tab (previously it showed everything after you refreshed)
* fix webui showing the same image if you configure the generation to always save results into same file
* fix webui showing the same image if you configure the generation to always save results into same file
* add support for saving init images in img2img, and record their hashes in infotext for reproducability
* add support for saving init images in img2img, and record their hashes in infotext for reproducibility
* automatically select current word when adjusting weight with ctrl+up/down
* automatically select current word when adjusting weight with ctrl+up/down
* add dropdowns for X/Y/Z plot
* add dropdowns for X/Y/Z plot
* add setting: Stable Diffusion/Random number generator source: makes it possible to make images generated from a given manual seed consistent across different GPUs
* add setting: Stable Diffusion/Random number generator source: makes it possible to make images generated from a given manual seed consistent across different GPUs
"canvas_hotkey_grow_brush":shared.OptionInfo("W","Enlarge the brush size"),
"canvas_hotkey_grow_brush":shared.OptionInfo("W","Enlarge the brush size"),
"canvas_hotkey_move":shared.OptionInfo("F","Moving the canvas").info("To work correctly in firefox, turn off 'Automatically search the page text when typing' in the browser settings"),
"canvas_hotkey_move":shared.OptionInfo("F","Moving the canvas").info("To work correctly in firefox, turn off 'Automatically search the page text when typing' in the browser settings"),
"canvas_hotkey_fullscreen":shared.OptionInfo("S","Fullscreen Mode, maximizes the picture so that it fits into the screen and stretches it to its full width "),
"canvas_hotkey_fullscreen":shared.OptionInfo("S","Fullscreen Mode, maximizes the picture so that it fits into the screen and stretches it to its full width "),
"canvas_hotkey_reset":shared.OptionInfo("R","Reset zoom and canvas positon"),
"canvas_hotkey_reset":shared.OptionInfo("R","Reset zoom and canvas position"),
"canvas_hotkey_overlap":shared.OptionInfo("O","Toggle overlap").info("Technical button, neededs for testing"),
"canvas_hotkey_overlap":shared.OptionInfo("O","Toggle overlap").info("Technical button, needed for testing"),
"canvas_show_tooltip":shared.OptionInfo(True,"Enable tooltip on the canvas"),
"canvas_show_tooltip":shared.OptionInfo(True,"Enable tooltip on the canvas"),
"canvas_auto_expand":shared.OptionInfo(True,"Automatically expands an image that does not fit completely in the canvas area, similar to manually pressing the S and R buttons"),
"canvas_auto_expand":shared.OptionInfo(True,"Automatically expands an image that does not fit completely in the canvas area, similar to manually pressing the S and R buttons"),
"canvas_blur_prompt":shared.OptionInfo(False,"Take the focus off the prompt when working with a canvas"),
"canvas_blur_prompt":shared.OptionInfo(False,"Take the focus off the prompt when working with a canvas"),
parser.add_argument('--timeout-keep-alive',type=int,default=30,help='set timeout_keep_alive for uvicorn')
parser.add_argument('--timeout-keep-alive',type=int,default=30,help='set timeout_keep_alive for uvicorn')
parser.add_argument("--disable-all-extensions",action='store_true',help="prevent all extensions from running regardless of any other settings",default=False)
parser.add_argument("--disable-all-extensions",action='store_true',help="prevent all extensions from running regardless of any other settings",default=False)
parser.add_argument("--disable-extra-extensions",action='store_true',help="prevent all extensions except built-in from running regardless of any other settings",default=False)
parser.add_argument("--disable-extra-extensions",action='store_true',help="prevent all extensions except built-in from running regardless of any other settings",default=False)
parser.add_argument("--skip-load-model-at-start",action='store_true',help="if load a model at web start, only take effect when --nowebui",)
parser.add_argument("--skip-load-model-at-start",action='store_true',help="if load a model at web start, only take effect when --nowebui")
parser.add_argument("--unix-filenames-sanitization",action='store_true',help="allow any symbols except '/' in filenames. May conflict with your browser and file system")
parser.add_argument("--filenames-max-length",type=int,default=128,help='maximal length of filenames of saved images. If you override it, it can conflict with your file system')
@@ -55,7 +55,7 @@ and delete current Python and "venv" folder in WebUI's directory.
...
@@ -55,7 +55,7 @@ and delete current Python and "venv" folder in WebUI's directory.
You can download 3.10 Python from here: https://www.python.org/downloads/release/python-3106/
You can download 3.10 Python from here: https://www.python.org/downloads/release/python-3106/
{"Alternatively, use a binary release of WebUI: https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases" if is_windows else ""}
{"Alternatively, use a binary release of WebUI: https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.0.0-pre" if is_windows else ""}
Use --skip-python-version-check to suppress this warning.
Use --skip-python-version-check to suppress this warning.
"pad_cond_uncond":OptionInfo(False,"Pad prompt/negative prompt",infotext='Pad conds').info("improves performance when prompt and negative prompt have different lengths; changes seeds"),
"pad_cond_uncond":OptionInfo(False,"Pad prompt/negative prompt",infotext='Pad conds').info("improves performance when prompt and negative prompt have different lengths; changes seeds"),
"pad_cond_uncond_v0":OptionInfo(False,"Pad prompt/negative prompt (v0)",infotext='Pad conds v0').info("alternative implementation for the above; used prior to 1.6.0 for DDIM sampler; overrides the above if set; WARNING: truncates negative prompt if it's too long; changes seeds"),
"pad_cond_uncond_v0":OptionInfo(False,"Pad prompt/negative prompt (v0)",infotext='Pad conds v0').info("alternative implementation for the above; used prior to 1.6.0 for DDIM sampler; overrides the above if set; WARNING: truncates negative prompt if it's too long; changes seeds"),
"persistent_cond_cache":OptionInfo(True,"Persistent cond cache").info("do not recalculate conds from prompts if prompts have not changed since previous calculation"),
"persistent_cond_cache":OptionInfo(True,"Persistent cond cache").info("do not recalculate conds from prompts if prompts have not changed since previous calculation"),
"batch_cond_uncond":OptionInfo(True,"Batch cond/uncond").info("do both conditional and unconditional denoising in one batch; uses a bit more VRAM during sampling, but improves speed; previously this was controlled by --always-batch-cond-uncond comandline argument"),
"batch_cond_uncond":OptionInfo(True,"Batch cond/uncond").info("do both conditional and unconditional denoising in one batch; uses a bit more VRAM during sampling, but improves speed; previously this was controlled by --always-batch-cond-uncond commandline argument"),
"fp8_storage":OptionInfo("Disable","FP8 weight",gr.Radio,{"choices":["Disable","Enable for SDXL","Enable"]}).info("Use FP8 to store Linear/Conv layers' weight. Require pytorch>=2.1.0."),
"fp8_storage":OptionInfo("Disable","FP8 weight",gr.Radio,{"choices":["Disable","Enable for SDXL","Enable"]}).info("Use FP8 to store Linear/Conv layers' weight. Require pytorch>=2.1.0."),
"cache_fp16_weight":OptionInfo(False,"Cache FP16 weight for LoRA").info("Cache fp16 weight when enabling FP8, will increase the quality of LoRA. Use more system ram."),
"cache_fp16_weight":OptionInfo(False,"Cache FP16 weight for LoRA").info("Cache fp16 weight when enabling FP8, will increase the quality of LoRA. Use more system ram."),
"dont_fix_second_order_samplers_schedule":OptionInfo(False,"Do not fix prompt schedule for second order samplers."),
"dont_fix_second_order_samplers_schedule":OptionInfo(False,"Do not fix prompt schedule for second order samplers."),
"hires_fix_use_firstpass_conds":OptionInfo(False,"For hires fix, calculate conds of second pass using extra networks of first pass."),
"hires_fix_use_firstpass_conds":OptionInfo(False,"For hires fix, calculate conds of second pass using extra networks of first pass."),
"use_old_scheduling":OptionInfo(False,"Use old prompt editing timelines.",infotext="Old prompt editing timelines").info("For [red:green:N]; old: If N < 1, it's a fraction of steps (and hires fix uses range from 0 to 1), if N >= 1, it's an absolute number of steps; new: If N has a decimal point in it, it's a fraction of steps (and hires fix uses range from 1 to 2), othewrwise it's an absolute number of steps"),
"use_old_scheduling":OptionInfo(False,"Use old prompt editing timelines.",infotext="Old prompt editing timelines").info("For [red:green:N]; old: If N < 1, it's a fraction of steps (and hires fix uses range from 0 to 1), if N >= 1, it's an absolute number of steps; new: If N has a decimal point in it, it's a fraction of steps (and hires fix uses range from 1 to 2), othewrwise it's an absolute number of steps"),
"use_downcasted_alpha_bar":OptionInfo(False,"Downcast model alphas_cumprod to fp16 before sampling. For reproducing old seeds.",infotext="Downcast alphas_cumprod")
"use_downcasted_alpha_bar":OptionInfo(False,"Downcast model alphas_cumprod to fp16 before sampling. For reproducing old seeds.",infotext="Downcast alphas_cumprod"),
"refiner_switch_by_sample_steps":OptionInfo(False,"Switch to refiner by sampling steps instead of model timesteps. Old behavior for refiner.",infotext="Refiner switch by sampling steps")
"extra_networks_card_order_field":OptionInfo("Path","Default order field for Extra Networks cards",gr.Dropdown,{"choices":['Path','Name','Date Created','Date Modified']}).needs_reload_ui(),
"extra_networks_card_order_field":OptionInfo("Path","Default order field for Extra Networks cards",gr.Dropdown,{"choices":['Path','Name','Date Created','Date Modified']}).needs_reload_ui(),
"extra_networks_card_order":OptionInfo("Ascending","Default order for Extra Networks cards",gr.Dropdown,{"choices":['Ascending','Descending']}).needs_reload_ui(),
"extra_networks_card_order":OptionInfo("Ascending","Default order for Extra Networks cards",gr.Dropdown,{"choices":['Ascending','Descending']}).needs_reload_ui(),
"extra_networks_tree_view_default_enabled":OptionInfo(False,"Enables the Extra Networks directory tree view by default").needs_reload_ui(),
"extra_networks_tree_view_default_enabled":OptionInfo(False,"Enables the Extra Networks directory tree view by default").needs_reload_ui(),
"extra_networks_tree_view_default_width":OptionInfo(180,"Default width for the Extra Networks directory tree view",gr.Number).needs_reload_ui(),
"extra_networks_add_text_separator":OptionInfo(" ","Extra networks separator").info("extra text to add before <...> when adding extra network to prompt"),
"extra_networks_add_text_separator":OptionInfo(" ","Extra networks separator").info("extra text to add before <...> when adding extra network to prompt"),
'rho':OptionInfo(0.0,"rho",gr.Number,infotext='Schedule rho').info("0 = default (7 for karras, 1 for polyexponential); higher values result in a steeper noise schedule (decreases faster)"),
'rho':OptionInfo(0.0,"rho",gr.Number,infotext='Schedule rho').info("0 = default (7 for karras, 1 for polyexponential); higher values result in a steeper noise schedule (decreases faster)"),
'eta_noise_seed_delta':OptionInfo(0,"Eta noise seed delta",gr.Number,{"precision":0},infotext='ENSD').info("ENSD; does not improve anything, just produces different results for ancestral samplers - only useful for reproducing images"),
'eta_noise_seed_delta':OptionInfo(0,"Eta noise seed delta",gr.Number,{"precision":0},infotext='ENSD').info("ENSD; does not improve anything, just produces different results for ancestral samplers - only useful for reproducing images"),
'sgm_noise_multiplier':OptionInfo(False,"SGM noise multiplier",infotext='SGM noise multplier').link("PR","https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/12818").info("Match initial noise to official SDXL implementation - only useful for reproducing images"),
'sgm_noise_multiplier':OptionInfo(False,"SGM noise multiplier",infotext='SGM noise multiplier').link("PR","https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/12818").info("Match initial noise to official SDXL implementation - only useful for reproducing images"),
self.selection=gr.Dropdown(label="Styles",elem_id=f"{tabname}_styles_edit_select",choices=list(shared.prompt_styles.styles),value=[],allow_custom_value=True,info="Styles allow you to add custom text to prompt. Use the {prompt} token in style text, and it will be replaced with user's prompt when applying style. Otherwise, style's text will be added to the end of the prompt.")
self.selection=gr.Dropdown(label="Styles",elem_id=f"{tabname}_styles_edit_select",choices=list(shared.prompt_styles.styles),value=[],allow_custom_value=True,info="Styles allow you to add custom text to prompt. Use the {prompt} token in style text, and it will be replaced with user's prompt when applying style. Otherwise, style's text will be added to the end of the prompt.")
self.materialize=ui_components.ToolButton(value=styles_materialize_symbol,elem_id=f"{tabname}_style_apply_dialog",tooltip="Apply all selected styles from the style selction dropdown in main UI to the prompt.")
self.materialize=ui_components.ToolButton(value=styles_materialize_symbol,elem_id=f"{tabname}_style_apply_dialog",tooltip="Apply all selected styles from the style selection dropdown in main UI to the prompt.")
self.copy=ui_components.ToolButton(value=styles_copy_symbol,elem_id=f"{tabname}_style_copy",tooltip="Copy main UI prompt to style.")
self.copy=ui_components.ToolButton(value=styles_copy_symbol,elem_id=f"{tabname}_style_copy",tooltip="Copy main UI prompt to style.")