diff --git a/html_manip.js b/html_manip.js
index 318fdc0..aae75c9 100644
--- a/html_manip.js
+++ b/html_manip.js
@@ -192,6 +192,40 @@ function autoFillInSampler(sampler_name){
}
////// End Samplers//////////
+////// Start Models//////////
+
+
+function getModelElementByHash(model_hash){
+ try{
+
+ //assume the model_hash is valid
+ //return the first model menu item element with model_hash
+ const model_element = [...document.getElementsByClassName('mModelMenuItem')].filter(e => e.dataset.model_hash == model_hash)[0]
+ return model_element
+ }catch(e){
+ console.warn(`Model '${model_hash}' not found ${e}`)
+ }
+}
+function getSelectedModelHash(){
+ //return the hash of the first selected model menu item
+ return [...document.getElementsByClassName('mModelMenuItem')].filter(e => e.selected == true)[0].dataset.model_hash
+}
+
+function selectModelUi(model_hash){
+
+ model_element = getModelElementByHash(model_hash)
+ model_element.selected = true
+}
+function autoFillInModel(model_hash){
+ // unCheckAllSamplers()
+ model_element = getModelElementByHash(model_hash)
+ selectModelUi(model_hash)
+ // model_element.
+ const model_title = model_element.dataset.model_title
+ return model_title
+}
+////// End Models//////////
+
module.exports = {
getPrompt,
autoFillInPrompt,
@@ -209,6 +243,7 @@ module.exports = {
setHiResFixs,
autoFillInSliderUi,
getCheckedSamplerName,
- autoFillInSampler
+ autoFillInSampler,
+ autoFillInModel
}
\ No newline at end of file
diff --git a/index.js b/index.js
index b7528d9..b459cde 100644
--- a/index.js
+++ b/index.js
@@ -180,6 +180,8 @@ async function refreshUI(){
await refreshModels()
await updateVersionUI()
}
+
+
async function refreshModels () {
try{
@@ -191,7 +193,10 @@ async function refreshModels () {
for (let model of g_models) {
console.log(model.title)
const menu_item_element = document.createElement('sp-menu-item')
+ menu_item_element.className = "mModelMenuItem"
menu_item_element.innerHTML = model.title
+ menu_item_element.dataset.model_hash = model.hash
+ menu_item_element.dataset.model_title = model.title
document.getElementById('mModelsMenu').appendChild(menu_item_element)
}
}catch(e){
@@ -308,6 +313,8 @@ function autoFillInSettings(metadata_json){
// = metadata_json['Denoising strength']
html_manip.autoFillInDenoisingStrength(metadata_json['Denoising strength'])
+ model_title = html_manip.autoFillInModel(metadata_json["Model hash"])
+ sdapi.requestSwapModel(model_title)
const [width,height] = metadata_json['Size'].split('x')
console.log("width, height: ",width, height)