js monitor ops

This commit is contained in:
Vladimir Mandic
2023-07-13 09:50:38 -04:00
parent 36e7bf4e96
commit 186bd236f5
5 changed files with 33 additions and 14 deletions
+9 -3
View File
@@ -1,9 +1,14 @@
# Change Log for SD.Next
## Update for 07/12/2023
## Update for 07/13/2023
Another big one, but now improvements to both **diffusers** and **original** backend
Another big one, but now improvements to both **diffusers** and **original** backends as well plus ability to dynamically switch between them!
- swich backend between diffusers and original on-the-fly
- you can still use `--backend <backend>` and now that only means in which mode app will start,
but you can change it anytime in ui settings
- for example, you can even do things like generate image using sd-xl,
then switch to original backend and perform inpaint using a different model
- diffusers backend:
- separate ui settings for refiner pass with sd-xl
you can specify: prompt, negative prompt, steps, denoise start
@@ -17,7 +22,8 @@ Another big one, but now improvements to both **diffusers** and **original** bac
- other:
- major refactoring of the javascript code
includes fixes for text selections and navigation
- minor fixes in extra-networks
- minor fixes in extra-networks
- installer handles origin changes for submodules
big thanks to @huggingface team for great communication, support and fixing all the reported issues asap!
+2 -5
View File
@@ -7,29 +7,26 @@ Stuff to be fixed, in no particular order...
- SD-XL Lora
- SD-XL Img2Img/Inpaint
- Kandinsky 2.2 (2.1 is working)
- Refresh `sd_checkpoint` pulldown on backend switch
- Misterious Extensions auto-enabling
- Misterious Extra network corruptions
- Update submodule upstream: `git submodule sync`
## Features
Stuff to be added, in no particular order...
- VAE/UNet dtypes
- Attention head
- Update `Wiki`
- Create new `GitHub` hooks/actions for CI/CD
- Import core repos
- Update `train.py` to use `interrogator`
- Update `train.py` to use `rembg`
- Create new train UI
- Create new **Lora** train UI
- Docker PR
- Port `p.all_hr_prompts`
- Image watermark using `image-watermark`
- Image phash and hdash using `imagehash`
- Model merge using `git-rebasin`
- Additional upscalers
- XYZ grid upscalers
- New image browser
- Update `gradio`
- Rename repo: **automatic** -> **sdnext**
+1
View File
@@ -557,6 +557,7 @@ def install_submodules():
txt = git('submodule')
log.info('Continuing setup')
git('submodule --quiet update --init --recursive')
git('submodule --quiet sync --recursive')
submodules = txt.splitlines()
for submodule in submodules:
try:
+21 -5
View File
@@ -7,6 +7,8 @@ let img2img_textarea;
const wait_time = 800;
const token_timeouts = {};
let uiLoaded = false;
let opts_metadata = {};
const opts_tabs = {};
function set_theme(theme) {
const gradioURL = window.location.href;
@@ -226,12 +228,25 @@ function register_drag_drop() {
});
}
opts = {};
let opts_metadata = {};
const opts_tabs = {};
const monitoredOpts = [
{ sd_model_checkpoint: null },
{
sd_backend: () => {
gradioApp().getElementById('refresh_sd_model_checkpoint')?.click();
},
},
];
function updateOpts(json_string) {
const settings_data = JSON.parse(json_string);
for (const op of monitoredOpts) {
const key = Object.keys(op)[0];
const callback = op[key];
if (opts[key] && opts[key] !== settings_data.values[key]) {
console.log('updateOpts', key, opts[key], settings_data.values[key]);
if (callback) callback();
}
}
opts = settings_data.values;
opts_metadata = settings_data.metadata;
Object.entries(opts_metadata).forEach(([opt, meta]) => {
@@ -253,7 +268,7 @@ function showAllSettings() {
});
}
function sort_ui_elements() {
function sortUIElements() {
// sort top-level tabs
const currSelected = gradioApp()?.querySelector('.tab-nav > .selected')?.innerText;
if (currSelected === tabSelected || !opts.ui_tab_reorder) return;
@@ -280,6 +295,7 @@ function sort_ui_elements() {
const scriptsImg = gradioApp().getElementById('scripts_alwayson_img2img').children;
for (const el of Array.from(scriptsImg)) el.style.order = find(el, tabsOrder);
console.log('sortUIElements');
}
function markIfModified(setting_name, value) {
@@ -318,7 +334,7 @@ function markIfModified(setting_name, value) {
}
onAfterUiUpdate(async () => {
sort_ui_elements();
sortUIElements();
if (Object.keys(opts).length !== 0) return;
const json_elem = gradioApp().getElementById('settings_json');
if (!json_elem) return;
-1
View File
@@ -575,7 +575,6 @@ def change_backend():
shared.log.info(f'Pipeline changed: {shared.backend}')
unload_model_weights()
checkpoints_loaded.clear()
list_models()
from modules.sd_samplers import list_samplers
list_samplers(shared.backend)