| 4029 | 4029 | })); |
| 4030 | 4030 | |
| 4031 | 4031 | SlashCommandParser.addCommandObject(SlashCommand.fromProps({ |
| 4032 | + name: 'imagine-source', |
| 4033 | + aliases: ['sd-source', 'img-source'], |
| 4034 | + returns: 'a name of the current generation source', |
| 4035 | + unnamedArgumentList: [ |
| 4036 | + SlashCommandArgument.fromProps({ |
| 4037 | + description: 'source name', |
| 4038 | + typeList: [ARGUMENT_TYPE.STRING], |
| 4039 | + isRequired: false, |
| 4040 | + forceEnum: true, |
| 4041 | + enumProvider: () => Array.from(document.querySelectorAll('#sd_source > [value]')).map(x => new SlashCommandEnumValue(x.getAttribute('value'), x.textContent)), |
| 4042 | + }), |
| 4043 | + ], |
| 4044 | + helpString: 'If an argument is provided, change the source of the image generation, e.g. <code>/imagine-source comfy</code>. Returns the current source.', |
| 4045 | + callback: async (_args, name) => { |
| 4046 | + if (!name) { |
| 4047 | + return extension_settings.sd.source; |
| 4048 | + } |
| 4049 | + const isKnownSource = Object.keys(sources).includes(String(name)); |
| 4050 | + if (!isKnownSource) { |
| 4051 | + throw new Error('The value provided is not a valid image generation source.'); |
| 4052 | + } |
| 4053 | + const option = document.querySelector(`#sd_source [value="${name}"]`); |
| 4054 | + if (!(option instanceof HTMLOptionElement)) { |
| 4055 | + throw new Error('Could not find the source option in the dropdown.'); |
| 4056 | + } |
| 4057 | + option.selected = true; |
| 4058 | + await onSourceChange(); |
| 4059 | + return extension_settings.sd.source; |
| 4060 | + }, |
| 4061 | + })) |
| 4062 | + |
| 4063 | + SlashCommandParser.addCommandObject(SlashCommand.fromProps({ |
| 4032 | 4064 | name: 'imagine-comfy-workflow', |
| 4033 | 4065 | callback: changeComfyWorkflow, |
| 4034 | 4066 | aliases: ['icw'], |