Spaces:
Configuration error
Configuration error
/* | |
https://github.com/david-haerer/chatapi | |
MIT License | |
Copyright (c) 2023 David Härer | |
Copyright (c) 2024 Ettore Di Giacinto | |
Permission is hereby granted, free of charge, to any person obtaining a copy | |
of this software and associated documentation files (the "Software"), to deal | |
in the Software without restriction, including without limitation the rights | |
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
copies of the Software, and to permit persons to whom the Software is | |
furnished to do so, subject to the following conditions: | |
The above copyright notice and this permission notice shall be included in all | |
copies or substantial portions of the Software. | |
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
SOFTWARE. | |
*/ | |
function submitKey(event) { | |
event.preventDefault(); | |
localStorage.setItem("key", document.getElementById("apiKey").value); | |
document.getElementById("apiKey").blur(); | |
} | |
function genImage(event) { | |
event.preventDefault(); | |
const input = document.getElementById("input").value; | |
const key = localStorage.getItem("key"); | |
promptDallE(key, input); | |
} | |
async function promptDallE(key, input) { | |
document.getElementById("loader").style.display = "block"; | |
document.getElementById("input").value = ""; | |
document.getElementById("input").disabled = true; | |
const model = document.getElementById("image-model").value; | |
const response = await fetch("/v1/images/generations", { | |
method: "POST", | |
headers: { | |
Authorization: `Bearer ${key}`, | |
"Content-Type": "application/json", | |
}, | |
body: JSON.stringify({ | |
model: model, | |
steps: 10, | |
prompt: input, | |
n: 1, | |
size: "512x512", | |
}), | |
}); | |
const json = await response.json(); | |
if (json.error) { | |
// Display error if there is one | |
var div = document.getElementById('result'); // Get the div by its ID | |
div.innerHTML = '<p style="color:red;">' + json.error.message + '</p>'; | |
return; | |
} | |
const url = json.data[0].url; | |
var div = document.getElementById('result'); // Get the div by its ID | |
var img = document.createElement('img'); // Create a new img element | |
img.src = url; // Set the source of the image | |
img.alt = 'Generated image'; // Set the alt text of the image | |
div.innerHTML = ''; // Clear the existing content of the div | |
div.appendChild(img); // Add the new img element to the div | |
document.getElementById("loader").style.display = "none"; | |
document.getElementById("input").disabled = false; | |
document.getElementById("input").focus(); | |
} | |
document.getElementById("key").addEventListener("submit", submitKey); | |
document.getElementById("input").focus(); | |
document.getElementById("genimage").addEventListener("submit", genImage); | |
document.getElementById("loader").style.display = "none"; | |
const storeKey = localStorage.getItem("key"); | |
if (storeKey) { | |
document.getElementById("apiKey").value = storeKey; | |
} | |