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