From 4ce9d1ff38c3d0fd80adad6d8c885439c8fbf2e8 Mon Sep 17 00:00:00 2001 From: Abdullah Alfaraj Date: Thu, 24 Aug 2023 02:30:21 +0300 Subject: [PATCH] add support to native presets --- index.html | 18 +++++--- presets/ctrlnet_inpaint.json | 56 ++++++++++++++++++++++++ presets/ctrlnet_inpaint_tile.json | 72 +++++++++++++++++++++++++++++++ presets/ctrlnet_outpaint.json | 56 ++++++++++++++++++++++++ presets/default.json | 43 ++++++++++++++++++ presets/img2img.json | 42 ++++++++++++++++++ presets/inpaint.json | 42 ++++++++++++++++++ presets/outpaint.json | 31 +++++++++++++ typescripts/sd_tab/sd_tab.tsx | 22 +++++----- typescripts/sd_tab/util.ts | 21 +++++++++ 10 files changed, 386 insertions(+), 17 deletions(-) create mode 100644 presets/ctrlnet_inpaint.json create mode 100644 presets/ctrlnet_inpaint_tile.json create mode 100644 presets/ctrlnet_outpaint.json create mode 100644 presets/default.json create mode 100644 presets/img2img.json create mode 100644 presets/inpaint.json create mode 100644 presets/outpaint.json diff --git a/index.html b/index.html index 240e8dd..ba242ef 100644 --- a/index.html +++ b/index.html @@ -898,7 +898,7 @@
- +
Explore Lexica for prompts and inspiration
- Smart Object +
+ Smart Object +
- Restore Original Prompt +
+ Restore Original Prompt +
{ { console.log('value:', value) preset_store.data.selected_sd_preset_name = value.item - preset_store.data.selected_sd_preset = - preset_store.data.custom_presets[ - value.item - ] + preset_store.data.selected_sd_preset = { + ...helper_store.data.native_presets, + ...preset_store.data.custom_presets, + }[value.item] console.log( 'preset_store.data.selected_sd_preset:', preset_store.data.selected_sd_preset diff --git a/typescripts/sd_tab/util.ts b/typescripts/sd_tab/util.ts index 70272f4..222a50b 100644 --- a/typescripts/sd_tab/util.ts +++ b/typescripts/sd_tab/util.ts @@ -25,6 +25,9 @@ import { setUnitData } from '../controlnet/entry' import { controlNetUnitData } from '../controlnet/store' import { presetToStore } from '../util/ts/io' import { refreshExtraUpscalers } from '../extra_page/extra_page' + +import { readdirSync, readFileSync } from 'fs' + declare let g_models: any[] declare let g_automatic_status: any declare let g_sd_options_obj: any @@ -175,6 +178,7 @@ export const helper_store = new AStore({ hr_upscaler_list: [] as string[], previous_width: 512, previous_height: 512, + native_presets: {}, }) export async function refreshModels() { let b_result = false @@ -328,6 +332,21 @@ export async function initSamplers() { return bStatus } +export function loadNativePreset() { + const json_container: { [key: string]: any } = {} + const dir = 'plugin:/presets' // specify the directory containing the .json files + + readdirSync(dir).forEach((file) => { + if (file.endsWith('.json')) { + const fileContent = readFileSync(`${dir}/${file}`, 'utf8') + const fileNameWithoutExtension = file.slice(0, -5) + json_container[fileNameWithoutExtension] = JSON.parse(fileContent) + } + }) + + console.log(json_container) + return json_container +} export async function refreshUI() { try { const b_proxy_server_status = await updateVersionUI() @@ -375,6 +394,8 @@ export async function refreshUI() { g_controlnet_max_models = await control_net.requestControlNetMaxUnits() await control_net.initializeControlNetTab(g_controlnet_max_models) await main.populateVAE() + + helper_store.data.native_presets = loadNativePreset() } catch (e) { console.warn(e) }