class SdConfig { constructor() { this.config //store sd options } async getConfig() { try { this.config = await sdapi.requestGetConfig() return this.config } catch (e) { console.warn(e) } } getUpscalerModels() { try { // const upscaler_comp = this.config.components.filter(comp =>comp.props.elem_id === "txt2img_hr_upscaler")[0] let upscaler_comp // console.log('this.config: ', this.config) for (let comp of this.config.components) { if (comp?.props?.elem_id) { const elem_id = comp?.props?.elem_id if (elem_id === 'txt2img_hr_upscaler') { console.log('elem_id: ', elem_id) upscaler_comp = comp break } } } console.log('upscaler_comp: ', upscaler_comp) const upscalers = upscaler_comp.props.choices return upscalers } catch (e) { console.warn(e) } } getControlNetMaxModelsNum() { try { let max_models_num = 0 for (let comp of this.config.components) { if (comp?.props?.elem_id) { const elem_id = comp?.props?.elem_id if (elem_id === 'setting_control_net_max_models_num') { console.log( 'setting_control_net_max_models_num: ', comp?.props?.value ) max_models_num = comp?.props?.value break } } } console.log('max_models_num: ', max_models_num) return max_models_num } catch (e) { console.warn(e) return 1 // default max number is one } } getControlNetPreprocessors() { try { let max_models_num let choices for (let comp of this.config.components) { const label = comp?.props?.label if (label === 'Preprocessor') { choices = comp?.props?.choices break } } console.log('Preprocessor list: ', choices) return choices } catch (e) { console.warn(e) } } } module.exports = { SdConfig, }