mirror of
https://github.com/vladmandic/automatic
synced 2026-09-18 16:54:33 +02:00
update version
This commit is contained in:
+19
-10
@@ -57,32 +57,41 @@ async def models(params):
|
||||
excluded.append(m)
|
||||
ok = False
|
||||
break
|
||||
if len(params.input) > 0: # check if model is included in cmd line
|
||||
found = m if m in params.input else None
|
||||
if found is None:
|
||||
found = [i for i in params.input if m.startswith(i)]
|
||||
if len(found) == 0:
|
||||
ok = False
|
||||
break
|
||||
if ok:
|
||||
short = m.split(' [')[0]
|
||||
short = short.replace('.ckpt', '').replace('.safetensors', '')
|
||||
models.append(short)
|
||||
if len(params.input) > 0: # check if model is included in cmd line
|
||||
filtered = []
|
||||
for m in params.input:
|
||||
if m in models:
|
||||
filtered.append(m)
|
||||
else:
|
||||
log.error({ 'model not found': m })
|
||||
return
|
||||
models = filtered
|
||||
log.info({ 'models preview' })
|
||||
log.info({ 'models': len(models), 'excluded': len(excluded) })
|
||||
log.info({ 'embeddings': embeddings })
|
||||
cmdflags = await get('/sdapi/v1/cmd-flags')
|
||||
opt = await get('/sdapi/v1/options')
|
||||
if params.output != '':
|
||||
dir = params.output
|
||||
else:
|
||||
dir = os.path.abspath(os.path.join(cmdflags['hypernetwork_dir'], '..', 'Stable-diffusion'))
|
||||
log.info({ 'output directory': dir })
|
||||
log.info({ 'total jobs': len(models) * len(embeddings) * options.generate.batch_size, 'per-model': len(embeddings) * options.generate.batch_size })
|
||||
log.info(json.dumps(options, indent=2))
|
||||
|
||||
for model in models:
|
||||
fn = os.path.join(params.output, model + '.jpg')
|
||||
fn = os.path.join(dir, model + '.png')
|
||||
if os.path.exists(fn) and len(params.input) == 0: # if model preview exists and not manually included
|
||||
log.info({ 'model preview exists': model })
|
||||
continue
|
||||
log.info({ 'model load': model })
|
||||
opt = await get('/sdapi/v1/options')
|
||||
|
||||
opt['sd_model_checkpoint'] = model
|
||||
await post('/sdapi/v1/options', opt)
|
||||
opt = await get('/sdapi/v1/options')
|
||||
images = []
|
||||
labels = []
|
||||
t0 = time.time()
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@
|
||||
"training_enable_tensorboard": false,
|
||||
"training_tensorboard_save_images": false,
|
||||
"training_tensorboard_flush_every": 120,
|
||||
"sd_model_checkpoint": "sd-v15-runwayml.ckpt [cc6cb27103]",
|
||||
"sd_model_checkpoint": "zeipher-f222.ckpt [9e2c6ceff3]",
|
||||
"sd_checkpoint_cache": 0,
|
||||
"sd_vae_checkpoint_cache": 0,
|
||||
"sd_vae": "vae-ft-mse-840000-ema-pruned.ckpt",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class='actions'>
|
||||
<div class='additional'>
|
||||
<ul>
|
||||
<a href="#" title="replace preview image with currently selected in gallery" onclick={save_card_preview}>replace preview</a>
|
||||
<a style="font-size:0.5rem" href="#" title="replace preview image with currently selected in gallery" onclick={save_card_preview}>replace preview</a>
|
||||
</ul>
|
||||
<span style="display:none" class='search_term'>{search_term}</span>
|
||||
</div>
|
||||
|
||||
@@ -282,7 +282,7 @@ def write_loss(log_directory, filename, step, epoch_len, values):
|
||||
if shared.opts.training_write_csv_every == 0:
|
||||
return
|
||||
|
||||
if step % shared.opts.training_write_csv_every != 0:
|
||||
if step % epoch_len != 0:
|
||||
return
|
||||
write_csv_header = False if os.path.exists(os.path.join(log_directory, filename)) else True
|
||||
|
||||
@@ -364,7 +364,7 @@ def train_embedding(id_task, embedding_name, learn_rate, batch_size, gradient_st
|
||||
|
||||
filename = os.path.join(shared.cmd_opts.embeddings_dir, f'{embedding_name}.pt')
|
||||
|
||||
log_directory = os.path.join(log_directory, datetime.datetime.now().strftime("%Y-%m-%d"), embedding_name)
|
||||
log_directory = os.path.join(log_directory, embedding_name)
|
||||
unload = shared.opts.unload_models_when_training
|
||||
|
||||
if save_embedding_every > 0:
|
||||
@@ -514,9 +514,8 @@ def train_embedding(id_task, embedding_name, learn_rate, batch_size, gradient_st
|
||||
steps_done = embedding.step + 1
|
||||
|
||||
epoch_num = embedding.step // steps_per_epoch
|
||||
epoch_step = embedding.step % steps_per_epoch
|
||||
|
||||
description = f"Training textual inversion [Epoch {epoch_num}: {epoch_step+1}/{steps_per_epoch}] loss: {loss_step:.7f}"
|
||||
description = f"Training textual inversion step {embedding.step} loss: {loss_step:.5f} lr: {scheduler.learn_rate:.5f}"
|
||||
pbar.set_description(description)
|
||||
if embedding_dir is not None and steps_done % save_embedding_every == 0:
|
||||
# Before saving, change name to match current checkpoint.
|
||||
@@ -525,7 +524,7 @@ def train_embedding(id_task, embedding_name, learn_rate, batch_size, gradient_st
|
||||
save_embedding(embedding, optimizer, checkpoint, embedding_name_every, last_saved_file, remove_cached_checksum=True)
|
||||
embedding_yet_to_be_embedded = True
|
||||
|
||||
write_loss(log_directory, "textual_inversion_loss.csv", embedding.step, steps_per_epoch, {
|
||||
write_loss(log_directory, "train.csv", embedding.step, steps_per_epoch, {
|
||||
"loss": f"{loss_step:.7f}",
|
||||
"learn_rate": scheduler.learn_rate
|
||||
})
|
||||
|
||||
@@ -17,56 +17,59 @@ div.gradio-container.dark > div.w-full.flex.flex-col.min-h-screen > div { backgr
|
||||
.gradio-container { font-family: "Segoe UI"; font-variant: small-caps; --left-column: 540px; --highlight-color: #CE6400; --inactive-color: #4E1400; }
|
||||
|
||||
/* gradio style classes */
|
||||
.tabs { background-color: black; }
|
||||
.dark { background-color: black; }
|
||||
.dark .gr-panel { border-radius: 0; background-color: black; }
|
||||
.dark .gr-compact { border-radius: 0; background-color: black; }
|
||||
.dark .gr-input-label { color: lightyellow; border-width: 0; background: transparent; padding: 2px !important; }
|
||||
.dark .gr-input { background-color: #333333 !important; }
|
||||
.dark .gr-form { border-radius: 0; border-width: 0; }
|
||||
.dark .gr-check-radio { background-color: var(--inactive-color); border-width: 0; border-radius: 2px; box-shadow: 2px 2px 3px #111111; }
|
||||
.dark .gr-check-radio:checked { background-color: var(--highlight-color); }
|
||||
.dark .gr-button { border-radius: 0; font-weight: normal; box-shadow: 2px 2px 3px #111111; font-size: 0.9rem; min-width: 42px; min-height: 42px; }
|
||||
.dark .gr-box { border-radius: 0 !important; background-color: #111111; box-shadow: 2px 2px 3px #111111; border-width: 0; padding-bottom: 12px; }
|
||||
.dark .dark\:bg-gray-900 { background-color: black; }
|
||||
.dark .bg-white { color: lightyellow; border-radius: 0; }
|
||||
.dark fieldset span.text-gray-500, .dark .gr-block.gr-box span.text-gray-500, .dark label.block span { background-color: #222222; padding: 0 12px 0 12px; }
|
||||
.dark .bg-gray-200, .dark .\!bg-gray-200 { background-color: transparent; }
|
||||
.gap-2 { padding-top: 8px; }
|
||||
.border-2 { border-width: 0; }
|
||||
.border-b-2 { border-bottom-width: 2px; border-color: var(--highlight-color) !important; padding-bottom: 2px; margin-bottom: 8px; }
|
||||
.dark .bg-gray-200, .dark .\!bg-gray-200 { background-color: transparent; }
|
||||
.dark .bg-white { color: lightyellow; border-radius: 0; }
|
||||
.dark .dark\:bg-gray-900 { background-color: black; }
|
||||
.dark .gr-box { border-radius: 0 !important; background-color: #111111; box-shadow: 2px 2px 3px #111111; border-width: 0; padding-bottom: 12px; }
|
||||
.dark .gr-button { border-radius: 0; font-weight: normal; box-shadow: 2px 2px 3px #111111; font-size: 0.9rem; min-width: 42px; min-height: 42px; }
|
||||
.dark .gr-check-radio { background-color: var(--inactive-color); border-width: 0; border-radius: 2px; box-shadow: 2px 2px 3px #111111; }
|
||||
.dark .gr-check-radio:checked { background-color: var(--highlight-color); }
|
||||
.dark .gr-compact { border-radius: 0; background-color: black; }
|
||||
.dark .gr-form { border-radius: 0; border-width: 0; }
|
||||
.dark .gr-input { background-color: #333333 !important; }
|
||||
.dark .gr-input-label { color: lightyellow; border-width: 0; background: transparent; padding: 2px !important; }
|
||||
.dark .gr-panel { border-radius: 0; background-color: black; }
|
||||
.dark { background-color: black; }
|
||||
.dark fieldset span.text-gray-500, .dark .gr-block.gr-box span.text-gray-500, .dark label.block span { background-color: #222222; padding: 0 12px 0 12px; }
|
||||
.dark fieldset span.text-gray-500, .dark .gr-block.gr-box span.text-gray-500, .dark label.block span { border-radius: 0;}
|
||||
.extra-network-cards .card { width: 10em; height: 10em; box-shadow: none; }
|
||||
.extra-network-cards .card:hover { transform: scale(2); transition: all 0.3s ease; z-index: 99; box-shadow: none; }
|
||||
.extra-network-cards .card .actions .name { font-weight: 400; font-size: 1.2rem; }
|
||||
.gap-2 { padding-top: 8px; }
|
||||
.gr-box > div > div > input.gr-text-input { right: 0.8rem; width: 6em; }
|
||||
.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; }
|
||||
.overflow-hidden .flex .flex-col .relative col .gap-4 { min-width: var(--left-column); max-width: var(--left-column); } /* this is a problematic one */
|
||||
.rounded-lg { border-radius: 0; }
|
||||
.p-2 { padding: 0; }
|
||||
.dark fieldset span.text-gray-500, .dark .gr-block.gr-box span.text-gray-500, .dark label.block span { border-radius: 0;}
|
||||
.gr-box > div > div > input.gr-text-input { right: 0.8rem; width: 6em; }
|
||||
.tabs { background-color: black; }
|
||||
|
||||
/* automatic style classes */
|
||||
.progressDiv .progress { background: var(--highlight-color); border-radius: 2px; }
|
||||
.gallery-item { box-shadow: none !important; }
|
||||
|
||||
/* gradio elements overrides */
|
||||
#txt2img_settings, #img2img_settings { min-width: var(--left-column); max-width: var(--left-column); background-color: #111111; margin-top: 1rem; }
|
||||
#txt2img_prompt > label > textarea { font-size: 1.2rem; }
|
||||
#txt2img_neg_prompt > label > textarea { font-size: 1.2rem; }
|
||||
#img2img_prompt > label > textarea { font-size: 1.2rem; }
|
||||
#footer { display: none; }
|
||||
#img2img_label_copy_to_img2img { font-weight: normal; }
|
||||
#img2img_neg_prompt > label > textarea { font-size: 1.2rem; }
|
||||
#img2img_prompt > label > textarea { font-size: 1.2rem; }
|
||||
#interrogate, #deepbooru { margin: 0em 0 0 0.25em; }
|
||||
#open_folder_txt2img, #open_folder_img2img, #open_folder_extras { display: none; }
|
||||
#refresh_txt2img_styles, #refresh_img2img_styles { display: none; }
|
||||
#save-animation { border-radius: 0 !important; margin-bottom: 16px; background-color: #111111; }
|
||||
#style_pos_col, #style_neg_col, #roll_col { display: none; }
|
||||
#tab_extensions table { background-color: #222222; }
|
||||
#txt2img_checkboxes, #img2img_checkboxes { background-color: transparent; }
|
||||
#txt2img_gallery, #img2img_gallery, #extras_gallery { background: black; }
|
||||
#txt2img_generate, #img2img_generate, #txt2img_interrupt, #img2img_interrupt, #txt2img_skip, #img2img_skip { margin-left: 10px; min-height: 2rem; height: 63px; max-width: 200px; }
|
||||
#txt2img_interrupt, #img2img_interrupt, #txt2img_skip, #img2img_skip { background-color: var(--inactive-color); }
|
||||
#txt2img_gallery, #img2img_gallery, #extras_gallery { background: black; }
|
||||
#tab_extensions table { background-color: #222222; }
|
||||
#style_pos_col, #style_neg_col, #roll_col { display: none; }
|
||||
#txt2img_neg_prompt > label > textarea { font-size: 1.2rem; }
|
||||
#txt2img_progress_row > div { min-width: var(--left-column); max-width: var(--left-column); }
|
||||
#save-animation { border-radius: 0 !important; margin-bottom: 16px; background-color: #111111; }
|
||||
#open_folder_txt2img, #open_folder_img2img, #open_folder_extras { display: none; }
|
||||
#footer { display: none; }
|
||||
#txt2img_prompt > label > textarea { font-size: 1.2rem; }
|
||||
#txt2img_results, #img2img_results, #extras_results { background-color: black; }
|
||||
#txt2img_seed_row { padding: 0; margin-top: 8px; }
|
||||
#txt2img_settings, #img2img_settings { min-width: var(--left-column); max-width: var(--left-column); background-color: #111111; margin-top: 1rem; }
|
||||
#txt2img_subseed_show { min-width: 74px; padding: 0 0 0 6px; }
|
||||
#txtimg_hr_finalres { max-width: 200px; }
|
||||
#refresh_txt2img_styles, #refresh_img2img_styles { display: none; }
|
||||
#img2img_label_copy_to_img2img { font-weight: normal; }
|
||||
#txt2img_results, #img2img_results, #extras_results { background-color: black; }
|
||||
#txt2img_checkboxes, #img2img_checkboxes { background-color: transparent; }
|
||||
#interrogate, #deepbooru { margin: 0em 0 0 0.25em; }
|
||||
@@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
####################################################################
|
||||
# macOS defaults #
|
||||
# Please modify webui-user.sh to change these instead of this file #
|
||||
####################################################################
|
||||
|
||||
if [[ -x "$(command -v python3.10)" ]]
|
||||
then
|
||||
python_cmd="python3.10"
|
||||
fi
|
||||
|
||||
export install_dir="$HOME"
|
||||
export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu interrogate"
|
||||
export TORCH_COMMAND="pip install torch==1.12.1 torchvision==0.13.1"
|
||||
export K_DIFFUSION_REPO="https://github.com/brkirch/k-diffusion.git"
|
||||
export K_DIFFUSION_COMMIT_HASH="51c9778f269cedb55a4d88c79c0246d35bdadb71"
|
||||
export PYTORCH_ENABLE_MPS_FALLBACK=1
|
||||
|
||||
####################################################################
|
||||
Reference in New Issue
Block a user