mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-03-05 20:29:22 +01:00
Add schedulers selection for AUTO1111
This commit is contained in:
parent
e0ba516551
commit
6228d1d3b1
@ -858,6 +858,7 @@ async function onSourceChange() {
|
||||
extension_settings.sd.source = $('#sd_source').find(':selected').val();
|
||||
extension_settings.sd.model = null;
|
||||
extension_settings.sd.sampler = null;
|
||||
extension_settings.sd.scheduler = null;
|
||||
toggleSourceControls();
|
||||
saveSettingsDebounced();
|
||||
await loadSettingOptions();
|
||||
@ -1205,6 +1206,26 @@ async function getAutoRemoteUpscalers() {
|
||||
}
|
||||
}
|
||||
|
||||
async function getAutoRemoteSchedulers() {
|
||||
try {
|
||||
const result = await fetch('/api/sd/schedulers', {
|
||||
method: 'POST',
|
||||
headers: getRequestHeaders(),
|
||||
body: JSON.stringify(getSdRequestBody()),
|
||||
});
|
||||
|
||||
if (!result.ok) {
|
||||
throw new Error('SD WebUI returned an error.');
|
||||
}
|
||||
|
||||
const data = await result.json();
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return ['N/A'];
|
||||
}
|
||||
}
|
||||
|
||||
async function getVladRemoteUpscalers() {
|
||||
try {
|
||||
const result = await fetch('/api/sd/sd-next/upscalers', {
|
||||
@ -1820,13 +1841,13 @@ async function loadSchedulers() {
|
||||
schedulers = ['N/A'];
|
||||
break;
|
||||
case sources.auto:
|
||||
schedulers = ['N/A'];
|
||||
schedulers = await getAutoRemoteSchedulers();
|
||||
break;
|
||||
case sources.novel:
|
||||
schedulers = ['N/A'];
|
||||
break;
|
||||
case sources.vlad:
|
||||
schedulers = ['N/A'];
|
||||
schedulers = await getAutoRemoteSchedulers();
|
||||
break;
|
||||
case sources.drawthings:
|
||||
schedulers = ['N/A'];
|
||||
@ -1852,6 +1873,11 @@ async function loadSchedulers() {
|
||||
option.selected = scheduler === extension_settings.sd.scheduler;
|
||||
$('#sd_scheduler').append(option);
|
||||
}
|
||||
|
||||
if (!extension_settings.sd.scheduler && schedulers.length > 0 && schedulers[0] !== 'N/A') {
|
||||
extension_settings.sd.scheduler = schedulers[0];
|
||||
$('#sd_scheduler').val(extension_settings.sd.scheduler).trigger('change');
|
||||
}
|
||||
}
|
||||
|
||||
async function loadComfySchedulers() {
|
||||
@ -2529,6 +2555,7 @@ async function generateAutoImage(prompt, negativePrompt) {
|
||||
prompt: prompt,
|
||||
negative_prompt: negativePrompt,
|
||||
sampler_name: extension_settings.sd.sampler,
|
||||
scheduler: extension_settings.sd.scheduler,
|
||||
steps: extension_settings.sd.steps,
|
||||
cfg_scale: extension_settings.sd.scale,
|
||||
width: extension_settings.sd.width,
|
||||
|
@ -196,6 +196,8 @@
|
||||
<input id="sd_width" type="range" max="{{dimension_max}}" min="{{dimension_min}}" step="{{dimension_step}}" value="{{width}}" />
|
||||
<label for="sd_height" data-i18n="Height">Height (<span id="sd_height_value"></span>)</label>
|
||||
<input id="sd_height" type="range" max="{{dimension_max}}" min="{{dimension_min}}" step="{{dimension_step}}" value="{{height}}" />
|
||||
<label for="sd_resolution" data-i18n="Resolution">Resolution</label>
|
||||
<select id="sd_resolution"><!-- Populated in JS --></select>
|
||||
<label for="sd_model" data-i18n="Model">Model</label>
|
||||
<select id="sd_model"></select>
|
||||
<label for="sd_sampler" data-i18n="Sampling method">Sampling method</label>
|
||||
@ -220,9 +222,7 @@
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<label for="sd_resolution" data-i18n="Resolution">Resolution</label>
|
||||
<select id="sd_resolution"><!-- Populated in JS --></select>
|
||||
<div data-sd-source="comfy">
|
||||
<div data-sd-source="comfy,auto,vlad">
|
||||
<label for="sd_scheduler" data-i18n="Scheduler">Scheduler</label>
|
||||
<select id="sd_scheduler"></select>
|
||||
</div>
|
||||
@ -240,7 +240,7 @@
|
||||
<span data-i18n="Hires. Fix">Hires. Fix</span>
|
||||
</label>
|
||||
</div>
|
||||
<div data-sd-source="auto,vlad,comfy,horde,drawthings" class="marginTopBot5">
|
||||
<div data-sd-source="auto,vlad,comfy,horde,drawthings,extras" class="marginTopBot5">
|
||||
<label for="sd_clip_skip">CLIP Skip (<span id="sd_clip_skip_value"></span>)</label>
|
||||
<input type="range" id="sd_clip_skip" min="{{clip_skip_min}}" max="{{clip_skip_max}}" step="{{clip_skip_step}}" value="{{clip_skip}}" />
|
||||
</div>
|
||||
@ -260,7 +260,7 @@
|
||||
<label for="sd_novel_upscale_ratio"><span data-i18n="Upscale by">Upscale by</span> (<span id="sd_novel_upscale_ratio_value"></span>)</label>
|
||||
<input id="sd_novel_upscale_ratio" type="range" min="{{novel_upscale_ratio_min}}" max="{{novel_upscale_ratio_max}}" step="{{novel_upscale_ratio_step}}" value="{{novel_upscale_ratio}}" />
|
||||
</div>
|
||||
<div data-sd-source="novel,togetherai,pollinations,comfy,drawthings,vlad,auto,horde" class="marginTop5">
|
||||
<div data-sd-source="novel,togetherai,pollinations,comfy,drawthings,vlad,auto,horde,extras" class="marginTop5">
|
||||
<label for="sd_seed">Seed</label>
|
||||
<small>(-1 for random)</small>
|
||||
<input id="sd_seed" type="number" class="text_pole" min="-1" max="9999999999" step="1" />
|
||||
|
@ -160,6 +160,31 @@ router.post('/samplers', jsonParser, async (request, response) => {
|
||||
}
|
||||
});
|
||||
|
||||
router.post('/schedulers', jsonParser, async (request, response) => {
|
||||
try {
|
||||
const url = new URL(request.body.url);
|
||||
url.pathname = '/sdapi/v1/schedulers';
|
||||
|
||||
const result = await fetch(url, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Authorization': getBasicAuthHeader(request.body.auth),
|
||||
},
|
||||
});
|
||||
|
||||
if (!result.ok) {
|
||||
throw new Error('SD WebUI returned an error.');
|
||||
}
|
||||
|
||||
const data = await result.json();
|
||||
const names = data.map(x => x.name);
|
||||
return response.send(names);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
});
|
||||
|
||||
router.post('/models', jsonParser, async (request, response) => {
|
||||
try {
|
||||
const url = new URL(request.body.url);
|
||||
|
Loading…
x
Reference in New Issue
Block a user