diff --git a/ui/media/css/main.css b/ui/media/css/main.css
index b6aa8c8b..b1517a26 100644
--- a/ui/media/css/main.css
+++ b/ui/media/css/main.css
@@ -64,9 +64,6 @@ label {
font-size: small;
padding-bottom: 3pt;
}
-#progressBar {
- font-size: small;
-}
#footer {
font-size: small;
padding-left: 10pt;
@@ -132,6 +129,9 @@ label {
#preview {
padding: 5px;
}
+#preview .collapsible-content {
+ padding: 0px 15px;
+}
#editor-inputs {
margin-bottom: 20px;
}
@@ -641,3 +641,40 @@ input::file-selector-button {
:hover > .simple-tooltip.bottom {
transform: translate(-50%, 100%);
}
+.progress-bar {
+ background: var(--background-color3);
+ border-radius: 4px;
+ border: 2px solid var(--background-color3);
+ height: 16px;
+ position: relative;
+ transition: 0.25s 1s border, 0.25s 1s height;
+}
+.progress-bar > div {
+ background: var(--accent-color);
+ border-radius: 4px;
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ width: 0%;
+ transition: width 1s ease-in-out;
+}
+/* animated progress-bar */
+.progress-bar.active {
+ background: repeating-linear-gradient(-65deg,
+ var(--background-color2),
+ var(--background-color2) 4px,
+ var(--background-color3) 5px,
+ var(--background-color3) 9px,
+ var(--background-color2) 10px);
+ background-size: 200% auto;
+ background-position: 0 100%;
+ animation: progress-anim 2s infinite;
+ animation-fill-mode: forwards;
+ animation-timing-function: linear;
+}
+
+@keyframes progress-anim {
+ 0% { background-position: -55px 0; }
+ 100% { background-position: 0 0; }
+}
\ No newline at end of file
diff --git a/ui/media/js/main.js b/ui/media/js/main.js
index 3c5f27dc..87a688b8 100644
--- a/ui/media/js/main.js
+++ b/ui/media/js/main.js
@@ -68,7 +68,6 @@ let imagePreview = document.querySelector("#preview")
let showConfigToggle = document.querySelector('#configToggleBtn')
// let configBox = document.querySelector('#config')
// let outputMsg = document.querySelector('#outputMsg')
-// let progressBar = document.querySelector("#progressBar")
let soundToggle = document.querySelector('#sound_toggle')
@@ -422,6 +421,7 @@ async function doMakeImage(task) {
const outputMsg = task['outputMsg']
const previewPrompt = task['previewPrompt']
const progressBar = task['progressBar']
+ const progressBarInner = progressBar.querySelector("div")
let res = undefined
try {
@@ -561,6 +561,13 @@ async function doMakeImage(task) {
outputMsg.innerHTML += `. Time remaining (approx): ${timeRemaining}`
outputMsg.style.display = 'block'
+ progressBarInner.style.width = `${percent}%`
+ if (percent == 100) {
+ task.progressBar.style.height = "0px"
+ task.progressBar.style.border = "0px solid var(--background-color3)"
+ task['progressBar'].classList.remove("active")
+ }
+
if (stepUpdate.output !== undefined) {
showImages(reqBody, stepUpdate, outputContainer, true)
}
@@ -620,7 +627,6 @@ async function doMakeImage(task) {
let msg = `Unexpected Read Error:
Response: ${res}` logError(msg, res, outputMsg) } - progressBar.style.display = 'none' return false } @@ -630,7 +636,6 @@ async function doMakeImage(task) { console.log('request error', e) logError('Stable Diffusion had an error. Please check the logs in the command-line window.
StepUpdate: ${typeof stepUpdate === 'object' ? JSON.stringify(stepUpdate, undefined, 4) : stepUpdate}
' + e.stack + '', res, outputMsg) setStatus('request', 'error', 'error') - progressBar.style.display = 'none' return false } return true @@ -835,7 +840,7 @@ function createTask(task) {