adds first run inpainting model prompts

Should finish implementing (Fixes #125)

Signed-off-by: Victor Seiji Hariki <victorseijih@gmail.com>
This commit is contained in:
Victor Seiji Hariki 2023-01-02 21:43:33 -03:00
parent fa58972831
commit e481e2b3da
3 changed files with 36 additions and 7 deletions

View file

@ -316,7 +316,7 @@
</div> </div>
<!-- Basics --> <!-- Basics -->
<script src="js/global.js?v=3da0b2e" type="text/javascript"></script> <script src="js/global.js?v=1807d6e" type="text/javascript"></script>
<!-- Base Libs --> <!-- Base Libs -->
<script src="js/lib/util.js?v=7f6847c" type="text/javascript"></script> <script src="js/lib/util.js?v=7f6847c" type="text/javascript"></script>
@ -337,7 +337,7 @@
<!-- Content --> <!-- Content -->
<script src="js/prompt.js?v=7a1c68c" type="text/javascript"></script> <script src="js/prompt.js?v=7a1c68c" type="text/javascript"></script>
<script src="js/index.js?v=133b74b" type="text/javascript"></script> <script src="js/index.js?v=3071414" type="text/javascript"></script>
<script <script
src="js/ui/floating/history.js?v=fc92d14" src="js/ui/floating/history.js?v=fc92d14"

View file

@ -3,6 +3,11 @@
*/ */
const global = { const global = {
// If this is the first run of openOutpaint
get firstRun() {
return this._firstRun;
},
// Connection // Connection
_connection: "offline", _connection: "offline",
set connection(v) { set connection(v) {
@ -46,3 +51,5 @@ const global = {
this.debug = !this.debug; this.debug = !this.debug;
}, },
}; };
global._firstRun = !localStorage.getItem("openoutpaint/host");

View file

@ -137,7 +137,6 @@ var host = "";
var url = "/sdapi/v1/"; var url = "/sdapi/v1/";
const basePixelCount = 64; //64 px - ALWAYS 64 PX const basePixelCount = 64; //64 px - ALWAYS 64 PX
//
function startup() { function startup() {
testHostConfiguration(); testHostConfiguration();
loadSettings(); loadSettings();
@ -804,12 +803,14 @@ async function getUpscalers() {
} }
async function getModels() { async function getModels() {
var url = document.getElementById("host").value + "/sdapi/v1/sd-models"; const url = document.getElementById("host").value + "/sdapi/v1/sd-models";
let opt = null;
try { try {
const response = await fetch(url); const response = await fetch(url);
const data = await response.json(); const data = await response.json();
modelAutoComplete.options = data.map((option) => ({ opt = data.map((option) => ({
name: option.title, name: option.title,
value: option.title, value: option.title,
optionelcb: (el) => { optionelcb: (el) => {
@ -818,6 +819,8 @@ async function getModels() {
}, },
})); }));
modelAutoComplete.options = opt;
try { try {
const optResponse = await fetch( const optResponse = await fetch(
document.getElementById("host").value + "/sdapi/v1/options" document.getElementById("host").value + "/sdapi/v1/options"
@ -838,10 +841,10 @@ async function getModels() {
modelAutoComplete.onchange.on(async ({value}) => { modelAutoComplete.onchange.on(async ({value}) => {
console.log(`[index] Changing model to [${value}]`); console.log(`[index] Changing model to [${value}]`);
var payload = { const payload = {
sd_model_checkpoint: value, sd_model_checkpoint: value,
}; };
var url = document.getElementById("host").value + "/sdapi/v1/options/"; const url = document.getElementById("host").value + "/sdapi/v1/options/";
try { try {
await fetch(url, { await fetch(url, {
method: "POST", method: "POST",
@ -861,6 +864,25 @@ async function getModels() {
); );
} }
}); });
// If first time running, ask if user wants to switch to an inpainting model
if (global.firstRun && !modelAutoComplete.value.includes("inpainting")) {
const inpainting = opt.find(({name}) => name.includes("inpainting"));
let message =
"It seems this is your first time using openOutpaint. It is highly recommended that you switch to an inpainting model. \
These are highlighted as green in the model selector.";
if (inpainting) {
message += `\n\nWe have found the inpainting model\n\n - ${inpainting.name}\n\navailable in the webui. Do you want to switch to it?`;
if (confirm(message)) {
modelAutoComplete.value = inpainting.value;
}
} else {
message += `\n\nNo inpainting model seems to be available in the webui. It is recommended that you download an inpainting model, or outpainting results may not be optimal.`;
alert(message);
}
}
} }
async function getConfig() { async function getConfig() {