mirror of
https://github.com/vladmandic/automatic
synced 2026-09-18 16:54:33 +02:00
js monitor ops
This commit is contained in:
+9
-3
@@ -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!
|
||||
|
||||
|
||||
@@ -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**
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user