From ac267d7f3f8bcfa5760f12e9290f7839531ecc0d Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Wed, 6 Sep 2023 13:23:11 -0400 Subject: [PATCH] add light theme, enhance profilng and logging --- CHANGELOG.md | 8 +- extensions-builtin/sd-webui-controlnet | 2 +- html/light-teal.jpg | Bin 0 -> 123350 bytes html/midnight-barbie.jpg | Bin 0 -> 110165 bytes javascript/black-orange.css | 2 +- javascript/black-teal.css | 31 ++- javascript/extraNetworks.js | 2 +- javascript/light-teal.css | 315 +++++++++++++++++++++++++ javascript/midnight-barbie.css | 0 javascript/style.css | 5 +- modules/call_queue.py | 23 +- modules/images.py | 2 +- modules/img2img.py | 3 +- modules/memmon.py | 57 ++--- modules/paths.py | 4 - modules/processing.py | 121 +++++----- modules/scripts.py | 90 ++++--- modules/sd_models.py | 2 +- modules/sd_samplers.py | 4 +- modules/shared.py | 7 +- modules/txt2img.py | 2 - modules/ui_extra_networks.py | 19 +- 22 files changed, 501 insertions(+), 198 deletions(-) create mode 100644 html/light-teal.jpg create mode 100644 html/midnight-barbie.jpg create mode 100644 javascript/light-teal.css mode change 100755 => 100644 javascript/midnight-barbie.css diff --git a/CHANGELOG.md b/CHANGELOG.md index adb52e92b..16da92008 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,10 +5,14 @@ One week later, another large update! - system: - - new default theme: **black-teal** - full **python 3.11** support note that changing python version does require reinstall and if you're already on python 3.10, really no need to upgrade +- themes: + - new default theme: **black-teal** + - new light theme: **light-teal** + - new additional theme: **midnight-barbie** + thanks @nyxia - extra networks: - support for **tags** show tags on hover, search by tag, list tags, add to prompt, etc. @@ -44,8 +48,6 @@ One week later, another large update! - added **force zeros** setting create zero-tensor for prompt if prompt is empty (positive or negative) - general: - - new additional theme: **midnight-barbie** - thanks @nyxia - `rembg` remove backgrounds support for **is-net** model - **settings** now show markers for all items set to non-default values - **metadata** refactored how/what/when metadata is added to images diff --git a/extensions-builtin/sd-webui-controlnet b/extensions-builtin/sd-webui-controlnet index fd37e9fc7..f77c5eb5f 160000 --- a/extensions-builtin/sd-webui-controlnet +++ b/extensions-builtin/sd-webui-controlnet @@ -1 +1 @@ -Subproject commit fd37e9fc7ced2c3a39aaa3860916672c8d0fbfe8 +Subproject commit f77c5eb5fa6dea0136d36a6fc9f9f00a99d8f2cb diff --git a/html/light-teal.jpg b/html/light-teal.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2b6292c6e01ddaa246ab89752b0b1e36d25588a2 GIT binary patch literal 123350 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 OFOR?fyC0+enfV|0W8EeI literal 0 HcmV?d00001 diff --git a/html/midnight-barbie.jpg b/html/midnight-barbie.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c4182e8f1a1892b8bcc57ad29c1e5c10866fd143 GIT binary patch literal 110165 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 div > div > input.gr-text-input { right: 0; width: 4em; padding: 0; top: -12px; border: none; max-height: 20px; } +.output-html { line-height: 1.2rem; overflow-x: hidden; } +.output-html > div { margin-bottom: 8px; } +.overflow-hidden .flex .flex-col .relative col .gap-4 { min-width: var(--left-column); max-width: var(--left-column); } /* this is a problematic one */ +.p-2 { padding: 0; } +.px-4 { padding-lefT: 1rem; padding-right: 1rem; } +.py-6 { padding-bottom: 0; } +.tabs { background-color: var(--background-color); } +.block.token-counter span { background-color: var(--input-background-fill) !important; box-shadow: 2px 2px 2px #111; border: none !important; font-size: 0.8rem; } +.tab-nav { zoom: 120%; margin-bottom: 10px; border-bottom: 2px solid var(--highlight-color) !important; padding-bottom: 2px; } +.label-wrap { margin: 16px 0px 8px 0px; } +.gradio-slider input[type="number"] { width: 4.5em; font-size: 0.8rem; height: 20px; } +.gradio-button.tool { border: none; background: none; box-shadow: none; filter: hue-rotate(340deg) saturate(0.5); } +#tab_extensions table td, #tab_extensions table th { border: none; padding: 0.5em; } +#tab_extensions table { width: 96vw } +#tab_extensions table thead { background-color: var(--neutral-700); } + +/* automatic style classes */ +.progressDiv { border-radius: var(--radius-sm) !important; position: fixed; top: 44px; right: 26px; max-width: 262px; height: 48px; z-index: 99; box-shadow: var(--button-shadow); } +.progressDiv .progress { border-radius: var(--radius-lg) !important; background: var(--highlight-color); line-height: 3rem; height: 48px; } +.gallery-item { box-shadow: none !important; } +.performance { color: #888; } +.extra-networks { border-left: 2px solid var(--highlight-color) !important; padding-left: 4px; } +.image-buttons { gap: 10px !important; justify-content: center; } +.image-buttons > button { max-width: 160px; } +#system_row > button, #settings_row > button, #config_row > button { max-width: 190px; } + +/* gradio elements overrides */ +#div.gradio-container { overflow-x: hidden; } +#img2img_label_copy_to_img2img { font-weight: normal; } +#txt2img_prompt, #txt2img_neg_prompt, #img2img_prompt, #img2img_neg_prompt { background-color: var(--background-color); box-shadow: 4px 4px 4px 0px #333333 !important; } +#txt2img_prompt > label > textarea, #txt2img_neg_prompt > label > textarea, #img2img_prompt > label > textarea, #img2img_neg_prompt > label > textarea { font-size: 1.1rem; } +#img2img_settings { min-width: calc(2 * var(--left-column)); max-width: calc(2 * var(--left-column)); background-color: #111111; padding-top: 16px; } +#interrogate, #deepbooru { margin: 0 0px 10px 0px; max-width: 80px; max-height: 80px; font-weight: normal; font-size: 0.95em; } +#quicksettings .gr-button-tool { font-size: 1.6rem; box-shadow: none; margin-left: -20px; margin-top: -2px; height: 2.4em; } +#quicksettings > div, #quicksettings > fieldset { line-height: 1.4em; margin-top: 0.4em; } +#open_folder_extras, #footer, #style_pos_col, #style_neg_col, #roll_col, #extras_upscaler_2, #extras_upscaler_2_visibility, #txt2img_seed_resize_from_w, #txt2img_seed_resize_from_h { display: none; } +#save-animation { border-radius: var(--radius-sm) !important; margin-bottom: 16px; background-color: #111111; } +#script_list { padding: 4px; margin-top: 20px; margin-bottom: 20px; } +#settings > div.flex-wrap { width: 15em; } +#tab_extensions table { background-color: #222222; } +#txt2img_cfg_scale { min-width: 200px; } +#txt2img_checkboxes, #img2img_checkboxes { background-color: transparent; } +#txt2img_checkboxes, #img2img_checkboxes { margin-bottom: 0.2em; } +#txt2img_actions_column, #img2img_actions_column { flex-flow: wrap; justify-content: space-between; } +#txt2img_enqueue_wrapper, #img2img_enqueue_wrapper { min-width: unset; width: 48%; } +#txt2img_generate_box, #img2img_generate_box { min-width: unset; width: 48%; } + +#extras_upscale { margin-top: 10px } +#txt2img_progress_row > div { min-width: var(--left-column); max-width: var(--left-column); } +#txt2img_results, #img2img_results, #extras_results { background-color: var(--background-color); padding: 0; } +#txt2img_settings { min-width: var(--left-column); max-width: var(--left-column); background-color: #111111; padding-top: 16px; } +#pnginfo_html2_info { margin-top: -18px; background-color: var(--input-background-fill); padding: var(--input-padding) } +#txt2img_tools, #img2img_tools { margin-top: -4px; margin-bottom: -4px; } +#txt2img_styles_row, #img2img_styles_row { margin-top: -6px; } + +/* custom elements overrides */ +#steps-animation, #controlnet { border-width: 0; } + +/* based on gradio built-in dark theme */ +:root, .light, .dark { + --body-background-fill: var(--background-color); + --color-accent-soft: var(--neutral-700); + --background-fill-secondary: none; + --border-color-accent: var(--background-color); + --border-color-primary: var(--background-color); + --link-text-color-active: var(--secondary-500); + --link-text-color: var(--secondary-500); + --link-text-color-hover: var(--secondary-400); + --link-text-color-visited: var(--secondary-600); + --shadow-spread: 1px; + --block-background-fill: None; + --block-border-color: var(--border-color-primary); + --block_border_width: None; + --block-info-text-color: var(--body-text-color-subdued); + --block-label-background-fill: var(--background-fill-secondary); + --block-label-border-color: var(--border-color-primary); + --block_label_border_width: None; + --block-label-text-color: var(--neutral-200); + --block_shadow: None; + --block_title_background_fill: None; + --block_title_border_color: None; + --block_title_border_width: None; + --panel-background-fill: var(--background-fill-secondary); + --panel-border-color: var(--border-color-primary); + --panel_border_width: None; + --checkbox-background-color: var(--neutral-500); + --checkbox-background-color-focus: var(--checkbox-background-color); + --checkbox-background-color-hover: var(--checkbox-background-color); + --checkbox-background-color-selected: var(--primary-500); + --checkbox-border-color: transparent; + --checkbox-border-color-focus: var(--secondary-500); + --checkbox-border-color-hover: var(--neutral-600); + --checkbox-border-color-selected: var(--primary-600); + --checkbox-border-width: var(--input-border-width); + --checkbox-label-background-fill: None; + --checkbox-label-background-fill-hover: None; + --checkbox-label-background-fill-selected: var(--checkbox-label-background-fill); + --checkbox-label-border-color: var(--border-color-primary); + --checkbox-label-border-color-hover: var(--checkbox-label-border-color); + --checkbox-label-border-width: var(--input-border-width); + --checkbox-label-text-color: var(--body-text-color); + --checkbox-label-text-color-selected: var(--checkbox-label-text-color); + --error-background-fill: var(--background-fill-primary); + --error-border-color: var(--border-color-primary); + --error_border_width: None; + --error-text-color: #ef4444; + --input-background-fill-focus: var(--secondary-600); + --input-background-fill-hover: var(--input-background-fill); + --input-border-color: var(--border-color-primary); + --input-border-color-focus: var(--neutral-700); + --input-border-color-hover: var(--input-border-color); + --input_border_width: None; + --input-placeholder-color: var(--neutral-500); + --input-shadow-focus: 2px 2px 2px 2px #111111; + --loader_color: None; + --slider_color: None; + --stat-background-fill: linear-gradient(to right, var(--primary-400), var(--primary-600)); + --table-border-color: var(--neutral-700); + --table-even-background-fill: #222222; + --table-odd-background-fill: #333333; + --table-row-focus: var(--color-accent-soft); + --button-border-width: var(--input-border-width); + --button-cancel-background-fill: linear-gradient(to bottom right, #dc2626, #b91c1c); + --button-cancel-background-fill-hover: linear-gradient(to bottom right, #dc2626, #dc2626); + --button-cancel-border-color: #dc2626; + --button-cancel-border-color-hover: var(--button-cancel-border-color); + --button-cancel-text-color: white; + --button-cancel-text-color-hover: var(--button-cancel-text-color); + --button-primary-background-fill: linear-gradient(to bottom right, var(--primary-500), var(--primary-800)); + --button-primary-background-fill-hover: linear-gradient(to bottom right, var(--primary-500), var(--primary-300)); + --button-primary-border-color: var(--primary-500); + --button-primary-border-color-hover: var(--button-primary-border-color); + --button-primary-text-color: white; + --button-primary-text-color-hover: var(--button-primary-text-color); + --button-secondary-border-color: var(--neutral-600); + --button-secondary-border-color-hover: var(--button-secondary-border-color); + --button-secondary-text-color-hover: var(--button-secondary-text-color); + --secondary-50: #eff6ff; + --secondary-100: #dbeafe; + --secondary-200: #bfdbfe; + --secondary-300: #93c5fd; + --secondary-400: #60a5fa; + --secondary-500: #3b82f6; + --secondary-600: #2563eb; + --secondary-700: #1d4ed8; + --secondary-800: #1e40af; + --secondary-900: #1e3a8a; + --secondary-950: #1d3660; + --neutral-50: #f0f0f0; + --neutral-100: #e0e0e0; + --neutral-200: #d0d0d0; + --neutral-300: #b0b0b0; + --neutral-400: #909090; + --neutral-500: #707070; + --neutral-600: #606060; + --neutral-700: #404040; + --neutral-800: #333333; + --neutral-900: #111827; + --neutral-950: #0b0f19; + --spacing-xxs: 1px; + --spacing-xs: 2px; + --spacing-sm: 4px; + --spacing-lg: 8px; + --spacing-xl: 10px; + --radius-xxs: 0; + --radius-xs: 0; + --radius-md: 0; + --radius-xl: 0; + --radius-xxl: 0; + --text-xxs: 9px; + --text-xs: 10px; + --text-sm: 12px; + --text-md: 14px; + --text-lg: 16px; + --text-xl: 22px; + --text-xxl: 26px; + --body-text-size: var(--text-md); + --body-text-weight: 400; + --embed-radius: var(--radius-lg); + --color-accent: var(--primary-500); + --shadow-drop: 0; + --shadow-drop-lg: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --shadow-inset: rgba(0,0,0,0.05) 0px 2px 4px 0px inset; + --block-border-width: 1px; + --block-info-text-size: var(--text-sm); + --block-info-text-weight: 400; + --block-label-border-width: 1px; + --block-label-margin: 0; + --block-label-padding: var(--spacing-sm) var(--spacing-lg); + --block-label-radius: calc(var(--radius-lg) - 1px) 0 calc(var(--radius-lg) - 1px) 0; + --block-label-right-radius: 0 calc(var(--radius-lg) - 1px) 0 calc(var(--radius-lg) - 1px); + --block-label-text-size: var(--text-sm); + --block-label-text-weight: 400; + --block-padding: var(--spacing-xl) calc(var(--spacing-xl) + 2px); + --block-radius: var(--radius-lg); + --block-shadow: var(--shadow-drop); + --block-title-background-fill: none; + --block-title-border-color: none; + --block-title-border-width: 0px; + --block-title-padding: 0; + --block-title-radius: none; + --block-title-text-size: var(--text-md); + --block-title-text-weight: 400; + --container-radius: var(--radius-lg); + --form-gap-width: 1px; + --layout-gap: var(--spacing-xxl); + --panel-border-width: 0; + --section-header-text-size: var(--text-md); + --section-header-text-weight: 400; + --checkbox-border-radius: var(--radius-sm); + --checkbox-label-gap: 2px; + --checkbox-label-padding: var(--spacing-md); + --checkbox-label-shadow: var(--shadow-drop); + --checkbox-label-text-size: var(--text-md); + --checkbox-label-text-weight: 400; + --checkbox-check: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e"); + --radio-circle: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e"); + --checkbox-shadow: var(--input-shadow); + --error-border-width: 1px; + --input-border-width: 0; + --input-radius: var(--radius-lg); + --input-text-size: var(--text-md); + --input-text-weight: 400; + --loader-color: var(--color-accent); + --prose-text-size: var(--text-md); + --prose-text-weight: 400; + --prose-header-text-weight: 600; + --slider-color: ; + --table-radius: var(--radius-lg); + --button-large-padding: 2px 10px; + --button-large-radius: var(--radius-lg); + --button-large-text-size: var(--text-lg); + --button-large-text-weight: 400; + --button-shadow: 4px 4px 4px 0px #333333; + --button-shadow-active: 1px 1px 4px 0px #555555; + --button-shadow-hover: 1px 1px 4px 0px #555555; + --button-small-padding: var(--spacing-sm) calc(2 * var(--spacing-sm)); + --button-small-radius: var(--radius-lg); + --button-small-text-size: var(--text-md); + --button-small-text-weight: 400; + --button-transition: none; + --size-9: 64px; + --size-14: 64px; +} diff --git a/javascript/midnight-barbie.css b/javascript/midnight-barbie.css old mode 100755 new mode 100644 diff --git a/javascript/style.css b/javascript/style.css index 866a1bb5a..b390cbafa 100644 --- a/javascript/style.css +++ b/javascript/style.css @@ -57,7 +57,7 @@ button.custom-button{ .theme-preview { display: none; position: fixed; border: 4px solid var(--neutral-600); box-shadow: 2px 2px 2px 2px var(--neutral-700); top: 0; bottom: 0; left: 0; right: 0; margin: auto; max-width: 75vw; z-index: 999; } /* txt2img/img2img specific */ -.block.token-counter{ position: absolute; display: inline-block; right: 1em; min-width: 0 !important; width: auto; z-index: 100; top: -0.75em; } +.block.token-counter{ position: absolute; display: inline-block; right: 0; min-width: 0 !important; width: auto; z-index: 100; top: -0.75em; } .block.token-counter span{ background: var(--input-background-fill) !important; box-shadow: 0 0 0.0 0.3em rgba(192,192,192,0.15), inset 0 0 0.6em rgba(192,192,192,0.075); border: 2px solid rgba(192,192,192,0.4) !important; } .block.token-counter.error span{ box-shadow: 0 0 0.0 0.3em rgba(255,0,0,0.15), inset 0 0 0.6em rgba(255,0,0,0.075); border: 2px solid rgba(255,0,0,0.4) !important; } .block.token-counter div{ display: inline; } @@ -226,7 +226,7 @@ table.settings-value-table td { padding: 0.4em; border: 1px solid #ccc; max-widt /* extra networks */ .extra-networks > div { margin: 0; gap: 0.2em; border-bottom: none !important; } -.extra-networks .second-line { display: flex; width: -webkit-fill-available; gap: 0.2em; } +.extra-networks .second-line { display: flex; width: -webkit-fill-available; gap: 0.3em; box-shadow: var(--input-shadow); } .extra-networks .search { flex: 1; } .extra-networks .description { flex: 3; } .extra-networks .tab-nav > button { margin-right: 0; height: 24px; padding: 2px 4px 2px 4px; } @@ -271,6 +271,7 @@ div.controlnet_main_options { display: grid; grid-template-columns: 1fr 1fr; gri #refresh_tac_refreshTempFiles { display: none; } #train_tab { flex-flow: row-reverse; } #models_tab { flex-flow: row-reverse; } +#swap_axes > button { min-width: 100px; font-size: 1em; } .log-monitor { display: none; justify-content: unset !important; overflow: hidden; padding: 0; margin-top: auto; font-family: monospace; font-size: 0.85em; } .log-monitor td, .log-monitor th { padding-left: 1em; } diff --git a/modules/call_queue.py b/modules/call_queue.py index 8eb703051..568d79344 100644 --- a/modules/call_queue.py +++ b/modules/call_queue.py @@ -47,10 +47,8 @@ def wrap_gradio_gpu_call(func, extra_outputs=None): def wrap_gradio_call(func, extra_outputs=None, add_stats=False): def f(*args, extra_outputs_array=extra_outputs, **kwargs): - run_memmon = shared.opts.memmon_poll_rate > 0 and not shared.mem_mon.disabled and add_stats - if run_memmon: - shared.mem_mon.monitor() t = time.perf_counter() + shared.mem_mon.reset() try: if shared.cmd_opts.profile: pr = cProfile.Profile() @@ -83,18 +81,11 @@ def wrap_gradio_call(func, extra_outputs=None, add_stats=False): elapsed = time.perf_counter() - t elapsed_m = int(elapsed // 60) elapsed_s = elapsed % 60 - elapsed_text = f"{elapsed_s:.2f}s" - if elapsed_m > 0: - elapsed_text = f"{elapsed_m}m "+elapsed_text - if run_memmon: - mem_stats = {k: -(v//-(1024*1024)) for k, v in shared.mem_mon.stop().items()} - active_peak = mem_stats['active_peak'] - reserved_peak = mem_stats['reserved_peak'] - sys_peak = mem_stats['system_peak'] - sys_total = mem_stats['total'] - vram_html = f" |

