Pass through errors coming from FAL to the user

76becb43ae0fbbf4842fbc1ea5104ac851de5d7c

Kristan Schlikow <kristian@schlikow.de>

Signed
2 files changed, +8 -1Showing whitespace changes
public/scripts/extensions/stable-diffusion/index.js+1 -0
@@ -3555,6 +3555,7 @@ async function generateFalaiImage(prompt, negativePrompt, signal) {
35553555 return { format: 'jpg', data: data.image };
35563556 } else {
35573557 const text = await result.text();
3558+ console.log(text);
35583559 throw new Error(text);
35593560 }
35603561}
src/endpoints/stable-diffusion.js+7 -1
@@ -1251,6 +1251,7 @@ falai.post('/models', jsonParser, async (_request, response) => {
12511251 .filter(x => !x.title.toLowerCase().includes('inpainting') &&
12521252 !x.title.toLowerCase().includes('control') &&
12531253 !x.title.toLowerCase().includes('upscale'))
1254+ .sort((a, b) => a.title.localeCompare(b.title))
12541255 .map(x => ({ value: x.modelUrl.split('fal-ai/')[1], text: x.title }));
12551256 return response.send(models);
12561257 } catch (error) {
@@ -1328,6 +1329,11 @@ falai.post('/generate', jsonParser, async (request, response) => {
13281329 },
13291330 });
13301331 const resultData = await resultFetch.json();
1332+
1333+ if (resultData.detail !== null && resultData.detail !== undefined) {
1334+ throw new Error('FAL.AI failed to generate image.', { cause: `${resultData.detail[0].loc[1]}: ${resultData.detail[0].msg}` });
1335+ }
1336+
13311337 const imageFetch = await fetch(resultData?.images[0].url, {
13321338 headers: {
13331339 'Authorization': `Key ${key}`,
@@ -1343,7 +1349,7 @@ falai.post('/generate', jsonParser, async (request, response) => {
13431349 }
13441350 } catch (error) {
13451351 console.error(error);
13461352 return response.sendStatusstatus(500).send(error.cause || error.message);
13471353 }
13481354});
13491355