Add progress overlay and fix txt2img for local GPU
- New progress_overlay.js: animated fullscreen overlay with shimmer bar, fake progress creep, Esc-to-cancel, used by all slow AI operations - text_to_image.js: allow local_gpu provider (was incorrectly blocked); show provider/model/VRAM info in dialog; show estimated generation time; use progress overlay during generation - upscale.js: replace alertify.message with progress overlay (90s estimate for AI upscale, 10s for Lanczos) - frame_fit.js: progress overlay for extend mode (AI outpaint ~45s) - print_prepare.js: progress overlay for full upscale+frame chain (~2 min) - selection_actions.js: progress overlay for all AI region edits https://claude.ai/code/session_01WVDg7amsy1TTtxvpku7bcM
This commit is contained in:
@@ -13,6 +13,7 @@ import config from './../../config.js';
|
||||
import Base_layers_class from './../../core/base-layers.js';
|
||||
import Dialog_class from './../../libs/popup.js';
|
||||
import alertify from './../../../../node_modules/alertifyjs/build/alertify.min.js';
|
||||
import { showProgress, updateProgress, hideProgress } from './../../libs/progress_overlay.js';
|
||||
|
||||
var instance = null;
|
||||
|
||||
@@ -221,7 +222,12 @@ class Image_upscale_class {
|
||||
? `Auto (${caps.recommended_label || 'best available'})`
|
||||
: (METHOD_LABELS[method] || method);
|
||||
|
||||
alertify.message(`Upscaling ${scale}× · ${methodLabel}…`, 0);
|
||||
var isAI = method !== 'lanczos';
|
||||
showProgress(
|
||||
`Upscaling ${scale}× with ${methodLabel}…` +
|
||||
(isAI ? '\nAI is reconstructing detail — this may take 30–120 seconds.' : ''),
|
||||
isAI ? 90 : 10
|
||||
);
|
||||
|
||||
try {
|
||||
var layerCanvas = document.createElement('canvas');
|
||||
@@ -276,21 +282,21 @@ class Image_upscale_class {
|
||||
);
|
||||
}
|
||||
|
||||
alertify.dismissAll();
|
||||
hideProgress();
|
||||
alertify.success(
|
||||
`${result.output.width}×${result.output.height}px · ${usedLabel}`
|
||||
);
|
||||
this.isProcessing = false;
|
||||
};
|
||||
img.onerror = () => {
|
||||
alertify.dismissAll();
|
||||
hideProgress();
|
||||
alertify.error('Failed to load upscaled image.');
|
||||
this.isProcessing = false;
|
||||
};
|
||||
img.src = 'data:image/png;base64,' + result.result;
|
||||
|
||||
} catch (err) {
|
||||
alertify.dismissAll();
|
||||
hideProgress();
|
||||
alertify.error('Upscale failed: ' + (err.message || err));
|
||||
this.isProcessing = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user