mirror of
				https://github.com/SillyTavern/SillyTavern.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	Merge pull request #2975 from akvadrako/together-ai-new-image-api
Support the non-deprecated Together.ai Create Image API
This commit is contained in:
		| @@ -2674,8 +2674,7 @@ async function generateTogetherAIImage(prompt, negativePrompt, signal) { | |||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     if (result.ok) { |     if (result.ok) { | ||||||
|         const data = await result.json(); |         return await result.json(); | ||||||
|         return { format: 'jpg', data: data?.output?.choices?.[0]?.image_base64 }; |  | ||||||
|     } else { |     } else { | ||||||
|         const text = await result.text(); |         const text = await result.text(); | ||||||
|         throw new Error(text); |         throw new Error(text); | ||||||
|   | |||||||
| @@ -607,10 +607,9 @@ together.post('/generate', jsonParser, async (request, response) => { | |||||||
|  |  | ||||||
|         console.log('TogetherAI request:', request.body); |         console.log('TogetherAI request:', request.body); | ||||||
|  |  | ||||||
|         const result = await fetch('https://api.together.xyz/api/inference', { |         const result = await fetch('https://api.together.xyz/v1/images/generations', { | ||||||
|             method: 'POST', |             method: 'POST', | ||||||
|             body: JSON.stringify({ |             body: JSON.stringify({ | ||||||
|                 request_type: 'image-model-inference', |  | ||||||
|                 prompt: request.body.prompt, |                 prompt: request.body.prompt, | ||||||
|                 negative_prompt: request.body.negative_prompt, |                 negative_prompt: request.body.negative_prompt, | ||||||
|                 height: request.body.height, |                 height: request.body.height, | ||||||
| @@ -620,8 +619,6 @@ together.post('/generate', jsonParser, async (request, response) => { | |||||||
|                 n: 1, |                 n: 1, | ||||||
|                 // Limited to 10000 on playground, works fine with more. |                 // Limited to 10000 on playground, works fine with more. | ||||||
|                 seed: request.body.seed >= 0 ? request.body.seed : Math.floor(Math.random() * 10_000_000), |                 seed: request.body.seed >= 0 ? request.body.seed : Math.floor(Math.random() * 10_000_000), | ||||||
|                 // Don't know if that's supposed to be random or not. It works either way. |  | ||||||
|                 sessionKey: getHexString(40), |  | ||||||
|             }), |             }), | ||||||
|             headers: { |             headers: { | ||||||
|                 'Content-Type': 'application/json', |                 'Content-Type': 'application/json', | ||||||
| @@ -630,19 +627,22 @@ together.post('/generate', jsonParser, async (request, response) => { | |||||||
|         }); |         }); | ||||||
|  |  | ||||||
|         if (!result.ok) { |         if (!result.ok) { | ||||||
|             console.log('TogetherAI returned an error.'); |             console.log('TogetherAI returned an error.', { body: await result.text() }); | ||||||
|             return response.sendStatus(500); |             return response.sendStatus(500); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         const data = await result.json(); |         const data = await result.json(); | ||||||
|         console.log('TogetherAI response:', data); |         console.log('TogetherAI response:', data); | ||||||
|  |  | ||||||
|         if (data.status !== 'finished') { |         const choice = data?.data?.[0]; | ||||||
|             console.log('TogetherAI job failed.'); |         let b64_json = choice.b64_json; | ||||||
|             return response.sendStatus(500); |  | ||||||
|  |         if (!b64_json) { | ||||||
|  |             const buffer = await (await fetch(choice.url)).buffer(); | ||||||
|  |             b64_json = buffer.toString('base64'); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         return response.send(data); |         return response.send({ format: 'jpg', data: b64_json }); | ||||||
|     } catch (error) { |     } catch (error) { | ||||||
|         console.log(error); |         console.log(error); | ||||||
|         return response.sendStatus(500); |         return response.sendStatus(500); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user