Pass through errors coming from FAL to the user
Signed| @@ -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 | } |
| @@ -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 | }); |
| 1349 | 1355 | ||