Spaces:
Running
Running
File size: 2,009 Bytes
79a42c2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
const fs = require("fs");
const Form = require("form-data");
global.data = {
messages: {},
taskId: {},
listimageedit: ["omnigen"],
};
class Edit {
static async omnigen(buffer, prompt) {
try {
const formData = new FormData();
const file = new File([buffer], "image.png", { type: "image/png" });
formData.append("image", file);
formData.append("prompt", prompt);
const response = await fetch(
"https://omnigenai.org/api/ai/image/image-editor",
{
method: "POST",
headers: {
accept: "*/*",
"accept-language": "id-ID,id;q=0.9,en-US;q=0.8",
Referer: "https://omnigenai.org/ai-image-editor",
},
credentials: "include",
body: formData,
}
);
if (!response.ok) {
throw new Error(`Gagal: ${response.status} ${response.statusText}`);
}
const result = await response.json();
return result;
} catch (error) {
console.error("Error:", error);
throw error;
}
}
}
let changeList = function (list) {
if (!(list in data)) return;
data[list].push(data[list].shift());
};
const edit = async (image, retries = 20, delay = 1000) => {
for (let attempt = 1; attempt <= retries; attempt++) {
try {
let ai = await Edit[data.listimageedit[0]](image);
console.log({ ai });
console.log(`[${data.listimageedit[0]}]`, ai);
changeList("listimageedit");
} catch (error) {
changeList("listimageedit");
if (attempt < retries) {
console.log(
`IMAGE_EDIT[${
data.listimageedit[data.listimageedit.length - 1]
}]: Retryng ${attempt} failed.`,
error
);
await new Promise((resolve) => setTimeout(resolve, delay));
} else {
return new Error(`Failed after ${retries} attempts: ${error.message}`);
}
}
}
};
let image = fetch.readFileSync("./a.jpg");
edit(image).then((a) => console.log(a));
|