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) {
3555 return { format: 'jpg', data: data.image };3555 return { format: 'jpg', data: data.image };
3556 } else {3556 } else {
3557 const text = await result.text();3557 const text = await result.text();
3558 console.log(text);
3558 throw new Error(text);3559 throw new Error(text);
3559 }3560 }
3560}3561}
src/endpoints/stable-diffusion.js+7 -1
@@ -1251,6 +1251,7 @@ falai.post('/models', jsonParser, async (_request, response) => {
1251 .filter(x => !x.title.toLowerCase().includes('inpainting') &&1251 .filter(x => !x.title.toLowerCase().includes('inpainting') &&
1252 !x.title.toLowerCase().includes('control') &&1252 !x.title.toLowerCase().includes('control') &&
1253 !x.title.toLowerCase().includes('upscale'))1253 !x.title.toLowerCase().includes('upscale'))
1254 .sort((a, b) => a.title.localeCompare(b.title))
1254 .map(x => ({ value: x.modelUrl.split('fal-ai/')[1], text: x.title }));1255 .map(x => ({ value: x.modelUrl.split('fal-ai/')[1], text: x.title }));
1255 return response.send(models);1256 return response.send(models);
1256 } catch (error) {1257 } catch (error) {
@@ -1328,6 +1329,11 @@ falai.post('/generate', jsonParser, async (request, response) => {
1328 },1329 },
1329 });1330 });
1330 const resultData = await resultFetch.json();1331 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
1331 const imageFetch = await fetch(resultData?.images[0].url, {1337 const imageFetch = await fetch(resultData?.images[0].url, {
1332 headers: {1338 headers: {
1333 'Authorization': `Key ${key}`,1339 'Authorization': `Key ${key}`,
@@ -1343,7 +1349,7 @@ falai.post('/generate', jsonParser, async (request, response) => {
1343 }1349 }
1344 } catch (error) {1350 } catch (error) {
1345 console.error(error);1351 console.error(error);
1346 return response.sendStatus(500);1352 return response.status(500).send(error.cause || error.message);
1347 }1353 }
1348});1354});
13491355