Add NAI Diffusion V4

This commit is contained in:
Cohee
2024-12-22 15:39:41 +02:00
parent 713443d234
commit e6107ad447
3 changed files with 32 additions and 3 deletions

View File

@ -1985,6 +1985,10 @@ async function loadNovelModels() {
}
return [
{
value: 'nai-diffusion-4-curated-preview',
text: 'NAI Diffusion Anime V4 (Curated Preview)',
},
{
value: 'nai-diffusion-3',
text: 'NAI Diffusion Anime V3',
@ -2049,7 +2053,7 @@ async function loadSchedulers() {
schedulers = await getAutoRemoteSchedulers();
break;
case sources.novel:
schedulers = ['N/A'];
schedulers = ['karras', 'native', 'exponential', 'polyexponential'];
break;
case sources.vlad:
schedulers = ['N/A'];
@ -3158,6 +3162,7 @@ async function generateNovelImage(prompt, negativePrompt, signal) {
prompt: prompt,
model: extension_settings.sd.model,
sampler: extension_settings.sd.sampler,
scheduler: extension_settings.sd.scheduler,
steps: steps,
scale: extension_settings.sd.scale,
width: width,

View File

@ -274,7 +274,7 @@
<select id="sd_sampler"></select>
</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>
<select id="sd_scheduler"></select>
</div>

View File

@ -307,15 +307,18 @@ router.post('/generate-image', jsonParser, async (request, response) => {
},
body: JSON.stringify({
action: 'generate',
input: request.body.prompt,
input: request.body.prompt ?? '',
model: request.body.model ?? 'nai-diffusion',
parameters: {
params_version: 3,
prefer_brownian: true,
negative_prompt: request.body.negative_prompt ?? '',
height: request.body.height ?? 512,
width: request.body.width ?? 512,
scale: request.body.scale ?? 9,
seed: request.body.seed >= 0 ? request.body.seed : Math.floor(Math.random() * 9999999999),
sampler: request.body.sampler ?? 'k_dpmpp_2m',
noise_schedule: request.body.scheduler ?? 'karras',
steps: request.body.steps ?? 28,
n_samples: 1,
// NAI handholding for prompts
@ -323,11 +326,32 @@ router.post('/generate-image', jsonParser, async (request, response) => {
qualityToggle: false,
add_original_image: false,
controlnet_strength: 1,
deliberate_euler_ancestral_bug: false,
dynamic_thresholding: request.body.decrisper ?? false,
legacy: false,
legacy_v3_extend: false,
sm: request.body.sm ?? false,
sm_dyn: request.body.sm_dyn ?? false,
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,
},
},
}),
});