@enslo/sd-metadata 2.1.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,11 @@
1
- "use strict";var sdMetadata=(()=>{var ye=Object.defineProperty;var tn=Object.getOwnPropertyDescriptor;var nn=Object.getOwnPropertyNames;var rn=Object.prototype.hasOwnProperty;var on=(e,t)=>{for(var n in t)ye(e,n,{get:t[n],enumerable:!0})},sn=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of nn(t))!rn.call(e,o)&&o!==n&&ye(e,o,{get:()=>t[o],enumerable:!(r=tn(t,o))||r.enumerable});return e};var an=e=>sn(ye({},"__esModule",{value:!0}),e);var lo={};on(lo,{embed:()=>Ee,formatAsWebUI:()=>H,formatRaw:()=>Te,read:()=>At,softwareLabels:()=>Zt,stringify:()=>Ge,write:()=>Yt,writeAsWebUI:()=>Ee});var M=(e,t)=>t!==void 0?[{type:"tEXt",keyword:e,text:t}]:[],_e=(e,t)=>t!==void 0?[{type:"iTXt",keyword:e,compressionFlag:0,compressionMethod:0,languageTag:"",translatedKeyword:"",text:t}]:[],S=(e,t)=>e.find(n=>n.source.type===t),k=e=>{if(e!==void 0)return typeof e=="string"?e:JSON.stringify(e)};function un(e){return e.replace(/[\u0100-\uffff]/g,t=>`\\u${t.charCodeAt(0).toString(16).padStart(4,"0")}`)}function J(e){return e.replace(/\\u([0-9a-fA-F]{4})/g,(t,n)=>String.fromCharCode(Number.parseInt(n,16)))}function cn(e){return/[^\x00-\xFF]/.test(e)}function h(e,t,n){if(t===void 0)return[];switch(n){case"dynamic":return(cn(t)?"iTXt":"tEXt")==="iTXt"?_e(e,t):M(e,t);case"text-unicode-escape":{let r=un(t);return M(e,r)}case"text-utf8-raw":return M(e,t)}}function re(e,t){return e.flatMap(([n,r])=>{let o=t[n]??t.default;return h(n,r,o)})}var a={ok:e=>({ok:!0,value:e}),error:e=>({ok:!1,error:e})};function W(e){return e instanceof ArrayBuffer?new Uint8Array(e):e}function V(e){return e.length<8?!1:e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71&&e[4]===13&&e[5]===10&&e[6]===26&&e[7]===10}function B(e){return e.length<2?!1:e[0]===255&&e[1]===216}function X(e){return e.length<12?!1:e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70&&e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80}function j(e){return V(e)?"png":B(e)?"jpeg":X(e)?"webp":null}function P(e,t){return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint16(t)}function U(e,t,n){return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint16(t,n)}function oe(e,t){return(e[t]??0)|(e[t+1]??0)<<8|(e[t+2]??0)<<16}function _(e,t){return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint32(t)}function R(e,t){return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint32(t,!0)}function $(e,t,n){return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint32(t,n)}function T(e,t){return String.fromCharCode(e[t]??0,e[t+1]??0,e[t+2]??0,e[t+3]??0)}function he(e,t,n){new DataView(e.buffer,e.byteOffset,e.byteLength).setUint16(t,n)}function L(e,t,n,r){new DataView(e.buffer,e.byteOffset,e.byteLength).setUint16(t,n,r)}function xe(e,t,n){new DataView(e.buffer,e.byteOffset,e.byteLength).setUint32(t,n)}function Se(e,t,n){new DataView(e.buffer,e.byteOffset,e.byteLength).setUint32(t,n,!0)}function N(e,t,n,r){new DataView(e.buffer,e.byteOffset,e.byteLength).setUint32(t,n,r)}function ie(e){let t=e.filter(f=>f.source.type==="exifImageDescription"||f.source.type==="exifMake"),n=e.filter(f=>f.source.type==="exifUserComment");if(t.length===0&&n.length===0)return new Uint8Array(0);let r=!0,o=[],s=[];for(let f of t)if(f.source.type==="exifImageDescription"){let b=Ne(f.data,f.source.prefix);o.push({tag:270,type:2,data:b})}else if(f.source.type==="exifMake"){let b=Ne(f.data,f.source.prefix);o.push({tag:271,type:2,data:b})}for(let f of n)if(f.source.type==="exifUserComment"){let b=mn(f.data);s.push({tag:37510,type:7,data:b})}let i=s.length>0;i&&o.push({tag:34665,type:4,data:new Uint8Array(4)}),o.sort((f,b)=>f.tag-b.tag),s.sort((f,b)=>f.tag-b.tag);let u=8,c=o.length,m=2+12*c+4,g=s.length,y=i?2+12*g+4:0,l=u,I=l+m,x=I+y;if(i){let f=o.find(b=>b.tag===34665);f&&N(f.data,0,I,r)}let C=new Map;for(let f of[...o,...s])f.data.length>4&&(C.set(f,x),x+=f.data.length,f.data.length%2!==0&&(x+=1));let ge=x,w=new Uint8Array(ge);w[0]=73,w[1]=73,L(w,2,42,r),N(w,4,l,r);let v=l;L(w,v,c,r),v+=2;for(let f of o)Re(w,v,f,C.get(f),r),v+=12;if(N(w,v,0,r),v+=4,i){L(w,v,g,r),v+=2;for(let f of s)Re(w,v,f,C.get(f),r),v+=12;N(w,v,0,r)}for(let[f,b]of C)w.set(f.data,b);return w}function Re(e,t,n,r,o){L(e,t,n.tag,o),L(e,t+2,n.type,o),N(e,t+4,n.data.length,o),n.data.length<=4?e.set(n.data,t+8):N(e,t+8,r??0,o)}var pn=new Uint8Array([85,78,73,67,79,68,69,0]);function mn(e){let t=new Uint8Array(8+e.length*2),n=new DataView(t.buffer);t.set(pn);for(let r=0;r<e.length;r++)n.setUint16(8+r*2,e.charCodeAt(r),!0);return t}function Ne(e,t){let n=t?`${t}: ${e}`:e,r=new TextEncoder().encode(n),o=new Uint8Array(r.length+1);return o.set(r,0),o[r.length]=0,o}var Oe=225,Fe=254,fn=218,dn=217,we=new Uint8Array([69,120,105,102,0,0]);function K(e,t){if(!B(e))return a.error({type:"invalidSignature"});let n=t.filter(l=>l.source.type==="jpegCom"),r=t.filter(l=>l.source.type==="exifUserComment"||l.source.type==="exifImageDescription"||l.source.type==="exifMake"),o=ln(e);if(!o.ok)return o;let{beforeSos:s,scanData:i}=o.value,u=r.length>0?gn(r):null,c=n.map(l=>yn(l.data)),m=2;u&&(m+=u.length);for(let l of s)m+=l.length;for(let l of c)m+=l.length;m+=i.length;let g=new Uint8Array(m),y=0;g[y++]=255,g[y++]=216,u&&(g.set(u,y),y+=u.length);for(let l of s)g.set(l,y),y+=l.length;for(let l of c)g.set(l,y),y+=l.length;return g.set(i,y),a.ok(g)}function ln(e){let t=[],n=2;for(;n<e.length-1;){if(e[n]!==255)return a.error({type:"corruptedStructure",message:`Expected marker at offset ${n}`});for(;e[n]===255&&n<e.length-1;)n++;let r=e[n];if(n++,r===fn){let m=e.slice(n-2);return a.ok({beforeSos:t,scanData:m})}if(r===dn)return a.ok({beforeSos:t,scanData:new Uint8Array([255,217])});if(n+2>e.length)return a.error({type:"corruptedStructure",message:"Unexpected end of file"});let o=P(e,n),s=n-2,i=n+o;if(i>e.length)return a.error({type:"corruptedStructure",message:"Segment extends beyond file"});!(r===Oe&&n+2+6<=e.length&&e[n+2]===69&&e[n+3]===120&&e[n+4]===105&&e[n+5]===102&&e[n+6]===0&&e[n+7]===0)&&!(r===Fe)&&t.push(e.slice(s,i)),n=i}return a.error({type:"corruptedStructure",message:"No SOS marker found"})}function gn(e){let t=ie(e);if(t.length===0)return new Uint8Array(0);let n=2+we.length+t.length,r=new Uint8Array(2+n);return r[0]=255,r[1]=Oe,he(r,2,n),r.set(we,4),r.set(t,4+we.length),r}function yn(e){let t=new TextEncoder().encode(e),n=2+t.length,r=new Uint8Array(2+n);return r[0]=255,r[1]=Fe,he(r,2,n),r.set(t,4),r}var Z=new Uint8Array([137,80,78,71,13,10,26,10]);function q(e,t){if(!V(e))return a.error({type:"invalidSignature"});if(hn(e)===-1)return a.error({type:"noIhdrChunk"});let r=xn(e),o=t.map(c=>c.type==="tEXt"?Sn(c):bn(c)),s=Z.length+r.ihdr.length+o.reduce((c,m)=>c+m.length,0)+r.others.reduce((c,m)=>c+m.length,0),i=new Uint8Array(s),u=0;i.set(Z,u),u+=Z.length,i.set(r.ihdr,u),u+=r.ihdr.length;for(let c of o)i.set(c,u),u+=c.length;for(let c of r.others)i.set(c,u),u+=c.length;return a.ok(i)}function hn(e){let t=Z.length;if(t+8>e.length)return-1;let n=_(e,t);return T(e,t+4)!=="IHDR"?-1:t+4+4+n+4}function xn(e){let t=[],n=Z.length,r=new Uint8Array(0);for(;n<e.length;){let o=n;if(n+4>e.length)break;let s=_(e,n);if(n+=4,n+4>e.length)break;let i=T(e,n);if(n+=4,n+s+4>e.length)break;n+=s,n+=4;let u=n,c=e.slice(o,u);if(i==="IHDR"?r=c:i!=="tEXt"&&i!=="iTXt"&&t.push(c),i==="IEND")break}return{ihdr:r,others:t}}function Sn(e){let t=kn(e.keyword),n=Y(e.text),r=new Uint8Array(t.length+1+n.length);return r.set(t,0),r[t.length]=0,r.set(n,t.length+1),De("tEXt",r)}function bn(e){let t=Y(e.keyword),n=Y(e.languageTag),r=Y(e.translatedKeyword),o=Y(e.text),s=t.length+1+1+1+n.length+1+r.length+1+o.length,i=new Uint8Array(s),u=0;return i.set(t,u),u+=t.length,i[u++]=0,i[u++]=e.compressionFlag,i[u++]=e.compressionMethod,i.set(n,u),u+=n.length,i[u++]=0,i.set(r,u),u+=r.length,i[u++]=0,i.set(o,u),De("iTXt",i)}function De(e,t){let n=new Uint8Array(8+t.length+4);xe(n,0,t.length),n.set(new TextEncoder().encode(e),4),n.set(t,8);let r=n.slice(4,8+t.length),o=vn(r);return xe(n,8+t.length,o),n}function kn(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}function Y(e){return new TextEncoder().encode(e)}var Cn=wn();function wn(){let e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let r=0;r<8;r++)n&1?n=3988292384^n>>>1:n=n>>>1;e[t]=n>>>0}return e}function vn(e){let t=4294967295;for(let n=0;n<e.length;n++)t=(Cn[(t^(e[n]??0))&255]??0)^t>>>8;return(t^4294967295)>>>0}var Tn=new Uint8Array([82,73,70,70]),En=new Uint8Array([87,69,66,80]);function Q(e,t){if(!X(e))return a.error({type:"invalidSignature"});let n=Un(e);if(!n.ok)return n;let{chunks:r}=n.value,o=Pn(t),s=4;for(let m of r)s+=m.length;o&&(s+=o.length);let i=new Uint8Array(8+s),u=0;i.set(Tn,u),u+=4,Se(i,u,s),u+=4,i.set(En,u),u+=4;let c=!1;for(let m of r)i.set(m,u),u+=m.length,!c&&o&&Mn(m)&&(i.set(o,u),u+=o.length,c=!0);return!c&&o&&i.set(o,u),a.ok(i)}function Mn(e){if(e.length<4)return!1;let t=T(e,0);return t==="VP8 "||t==="VP8L"||t==="VP8X"}function Un(e){let t=[],n="",r=12;for(;r<e.length-8;){let o=T(e,r),s=R(e,r+4);if(n||(n=o),r+8+s>e.length)return a.error({type:"invalidRiffStructure",message:`Chunk extends beyond file at offset ${r}`});if(o!=="EXIF"){let u=s+s%2,c=e.slice(r,r+8+u);t.push(c)}let i=s+s%2;r+=8+i}return a.ok({chunks:t,firstChunkType:n})}function Pn(e){let t=e.filter(i=>i.source.type==="exifUserComment"||i.source.type==="exifImageDescription"||i.source.type==="exifMake");if(t.length===0)return null;let n=ie(t);if(n.length===0)return null;let r=n.length,o=r+r%2,s=new Uint8Array(8+o);return s.set(new TextEncoder().encode("EXIF")),Se(s,4,r),s.set(n,8),s}function ve(e){return e.replace(/\r\n/g,`
1
+ var sdMetadata=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let t=(e,t)=>t===void 0?[]:[{type:`tEXt`,keyword:e,text:t}],n=(e,t)=>t===void 0?[]:[{type:`iTXt`,keyword:e,compressionFlag:0,compressionMethod:0,languageTag:``,translatedKeyword:``,text:t}],r=(e,t)=>e.find(e=>e.source.type===t),i=e=>{if(e!==void 0)return typeof e==`string`?e:JSON.stringify(e)};function a(e){return e.replace(/[\u0100-\uffff]/g,e=>`\\u${e.charCodeAt(0).toString(16).padStart(4,`0`)}`)}function o(e){return e.replace(/\\u([0-9a-fA-F]{4})/g,(e,t)=>String.fromCharCode(Number.parseInt(t,16)))}function s(e){return/[^\x00-\xFF]/.test(e)}function c(e,r,i){if(r===void 0)return[];switch(i){case`dynamic`:return(s(r)?`iTXt`:`tEXt`)==`iTXt`?n(e,r):t(e,r);case`text-unicode-escape`:return t(e,a(r));case`text-utf8-raw`:return t(e,r)}}function l(e,t){return e.flatMap(([e,n])=>c(e,n,t[e]??t.default))}let u={ok:e=>({ok:!0,value:e}),error:e=>({ok:!1,error:e})};function d(e){return e instanceof ArrayBuffer?new Uint8Array(e):e}function f(e){return e.length<8?!1:e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71&&e[4]===13&&e[5]===10&&e[6]===26&&e[7]===10}function p(e){return e.length<2?!1:e[0]===255&&e[1]===216}function m(e){return e.length<12?!1:e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70&&e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80}function h(e){return f(e)?`png`:p(e)?`jpeg`:m(e)?`webp`:null}function g(e,t){return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint16(t)}function _(e,t,n){return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint16(t,n)}function v(e,t){return(e[t]??0)|(e[t+1]??0)<<8|(e[t+2]??0)<<16}function y(e,t){return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint32(t)}function b(e,t){return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint32(t,!0)}function x(e,t,n){return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint32(t,n)}function S(e,t){return String.fromCharCode(e[t]??0,e[t+1]??0,e[t+2]??0,e[t+3]??0)}function C(e,t,n){new DataView(e.buffer,e.byteOffset,e.byteLength).setUint16(t,n)}function w(e,t,n,r){new DataView(e.buffer,e.byteOffset,e.byteLength).setUint16(t,n,r)}function ee(e,t,n){new DataView(e.buffer,e.byteOffset,e.byteLength).setUint32(t,n)}function te(e,t,n){new DataView(e.buffer,e.byteOffset,e.byteLength).setUint32(t,n,!0)}function T(e,t,n,r){new DataView(e.buffer,e.byteOffset,e.byteLength).setUint32(t,n,r)}let E=new TextEncoder().encode(`http://ns.adobe.com/xap/1.0/\0`);function ne(e,t){if(t+E.length>e.length)return!1;for(let n=0;n<E.length;n++)if(e[t+n]!==E[n])return!1;return!0}function re(e){return e===`XML:com.adobe.xmp`}function ie(e){if(e.length>65535)return null;let t=[[`CreatorTool`,ae(e,`xmp`,`CreatorTool`)],[`UserComment`,oe(e,`exif`,`UserComment`)],[`parameters`,oe(e,`dc`,`description`)]].filter(e=>e[1]!==void 0);return t.length>0?Object.fromEntries(t):null}function ae(e,t,n){let r=RegExp(`<${t}:${n}>([^<]*)</${t}:${n}>`),i=e.match(r);return i?.[1]?se(i[1]):void 0}function oe(e,t,n){let r=RegExp(`<${t}:${n}>[\\s\\S]*?<rdf:li[^>]*(?<!/)>([\\s\\S]*?)</rdf:li>[\\s\\S]*?</${t}:${n}>`),i=e.match(r);return i?.[1]?se(i[1]):void 0}function se(e){return e.replace(/&#x([0-9a-fA-F]+);/g,(e,t)=>{try{return String.fromCodePoint(parseInt(t,16))}catch{return e}}).replace(/&#(\d+);/g,(e,t)=>{try{return String.fromCodePoint(parseInt(t,10))}catch{return e}}).replace(/&lt;/g,`<`).replace(/&gt;/g,`>`).replace(/&quot;/g,`"`).replace(/&apos;/g,`'`).replace(/&amp;/g,`&`)}let ce=34665;function le(e){let t=e.filter(e=>e.source.type===`exifImageDescription`||e.source.type===`exifMake`),n=e.filter(e=>e.source.type===`exifUserComment`);if(t.length===0&&n.length===0)return new Uint8Array;let r=[],i=[];for(let e of t)if(e.source.type===`exifImageDescription`){let t=pe(e.data,e.source.prefix);r.push({tag:270,type:2,data:t})}else if(e.source.type===`exifMake`){let t=pe(e.data,e.source.prefix);r.push({tag:271,type:2,data:t})}for(let e of n)if(e.source.type===`exifUserComment`){let t=fe(e.data);i.push({tag:37510,type:7,data:t})}let a=i.length>0;a&&r.push({tag:ce,type:4,data:new Uint8Array(4)}),r.sort((e,t)=>e.tag-t.tag),i.sort((e,t)=>e.tag-t.tag);let o=r.length,s=2+12*o+4,c=i.length,l=a?2+12*c+4:0,u=8+s,d=u+l;if(a){let e=r.find(e=>e.tag===ce);e&&T(e.data,0,u,!0)}let f=new Map;for(let e of[...r,...i])e.data.length>4&&(f.set(e,d),d+=e.data.length,e.data.length%2!=0&&(d+=1));let p=new Uint8Array(d);p[0]=73,p[1]=73,w(p,2,42,!0),T(p,4,8,!0);let m=8;w(p,m,o,!0),m+=2;for(let e of r)ue(p,m,e,f.get(e),!0),m+=12;if(T(p,m,0,!0),m+=4,a){w(p,m,c,!0),m+=2;for(let e of i)ue(p,m,e,f.get(e),!0),m+=12;T(p,m,0,!0)}for(let[e,t]of f)p.set(e.data,t);return p}function ue(e,t,n,r,i){w(e,t,n.tag,i),w(e,t+2,n.type,i),T(e,t+4,n.data.length,i),n.data.length<=4?e.set(n.data,t+8):T(e,t+8,r??0,i)}let de=new Uint8Array([85,78,73,67,79,68,69,0]);function fe(e){let t=new Uint8Array(8+e.length*2),n=new DataView(t.buffer);t.set(de);for(let t=0;t<e.length;t++)n.setUint16(8+t*2,e.charCodeAt(t),!0);return t}function pe(e,t){let n=t?`${t}: ${e}`:e,r=new TextEncoder().encode(n),i=new Uint8Array(r.length+1);return i.set(r,0),i[r.length]=0,i}let D=new Uint8Array([69,120,105,102,0,0]);function O(e,t){if(!p(e))return u.error({type:`invalidSignature`});let n=t.filter(e=>e.source.type===`jpegCom`),r=t.filter(e=>e.source.type===`xmpPacket`),i=t.filter(e=>e.source.type===`exifUserComment`||e.source.type===`exifImageDescription`||e.source.type===`exifMake`),a=me(e);if(!a.ok)return a;let{beforeSos:o,scanData:s}=a.value,c=i.length>0?he(i):null,l=r[0],d=l?ge(l.data):null,f=n.map(e=>_e(e.data)).filter(e=>e!==null),m=2;c&&(m+=c.length),d&&(m+=d.length);for(let e of o)m+=e.length;for(let e of f)m+=e.length;m+=s.length;let h=new Uint8Array(m),g=0;h[g++]=255,h[g++]=216,c&&(h.set(c,g),g+=c.length),d&&(h.set(d,g),g+=d.length);for(let e of o)h.set(e,g),g+=e.length;for(let e of f)h.set(e,g),g+=e.length;return h.set(s,g),u.ok(h)}function me(e){let t=[],n=2;for(;n<e.length-1;){if(e[n]!==255)return u.error({type:`corruptedStructure`,message:`Expected marker at offset ${n}`});for(;e[n]===255&&n<e.length-1;)n++;let r=e[n];if(n++,r===218){let r=e.slice(n-2);return u.ok({beforeSos:t,scanData:r})}if(r===217)return u.ok({beforeSos:t,scanData:new Uint8Array([255,217])});if(n+2>e.length)return u.error({type:`corruptedStructure`,message:`Unexpected end of file`});let i=g(e,n),a=n-2,o=n+i;if(o>e.length)return u.error({type:`corruptedStructure`,message:`Segment extends beyond file`});let s=r===225&&n+2+6<=e.length&&e[n+2]===69&&e[n+3]===120&&e[n+4]===105&&e[n+5]===102&&e[n+6]===0&&e[n+7]===0,c=r===225&&!s&&ne(e,n+2);!s&&!c&&r!==254&&t.push(e.slice(a,o)),n=o}return u.error({type:`corruptedStructure`,message:`No SOS marker found`})}function he(e){let t=le(e);if(t.length===0)return new Uint8Array;let n=2+D.length+t.length,r=new Uint8Array(2+n);return r[0]=255,r[1]=225,C(r,2,n),r.set(D,4),r.set(t,4+D.length),r}function ge(e){let t=new TextEncoder().encode(e),n=2+E.length+t.length;if(n>65535)return null;let r=new Uint8Array(2+n);return r[0]=255,r[1]=225,C(r,2,n),r.set(E,4),r.set(t,4+E.length),r}function _e(e){let t=new TextEncoder().encode(e),n=2+t.length;if(n>65535)return null;let r=new Uint8Array(2+n);return r[0]=255,r[1]=254,C(r,2,n),r.set(t,4),r}let k=new Uint8Array([137,80,78,71,13,10,26,10]);function A(e,t){if(!f(e))return u.error({type:`invalidSignature`});if(ve(e)===-1)return u.error({type:`noIhdrChunk`});let n=ye(e),r=t.map(e=>e.type===`tEXt`?be(e):xe(e)),i=k.length+n.ihdr.length+r.reduce((e,t)=>e+t.length,0)+n.others.reduce((e,t)=>e+t.length,0),a=new Uint8Array(i),o=0;a.set(k,o),o+=k.length,a.set(n.ihdr,o),o+=n.ihdr.length;for(let e of r)a.set(e,o),o+=e.length;for(let e of n.others)a.set(e,o),o+=e.length;return u.ok(a)}function ve(e){let t=k.length;if(t+8>e.length)return-1;let n=y(e,t);return S(e,t+4)===`IHDR`?t+4+4+n+4:-1}function ye(e){let t=[],n=k.length,r=new Uint8Array;for(;n<e.length;){let i=n;if(n+4>e.length)break;let a=y(e,n);if(n+=4,n+4>e.length)break;let o=S(e,n);if(n+=4,n+a+4>e.length)break;n+=a,n+=4;let s=n,c=e.slice(i,s);if(o===`IHDR`?r=c:o!==`tEXt`&&o!==`iTXt`&&t.push(c),o===`IEND`)break}return{ihdr:r,others:t}}function be(e){let t=Ce(e.keyword),n=j(e.text),r=new Uint8Array(t.length+1+n.length);return r.set(t,0),r[t.length]=0,r.set(n,t.length+1),Se(`tEXt`,r)}function xe(e){let t=j(e.keyword),n=j(e.languageTag),r=j(e.translatedKeyword),i=j(e.text),a=t.length+1+1+1+n.length+1+r.length+1+i.length,o=new Uint8Array(a),s=0;return o.set(t,s),s+=t.length,o[s++]=0,o[s++]=e.compressionFlag,o[s++]=e.compressionMethod,o.set(n,s),s+=n.length,o[s++]=0,o.set(r,s),s+=r.length,o[s++]=0,o.set(i,s),Se(`iTXt`,o)}function Se(e,t){let n=new Uint8Array(8+t.length+4);ee(n,0,t.length),n.set(new TextEncoder().encode(e),4),n.set(t,8);let r=Ee(n.slice(4,8+t.length));return ee(n,8+t.length,r),n}function Ce(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t}function j(e){return new TextEncoder().encode(e)}let we=Te();function Te(){let e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let e=0;e<8;e++)n&1?n=3988292384^n>>>1:n>>>=1;e[t]=n>>>0}return e}function Ee(e){let t=4294967295;for(let n=0;n<e.length;n++)t=(we[(t^(e[n]??0))&255]??0)^t>>>8;return(t^4294967295)>>>0}let De=new Uint8Array([82,73,70,70]),Oe=new Uint8Array([87,69,66,80]);function ke(e,t){if(!m(e))return u.error({type:`invalidSignature`});let n=t.filter(e=>e.source.type===`xmpPacket`),r=t.filter(e=>e.source.type!==`xmpPacket`),i=je(e);if(!i.ok)return i;let{chunks:a}=i.value,o=Me(r),s=n[0],c=s?Ne(s.data):null,l=[];o&&l.push(o),c&&l.push(c);let d=4;for(let e of a)d+=e.length;for(let e of l)d+=e.length;let f=new Uint8Array(8+d),p=0;f.set(De,p),p+=4,te(f,p,d),p+=4,f.set(Oe,p),p+=4;let h=!1;for(let e of a)if(f.set(e,p),p+=e.length,!h&&l.length>0&&Ae(e)){for(let e of l)f.set(e,p),p+=e.length;h=!0}if(!h)for(let e of l)f.set(e,p),p+=e.length;return u.ok(f)}function Ae(e){if(e.length<4)return!1;let t=S(e,0);return t===`VP8 `||t===`VP8L`||t===`VP8X`}function je(e){let t=[],n=``,r=12;for(;r<e.length-8;){let i=S(e,r),a=b(e,r+4);if(n||=i,r+8+a>e.length)return u.error({type:`invalidRiffStructure`,message:`Chunk extends beyond file at offset ${r}`});if(i!==`EXIF`&&i!==`XMP `){let n=a+a%2,i=e.slice(r,r+8+n);t.push(i)}let o=a+a%2;r+=8+o}return u.ok({chunks:t,firstChunkType:n})}function Me(e){if(e.length===0)return null;let t=le(e);if(t.length===0)return null;let n=t.length,r=n+n%2,i=new Uint8Array(8+r);return i.set(new TextEncoder().encode(`EXIF`)),te(i,4,n),i.set(t,8),i}function Ne(e){let t=new TextEncoder().encode(e),n=t.length,r=n+n%2,i=new Uint8Array(8+r);return i.set(new TextEncoder().encode(`XMP `)),te(i,4,n),i.set(t,8),i}function M(e){return e.replace(/\r\n/g,`
2
2
  `).replace(/\r/g,`
3
- `)}function An(e){return e.flatMap((t,n)=>{let r=t.center?` [${t.center.x}, ${t.center.y}]`:"";return[`# Character ${n+1}${r}:`,ve(t.prompt)]})}function In(e,t){let n=e.hires??e.upscale,r={Steps:e.sampling?.steps,Sampler:e.sampling?.sampler,"Schedule type":e.sampling?.scheduler,"CFG scale":e.sampling?.cfg,Seed:e.sampling?.seed,Size:e.width>0&&e.height>0?`${e.width}x${e.height}`:void 0,"Model hash":e.model?.hash,Model:e.model?.name,"Clip skip":e.sampling?.clipSkip,"Denoising strength":n?.denoise,"Hires upscale":n?.scale,"Hires steps":n?.steps,"Hires upscaler":n?.upscaler};return Object.entries({...r,...t}).filter(([,o])=>o!==void 0).map(([o,s])=>`${o}: ${s}`).join(", ")}function H(e){return[ve(e.prompt),e.characterPrompts?.length?An(e.characterPrompts).join(`
4
- `):void 0,e.negativePrompt?`Negative prompt: ${ve(e.negativePrompt)}`:void 0,In(e,e.extras)||void 0].filter(t=>t!==void 0).join(`
5
- `)}function Te(e){switch(e.format){case"png":return e.chunks.map(t=>t.text).join(`
3
+ `)}function Pe(e){return e.flatMap((e,t)=>{let n=e.center?` [${e.center.x}, ${e.center.y}]`:``;return[`# Character ${t+1}${n}:`,M(e.prompt)]})}function Fe(e,t){let n=e.hires??e.upscale,r={Steps:e.sampling?.steps,Sampler:e.sampling?.sampler,"Schedule type":e.sampling?.scheduler,"CFG scale":e.sampling?.cfg,Seed:e.sampling?.seed,Size:e.width>0&&e.height>0?`${e.width}x${e.height}`:void 0,"Model hash":e.model?.hash,Model:e.model?.name,"Clip skip":e.sampling?.clipSkip,"Denoising strength":n?.denoise,"Hires upscale":n?.scale,"Hires steps":n?.steps,"Hires upscaler":n?.upscaler};return Object.entries({...r,...t}).filter(([,e])=>e!==void 0).map(([e,t])=>`${e}: ${t}`).join(`, `)}function N(e){return[M(e.prompt),e.characterPrompts?.length?Pe(e.characterPrompts).join(`
4
+ `):void 0,e.negativePrompt?`Negative prompt: ${M(e.negativePrompt)}`:void 0,Fe(e,e.extras)||void 0].filter(e=>e!==void 0).join(`
5
+ `)}function Ie(e){switch(e.format){case`png`:return e.chunks.map(e=>e.text).join(`
6
6
 
7
- `);case"jpeg":case"webp":return e.segments.map(t=>t.data).join(`
7
+ `);case`jpeg`:case`webp`:return e.segments.map(e=>e.data).join(`
8
8
 
9
- `)}}function Ge(e){if("status"in e)switch(e.status){case"success":return H(e.metadata);case"unrecognized":return Te(e.raw);case"empty":case"invalid":return""}return H(e)}function Ee(e,t){let n=W(e),r=j(n);if(!r)return a.error({type:"unsupportedFormat"});let o=H(t),s=_n(r,n,o);return s.ok?a.ok(s.value):a.error({type:"writeFailed",message:s.error.type})}function _n(e,t,n){switch(e){case"png":return q(t,h("parameters",n,"dynamic"));case"jpeg":return K(t,[{source:{type:"exifUserComment"},data:n}]);case"webp":return Q(t,[{source:{type:"exifUserComment"},data:n}])}}function d(e){let t=Object.fromEntries(Object.entries(e).filter(([,n])=>n!==void 0));return Object.keys(t).length===0?void 0:t}function ee(e,t){let n=e.parameters??e.UserComment;if(!n)return a.error({type:"unsupportedFormat"});let{prompt:r,negativePrompt:o,settings:s}=Rn(n),i=Nn(s),u=i.get("Size")??"0x0",[c,m]=Je(u),g=i.get("Model"),y=i.get("Model hash"),l=i.get("Sampler"),I=i.get("Schedule type"),x=O(i.get("Steps")),C=O(i.get("CFG scale")??i.get("CFG Scale")),ge=O(i.get("Seed")),w=O(i.get("Clip skip")),v=O(i.get("Hires upscale")),f=i.get("Hires upscaler"),b=O(i.get("Hires steps")),qt=O(i.get("Denoising strength")),Qt=i.get("Hires size"),[Ie]=Je(Qt??""),en=v??(Ie>0?Ie/c:void 0);return a.ok({software:t,prompt:r,negativePrompt:o,width:c,height:m,model:d({name:g,hash:y}),sampling:d({sampler:l,scheduler:I,steps:x,cfg:C,seed:ge,clipSkip:w}),hires:d({scale:en,upscaler:f,steps:b,denoise:qt})})}function Rn(e){let t=e.indexOf("Negative prompt:"),n=e.indexOf("Steps:");if(t===-1&&n===-1)return{prompt:e.trim(),negativePrompt:"",settings:""};if(t===-1){let o=e.lastIndexOf(`
10
- `,n);return{prompt:e.slice(0,o).trim(),negativePrompt:"",settings:e.slice(o).trim()}}if(n===-1)return{prompt:e.slice(0,t).trim(),negativePrompt:e.slice(t+16).trim(),settings:""};let r=e.lastIndexOf(`
11
- `,n);return{prompt:e.slice(0,t).trim(),negativePrompt:e.slice(t+16,r).trim(),settings:e.slice(r).trim()}}function Nn(e){let t=new Map;if(!e||e.length>1e4)return t;let n=/([A-Za-z][A-Za-z0-9 ]*?):\s*([^,]+?)(?=,\s*[A-Za-z][A-Za-z0-9 ]*?:|$)/g;for(let r of e.matchAll(n)){let o=(r[1]??"").trim(),s=(r[2]??"").trim();t.set(o,s)}return t}function Je(e){let t=e.match(/(\d+)x(\d+)/);return t?[Number.parseInt(t[1]??"0",10),Number.parseInt(t[2]??"0",10)]:[0,0]}function O(e){if(e===void 0)return;let t=Number.parseFloat(e);return Number.isNaN(t)?void 0:t}function p(e){try{let t=JSON.parse(e);return On(t)}catch{return{ok:!1,error:{type:"parseError",message:"Invalid JSON"}}}}function On(e){if(e===null)return{ok:!0,type:"null",value:null};if(Array.isArray(e))return{ok:!0,type:"array",value:e};switch(typeof e){case"object":return{ok:!0,type:"object",value:e};case"string":return{ok:!0,type:"string",value:e};case"number":return{ok:!0,type:"number",value:e};case"boolean":return{ok:!0,type:"boolean",value:e};default:return{ok:!1,error:{type:"parseError",message:"Unexpected JSON type"}}}}var We=["KSampler","KSamplerAdvanced","SamplerCustomAdvanced","SamplerCustom","DetailerForEach"],Fn=["EmptyLatentImage"],Dn=["SDXL Empty Latent Image (rgthree)"],Gn=["CheckpointLoaderSimple","CheckpointLoader"],Jn=["UNETLoader"],Wn=["CLIPSetLastLayer"],jn=["UpscaleModelLoader"],je=["ImageScale","ImageScaleBy"],Le=["LatentUpscale","LatentUpscaleBy"],He=["VAEEncode","VAEEncodeTiled"];function ze(e){let t={};for(let n of Object.values(e)){let r=n.class_type;!t.sampler&&We.includes(r)?t.sampler=n:!t.latentImage&&Fn.includes(r)?t.latentImage=n:!t.latentImageRgthree&&Dn.includes(r)?t.latentImageRgthree=n:!t.checkpoint&&Gn.includes(r)?t.checkpoint=n:!t.unetLoader&&Jn.includes(r)?t.unetLoader=n:!t.clipSetLastLayer&&Wn.includes(r)?t.clipSetLastLayer=n:!t.hiresModelUpscale&&jn.includes(r)?t.hiresModelUpscale=n:!t.hiresImageScale&&je.includes(r)?t.hiresImageScale=n:!t.latentUpscale&&Le.includes(r)?t.latentUpscale=n:!t.vaeEncode&&He.includes(r)&&(t.vaeEncode=n)}return t}function F(e,t){if(A(t))return e[String(t[0])]}function A(e){return Array.isArray(e)&&e.length===2&&(typeof e[0]=="string"||typeof e[0]=="number")&&typeof e[1]=="number"}function Ve(e,t,n=10){if(n<=0)return"";let r=e[t];if(!r)return"";let o=r.inputs.text??r.inputs.prompt??r.inputs.Text;return typeof o=="string"?o:A(o)?Ve(e,String(o[0]),n-1):""}function Ln(e,t){let n=F(e,t.inputs.guider);return n||t}function Be(e,t){if(!t)return{promptText:"",negativeText:""};let n=Ln(e,t);return{promptText:Me(e,n.inputs.positive,"positive"),negativeText:Me(e,n.inputs.negative,"negative")}}function Me(e,t,n,r=10){if(r<=0||!A(t))return"";let o=String(t[0]),s=Ve(e,o);if(s)return s;let i=e[o];if(!i)return"";let u=i.inputs[n];return Me(e,u,n,r-1)}function Xe(e,t){if(e){let n=Number(e.inputs.width)||0,r=Number(e.inputs.height)||0;if(n>0&&r>0)return{width:n,height:r}}if(t&&typeof t.inputs.dimensions=="string"){let n=t.inputs.dimensions.match(/^(\d+)\s*x\s*(\d+)/);if(n?.[1]&&n[2])return{width:Number.parseInt(n[1],10),height:Number.parseInt(n[2],10)}}return{width:0,height:0}}function Ue(e,t){if(!t)return;if(t.class_type==="SamplerCustomAdvanced")return Hn(e,t);if(t.class_type==="SamplerCustom")return zn(e,t);let n=t.inputs.seed;return A(n)&&(n=e[String(n[0])]?.inputs.seed),{seed:n,steps:t.inputs.steps,cfg:t.inputs.cfg,sampler:t.inputs.sampler_name,scheduler:t.inputs.scheduler,denoise:t.inputs.denoise}}function Hn(e,t){let n=F(e,t.inputs.noise),r=F(e,t.inputs.guider),o=F(e,t.inputs.sampler),s=F(e,t.inputs.sigmas);return{seed:n?.inputs.noise_seed,steps:s?.inputs.steps,cfg:r?.inputs.cfg,sampler:o?.inputs.sampler_name,scheduler:s?.inputs.scheduler,denoise:s?.inputs.denoise}}function zn(e,t){let n=F(e,t.inputs.sampler),r=F(e,t.inputs.sigmas),o=t.inputs.noise_seed;return A(o)&&(o=e[String(o[0])]?.inputs.seed),{seed:o,steps:r?.inputs.steps,cfg:t.inputs.cfg,sampler:n?.inputs.sampler_name,scheduler:r?.inputs.scheduler,denoise:r?.inputs.denoise}}function $e(e,t){if(e?.inputs?.ckpt_name)return{name:String(e.inputs.ckpt_name)};if(t?.inputs?.unet_name)return{name:String(t.inputs.unet_name)}}function Ke(e){if(!e)return;let t=e.inputs.stop_at_clip_layer;if(typeof t=="number")return-t}function ae(e,t){if(!(t<=0||e<=0))return Math.round(e/t*100)/100}function Vn(e,t){let n=t.inputs.latent_image;if(!A(n))return!1;let r=e[String(n[0])];if(!r)return!1;if(Le.includes(r.class_type))return!0;if(!He.includes(r.class_type))return!1;let o=r.inputs.pixels;if(!A(o))return!1;let s=e[String(o[0])];return s?je.includes(s.class_type):!1}function Ye(e){return Object.values(e).find(t=>We.includes(t.class_type)&&Vn(e,t))}function Ze(e,t){let n=e.extraMetadata;if(typeof n=="string"){let r=p(n);if(r.ok&&r.type==="object")return r.value}if(t?.extraMetadata){let r=p(t.extraMetadata);if(r.ok&&r.type==="object")return r.value}}function qe(e){if(!e)return;let t=Bn(e),n=Xn(e);return d({prompt:e.prompt,negativePrompt:e.negativePrompt,width:e.width,height:e.height,model:e.baseModel?{name:e.baseModel}:void 0,...n,...t})}function Bn(e){if(!e.transformations)return{};let t=e.transformations.find(r=>r.type==="upscale");if(!t?.upscaleWidth)return{};let n=ae(t.upscaleWidth,e.width??0);return n===void 0?{}:{upscale:{scale:n}}}function Xn(e){return e.seed===void 0&&e.steps===void 0&&e.cfgScale===void 0&&e.sampler===void 0?{}:{sampling:{seed:e.seed,steps:e.steps,cfg:e.cfgScale,sampler:e.sampler}}}var $n=["extra","extraMetadata","resource-stack"];function te(e){let t=Kn(e);if(!t)return a.error({type:"unsupportedFormat"});let n=p(t);if(!n.ok||n.type!=="object")return a.error({type:"parseError",message:"Invalid JSON in prompt entry"});let r=n.value,o=Pe(r),s=qe(Ze(r,e)),i=qn(s,o);return a.ok({software:"comfyui",nodes:Object.fromEntries(Object.entries(r).filter(([u])=>!$n.includes(u))),...i})}function Qe(e){if(!e||typeof e.denoise!="number")return e;if(e.denoise>=1){let{denoise:t,...n}=e;return n}return e}function et(e){return e.replace(/\0+$/,"").replace(/:\s*NaN\b/g,": null")}function Kn(e){if(e.prompt)return et(e.prompt);let t=[e.UserComment,e.ImageDescription,e.Make,e.Prompt,e.Workflow];for(let n of t)if(n&&n.startsWith("{")){let r=et(n),o=p(r);if(!o.ok||o.type!=="object")continue;if(o.value.prompt&&typeof o.value.prompt=="object")return JSON.stringify(o.value.prompt);if(Object.values(o.value).some(i=>i&&typeof i=="object"&&"class_type"in i))return r}}function Pe(e){let t=ze(e),{promptText:n,negativeText:r}=Be(e,t.sampler),{width:o,height:s}=Xe(t.latentImage,t.latentImageRgthree),i=Ye(e),u=Qe(i?Ue(e,i):void 0),c=Yn(e,t,o),m=t.hiresModelUpscale?.inputs.model_name,g=Qe(Ue(e,t.sampler)),y=Ke(t.clipSetLastLayer);return d({prompt:n||void 0,negativePrompt:r||void 0,width:o>0?o:void 0,height:s>0?s:void 0,model:$e(t.checkpoint,t.unetLoader),sampling:d({...g,clipSkip:y}),...Zn(m,c,u)})}function Yn(e,t,n){let r=t.latentUpscale?.inputs;if(r?.scale_by!==void 0)return r.scale_by;let o=t.hiresImageScale?.inputs.width;if(o!==void 0){if(A(o)){let s=e[String(o[0])];return typeof s?.inputs.clip_scale=="number"?s.inputs.clip_scale:void 0}if(typeof o=="number")return ae(o,n)}}function Zn(e,t,n){return!e&&t===void 0&&!n?{}:n?{hires:{upscaler:e,scale:t,steps:n.steps,denoise:n.denoise}}:e?{upscale:{upscaler:e,scale:t}}:{}}function tt(e,t){if(!e&&!t)return;let n={};for(let r of[e,t])if(r)for(let[o,s]of Object.entries(r))s!==void 0&&(n[o]=s);return Object.keys(n).length>0?n:void 0}function qn(e,t){let n=tt(e?.upscale,t?.upscale),r=tt(e?.hires,t?.hires);return{prompt:t?.prompt??e?.prompt??"",negativePrompt:t?.negativePrompt??e?.negativePrompt??"",width:t?.width??e?.width??0,height:t?.height??e?.height??0,...d({model:t?.model??e?.model,sampling:t?.sampling??e?.sampling,hires:r,upscale:n})}}var Qn="invokeai_metadata",er="generation_data",tr="smproj",Ae="extraMetadata",z="sui_image_params",st="swarm_version",nr="class_type",nt="noise_schedule",rt="v4_prompt",rr="uncond_scale",or="civitai:",sr="Civitai resources:",ot="RuinedFooocus",ir="use_stable_diffusion_model",ar='"Model"',ur='"resolution"',cr='"base_model"';function it(e){let t=pr(e);if(t)return t;let n=fr(e);if(n)return n;let r=e.parameters??e.UserComment??e.Comment;return r?dr(r):null}function at(e){return Qn in e?"invokeai":er in e?"tensorart":tr in e?"stability-matrix":Ae in e?"civitai":null}function pr(e){if(e.Software?.startsWith("NovelAI"))return"novelai";let t=at(e);if(t)return t;if("fooocus_scheme"in e)return"fooocus";if("use_stable_diffusion_model"in e)return"easydiffusion";if(e.parameters?.includes(z))return"swarmui";let r=e.UserComment??e.Comment;return r?.startsWith("{")?mr(r):null}function mr(e){let t=p(e);if(!t.ok||t.type!=="object")return null;let n=t.value,r=at(n);if(r)return r;if("prompt"in n&&"workflow"in n){let o=n.workflow,s=n.prompt,i=typeof o=="object"||typeof s=="object",u=typeof o=="string"&&o.startsWith("{")||typeof s=="string"&&s.startsWith("{");if(i||u)return"comfyui"}if(z in n)return"swarmui";if("prompt"in n&&"parameters"in n){let o=String(n.parameters||"");if(o.includes(z)||o.includes(st))return"swarmui"}return null}function fr(e){if("prompt"in e&&"workflow"in e||"Prompt"in e&&"Workflow"in e||"workflow"in e||"Workflow"in e)return"comfyui";let t=e.prompt??e.Prompt;if(t?.startsWith("{")){if(t.includes(z))return"swarmui";if(t.includes(`"${Ae}"`))return"civitai";if(t.includes(nr))return"comfyui"}return null}function dr(e){return e.startsWith("{")?lr(e):gr(e)}function lr(e){return e.includes(z)?"swarmui":e.includes(`"software":"${ot}"`)||e.includes(`"software": "${ot}"`)?"ruined-fooocus":e.includes(`"${ir}"`)?"easydiffusion":e.includes(or)||e.includes(`"${Ae}"`)?"civitai":e.includes(`"${rt}"`)||e.includes(`"${nt}"`)||e.includes(`"${rr}"`)||e.includes('"Software":"NovelAI"')||e.includes(`\\"${nt}\\"`)||e.includes(`\\"${rt}\\"`)?"novelai":e.includes(ar)&&e.includes(ur)?"hf-space":e.includes('"prompt"')&&e.includes(cr)?"fooocus":e.includes('"prompt"')||e.includes('"nodes"')?"comfyui":null}function gr(e){if(e.includes(z)||e.includes(st))return"swarmui";let t=e.match(/Version:\s*([^\s,]+)/);if(t){let n=t[1];if(n&&/^v\d/.test(n))return"sd-webui";if(n==="classic")return"forge-classic";if(n==="neo"||n?.startsWith("neo"))return"forge-neo";if(n?.startsWith("f")&&/^f\d/.test(n))return/^f\d+\.\d+(\.\d+)?-v/.test(n)?"easy-reforge":/^f\d+\.\d+(\.\d+)?v\d+-v/.test(n)?"reforge":"forge";if(n?.startsWith("Fooocus"))return"fooocus";if(n==="ComfyUI")return"comfyui"}return e.includes("App: SD.Next")||e.includes("App:SD.Next")?"sd-next":e.includes(sr)?"civitai":e.includes("Steps:")||e.includes("Sampler:")||e.includes("Negative prompt:")?"sd-webui":null}function yr(e){if(!e)return;let t=e.replace(/\\/g,"/").split("/");return t[t.length-1]}function ct(e){if("use_stable_diffusion_model"in e)return ut(e);let t=e.UserComment?.startsWith("{")?e.UserComment:e.parameters?.startsWith("{")?e.parameters:void 0;if(!t)return a.error({type:"unsupportedFormat"});let n=p(t);return!n.ok||n.type!=="object"?a.error({type:"parseError",message:"Invalid JSON in Easy Diffusion metadata"}):ut(n.value)}function ut(e){let t=c=>{let m=e[c];return typeof m=="string"?m:void 0},n=c=>Number(e[c])||void 0,r=(t("prompt")??"").trim(),o=(t("negative_prompt")??"").trim(),s=t("use_stable_diffusion_model"),i=d({upscaler:t("use_upscale"),scale:n("upscale_amount")}),u={software:"easydiffusion",prompt:r,negativePrompt:o,width:n("width")??0,height:n("height")??0,model:d({name:yr(s),vae:t("use_vae_model")}),sampling:d({sampler:t("sampler_name"),steps:n("num_inference_steps"),cfg:n("guidance_scale"),seed:n("seed"),clipSkip:n("clip_skip"),denoise:n("prompt_strength")}),...i?{upscale:i}:{}};return a.ok(u)}function hr(e){if(!e)return{width:0,height:0};let t=e.match(/\(\s*(\d+)\s*,\s*(\d+)\s*\)/);return!t?.[1]||!t[2]?{width:0,height:0}:{width:Number(t[1]),height:Number(t[2])}}function pt(e){let t=e.parameters??e.UserComment;if(!t||!t.startsWith("{"))return a.error({type:"unsupportedFormat"});let n=p(t);if(!n.ok||n.type!=="object")return a.error({type:"parseError",message:"Invalid JSON in Fooocus metadata"});let r=n.value,{width:o,height:s}=hr(r.resolution),i={software:"fooocus",prompt:r.prompt?.trim()??"",negativePrompt:r.negative_prompt?.trim()??"",width:o,height:s,model:d({name:r.base_model,hash:r.base_model_hash,vae:r.vae}),sampling:d({sampler:r.sampler,scheduler:r.scheduler,steps:r.steps,cfg:r.guidance_scale,seed:r.seed,clipSkip:r.clip_skip})};return a.ok(i)}function mt(e){let t=e.parameters??e.UserComment;if(!t)return a.error({type:"unsupportedFormat"});let n=p(t);if(!n.ok||n.type!=="object")return a.error({type:"parseError",message:"Invalid JSON in parameters entry"});let r=n.value,o=c=>{let m=c?.match(/(\d+)\s*x\s*(\d+)/);return m?.[1]&&m?.[2]?{width:Number.parseInt(m[1],10),height:Number.parseInt(m[2],10)}:{width:0,height:0}},{width:s,height:i}=o(r.resolution),u={software:"hf-space",prompt:r.prompt??"",negativePrompt:r.negative_prompt??"",width:s,height:i,model:d({name:r.Model,hash:r["Model hash"]}),sampling:d({sampler:r.sampler,steps:r.num_inference_steps,cfg:r.guidance_scale,seed:r.seed}),hires:r.use_upscaler?d({upscaler:r.use_upscaler.upscale_method,denoise:r.use_upscaler.upscaler_strength,scale:r.use_upscaler.upscale_by,steps:r.use_upscaler.upscale_steps}):void 0};return a.ok(u)}function D(e,t){if(!e.UserComment?.startsWith("{"))return;let n=p(e.UserComment);if(!n.ok||n.type!=="object")return;let r=n.value[t];if(typeof r=="string")return r;if(typeof r=="object"&&r!==null)return JSON.stringify(r)}function xr(e){return e.invokeai_metadata??D(e,"invokeai_metadata")}function ft(e){let t=xr(e);if(!t)return a.error({type:"unsupportedFormat"});let n=p(t);if(!n.ok||n.type!=="object")return a.error({type:"parseError",message:"Invalid JSON in invokeai_metadata entry"});let r=n.value,o=r.width??0,s=r.height??0,i=Sr(r);return a.ok({software:"invokeai",prompt:r.positive_prompt??"",negativePrompt:r.negative_prompt??"",width:o,height:s,model:d({name:r.model?.name,hash:r.model?.hash}),sampling:d({seed:r.seed,steps:r.steps,cfg:r.cfg_scale,sampler:r.scheduler}),...i})}function Sr(e){if(!e.upscale_model?.name&&e.upscale_scale===void 0)return{};let t=d({upscaler:e.upscale_model?.name,scale:e.upscale_scale});return t?{upscale:t}:{}}function dt(e){let t=e.UserComment??e.Comment;if(!t)return a.error({type:"parseError",message:"Missing Comment/UserComment entry"});let n=p(t);if(!n.ok||n.type!=="object")return a.error({type:"parseError",message:"Invalid JSON in Comment entry"});let r=n.value,o=r.width??0,s=r.height??0,i=r.v4_prompt?.caption?.base_caption??r.prompt??"",u=r.v4_negative_prompt?.caption?.base_caption??r.uc??"",c=r.v4_prompt?.caption?.char_captions,m=c&&c.length>0?c.map(g=>g.char_caption?{prompt:g.char_caption,center:g.centers?.[0]}:null).filter(g=>g!==null):void 0;return a.ok({software:"novelai",prompt:i,negativePrompt:u,width:o,height:s,sampling:d({steps:r.steps,cfg:r.scale,seed:r.seed,sampler:r.sampler,scheduler:r.noise_schedule}),characterPrompts:m,useCoords:m?r.v4_prompt?.use_coords:void 0,useOrder:m?r.v4_prompt?.use_order:void 0})}function lt(e){let t=e.parameters??e.UserComment;if(!t||!t.startsWith("{"))return a.error({type:"unsupportedFormat"});let n=p(t);if(!n.ok||n.type!=="object")return a.error({type:"parseError",message:"Invalid JSON in Ruined Fooocus metadata"});let r=n.value,o={software:"ruined-fooocus",prompt:r.Prompt?.trim()??"",negativePrompt:r.Negative?.trim()??"",width:r.width??0,height:r.height??0,model:{name:r.base_model_name,hash:r.base_model_hash},sampling:{sampler:r.sampler_name,scheduler:r.scheduler,steps:r.steps,cfg:r.cfg,seed:r.seed,clipSkip:r.clip_skip}};return a.ok(o)}function gt(e){let t=te(e);if(!t.ok||t.value.software!=="comfyui")return a.error({type:"unsupportedFormat"});let n=e["parameters-json"]??D(e,"parameters-json"),r=n?p(n):void 0,o=r?.ok&&r.type==="object"?r.value:void 0;return a.ok({...t.value,software:"stability-matrix",prompt:o?.PositivePrompt??t.value.prompt,negativePrompt:o?.NegativePrompt??t.value.negativePrompt,model:o?.ModelName!==void 0||o?.ModelHash!==void 0?{name:o?.ModelName,hash:o?.ModelHash}:t.value.model})}function br(e){if(e.parameters)return e.parameters;if(!e.UserComment)return;let t=p(e.UserComment);if(!(!t.ok||t.type!=="object")&&"sui_image_params"in t.value)return e.UserComment}function yt(e){let t=br(e);if(!t)return a.error({type:"unsupportedFormat"});let n=p(t);if(!n.ok||n.type!=="object")return a.error({type:"parseError",message:"Invalid JSON in parameters entry"});let r=n.value.sui_image_params;if(!r)return a.error({type:"unsupportedFormat"});let o=r.width??0,s=r.height??0,i=e.prompt||e.Make,u=i?p(i):void 0,c=u?.ok&&u.type==="object"?u.value:void 0;return a.ok({software:"swarmui",prompt:r.prompt??"",negativePrompt:r.negativeprompt??"",width:o,height:s,nodes:c,model:d({name:r.model}),sampling:d({seed:r.seed,steps:r.steps,cfg:r.cfgscale,sampler:r.sampler,scheduler:r.scheduler}),hires:d({scale:r.refinerupscale,upscaler:r.refinerupscalemethod,denoise:r.refinercontrolpercentage})})}function ht(e){let t=e.generation_data??D(e,"generation_data"),n=e.prompt??D(e,"prompt");if(!t)return a.error({type:"unsupportedFormat"});let r=t.replace(/\0+$/,""),o=p(r);if(!o.ok||o.type!=="object")return a.error({type:"parseError",message:"Invalid JSON in generation_data entry"});let s=o.value;if(!n)return a.error({type:"unsupportedFormat"});let i=p(n);if(!i.ok||i.type!=="object")return a.error({type:"parseError",message:"Invalid JSON in prompt chunk"});let u=i.value,c=Pe(u),m=d({name:s.baseModel?.modelFileName,hash:s.baseModel?.hash});return a.ok({software:"tensorart",nodes:u,prompt:s.prompt??c?.prompt??"",negativePrompt:s.negativePrompt??c?.negativePrompt??"",width:c?.width??0,height:c?.height??0,model:m??c?.model,sampling:c?.sampling,hires:c?.hires,upscale:c?.upscale})}function xt(e){let t=it(e);switch(t){case"novelai":return dt(e);case"sd-webui":case"forge":case"forge-classic":case"forge-neo":case"reforge":case"easy-reforge":case"sd-next":return ee(e,t);case"hf-space":return mt(e);case"civitai":{let n=te(e);return n.ok?a.ok({...n.value,software:"civitai"}):ee(e,"civitai")}case"comfyui":{let n=te(e);return n.ok?n:ee(e,"sd-webui")}case"invokeai":return ft(e);case"swarmui":return yt(e);case"tensorart":return ht(e);case"stability-matrix":return gt(e);case"easydiffusion":return ct(e);case"fooocus":{let n=e.fooocus_scheme,r=e.parameters??e.UserComment;return n==="a1111"||r&&!r.startsWith("{")?ee(e,"fooocus"):pt(e)}case"ruined-fooocus":return lt(e);default:return a.error({type:"unsupportedFormat"})}}function St(e,t){return t==="png"?kr(e):t==="jpeg"?Cr(e):wr(e)}function kr(e){return e.length<24?null:{width:_(e,16),height:_(e,20)}}function Cr(e){let t=2;for(;t<e.length-4;){if(e[t]!==255){t++;continue}let n=e[t+1]??0;if(n===255){t++;continue}let r=P(e,t+2);if(n>=192&&n<=207&&n!==196&&n!==200&&n!==204){let o=P(e,t+5);return{width:P(e,t+7),height:o}}if(t+=2+r,n===218)break}return null}function wr(e){let t=12;for(;t<e.length&&!(t+8>e.length);){let n=T(e,t),r=R(e,t+4),o=r+r%2;if(n==="VP8X"){let s=oe(e,t+12),i=oe(e,t+15);return{width:s+1,height:i+1}}if(n==="VP8 "){let s=t+8;if(!(oe(e,s)&1)&&e[s+3]===157&&e[s+4]===1&&e[s+5]===42){let c=U(e,s+6,!0),m=U(e,s+8,!0);return{width:c&16383,height:m&16383}}}if(n==="VP8L"&&e[t+8]===47){let s=R(e,t+9),i=(s&16383)+1,u=(s>>14&16383)+1;return{width:i,height:u}}t+=8+o}return null}function ue(e){if(e.length<8)return[];let t=e[0]===73&&e[1]===73,n=e[0]===77&&e[1]===77;if(!t&&!n)return[];if(U(e,2,t)!==42)return[];let o=$(e,4,t),s=bt(e,o,t),i=Tr(e,o,t),u=i!==null?bt(e,i,t):[];return[...s,...u]}function bt(e,t,n){let r=[];if(t+2>e.length)return r;let o=U(e,t,n),s=t+2;for(let i=0;i<o;i++){if(s+12>e.length)return r;let u=U(e,s,n),c=U(e,s+2,n),m=$(e,s+4,n),g=vr(c),y=m*g;if(y>e.length){s+=12;continue}let l;if(y<=4?l=s+8:l=$(e,s+8,n),l+y>e.length){s+=12;continue}let I=e.slice(l,l+y);if(u===270){let x=Ct(I);if(x){let C=kt(x);r.push({source:{type:"exifImageDescription",prefix:C??void 0},data:C?x.slice(C.length+2):x})}}else if(u===271){let x=Ct(I);if(x){let C=kt(x);r.push({source:{type:"exifMake",prefix:C??void 0},data:C?x.slice(C.length+2):x})}}else if(u===37510){let x=Er(I);x&&r.push({source:{type:"exifUserComment"},data:x})}s+=12}return r}function kt(e){return e.match(/^([A-Za-z]+):\s/)?.[1]??null}function vr(e){switch(e){case 1:return 1;case 2:return 1;case 3:return 2;case 4:return 4;case 5:return 8;case 7:return 1;default:return 1}}function Ct(e){try{let n=new TextDecoder("utf-8",{fatal:!1}).decode(e);return n.endsWith("\0")&&(n=n.slice(0,-1)),n.trim()||null}catch{return null}}function Tr(e,t,n){if(t+2>e.length)return null;let r=U(e,t,n),o=t+2;for(let s=0;s<r;s++){if(o+12>e.length)return null;if(U(e,o,n)===34665)return $(e,o+8,n);o+=12}return null}function Er(e){if(e.length<8)return null;if(e[0]===85&&e[1]===78&&e[2]===73&&e[3]===67&&e[4]===79&&e[5]===68&&e[6]===69&&e[7]===0){let t=e.slice(8);return t.length>=2&&t[0]!==0&&t[1]===0?Mr(t):wt(t)}if(e[0]===65&&e[1]===83&&e[2]===67&&e[3]===73&&e[4]===73&&e[5]===0&&e[6]===0&&e[7]===0)return Ur(e.slice(8));try{let n=new TextDecoder("utf-8",{fatal:!0}).decode(e);return n.endsWith("\0")&&(n=n.slice(0,-1)),n}catch{return null}}function wt(e){let t=new TextDecoder("utf-16be").decode(e),n=t.indexOf("\0");return n>=0?t.slice(0,n):t}function Mr(e){let t=new TextDecoder("utf-16le").decode(e),n=t.indexOf("\0");return n>=0?t.slice(0,n):t}function Ur(e){let t=e.indexOf(0),n=t>=0?e.subarray(0,t):e;return new TextDecoder("ascii").decode(n)}var Pr=225,Ar=254;function Ir(e,t){return e[t]===69&&e[t+1]===120&&e[t+2]===105&&e[t+3]===102&&e[t+4]===0&&e[t+5]===0}function vt(e){if(!B(e))return a.error({type:"invalidSignature"});let t=[],n=_r(e);if(n){let o=e.slice(n.offset,n.offset+n.length),s=ue(o);t.push(...s)}let r=Rr(e);if(r){let o=e.slice(r.offset,r.offset+r.length),s=Nr(o);s!==null&&t.push({source:{type:"jpegCom"},data:s})}return a.ok(t)}function _r(e){let t=2;for(;t<e.length-4;){if(e[t]!==255){t++;continue}let n=e[t+1];if(n===255){t++;continue}let r=P(e,t+2);if(n===Pr&&r>=8){let o=t+4;if(o+6<=e.length&&Ir(e,o))return{offset:o+6,length:r-8}}if(t+=2+r,n===218||n===217)break}return null}function Rr(e){let t=2;for(;t<e.length-4;){if(e[t]!==255){t++;continue}let n=e[t+1];if(n===255){t++;continue}let r=P(e,t+2);if(n===Ar&&r>=2)return{offset:t+4,length:r-2};if(t+=2+r,n===218||n===217)break}return null}function Nr(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{return null}}function Et(e){if(!V(e))return a.error({type:"invalidSignature"});let t=Fr(e);return t.ok?a.ok(t.value):t}var Or=8;function Fr(e){let t=[],n=Or;for(;n<e.length;){if(n+4>e.length)return a.error({type:"corruptedChunk",message:"Unexpected end of file while reading chunk length"});let r=_(e,n);if(n+=4,n+4>e.length)return a.error({type:"corruptedChunk",message:"Unexpected end of file while reading chunk type"});let o=T(e,n);if(n+=4,n+r>e.length)return a.error({type:"corruptedChunk",message:`Unexpected end of file while reading chunk data (${o})`});let s=e.slice(n,n+r);if(n+=r,n+=4,o==="tEXt"){let i=Dr(s);i&&t.push(i)}else if(o==="iTXt"){let i=Jr(s);i&&t.push(i)}if(o==="IEND")break}return a.ok(t)}function Dr(e){let t=e.indexOf(0);if(t===-1)return null;let n=Tt(e.slice(0,t)),r=e.slice(t+1),o=Gr(r)??Tt(r);return{type:"tEXt",keyword:n,text:o}}function Gr(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{return null}}function Jr(e){let t=0,n=e.indexOf(0,t);if(n===-1)return null;let r=ne(e.slice(t,n));if(t=n+1,t>=e.length)return null;let o=e[t]??0;if(t+=1,t>=e.length)return null;let s=e[t]??0;t+=1;let i=e.indexOf(0,t);if(i===-1)return null;let u=ne(e.slice(t,i));t=i+1;let c=e.indexOf(0,t);if(c===-1)return null;let m=ne(e.slice(t,c));t=c+1;let g;if(o===1){let y=Wr(e.slice(t));if(!y)return null;g=ne(y)}else g=ne(e.slice(t));return{type:"iTXt",keyword:r,compressionFlag:o,compressionMethod:s,languageTag:u,translatedKeyword:m,text:g}}function Tt(e){return new TextDecoder("iso-8859-1").decode(e)}function ne(e){return new TextDecoder("utf-8").decode(e)}function Wr(e){return null}function Mt(e){if(!X(e))return a.error({type:"invalidSignature"});let t=jr(e);if(!t)return a.ok([]);let n=e.slice(t.offset,t.offset+t.length),r=ue(n);return a.ok(r)}function jr(e){let t=12;for(;t+8<=e.length;){let n=R(e,t+4);if(T(e,t)==="EXIF")return{offset:t+8,length:n};let r=n+n%2;t+=8+r}return null}function Ut(e){return Object.fromEntries(e.map(t=>[t.keyword,t.text]))}function Pt(e){let t={};for(let n of e){let r=Hr(n.source),o=n.data;if(n.source.type==="exifUserComment"&&o.startsWith("{")){let s=Lr(o);if(s){Object.assign(t,s);continue}}t[r]=o}return t}function Lr(e){let t=p(e);if(!t.ok||t.type!=="object")return null;let n=t.value;if(typeof n.Software=="string"&&!n.Software.startsWith("NovelAI")||typeof n.Comment!="string")return null;let r=p(n.Comment);return{Software:typeof n.Software=="string"?n.Software:"NovelAI",Comment:r.ok?JSON.stringify(r.value):n.Comment}}function Hr(e){switch(e.type){case"jpegCom":return"Comment";case"exifUserComment":return"UserComment";case"exifImageDescription":return e.prefix??"ImageDescription";case"exifMake":return e.prefix??"Make"}}function At(e,t){let n=W(e),r=j(n);if(!r)return{status:"invalid",message:"Unknown image format"};let o=zr(n,r);if(o.status!=="success")return o;let s=o.raw,i=s.format==="png"?Ut(s.chunks):Pt(s.segments),u=xt(i);if(!u.ok)return{status:"unrecognized",raw:s};let c=u.value;if(!t?.strict&&(c.width===0||c.height===0)){let m=St(n,r);m&&(c.width=c.width||m.width,c.height=c.height||m.height)}return{status:"success",metadata:c,raw:s}}function zr(e,t){let n=t==="png"?Et(e):t==="jpeg"?vt(e):Mt(e);return n.ok?n.value.length===0?{status:"empty"}:t==="png"?{status:"success",raw:{format:"png",chunks:n.value}}:{status:"success",raw:{format:t,segments:n.value}}:{status:"invalid",message:n.error.type==="invalidSignature"?`Invalid ${t.toUpperCase()} signature`:n.error.message}}function ce(e){let t=e.find(n=>n.keyword==="parameters");return t?[{source:{type:"exifUserComment"},data:t.text}]:[]}function pe(e){let t=e.find(n=>n.source.type==="exifUserComment");return t?h("parameters",t.data,"dynamic"):[]}function It(e){let t=e.find(r=>r.keyword==="parameters");if(t&&!t.text.trimStart().startsWith("{"))return ce(e);let n={};for(let r of e)if(r.keyword==="prompt"){let o=p(r.text);o.ok&&o.type==="object"&&Object.assign(n,o.value)}else if(r.keyword==="extraMetadata")n[r.keyword]=r.text;else{let o=p(r.text);n[r.keyword]=o.ok?o.value:r.text}return[{source:{type:"exifUserComment"},data:JSON.stringify(n)}]}function _t(e){let t=S(e,"exifUserComment");return t?t.data.trimStart().startsWith("{")?h("prompt",t.data,"text-unicode-escape"):pe(e):[]}function me(e){let t={};for(let n of e){let r=p(n.text);r.ok?t[n.keyword]=r.value:t[n.keyword]=n.text}return[{source:{type:"exifUserComment"},data:JSON.stringify(t)}]}function fe(e,t){let n=S(e,"exifUserComment");if(!n)return[];let r=p(n.data);return!r.ok||r.type!=="object"?[]:Object.entries(r.value).flatMap(([o,s])=>{let i=k(s);return h(o,i!==void 0?J(i):void 0,t)})}function Rt(e){return me(e)}var Vr=e=>{let t=S(e,"exifImageDescription"),n=S(e,"exifMake");return!t&&!n?null:[...h("prompt",n?.data,"text-unicode-escape"),...h("workflow",t?.data,"text-unicode-escape")]},Br=e=>{let t=fe(e,"text-unicode-escape");return t.length>0?t:null};function Nt(e){return Vr(e)??Br(e)??[]}function Ot(e){let t=Object.fromEntries(e.map(n=>[n.keyword,n.text]));return[{source:{type:"exifUserComment"},data:JSON.stringify(t)}]}function Ft(e){let t=S(e,"exifUserComment");if(!t)return[];let n=p(t.data);return!n.ok||n.type!=="object"?[]:Object.entries(n.value).flatMap(([r,o])=>h(r,k(o),"dynamic"))}function Dt(e){return me(e)}function Gt(e){return fe(e,"dynamic")}var Xr="NovelAI generated image",$r="NovelAI";function Jt(e){let t=e.find(s=>s.keyword==="Description"),n=t&&{source:{type:"exifImageDescription"},data:`\0\0\0\0${t.text}`},r=Kr(e),o={source:{type:"exifUserComment"},data:JSON.stringify(r)};return[n,o].filter(s=>s!==void 0)}function Kr(e){return Object.fromEntries(Yr.flatMap(t=>{let n=e.find(r=>r.keyword===t);return n?[[t,n.text]]:[]}))}var Yr=["Comment","Description","Generation time","Software","Source","Title"];function Wt(e){let t=S(e,"exifUserComment"),n=S(e,"exifImageDescription");return Zr(t,n)}function Zr(e,t){if(!e||!t)return[];let n=p(e.data);if(!n.ok||n.type!=="object")return M("Comment",e.data);let r=n.value,o=qr(t,k(r.Description));return[M("Title",k(r.Title)??Xr),h("Description",o,"dynamic"),M("Software",k(r.Software)??$r),M("Source",k(r.Source)),M("Generation time",k(r["Generation time"])),M("Comment",k(r.Comment))].flat()}function qr(e,t){if(e?.data){let n=e.data;return n.startsWith("\0\0\0\0")?n.slice(4):n}if(t)return t.startsWith("\0\0\0\0")?t.slice(4):t}function de(e){return t=>{let n=t.find(r=>r.keyword===e);return n?[{source:{type:"exifUserComment"},data:n.text}]:[]}}function le(e,t){return n=>{let r=n.find(o=>o.source.type==="exifUserComment");return r?h(e,r.data,t):[]}}var Qr={parameters:"text-utf8-raw",default:"text-unicode-escape"};function jt(e){let t={};for(let n of e){let r=p(n.text);t[n.keyword]=r.ok?r.value:n.text}return[{source:{type:"exifUserComment"},data:JSON.stringify(t)}]}function Lt(e){let t=S(e,"exifUserComment");if(!t)return[];let n=p(t.data);if(!n.ok||n.type!=="object")return[];let r=n.value,o=Object.entries(r).map(([s,i])=>{let u=k(i);return[s,u!==void 0?J(u):void 0]});return re(o,Qr)}function Ht(e){let t=e.find(s=>s.keyword==="parameters");if(!t)return[];let n=p(t.text),r=[{source:{type:"exifUserComment"},data:n.ok?JSON.stringify(n.value):t.text}],o=e.find(s=>s.keyword==="prompt");return o&&r.push({source:{type:"exifMake"},data:o.text}),r}function zt(e){let t=S(e,"exifUserComment"),n=S(e,"exifMake");return[h("prompt",n?.data,"text-unicode-escape"),h("parameters",t?.data,"text-unicode-escape")].flat()}var eo={generation_data:"text-utf8-raw",default:"text-unicode-escape"};function Vt(e){let t={};for(let n of e){let r=p(n.text);t[n.keyword]=r.ok?r.value:n.text}return[{source:{type:"exifUserComment"},data:JSON.stringify(t)}]}function Bt(e){let t=S(e,"exifUserComment");if(!t)return[];let n=p(t.data);if(!n.ok||n.type!=="object")return[];let r=n.value,o=Object.entries(r).map(([s,i])=>{let u=k(i);return[s,u!==void 0?J(u):void 0]});return re(o,eo)}function Xt(e,t){if(e.status==="empty")return a.error({type:"missingRawData"});if(e.status==="invalid")return a.error({type:"invalidParseResult",status:e.status});if(e.status==="unrecognized")return a.error({type:"unsupportedSoftware",software:"unknown"});let n=e.raw;if(n.format===t)return a.ok(n);let r=e.metadata.software,o=fo[r];return o?o(n,t):a.error({type:"unsupportedSoftware",software:r})}function E(e,t){return(n,r)=>{if(n.format==="png"){if(r==="png")return a.ok(n);let s=e(n.chunks);return a.ok({format:r,segments:s})}if(r==="jpeg"||r==="webp")return a.ok({format:r,segments:n.segments});let o=t(n.segments);return a.ok({format:"png",chunks:o})}}var to=E(Jt,Wt),G=E(ce,pe),no=E(Rt,Nt),ro=E(Ot,Ft),oo=E(de("parameters"),le("parameters","text-unicode-escape")),so=E(de("parameters"),le("parameters","text-unicode-escape")),io=E(Ht,zt),ao=E(Dt,Gt),uo=E(de("parameters"),le("parameters","text-unicode-escape")),co=E(It,_t),po=E(jt,Lt),mo=E(Vt,Bt),fo={novelai:to,"sd-webui":G,"sd-next":G,forge:G,"forge-classic":G,"forge-neo":G,reforge:G,"easy-reforge":G,civitai:co,comfyui:no,tensorart:mo,"stability-matrix":po,easydiffusion:ro,fooocus:oo,"ruined-fooocus":so,swarmui:io,invokeai:ao,"hf-space":uo};function Yt(e,t){let n=W(e),r=j(n);if(!r)return{ok:!1,error:{type:"unsupportedFormat"}};if(t.status==="empty"){let s=Kt[r].writeEmpty(n,[]);return s.ok?{ok:!0,value:s.value}:{ok:!1,error:{type:"writeFailed",message:s.error.type}}}if(t.status==="invalid")return{ok:!1,error:{type:"writeFailed",message:"Cannot write invalid metadata"}};if(t.status==="unrecognized"){if(t.raw.format===r)return $t(n,r,t.raw);let i=Kt[r].writeEmpty(n,[]);return i.ok?{ok:!0,value:i.value,warning:{type:"metadataDropped",reason:"unrecognizedCrossFormat"}}:{ok:!1,error:{type:"writeFailed",message:i.error.type}}}let o=Xt(t,r);return o.ok?$t(n,r,o.value):{ok:!1,error:{type:"conversionFailed",message:`Failed to convert metadata: ${o.error.type}`}}}function $t(e,t,n){if(t==="png"&&n.format==="png"){let r=q(e,n.chunks);return r.ok?{ok:!0,value:r.value}:{ok:!1,error:{type:"writeFailed",message:r.error.type}}}if(t==="jpeg"&&n.format==="jpeg"){let r=K(e,n.segments);return r.ok?{ok:!0,value:r.value}:{ok:!1,error:{type:"writeFailed",message:r.error.type}}}if(t==="webp"&&n.format==="webp"){let r=Q(e,n.segments);return r.ok?{ok:!0,value:r.value}:{ok:!1,error:{type:"writeFailed",message:r.error.type}}}return{ok:!1,error:{type:"writeFailed",message:"Internal error: format mismatch after conversion"}}}var Kt={png:{writeEmpty:q},jpeg:{writeEmpty:K},webp:{writeEmpty:Q}};var Zt=Object.freeze({novelai:"NovelAI",comfyui:"ComfyUI",swarmui:"SwarmUI",tensorart:"TensorArt","stability-matrix":"Stability Matrix",invokeai:"InvokeAI","sd-webui":"Stable Diffusion WebUI",forge:"Forge","forge-classic":"Forge - Classic","forge-neo":"Forge - Neo",reforge:"reForge","easy-reforge":"EasyReforge","sd-next":"SD.Next",civitai:"Civitai","hf-space":"Hugging Face Space",easydiffusion:"Easy Diffusion",fooocus:"Fooocus","ruined-fooocus":"Ruined Fooocus"});return an(lo);})();
9
+ `)}}function Le(e){if(`status`in e)switch(e.status){case`success`:return N(e.metadata);case`unrecognized`:return Ie(e.raw);case`empty`:case`invalid`:return``}return N(e)}function Re(e,t){let n=d(e),r=h(n);if(!r)return u.error({type:`unsupportedFormat`});let i=ze(r,n,N(t));return i.ok?u.ok(i.value):u.error({type:`writeFailed`,message:i.error.type})}function ze(e,t,n){switch(e){case`png`:return A(t,c(`parameters`,n,`dynamic`));case`jpeg`:return O(t,[{source:{type:`exifUserComment`},data:n}]);case`webp`:return ke(t,[{source:{type:`exifUserComment`},data:n}])}}function P(e){let t=Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0));return Object.keys(t).length===0?void 0:t}function F(e,t){let n=e.parameters??e.UserComment;if(!n)return u.error({type:`unsupportedFormat`});let{prompt:r,negativePrompt:i,settings:a}=Be(n),o=Ve(a),[s,c]=He(o.get(`Size`)??`0x0`),l=o.get(`Model`),d=o.get(`Model hash`),f=o.get(`Sampler`),p=o.get(`Schedule type`),m=I(o.get(`Steps`)),h=I(o.get(`CFG scale`)??o.get(`CFG Scale`)),g=I(o.get(`Seed`)),_=I(o.get(`Clip skip`)),v=I(o.get(`Hires upscale`)),y=o.get(`Hires upscaler`),b=I(o.get(`Hires steps`)),x=I(o.get(`Denoising strength`)),[S]=He(o.get(`Hires size`)??``),C=v??(S>0?S/s:void 0);return u.ok({software:t,prompt:r,negativePrompt:i,width:s,height:c,model:P({name:l,hash:d}),sampling:P({sampler:f,scheduler:p,steps:m,cfg:h,seed:g,clipSkip:_}),hires:P({scale:C,upscaler:y,steps:b,denoise:x})})}function Be(e){let t=e.indexOf(`Negative prompt:`),n=e.indexOf(`Steps:`);if(t===-1&&n===-1)return{prompt:e.trim(),negativePrompt:``,settings:``};if(t===-1){let t=e.lastIndexOf(`
10
+ `,n);return{prompt:e.slice(0,t).trim(),negativePrompt:``,settings:e.slice(t).trim()}}if(n===-1)return{prompt:e.slice(0,t).trim(),negativePrompt:e.slice(t+16).trim(),settings:``};let r=e.lastIndexOf(`
11
+ `,n);return{prompt:e.slice(0,t).trim(),negativePrompt:e.slice(t+16,r).trim(),settings:e.slice(r).trim()}}function Ve(e){let t=new Map;if(!e||e.length>1e4)return t;for(let n of e.matchAll(/([A-Za-z][A-Za-z0-9 ]*?):\s*([^,]+?)(?=,\s*[A-Za-z][A-Za-z0-9 ]*?:|$)/g)){let e=(n[1]??``).trim(),r=(n[2]??``).trim();t.set(e,r)}return t}function He(e){let t=e.match(/(\d+)x(\d+)/);return t?[Number.parseInt(t[1]??`0`,10),Number.parseInt(t[2]??`0`,10)]:[0,0]}function I(e){if(e===void 0)return;let t=Number.parseFloat(e);return Number.isNaN(t)?void 0:t}function L(e){try{return Ue(JSON.parse(e))}catch{return{ok:!1,error:{type:`parseError`,message:`Invalid JSON`}}}}function Ue(e){if(e===null)return{ok:!0,type:`null`,value:null};if(Array.isArray(e))return{ok:!0,type:`array`,value:e};switch(typeof e){case`object`:return{ok:!0,type:`object`,value:e};case`string`:return{ok:!0,type:`string`,value:e};case`number`:return{ok:!0,type:`number`,value:e};case`boolean`:return{ok:!0,type:`boolean`,value:e};default:return{ok:!1,error:{type:`parseError`,message:`Unexpected JSON type`}}}}let We=[`KSampler`,`KSamplerAdvanced`,`SamplerCustomAdvanced`,`SamplerCustom`,`DetailerForEach`],Ge=[`EmptyLatentImage`],Ke=[`SDXL Empty Latent Image (rgthree)`],qe=[`CheckpointLoaderSimple`,`CheckpointLoader`],Je=[`UNETLoader`],Ye=[`CLIPSetLastLayer`],Xe=[`UpscaleModelLoader`],Ze=[`ImageScale`,`ImageScaleBy`],Qe=[`LatentUpscale`,`LatentUpscaleBy`],$e=[`VAEEncode`,`VAEEncodeTiled`];function et(e){let t={};for(let n of Object.values(e)){let e=n.class_type;!t.sampler&&We.includes(e)?t.sampler=n:!t.latentImage&&Ge.includes(e)?t.latentImage=n:!t.latentImageRgthree&&Ke.includes(e)?t.latentImageRgthree=n:!t.checkpoint&&qe.includes(e)?t.checkpoint=n:!t.unetLoader&&Je.includes(e)?t.unetLoader=n:!t.clipSetLastLayer&&Ye.includes(e)?t.clipSetLastLayer=n:!t.hiresModelUpscale&&Xe.includes(e)?t.hiresModelUpscale=n:!t.hiresImageScale&&Ze.includes(e)?t.hiresImageScale=n:!t.latentUpscale&&Qe.includes(e)?t.latentUpscale=n:!t.vaeEncode&&$e.includes(e)&&(t.vaeEncode=n)}return t}function R(e,t){if(z(t))return e[String(t[0])]}function z(e){return Array.isArray(e)&&e.length===2&&(typeof e[0]==`string`||typeof e[0]==`number`)&&typeof e[1]==`number`}function tt(e,t,n=10){if(n<=0)return``;let r=e[t];if(!r)return``;let i=r.inputs.text??r.inputs.prompt??r.inputs.Text??r.inputs.prompt_text;if(typeof i==`string`)return i;if(z(i)){let t=tt(e,String(i[0]),n-1);if(t)return t}return typeof r.inputs.text_0==`string`?r.inputs.text_0:``}function nt(e,t){return R(e,t.inputs.guider)||t}function rt(e,t){if(!t)return{promptText:``,negativeText:``};let n=nt(e,t);return{promptText:B(e,n.inputs.positive,`positive`),negativeText:B(e,n.inputs.negative,`negative`)}}function B(e,t,n,r=10){if(r<=0||!z(t))return``;let i=String(t[0]),a=tt(e,i);if(a)return a;let o=e[i];if(!o)return``;let s=o.inputs[n];return B(e,s,n,r-1)}function it(e,t){if(e){let t=Number(e.inputs.width)||0,n=Number(e.inputs.height)||0;if(t>0&&n>0)return{width:t,height:n}}if(t&&typeof t.inputs.dimensions==`string`){let e=t.inputs.dimensions.match(/^(\d+)\s*x\s*(\d+)/);if(e?.[1]&&e[2])return{width:Number.parseInt(e[1],10),height:Number.parseInt(e[2],10)}}return{width:0,height:0}}function at(e,t){if(!t)return;if(t.class_type===`SamplerCustomAdvanced`)return ot(e,t);if(t.class_type===`SamplerCustom`)return st(e,t);let n=t.inputs.seed;return z(n)&&(n=e[String(n[0])]?.inputs.seed),{seed:n,steps:t.inputs.steps,cfg:t.inputs.cfg,sampler:t.inputs.sampler_name,scheduler:t.inputs.scheduler,denoise:t.inputs.denoise}}function ot(e,t){let n=R(e,t.inputs.noise),r=R(e,t.inputs.guider),i=R(e,t.inputs.sampler),a=R(e,t.inputs.sigmas);return{seed:n?.inputs.noise_seed,steps:a?.inputs.steps,cfg:r?.inputs.cfg,sampler:i?.inputs.sampler_name,scheduler:a?.inputs.scheduler,denoise:a?.inputs.denoise}}function st(e,t){let n=R(e,t.inputs.sampler),r=R(e,t.inputs.sigmas),i=t.inputs.noise_seed;return z(i)&&(i=e[String(i[0])]?.inputs.seed),{seed:i,steps:r?.inputs.steps,cfg:t.inputs.cfg,sampler:n?.inputs.sampler_name,scheduler:r?.inputs.scheduler,denoise:r?.inputs.denoise}}function ct(e,t){let n=e?.inputs?.ckpt_name;if(typeof n==`string`&&n)return{name:n};let r=t?.inputs?.unet_name;if(typeof r==`string`&&r)return{name:r}}function lt(e){if(!e)return;let t=e.inputs.stop_at_clip_layer;if(typeof t==`number`)return-t}function ut(e,t){if(!(t<=0||e<=0))return Math.round(e/t*100)/100}function dt(e,t){let n=t.inputs.latent_image;if(!z(n))return!1;let r=e[String(n[0])];if(!r)return!1;if(Qe.includes(r.class_type))return!0;if(!$e.includes(r.class_type))return!1;let i=r.inputs.pixels;if(!z(i))return!1;let a=e[String(i[0])];return a?Ze.includes(a.class_type):!1}function ft(e){return Object.values(e).find(t=>We.includes(t.class_type)&&dt(e,t))}function pt(e,t){let n=e.extraMetadata;if(typeof n==`string`){let e=L(n);if(e.ok&&e.type===`object`)return e.value}if(t?.extraMetadata){let e=L(t.extraMetadata);if(e.ok&&e.type===`object`)return e.value}}function mt(e){if(!e)return;let t=ht(e),n=gt(e);return P({prompt:e.prompt,negativePrompt:e.negativePrompt,width:e.width,height:e.height,model:e.baseModel?{name:e.baseModel}:void 0,...n,...t})}function ht(e){if(!e.transformations)return{};let t=e.transformations.find(e=>e.type===`upscale`);if(!t?.upscaleWidth)return{};let n=ut(t.upscaleWidth,e.width??0);return n===void 0?{}:{upscale:{scale:n}}}function gt(e){return e.seed===void 0&&e.steps===void 0&&e.cfgScale===void 0&&e.sampler===void 0?{}:{sampling:{seed:e.seed,steps:e.steps,cfg:e.cfgScale,sampler:e.sampler}}}let _t=/Text(Encode|.?Box)|ShowText|PromptStash/,vt=/neg/i;function V(e){return typeof e==`string`?e:``}function H(e){if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(typeof e==`string`){let t=Number(e);return Number.isFinite(t)?t:void 0}}function yt(e){let t,n,r,i,a,o,s,c,l,u;for(let d of Object.values(e)){if(!d||typeof d!=`object`)continue;let e=d.class_type,f=d.inputs;if(!(!e||!f)){if(_t.test(e)){let r=V(f.text)||V(f.prompt)||V(f.Text)||V(f.prompt_text)||V(f.text_0);r&&(vt.test(e)||t?n||=r:t=r)}e.includes(`Sampler`)&&(r===void 0&&(r=H(f.seed)??H(f.noise_seed)),i===void 0&&(i=H(f.steps)),a===void 0&&(a=H(f.cfg)),o||=V(f.sampler_name),s||=V(f.scheduler)),c||=V(f.ckpt_name)||V(f.unet_name),l===void 0&&(l=H(f.width)),u===void 0&&(u=H(f.height))}}let d={};r!==void 0&&(d.seed=r),i!==void 0&&(d.steps=i),a!==void 0&&(d.cfg=a),o&&(d.sampler=o),s&&(d.scheduler=s);let f={};return t&&(f.prompt=t),n&&(f.negativePrompt=n),l!==void 0&&l>0&&(f.width=l),u!==void 0&&u>0&&(f.height=u),c&&(f.model={name:c}),Object.keys(d).length>0&&(f.sampling=d),f}let bt=[`extra`,`extraMetadata`,`resource-stack`];function U(e){let t=St(e);if(!t)return Ct(e)?u.ok({software:`comfyui`,nodes:{},prompt:``,negativePrompt:``,width:0,height:0}):u.error({type:`unsupportedFormat`});let n=L(t);if(!n.ok||n.type!==`object`)return u.error({type:`parseError`,message:`Invalid JSON in prompt entry`});let r=n.value,i=Dt(yt(r),mt(pt(r,e)),wt(r));return u.ok({software:`comfyui`,nodes:Object.fromEntries(Object.entries(r).filter(([e])=>!bt.includes(e))),...i})}function xt(e){if(!e||typeof e.denoise!=`number`)return e;if(e.denoise>=1){let{denoise:t,...n}=e;return n}return e}function W(e){return e.replace(/\0+$/,``).replace(/([:,[])\s*NaN\b/g,`$1null`)}function St(e){if(e.prompt)return W(e.prompt);let t=[e.UserComment,e.ImageDescription,e.Make,e.Prompt,e.Workflow];for(let e of t)if(e&&e.startsWith(`{`)){let t=W(e),n=L(t);if(!n.ok||n.type!==`object`)continue;if(n.value.prompt&&typeof n.value.prompt==`object`)return JSON.stringify(n.value.prompt);if(Object.values(n.value).some(e=>e&&typeof e==`object`&&`class_type`in e))return t}}function Ct(e){for(let t of[e.workflow,e.Workflow]){if(!t?.startsWith(`{`))continue;let e=L(W(t));if(e.ok&&e.type===`object`&&Array.isArray(e.value.nodes))return!0}return!1}function wt(e){let t=et(e),{promptText:n,negativeText:r}=rt(e,t.sampler),{width:i,height:a}=it(t.latentImage,t.latentImageRgthree),o=ft(e),s=xt(o?at(e,o):void 0),c=Tt(e,t,i),l=t.hiresModelUpscale?.inputs.model_name,u=xt(at(e,t.sampler)),d=lt(t.clipSetLastLayer);return P({prompt:n||void 0,negativePrompt:r||void 0,width:i>0?i:void 0,height:a>0?a:void 0,model:ct(t.checkpoint,t.unetLoader),sampling:P({...u,clipSkip:d}),...Et(l,c,s)})}function Tt(e,t,n){let r=t.latentUpscale?.inputs;if(r?.scale_by!==void 0)return r.scale_by;let i=t.hiresImageScale?.inputs.width;if(i!==void 0){if(z(i)){let t=e[String(i[0])];return typeof t?.inputs.clip_scale==`number`?t.inputs.clip_scale:void 0}if(typeof i==`number`)return ut(i,n)}}function Et(e,t,n){return!e&&t===void 0&&!n?{}:n?{hires:{upscaler:e,scale:t,steps:n.steps,denoise:n.denoise}}:e?{upscale:{upscaler:e,scale:t}}:{}}function G(...e){let t={};for(let n of e)if(n)for(let[e,r]of Object.entries(n))r!==void 0&&(t[e]=r);return Object.keys(t).length>0?t:void 0}function Dt(...e){let t=[...e].reverse(),n=e=>t.find(t=>t?.[e])?.[e];return{prompt:n(`prompt`)??``,negativePrompt:n(`negativePrompt`)??``,width:n(`width`)??0,height:n(`height`)??0,...P({model:G(...e.map(e=>e?.model)),sampling:G(...e.map(e=>e?.sampling)),hires:G(...e.map(e=>e?.hires)),upscale:G(...e.map(e=>e?.upscale))})}}let K=`extraMetadata`,q=`sui_image_params`,Ot=`swarm_version`,kt=`noise_schedule`,At=`v4_prompt`,jt=`RuinedFooocus`;function Mt(e){let t=Pt(e);if(t)return t;let n=It(e);if(n)return n;let r=e.parameters??e.UserComment??e.Comment;return r?Lt(r):null}function Nt(e){return`invokeai_metadata`in e?`invokeai`:`generation_data`in e?`tensorart`:`smproj`in e?`stability-matrix`:K in e?`civitai`:null}function Pt(e){if(e.Software?.startsWith(`NovelAI`))return`novelai`;if(e.CreatorTool?.startsWith(`Draw Things`))return`draw-things`;let t=Nt(e);if(t)return t;if(`fooocus_scheme`in e)return`fooocus`;if(`use_stable_diffusion_model`in e)return`easydiffusion`;if(e.parameters?.includes(q))return`swarmui`;let n=e.UserComment??e.Comment;return n?.startsWith(`{`)?Ft(n):null}function Ft(e){let t=L(e);if(!t.ok||t.type!==`object`)return null;let n=t.value,r=Nt(n);if(r)return r;if(`prompt`in n&&`workflow`in n){let e=n.workflow,t=n.prompt,r=typeof e==`object`||typeof t==`object`,i=typeof e==`string`&&e.startsWith(`{`)||typeof t==`string`&&t.startsWith(`{`);if(r||i)return`comfyui`}if(q in n)return`swarmui`;if(`prompt`in n&&`parameters`in n){let e=String(n.parameters||``);if(e.includes(q)||e.includes(Ot))return`swarmui`}return null}function It(e){if(`prompt`in e&&`workflow`in e||`Prompt`in e&&`Workflow`in e||`workflow`in e||`Workflow`in e)return`comfyui`;let t=e.prompt??e.Prompt;if(t?.startsWith(`{`)){if(t.includes(q))return`swarmui`;if(t.includes(`"${K}"`))return`civitai`;if(t.includes(`class_type`))return`comfyui`}return null}function Lt(e){return e.startsWith(`{`)?Rt(e):zt(e)}function Rt(e){return e.includes(q)?`swarmui`:e.includes(`"software":"${jt}"`)||e.includes(`"software": "${jt}"`)?`ruined-fooocus`:e.includes(`"use_stable_diffusion_model"`)?`easydiffusion`:e.includes(`civitai:`)||e.includes(`"${K}"`)?`civitai`:e.includes(`"${At}"`)||e.includes(`"${kt}"`)||e.includes(`"uncond_scale"`)||e.includes(`"Software":"NovelAI"`)||e.includes(`\\"${kt}\\"`)||e.includes(`\\"${At}\\"`)?`novelai`:e.includes(`"Model"`)&&e.includes(`"resolution"`)?`hf-space`:e.includes(`"prompt"`)&&e.includes(`"base_model"`)?`fooocus`:e.includes(`"prompt"`)||e.includes(`"nodes"`)?`comfyui`:null}function zt(e){if(e.includes(q)||e.includes(Ot))return`swarmui`;let t=e.match(/Version:\s*([^\s,]+)/);if(t){let e=t[1];if(e&&/^v\d/.test(e))return`sd-webui`;if(e===`classic`)return`forge-classic`;if(e===`neo`||e?.startsWith(`neo`))return`forge-neo`;if(e?.startsWith(`f`)&&/^f\d/.test(e))return/^f\d+\.\d+(\.\d+)?-v/.test(e)?`easy-reforge`:/^f\d+\.\d+(\.\d+)?v\d+-v/.test(e)?`reforge`:`forge`;if(e?.startsWith(`Fooocus`))return`fooocus`;if(e===`ComfyUI`)return`comfyui`}return e.includes(`App: SD.Next`)||e.includes(`App:SD.Next`)?`sd-next`:e.includes(`Civitai resources:`)?`civitai`:e.includes(`Steps:`)||e.includes(`Sampler:`)||e.includes(`Negative prompt:`)?`sd-webui`:null}function Bt(e){let t=e.UserComment?.startsWith(`{`)?e.UserComment:e.Comment?.startsWith(`{`)?e.Comment:void 0;if(!t)return u.error({type:`unsupportedFormat`});let n=L(t);return!n.ok||n.type!==`object`?u.error({type:`parseError`,message:`Invalid JSON in Draw Things metadata`}):Ht(n.value)}function Vt(e){if(typeof e!=`string`)return{width:0,height:0};let t=e.match(/^(\d+)x(\d+)$/);return t?{width:Number(t[1]),height:Number(t[2])}:{width:0,height:0}}function Ht(e){let t=t=>{let n=e[t];return typeof n==`string`?n:void 0},n=t=>{let n=e[t];if(typeof n==`number`&&n!==0)return n},r=(t(`c`)??``).trim(),i=(t(`uc`)??``).trim(),{width:a,height:o}=Vt(e.size),s={software:`draw-things`,prompt:r,negativePrompt:i,width:a,height:o,model:P({name:t(`model`)}),sampling:P({sampler:t(`sampler`),steps:n(`steps`),cfg:n(`scale`),seed:n(`seed`),denoise:n(`strength`)})};return u.ok(s)}function Ut(e){if(!e)return;let t=e.replace(/\\/g,`/`).split(`/`);return t[t.length-1]}function Wt(e){if(`use_stable_diffusion_model`in e)return Gt(e);let t=e.UserComment?.startsWith(`{`)?e.UserComment:e.parameters?.startsWith(`{`)?e.parameters:void 0;if(!t)return u.error({type:`unsupportedFormat`});let n=L(t);return!n.ok||n.type!==`object`?u.error({type:`parseError`,message:`Invalid JSON in Easy Diffusion metadata`}):Gt(n.value)}function Gt(e){let t=t=>{let n=e[t];return typeof n==`string`?n:void 0},n=t=>Number(e[t])||void 0,r=(t(`prompt`)??``).trim(),i=(t(`negative_prompt`)??``).trim(),a=t(`use_stable_diffusion_model`),o=P({upscaler:t(`use_upscale`),scale:n(`upscale_amount`)}),s={software:`easydiffusion`,prompt:r,negativePrompt:i,width:n(`width`)??0,height:n(`height`)??0,model:P({name:Ut(a),vae:t(`use_vae_model`)}),sampling:P({sampler:t(`sampler_name`),steps:n(`num_inference_steps`),cfg:n(`guidance_scale`),seed:n(`seed`),clipSkip:n(`clip_skip`),denoise:n(`prompt_strength`)}),...o?{upscale:o}:{}};return u.ok(s)}function Kt(e){if(!e)return{width:0,height:0};let t=e.match(/\(\s*(\d+)\s*,\s*(\d+)\s*\)/);return!t?.[1]||!t[2]?{width:0,height:0}:{width:Number(t[1]),height:Number(t[2])}}function qt(e){let t=e.parameters??e.UserComment;if(!t||!t.startsWith(`{`))return u.error({type:`unsupportedFormat`});let n=L(t);if(!n.ok||n.type!==`object`)return u.error({type:`parseError`,message:`Invalid JSON in Fooocus metadata`});let r=n.value,{width:i,height:a}=Kt(r.resolution),o={software:`fooocus`,prompt:r.prompt?.trim()??``,negativePrompt:r.negative_prompt?.trim()??``,width:i,height:a,model:P({name:r.base_model,hash:r.base_model_hash,vae:r.vae}),sampling:P({sampler:r.sampler,scheduler:r.scheduler,steps:r.steps,cfg:r.guidance_scale,seed:r.seed,clipSkip:r.clip_skip})};return u.ok(o)}function Jt(e){let t=e.parameters??e.UserComment;if(!t)return u.error({type:`unsupportedFormat`});let n=L(t);if(!n.ok||n.type!==`object`)return u.error({type:`parseError`,message:`Invalid JSON in parameters entry`});let r=n.value,{width:i,height:a}=(e=>{let t=e?.match(/(\d+)\s*x\s*(\d+)/);return t?.[1]&&t?.[2]?{width:Number.parseInt(t[1],10),height:Number.parseInt(t[2],10)}:{width:0,height:0}})(r.resolution),o={software:`hf-space`,prompt:r.prompt??``,negativePrompt:r.negative_prompt??``,width:i,height:a,model:P({name:r.Model,hash:r[`Model hash`]}),sampling:P({sampler:r.sampler,steps:r.num_inference_steps,cfg:r.guidance_scale,seed:r.seed}),hires:r.use_upscaler?P({upscaler:r.use_upscaler.upscale_method,denoise:r.use_upscaler.upscaler_strength,scale:r.use_upscaler.upscale_by,steps:r.use_upscaler.upscale_steps}):void 0};return u.ok(o)}function J(e,t){if(!e.UserComment?.startsWith(`{`))return;let n=L(e.UserComment);if(!n.ok||n.type!==`object`)return;let r=n.value[t];if(typeof r==`string`)return r;if(typeof r==`object`&&r)return JSON.stringify(r)}function Yt(e){return e.invokeai_metadata??J(e,`invokeai_metadata`)}function Xt(e){let t=Yt(e);if(!t)return u.error({type:`unsupportedFormat`});let n=L(t);if(!n.ok||n.type!==`object`)return u.error({type:`parseError`,message:`Invalid JSON in invokeai_metadata entry`});let r=n.value,i=r.width??0,a=r.height??0,o=Zt(r);return u.ok({software:`invokeai`,prompt:r.positive_prompt??``,negativePrompt:r.negative_prompt??``,width:i,height:a,model:P({name:r.model?.name,hash:r.model?.hash}),sampling:P({seed:r.seed,steps:r.steps,cfg:r.cfg_scale,sampler:r.scheduler}),...o})}function Zt(e){if(!e.upscale_model?.name&&e.upscale_scale===void 0)return{};let t=P({upscaler:e.upscale_model?.name,scale:e.upscale_scale});return t?{upscale:t}:{}}function Qt(e){let t=e.UserComment??e.Comment;if(!t)return u.error({type:`parseError`,message:`Missing Comment/UserComment entry`});let n=L(t);if(!n.ok||n.type!==`object`)return u.error({type:`parseError`,message:`Invalid JSON in Comment entry`});let r=n.value,i=r.width??0,a=r.height??0,o=r.v4_prompt?.caption?.base_caption??r.prompt??``,s=r.v4_negative_prompt?.caption?.base_caption??r.uc??``,c=r.v4_prompt?.caption?.char_captions,l=c&&c.length>0?c.map(e=>e.char_caption?{prompt:e.char_caption,center:e.centers?.[0]}:null).filter(e=>e!==null):void 0;return u.ok({software:`novelai`,prompt:o,negativePrompt:s,width:i,height:a,sampling:P({steps:r.steps,cfg:r.scale,seed:r.seed,sampler:r.sampler,scheduler:r.noise_schedule}),characterPrompts:l,useCoords:l?r.v4_prompt?.use_coords:void 0,useOrder:l?r.v4_prompt?.use_order:void 0})}function $t(e){let t=e.parameters??e.UserComment;if(!t||!t.startsWith(`{`))return u.error({type:`unsupportedFormat`});let n=L(t);if(!n.ok||n.type!==`object`)return u.error({type:`parseError`,message:`Invalid JSON in Ruined Fooocus metadata`});let r=n.value,i={software:`ruined-fooocus`,prompt:r.Prompt?.trim()??``,negativePrompt:r.Negative?.trim()??``,width:r.width??0,height:r.height??0,model:{name:r.base_model_name,hash:r.base_model_hash},sampling:{sampler:r.sampler_name,scheduler:r.scheduler,steps:r.steps,cfg:r.cfg,seed:r.seed,clipSkip:r.clip_skip}};return u.ok(i)}function en(e){let t=U(e);if(!t.ok||t.value.software!==`comfyui`)return u.error({type:`unsupportedFormat`});let n=e[`parameters-json`]??J(e,`parameters-json`),r=n?L(n):void 0,i=r?.ok&&r.type===`object`?r.value:void 0;return u.ok({...t.value,software:`stability-matrix`,prompt:i?.PositivePrompt??t.value.prompt,negativePrompt:i?.NegativePrompt??t.value.negativePrompt,model:i?.ModelName!==void 0||i?.ModelHash!==void 0?{name:i?.ModelName,hash:i?.ModelHash}:t.value.model})}function tn(e){if(e.parameters)return e.parameters;if(!e.UserComment)return;let t=L(e.UserComment);if(!(!t.ok||t.type!==`object`)&&`sui_image_params`in t.value)return e.UserComment}function nn(e){let t=tn(e);if(!t)return u.error({type:`unsupportedFormat`});let n=L(t);if(!n.ok||n.type!==`object`)return u.error({type:`parseError`,message:`Invalid JSON in parameters entry`});let r=n.value.sui_image_params;if(!r)return u.error({type:`unsupportedFormat`});let i=r.width??0,a=r.height??0,o=e.prompt||e.Make,s=o?L(o):void 0,c=s?.ok&&s.type===`object`?s.value:void 0;return u.ok({software:`swarmui`,prompt:r.prompt??``,negativePrompt:r.negativeprompt??``,width:i,height:a,nodes:c,model:P({name:r.model}),sampling:P({seed:r.seed,steps:r.steps,cfg:r.cfgscale,sampler:r.sampler,scheduler:r.scheduler}),hires:P({scale:r.refinerupscale,upscaler:r.refinerupscalemethod,denoise:r.refinercontrolpercentage})})}function rn(e){let t=e.generation_data??J(e,`generation_data`),n=e.prompt??J(e,`prompt`);if(!t)return u.error({type:`unsupportedFormat`});let r=L(t.replace(/\0+$/,``));if(!r.ok||r.type!==`object`)return u.error({type:`parseError`,message:`Invalid JSON in generation_data entry`});let i=r.value;if(!n)return u.error({type:`unsupportedFormat`});let a=L(n);if(!a.ok||a.type!==`object`)return u.error({type:`parseError`,message:`Invalid JSON in prompt chunk`});let o=a.value,s=wt(o),c=P({name:i.baseModel?.modelFileName,hash:i.baseModel?.hash});return u.ok({software:`tensorart`,nodes:o,prompt:i.prompt??s?.prompt??``,negativePrompt:i.negativePrompt??s?.negativePrompt??``,width:s?.width??0,height:s?.height??0,model:c??s?.model,sampling:s?.sampling,hires:s?.hires,upscale:s?.upscale})}function an(e){let t=Mt(e);switch(t){case`novelai`:return Qt(e);case`sd-webui`:case`forge`:case`forge-classic`:case`forge-neo`:case`reforge`:case`easy-reforge`:case`sd-next`:return F(e,t);case`hf-space`:return Jt(e);case`civitai`:{let t=U(e);return t.ok?u.ok({...t.value,software:`civitai`}):F(e,`civitai`)}case`comfyui`:{let t=U(e);return t.ok?t:F(e,`sd-webui`)}case`invokeai`:return Xt(e);case`swarmui`:return nn(e);case`tensorart`:return rn(e);case`stability-matrix`:return en(e);case`easydiffusion`:return Wt(e);case`fooocus`:{let t=e.fooocus_scheme,n=e.parameters??e.UserComment;return t===`a1111`||n&&!n.startsWith(`{`)?F(e,`fooocus`):qt(e)}case`ruined-fooocus`:return $t(e);case`draw-things`:return Bt(e);default:return u.error({type:`unsupportedFormat`})}}function on(e,t){return t===`png`?sn(e):t===`jpeg`?cn(e):ln(e)}function sn(e){return e.length<24?null:{width:y(e,16),height:y(e,20)}}function cn(e){let t=2;for(;t<e.length-4;){if(e[t]!==255){t++;continue}let n=e[t+1]??0;if(n===255){t++;continue}let r=g(e,t+2);if(n>=192&&n<=207&&n!==196&&n!==200&&n!==204){let n=g(e,t+5);return{width:g(e,t+7),height:n}}if(t+=2+r,n===218)break}return null}function ln(e){let t=12;for(;t<e.length&&!(t+8>e.length);){let n=S(e,t),r=b(e,t+4),i=r+r%2;if(n===`VP8X`){let n=v(e,t+12),r=v(e,t+15);return{width:n+1,height:r+1}}if(n===`VP8 `){let n=t+8;if(!(v(e,n)&1)&&e[n+3]===157&&e[n+4]===1&&e[n+5]===42){let t=_(e,n+6,!0),r=_(e,n+8,!0);return{width:t&16383,height:r&16383}}}if(n===`VP8L`&&e[t+8]===47){let n=b(e,t+9);return{width:(n&16383)+1,height:(n>>14&16383)+1}}t+=8+i}return null}function un(e){if(e.length<8)return[];let t=e[0]===73&&e[1]===73,n=e[0]===77&&e[1]===77;if(!t&&!n||_(e,2,t)!==42)return[];let r=x(e,4,t),i=dn(e,r,t),a=hn(e,r,t),o=a===null?[]:dn(e,a,t);return[...i,...o]}function dn(e,t,n){let r=[];if(t+2>e.length)return r;let i=_(e,t,n),a=t+2;for(let t=0;t<i;t++){if(a+12>e.length)return r;let t=_(e,a,n),i=_(e,a+2,n),o=x(e,a+4,n)*pn(i);if(o>e.length){a+=12;continue}let s;if(s=o<=4?a+8:x(e,a+8,n),s+o>e.length){a+=12;continue}let c=e.slice(s,s+o);if(t===270){let e=mn(c);if(e){let t=fn(e);r.push({source:{type:`exifImageDescription`,prefix:t??void 0},data:t?e.slice(t.length+2):e})}}else if(t===271){let e=mn(c);if(e){let t=fn(e);r.push({source:{type:`exifMake`,prefix:t??void 0},data:t?e.slice(t.length+2):e})}}else if(t===37510){let e=gn(c);e&&r.push({source:{type:`exifUserComment`},data:e})}a+=12}return r}function fn(e){return e.match(/^([A-Za-z]+):\s/)?.[1]??null}function pn(e){switch(e){case 1:return 1;case 2:return 1;case 3:return 2;case 4:return 4;case 5:return 8;case 7:return 1;default:return 1}}function mn(e){try{let t=new TextDecoder(`utf-8`,{fatal:!1}).decode(e);return t.endsWith(`\0`)&&(t=t.slice(0,-1)),t.trim()||null}catch{return null}}function hn(e,t,n){if(t+2>e.length)return null;let r=_(e,t,n),i=t+2;for(let t=0;t<r;t++){if(i+12>e.length)return null;if(_(e,i,n)===34665)return x(e,i+8,n);i+=12}return null}function gn(e){if(e.length<8)return null;if(e[0]===85&&e[1]===78&&e[2]===73&&e[3]===67&&e[4]===79&&e[5]===68&&e[6]===69&&e[7]===0){let t=e.slice(8);return t.length>=2&&t[0]!==0&&t[1]===0?vn(t):_n(t)}if(e[0]===65&&e[1]===83&&e[2]===67&&e[3]===73&&e[4]===73&&e[5]===0&&e[6]===0&&e[7]===0)return yn(e.slice(8));try{let t=new TextDecoder(`utf-8`,{fatal:!0}).decode(e);return t.endsWith(`\0`)&&(t=t.slice(0,-1)),t}catch{return null}}function _n(e){let t=new TextDecoder(`utf-16be`).decode(e),n=t.indexOf(`\0`);return n>=0?t.slice(0,n):t}function vn(e){let t=new TextDecoder(`utf-16le`).decode(e),n=t.indexOf(`\0`);return n>=0?t.slice(0,n):t}function yn(e){let t=e.indexOf(0),n=t>=0?e.subarray(0,t):e;return new TextDecoder(`ascii`).decode(n)}function bn(e,t){return e[t]===69&&e[t+1]===120&&e[t+2]===105&&e[t+3]===102&&e[t+4]===0&&e[t+5]===0}function xn(e){if(!p(e))return u.error({type:`invalidSignature`});let t=[],n=Sn(e);if(n){let r=un(e.slice(n.offset,n.offset+n.length));t.push(...r)}let r=Cn(e);if(r){let n=e.slice(r.offset,r.offset+r.length),i=new TextDecoder(`utf-8`).decode(n);t.push({source:{type:`xmpPacket`},data:i})}let i=wn(e);if(i){let n=Tn(e.slice(i.offset,i.offset+i.length));n!==null&&t.push({source:{type:`jpegCom`},data:n})}return u.ok(t)}function Sn(e){let t=2;for(;t<e.length-4;){if(e[t]!==255){t++;continue}let n=e[t+1];if(n===255){t++;continue}let r=g(e,t+2);if(n===225&&r>=8){let n=t+4;if(n+6<=e.length&&bn(e,n))return{offset:n+6,length:r-8}}if(t+=2+r,n===218||n===217)break}return null}function Cn(e){let t=2;for(;t<e.length-4;){if(e[t]!==255){t++;continue}let n=e[t+1];if(n===255){t++;continue}let r=g(e,t+2);if(n===225&&r>=E.length+2){let n=t+4;if(ne(e,n))return{offset:n+E.length,length:r-2-E.length}}if(t+=2+r,n===218||n===217)break}return null}function wn(e){let t=2;for(;t<e.length-4;){if(e[t]!==255){t++;continue}let n=e[t+1];if(n===255){t++;continue}let r=g(e,t+2);if(n===254&&r>=2)return{offset:t+4,length:r-2};if(t+=2+r,n===218||n===217)break}return null}function Tn(e){try{return new TextDecoder(`utf-8`,{fatal:!0}).decode(e)}catch{return null}}function En(e){if(!f(e))return u.error({type:`invalidSignature`});let t=Dn(e);return t.ok?u.ok(t.value):t}function Dn(e){let t=[],n=8;for(;n<e.length;){if(n+4>e.length)return u.error({type:`corruptedChunk`,message:`Unexpected end of file while reading chunk length`});let r=y(e,n);if(n+=4,n+4>e.length)return u.error({type:`corruptedChunk`,message:`Unexpected end of file while reading chunk type`});let i=S(e,n);if(n+=4,n+r>e.length)return u.error({type:`corruptedChunk`,message:`Unexpected end of file while reading chunk data (${i})`});let a=e.slice(n,n+r);if(n+=r,n+=4,i===`tEXt`){let e=On(a);e&&t.push(e)}else if(i===`iTXt`){let e=An(a);e&&t.push(e)}if(i===`IEND`)break}return u.ok(t)}function On(e){let t=e.indexOf(0);if(t===-1)return null;let n=jn(e.slice(0,t)),r=e.slice(t+1);return{type:`tEXt`,keyword:n,text:kn(r)??jn(r)}}function kn(e){try{return new TextDecoder(`utf-8`,{fatal:!0}).decode(e)}catch{return null}}function An(e){let t=0,n=e.indexOf(0,t);if(n===-1)return null;let r=Y(e.slice(t,n));if(t=n+1,t>=e.length)return null;let i=e[t]??0;if(t+=1,t>=e.length)return null;let a=e[t]??0;t+=1;let o=e.indexOf(0,t);if(o===-1)return null;let s=Y(e.slice(t,o));t=o+1;let c=e.indexOf(0,t);if(c===-1)return null;let l=Y(e.slice(t,c));t=c+1;let u;if(i===1){let n=Mn(e.slice(t));if(!n)return null;u=Y(n)}else u=Y(e.slice(t));return{type:`iTXt`,keyword:r,compressionFlag:i,compressionMethod:a,languageTag:s,translatedKeyword:l,text:u}}function jn(e){return new TextDecoder(`iso-8859-1`).decode(e)}function Y(e){return new TextDecoder(`utf-8`).decode(e)}function Mn(e){return null}function Nn(e){if(!m(e))return u.error({type:`invalidSignature`});let t=[],n=Pn(e);if(n){let r=e.slice(n.offset,n.offset+n.length);t.push(...un(r))}let r=Fn(e);if(r){let n=e.slice(r.offset,r.offset+r.length),i=new TextDecoder(`utf-8`).decode(n);t.push({source:{type:`xmpPacket`},data:i})}return u.ok(t)}function Pn(e){let t=12;for(;t+8<=e.length;){let n=b(e,t+4);if(S(e,t)===`EXIF`)return t+8+n>e.length?null:{offset:t+8,length:n};let r=n+n%2;t+=8+r}return null}function Fn(e){let t=12;for(;t+8<=e.length;){let n=b(e,t+4);if(S(e,t)===`XMP `)return t+8+n>e.length?null:{offset:t+8,length:n};let r=n+n%2;t+=8+r}return null}function In(e){return Object.fromEntries(e.flatMap(e=>{if(re(e.keyword)){let t=ie(e.text);if(t)return Object.entries(t)}return[[e.keyword,e.text]]}))}function Ln(e){let t={};for(let n of e){let e=zn(n.source),r=n.data;if(n.source.type===`xmpPacket`){let e=ie(r);if(e){Object.assign(t,e);continue}}if(n.source.type===`exifUserComment`&&r.startsWith(`{`)){let e=Rn(r);if(e){Object.assign(t,e);continue}}t[e]=r}return t}function Rn(e){let t=L(e);if(!t.ok||t.type!==`object`)return null;let n=t.value;if(typeof n.Software==`string`&&!n.Software.startsWith(`NovelAI`)||typeof n.Comment!=`string`)return null;let r=L(n.Comment);return{Software:typeof n.Software==`string`?n.Software:`NovelAI`,Comment:r.ok?JSON.stringify(r.value):n.Comment}}function zn(e){switch(e.type){case`jpegCom`:return`Comment`;case`exifUserComment`:return`UserComment`;case`exifImageDescription`:return e.prefix??`ImageDescription`;case`exifMake`:return e.prefix??`Make`;case`xmpPacket`:return`XML:com.adobe.xmp`}}function Bn(e,t){let n=d(e),r=h(n);if(!r)return{status:`invalid`,message:`Unknown image format`};let i=Vn(n,r);if(i.status!==`success`)return i;let a=i.raw,o=an(a.format===`png`?In(a.chunks):Ln(a.segments));if(!o.ok)return{status:`unrecognized`,raw:a};let s=o.value;if(!t?.strict&&(s.width===0||s.height===0)){let e=on(n,r);e&&(s.width=s.width||e.width,s.height=s.height||e.height)}return{status:`success`,metadata:s,raw:a}}function Vn(e,t){let n=t===`png`?En(e):t===`jpeg`?xn(e):Nn(e);return n.ok?n.value.length===0?{status:`empty`}:t===`png`?{status:`success`,raw:{format:`png`,chunks:n.value}}:{status:`success`,raw:{format:t,segments:n.value}}:{status:`invalid`,message:n.error.type===`invalidSignature`?`Invalid ${t.toUpperCase()} signature`:n.error.message}}function Hn(e){let t=e.find(e=>e.keyword===`parameters`);return t?[{source:{type:`exifUserComment`},data:t.text}]:[]}function Un(e){let t=e.find(e=>e.source.type===`exifUserComment`);return t?c(`parameters`,t.data,`dynamic`):[]}function Wn(e){let t=e.find(e=>e.keyword===`parameters`);if(t&&!t.text.trimStart().startsWith(`{`))return Hn(e);let n={};for(let t of e)if(t.keyword===`prompt`){let e=L(t.text);e.ok&&e.type===`object`&&Object.assign(n,e.value)}else if(t.keyword===`extraMetadata`)n[t.keyword]=t.text;else{let e=L(t.text);n[t.keyword]=e.ok?e.value:t.text}return[{source:{type:`exifUserComment`},data:JSON.stringify(n)}]}function Gn(e){let t=r(e,`exifUserComment`);return t?t.data.trimStart().startsWith(`{`)?c(`prompt`,t.data,`text-unicode-escape`):Un(e):[]}function Kn(e){let t={};for(let n of e){let e=L(n.text);e.ok?t[n.keyword]=e.value:t[n.keyword]=n.text}return[{source:{type:`exifUserComment`},data:JSON.stringify(t)}]}function qn(e,t){let n=r(e,`exifUserComment`);if(!n)return[];let a=L(n.data);return!a.ok||a.type!==`object`?[]:Object.entries(a.value).flatMap(([e,n])=>{let r=i(n);return c(e,r===void 0?void 0:o(r),t)})}function Jn(e){return Kn(e)}let Yn=e=>{let t=r(e,`exifImageDescription`),n=r(e,`exifMake`);return!t&&!n?null:[...c(`prompt`,n?.data,`text-unicode-escape`),...c(`workflow`,t?.data,`text-unicode-escape`)]},Xn=e=>{let t=qn(e,`text-unicode-escape`);return t.length>0?t:null};function Zn(e){return Yn(e)??Xn(e)??[]}function Qn(e){let t=e.find(e=>re(e.keyword));return t?[{source:{type:`xmpPacket`},data:t.text}]:[]}function $n(e){let t=r(e,`xmpPacket`);return t?n(`XML:com.adobe.xmp`,t.data):[]}function er(e){let t=Object.fromEntries(e.map(e=>[e.keyword,e.text]));return[{source:{type:`exifUserComment`},data:JSON.stringify(t)}]}function tr(e){let t=r(e,`exifUserComment`);if(!t)return[];let n=L(t.data);return!n.ok||n.type!==`object`?[]:Object.entries(n.value).flatMap(([e,t])=>c(e,i(t),`dynamic`))}function nr(e){return Kn(e)}function rr(e){return qn(e,`dynamic`)}function ir(e){let t=e.find(e=>e.keyword===`Description`),n=t&&{source:{type:`exifImageDescription`},data:`\0\0\0\0${t.text}`},r=ar(e);return[n,{source:{type:`exifUserComment`},data:JSON.stringify(r)}].filter(e=>e!==void 0)}function ar(e){return Object.fromEntries(or.flatMap(t=>{let n=e.find(e=>e.keyword===t);return n?[[t,n.text]]:[]}))}let or=[`Comment`,`Description`,`Generation time`,`Software`,`Source`,`Title`];function sr(e){return cr(r(e,`exifUserComment`),r(e,`exifImageDescription`))}function cr(e,n){if(!e||!n)return[];let r=L(e.data);if(!r.ok||r.type!==`object`)return t(`Comment`,e.data);let a=r.value,o=lr(n,i(a.Description));return[t(`Title`,i(a.Title)??`NovelAI generated image`),c(`Description`,o,`dynamic`),t(`Software`,i(a.Software)??`NovelAI`),t(`Source`,i(a.Source)),t(`Generation time`,i(a[`Generation time`])),t(`Comment`,i(a.Comment))].flat()}function lr(e,t){if(e?.data){let t=e.data;return t.startsWith(`\0\0\0\0`)?t.slice(4):t}if(t)return t.startsWith(`\0\0\0\0`)?t.slice(4):t}function X(e){return t=>{let n=t.find(t=>t.keyword===e);return n?[{source:{type:`exifUserComment`},data:n.text}]:[]}}function Z(e,t){return n=>{let r=n.find(e=>e.source.type===`exifUserComment`);return r?c(e,r.data,t):[]}}let ur={parameters:`text-utf8-raw`,default:`text-unicode-escape`};function dr(e){let t={};for(let n of e){let e=L(n.text);t[n.keyword]=e.ok?e.value:n.text}return[{source:{type:`exifUserComment`},data:JSON.stringify(t)}]}function fr(e){let t=r(e,`exifUserComment`);if(!t)return[];let n=L(t.data);if(!n.ok||n.type!==`object`)return[];let a=n.value;return l(Object.entries(a).map(([e,t])=>{let n=i(t);return[e,n===void 0?void 0:o(n)]}),ur)}function pr(e){let t=e.find(e=>e.keyword===`parameters`);if(!t)return[];let n=L(t.text),r=[{source:{type:`exifUserComment`},data:n.ok?JSON.stringify(n.value):t.text}],i=e.find(e=>e.keyword===`prompt`);return i&&r.push({source:{type:`exifMake`},data:i.text}),r}function mr(e){let t=r(e,`exifUserComment`);return[c(`prompt`,r(e,`exifMake`)?.data,`text-unicode-escape`),c(`parameters`,t?.data,`text-unicode-escape`)].flat()}let hr={generation_data:`text-utf8-raw`,default:`text-unicode-escape`};function gr(e){let t={};for(let n of e){let e=L(n.text);t[n.keyword]=e.ok?e.value:n.text}return[{source:{type:`exifUserComment`},data:JSON.stringify(t)}]}function _r(e){let t=r(e,`exifUserComment`);if(!t)return[];let n=L(t.data);if(!n.ok||n.type!==`object`)return[];let a=n.value;return l(Object.entries(a).map(([e,t])=>{let n=i(t);return[e,n===void 0?void 0:o(n)]}),hr)}function vr(e,t){if(e.status===`empty`)return u.error({type:`missingRawData`});if(e.status===`invalid`)return u.error({type:`invalidParseResult`,status:e.status});if(e.status===`unrecognized`)return u.error({type:`unsupportedSoftware`,software:`unknown`});let n=e.raw;if(n.format===t)return u.ok(n);let r=e.metadata.software,i=Ar[r];return i?i(n,t):u.error({type:`unsupportedSoftware`,software:r})}function Q(e,t){return(n,r)=>{if(n.format===`png`){if(r===`png`)return u.ok(n);let t=e(n.chunks);return u.ok({format:r,segments:t})}if(r===`jpeg`||r===`webp`)return u.ok({format:r,segments:n.segments});let i=t(n.segments);return u.ok({format:`png`,chunks:i})}}let yr=Q(ir,sr),$=Q(Hn,Un),br=Q(Jn,Zn),xr=Q(er,tr),Sr=Q(X(`parameters`),Z(`parameters`,`text-unicode-escape`)),Cr=Q(X(`parameters`),Z(`parameters`,`text-unicode-escape`)),wr=Q(pr,mr),Tr=Q(nr,rr),Er=Q(X(`parameters`),Z(`parameters`,`text-unicode-escape`)),Dr=Q(Qn,$n),Or=Q(Wn,Gn),kr=Q(dr,fr),Ar={novelai:yr,"sd-webui":$,"sd-next":$,forge:$,"forge-classic":$,"forge-neo":$,reforge:$,"easy-reforge":$,civitai:Or,comfyui:br,tensorart:Q(gr,_r),"stability-matrix":kr,easydiffusion:xr,fooocus:Sr,"ruined-fooocus":Cr,swarmui:wr,invokeai:Tr,"hf-space":Er,"draw-things":Dr};function jr(e,t){let n=d(e),r=h(n);if(!r)return{ok:!1,error:{type:`unsupportedFormat`}};if(t.status===`empty`){let e=Nr[r].writeEmpty(n,[]);return e.ok?{ok:!0,value:e.value}:{ok:!1,error:{type:`writeFailed`,message:e.error.type}}}if(t.status===`invalid`)return{ok:!1,error:{type:`writeFailed`,message:`Cannot write invalid metadata`}};if(t.status===`unrecognized`){if(t.raw.format===r)return Mr(n,r,t.raw);let e=Nr[r].writeEmpty(n,[]);return e.ok?{ok:!0,value:e.value,warning:{type:`metadataDropped`,reason:`unrecognizedCrossFormat`}}:{ok:!1,error:{type:`writeFailed`,message:e.error.type}}}let i=vr(t,r);return i.ok?Mr(n,r,i.value):{ok:!1,error:{type:`conversionFailed`,message:`Failed to convert metadata: ${i.error.type}`}}}function Mr(e,t,n){if(t===`png`&&n.format===`png`){let t=A(e,n.chunks);return t.ok?{ok:!0,value:t.value}:{ok:!1,error:{type:`writeFailed`,message:t.error.type}}}if(t===`jpeg`&&n.format===`jpeg`){let t=O(e,n.segments);return t.ok?{ok:!0,value:t.value}:{ok:!1,error:{type:`writeFailed`,message:t.error.type}}}if(t===`webp`&&n.format===`webp`){let t=ke(e,n.segments);return t.ok?{ok:!0,value:t.value}:{ok:!1,error:{type:`writeFailed`,message:t.error.type}}}return{ok:!1,error:{type:`writeFailed`,message:`Internal error: format mismatch after conversion`}}}let Nr={png:{writeEmpty:A},jpeg:{writeEmpty:O},webp:{writeEmpty:ke}},Pr=Object.freeze({novelai:`NovelAI`,comfyui:`ComfyUI`,swarmui:`SwarmUI`,tensorart:`TensorArt`,"stability-matrix":`Stability Matrix`,invokeai:`InvokeAI`,"sd-webui":`Stable Diffusion WebUI`,forge:`Forge`,"forge-classic":`Forge - Classic`,"forge-neo":`Forge - Neo`,reforge:`reForge`,"easy-reforge":`EasyReforge`,"sd-next":`SD.Next`,civitai:`Civitai`,"hf-space":`Hugging Face Space`,easydiffusion:`Easy Diffusion`,fooocus:`Fooocus`,"ruined-fooocus":`Ruined Fooocus`,"draw-things":`Draw Things`});return e.embed=Re,e.writeAsWebUI=Re,e.formatAsWebUI=N,e.formatRaw=Ie,e.read=Bn,e.softwareLabels=Pr,e.stringify=Le,e.write=jr,e})({});