ImageGen / script.js
Temuzin64's picture
Update script.js
d0b6dcb verified
raw
history blame
3.99 kB
const token = window.huggingface.variables.OPENAI_API_KEY;
const imageBox_el = document.getElementById("imageBox");
const promptText_el = document.getElementById("promptText");
const btn_gen_el = document.getElementById("btn-gen");
const btn_clear_el = document.getElementById("btn-clear");
const loadingMessage_el = document.getElementById("loadingMessage");
const btn_download_el = document.getElementById("btn-download");
const download_el = document .getElementById("download");
let promptText = "";
const modelLinks = ["https://api-inference.huggingface.co/models/Shakker-Labs/FLUX.1-dev-LoRA-add-details",
"https://api-inference.huggingface.co/models/glif/90s-anime-art",
"https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-2-1",
"https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-dev",
"https://api-inference.huggingface.co/models/Jovie/Midjourney",
"https://api-inference.huggingface.co/models/runwayml/stable-diffusion-v1-5"]
// async function query(data) {
// const response = await fetch(modelLinks[2], {
// headers: {
// Authorization: `Bearer ${token}`,
// "Content-Type": "application/json",
// },
// method: "POST",
// body: JSON.stringify(data),
// });
// if (!response.ok) {
// const err = await response.text();
// throw new Error(err);
// }
// return await response.blob();
// }
async function query(data) {
const response = await fetch(modelLinks[5], {
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json",
},
method: "POST",
body: JSON.stringify(data),
});
console.log("Status:", response.status);
const text = await response.text();
console.log("Response:", text);
return new Blob([text]);
}
// async function query(data) {
// const response = await fetch(
// modelLinks[2],
// // "https://api-inference.huggingface.co/models/glif/90s-anime-art",
// {
// headers: {
// Authorization: `Bearer ${token}`,
// "Content-Type": "application/json",
// },
// method: "POST",
// body: JSON.stringify(data),
// }
// );
// const result = await response.blob();
// return result;
// }
btn_clear_el.addEventListener("click", () => {
promptText_el.value = "";
});
btn_gen_el.addEventListener("click", (event) => {
promptText = promptText_el.value;
if (promptText === "") {
alert("Please Enter Description of the image you want to generate");
} else {
console.log(promptText);
// Show the loading message and hide the image
loadingMessage_el.style.display = "block";
imageBox_el.style.display = "none";
btn_download_el.style.display = "none";
query({ inputs: promptText }).then((response) => {
const imageUrl = URL.createObjectURL(response);
imageBox_el.src = imageUrl;
// Hide the loading message and show the image once it's ready
loadingMessage_el.style.display = "none";
imageBox_el.style.display = "block";
// Update the download button
download_el.style.display = "block";
btn_download_el.style.display = "block";
btn_download_el.href = imageUrl;
btn_download_el.download = "generated_image.png";
}).catch(error => {
loadingMessage_el.style.display = "none";
alert("Failed to fetch the image. Please try again.");
console.error("Error fetching image:", error);
});
}
});
console.log(btn_download_el)
btn_download_el.addEventListener("click", (event) => {
// Optional: Log or perform any action before the download starts
console.log("Download initiated for the generated image.");
// You can also perform checks or modify the behavior here if needed.
if (!btn_download_el.href) {
event.preventDefault();
alert("No image available for download.");
}
});