mirror of
https://github.com/vladmandic/automatic
synced 2026-09-18 16:54:33 +02:00
cleanup en, update todo and requirements
This commit is contained in:
@@ -1,5 +1,24 @@
|
||||
# Change Log for SD.Next
|
||||
|
||||
## TODO for Dev merge
|
||||
|
||||
BLOCKERS:
|
||||
- pending docs
|
||||
|
||||
OPTIONAL:
|
||||
- pending `diffusers==0.26.0`
|
||||
- animatediff `enable_free_init` [pr](https://github.com/huggingface/diffusers/pull/6315)
|
||||
- pipeline `diffusers_sag_scale` [pr](https://github.com/huggingface/diffusers/issues/6443)
|
||||
- wuerstchen v3 [pr](https://github.com/huggingface/diffusers/pull/6487)
|
||||
- adetailer [fix](https://github.com/Bing-su/adetailer/issues/466)
|
||||
- rebasin [issue](https://github.com/vladmandic/automatic/issues/2608)
|
||||
- control api
|
||||
- photomaker api
|
||||
- interrogate api
|
||||
- remb api
|
||||
- masking api
|
||||
- preprocess api
|
||||
|
||||
## Update for 2023-01-17
|
||||
|
||||
Another big release, highlights being:
|
||||
|
||||
@@ -132,7 +132,6 @@ async function filterExtraNetworksForTab(searchTerm) {
|
||||
elem.style.display = '';
|
||||
});
|
||||
} else {
|
||||
|
||||
// Do not account for case or whitespace
|
||||
searchTerm = searchTerm.toLowerCase().trim();
|
||||
|
||||
@@ -148,7 +147,7 @@ async function filterExtraNetworksForTab(searchTerm) {
|
||||
cards.forEach((elem) => {
|
||||
// Construct the search text, which is the concatenation of all data elements with a prefix to make it unique
|
||||
// This combined text allows to exclude search terms for example by using negative lookahead
|
||||
if (re.test(`filename: ${elem.dataset.filename}|name: ${elem.dataset.name}|title: ${elem.dataset.title}|tags: ${elem.dataset.tags}`)) {
|
||||
if (re.test(`${elem.dataset.filename}|${elem.dataset.name}|${elem.dataset.tags}`)) {
|
||||
elem.style.display = '';
|
||||
found += 1;
|
||||
} else {
|
||||
@@ -160,38 +159,31 @@ async function filterExtraNetworksForTab(searchTerm) {
|
||||
// Keywords are separated by |, and keywords that should be excluded are prefixed with -
|
||||
const searchList = searchTerm.split('|').filter((s) => s !== '' && !s.startsWith('-')).map((s) => s.trim());
|
||||
const excludeList = searchTerm.split('|').filter((s) => s !== '' && s.trim().startsWith('-')).map((s) => s.trim().substring(1).trim());
|
||||
|
||||
// In addition, both the searchList, and exclude List can be separated by &, which means that all keywords in the searchList must be present, and none of the excludeList
|
||||
// In addition, both the searchList, and exclude List can be separated by &, which means that all keywords in the searchList must be present, and none of the excludeList
|
||||
// So we construct an array of arrays, which we will then use to filter the cards
|
||||
const searchListAll = searchList.map((s) => s.split('&').map((s) => s.trim()));
|
||||
const excludeListAll = excludeList.map((s) => s.split('&').map((s) => s.trim()));
|
||||
const searchListAll = searchList.map((s) => s.split('&').map((t) => t.trim()));
|
||||
const excludeListAll = excludeList.map((s) => s.split('&').map((t) => t.trim()));
|
||||
|
||||
cards.forEach((elem) => {
|
||||
let text = '';
|
||||
if (elem.dataset.filename) text += `${elem.dataset.filename} `;
|
||||
if (elem.dataset.name) text += `${elem.dataset.name} `;
|
||||
if (elem.dataset.title) text += `${elem.dataset.title} `;
|
||||
if (elem.dataset.tags) text += `${elem.dataset.tags} `;
|
||||
if (elem.dataset.filename) text += `filename:${elem.dataset.filename} `;
|
||||
if (elem.dataset.name) text += `name:${elem.dataset.name} `;
|
||||
if (elem.dataset.tags) text += `tags:${elem.dataset.tags} `;
|
||||
text = text.toLowerCase().replace('models--', 'diffusers').replaceAll('\\', '/');
|
||||
|
||||
if (
|
||||
// In searchListAll we have a list of lists, in the sublist, every keyword must be present
|
||||
// In the top level list, at least one sublist must be present
|
||||
searchListAll.some((searchList) => searchList.every((searchTerm) => text.includes(searchTerm)))
|
||||
&&
|
||||
// In excludeListAll we have a list of lists, in the sublist, the keywords may not appear together
|
||||
// In the top level list, none of the sublists must be present
|
||||
!excludeListAll.some((excludeList) => excludeList.every((excludeTerm) => text.includes(excludeTerm)))
|
||||
searchListAll.some((sl) => sl.every((st) => text.includes(st))) && !excludeListAll.some((el) => el.every((et) => text.includes(et)))
|
||||
) {
|
||||
elem.style.display = '';
|
||||
found += 1;
|
||||
} else {
|
||||
elem.style.display = 'none';
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
const t1 = performance.now();
|
||||
|
||||
+2
-2
@@ -54,10 +54,10 @@ requests==2.31.0
|
||||
tqdm==4.66.1
|
||||
accelerate==0.26.1
|
||||
opencv-contrib-python-headless==4.8.1.78
|
||||
diffusers==0.25.0
|
||||
diffusers==0.25.1
|
||||
einops==0.4.1
|
||||
gradio==3.43.2
|
||||
huggingface_hub==0.20.1
|
||||
huggingface_hub==0.20.2
|
||||
numexpr==2.8.4
|
||||
numpy==1.26.2
|
||||
numba==0.58.1
|
||||
|
||||
@@ -171,6 +171,8 @@ class Script(scripts.Script):
|
||||
shared.sd_model.load_lora_weights(lora, adapter_name=lora)
|
||||
shared.sd_model.set_adapters([lora], adapter_weights=[strength])
|
||||
p.extra_generation_params['AnimateDiff Lora'] = f'{lora}:{strength}'
|
||||
if hasattr(shared.sd_model, 'enable_free_init'):
|
||||
shared.sd_model.enable_free_init(num_iters=3, use_fast_sampling=False, method="butterworth", order=4, spatial_stop_frequency=0.25, temporal_stop_frequency=0.25)
|
||||
p.extra_generation_params['AnimateDiff'] = loaded_adapter
|
||||
p.do_not_save_grid = True
|
||||
if 'animatediff' not in p.ops:
|
||||
|
||||
Reference in New Issue
Block a user