diff --git a/commands/message/image/deepai/imageedit.js b/commands/message/image/deepai/imageedit.js deleted file mode 100644 index 7951299..0000000 --- a/commands/message/image/deepai/imageedit.js +++ /dev/null @@ -1,39 +0,0 @@ -const { getRecentImage } = require("../../../../labscore/utils/attachment"); -const { createEmbed } = require("../../../../labscore/utils/embed"); -const { editOrReply } = require("../../../../labscore/utils/message"); - -const { deepdream, imageedit } = require('../../../../labscore/api') - -module.exports = { - name: 'editimage', - aliases: ['ei'], - label: 'prompt', - metadata: { - description: 'Edits an image using AI.', - description_short: 'AI image editing', - examples: ['editimage With a crown'], - category: 'image', - usage: 'editimage ' - }, - run: async (context, args) => { - context.triggerTyping(); - try{ - if(!args.prompt) return editOrReply(context, { embeds: [createEmbed("warning", context, "Missing prompt.")] }) - - let image = await getRecentImage(context, 50) - if(!image) return editOrReply(context, { embeds: [createEmbed("warning", context, "No images found.")] }) - - let res = await imageedit(context, image, args.prompt) - - if(res.response.body.status == 1) return editOrReply(context, {embeds:[createEmbed("warning", context, res.response.body.errors[0])]}) - - return editOrReply(context, createEmbed("image", context, { - url: res.response.body.image, - time: res.timings - })) - }catch(e){ - console.log(e) - return editOrReply(context, {embeds:[createEmbed("error", context, `Image editing timed out.`)]}) - } - }, -}; \ No newline at end of file diff --git a/commands/message/image/imageedit.js b/commands/message/image/imageedit.js new file mode 100644 index 0000000..7464aa2 --- /dev/null +++ b/commands/message/image/imageedit.js @@ -0,0 +1,58 @@ +const { createEmbed } = require("../../../labscore/utils/embed"); +const { editOrReply } = require("../../../labscore/utils/message"); +const { getRecentImage } = require("../../../labscore/utils/attachment"); + +const superagent = require('superagent'); + +module.exports = { + name: 'editimage', + label: 'prompt', + aliases: ['ei'], + metadata: { + description: 'Edits an image using AI.', + description_short: 'AI image editing', + examples: ['editimage Wearing a crown'], + category: 'image', + usage: 'editimage ' + }, + ratelimit: { + type: 'guild', + limit: 1, + duration: 5000 + }, + run: async (context, args) => { + if(!args.prompt) return editOrReply(context, { embeds: [createEmbed("warning", context, "Missing prompt.")] }) + + let image = await getRecentImage(context, 50) + if(!image) return editOrReply(context, { embeds: [createEmbed("warning", context, "No images found.")] }) + + let response = await editOrReply(context, { embeds: [createEmbed("loading", context, `Editing image...`)] }) + + let noticeTimer = setTimeout(()=>{ + let emb = createEmbed("loading", context, `Editing image...`) + emb.footer = { + text: "This might take several minutes to complete." + }; + response.edit({ embeds: [ emb ] }); + }, 45000) + + try{ + let img = await superagent.get(`${process.env.AI_SERVER}/deepai/imageeditor`) + .query({ + prompt: args.prompt, + url: image + }) + + clearTimeout(noticeTimer) + + await response.edit({ embeds: [ + createEmbed("image", context, { + url: img.body.image + }) + ] }) + }catch(e){ + console.log(e) + await response.edit({embeds:[createEmbed("error", context, `Image generation failed.`)]}) + } + }, +}; \ No newline at end of file