mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-03-20 05:50:13 +01:00
Add CLIP skip control for SD
This commit is contained in:
parent
f27a83ef73
commit
2aeaf43c28
@ -17,6 +17,7 @@
|
|||||||
<li data-placeholder="scheduler" class="sd_comfy_workflow_editor_not_found">"%scheduler%"</li>
|
<li data-placeholder="scheduler" class="sd_comfy_workflow_editor_not_found">"%scheduler%"</li>
|
||||||
<li data-placeholder="steps" class="sd_comfy_workflow_editor_not_found">"%steps%"</li>
|
<li data-placeholder="steps" class="sd_comfy_workflow_editor_not_found">"%steps%"</li>
|
||||||
<li data-placeholder="scale" class="sd_comfy_workflow_editor_not_found">"%scale%"</li>
|
<li data-placeholder="scale" class="sd_comfy_workflow_editor_not_found">"%scale%"</li>
|
||||||
|
<li data-placeholder="clip_skip" class="sd_comfy_workflow_editor_not_found">"%clip_skip%"</li>
|
||||||
<li data-placeholder="width" class="sd_comfy_workflow_editor_not_found">"%width%"</li>
|
<li data-placeholder="width" class="sd_comfy_workflow_editor_not_found">"%width%"</li>
|
||||||
<li data-placeholder="height" class="sd_comfy_workflow_editor_not_found">"%height%"</li>
|
<li data-placeholder="height" class="sd_comfy_workflow_editor_not_found">"%height%"</li>
|
||||||
<li data-placeholder="user_avatar" class="sd_comfy_workflow_editor_not_found">"%user_avatar%"</li>
|
<li data-placeholder="user_avatar" class="sd_comfy_workflow_editor_not_found">"%user_avatar%"</li>
|
||||||
|
@ -229,6 +229,12 @@ const defaultSettings = {
|
|||||||
hr_second_pass_steps_max: 150,
|
hr_second_pass_steps_max: 150,
|
||||||
hr_second_pass_steps_step: 1,
|
hr_second_pass_steps_step: 1,
|
||||||
|
|
||||||
|
// CLIP skip
|
||||||
|
clip_skip_min: 1,
|
||||||
|
clip_skip_max: 12,
|
||||||
|
clip_skip_step: 1,
|
||||||
|
clip_skip: 1,
|
||||||
|
|
||||||
// NovelAI settings
|
// NovelAI settings
|
||||||
novel_upscale_ratio_min: 1.0,
|
novel_upscale_ratio_min: 1.0,
|
||||||
novel_upscale_ratio_max: 4.0,
|
novel_upscale_ratio_max: 4.0,
|
||||||
@ -404,6 +410,8 @@ async function loadSettings() {
|
|||||||
$('#sd_comfy_url').val(extension_settings.sd.comfy_url);
|
$('#sd_comfy_url').val(extension_settings.sd.comfy_url);
|
||||||
$('#sd_comfy_prompt').val(extension_settings.sd.comfy_prompt);
|
$('#sd_comfy_prompt').val(extension_settings.sd.comfy_prompt);
|
||||||
$('#sd_snap').prop('checked', extension_settings.sd.snap);
|
$('#sd_snap').prop('checked', extension_settings.sd.snap);
|
||||||
|
$('#sd_clip_skip').val(extension_settings.sd.clip_skip);
|
||||||
|
$('#sd_clip_skip_value').text(extension_settings.sd.clip_skip);
|
||||||
|
|
||||||
for (const style of extension_settings.sd.styles) {
|
for (const style of extension_settings.sd.styles) {
|
||||||
const option = document.createElement('option');
|
const option = document.createElement('option');
|
||||||
@ -691,6 +699,12 @@ function onRefineModeInput() {
|
|||||||
saveSettingsDebounced();
|
saveSettingsDebounced();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function onClipSkipInput() {
|
||||||
|
extension_settings.sd.clip_skip = Number($('#sd_clip_skip').val());
|
||||||
|
$('#sd_clip_skip_value').text(extension_settings.sd.clip_skip);
|
||||||
|
saveSettingsDebounced();
|
||||||
|
}
|
||||||
|
|
||||||
function onScaleInput() {
|
function onScaleInput() {
|
||||||
extension_settings.sd.scale = Number($('#sd_scale').val());
|
extension_settings.sd.scale = Number($('#sd_scale').val());
|
||||||
$('#sd_scale_value').text(extension_settings.sd.scale.toFixed(1));
|
$('#sd_scale_value').text(extension_settings.sd.scale.toFixed(1));
|
||||||
@ -2371,6 +2385,7 @@ async function generateHordeImage(prompt, negativePrompt) {
|
|||||||
restore_faces: !!extension_settings.sd.restore_faces,
|
restore_faces: !!extension_settings.sd.restore_faces,
|
||||||
enable_hr: !!extension_settings.sd.enable_hr,
|
enable_hr: !!extension_settings.sd.enable_hr,
|
||||||
sanitize: !!extension_settings.sd.horde_sanitize,
|
sanitize: !!extension_settings.sd.horde_sanitize,
|
||||||
|
clip_skip: extension_settings.sd.clip_skip,
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -2409,6 +2424,10 @@ async function generateAutoImage(prompt, negativePrompt) {
|
|||||||
hr_scale: extension_settings.sd.hr_scale,
|
hr_scale: extension_settings.sd.hr_scale,
|
||||||
denoising_strength: extension_settings.sd.denoising_strength,
|
denoising_strength: extension_settings.sd.denoising_strength,
|
||||||
hr_second_pass_steps: extension_settings.sd.hr_second_pass_steps,
|
hr_second_pass_steps: extension_settings.sd.hr_second_pass_steps,
|
||||||
|
override_settings: {
|
||||||
|
CLIP_stop_at_last_layers: extension_settings.sd.clip_skip,
|
||||||
|
},
|
||||||
|
override_settings_restore_afterwards: true,
|
||||||
// Ensure generated img is saved to disk
|
// Ensure generated img is saved to disk
|
||||||
save_images: true,
|
save_images: true,
|
||||||
send_images: true,
|
send_images: true,
|
||||||
@ -2449,6 +2468,7 @@ async function generateDrawthingsImage(prompt, negativePrompt) {
|
|||||||
restore_faces: !!extension_settings.sd.restore_faces,
|
restore_faces: !!extension_settings.sd.restore_faces,
|
||||||
enable_hr: !!extension_settings.sd.enable_hr,
|
enable_hr: !!extension_settings.sd.enable_hr,
|
||||||
denoising_strength: extension_settings.sd.denoising_strength,
|
denoising_strength: extension_settings.sd.denoising_strength,
|
||||||
|
clip_skip: extension_settings.sd.clip_skip,
|
||||||
// TODO: advanced API parameters: hr, upscaler
|
// TODO: advanced API parameters: hr, upscaler
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
@ -2633,6 +2653,7 @@ async function generateComfyImage(prompt, negativePrompt) {
|
|||||||
'scale',
|
'scale',
|
||||||
'width',
|
'width',
|
||||||
'height',
|
'height',
|
||||||
|
'clip_skip',
|
||||||
];
|
];
|
||||||
|
|
||||||
const workflowResponse = await fetch('/api/sd/comfy/workflow', {
|
const workflowResponse = await fetch('/api/sd/comfy/workflow', {
|
||||||
@ -3144,6 +3165,7 @@ jQuery(async () => {
|
|||||||
$('#sd_openai_quality').on('change', onOpenAiQualitySelect);
|
$('#sd_openai_quality').on('change', onOpenAiQualitySelect);
|
||||||
$('#sd_multimodal_captioning').on('input', onMultimodalCaptioningInput);
|
$('#sd_multimodal_captioning').on('input', onMultimodalCaptioningInput);
|
||||||
$('#sd_snap').on('input', onSnapInput);
|
$('#sd_snap').on('input', onSnapInput);
|
||||||
|
$('#sd_clip_skip').on('input', onClipSkipInput);
|
||||||
|
|
||||||
$('.sd_settings .inline-drawer-toggle').on('click', function () {
|
$('.sd_settings .inline-drawer-toggle').on('click', function () {
|
||||||
initScrollHeight($('#sd_prompt_prefix'));
|
initScrollHeight($('#sd_prompt_prefix'));
|
||||||
|
@ -232,6 +232,10 @@
|
|||||||
<span data-i18n="Hires. Fix">Hires. Fix</span>
|
<span data-i18n="Hires. Fix">Hires. Fix</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
<div data-sd-source="auto,vlad,comfy,horde,drawthings">
|
||||||
|
<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>
|
||||||
<div data-sd-source="auto,vlad">
|
<div data-sd-source="auto,vlad">
|
||||||
<label for="sd_hr_upscaler" data-i18n="Upscaler">Upscaler</label>
|
<label for="sd_hr_upscaler" data-i18n="Upscaler">Upscaler</label>
|
||||||
<select id="sd_hr_upscaler"></select>
|
<select id="sd_hr_upscaler"></select>
|
||||||
|
@ -325,6 +325,7 @@ router.post('/generate-image', jsonParser, async (request, response) => {
|
|||||||
width: request.body.width,
|
width: request.body.width,
|
||||||
height: request.body.height,
|
height: request.body.height,
|
||||||
karras: Boolean(request.body.karras),
|
karras: Boolean(request.body.karras),
|
||||||
|
clip_skip: request.body.clip_skip,
|
||||||
n: 1,
|
n: 1,
|
||||||
},
|
},
|
||||||
r2: false,
|
r2: false,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user