mishig's picture
mishig HF Staff
new build
7c046a5
raw
history blame
5.83 kB
import{S as se,i as ne,s as re,k as I,a as U,q as Q,H as oe,l as x,m as S,h as o,c as W,r as X,n,I as K,F as i,b as Z,J as $,K as ee,A as te,L as ie,o as le,z as ce,M as de,N as Y}from"../../chunks/index-3db9fbe0.js";const{document:H}=de;function pe(f){let j,a,D,b,R,r,_,M,p,E,v,l,u,c,d,g,w,P,k,L,N,T,q,O,F,V,t;return{c(){j=I("link"),a=I("script"),b=I("script"),r=I("script"),M=U(),p=I("div"),E=I("canvas"),l=U(),u=I("div"),c=I("div"),d=U(),g=I("div"),w=I("input"),P=U(),k=I("button"),L=Q("diffuse the f rest"),T=U(),q=I("p"),O=Q("pro tip: upload img by dropping on the canvas"),this.h()},l(e){const s=oe('[data-svelte="svelte-bw39ln"]',H.head);j=x(s,"LINK",{href:!0,rel:!0}),a=x(s,"SCRIPT",{src:!0});var C=S(a);C.forEach(o),b=x(s,"SCRIPT",{src:!0});var y=S(b);y.forEach(o),r=x(s,"SCRIPT",{src:!0});var B=S(r);B.forEach(o),s.forEach(o),M=W(e),p=x(e,"DIV",{class:!0});var m=S(p);E=x(m,"CANVAS",{class:!0}),S(E).forEach(o),l=W(m),u=x(m,"DIV",{class:!0});var h=S(u);c=x(h,"DIV",{id:!0}),S(c).forEach(o),d=W(h),g=x(h,"DIV",{class:!0});var z=S(g);w=x(z,"INPUT",{type:!0,class:!0,placeholder:!0}),P=W(z),k=x(z,"BUTTON",{class:!0});var A=S(k);L=X(A,"diffuse the f rest"),A.forEach(o),z.forEach(o),T=W(h),q=x(h,"P",{class:!0});var J=S(q);O=X(J,"pro tip: upload img by dropping on the canvas"),J.forEach(o),h.forEach(o),m.forEach(o),this.h()},h(){n(j,"href","https://cdnjs.cloudflare.com/ajax/libs/drawingboard.js/0.4.2/drawingboard.css"),n(j,"rel","stylesheet"),K(a.src,D="https://code.jquery.com/jquery-1.12.4.min.js")||n(a,"src",D),K(b.src,R="https://cdnjs.cloudflare.com/ajax/libs/drawingboard.js/0.4.2/drawingboard.min.js")||n(b,"src",R),K(r.src,_="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.3.1/iframeResizer.contentWindow.min.js")||n(r,"src",_),n(E,"class",v="border-[1.2px] desktop:mt-[34px] "+(f[5],"")),n(c,"id","board-container"),n(w,"type","text"),n(w,"class","border-2 "),n(w,"placeholder","Add prompt"),n(k,"class","bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4"),n(g,"class",N="flex gap-x-2 mt-4 items-center justify-center "+(f[1]?"animate-pulse":"")),n(q,"class","mt-2 opacity-50"),n(u,"class",F="flex flex-col items-center "+(f[1]?"pointer-events-none":"")),n(p,"class","flex flex-wrap gap-x-4 gap-y-2 justify-center my-8")},m(e,s){i(H.head,j),i(H.head,a),i(H.head,b),i(H.head,r),Z(e,M,s),Z(e,p,s),i(p,E),f[7](E),i(p,l),i(p,u),i(u,c),f[8](c),i(u,d),i(u,g),i(g,w),$(w,f[0]),i(g,P),i(g,k),i(k,L),i(u,T),i(u,q),i(q,O),f[10](p),V||(t=[ee(w,"input",f[9]),ee(k,"click",f[6])],V=!0)},p(e,[s]){s&32&&v!==(v="border-[1.2px] desktop:mt-[34px] "+(e[5],""))&&n(E,"class",v),s&1&&w.value!==e[0]&&$(w,e[0]),s&2&&N!==(N="flex gap-x-2 mt-4 items-center justify-center "+(e[1]?"animate-pulse":""))&&n(g,"class",N),s&2&&F!==(F="flex flex-col items-center "+(e[1]?"pointer-events-none":""))&&n(u,"class",F)},i:te,o:te,d(e){o(j),o(a),o(b),o(r),e&&o(M),e&&o(p),f[7](null),f[8](null),f[10](null),V=!1,ie(t)}}}const G=500,ae=3e3;function ue(f,j,a){let D="",b=!1,R=!1,r,_,M,p,E,v,l=400,u,c,d,g=!1;async function w(){if(!_)return;const t=_.createImageData(r.width,r.height),e=t.data;for(let y=0,B=e.length;y<B;y+=4)e[y]=40*Math.random()*7,e[y+1]=40*Math.random()*7,e[y+2]=40*Math.random()*7,e[y+3]=255;const s=await createImageBitmap(t),C=performance.now()-M;_.globalAlpha=Math.min(C,ae)/ae,_.drawImage(s,0,0,l,l),b&&window.requestAnimationFrame(w)}function P(t){if(!_)return;const e=performance.now()-p;_.globalAlpha=Math.min(e,G)/G,_.drawImage(t,0,0,l,l),e<G&&window.requestAnimationFrame(()=>P(t))}async function k(t){const e=t.toDataURL("png"),C=await(await fetch(e)).blob(),y=new File([C],"canvas shot.png",{type:"image/png"}),B=t.getContext("2d").getImageData(0,0,l,l),m=await createImageBitmap(B);return{imgFile:y,imgBitmap:m}}async function L(){if(!D)return alert("Please add prompt");if(!r||!_)return;a(1,b=!0),a(5,g=!1),T(),M=performance.now(),w();const{imgFile:t,imgBitmap:e}=await k(r),s=new FormData;s.append("prompt",D),s.append("image",t);try{const C=await fetch("https://sdb.pcuenca.net/i2i",{method:"POST",body:s}),y=JSON.parse(await C.text()),{images:B}=y;if(!B.length)return alert("All the results were flagged. Please try again with diffeerent sketch + prompt");const m=await Promise.all(B.map(async z=>{const A=new Image;return A.src=`data:image/png;base64, ${z}`,await new Promise((J,fe)=>{A.onload=()=>J(A)}),A}));a(1,b=!1),v&&clearInterval(v),a(5,g=!0);let h=0;p=performance.now(),P(m[h%m.length]),E=()=>{v&&clearInterval(v),p=performance.now(),h=h+1,P(m[h%m.length])},v=setInterval(()=>{h=h+1,p=performance.now(),P(m[h%m.length])},2500),R||N()}catch(C){console.error(C),alert("Error happened, queue might be full. Please try again in a bit :)")}}function N(){const t=document.createElement("div");t.className="drawing-board-control";const e=document.createElement("button");e.innerHTML="\u23EF",e.onclick=E,t.append(e);const s=document.querySelector(".drawing-board-controls");s&&(s.appendChild(t),R=!0,a(3,c.onclick=()=>{v&&clearInterval(v)},c))}function T(){const t=d.getContext("2d");a(4,d.width=r.width,d),a(4,d.height=r.height,d),t.drawImage(r,0,0)}le(async()=>{const{innerWidth:t}=window;l=Math.min(l,Math.floor(t*.75)),a(3,c.style.width=`${l}px`,c),a(3,c.style.height=`${l}px`,c),a(4,d.style.width=`${l}px`,d),a(4,d.style.height=`${l}px`,d),await ce(),r=new window.DrawingBoard.Board("board-container",{size:10,controls:["Color",{Size:{type:"dropdown"}},{DrawingMode:{filler:!1}}],droppable:!0,webStorage:!1,enlargeYourContainer:!0}).canvas,_=r.getContext("2d"),T()});function q(t){Y[t?"unshift":"push"](()=>{d=t,a(4,d)})}function O(t){Y[t?"unshift":"push"](()=>{c=t,a(3,c)})}function F(){D=this.value,a(0,D)}function V(t){Y[t?"unshift":"push"](()=>{u=t,a(2,u)})}return[D,b,u,c,d,g,L,q,O,F,V]}class he extends se{constructor(j){super(),ne(this,j,ue,pe,re,{})}}export{he as default};