diff --git a/javascript/black-teal.css b/javascript/black-teal.css index f4907f706..e7a7ae320 100644 --- a/javascript/black-teal.css +++ b/javascript/black-teal.css @@ -124,7 +124,7 @@ svg.feather.feather-image, .feather .feather-image { display: none } #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; z-index: 200; } +#txt2img_styles_row, #img2img_styles_row { margin-top: -6px; } /* custom elements overrides */ #steps-animation, #controlnet { border-width: 0; } diff --git a/javascript/style.css b/javascript/style.css index e9b8b494e..31dfdf32d 100644 --- a/javascript/style.css +++ b/javascript/style.css @@ -244,21 +244,44 @@ table.settings-value-table td { padding: 0.4em; border: 1px solid #ccc; max-widt .extra-network-cards { display: flex; flex-wrap: wrap; overflow-y: auto; overflow-x: hidden; align-content: flex-start; width: -moz-available; width: -webkit-fill-available; } .extra-network-cards .card { height: fit-content; margin: 0 0 0.5em 0.5em; position: relative; scroll-snap-align: start; scroll-margin-top: 0; } .extra-network-cards .card .overlay { position: absolute; bottom: 0; padding: 0.2em; z-index: 10; width: 100%; background: none; } -.extra-network-cards .card:hover .overlay { background: rgba(0, 0, 0, 0.40); } .extra-network-cards .card .overlay .name { font-size: 1.1em; font-weight: bold; text-shadow: 1px 1px black; color: white; overflow-wrap: break-word; } -.extra-network-cards .card .overlay .tags { margin: 4px; display: none; overflow-wrap: break-word; } -.extra-network-cards .card .overlay .tag { padding: 2px; margin: 2px; background: var(--neutral-700); cursor: pointer; display: inline-block; } -.extra-network-cards .card .overlay .actions { font-size: 2.2em; display: none; text-align-last: center; cursor: pointer; font-variant: unicase; height: 0.8em } -.extra-network-cards .card .overlay .actions > span { padding: 4px; } -.extra-network-cards .card .overlay .description { line-break: anywhere; display: none; color: white; } .extra-network-cards .card .preview { box-shadow: var(--button-shadow); min-height: 30px; } -.extra-network-cards .card:hover .overlay .actions { display: block; } -.extra-network-cards .card:hover .overlay .tags { display: block; } -.extra-network-cards .card:hover .overlay .description { display: block; } +.extra-network-cards .card:hover .overlay { background: rgba(0, 0, 0, 0.40); } .extra-network-cards .card:hover .preview { box-shadow: none; filter: grayscale(100%); } + #txt2img_description, #img2img_description { max-height: 63px; overflow-y: auto !important; } #txt2img_description > label > textarea, #img2img_description > label > textarea { font-size: 0.9em } +.extra-network-cards .card .info { + position: absolute; + font-size: 1.5em; + top: 0.1em; + right: 0.1em; + background: var(--button-primary-border-color); + width: 1.3em; + text-align: center; + border-radius: var(--block-radius); + height: 1.3em; + line-height: 1.2em; + cursor: pointer; + visibility: hidden; + z-index: 100; +} +.extra-network-cards .card:hover .info { visibility: visible; } + +.extra-networks_details { + position: fixed; + bottom: 50%; + left: 50%; + transform: translate(-50%, 50%); + padding: 1em; + border: var(--block-border-width) solid var(--highlight-color) !important; + z-index: 100; + box-shadow: var(--button-shadow); + width: 80vw; + display: none !important; +} + /* controlnet .controlnet_control_type .controlnet_control_type_filter_group .wrap:last-of-type { display: grid; grid-auto-flow: row; grid-template-columns: repeat(4, minmax(0, 1fr)); } fieldset.controlnet_resize_mode_radio .wrap:last-of-type, fieldset.controlnet_control_mode_radio .wrap:last-of-type { flex-direction: column; } diff --git a/modules/api/api.py b/modules/api/api.py index 80d6fb498..c70a54176 100644 --- a/modules/api/api.py +++ b/modules/api/api.py @@ -5,7 +5,7 @@ from io import BytesIO from typing import List, Dict, Any, Optional from threading import Lock from secrets import compare_digest -from fastapi import FastAPI, APIRouter, Depends +from fastapi import FastAPI, APIRouter, Depends, Request from fastapi.security import HTTPBasic, HTTPBasicCredentials from fastapi.exceptions import HTTPException from PIL import PngImagePlugin,Image @@ -168,8 +168,8 @@ class Api: shared.log.buffer.clear() return lines - def session_start(self, agent: Optional[str] = None): - shared.log.info(f'Browser session: agent={agent}') + def session_start(self, req: Request, agent: Optional[str] = None): + shared.log.info(f'Browser session: client={req.client.host} agent={agent}') return {} def get_selectable_script(self, script_name, script_runner): diff --git a/modules/sd_models.py b/modules/sd_models.py index 0103a5dd3..3f82cbb86 100644 --- a/modules/sd_models.py +++ b/modules/sd_models.py @@ -246,7 +246,7 @@ def select_checkpoint(op='model'): return None checkpoint_info = get_closet_checkpoint_match(model_checkpoint) if checkpoint_info is not None: - shared.log.debug(f'Select checkpoint: {op}="{checkpoint_info.title if checkpoint_info is not None else None}"') + shared.log.info(f'Select model: {op}="{checkpoint_info.title if checkpoint_info is not None else None}"') return checkpoint_info if len(checkpoints_list) == 0 and not shared.cmd_opts.no_download: shared.log.error("Cannot run without a checkpoint") @@ -260,7 +260,7 @@ def select_checkpoint(op='model'): shared.log.info("Selecting first available checkpoint") # shared.log.warning(f"Loading fallback checkpoint: {checkpoint_info.title}") shared.opts.data['sd_model_checkpoint'] = checkpoint_info.title - shared.log.debug(f'Select checkpoint: {op}="{checkpoint_info.title if checkpoint_info is not None else None}"') + shared.log.info(f'Select model: {op}="{checkpoint_info.title if checkpoint_info is not None else None}"') return checkpoint_info diff --git a/modules/ui_symbols.py b/modules/ui_symbols.py index 68fc60aff..f53f2202b 100644 --- a/modules/ui_symbols.py +++ b/modules/ui_symbols.py @@ -24,3 +24,4 @@ detect = '📐' folder = '📂' random = '🎲️' reuse = '♻️' +info = 'ℹ'