Update app.py
Browse files
app.py
CHANGED
@@ -839,7 +839,29 @@ const warmupLogs = document.getElementById('warmup-logs');
|
|
839 |
const warmupCloseBtn = document.getElementById('warmupCloseBtn');
|
840 |
|
841 |
// Helpers popup
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
842 |
function openWarmupPopup(){ if(warmupPopup) warmupPopup.style.display = 'block'; }
|
|
|
843 |
function closeWarmupPopup(){ if(warmupPopup) warmupPopup.style.display = 'none'; }
|
844 |
if (warmupCloseBtn) warmupCloseBtn.addEventListener('click', closeWarmupPopup);
|
845 |
|
@@ -879,21 +901,51 @@ async function refreshWarmupUI(){
|
|
879 |
// Boutons
|
880 |
if (warmupStartBtn){
|
881 |
warmupStartBtn.addEventListener('click', async ()=>{
|
882 |
-
|
883 |
-
|
884 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
885 |
if (txt && txt.trim()){
|
886 |
-
|
|
|
|
|
|
|
887 |
}
|
|
|
888 |
try{
|
889 |
-
const r = await fetch('/warmup/start',
|
890 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
891 |
openWarmupPopup();
|
892 |
await refreshWarmupUI();
|
893 |
if (!warmupTimer) warmupTimer = setInterval(refreshWarmupUI, 1000);
|
894 |
-
}catch(e){
|
|
|
|
|
895 |
});
|
896 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
897 |
if (warmupLogsBtn){
|
898 |
warmupLogsBtn.addEventListener('click', async ()=>{
|
899 |
openWarmupPopup();
|
|
|
839 |
const warmupCloseBtn = document.getElementById('warmupCloseBtn');
|
840 |
|
841 |
// Helpers popup
|
842 |
+
|
843 |
+
|
844 |
+
|
845 |
+
|
846 |
+
|
847 |
+
// >>> A2B2P3_BEGIN warmup_defaults
|
848 |
+
// Modèles par défaut si l’utilisateur laisse la saisie vide.
|
849 |
+
// (Liste “safe” validée chez toi ; on pourra l’étendre plus tard.)
|
850 |
+
const DEFAULT_MODELS = [
|
851 |
+
"runwayml/stable-diffusion-v1-5",
|
852 |
+
"facebook/sam-vit-base",
|
853 |
+
"stabilityai/sd-vae-ft-mse"
|
854 |
+
];
|
855 |
+
// >>> A2B2P3_END warmup_defaults
|
856 |
+
|
857 |
+
|
858 |
+
|
859 |
+
|
860 |
+
|
861 |
+
|
862 |
+
|
863 |
function openWarmupPopup(){ if(warmupPopup) warmupPopup.style.display = 'block'; }
|
864 |
+
|
865 |
function closeWarmupPopup(){ if(warmupPopup) warmupPopup.style.display = 'none'; }
|
866 |
if (warmupCloseBtn) warmupCloseBtn.addEventListener('click', closeWarmupPopup);
|
867 |
|
|
|
901 |
// Boutons
|
902 |
if (warmupStartBtn){
|
903 |
warmupStartBtn.addEventListener('click', async ()=>{
|
904 |
+
|
905 |
+
|
906 |
+
|
907 |
+
|
908 |
+
|
909 |
+
// Saisie optionnelle ; vide => on lance avec DEFAULT_MODELS définis plus haut (P4.1)
|
910 |
+
const txt = prompt(
|
911 |
+
'Modèles (optionnel, séparés par des virgules).\n' +
|
912 |
+
'Laisse vide pour utiliser la liste par défaut.',
|
913 |
+
''
|
914 |
+
);
|
915 |
+
|
916 |
+
let body;
|
917 |
if (txt && txt.trim()){
|
918 |
+
const mods = txt.split(',').map(s=>s.trim()).filter(Boolean);
|
919 |
+
body = { models: mods.length ? mods : DEFAULT_MODELS };
|
920 |
+
} else {
|
921 |
+
body = { models: DEFAULT_MODELS };
|
922 |
}
|
923 |
+
|
924 |
try{
|
925 |
+
const r = await fetch('/warmup/start', {
|
926 |
+
method:'POST',
|
927 |
+
headers:{ 'Content-Type':'application/json' },
|
928 |
+
body: JSON.stringify(body)
|
929 |
+
});
|
930 |
+
if(!r.ok){
|
931 |
+
const t = await r.text();
|
932 |
+
alert('Échec démarrage: ' + r.status + ' ' + t);
|
933 |
+
return;
|
934 |
+
}
|
935 |
openWarmupPopup();
|
936 |
await refreshWarmupUI();
|
937 |
if (!warmupTimer) warmupTimer = setInterval(refreshWarmupUI, 1000);
|
938 |
+
}catch(e){
|
939 |
+
alert('Erreur réseau');
|
940 |
+
}
|
941 |
});
|
942 |
}
|
943 |
+
|
944 |
+
|
945 |
+
|
946 |
+
|
947 |
+
|
948 |
+
|
949 |
if (warmupLogsBtn){
|
950 |
warmupLogsBtn.addEventListener('click', async ()=>{
|
951 |
openWarmupPopup();
|