Attempted Stability AI API & Stability AI UI fix.

4c600191fe7a7d2689585fc6a7d5006a767e7421

WBlair1 <wolfgangblair1@gmail.com>

1 files changed, +29 -33Ignore whitespace
public/scripts/extensions/stable-diffusion/index.js+29 -33
@@ -368,14 +368,13 @@ function toggleSourceControls() {
368368 const source = $(this).data('sd-source').split(',');
369369 $(this).toggle(source.includes(extension_settings.sd.source));
370370 });
371- const stabilityHiddenControls = $('#sd_steps, #sd_scale, #sd_sampler, #sd_scheduler, #sd_width, #sd_height, #sd_hr_upscaler, #sd_clip_skip, #sd_steps_value, #sd_scale_value');
371+
372- if (extension_settings.sd.source === sources.stability) {
372+ // Special case for resolution dropdown
373- stabilityHiddenControls.hide();
373+ $('#sd_resolution').parent().toggle(extension_settings.sd.source !== sources.stability);
374- $('#sd_resolution').parent().hide();
374+
375- } else {
375+ // Special case for dimensions block
376- stabilityHiddenControls.show();
376+ $('#sd_dimensions_block').toggle(extension_settings.sd.source !== sources.stability);
377377 $('#sd_resolutionsd_sampler').parenttoggle()extension_settings.show(sd.source !== sources.stability);
378- }
379378}
380379
381380async function loadSettings() {
@@ -1651,17 +1650,29 @@ async function loadModels() {
16511650 }
16521651}
16531652async function generateStabilityImage(prompt, negativePrompt) {
1653+ let endpoint;
1654+ switch (extension_settings.sd.model) {
1655+ case 'stable-image-ultra':
1656+ endpoint = '/v2beta/stable-image/generate/ultra';
1657+ break;
1658+ case 'stable-image-core':
1659+ endpoint = '/v2beta/stable-image/generate/core';
1660+ break;
1661+ case 'stable-diffusion-3':
1662+ endpoint = '/v2beta/stable-image/generate/sd3';
1663+ break;
1664+ default:
1665+ throw new Error('Invalid Stability AI model selected');
1666+ }
1667+
16541668 const result = await fetch('/api/sd/stability/generate', {
16551669 method: 'POST',
16561670 headers: getRequestHeaders(),
16571671 body: JSON.stringify({
16581672 key: extension_settings.sd.stability_key,
1673+ endpoint: endpoint,
16591674 prompt: prompt,
16601675 negative_prompt: negativePrompt,
1661- model: extension_settings.sd.model,
1662- engine: extension_settings.sd.stability_engine,
1663- width: extension_settings.sd.width,
1664- height: extension_settings.sd.height,
16651676 seed: extension_settings.sd.seed >= 0 ? extension_settings.sd.seed : undefined,
16661677 style_preset: extension_settings.sd.stability_style_preset,
16671678 aspect_ratio: extension_settings.sd.stability_aspect_ratio,
@@ -1678,28 +1689,13 @@ async function generateStabilityImage(prompt, negativePrompt) {
16781689}
16791690
16801691
1681-async function loadStabilityModels() {
1682- if (!extension_settings.sd.stability_key) {
1683- console.debug('Stability API key is not set.');
1684- return [];
1685- }
1686-
1687- try {
1688- const response = await fetch('/api/sd/stability/models', {
1689- method: 'GET',
1690- headers: getRequestHeaders(),
1691- });
1692-
1693- if (!response.ok) {
1694- throw new Error('Failed to fetch Stability AI models');
1695- }
16961692
1697- const data = await response.json();
1693+async function loadStabilityModels() {
1698- return data.map(model => ({ value: model.id, text: model.name }));
1694+ return [
1699- } catch (error) {
1695+ { value: 'stable-image-ultra', text: 'Stable Image Ultra' },
1700- console.error('Error fetching Stability AI models:', error);
1696+ { value: 'stable-image-core', text: 'Stable Image Core' },
1701- return [];
1697+ { value: 'stable-diffusion-3', text: 'Stable Diffusion 3' },
1702- }
1698+ ];
17031699}
17041700
17051701async function loadPollinationsModels() {