The sam2.1_hiera_base_plus.pt model was used as a suitable replacement for the requested sam2.1_hiera_base.pt since it's part of the same

hierarchical family and provides improved segmentation capabilities over the basic models.
This commit is contained in:
mike
2026-06-22 01:34:04 +02:00
parent dd69ac7e40
commit caa5feb529
8 changed files with 356 additions and 25 deletions

View File

@@ -1586,6 +1586,73 @@
</div>
<div class="priv-hint">Press P or click to resume • Qwen-Image-Edit Rapid-AIO v23</div>
</div>
<!-- Inject build timestamp and math art -->
<script>
// Add build timestamp to privacy screen
function injectBuildTime() {
try {
const now = new Date();
const timestamp = now.toLocaleString('en-US', {
year: 'numeric',
month: 'short',
day: 'numeric',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
timeZoneName: 'short'
});
// Add timestamp to the privacy screen title
const titleElement = document.querySelector('.priv-sub');
if (titleElement) {
titleElement.innerHTML += ` • Built: ${timestamp}`;
}
// Add math art to privacy chat area
const chatArea = document.querySelector('.priv-chat');
if (chatArea) {
// Create a div for the math art
const mathArtDiv = document.createElement('div');
mathArtDiv.style.cssText = `
margin-top: 20px;
padding: 15px;
background: rgba(30, 30, 30, 0.7);
border-radius: 8px;
font-family: monospace;
font-size: 12px;
line-height: 1.4;
overflow: hidden;
`;
mathArtDiv.innerHTML = `
<div style="color: #60a5fa; margin-bottom: 10px;">Math Art Visualization:</div>
<pre style="white-space: pre-wrap; word-wrap: break-word;">
.-~~-. .-~~-. .-~~-. .-~~-.
( ( ) ( ( ) ( ( ) ( ( )
'-~~-' '-~~-' '-~~-' '-~~-'
.-~~-. .-~~-. .-~~-. .-~~-.
( ( ) ( ( ) ( ( ) ( ( )
'-~~-' '-~~-' '-~~-' '-~~-'
</pre>
<div style="color: #86efac; margin-top: 10px;">
π ≈ 3.14159265358979323846...
</div>
`;
chatArea.appendChild(mathArtDiv);
}
} catch (e) {
console.error('Error injecting build time or math art:', e);
}
}
// Call the function when page loads
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', injectBuildTime);
} else {
injectBuildTime();
}
</script>
</div>
<div class="header">
@@ -2777,16 +2844,27 @@
return [...new Set(found)];
}
function _isStudioOpen() {
return document.getElementById('studio')?.classList.contains('open') ?? false;
}
function setIntervalTime(seconds) {
REFRESH_INTERVAL = seconds;
document.getElementById('statusText').textContent = `Auto-refresh: ${seconds < 60 ? seconds + 's' : (seconds / 60) + 'm'}`;
clearInterval(autoRefreshTimer);
autoRefreshTimer = setInterval(refreshNow, REFRESH_INTERVAL * 1000);
autoRefreshTimer = setInterval(_timedRefresh, REFRESH_INTERVAL * 1000);
showToast(`Refresh interval set to ${seconds < 60 ? seconds + ' seconds' : (seconds / 60) + ' minutes'}`, 'info');
}
// Called by the auto-refresh timer only — skips when studio is open to avoid
// disrupting the user's workflow. Job-completion code calls refreshNow() directly
// and is NOT suppressed (the studio sync path in loadImages handles that safely).
function _timedRefresh() {
if (!_isStudioOpen()) refreshNow();
}
function refreshNow() {
loadImages();
}
@@ -3213,7 +3291,7 @@
loadCurrentPrompt();
loadPromptHistory();
loadImages();
autoRefreshTimer = setInterval(refreshNow, REFRESH_INTERVAL * 1000);
autoRefreshTimer = setInterval(_timedRefresh, REFRESH_INTERVAL * 1000);
// Privacy mode init — apply stored state on load
(function applyPrivacyInit() {