mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Add NAI Diffusion V4
This commit is contained in:
@ -1985,6 +1985,10 @@ async function loadNovelModels() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
{
|
||||||
|
value: 'nai-diffusion-4-curated-preview',
|
||||||
|
text: 'NAI Diffusion Anime V4 (Curated Preview)',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
value: 'nai-diffusion-3',
|
value: 'nai-diffusion-3',
|
||||||
text: 'NAI Diffusion Anime V3',
|
text: 'NAI Diffusion Anime V3',
|
||||||
@ -2049,7 +2053,7 @@ async function loadSchedulers() {
|
|||||||
schedulers = await getAutoRemoteSchedulers();
|
schedulers = await getAutoRemoteSchedulers();
|
||||||
break;
|
break;
|
||||||
case sources.novel:
|
case sources.novel:
|
||||||
schedulers = ['N/A'];
|
schedulers = ['karras', 'native', 'exponential', 'polyexponential'];
|
||||||
break;
|
break;
|
||||||
case sources.vlad:
|
case sources.vlad:
|
||||||
schedulers = ['N/A'];
|
schedulers = ['N/A'];
|
||||||
@ -3158,6 +3162,7 @@ async function generateNovelImage(prompt, negativePrompt, signal) {
|
|||||||
prompt: prompt,
|
prompt: prompt,
|
||||||
model: extension_settings.sd.model,
|
model: extension_settings.sd.model,
|
||||||
sampler: extension_settings.sd.sampler,
|
sampler: extension_settings.sd.sampler,
|
||||||
|
scheduler: extension_settings.sd.scheduler,
|
||||||
steps: steps,
|
steps: steps,
|
||||||
scale: extension_settings.sd.scale,
|
scale: extension_settings.sd.scale,
|
||||||
width: width,
|
width: width,
|
||||||
|
@ -274,7 +274,7 @@
|
|||||||
<select id="sd_sampler"></select>
|
<select id="sd_sampler"></select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex1" data-sd-source="comfy,auto">
|
<div class="flex1" data-sd-source="comfy,auto,novel">
|
||||||
<label for="sd_scheduler" data-i18n="Scheduler">Scheduler</label>
|
<label for="sd_scheduler" data-i18n="Scheduler">Scheduler</label>
|
||||||
<select id="sd_scheduler"></select>
|
<select id="sd_scheduler"></select>
|
||||||
</div>
|
</div>
|
||||||
|
@ -307,15 +307,18 @@ router.post('/generate-image', jsonParser, async (request, response) => {
|
|||||||
},
|
},
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
action: 'generate',
|
action: 'generate',
|
||||||
input: request.body.prompt,
|
input: request.body.prompt ?? '',
|
||||||
model: request.body.model ?? 'nai-diffusion',
|
model: request.body.model ?? 'nai-diffusion',
|
||||||
parameters: {
|
parameters: {
|
||||||
|
params_version: 3,
|
||||||
|
prefer_brownian: true,
|
||||||
negative_prompt: request.body.negative_prompt ?? '',
|
negative_prompt: request.body.negative_prompt ?? '',
|
||||||
height: request.body.height ?? 512,
|
height: request.body.height ?? 512,
|
||||||
width: request.body.width ?? 512,
|
width: request.body.width ?? 512,
|
||||||
scale: request.body.scale ?? 9,
|
scale: request.body.scale ?? 9,
|
||||||
seed: request.body.seed >= 0 ? request.body.seed : Math.floor(Math.random() * 9999999999),
|
seed: request.body.seed >= 0 ? request.body.seed : Math.floor(Math.random() * 9999999999),
|
||||||
sampler: request.body.sampler ?? 'k_dpmpp_2m',
|
sampler: request.body.sampler ?? 'k_dpmpp_2m',
|
||||||
|
noise_schedule: request.body.scheduler ?? 'karras',
|
||||||
steps: request.body.steps ?? 28,
|
steps: request.body.steps ?? 28,
|
||||||
n_samples: 1,
|
n_samples: 1,
|
||||||
// NAI handholding for prompts
|
// NAI handholding for prompts
|
||||||
@ -323,11 +326,32 @@ router.post('/generate-image', jsonParser, async (request, response) => {
|
|||||||
qualityToggle: false,
|
qualityToggle: false,
|
||||||
add_original_image: false,
|
add_original_image: false,
|
||||||
controlnet_strength: 1,
|
controlnet_strength: 1,
|
||||||
|
deliberate_euler_ancestral_bug: false,
|
||||||
dynamic_thresholding: request.body.decrisper ?? false,
|
dynamic_thresholding: request.body.decrisper ?? false,
|
||||||
legacy: false,
|
legacy: false,
|
||||||
|
legacy_v3_extend: false,
|
||||||
sm: request.body.sm ?? false,
|
sm: request.body.sm ?? false,
|
||||||
sm_dyn: request.body.sm_dyn ?? false,
|
sm_dyn: request.body.sm_dyn ?? false,
|
||||||
uncond_scale: 1,
|
uncond_scale: 1,
|
||||||
|
use_coords: false,
|
||||||
|
characterPrompts: [],
|
||||||
|
reference_image_multiple: [],
|
||||||
|
reference_information_extracted_multiple: [],
|
||||||
|
reference_strength_multiple: [],
|
||||||
|
v4_negative_prompt: {
|
||||||
|
caption: {
|
||||||
|
base_caption: request.body.negative_prompt ?? '',
|
||||||
|
char_captions: [],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
v4_prompt: {
|
||||||
|
caption: {
|
||||||
|
base_caption: request.body.prompt ?? '',
|
||||||
|
char_captions: [],
|
||||||
|
},
|
||||||
|
use_coords: false,
|
||||||
|
use_order: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user