Attempted Stability AI API & Stability AI UI fix.

4c600191fe7a7d2689585fc6a7d5006a767e7421

WBlair1 <wolfgangblair1@gmail.com>

1 files changed, +29 -33Showing whitespace changes
public/scripts/extensions/stable-diffusion/index.js+29 -33
@@ -368,14 +368,13 @@ function toggleSourceControls() {
368 const source = $(this).data('sd-source').split(',');368 const source = $(this).data('sd-source').split(',');
369 $(this).toggle(source.includes(extension_settings.sd.source));369 $(this).toggle(source.includes(extension_settings.sd.source));
370 });370 });
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);
377 $('#sd_resolution').parent().show();377 $('#sd_sampler').toggle(extension_settings.sd.source !== sources.stability);
378 }
379}378}
380379
381async function loadSettings() {380async function loadSettings() {
@@ -1651,17 +1650,29 @@ async function loadModels() {
1651 }1650 }
1652}1651}
1653async function generateStabilityImage(prompt, negativePrompt) {1652async 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
1654 const result = await fetch('/api/sd/stability/generate', {1668 const result = await fetch('/api/sd/stability/generate', {
1655 method: 'POST',1669 method: 'POST',
1656 headers: getRequestHeaders(),1670 headers: getRequestHeaders(),
1657 body: JSON.stringify({1671 body: JSON.stringify({
1658 key: extension_settings.sd.stability_key,1672 key: extension_settings.sd.stability_key,
1673 endpoint: endpoint,
1659 prompt: prompt,1674 prompt: prompt,
1660 negative_prompt: negativePrompt,1675 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,
1665 seed: extension_settings.sd.seed >= 0 ? extension_settings.sd.seed : undefined,1676 seed: extension_settings.sd.seed >= 0 ? extension_settings.sd.seed : undefined,
1666 style_preset: extension_settings.sd.stability_style_preset,1677 style_preset: extension_settings.sd.stability_style_preset,
1667 aspect_ratio: extension_settings.sd.stability_aspect_ratio,1678 aspect_ratio: extension_settings.sd.stability_aspect_ratio,
@@ -1678,28 +1689,13 @@ async function generateStabilityImage(prompt, negativePrompt) {
1678}1689}
16791690
16801691
1681async 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();1693async 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 ];
1703}1699}
17041700
1705async function loadPollinationsModels() {1701async function loadPollinationsModels() {