GPU active {active_peak} MB reserved {reserved_peak} MB | System peak {sys_peak} MB total {sys_total} MB

" - else: - vram_html = '' - res[-1] += f"

Time taken: {elapsed_text}

{vram_html}
" + elapsed_text = f"{elapsed_m}m {elapsed_s:.2f}s" if elapsed_m > 0 else f"{elapsed_s:.2f}s" + vram_html = '' + if not shared.mem_mon.disabled: + vram = {k: -(v//-(1024*1024)) for k, v in shared.mem_mon.read().items()} + vram_html += f" |

GPU active {max(vram['active_peak'], vram['reserved_peak'])} MB reserved {vram['reserved']} | used {vram['used']} MB free {vram['free']} MB total {vram['total']} MB | retries {vram['retries']} oom {vram['oom']}

" + res[-1] += f"

Time: {elapsed_text}

{vram_html}
" return tuple(res) return f diff --git a/modules/images.py b/modules/images.py index f507f1f77..5d7684285 100644 --- a/modules/images.py +++ b/modules/images.py @@ -451,7 +451,7 @@ def atomically_save_image(): image_format = 'JPEG' if shared.opts.image_watermark_enabled: image = set_watermark(image, shared.opts.image_watermark) - shared.log.debug(f'Saving image: type={image_format} size={image.size} {fn}') + shared.log.debug(f'Saving: image={fn} type={image_format} size={image.width}x{image.height}') # actual save exifinfo = (exifinfo or "") if shared.opts.image_metadata else "" if image_format == 'PNG': diff --git a/modules/img2img.py b/modules/img2img.py index 50fc4524d..fcfc50d90 100644 --- a/modules/img2img.py +++ b/modules/img2img.py @@ -74,7 +74,7 @@ def process_batch(p, input_files, input_dir, output_dir, inpaint_mask_dir, args) for k, v in items.items(): image.info[k] = v images.save_image(image, path=output_dir, basename=basename, seed=None, prompt=None, extension=ext, info=geninfo, short_filename=True, no_prompt=True, grid=False, pnginfo_section_name="extras", existing_info=image.info, forced_filename=None) - shared.log.debug(f'Processed: {len(image_files)} Memory: {memory_stats()} batch') + shared.log.debug(f'Processed: images={len(image_files)} memory={memory_stats()} op=batch') def img2img(id_task: str, mode: int, prompt: str, negative_prompt: str, prompt_styles, init_img, sketch, init_img_with_mask, inpaint_color_sketch, inpaint_color_sketch_orig, init_img_inpaint, init_mask_inpaint, steps: int, sampler_index: int, latent_index: int, mask_blur: int, mask_alpha: float, inpainting_fill: int, full_quality: bool, restore_faces: bool, tiling: bool, n_iter: int, batch_size: int, cfg_scale: float, image_cfg_scale: float, diffusers_guidance_rescale: float, refiner_steps: int, refiner_start: float, clip_skip: int, denoising_strength: float, seed: int, subseed: int, subseed_strength: float, seed_resize_from_h: int, seed_resize_from_w: int, selected_scale_tab: int, height: int, width: int, scale_by: float, resize_mode: int, inpaint_full_res: bool, inpaint_full_res_padding: int, inpainting_mask_invert: int, img2img_batch_files: list, img2img_batch_input_dir: str, img2img_batch_output_dir: str, img2img_batch_inpaint_mask_dir: str, override_settings_texts, *args): # pylint: disable=unused-argument @@ -195,5 +195,4 @@ def img2img(id_task: str, mode: int, prompt: str, negative_prompt: str, prompt_s processed = processing.process_images(p) p.close() generation_info_js = processed.js() - shared.log.debug(f'Processed: {len(processed.images)} Memory: {memory_stats()} img') return processed.images, generation_info_js, processed.info, plaintext_to_html(processed.comments) diff --git a/modules/memmon.py b/modules/memmon.py index 1e426b9cb..ceb53d972 100644 --- a/modules/memmon.py +++ b/modules/memmon.py @@ -1,73 +1,52 @@ -import threading -import time from collections import defaultdict import torch -from modules import devices -class MemUsageMonitor(threading.Thread): - run_flag = None +class MemUsageMonitor(): device = None disabled = False opts = None data = None - def __init__(self, name, device, opts): - threading.Thread.__init__(self) + def __init__(self, name, device): self.name = name self.device = device - self.opts = opts - self.daemon = True - self.run_flag = threading.Event() self.data = defaultdict(int) if not torch.cuda.is_available(): self.disabled = True else: try: - self.cuda_mem_get_info() + torch.cuda.mem_get_info(self.device.index if self.device.index is not None else torch.cuda.current_device()) torch.cuda.memory_stats(self.device) except Exception: self.disabled = True - def cuda_mem_get_info(self): - index = self.device.index if self.device.index is not None else torch.cuda.current_device() - return torch.cuda.mem_get_info(index) - - def run(self): + def cuda_mem_get_info(self): # legacy for extensions only if self.disabled: - return - while True: - self.run_flag.wait() - torch.cuda.reset_peak_memory_stats() - self.data.clear() - if self.opts.memmon_poll_rate <= 0: - self.run_flag.clear() - continue - self.data["min_free"] = self.cuda_mem_get_info()[0] - while self.run_flag.is_set(): - free, _total = self.cuda_mem_get_info() - self.data["min_free"] = min(self.data["min_free"], free) - time.sleep(1 / self.opts.memmon_poll_rate) + return 0, 0 + return torch.cuda.mem_get_info(self.device.index if self.device.index is not None else torch.cuda.current_device()) - def monitor(self): - self.run_flag.set() + def reset(self): + if not self.disabled: + torch.cuda.reset_peak_memory_stats(self.device) + self.data['retries'] = 0 + self.data['oom'] = 0 + # torch.cuda.reset_accumulated_memory_stats(self.device) + # torch.cuda.reset_max_memory_allocated(self.device) + # torch.cuda.reset_max_memory_cached(self.device) def read(self): if not self.disabled: - free, total = self.cuda_mem_get_info() - self.data["free"] = free - self.data["total"] = total try: + self.data["free"], self.data["total"] = torch.cuda.mem_get_info(self.device.index if self.device.index is not None else torch.cuda.current_device()) torch_stats = torch.cuda.memory_stats(self.device) self.data["active"] = torch_stats["active.all.current"] self.data["active_peak"] = torch_stats["active_bytes.all.peak"] self.data["reserved"] = torch_stats["reserved_bytes.all.current"] self.data["reserved_peak"] = torch_stats["reserved_bytes.all.peak"] - self.data["system_peak"] = total - self.data["min_free"] + self.data['retries'] = torch_stats["num_alloc_retries"] + self.data['oom'] = torch_stats["num_ooms"] + self.data["used"] = self.data["total"] - self.data["free"] except Exception: self.disabled = True return self.data - - def stop(self): - self.run_flag.clear() - return self.read() diff --git a/modules/paths.py b/modules/paths.py index ab6ef42e4..f4b991f5c 100644 --- a/modules/paths.py +++ b/modules/paths.py @@ -42,10 +42,6 @@ for d, must_exist, what, _options in path_dirs: print(f"Warning: {what} not found at path {must_exist_path}", file=sys.stderr) else: d = os.path.abspath(d) - # if "atstart" in options: - # sys.path.insert(0, d) - # else: - # sys.path.append(d) sys.path.append(d) paths[what] = d diff --git a/modules/processing.py b/modules/processing.py index a5fddd210..aa5365fc8 100644 --- a/modules/processing.py +++ b/modules/processing.py @@ -1,29 +1,39 @@ +import os import json import math -import os +import time import hashlib import random from contextlib import nullcontext from typing import Any, Dict, List import torch import numpy as np -from PIL import Image, ImageFilter, ImageOps import cv2 +from PIL import Image, ImageFilter, ImageOps from skimage import exposure from ldm.data.util import AddMiDaS from ldm.models.diffusion.ddpm import LatentDepth2ImageDiffusion from einops import repeat, rearrange from blendmodes.blend import blendLayers, BlendType from installer import git_commit -import modules.sd_hijack -from modules import devices, prompt_parser, masking, sd_samplers, lowvram, generation_parameters_copypaste, script_callbacks, extra_networks, sd_vae_approx, scripts, sd_samplers_common # pylint: disable=unused-import -import modules.shared as shared -import modules.paths as paths +from modules import shared, devices +import modules.memstats +import modules.lowvram +import modules.masking +import modules.paths +import modules.scripts +import modules.prompt_parser +import modules.extra_networks import modules.face_restoration import modules.images as images import modules.styles -import modules.sd_models as sd_models -import modules.sd_vae as sd_vae +import modules.sd_hijack +import modules.sd_samplers +import modules.sd_samplers_common +import modules.sd_models +import modules.sd_vae +import modules.sd_vae_approx +import modules.generation_parameters_copypaste opt_C = 4 @@ -451,7 +461,7 @@ def create_infotext(p: StableDiffusionProcessing, all_prompts, all_seeds, all_su index = position_in_batch + iteration * p.batch_size if all_negative_prompts is None: all_negative_prompts = p.all_negative_prompts - vae = (None if not shared.opts.add_model_name_to_info or sd_vae.loaded_vae_file is None else os.path.splitext(os.path.basename(sd_vae.loaded_vae_file))[0]) if p.full_quality else 'TAESD' + vae = (None if not shared.opts.add_model_name_to_info or modules.sd_vae.loaded_vae_file is None else os.path.splitext(os.path.basename(modules.sd_vae.loaded_vae_file))[0]) if p.full_quality else 'TAESD' comment = ', '.join(comments) if comments is not None and type(comments) is list else None args = { @@ -473,7 +483,7 @@ def create_infotext(p: StableDiffusionProcessing, all_prompts, all_seeds, all_su "Prompt2": p.refiner_prompt if len(p.refiner_prompt) > 0 else None, "Negative2": p.refiner_negative if len(p.refiner_negative) > 0 else None, # other - "ENSD": shared.opts.eta_noise_seed_delta if shared.opts.eta_noise_seed_delta != 0 and sd_samplers_common.is_sampler_using_eta_noise_seed_delta(p) else None, + "ENSD": shared.opts.eta_noise_seed_delta if shared.opts.eta_noise_seed_delta != 0 and modules.sd_samplers_common.is_sampler_using_eta_noise_seed_delta(p) else None, "Tiling": p.tiling if p.tiling else None, # sdnext "Backend": 'Diffusers' if shared.backend == shared.Backend.DIFFUSERS else 'Original', @@ -524,7 +534,7 @@ def create_infotext(p: StableDiffusionProcessing, all_prompts, all_seeds, all_su args['Token merging ratio hr'] = token_merging_ratio_hr if token_merging_ratio_hr != 0 else None args.update(p.extra_generation_params) - params_text = ", ".join([k if k == v else f'{k}: {generation_parameters_copypaste.quote(v)}' for k, v in args.items() if v is not None]) + params_text = ", ".join([k if k == v else f'{k}: {modules.generation_parameters_copypaste.quote(v)}' for k, v in args.items() if v is not None]) negative_prompt_text = f"\nNegative prompt: {all_negative_prompts[index]}" if all_negative_prompts[index] else "" infotext = f"{all_prompts[index]}{negative_prompt_text}\n{params_text}".strip() return infotext @@ -568,18 +578,18 @@ def process_images(p: StableDiffusionProcessing) -> Processed: stored_opts[k] = shared.opts.data.get(k, None) or shared.opts.data_labels[k].default try: # if no checkpoint override or the override checkpoint can't be found, remove override entry and load opts checkpoint - if p.override_settings.get('sd_model_checkpoint', None) is not None and sd_models.checkpoint_aliases.get(p.override_settings.get('sd_model_checkpoint')) is None: + if p.override_settings.get('sd_model_checkpoint', None) is not None and modules.sd_models.checkpoint_aliases.get(p.override_settings.get('sd_model_checkpoint')) is None: p.override_settings.pop('sd_model_checkpoint', None) - sd_models.reload_model_weights() + modules.sd_models.reload_model_weights() for k, v in p.override_settings.items(): setattr(shared.opts, k, v) if k == 'sd_model_checkpoint': - sd_models.reload_model_weights() + modules.sd_models.reload_model_weights() if k == 'sd_vae': - sd_vae.reload_vae_weights() + modules.sd_vae.reload_vae_weights() if not shared.opts.cuda_compile: - sd_models.apply_token_merging(p.sd_model, p.get_token_merging_ratio()) + modules.sd_models.apply_token_merging(p.sd_model, p.get_token_merging_ratio()) if shared.cmd_opts.profile: """ @@ -598,16 +608,16 @@ def process_images(p: StableDiffusionProcessing) -> Processed: res = process_images_inner(p) finally: if not shared.opts.cuda_compile: - sd_models.apply_token_merging(p.sd_model, 0) + modules.sd_models.apply_token_merging(p.sd_model, 0) if p.override_settings_restore_afterwards: # restore opts to original state for k, v in stored_opts.items(): setattr(shared.opts, k, v) if k == 'sd_model_checkpoint': - sd_models.reload_model_weights() + modules.sd_models.reload_model_weights() if k == 'sd_model_refiner': - sd_models.reload_model_weights() + modules.sd_models.reload_model_weights() if k == 'sd_vae': - sd_vae.reload_vae_weights() + modules.sd_vae.reload_vae_weights() return res @@ -672,15 +682,6 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: cached_c = [None, None] def get_conds_with_caching(function, required_prompts, steps, cache): - """ - Returns the result of calling function(shared.sd_model, required_prompts, steps) - using a cache to store the result if the same arguments have been used before. - - cache is an array containing two elements. The first element is a tuple - representing the previously used arguments, or None if no arguments - have been used before. The second element is where the previously - computed result is stored. - """ if cache[0] is not None and (required_prompts, steps) == cache[0]: return cache[1] with devices.autocast(): @@ -692,11 +693,12 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: return '' ema_scope_context = p.sd_model.ema_scope if shared.backend == shared.Backend.ORIGINAL else nullcontext - with torch.no_grad(), ema_scope_context(): + with torch.inference_mode(), ema_scope_context(): + t0 = time.time() with devices.autocast(): p.init(p.all_prompts, p.all_seeds, p.all_subseeds) if shared.opts.live_previews_enable and shared.opts.show_progress_type == "Approximate NN" and shared.backend == shared.Backend.ORIGINAL: - sd_vae_approx.model() + modules.sd_vae_approx.model() if shared.state.job_count == -1: shared.state.job_count = p.n_iter extra_network_data = None @@ -717,25 +719,25 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: p.scripts.before_process_batch(p, batch_number=n, prompts=p.prompts, seeds=p.seeds, subseeds=p.subseeds) if len(p.prompts) == 0: break - p.prompts, extra_network_data = extra_networks.parse_prompts(p.prompts) + p.prompts, extra_network_data = modules.extra_networks.parse_prompts(p.prompts) if not p.disable_extra_networks: with devices.autocast(): - extra_networks.activate(p, extra_network_data) + modules.extra_networks.activate(p, extra_network_data) if p.scripts is not None: p.scripts.process_batch(p, batch_number=n, prompts=p.prompts, seeds=p.seeds, subseeds=p.subseeds) if n == 0: - with open(os.path.join(paths.data_path, "params.txt"), "w", encoding="utf8") as file: + with open(os.path.join(modules.paths.data_path, "params.txt"), "w", encoding="utf8") as file: processed = Processed(p, [], p.seed, "") file.write(processed.infotext(p, 0)) step_multiplier = 1 - sampler_config = sd_samplers.find_sampler_config(p.sampler_name) + sampler_config = modules.sd_samplers.find_sampler_config(p.sampler_name) step_multiplier = 2 if sampler_config and sampler_config.options.get("second_order", False) else 1 if p.n_iter > 1: shared.state.job = f"Batch {n+1} out of {p.n_iter}" if shared.backend == shared.Backend.ORIGINAL: - uc = get_conds_with_caching(prompt_parser.get_learned_conditioning, p.negative_prompts, p.steps * step_multiplier, cached_uc) - c = get_conds_with_caching(prompt_parser.get_multicond_learned_conditioning, p.prompts, p.steps * step_multiplier, cached_c) + uc = get_conds_with_caching(modules.prompt_parser.get_learned_conditioning, p.negative_prompts, p.steps * step_multiplier, cached_uc) + c = get_conds_with_caching(modules.prompt_parser.get_multicond_learned_conditioning, p.prompts, p.steps * step_multiplier, cached_c) if len(modules.sd_hijack.model_hijack.comments) > 0: for comment in modules.sd_hijack.model_hijack.comments: comments[comment] = 1 @@ -749,8 +751,8 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: if not shared.opts.no_half and not shared.opts.no_half_vae and shared.cmd_opts.rollback_vae: shared.log.warning('Tensor with all NaNs was produced in VAE') devices.dtype_vae = torch.bfloat16 - vae_file, vae_source = sd_vae.resolve_vae(p.sd_model.sd_model_checkpoint) - sd_vae.load_vae(p.sd_model, vae_file, vae_source) + vae_file, vae_source = modules.sd_vae.resolve_vae(p.sd_model.sd_model_checkpoint) + modules.sd_vae.load_vae(p.sd_model, vae_file, vae_source) x_samples_ddim = [decode_first_stage(p.sd_model, samples_ddim[i:i+1].to(dtype=devices.dtype_vae))[0].cpu() for i in range(samples_ddim.size(0))] for x in x_samples_ddim: devices.test_for_nans(x, "vae") @@ -768,14 +770,14 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: raise ValueError(f"Unknown backend {shared.backend}") if shared.cmd_opts.lowvram or shared.cmd_opts.medvram and shared.backend == shared.Backend.ORIGINAL: - lowvram.send_everything_to_cpu() + modules.lowvram.send_everything_to_cpu() devices.torch_gc() if p.scripts is not None: p.scripts.postprocess_batch(p, x_samples_ddim, batch_number=n) if p.scripts is not None: p.prompts = p.all_prompts[n * p.batch_size:(n + 1) * p.batch_size] p.negative_prompts = p.all_negative_prompts[n * p.batch_size:(n + 1) * p.batch_size] - batch_params = scripts.PostprocessBatchListArgs(list(x_samples_ddim)) + batch_params = modules.scripts.PostprocessBatchListArgs(list(x_samples_ddim)) p.scripts.postprocess_batch_list(p, batch_params, batch_number=n) x_samples_ddim = batch_params.images @@ -797,7 +799,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: x_sample = modules.face_restoration.restore_faces(x_sample) image = Image.fromarray(x_sample) if p.scripts is not None: - pp = scripts.PostprocessImageArgs(image) + pp = modules.scripts.PostprocessImageArgs(image) p.scripts.postprocess_image(p, pp) image = pp.image if p.color_corrections is not None and i < len(p.color_corrections): @@ -832,6 +834,9 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: devices.torch_gc() shared.state.nextjob() + t1 = time.time() + shared.log.info(f'Processed: images={len(output_images)} time={t1 - t0:.2f}s its={(p.steps * len(output_images)) / (t1 - t0):.2f} memory={modules.memstats.memory_stats()}') + p.color_corrections = None index_of_first_image = 0 unwanted_grid_because_of_img_count = len(output_images) < 2 and shared.opts.grid_only_if_multiple @@ -848,7 +853,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: images.save_image(grid, p.outpath_grids, "grid", p.all_seeds[0], p.all_prompts[0], shared.opts.grid_format, info=infotext(), short_filename=not shared.opts.grid_extended_filename, p=p, grid=True) if not p.disable_extra_networks and extra_network_data: - extra_networks.deactivate(p, extra_network_data) + modules.extra_networks.deactivate(p, extra_network_data) res = Processed( p, @@ -905,7 +910,7 @@ class StableDiffusionProcessingTxt2Img(StableDiffusionProcessing): def init(self, all_prompts, all_seeds, all_subseeds): if shared.backend == shared.Backend.DIFFUSERS: - sd_models.set_diffuser_pipe(self.sd_model, sd_models.DiffusersTaskType.TEXT_2_IMAGE) + modules.sd_models.set_diffuser_pipe(self.sd_model, modules.sd_models.DiffusersTaskType.TEXT_2_IMAGE) self.width = self.width or 512 self.height = self.height or 512 @@ -953,7 +958,7 @@ class StableDiffusionProcessingTxt2Img(StableDiffusionProcessing): if not shared.opts.save or self.do_not_save_samples or not shared.opts.save_images_before_highres_fix: return if not isinstance(image, Image.Image): - image = sd_samplers.sample_to_image(image, index, approximation=0) + image = modules.sd_samplers.sample_to_image(image, index, approximation=0) orig1 = self.extra_generation_params orig2 = self.restore_faces self.extra_generation_params = {} @@ -964,10 +969,10 @@ class StableDiffusionProcessingTxt2Img(StableDiffusionProcessing): images.save_image(image, self.outpath_samples, "", seeds[index], prompts[index], shared.opts.samples_format, info=info, suffix="-before-highres-fix") if shared.backend == shared.Backend.DIFFUSERS: - sd_models.set_diffuser_pipe(self.sd_model, sd_models.DiffusersTaskType.TEXT_2_IMAGE) + modules.sd_models.set_diffuser_pipe(self.sd_model, modules.sd_models.DiffusersTaskType.TEXT_2_IMAGE) self.ops.append('txt2img') - self.sampler = sd_samplers.create_sampler(self.sampler_name, self.sd_model) + self.sampler = modules.sd_samplers.create_sampler(self.sampler_name, self.sd_model) latent_scale_mode = shared.latent_upscale_modes.get(self.hr_upscaler, None) if self.hr_upscaler is not None else shared.latent_upscale_modes.get(shared.latent_upscale_default_mode, "None") if self.enable_hr and latent_scale_mode is None: if len([x for x in shared.sd_upscalers if x.name == self.hr_upscaler]) == 0: @@ -1020,14 +1025,14 @@ class StableDiffusionProcessingTxt2Img(StableDiffusionProcessing): shared.state.nextjob() if self.latent_sampler == "PLMS": self.latent_sampler = 'UniPC' - self.sampler = sd_samplers.create_sampler(self.latent_sampler or self.sampler_name, self.sd_model) + self.sampler = modules.sd_samplers.create_sampler(self.latent_sampler or self.sampler_name, self.sd_model) samples = samples[:, :, self.truncate_y//2:samples.shape[2]-(self.truncate_y+1)//2, self.truncate_x//2:samples.shape[3]-(self.truncate_x+1)//2] noise = create_random_tensors(samples.shape[1:], seeds=seeds, subseeds=subseeds, subseed_strength=subseed_strength, p=self) x = None devices.torch_gc() # GC now before running the next img2img to prevent running out of memory - sd_models.apply_token_merging(self.sd_model, self.get_token_merging_ratio(for_hr=True)) + modules.sd_models.apply_token_merging(self.sd_model, self.get_token_merging_ratio(for_hr=True)) samples = self.sampler.sample_img2img(self, samples, noise, conditioning, unconditional_conditioning, steps=self.hr_second_pass_steps or self.steps, image_conditioning=image_conditioning) - sd_models.apply_token_merging(self.sd_model, self.get_token_merging_ratio()) + modules.sd_models.apply_token_merging(self.sd_model, self.get_token_merging_ratio()) self.is_hr_pass = False return samples @@ -1065,14 +1070,14 @@ class StableDiffusionProcessingImg2Img(StableDiffusionProcessing): def init(self, all_prompts, all_seeds, all_subseeds): if shared.backend == shared.Backend.DIFFUSERS and self.image_mask is None: - sd_models.set_diffuser_pipe(self.sd_model, sd_models.DiffusersTaskType.IMAGE_2_IMAGE) + modules.sd_models.set_diffuser_pipe(self.sd_model, modules.sd_models.DiffusersTaskType.IMAGE_2_IMAGE) elif shared.backend == shared.Backend.DIFFUSERS and self.image_mask is not None: - sd_models.set_diffuser_pipe(self.sd_model, sd_models.DiffusersTaskType.INPAINTING) + modules.sd_models.set_diffuser_pipe(self.sd_model, modules.sd_models.DiffusersTaskType.INPAINTING) self.sd_model.dtype = self.sd_model.unet.dtype if self.sampler_name == "PLMS": self.sampler_name = 'UniPC' - self.sampler = sd_samplers.create_sampler(self.sampler_name, self.sd_model) + self.sampler = modules.sd_samplers.create_sampler(self.sampler_name, self.sd_model) if self.image_mask is not None: self.ops.append('inpaint') @@ -1089,8 +1094,8 @@ class StableDiffusionProcessingImg2Img(StableDiffusionProcessing): if self.inpaint_full_res: self.mask_for_overlay = image_mask mask = image_mask.convert('L') - crop_region = masking.get_crop_region(np.array(mask), self.inpaint_full_res_padding) - crop_region = masking.expand_crop_region(crop_region, self.width, self.height, mask.width, mask.height) + crop_region = modules.masking.get_crop_region(np.array(mask), self.inpaint_full_res_padding) + crop_region = modules.masking.expand_crop_region(crop_region, self.width, self.height, mask.width, mask.height) x1, y1, x2, y2 = crop_region mask = mask.crop(crop_region) image_mask = images.resize_image(3, mask, self.width, self.height) @@ -1137,7 +1142,7 @@ class StableDiffusionProcessingImg2Img(StableDiffusionProcessing): self.init_images = [image] # assign early for diffusers if image_mask is not None: if self.inpainting_fill != 1: - image = masking.fill(image, latent_mask) + image = modules.masking.fill(image, latent_mask) if add_color_corrections: self.color_corrections.append(setup_color_correction(image)) image = np.array(image).astype(np.float32) / 255.0 @@ -1183,9 +1188,9 @@ class StableDiffusionProcessingImg2Img(StableDiffusionProcessing): def sample(self, conditioning, unconditional_conditioning, seeds, subseeds, subseed_strength, prompts): if shared.backend == shared.Backend.DIFFUSERS: if self.init_mask is None: # pylint: disable=no-member - sd_models.set_diffuser_pipe(self.sd_model, sd_models.DiffusersTaskType.IMAGE_2_IMAGE) + modules.sd_models.set_diffuser_pipe(self.sd_model, modules.sd_models.DiffusersTaskType.IMAGE_2_IMAGE) else: - sd_models.set_diffuser_pipe(self.sd_model, sd_models.DiffusersTaskType.INPAINTING) + modules.sd_models.set_diffuser_pipe(self.sd_model, modules.sd_models.DiffusersTaskType.INPAINTING) self.sd_model.dtype = self.sd_model.unet.dtype x = create_random_tensors([4, self.height // 8, self.width // 8], seeds=seeds, subseeds=subseeds, subseed_strength=self.subseed_strength, seed_resize_from_h=self.seed_resize_from_h, seed_resize_from_w=self.seed_resize_from_w, p=self) diff --git a/modules/scripts.py b/modules/scripts.py index 30136b561..33111a3d3 100644 --- a/modules/scripts.py +++ b/modules/scripts.py @@ -276,6 +276,25 @@ def wrap_call(func, filename, funcname, *args, default=None, **kwargs): return default +class ScriptSummary: + def __init__(self, op): + self.start = time.time() + self.update = time.time() + self.op = op + self.time = {} + + def record(self, script): + self.update = time.time() + self.time[script] = round(time.time() - self.update, 2) + + def report(self): + total = sum(self.time.values()) + if total == 0: + return + scripts = [f'{k}:{v}s' for k, v in self.time.items() if v > 0] + log.debug(f'Script: op={self.op} total={total}s scripts={scripts}') + + class ScriptRunner: def __init__(self): self.scripts = [] @@ -405,6 +424,7 @@ class ScriptRunner: return inputs def run(self, p, *args): + s = ScriptSummary('run') script_index = args[0] if script_index == 0: return None @@ -412,117 +432,111 @@ class ScriptRunner: if script is None: return None parsed = p.per_script_args.get(script.title(), args[script.args_from:script.args_to]) - t0 = time.time() processed = script.run(p, *parsed) - log.debug(f'Script run: {script.title()}:{round(time.time()-t0, 2)}s') + s.record(script.title()) + s.report() return processed def process(self, p, **kwargs): - s = [] + s = ScriptSummary('process') for script in self.alwayson_scripts: try: - t0 = time.time() args = p.per_script_args.get(script.title(), p.script_args[script.args_from:script.args_to]) script.process(p, *args, **kwargs) - s.append(f'{script.title()}:{round(time.time()-t0, 2)}s') except Exception as e: errors.display(e, f'Running script process: {script.filename}') - log.debug(f'Script process: {s}') + s.record(script.title()) + s.report() def before_process_batch(self, p, **kwargs): - s = [] + s = ScriptSummary('before-process-batch') for script in self.alwayson_scripts: try: - t0 = time.time() args = p.per_script_args.get(script.title(), p.script_args[script.args_from:script.args_to]) script.before_process_batch(p, *args, **kwargs) - s.append(f'{script.title()}:{round(time.time()-t0, 2)}s') except Exception as e: errors.display(e, f'Running script before process batch: {script.filename}') - log.debug(f'Script before-process-batch: {s}') + s.record(script.title()) + s.report() def process_batch(self, p, **kwargs): - s = [] + s = ScriptSummary('process-batch') for script in self.alwayson_scripts: try: - t0 = time.time() args = p.per_script_args.get(script.title(), p.script_args[script.args_from:script.args_to]) script.process_batch(p, *args, **kwargs) - s.append(f'{script.title()}:{round(time.time()-t0, 2)}s') except Exception as e: errors.display(e, f'Running script process batch: {script.filename}') - log.debug(f'Script process-batch: {s}') + s.record(script.title()) + s.report() def postprocess(self, p, processed): - s = [] + s = ScriptSummary('postprocess') for script in self.alwayson_scripts: try: - t0 = time.time() args = p.per_script_args.get(script.title(), p.script_args[script.args_from:script.args_to]) script.postprocess(p, processed, *args) - s.append(f'{script.title()}:{round(time.time()-t0, 2)}s') except Exception as e: errors.display(e, f'Running script postprocess: {script.filename}') - log.debug(f'Script postprocess: {s}') + s.record(script.title()) + s.report() def postprocess_batch(self, p, images, **kwargs): - s = [] + s = ScriptSummary('postprocess-batch') for script in self.alwayson_scripts: try: - t0 = time.time() args = p.per_script_args.get(script.title(), p.script_args[script.args_from:script.args_to]) script.postprocess_batch(p, *args, images=images, **kwargs) - s.append(f'{script.title()}:{round(time.time()-t0, 2)}s') except Exception as e: errors.display(e, f'Running script before postprocess batch: {script.filename}') - log.debug(f'Script postprocess-batch: {s}') + s.record(script.title()) + s.report() def postprocess_batch_list(self, p, pp: PostprocessBatchListArgs, **kwargs): - s = [] + s = ScriptSummary('postprocess-batch-list') for script in self.alwayson_scripts: try: - t0 = time.time() args = p.per_script_args.get(script.title(), p.script_args[script.args_from:script.args_to]) script.postprocess_batch_list(p, pp, *args, **kwargs) - s.append(f'{script.title()}:{round(time.time()-t0, 2)}s') except Exception as e: errors.display(e, f'Running script before postprocess batch list: {script.filename}') - log.debug(f'Script postprocess-batch-list: {s}') + s.record(script.title()) + s.report() def postprocess_image(self, p, pp: PostprocessImageArgs): - s = [] + s = ScriptSummary('postprocess-image') for script in self.alwayson_scripts: try: - t0 = time.time() args = p.per_script_args.get(script.title(), p.script_args[script.args_from:script.args_to]) script.postprocess_image(p, pp, *args) - s.append(f'{script.title()}:{round(time.time()-t0, 2)}s') except Exception as e: errors.display(e, f'Running script postprocess image: {script.filename}') - log.debug(f'Script postprocess-image: {s}') + s.record(script.title()) + s.report() def before_component(self, component, **kwargs): + s = ScriptSummary('before-component') for script in self.scripts: try: - t0 = time.time() script.before_component(component, **kwargs) - time_component[script.title()] = time_component.get(script.title(), 0) + (time.time()-t0) except Exception as e: errors.display(e, f'Running script before component: {script.filename}') + s.record(script.title()) + s.report() def after_component(self, component, **kwargs): + s = ScriptSummary('after-component') for script in self.scripts: try: - t0 = time.time() script.after_component(component, **kwargs) - time_component[script.title()] = time_component.get(script.title(), 0) + (time.time()-t0) except Exception as e: errors.display(e, f'Running script after component: {script.filename}') + s.record(script.title()) + s.report() def reload_sources(self, cache): - s = [] + s = ScriptSummary('reload-sources') for si, script in list(enumerate(self.scripts)): - t0 = time.time() args_from = script.args_from args_to = script.args_to filename = script.filename @@ -536,8 +550,8 @@ class ScriptRunner: self.scripts[si].filename = filename self.scripts[si].args_from = args_from self.scripts[si].args_to = args_to - s.append(f'{script.title()}:{round(time.time()-t0, 2)}s') - log.debug(f'Script reload-sources: {s}') + s.record(script.title()) + s.report() scripts_txt2img: ScriptRunner = None diff --git a/modules/sd_models.py b/modules/sd_models.py index 7b8da7fa3..b59ae8681 100644 --- a/modules/sd_models.py +++ b/modules/sd_models.py @@ -355,7 +355,7 @@ def read_state_dict(checkpoint_file, map_location=None): # pylint: disable=unuse return None try: pl_sd = None - with progress.open(checkpoint_file, 'rb', description=f'Loading weights: [cyan]{checkpoint_file}', auto_refresh=True) as f: + with progress.open(checkpoint_file, 'rb', description=f'[cyan]Loading weights: [yellow]{checkpoint_file}', auto_refresh=True) as f: _, extension = os.path.splitext(checkpoint_file) if extension.lower() == ".ckpt" and shared.opts.sd_disable_ckpt: shared.log.warning(f"Checkpoint loading disabled: {checkpoint_file}") diff --git a/modules/sd_samplers.py b/modules/sd_samplers.py index 41d1a4959..e0f6493c8 100644 --- a/modules/sd_samplers.py +++ b/modules/sd_samplers.py @@ -47,14 +47,14 @@ def create_sampler(name, model): sampler = config.constructor(model) sampler.config = config sampler.name = name - shared.log.debug(f'Sampler: {sampler.name} {sampler.config.options}') + shared.log.debug(f'Sampler: sampler={sampler.name} config={sampler.config.options}') return sampler elif shared.backend == shared.Backend.DIFFUSERS: sampler = config.constructor(model) if not hasattr(model, 'scheduler_config'): model.scheduler_config = sampler.sampler.config.copy() model.scheduler = sampler.sampler - shared.log.debug(f'Sampler: {sampler.name} {sampler.config}') + shared.log.debug(f'Sampler: sampler={sampler.name} config={sampler.config}') return sampler.sampler else: return None diff --git a/modules/shared.py b/modules/shared.py index 48406f80d..0dce43a9d 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -378,7 +378,7 @@ options_templates.update(options_section(('optimizations', "Optimizations"), { })) options_templates.update(options_section(('cuda', "Compute Settings"), { - "memmon_poll_rate": OptionInfo(2, "VRAM usage polls per second during generation", gr.Slider, {"minimum": 0, "maximum": 40, "step": 1}), + # "memmon_poll_rate": OptionInfo(2, "VRAM usage polls per second during generation", gr.Slider, {"minimum": 0, "maximum": 40, "step": 1}), "precision": OptionInfo("Autocast", "Precision type", gr.Radio, lambda: {"choices": ["Autocast", "Full"]}), "cuda_dtype": OptionInfo("FP32" if sys.platform == "darwin" or cmd_opts.use_openvino else "BF16" if devices.backend == "ipex" else "FP16", "Device precision type", gr.Radio, lambda: {"choices": ["FP32", "FP16", "BF16"]}), "no_half": OptionInfo(False, "Use full precision for model (--no-half)", None, None, None), @@ -825,8 +825,7 @@ devices.device, devices.device_interrogate, devices.device_gfpgan, devices.devic device = devices.device batch_cond_uncond = opts.always_batch_cond_uncond or not (cmd_opts.lowvram or cmd_opts.medvram) parallel_processing_allowed = not cmd_opts.lowvram -mem_mon = modules.memmon.MemUsageMonitor("MemMon", device, opts) -mem_mon.start() +mem_mon = modules.memmon.MemUsageMonitor("MemMon", devices.device) if devices.backend == "directml": directml_do_hijack() @@ -916,7 +915,7 @@ def restart_server(restart=True): demo.server.close() demo.fns = [] # os._exit(0) - except Exception as e: + except (Exception, BaseException) as e: log.error(f'Server shutdown error: {e}') if restart: log.info('Server will restart') diff --git a/modules/txt2img.py b/modules/txt2img.py index db246d834..648eb836a 100644 --- a/modules/txt2img.py +++ b/modules/txt2img.py @@ -2,7 +2,6 @@ import modules.scripts from modules import sd_samplers, shared, processing from modules.generation_parameters_copypaste import create_override_settings_dict from modules.ui import plaintext_to_html -from modules.memstats import memory_stats def txt2img(id_task: str, prompt: str, negative_prompt: str, prompt_styles, steps: int, sampler_index: int, latent_index: int, full_quality: bool, restore_faces: bool, tiling: bool, n_iter: int, batch_size: int, cfg_scale: float, image_cfg_scale: float, diffusers_guidance_rescale: float, clip_skip: int, seed: int, subseed: int, subseed_strength: float, seed_resize_from_h: int, seed_resize_from_w: int, height: int, width: int, enable_hr: bool, denoising_strength: float, hr_scale: float, hr_upscaler: str, hr_second_pass_steps: int, hr_resize_x: int, hr_resize_y: int, refiner_steps: int, refiner_start: int, refiner_prompt: str, refiner_negative: str, override_settings_texts, *args): # pylint: disable=unused-argument @@ -68,5 +67,4 @@ def txt2img(id_task: str, prompt: str, negative_prompt: str, prompt_styles, step if processed is None: return [], '', '', 'Error: processing failed' generation_info_js = processed.js() - shared.log.debug(f'Processed: {len(processed.images)} Memory: {memory_stats()} txt') return processed.images, generation_info_js, processed.info, plaintext_to_html(processed.comments) diff --git a/modules/ui_extra_networks.py b/modules/ui_extra_networks.py index 2b5cf3172..5ccf2bde0 100644 --- a/modules/ui_extra_networks.py +++ b/modules/ui_extra_networks.py @@ -17,7 +17,7 @@ import modules.ui_symbols as symbols extra_pages = [] -allowed_dirs = set() +allowed_dirs = [] dir_cache = {} # key=path, value=(mtime, listdir(path)) refresh_time = None @@ -39,16 +39,21 @@ def register_page(page): # registers extra networks page for the UI; recommend doing it in on_before_ui() callback for extensions extra_pages.append(page) allowed_dirs.clear() - allowed_dirs.update(set(sum([x.allowed_directories_for_previews() for x in extra_pages], []))) + for page in extra_pages: + for folder in page.allowed_directories_for_previews(): + if folder not in allowed_dirs: + allowed_dirs.append(os.path.abspath(folder)) def fetch_file(filename: str = ""): - if filename.startswith('html/'): + if not os.path.exists(filename): + return JSONResponse({ "error": f"file {filename}: not found" }, status_code=404) + if filename.startswith('html/') or filename.startswith('models/'): return FileResponse(filename, headers={"Accept-Ranges": "bytes"}) - if not any(Path(x).absolute() in Path(filename).absolute().parents for x in allowed_dirs): - return JSONResponse({"error": f"File cannot be fetched: {filename}. Must be in one of directories registered by extra pages."}) + if not any(Path(folder).absolute() in Path(filename).absolute().parents for folder in allowed_dirs): + return JSONResponse({ "error": f"file {filename}: must be in one of allowed directories" }, status_code=403) if os.path.splitext(filename)[1].lower() not in (".png", ".jpg", ".jpeg", ".webp"): - return JSONResponse({"error": f"File cannot be fetched: {filename}. Only png and jpg and webp."}) + return JSONResponse({"error": f"file {filename}: not an image file"}, status_code=403) return FileResponse(filename, headers={"Accept-Ranges": "bytes"}) @@ -362,7 +367,7 @@ def create_ui(container, button, tabname, skip_indexing = False): def refresh(title): res = [] for page in extra_pages: - if title == '' or title == page.title: + if title == '' or title == page.title or len(page.html) == 0: shared.log.debug(f"Refreshing Extra networks: page={page.title} tab={ui.tabname}") page.refresh() page.create_page(ui.tabname)