MCPcopy Index your code
hub / github.com/easydiffusion/easydiffusion / initMergeUI

Function initMergeUI

ui/plugins/ui/model-tools.plugin.js:476–608  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

474 }
475
476 function initMergeUI() {
477 const tabSettingsSingle = document.querySelector("#tab-merge-opts-single")
478 const tabSettingsBatch = document.querySelector("#tab-merge-opts-batch")
479 linkTabContents(tabSettingsSingle)
480 linkTabContents(tabSettingsBatch)
481
482 let mergeModelAField = new ModelDropdown(document.querySelector("#mergeModelA"), "stable-diffusion")
483 let mergeModelBField = new ModelDropdown(document.querySelector("#mergeModelB"), "stable-diffusion")
484 updateChart()
485
486 // slider
487 const singleMergeRatioField = document.querySelector("#single-merge-ratio")
488 const singleMergeRatioSlider = document.querySelector("#single-merge-ratio-slider")
489
490 function updateSingleMergeRatio() {
491 singleMergeRatioField.value = singleMergeRatioSlider.value / 10
492 singleMergeRatioField.dispatchEvent(new Event("change"))
493 }
494
495 function updateSingleMergeRatioSlider() {
496 if (singleMergeRatioField.value < 0) {
497 singleMergeRatioField.value = 0
498 } else if (singleMergeRatioField.value > 100) {
499 singleMergeRatioField.value = 100
500 }
501
502 singleMergeRatioSlider.value = singleMergeRatioField.value * 10
503 singleMergeRatioSlider.dispatchEvent(new Event("change"))
504 }
505
506 singleMergeRatioSlider.addEventListener("input", updateSingleMergeRatio)
507 singleMergeRatioField.addEventListener("input", updateSingleMergeRatioSlider)
508 updateSingleMergeRatio()
509
510 document.querySelector(".merge-config").addEventListener("change", updateChart)
511
512 document.querySelector("#merge-button").addEventListener("click", async function (e) {
513 // Build request template
514 let model0 = mergeModelAField.value
515 let model1 = mergeModelBField.value
516 let request = { model0: model0, model1: model1 }
517 request["use_fp16"] = document.querySelector("#merge-fp").value == "fp16"
518 let iterations = document.querySelector("#merge-count").value >> 0
519 let start = parseFloat(document.querySelector("#merge-start").value)
520 let step = parseFloat(document.querySelector("#merge-step").value)
521
522 if (isTabActive(tabSettingsSingle)) {
523 start = parseFloat(singleMergeRatioField.value)
524 step = 0
525 iterations = 1
526 addLogMessage(`merge ratio = ${start}%`)
527 } else {
528 addLogMessage(`start = ${start}%`)
529 addLogMessage(`step = ${step}%`)
530 }
531
532 if (start + (iterations - 1) * step >= 100) {
533 addLogMessage("<i>Aborting: maximum ratio is &#8805; 100%</i>")

Callers 1

Calls 14

linkTabContentsFunction · 0.85
updateChartFunction · 0.85
updateSingleMergeRatioFunction · 0.85
isTabActiveFunction · 0.85
addLogMessageFunction · 0.85
addLogSeparatorFunction · 0.85
smoothstepFunction · 0.85
smootherstepFunction · 0.85
smootheststepFunction · 0.85
$Function · 0.50
getModelsFunction · 0.50
addEventListenerMethod · 0.45

Tested by

no test coverage detected