index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>KNIGHTS PRIME AI</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<style>
body{background:#000;color:#0f0;text-align:center;font-family:Arial;padding:10px}
h1{color:#0f0;text-shadow:0 0 10px #0f0}
input,select,button{padding:12px;margin:8px;width:90%;font-size:16px;background:#111;color:#0f0;border:2px solid #0f0;border-radius:8px}
button{background:#0f0;color:#000;font-weight:700;cursor:pointer}
button:active{transform:scale(0.95)}
#out img{max-width:90%;border:3px solid #0f0;margin:10px;border-radius:12px}
</style>
</head>
<body>
<h1>⚔️ KNIGHTS PRIME AI ⚔️</h1>
<input id="p" placeholder="Type prompt... eg: samurai dragon"><br>
<select id="s">
<option>DRAGON</option>
<option>OIL PAINTING</option>
<option>WATERCOLOUR</option>
<option>ANIME</option>
<option>CYBER</option>
<option>3D RENDER</option>
<option>PIXEL ART</option>
<option>FANTASY</option>
</select><br>
<button onclick="go()">GENERATE</button>
<div id="out"></div>
<button id="dl" style="display:none" onclick="save()">⬇️ DOWNLOAD</button>
<button id="sh" style="display:none" onclick="share()">📤 SHARE</button>
<script>
let blob=null;
async function go(){
if(!p.value){alert("Type a prompt first");return}
out.innerHTML="Generating..."
let prompt=p.value+", "+s.value+" style, 8k, masterpiece, detailed";
let url="https://image.pollinations.ai/prompt/"+encodeURIComponent(prompt)+"?seed="+Date.now();
let res=await fetch(url);
blob=await res.blob();
let imgUrl=URL.createObjectURL(blob);
out.innerHTML='<img src="'+imgUrl+'">';
dl.style.display=sh.style.display='inline-block';
}
function save(){
let a=document.createElement('a');
a.href=URL.createObjectURL(blob);
a.download="knightsprime.png";
a.click()
}
async function share(){
let f=new File(, "knightsprime.png", {type:blob.type});
if(navigator.share){navigator.share({files:, text:p.value})}
else{alert("Share not supported on this phone")}
}
</script>
</body>
</html>