aboutsummaryrefslogtreecommitdiff
path: root/src/server/ApiManagers/FireflyManager.ts
diff options
context:
space:
mode:
authoreleanor-park <eleanor_park@brown.edu>2024-12-30 23:35:24 -0500
committereleanor-park <eleanor_park@brown.edu>2024-12-30 23:35:24 -0500
commit0eff48b757ca81860a883d25e147b8a869e5fe00 (patch)
tree11e8333c424bc72b08357a38d05ab668423d16d1 /src/server/ApiManagers/FireflyManager.ts
parent7e5f6fdc205eae1b0ab76390644257a82bf6ebf1 (diff)
created image regeneration with dialogue
Diffstat (limited to 'src/server/ApiManagers/FireflyManager.ts')
-rw-r--r--src/server/ApiManagers/FireflyManager.ts20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/server/ApiManagers/FireflyManager.ts b/src/server/ApiManagers/FireflyManager.ts
index e73795e41..c5348c7db 100644
--- a/src/server/ApiManagers/FireflyManager.ts
+++ b/src/server/ApiManagers/FireflyManager.ts
@@ -65,7 +65,11 @@ export default class FireflyManager extends ApiManager {
})
);
- generateImage = (prompt: string = 'a realistic illustration of a cat coding') => {
+ generateImage = (prompt: string = 'a realistic illustration of a cat coding', seed?: number) => {
+ let body = `{ "prompt": "${prompt}" }`;
+ if (seed) {
+ body = `{ "prompt": "${prompt}", "seeds": [${seed}]}`;
+ }
const fetched = this.getBearerToken().then(response =>
response?.json().then((data: { access_token: string }) =>
fetch('https://firefly-api.adobe.io/v3/images/generate', {
@@ -76,9 +80,15 @@ export default class FireflyManager extends ApiManager {
['x-api-key', process.env._CLIENT_FIREFLY_CLIENT_ID ?? ''],
['Authorization', `Bearer ${data.access_token}`],
],
- body: `{ "prompt": "${prompt}" }`,
+ body: body,
})
- .then(response2 => response2.json().then(json => (json.outputs?.[0] as { image: { url: string } })?.image.url))
+ .then(response2 =>
+ response2.json().then(json => {
+ const seed = json.outputs?.[0]?.seed;
+ const url = json.outputs?.[0]?.image?.url;
+ return { seed, url };
+ })
+ )
.catch(error => {
console.error('Error:', error);
return undefined;
@@ -226,8 +236,8 @@ export default class FireflyManager extends ApiManager {
method: Method.POST,
subscription: '/queryFireflyImage',
secureHandler: ({ req, res }) =>
- this.generateImage(req.body.prompt).then(url =>
- DashUploadUtils.UploadImage(url ?? '').then(info => {
+ this.generateImage(req.body.prompt, req.body.seed).then(img =>
+ DashUploadUtils.UploadImage(img?.url ?? '', undefined, img?.seed).then(info => {
if (info instanceof Error) _invalid(res, info.message);
else _success(res, info);
})