102 lines
3.7 KiB
JavaScript
102 lines
3.7 KiB
JavaScript
const settings_tab = require('./settings')
|
|
const sdapi = require('../../sdapi_py_re')
|
|
const thumbnail = require('../../thumbnail')
|
|
|
|
//REFACTORED: moved to history_tab.js
|
|
function getHistoryMetadata(img) {
|
|
//auto fill the ui with metadata
|
|
const metadata_json = JSON.parse(img.dataset.metadata_json_string)
|
|
console.log('metadata_json: ', metadata_json)
|
|
// document.querySelector('#tiSeed').value = metadata_json.Seed
|
|
|
|
//extract auto_metadata into the preset metadata
|
|
function convertAutoMetadataToPresset(metadata_json) {
|
|
metadata_json['seed'] = metadata_json?.auto_metadata?.Seed
|
|
}
|
|
convertAutoMetadataToPresset(metadata_json)
|
|
|
|
const b_use_original_prompt = settings_tab.getUseOriginalPrompt()
|
|
if (b_use_original_prompt) {
|
|
metadata_json['prompt'] = metadata_json?.original_prompt
|
|
? metadata_json['original_prompt']
|
|
: metadata_json['prompt']
|
|
|
|
metadata_json['negative_prompt'] =
|
|
metadata_json?.original_negative_prompt
|
|
? metadata_json['original_negative_prompt']
|
|
: metadata_json['negative_prompt']
|
|
}
|
|
document.querySelector('#historySeedLabel').textContent =
|
|
metadata_json?.seed
|
|
|
|
g_ui_settings_object.autoFillInSettings(metadata_json)
|
|
}
|
|
|
|
document
|
|
.getElementById('btnLoadHistory')
|
|
.addEventListener('click', async function () {
|
|
try {
|
|
const output_dir_relative = './server/python_server/'
|
|
const container = document.getElementById(
|
|
'divHistoryImagesContainer'
|
|
)
|
|
const uniqueDocumentId = await getUniqueDocumentId()
|
|
const [image_paths, metadata_jsons, base64_images] =
|
|
await sdapi.loadHistory(uniqueDocumentId)
|
|
|
|
while (container.firstChild) {
|
|
container.removeChild(container.firstChild)
|
|
}
|
|
|
|
const length = image_paths.length
|
|
// let i = length -1
|
|
|
|
// for (image_path of image_paths) {
|
|
for (let i = length - 1; i >= 0; --i) {
|
|
const img = document.createElement('img')
|
|
// img.src = `${output_dir_relative}/${image_path}`
|
|
const image_src = `data:image/png;base64, ${base64_images[i]}`
|
|
img.src = image_src
|
|
|
|
img.dataset.path = `${output_dir_relative}/${image_paths[i]}`
|
|
img.className = 'history-image'
|
|
img.dataset.metadata_json_string = JSON.stringify(
|
|
metadata_jsons[i]
|
|
)
|
|
console.log(`metadata_jsons[${i}]: `, metadata_jsons[i])
|
|
|
|
const img_container = thumbnail.Thumbnail.wrapImgInContainer(
|
|
img,
|
|
'viewer-image-container'
|
|
)
|
|
thumbnail.Thumbnail.addSPButtonToContainer(
|
|
img_container,
|
|
'svg_sp_btn',
|
|
'copy metadata to settings',
|
|
history_tab.getHistoryMetadata,
|
|
img
|
|
)
|
|
thumbnail.Thumbnail.addSPButtonToContainer(
|
|
img_container,
|
|
'svg_sp_btn_datadownload',
|
|
'place the image on the canvas',
|
|
moveHistoryImageToLayer,
|
|
img
|
|
)
|
|
container.appendChild(img_container)
|
|
// i++
|
|
}
|
|
} catch (e) {
|
|
console.warn(`loadHistory warning: ${e}`)
|
|
}
|
|
})
|
|
document
|
|
.getElementById('btnClearHistoryCache')
|
|
.addEventListener('click', () => {
|
|
const container = document.getElementById('divHistoryImagesContainer')
|
|
container.innerHTML = ''
|
|
})
|
|
module.exports = {
|
|
getHistoryMetadata,
|
|
}
|