← back to browse
goat command

weigen

Generate AI image

0
views
0
likes
0
installs

Aliases: wgen

raw source
const axios = require("axios");
const fs = require("fs");
const path = require("path");

module.exports = {
  config: {
    name: "weigen",
    aliases: ["wgen"],
    version: "1.2",
    author: "nexo_here",
    countDown: 3,
    role: 0,
    shortDescription: "Generate AI image",
    longDescription: "Generate an image using Weigen AI API with a prompt",
    category: "AI-IMAGE",
    guide: "{pn} <prompt>"
  },

  onStart: async function ({ api, event, args }) {
    const prompt = args.join(" ");
    if (!prompt) return api.sendMessage("⚠️ | Please enter a prompt to generate an image.", event.threadID, event.messageID);

    const msg = await api.sendMessage("🖌️ | Generating image, please wait...", event.threadID);

    try {
      // Make sure cache folder exists
      const cachePath = path.join(__dirname, "../cache");
      if (!fs.existsSync(cachePath)) fs.mkdirSync(cachePath);

      const imgPath = path.join(cachePath, `weigen-${Date.now()}.png`);

      const response = await axios({
        method: "GET",
        url: "https://www.arch2devs.ct.ws/api/weigen",
        params: { prompt },
        responseType: "stream"
      });

      const writer = fs.createWriteStream(imgPath);

      response.data.pipe(writer);

      writer.on("finish", () => {
        api.sendMessage({
          body: `🎨 | Image generated for prompt:\n"${prompt}"`,
          attachment: fs.createReadStream(imgPath)
        }, event.threadID, () => fs.unlinkSync(imgPath), msg.messageID);
      });

      writer.on("error", err => {
        console.error("❌ Image saving error:", err);
        api.sendMessage("❌ | Failed to save the image.", event.threadID, msg.messageID);
      });

    } catch (err) {
      console.error("❌ Image generation error:", err);
      api.sendMessage("❌ | Failed to generate image. Try again later.", event.threadID, msg.messageID);
    }
  }
};

View raw file