mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-02-13 18:50:39 +01: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:
commit
44e73fbf27
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user