ART-Generator / index.html
FumesAI
Update index.html
27f09cf verified
raw
history blame contribute delete
No virus
22.2 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
<script type='text/javascript'>
window.smartlook||(function(d) {
var o=smartlook=function(){ o.api.push(arguments)},h=d.getElementsByTagName('head')[0];
var c=d.createElement('script');o.api=new Array();c.async=true;c.type='text/javascript';
c.charset='utf-8';c.src='https://web-sdk.smartlook.com/recorder.js';h.appendChild(c);
})(document);
smartlook('init', '19cd176c1b6b8d0e93c37310a0703c8691b8ee7f', { region: 'eu' });
</script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.11/katex.min.css">
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@100&display=swap" rel="stylesheet" <meta
charset="UTF-8">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8419334759638161"
crossorigin="anonymous"></script>
<title>AI Image Creator</title>
<style>
html, body {
margin: 0;
padding: 0;
box-sizing: border-box;
overflow-x: hidden !important;
}
body {
background-color: #000000;
margin: 0;
}
#main {
display: flex;
flex-direction: column;
margin: 50px;
margin: auto;
}
#cont {
background-color: #030303;
padding: 0px;
border-radius: 12px;
box-shadow: 8px 8px 16px #050505, -8px -8px 16px #080808;
display: flex;
align-items: center;
background: linear-gradient(black, black) padding-box,
linear-gradient(to left, cyan, purple) border-box;
border-radius: 12px;
border: 2.5px solid transparent;
width: 70%;
height: 9vh;
margin: auto;
margin-top: 5%;
margin-bottom: 20px;
}
#inp {
flex-grow: 1;
padding: 10px;
margin: 10px;
background: transparent;
border: none;
border-radius: 8px;
box-shadow: linear-gradient(145deg, rgb(0, 249, 153), #ff002b);
color: #fff;
outline: none;
min-height:40px;
}
#cont button {
padding: 2.5vh 4.6vh;
margin: 1vh;
background: linear-gradient(155deg, rgb(0, 149, 249), #9D00FF, rgb(255, 0, 43));
border: none;
border-radius: 8px;
color: #fff;
cursor: pointer;
}
#cont button:hover {
background: linear-gradient(145deg, #00ffab, rgb(255, 0, 43));
}
#as {
display: flex;
flex-direction: row;
width: 70%;
margin: auto;
justify-content: space-between;
}
#as button {
background-color: #0a0a0a;
border: none;
padding: 3vh 4.5vh;
font-size: 15px;
color: #ffffff;
cursor: pointer;
border-radius: 12px;
transition: box-shadow 0.3s ease-in-out;
}
#model{
background-color: #181717;
border: none;
padding: 3vh 4.5vh;
font-size: 15px;
color: #ffffff;
cursor: pointer;
border-radius: 12px;
transition: box-shadow 0.3s ease-in-out;
padding: 0px 0px 0px 20px ;
}
#as button:hover {
box-shadow: 15px 15px 30px #0d0d0d, -15px -15px 30px #1a1a1a; /* Adjusted shadow and highlight on hover */
}
@media only screen and (max-width: 600px) {
#cont {
width: 90%;
margin-bottom: 20px;
}
#main{
width: 90%;
}
#cont button {
padding: 15px 15px; /* Adjust button padding for smaller screens */
}
#as{
width: 88%;
}
#as button{
padding: 15px 20px; /* Adjust button padding for smaller screens */
}
.mod{
}
}
@media only screen and (max-width: 365px){
#cont{
width: 94%;
}
#main{
width: 94%;
}
#as{
width: 94%;
}
}
dialog{
background: rgba(29, 29, 29, 1);
border-radius: 16px;
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
margin-top: 20px;
border: 1px solid rgba(14, 13, 13, 0.3);
z-index: 100;
background: "Black";
}
#sli{
display: flex;
flex-direction: row;
align-items: center;
color: #eeeeee;
}
label{
font-family: 'Barlow Condensed';
font-size: 21px;
margin-right: 10px;
}
#sli input{
border: 1px solid rgb(137, 9, 223);
outline: none;
border-radius: 5px;
padding: 7px 20px;
background-color: transparent ;
color: white;
font-family: 'Barlow Condensed';
}
#Apply{
background-color: rgb(0, 247, 173);
padding: 5px 10px;
border: none;
color: #000000;
font-weight:500;
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
border-radius: 4px;
}
#close{
float: right;background-color: rgb(223, 7, 79); padding: 5px 10px;
border: none;
color: #000000;
font-weight:500;
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
border-radius: 4px;
}
#styles{
display: flex;
flex-direction: row;
gap: 6px;
color: white;
font-family: 'Barlow Condensed';
font-size: 20px;
flex-wrap: wrap;
}
@media screen and (min-width: 500px) and (max-width: 720px) {
dialog{
max-width: 420px;
}
#cont{
height: 7vh;
}
}
#styles{
align-items: center;
justify-content: center;
}
@media screen and (max-width: 500px) {
.ad{
display: flex;
flex-direction: row;
}
dialog {
max-width: 300px;
}
#jd {
font-size: 14px;
}
#styles{
align-items: center;
justify-content: center;
}
}
#jd{
margin: 10px;
padding: 5px;
background-color: transparent;
color: #eeeeee;
margin-right: 0;
margin-left: 0;
background: linear-gradient(black, rgb(0, 0, 0)) padding-box,
linear-gradient(to right, rgb(1, 255, 234),#ff0055) border-box;
border-radius: 20px;
border: 2.5px solid transparent;
border-radius: 7px;
margin-left: 0px;
font-family: 'Barlow Condensed';
font-size: 18px;
color: white;
}
#jd:hover{
background: linear-gradient(black, black) padding-box,
linear-gradient(to right, blue,#00ffdd) border-box;
border-radius: 10px;
border: 2.5px solid transparent;
}
#ow{
float: right;
margin: 10px;
padding: 10px;
background-color: transparent;
color: #eeeeee;
background: linear-gradient(black, black) padding-box,
linear-gradient(to right, rgb(0, 255, 149), rgb(174, 0, 255)) border-box;
border-radius: 10px;
border: 2.5px solid transparent;
border-radius: 10px;
margin-bottom: 0px;
margin-right: 0;
margin-left: 0;
border: 2px solid white;
}
#ow:hover{
background: linear-gradient(black, black) padding-box,
linear-gradient(to right, rgb(174, 0, 255),rgb(0, 255, 149)) border-box;
border-radius: 10px;
border: 2.5px solid transparent;
}
#dvv{
width: 100%;
margin-left: 10px;
}
#model{
width: 170px;
height: 50px;
overflow: visible;
}
#model option{
white-space: normal;
padding: 10px;
font-family: 'Barlow Condensed';
line-height: 1.2;
font-size: 24px;
}
.ad{
display: flex;
flex-direction: row;
}
#grad {
background-image: linear-gradient(45deg, rgb(0, 255, 149),rgb(255, 0, 43), rgb(174, 0, 255));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
color: #000;
margin-left:15px;
font-family: 'Barlow Condensed'
}
#imshow progress {
margin-left: auto;
margin-right: auto;
display: block;
height: 25px;
width: 250px;
margin-top: 20px;
}
#imshow h5{
display: block;
}
progress::-webkit-progress-bar {
background-color: rgb(0,5,60);
}
progress::-webkit-progress-value {
background-color: rgb(0, 255, 149);
}
progress {
background-color: rgb(0,5,60);
}
progress::-moz-progress-bar {
background-color: rgb(0, 255, 149); }
progress {
background: rgb(0,10,60);
}
#x{
width:300px;
padding:0px;
gap:0px;
}
#aaa{
color: blue;
margin-left: 15px;
font-family: Arial;
letter-spacing: 0.3px;
}
#imshow {
display: flex;
justify-content: center;
max-width: 500px;
margin: auto;
max-height: 400px;
margin-top: 25px;
min-height: 200px;
}
#imshow img {
max-width: 100%;
max-height: 400px;
margin: 10px;
}
#ratio{
display: flex;
flex-direction: row;
gap: 6px;
color: white;
font-family: 'Barlow Condensed';
font-size: 20px;
flex-wrap: wrap;
}
@media screen and (max-width: 800px) {
#imshow {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
max-width: 330px;
margin-top: 50px;
margin: auto;
overflow: auto;
height: 400px;
}
#imshow img {
max-width: 100%;
max-height: 100%;
margin: 10px;
object-fit: contain;
}
#img1{
padding-top: 125%;
}
}
#main{
margin-bottom: 30px;
}
#u{
display: flex;
flex-direction: row;
}
#xx{
display:flex;
flex-direction: row;}
#gra{
color: white;
font-family: 'Barlow Condensed';
font-weight: 1;
font-size: 21px;
}
</style>
</head>
<body>
<div id="dvv">
<button id="jd">Discord</button>
<!--<button id="ow">
Donate
</button>-->
</div>
<h3 id="grad">Please like this space ❤️</h3><a href="https://www.buymeacoffee.com/mygX" id="aaa" target=”_blank”>BUY ME COFEE ☕ </a>
<p style="color:white;font-family:Barlow Condensed;margin-left:15px">Please open a community discussion if you face any problem or need some assistance. </p>
<div id="xx"> <h3 id="gra">Visit </h3><a href="https://fumesai.web.app" target=”_blank” style="color:blue;">OFFICIAL WEBSITE</a> <h3 id="gra">to create Unlimited images for free</h3></div>
<div id="main">
<div id="cont">
<input type="text" name="" id="inp" placeholder=" Enter Prompt here..">
<button id="create">Create </button>
</div>
<div id="as">
<select name="" id="model">
<option value="121" class="mod">DARK FANTASY</option>
<option value="134" class="mod">Artistic</option>
<option value="130" class="mod">HDR</option>
<option value="118" class="mod">3D figure</option>
<option value="126" class="mod">Anime</option>
<option value="78" class="mod">Realistic</option>
<option value="122" class="mod">InkPunk</option>
<option value="132" class="logo">Logo</option>
<option value="123" class="mod">Horror</option>
</select>
<div id="Advance Setting"><button>Setting</button></div>
</div>
</div>
<dialog id="dialog">
<p style="font-size: 23px; font-family: 'Barlow Condensed'; margin: 0px; color: rgb(197, 14, 188);">Styles: </p>
<div id="styles">
<p>Cinematic</p>
<input type="radio" name="style" value="cinema" >
<p>FILM<p>
<input type="radio" name="style" value="fumes">
<p>Photography</p>
<input type="radio" name="style" value="photo">
<p>Creative</p>
<input type="radio" name="style" value="fantasy">
<p>Digital Art</p>
<input type="radio" name="style" value="digital">
<p>No Style</p>
<input type="radio" name="style" value="no" checked>
</div>
<div id="sli">
<label for="#np" style="margin-bottom: 15px;">Negative Prompt: </label>
<input type="text" placeholder="Negative prompt" id="np" style="margin-bottom: 15px;">
</div>
<div id="sli">
<label for="#gds">Guidence Scale: </label>
<input type="range" id="gds" value="10" min="7" max="20" step="1"><p id="gdsp">7</p>
</div>
<div id="sli">
<label for="#step">Steps: </label>
<input type="range" id="step" value="20" min="10" max="40" step="1"><p id="stepp">50</p>
</div>
<div id="sli">
<label for="#gds">Seed: </label>
<input type="range" id="seed" min="0" value="0" step="1" max="99999"><p id="seedp">0</p>
</div>
<div id="ratio">
</div>
<button id="close">Close</button>
</dialog>
<div id="imshow">
</div>
<script src="https://www.google.com/recaptcha/api.js?render=6Leqa5cpAAAAABVhh6FGouusHKaPjYz65-0Yy8kS"></script>
<script>
document.getElementById('jd').onclick = ()=>{
window.open('https://discord.gg/ju4yQBfQ7p')
}
/*document.getElementById('ow').onclick = ()=>{
window.open('https://www.buymeacoffee.com/mygx')
}*/
let dialog = document.getElementById('dialog')
let openbtn = document.getElementById('Advance Setting')
let closebtn = document.getElementById('close')
openbtn.onclick = ()=>{
dialog.show()
document.getElementById('imshow').style.border = '0px solid black transparent'
}
closebtn.onclick= ()=>{
dialog.close()
document.getElementById('imshow').style.background = 'linear-gradient(black, black) padding-box,linear-gradient(to right, red, blue) border-box'
}
let inp = document.getElementById('inp') //user prompt
let np = document.getElementById('np') // negative pr3
let gd = document.getElementById('gds') // guidence_scale value
let step = document.getElementById('step') // steps value
let seed = document.getElementById('seed') // seed value
let seedp = document.getElementById('seedp') // seed innerText
let stepp = document.getElementById('stepp') // step innerText
let gdsp = document.getElementById('gdsp') // guidence_scale innerText
let btn = document.getElementById('create') // Create button
let heightp = 1024 // height of photo
let widthp = 1024 // width of photo
let cn = false
let model = '121'
let ar = '1:1'
gd.addEventListener('input',()=>{
gdsp.innerText = gd.value
})
step.addEventListener('input',()=>{
stepp.innerText = step.value
})
seed.addEventListener('input',()=>{
seedp.innerText = seed.value
})
isFumes = true
let prompt = ''
let nps = ''
let reload = false
document.getElementById('styles').onchange = ()=>{
const selectedStyle = document.querySelector('input[name="style"]:checked');
if(selectedStyle.value =='photo'){
prompt = ' ,cinematic photo 35mm photograph, film, bokeh, professional, 4k, highly detailed'
nps = ' ,(bad hands, bad anatomy, bad body, bad face, bad teeth, bad arms, bad legs, deformities:1.3),poorly drawn,deformed hands,deformed fingers,deformed faces,deformed eyes,mutated fingers,deformedbody parts,mutated body parts,mutated hands, disfigured,oversaturated,bad anatom,cropped, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, out of frame, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, deformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck,deformed eyes'
}
if(selectedStyle.value == 'cinema'){
nps = ' ,(bad hands, bad anatomy, bad body, bad face, bad teeth, bad arms, bad legs, deformities:1.3),poorly drawn,deformed hands,deformed fingers,deformed faces,deformed eyes,mutated fingers,deformedbody parts,mutated body parts,mutated hands, disfigured,oversaturated,bad anatom,cropped, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, out of frame, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, deformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck,deformed eyes'
prompt = " ,cinematic film still. shallow depth of field, vignette, highly detailed, high budget, bokeh, cinemascope, moody, epic, gorgeous, film grain, grainy"
}
if(selectedStyle.value == 'fantasy'){
nps = ' ,(bad hands, bad anatomy, bad body, bad face, bad teeth, bad arms, bad legs, deformities:1.3),poorly drawn,deformed hands,deformed fingers,deformed faces,deformed eyes,mutated fingers,deformedbody parts,mutated body parts,mutated hands, disfigured,oversaturated,bad anatom,cropped, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, out of frame, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, deformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck,deformed eyes'
prompt = " ,ethereal fantasy concept art . magnificent, celestial, ethereal, painterly, epic, majestic, magical, fantasy art, cover art, dreamy"
}
if(selectedStyle.value == 'fumes'){
nps = ' ,(bad hands, bad anatomy, bad body, bad face, bad teeth, bad arms, bad legs, deformities:1.3),poorly drawn,deformed hands,deformed fingers,deformed faces,deformed eyes,mutated fingers,deformedbody parts,mutated body parts,mutated hands, disfigured,oversaturated,bad anatom,cropped, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, out of frame, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, deformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck,deformed eyes'
prompt = ' ,analog film photo . faded film, desaturated, 35mm photo, grainy, vignette, vintage, Kodachrome, Lomography, stained, highly detailed, found footage'
}
if(selectedStyle.value == 'no'){
prompt = ''
nps = ''
}
if(selectedStyle.value == 'digital'){
prompt = ' ,concept art, digital artwork, illustrative, painterly, matte painting, highly detailed'
nps = ' ,(bad hands, bad anatomy, bad body, bad face, bad teeth, bad arms, bad legs, deformities:1.3),poorly drawn,deformed hands,deformed fingers,deformed faces,deformed eyes,mutated fingers,deformedbody parts,mutated body parts,mutated hands, disfigured,oversaturated,bad anatom,cropped, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, out of frame, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, deformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck,deformed eyes'
}
}
document.getElementById('ratio').onchange = ()=>{
const selectedStyle = document.querySelector('input[name="ratio"]:checked');
if(selectedStyle.value =='1:1'){
widthp = 1024
heightp = 1024
ar = '1:1'
}
if(selectedStyle.value == '16:9'){
ar = '16:9'
widthp = 1024
heightp = 576
document.getElementById("img1").style.marginTop = "30%";
}
if(selectedStyle.value == '9:16'){
ar = '9:16'
widthp = 576
heightp = 1024
}
if(selectedStyle.value == '1:2'){
ar = '1:2'
widthp = 544
heightp = 1088
}
if(selectedStyle.value == '4:3'){
widthp = 896
heightp = 672
ar = '4:3'
}
}
document.getElementById("model").onchange = ()=>{
select = document.getElementById("model")
model = select.value
console.log(model)
}
btn.onclick = async function xx() {
grecaptcha.ready(async function () {
if (cn == true) {
window.location.reload();
}
btn.innerText = "CANCEL";
cn = true;
let div = document.getElementById('imshow');
div.innerHTML = '';
document.getElementById('imshow').innerHTML = '';
let pi = document.createElement('h5');
let progress = document.createElement('progress');
progress.value = 1;
progress.max = 100;
div.appendChild(progress);
setInterval(() => {
progress.value += 3;
}, 350);
async function generate() {
// Generate a new token for each call
const token = await new Promise((resolve) => {
grecaptcha.execute('6Leqa5cpAAAAABVhh6FGouusHKaPjYz65-0Yy8kS', { action: 'submit' }).then(resolve);
});
wToken = localStorage.getItem("wToken");
if (wToken == null || wToken == "undefined") {
wToken = '';
}
params = {
'prompt': inp.value + prompt,
'nprompt': np.value,
"steps": Number(step.value),
'guidenceScale': Number(gd.value),
"style": prompt,
"width": Number(widthp),
"height": Number(heightp),
"ar": ar,
"style": model,
"wToken": wToken,
token: token
};
try {
const response = await fetch('https://fumes-api.onrender.com/wGen ', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Connection': 'keep-alive',
},
body: JSON.stringify(params)
});
if (response.status == 400) {
pi.innerText = 'reCaptcha human validation failed ⭕ user is suspected to be bot ';
div.append(pi);
alert('human verification failed');
console.log(pi);
}
cn = false;
btn.innerText = "CREATE";
const data = await response.json();
localStorage.setItem("wToken", data.token);
progress.innerHTML = '';
progress.style.display = 'none';
const img = document.createElement('img');
img.id = "hehe";
pi.innerHTML = '';
pi.innerText = '';
if(data.url == "NSFW"){
pi.innerText = 'NSFW Content detected';
div.append(pi)
}
img.src = data.url;
div.appendChild(img);
console.log(widthp.innerText);
btn.disabled = false;
isimg = true;
} catch (error) {
btn.disabled = false;
console.error('An error occurred:', error);
pi.innerText = 'reCaptcha human verification failed ❌ user is suspected to be bot ';
pi.style.color = "white";
}
}
await Promise.all([generate(), generate()]);
});
};
</script>
</body>
</html>