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 [ 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,

View File

@ -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>

View File

@ -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,
},
}, },
}), }),
}); });