@runware/sdk-js 1.1.41-beta.3 → 1.1.41-beta.4

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.
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var je=Object.create;var F=Object.defineProperty;var Qe=Object.getOwnPropertyDescriptor;var Je=Object.getOwnPropertyNames;var Ye=Object.getPrototypeOf,ze=Object.prototype.hasOwnProperty;var Ze=(o,e)=>()=>(e||o((e={exports:{}}).exports,e),e.exports),$e=(o,e)=>{for(var t in e)F(o,t,{get:e[t],enumerable:!0})},me=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Je(e))!ze.call(o,s)&&s!==t&&F(o,s,{get:()=>e[s],enumerable:!(n=Qe(e,s))||n.enumerable});return o};var ye=(o,e,t)=>(t=o!=null?je(Ye(o)):{},me(e||!o||!o.__esModule?F(t,"default",{value:o,enumerable:!0}):t,o)),Xe=o=>me(F({},"__esModule",{value:!0}),o);var Oe=Ze((rn,Ee)=>{"use strict";var Ae=o=>o&&o.CLOSING===2,nt=()=>typeof WebSocket<"u"&&Ae(WebSocket),st=()=>({constructor:nt()?WebSocket:null,maxReconnectionDelay:1e4,minReconnectionDelay:1500,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,debug:!1}),rt=(o,e,t)=>{Object.defineProperty(e,t,{get:()=>o[t],set:n=>{o[t]=n},enumerable:!0,configurable:!0})},we=o=>o.minReconnectionDelay+Math.random()*o.minReconnectionDelay,at=(o,e)=>{let t=e*o.reconnectionDelayGrowFactor;return t>o.maxReconnectionDelay?o.maxReconnectionDelay:t},ot=["onopen","onclose","onmessage","onerror"],it=(o,e,t)=>{Object.keys(t).forEach(n=>{t[n].forEach(([s,i])=>{o.addEventListener(n,s,i)})}),e&&ot.forEach(n=>{o[n]=e[n]})},Ce=function(o,e,t={}){let n,s,i=0,c=0,u=!0,l={};if(!(this instanceof Ce))throw new TypeError("Failed to construct 'ReconnectingWebSocket': Please use the 'new' operator");let p=st();if(Object.keys(p).filter(a=>t.hasOwnProperty(a)).forEach(a=>p[a]=t[a]),!Ae(p.constructor))throw new TypeError("Invalid WebSocket constructor. Set `options.constructor`");let d=p.debug?(...a)=>console.log("RWS:",...a):()=>{},g=(a,y)=>setTimeout(()=>{let I=new Error(y);I.code=a,Array.isArray(l.error)&&l.error.forEach(([f])=>f(I)),n.onerror&&n.onerror(I)},0),r=()=>{if(d("close"),c++,d("retries count:",c),c>p.maxRetries){g("EHOSTDOWN","Too many failed connection attempts");return}i?i=at(p,i):i=we(p),d("reconnectDelay:",i),u&&setTimeout(m,i)},m=()=>{d("connect");let a=n;n=new p.constructor(o,e),s=setTimeout(()=>{d("timeout"),n.close(),g("ETIMEDOUT","Connection timeout")},p.connectionTimeout),d("bypass properties");for(let y in n)["addEventListener","removeEventListener","close","send"].indexOf(y)<0&&rt(n,this,y);n.addEventListener("open",()=>{clearTimeout(s),d("open"),i=we(p),d("reconnectDelay:",i),c=0}),n.addEventListener("close",r),it(n,a,l)};d("init"),m(),this.close=(a=1e3,y="",{keepClosed:I=!1,fastClose:f=!0,delay:k=0}={})=>{if(k&&(i=k),u=!I,n.close(a,y),f){let _={code:a,reason:y,wasClean:!0};r(),Array.isArray(l.close)&&l.close.forEach(([U,b])=>{U(_),n.removeEventListener("close",U,b)}),n.onclose&&(n.onclose(_),n.onclose=null)}},this.send=a=>{n.send(a)},this.addEventListener=(a,y,I)=>{Array.isArray(l[a])?l[a].some(([f])=>f===y)||l[a].push([y,I]):l[a]=[[y,I]],n.addEventListener(a,y,I)},this.removeEventListener=(a,y,I)=>{Array.isArray(l[a])&&(l[a]=l[a].filter(([f])=>f!==y)),n.removeEventListener(a,y,I)}};Ee.exports=Ce});var lt={};$e(lt,{EControlMode:()=>Z,EModelArchitecture:()=>fe,EModelConditioning:()=>Te,EModelFormat:()=>he,EModelType:()=>be,EOpenPosePreProcessor:()=>Ie,EPhotoMakerEnum:()=>Ue,EPreProcessor:()=>X,EPreProcessorGroup:()=>$,ETaskType:()=>G,Environment:()=>z,Runware:()=>se,RunwareClient:()=>O,RunwareServer:()=>N,SdkType:()=>W});module.exports=Xe(lt);var z=(n=>(n.PRODUCTION="PRODUCTION",n.DEVELOPMENT="DEVELOPMENT",n.TEST="TEST",n))(z||{}),W=(t=>(t.CLIENT="CLIENT",t.SERVER="SERVER",t))(W||{}),G=(a=>(a.IMAGE_INFERENCE="imageInference",a.IMAGE_UPLOAD="imageUpload",a.IMAGE_UPSCALE="imageUpscale",a.IMAGE_BACKGROUND_REMOVAL="imageBackgroundRemoval",a.VIDEO_INFERENCE="videoInference",a.GET_RESPONSE="getResponse",a.PHOTO_MAKER="photoMaker",a.IMAGE_CAPTION="imageCaption",a.IMAGE_CONTROL_NET_PRE_PROCESS="imageControlNetPreProcess",a.IMAGE_MASKING="imageMasking",a.PROMPT_ENHANCE="promptEnhance",a.AUTHENTICATION="authentication",a.MODEL_UPLOAD="modelUpload",a.MODEL_SEARCH="modelSearch",a))(G||{}),Z=(n=>(n.BALANCED="balanced",n.PROMPT="prompt",n.CONTROL_NET="controlnet",n))(Z||{}),$=(r=>(r.canny="canny",r.depth="depth",r.mlsd="mlsd",r.normalbae="normalbae",r.openpose="openpose",r.tile="tile",r.seg="seg",r.lineart="lineart",r.lineart_anime="lineart_anime",r.shuffle="shuffle",r.scribble="scribble",r.softedge="softedge",r))($||{}),X=(h=>(h.canny="canny",h.depth_leres="depth_leres",h.depth_midas="depth_midas",h.depth_zoe="depth_zoe",h.inpaint_global_harmonious="inpaint_global_harmonious",h.lineart_anime="lineart_anime",h.lineart_coarse="lineart_coarse",h.lineart_realistic="lineart_realistic",h.lineart_standard="lineart_standard",h.mlsd="mlsd",h.normal_bae="normal_bae",h.scribble_hed="scribble_hed",h.scribble_pidinet="scribble_pidinet",h.seg_ofade20k="seg_ofade20k",h.seg_ofcoco="seg_ofcoco",h.seg_ufade20k="seg_ufade20k",h.shuffle="shuffle",h.softedge_hed="softedge_hed",h.softedge_hedsafe="softedge_hedsafe",h.softedge_pidinet="softedge_pidinet",h.softedge_pidisafe="softedge_pidisafe",h.tile_gaussian="tile_gaussian",h.openpose="openpose",h.openpose_face="openpose_face",h.openpose_faceonly="openpose_faceonly",h.openpose_full="openpose_full",h.openpose_hand="openpose_hand",h))(X||{}),Ie=(i=>(i.openpose="openpose",i.openpose_face="openpose_face",i.openpose_faceonly="openpose_faceonly",i.openpose_full="openpose_full",i.openpose_hand="openpose_hand",i))(Ie||{}),he=(t=>(t.safetensors="safetensors",t.pickletensor="pickletensor",t))(he||{}),fe=(m=>(m.flux1d="flux1d",m.flux1s="flux1s",m.pony="pony",m.sdhyper="sdhyper",m.sd1x="sd1x",m.sd1xlcm="sd1xlcm",m.sd3="sd3",m.sdxl="sdxl",m.sdxllcm="sdxllcm",m.sdxldistilled="sdxldistilled",m.sdxlhyper="sdxlhyper",m.sdxllightning="sdxllightning",m.sdxlturbo="sdxlturbo",m))(fe||{}),be=(n=>(n.base="base",n.inpainting="inpainting",n.pix2pix="pix2pix",n))(be||{}),Te=(b=>(b.canny="canny",b.depth="depth",b.qrcode="qrcode",b.hed="hed",b.scrible="scrible",b.openpose="openpose",b.seg="segmentation",b.openmlsd="openmlsd",b.softedge="softedge",b.normal="normal bae",b.shuffle="shuffle",b.pix2pix="pix2pix",b.inpaint="inpaint",b.lineart="line art",b.sketch="sketch",b.inpaintdepth="inpaint depth",b.tile="tile",b.outfit="outfit",b.blur="blur",b.gray="gray",b.lowquality="low quality",b))(Te||{}),Ue=(g=>(g.NoStyle="No style",g.Cinematic="Cinematic",g.DisneyCharacter="Disney Character",g.DigitalArt="Digital Art",g.Photographic="Photographic",g.FantasyArt="Fantasy art",g.Neonpunk="Neonpunk",g.Enhance="Enhance",g.ComicBook="Comic book",g.Lowpoly="Lowpoly",g.LineArt="Line art",g))(Ue||{});var B=require("uuid"),ee=6e4,_e=1e3,et=100,te={PRODUCTION:"wss://ws-api.runware.ai/v1",TEST:"ws://localhost:8080"},Re=(o,e)=>{if(o==null)return;let t=o.indexOf(e);t!==-1&&o.splice(t,1)},S=(o,{debugKey:e="debugKey",timeoutDuration:t=ee,shouldThrowError:n=!0})=>(t=t<_e?_e:t,new Promise((s,i)=>{let c=setTimeout(()=>{u&&(clearInterval(u),n&&i(`Response could not be received from server for ${e}`)),clearTimeout(c)},t),u=setInterval(async()=>{o({resolve:s,reject:i,intervalId:u})&&(clearInterval(u),clearTimeout(c))},et)})),ke=o=>new Promise(e=>{let t=new FileReader;t.readAsDataURL(o),t.onload=function(){e(t.result)}}),R=()=>(0,B.v4)(),De=o=>(0,B.validate)(o);var xe=({key:o,data:e,useZero:t=!0,shouldReturnString:n=!1})=>o.split(/\.|\[/).map(c=>c.replace(/\]$/,"")).reduce((c,u)=>{let l=t?0:void 0,p=c?.[u];if(!p)return l;if(Array.isArray(p)&&/^\d+$/.test(u)){let d=parseInt(u,10);return d>=0&&d<p.length?c[u]=p[d]:c[u]??l}else return c[u]??l},e||{})??{},ve=(o,e=1e3)=>new Promise(t=>setTimeout(t,o*e));var Se=(o,e)=>o.filter(t=>t.key!==e.key);var T=({key:o,value:e})=>e||e===0||e===!1?{[o]:e}:{},tt=(o,e)=>Math.floor(Math.random()*(e-o+1))+o,ne=()=>tt(1,Number.MAX_SAFE_INTEGER);var x=async(o,e={})=>{let{delayInSeconds:t=1,callback:n}=e,s=e.maxRetries??1;for(;s;)try{return await o()}catch(i){if(n?.(),s--,s>0)await ve(t),await x(o,{...e,maxRetries:s});else throw i}};var A=class{constructor({apiKey:e,url:t=te.PRODUCTION,shouldReconnect:n=!0,globalMaxRetries:s=2,timeoutDuration:i=ee}){this._listeners=[];this._globalMessages={};this._globalImages=[];this.ensureConnectionUUID=null;this.isWebsocketReadyState=()=>this._ws?.readyState===1;this.isInvalidAPIKey=()=>this._connectionError?.error?.code==="invalidApiKey";this.send=e=>{this._ws.send(JSON.stringify([e]))};this.uploadImage=async e=>{try{return await x(async()=>{let t=R();if(typeof e=="string"&&De(e))return{imageURL:e,imageUUID:e,taskUUID:t,taskType:"imageUpload"};let n=typeof e=="string"?e:await ke(e);return{imageURL:n,imageUUID:n,taskUUID:t,taskType:"imageUpload"}})}catch(t){throw t}};this.controlNetPreProcess=async({inputImage:e,preProcessorType:t,height:n,width:s,outputType:i,outputFormat:c,highThresholdCanny:u,lowThresholdCanny:l,includeHandsAndFaceOpenPose:p,includeCost:d,outputQuality:g,customTaskUUID:r,retry:m,includeGenerationTime:a,includePayload:y})=>{let I=m||this._globalMaxRetries,f,k=Date.now();try{return await x(async()=>{await this.ensureConnection();let _=await this.uploadImage(e);if(!_?.imageUUID)return null;let U=r||R(),b={inputImage:_.imageUUID,taskType:"imageControlNetPreProcess",taskUUID:U,preProcessorType:t,...T({key:"height",value:n}),...T({key:"width",value:s}),...T({key:"outputType",value:i}),...T({key:"outputFormat",value:c}),...T({key:"includeCost",value:d}),...T({key:"highThresholdCanny",value:u}),...T({key:"lowThresholdCanny",value:l}),...T({key:"includeHandsAndFaceOpenPose",value:p}),...g?{outputQuality:g}:{}};this.send({...b}),f=this.globalListener({taskUUID:U});let M=await S(({resolve:q,reject:V})=>{let v=this.getSingleMessage({taskUUID:U});if(v){if(v?.error)return V(v),!0;if(v)return q(v),!0}},{debugKey:"unprocessed-image",timeoutDuration:this._timeoutDuration});return f.destroy(),this.insertAdditionalResponse({response:M,payload:y?b:void 0,startTime:a?k:void 0}),M},{maxRetries:I,callback:()=>{f?.destroy()}})}catch(_){throw _}};this.requestImageToText=async({inputImage:e,includeCost:t,customTaskUUID:n,retry:s,includePayload:i,includeGenerationTime:c})=>{let u=s||this._globalMaxRetries,l,p=Date.now();try{return await x(async()=>{await this.ensureConnection();let d=e?await this.uploadImage(e):null,g=n||R(),r={taskUUID:g,taskType:"imageCaption",inputImage:d?.imageUUID,...T({key:"includeCost",value:t})};this.send(r),l=this.globalListener({taskUUID:g});let m=await S(({resolve:a,reject:y})=>{let I=this.getSingleMessage({taskUUID:g});if(I){if(I?.error)return y(I),!0;if(I)return delete this._globalMessages[g],a(I),!0}},{debugKey:"remove-image-background",timeoutDuration:this._timeoutDuration});return l.destroy(),this.insertAdditionalResponse({response:m,payload:i?r:void 0,startTime:c?p:void 0}),m},{maxRetries:u,callback:()=>{l?.destroy()}})}catch(d){throw d}};this.removeImageBackground=async e=>this.baseSingleRequest({payload:{...e,taskType:"imageBackgroundRemoval"},debugKey:"remove-image-background"});this.videoInference=async e=>this.baseSingleRequest({payload:{...e,deliveryMethod:"async",taskType:"videoInference"},debugKey:"video-inference"});this.getResponse=async e=>{let t=e.taskUUID;return this.baseSingleRequest({payload:{...e,customTaskUUID:t,taskType:"getResponse"},debugKey:"async-results"})};this.upscaleGan=async({inputImage:e,upscaleFactor:t,outputType:n,outputFormat:s,includeCost:i,outputQuality:c,customTaskUUID:u,retry:l,includeGenerationTime:p,includePayload:d})=>{let g=l||this._globalMaxRetries,r,m=Date.now();try{return await x(async()=>{await this.ensureConnection();let a;a=await this.uploadImage(e);let y=u||R(),I={taskUUID:y,inputImage:a?.imageUUID,taskType:"imageUpscale",upscaleFactor:t,...T({key:"includeCost",value:i}),...n?{outputType:n}:{},...c?{outputQuality:c}:{},...s?{outputFormat:s}:{}};this.send(I),r=this.globalListener({taskUUID:y});let f=await S(({resolve:k,reject:_})=>{let U=this.getSingleMessage({taskUUID:y});if(U){if(U?.error)return _(U),!0;if(U)return delete this._globalMessages[y],k(U),!0}},{debugKey:"upscale-gan",timeoutDuration:this._timeoutDuration});return r.destroy(),this.insertAdditionalResponse({response:f,payload:d?I:void 0,startTime:p?m:void 0}),f},{maxRetries:g,callback:()=>{r?.destroy()}})}catch(a){throw a}};this.enhancePrompt=async({prompt:e,promptMaxLength:t=380,promptVersions:n=1,includeCost:s,customTaskUUID:i,retry:c,includeGenerationTime:u,includePayload:l})=>{let p=c||this._globalMaxRetries,d,g=Date.now();try{return await x(async()=>{await this.ensureConnection();let r=i||R(),m={prompt:e,taskUUID:r,promptMaxLength:t,promptVersions:n,...T({key:"includeCost",value:s}),taskType:"promptEnhance"};this.send(m),d=this.globalListener({taskUUID:r});let a=await S(({resolve:y,reject:I})=>{let f=this._globalMessages[r];if(f?.error)return I(f),!0;if(f?.length>=n)return delete this._globalMessages[r],y(f),!0},{debugKey:"enhance-prompt",timeoutDuration:this._timeoutDuration});return d.destroy(),this.insertAdditionalResponse({response:a,payload:l?m:void 0,startTime:u?g:void 0}),a},{maxRetries:p,callback:()=>{d?.destroy()}})}catch(r){throw r}};this.modelUpload=async e=>{let{onUploadStream:t,retry:n,customTaskUUID:s,...i}=e,c=n||this._globalMaxRetries,u;try{return await x(async()=>{await this.ensureConnection();let l=s||R();this.send({...i,taskUUID:l,taskType:"modelUpload"});let p,d;return u=this.listenToUpload({taskUUID:l,onUploadStream:(r,m)=>{t?.(r,m),r?.status==="ready"?p=r:m&&(d=m)}}),await S(({resolve:r,reject:m})=>{if(p)return r(p),!0;if(d)return m(d),!1},{shouldThrowError:!1,timeoutDuration:60*60*1e3})},{maxRetries:c,callback:()=>{u?.destroy()}})}catch(l){throw l}};this.photoMaker=async(e,t)=>{let{onPartialImages:n,retry:s,customTaskUUID:i,numberResults:c,includeGenerationTime:u,includePayload:l,...p}=e,d=s||this._globalMaxRetries,g,r=[],m=0,a=Date.now();try{return await x(async()=>{await this.ensureConnection(),m++;let y=this._globalImages.filter(U=>r.includes(U.taskUUID)),I=i||R();r.push(I);let f=c-y.length,k={...p,...p.seed?{seed:p.seed}:{seed:ne()},...t??{},taskUUID:I,taskType:"photoMaker",numberResults:c};this.send({...k,numberResults:f}),g=this.listenToImages({onPartialImages:n,taskUUID:I,groupKey:"REQUEST_IMAGES",requestPayload:l?k:void 0,startTime:u?a:void 0});let _=await this.getSimilarImages({taskUUID:r,numberResults:c,lis:g});return g.destroy(),_},{maxRetries:d,callback:()=>{g?.destroy()}})}catch(y){if(y.taskUUID)throw y;if(m>=d)return this.handleIncompleteImages({taskUUIDs:r,error:y})}};this.modelSearch=async e=>this.baseSingleRequest({payload:{...e,taskType:"modelSearch"},debugKey:"model-search"});this.imageMasking=async e=>this.baseSingleRequest({payload:{...e,taskType:"imageMasking"},debugKey:"image-masking"});this.imageUpload=async e=>this.baseSingleRequest({payload:{...e,taskType:"imageUpload"},debugKey:"image-upload"});this.baseSingleRequest=async({payload:e,debugKey:t,mockResponse:n})=>{let{retry:s,customTaskUUID:i,includePayload:c,includeGenerationTime:u,...l}=e,p=s||this._globalMaxRetries,d,g=Date.now();try{return await x(async()=>{await this.ensureConnection();let r=i||R(),m={...l,taskUUID:r};n?setTimeout(()=>{this._globalMessages[r]=n},1e3):this.send(m),d=this.globalListener({taskUUID:r});let a=await S(({resolve:y,reject:I})=>{let f=this.getSingleMessage({taskUUID:r});if(f){if(f?.error)return I(f),!0;if(f)return delete this._globalMessages[r],y(f),!0}},{debugKey:t,timeoutDuration:this._timeoutDuration});return this.insertAdditionalResponse({response:a,payload:c?m:void 0,startTime:u?g:void 0}),d.destroy(),a},{maxRetries:p,callback:()=>{d?.destroy()}})}catch(r){throw r}};this.getSingleMessage=({taskUUID:e})=>{let t=this._globalMessages[e]?.[0],n=this._globalMessages[e];return!t&&!n?null:n?.error?n:t};this.insertAdditionalResponse=({response:e,payload:t,startTime:n})=>{if(!t&&!n)return;let s=e;s.additionalResponse={},t&&(e.additionalResponse.payload=t),n&&(e.additionalResponse.generationTime=Date.now()-n)};this.disconnect=async()=>{this._shouldReconnect=!1,this._ws?.terminate?.(),this._ws?.close?.()};this.connected=()=>this.isWebsocketReadyState()&&!!this._connectionSessionUUID;this._apiKey=e,this._url=t,this._sdkType="CLIENT",this._shouldReconnect=n,this._globalMaxRetries=s,this._timeoutDuration=i}static async initialize(e){try{let t=new this(e);return await t.ensureConnection(),t}catch(t){throw t}}addListener({lis:e,groupKey:t,taskUUID:n}){let s=u=>{let l=Array.isArray(u?.data)?u.data:[u.data],p=u?.[0]?.errors?u?.[0]?.errors:Array.isArray(u?.errors)?u.errors:[u.errors],d=l.filter(r=>(r?.taskUUID||r?.taskType)===n);if(p.filter(r=>(r?.taskUUID||r?.taskType)===n).length){e({error:{...p[0]??{}}});return}if(d.length){e({[n]:l});return}},i={key:n||R(),listener:s,groupKey:t};return this._listeners.push(i),{destroy:()=>{this._listeners=Se(this._listeners,i)}}}connect(){this._ws.onopen=e=>{this._connectionSessionUUID?this.send({taskType:"authentication",apiKey:this._apiKey,connectionSessionUUID:this._connectionSessionUUID}):this.send({apiKey:this._apiKey,taskType:"authentication"}),this.addListener({taskUUID:"authentication",lis:t=>{if(t?.error){this._connectionError=t;return}this._connectionSessionUUID=t?.authentication?.[0]?.connectionSessionUUID,this._connectionError=void 0}})},this._ws.onmessage=e=>{let t=JSON.parse(e.data);for(let n of this._listeners)if(n?.listener?.(t))return},this._ws.onclose=e=>{this.isInvalidAPIKey()}}destroy(e){Re(this._listeners,e)}listenToImages({onPartialImages:e,taskUUID:t,groupKey:n,requestPayload:s,startTime:i}){return this.addListener({taskUUID:t,lis:c=>{let u=c?.[t]?.filter(l=>l.taskUUID===t);c.error?(e?.(u,c?.error&&c),this._globalError=c):(u=u.map(l=>(this.insertAdditionalResponse({response:l,payload:s||void 0,startTime:i||void 0}),{...l})),e?.(u,c?.error&&c),this._sdkType==="CLIENT"?this._globalImages=[...this._globalImages,...(c?.[t]??[]).map(l=>(this.insertAdditionalResponse({response:l,payload:s||void 0,startTime:i||void 0}),{...l}))]:this._globalImages=[...this._globalImages,...u])},groupKey:n})}listenToUpload({onUploadStream:e,taskUUID:t}){return this.addListener({taskUUID:t,lis:n=>{let s=n?.error,i=n?.[t]?.[0],c=i?.taskUUID===t?i:null;(c||s)&&e?.(c||void 0,s)}})}globalListener({taskUUID:e}){return this.addListener({taskUUID:e,lis:t=>{if(t.error){this._globalMessages[e]=t;return}let n=xe({key:e,data:t,useZero:!1});Array.isArray(n)?n.forEach(s=>{this._globalMessages[s.taskUUID]=[...this._globalMessages[s.taskUUID]??[],s]}):this._globalMessages[n.taskUUID]=n}})}async requestImages({outputType:e,outputFormat:t,uploadEndpoint:n,checkNSFW:s,positivePrompt:i,negativePrompt:c,seedImage:u,maskImage:l,strength:p,height:d,width:g,model:r,steps:m,scheduler:a,seed:y,CFGScale:I,clipSkip:f,usePromptWeighting:k,promptWeighting:_,numberResults:U=1,onPartialImages:b,includeCost:M,customTaskUUID:q,retry:V,refiner:v,maskMargin:Le,outputQuality:h,controlNet:H,lora:re,embeddings:ae,ipAdapters:oe,outpaint:ie,acceleratorOptions:le,advancedFeatures:ce,referenceImages:ue,includeGenerationTime:Ke,includePayload:Pe},Fe){let C,de,L=[],pe=0,ge=V||this._globalMaxRetries;try{await this.ensureConnection();let w=null,j=null,Q=[];if(u){let D=await this.uploadImage(u);if(!D)return[];w=D.imageUUID}if(l){let D=await this.uploadImage(l);if(!D)return[];j=D.imageUUID}if(H?.length)for(let D=0;D<H.length;D++){let E=H[D],{endStep:J,startStep:K,weight:Y,guideImage:P,controlMode:Ge,startStepPercentage:Be,endStepPercentage:qe,model:Ve}=E,He=P?await this.uploadImage(P):null;Q.push({guideImage:He?.imageUUID,model:Ve,endStep:J,startStep:K,weight:Y,...T({key:"startStepPercentage",value:Be}),...T({key:"endStepPercentage",value:qe}),controlMode:Ge||"controlnet"})}de={taskType:"imageInference",model:r,positivePrompt:i,...c?{negativePrompt:c}:{},...d?{height:d}:{},...g?{width:g}:{},numberResults:U,...e?{outputType:e}:{},...t?{outputFormat:t}:{},...n?{uploadEndpoint:n}:{},...T({key:"checkNSFW",value:s}),...T({key:"strength",value:p}),...T({key:"CFGScale",value:I}),...T({key:"clipSkip",value:f}),...T({key:"maskMargin",value:Le}),...T({key:"usePromptWeighting",value:k}),...T({key:"steps",value:m}),..._?{promptWeighting:_}:{},...y?{seed:y}:{seed:ne()},...a?{scheduler:a}:{},...v?{refiner:v}:{},...ie?{outpaint:ie}:{},...T({key:"includeCost",value:M}),...w?{seedImage:w}:{},...j?{maskImage:j}:{},...h?{outputQuality:h}:{},...Q.length?{controlNet:Q}:{},...re?.length?{lora:re}:{},...ae?.length?{embeddings:ae}:{},...oe?.length?{ipAdapters:oe}:{},...le?{acceleratorOptions:le}:{},...ce?{advancedFeatures:ce}:{},...ue?.length?{referenceImages:ue}:{},...Fe??{}};let We=Date.now();return await x(async()=>{pe++,C?.destroy();let D=this._globalImages.filter(P=>L.includes(P.taskUUID)),E=q||R();L.push(E);let J=U-D.length,K={...de,taskUUID:E,numberResults:J};this.send(K),C=this.listenToImages({onPartialImages:b,taskUUID:E,groupKey:"REQUEST_IMAGES",requestPayload:Pe?K:void 0,startTime:Ke?We:void 0});let Y=await this.getSimilarImages({taskUUID:L,numberResults:U,lis:C});return C.destroy(),Y},{maxRetries:ge,callback:()=>{C?.destroy()}})}catch(w){if(pe>=ge)return this.handleIncompleteImages({taskUUIDs:L,error:w});throw w}}async ensureConnection(){if(this.connected()||this._url===te.TEST)return;let t=2e3,n=200;try{if(this.isInvalidAPIKey())throw this._connectionError;return new Promise((s,i)=>{let c=0,u=30,l=R(),p,d,g=()=>{this.ensureConnectionUUID=null,clearInterval(p),clearInterval(d)};this._sdkType==="SERVER"&&(p=setInterval(async()=>{try{let r=this.connected(),m=!1;(!this.ensureConnectionUUID||l===this.ensureConnectionUUID)&&(this.ensureConnectionUUID||(this.ensureConnectionUUID=l),m=!0);let a=c%10===0&&m;r?(g(),s(!0)):c>=u?(g(),i(new Error("Retry timed out"))):(a&&this.connect(),c++)}catch(r){g(),i(r)}},t)),d=setInterval(async()=>{if(this.connected()){g(),s(!0);return}if(this.isInvalidAPIKey()){g(),i(this._connectionError);return}},n)})}catch{throw this.ensureConnectionUUID=null,this._connectionError=void 0,this._connectionError??"Could not connect to server. Ensure your API key is correct"}}async getSimilarImages({taskUUID:e,numberResults:t,shouldThrowError:n,lis:s}){return await S(({resolve:i,reject:c,intervalId:u})=>{let l=Array.isArray(e)?e:[e],p=this._globalImages.filter(d=>l.includes(d.taskUUID));if(this._globalError){let d=this._globalError;return this._globalError=void 0,clearInterval(u),c?.(d),!0}else if(p.length>=t)return clearInterval(u),this._globalImages=this._globalImages.filter(d=>!l.includes(d.taskUUID)),i([...p].slice(0,t)),!0},{debugKey:"getting images",shouldThrowError:n,timeoutDuration:this._timeoutDuration})}handleIncompleteImages({taskUUIDs:e,error:t}){let n=this._globalImages.filter(s=>e.includes(s.taskUUID));if(n.length>1)return this._globalImages=this._globalImages.filter(s=>!e.includes(s.taskUUID)),n;throw t}};var Ne=ye(Oe(),1),O=class extends A{constructor(e){let{shouldReconnect:t,...n}=e;super(n),this._ws=new Ne.default(this._url),this.connect()}};var Me=ye(require("ws"),1);var N=class extends A{constructor(t){super(t);this._instantiated=!1;this._listeners=[];this._reconnectingIntervalId=null;this.send=t=>{this._ws.send(JSON.stringify([t]))};this.resetConnection=()=>{this._ws&&(this._listeners.forEach(t=>{t?.destroy?.()}),this._ws.removeAllListeners(),this._ws.readyState===1&&(this._ws.terminate(),this._ws.close()),this._ws=null,this._listeners=[])};this._sdkType="SERVER",this.connect()}async connect(){this._url&&(this.resetConnection(),this._ws=new Me.default(this._url,{perMessageDeflate:!1}),this._ws.on("error",()=>{}),this._ws.on("close",()=>{this.handleClose()}),this._ws.on("open",()=>{this._reconnectingIntervalId&&clearInterval(this._reconnectingIntervalId),this._connectionSessionUUID&&this.isWebsocketReadyState()?this.send({taskType:"authentication",apiKey:this._apiKey,connectionSessionUUID:this._connectionSessionUUID}):this.isWebsocketReadyState()&&this.send({apiKey:this._apiKey,taskType:"authentication"}),this.addListener({taskUUID:"authentication",lis:t=>{if(t?.error){this._connectionError=t;return}this._connectionSessionUUID=t?.authentication?.[0]?.connectionSessionUUID,this._connectionError=void 0}})}),this._ws.on("message",(t,n)=>{let s=n?t:t?.toString();if(!s)return;let i=JSON.parse(s);this._listeners.forEach(c=>{c.listener(i)})}))}handleClose(){this.isInvalidAPIKey()||(this._reconnectingIntervalId&&clearInterval(this._reconnectingIntervalId),this._shouldReconnect&&setTimeout(()=>this.connect(),1e3))}heartBeat(){clearTimeout(this._pingTimeout),this._pingTimeout=setTimeout(()=>{this.isWebsocketReadyState()&&this.send({ping:!0})},5e3)}};var se;typeof window>"u"?se=N:se=O;0&&(module.exports={EControlMode,EModelArchitecture,EModelConditioning,EModelFormat,EModelType,EOpenPosePreProcessor,EPhotoMakerEnum,EPreProcessor,EPreProcessorGroup,ETaskType,Environment,Runware,RunwareClient,RunwareServer,SdkType});
1
+ "use strict";var je=Object.create;var F=Object.defineProperty;var Qe=Object.getOwnPropertyDescriptor;var Je=Object.getOwnPropertyNames;var Ye=Object.getPrototypeOf,ze=Object.prototype.hasOwnProperty;var Ze=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),$e=(i,e)=>{for(var t in e)F(i,t,{get:e[t],enumerable:!0})},me=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Je(e))!ze.call(i,s)&&s!==t&&F(i,s,{get:()=>e[s],enumerable:!(n=Qe(e,s))||n.enumerable});return i};var ye=(i,e,t)=>(t=i!=null?je(Ye(i)):{},me(e||!i||!i.__esModule?F(t,"default",{value:i,enumerable:!0}):t,i)),Xe=i=>me(F({},"__esModule",{value:!0}),i);var Oe=Ze((rn,Ee)=>{"use strict";var Ae=i=>i&&i.CLOSING===2,nt=()=>typeof WebSocket<"u"&&Ae(WebSocket),st=()=>({constructor:nt()?WebSocket:null,maxReconnectionDelay:1e4,minReconnectionDelay:1500,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,debug:!1}),rt=(i,e,t)=>{Object.defineProperty(e,t,{get:()=>i[t],set:n=>{i[t]=n},enumerable:!0,configurable:!0})},we=i=>i.minReconnectionDelay+Math.random()*i.minReconnectionDelay,at=(i,e)=>{let t=e*i.reconnectionDelayGrowFactor;return t>i.maxReconnectionDelay?i.maxReconnectionDelay:t},ot=["onopen","onclose","onmessage","onerror"],it=(i,e,t)=>{Object.keys(t).forEach(n=>{t[n].forEach(([s,r])=>{i.addEventListener(n,s,r)})}),e&&ot.forEach(n=>{i[n]=e[n]})},Ce=function(i,e,t={}){let n,s,r=0,c=0,u=!0,l={};if(!(this instanceof Ce))throw new TypeError("Failed to construct 'ReconnectingWebSocket': Please use the 'new' operator");let p=st();if(Object.keys(p).filter(o=>t.hasOwnProperty(o)).forEach(o=>p[o]=t[o]),!Ae(p.constructor))throw new TypeError("Invalid WebSocket constructor. Set `options.constructor`");let d=p.debug?(...o)=>console.log("RWS:",...o):()=>{},g=(o,y)=>setTimeout(()=>{let I=new Error(y);I.code=o,Array.isArray(l.error)&&l.error.forEach(([f])=>f(I)),n.onerror&&n.onerror(I)},0),a=()=>{if(d("close"),c++,d("retries count:",c),c>p.maxRetries){g("EHOSTDOWN","Too many failed connection attempts");return}r?r=at(p,r):r=we(p),d("reconnectDelay:",r),u&&setTimeout(m,r)},m=()=>{d("connect");let o=n;n=new p.constructor(i,e),s=setTimeout(()=>{d("timeout"),n.close(),g("ETIMEDOUT","Connection timeout")},p.connectionTimeout),d("bypass properties");for(let y in n)["addEventListener","removeEventListener","close","send"].indexOf(y)<0&&rt(n,this,y);n.addEventListener("open",()=>{clearTimeout(s),d("open"),r=we(p),d("reconnectDelay:",r),c=0}),n.addEventListener("close",a),it(n,o,l)};d("init"),m(),this.close=(o=1e3,y="",{keepClosed:I=!1,fastClose:f=!0,delay:k=0}={})=>{if(k&&(r=k),u=!I,n.close(o,y),f){let _={code:o,reason:y,wasClean:!0};a(),Array.isArray(l.close)&&l.close.forEach(([U,b])=>{U(_),n.removeEventListener("close",U,b)}),n.onclose&&(n.onclose(_),n.onclose=null)}},this.send=o=>{n.send(o)},this.addEventListener=(o,y,I)=>{Array.isArray(l[o])?l[o].some(([f])=>f===y)||l[o].push([y,I]):l[o]=[[y,I]],n.addEventListener(o,y,I)},this.removeEventListener=(o,y,I)=>{Array.isArray(l[o])&&(l[o]=l[o].filter(([f])=>f!==y)),n.removeEventListener(o,y,I)}};Ee.exports=Ce});var lt={};$e(lt,{EControlMode:()=>Z,EModelArchitecture:()=>fe,EModelConditioning:()=>Te,EModelFormat:()=>he,EModelType:()=>be,EOpenPosePreProcessor:()=>Ie,EPhotoMakerEnum:()=>Ue,EPreProcessor:()=>X,EPreProcessorGroup:()=>$,ETaskType:()=>G,Environment:()=>z,Runware:()=>se,RunwareClient:()=>O,RunwareServer:()=>N,SdkType:()=>W});module.exports=Xe(lt);var z=(n=>(n.PRODUCTION="PRODUCTION",n.DEVELOPMENT="DEVELOPMENT",n.TEST="TEST",n))(z||{}),W=(t=>(t.CLIENT="CLIENT",t.SERVER="SERVER",t))(W||{}),G=(o=>(o.IMAGE_INFERENCE="imageInference",o.IMAGE_UPLOAD="imageUpload",o.IMAGE_UPSCALE="imageUpscale",o.IMAGE_BACKGROUND_REMOVAL="imageBackgroundRemoval",o.VIDEO_INFERENCE="videoInference",o.GET_RESPONSE="getResponse",o.PHOTO_MAKER="photoMaker",o.IMAGE_CAPTION="imageCaption",o.IMAGE_CONTROL_NET_PRE_PROCESS="imageControlNetPreProcess",o.IMAGE_MASKING="imageMasking",o.PROMPT_ENHANCE="promptEnhance",o.AUTHENTICATION="authentication",o.MODEL_UPLOAD="modelUpload",o.MODEL_SEARCH="modelSearch",o))(G||{}),Z=(n=>(n.BALANCED="balanced",n.PROMPT="prompt",n.CONTROL_NET="controlnet",n))(Z||{}),$=(a=>(a.canny="canny",a.depth="depth",a.mlsd="mlsd",a.normalbae="normalbae",a.openpose="openpose",a.tile="tile",a.seg="seg",a.lineart="lineart",a.lineart_anime="lineart_anime",a.shuffle="shuffle",a.scribble="scribble",a.softedge="softedge",a))($||{}),X=(h=>(h.canny="canny",h.depth_leres="depth_leres",h.depth_midas="depth_midas",h.depth_zoe="depth_zoe",h.inpaint_global_harmonious="inpaint_global_harmonious",h.lineart_anime="lineart_anime",h.lineart_coarse="lineart_coarse",h.lineart_realistic="lineart_realistic",h.lineart_standard="lineart_standard",h.mlsd="mlsd",h.normal_bae="normal_bae",h.scribble_hed="scribble_hed",h.scribble_pidinet="scribble_pidinet",h.seg_ofade20k="seg_ofade20k",h.seg_ofcoco="seg_ofcoco",h.seg_ufade20k="seg_ufade20k",h.shuffle="shuffle",h.softedge_hed="softedge_hed",h.softedge_hedsafe="softedge_hedsafe",h.softedge_pidinet="softedge_pidinet",h.softedge_pidisafe="softedge_pidisafe",h.tile_gaussian="tile_gaussian",h.openpose="openpose",h.openpose_face="openpose_face",h.openpose_faceonly="openpose_faceonly",h.openpose_full="openpose_full",h.openpose_hand="openpose_hand",h))(X||{}),Ie=(r=>(r.openpose="openpose",r.openpose_face="openpose_face",r.openpose_faceonly="openpose_faceonly",r.openpose_full="openpose_full",r.openpose_hand="openpose_hand",r))(Ie||{}),he=(t=>(t.safetensors="safetensors",t.pickletensor="pickletensor",t))(he||{}),fe=(m=>(m.flux1d="flux1d",m.flux1s="flux1s",m.pony="pony",m.sdhyper="sdhyper",m.sd1x="sd1x",m.sd1xlcm="sd1xlcm",m.sd3="sd3",m.sdxl="sdxl",m.sdxllcm="sdxllcm",m.sdxldistilled="sdxldistilled",m.sdxlhyper="sdxlhyper",m.sdxllightning="sdxllightning",m.sdxlturbo="sdxlturbo",m))(fe||{}),be=(n=>(n.base="base",n.inpainting="inpainting",n.pix2pix="pix2pix",n))(be||{}),Te=(b=>(b.canny="canny",b.depth="depth",b.qrcode="qrcode",b.hed="hed",b.scrible="scrible",b.openpose="openpose",b.seg="segmentation",b.openmlsd="openmlsd",b.softedge="softedge",b.normal="normal bae",b.shuffle="shuffle",b.pix2pix="pix2pix",b.inpaint="inpaint",b.lineart="line art",b.sketch="sketch",b.inpaintdepth="inpaint depth",b.tile="tile",b.outfit="outfit",b.blur="blur",b.gray="gray",b.lowquality="low quality",b))(Te||{}),Ue=(g=>(g.NoStyle="No style",g.Cinematic="Cinematic",g.DisneyCharacter="Disney Character",g.DigitalArt="Digital Art",g.Photographic="Photographic",g.FantasyArt="Fantasy art",g.Neonpunk="Neonpunk",g.Enhance="Enhance",g.ComicBook="Comic book",g.Lowpoly="Lowpoly",g.LineArt="Line art",g))(Ue||{});var B=require("uuid"),ee=6e4,_e=1e3,et=100,te={PRODUCTION:"wss://ws-api.runware.ai/v1",TEST:"ws://localhost:8080"},Re=(i,e)=>{if(i==null)return;let t=i.indexOf(e);t!==-1&&i.splice(t,1)},S=(i,{debugKey:e="debugKey",timeoutDuration:t=ee,shouldThrowError:n=!0})=>(t=t<_e?_e:t,new Promise((s,r)=>{let c=setTimeout(()=>{u&&(clearInterval(u),n&&r(`Response could not be received from server for ${e}`)),clearTimeout(c)},t),u=setInterval(async()=>{i({resolve:s,reject:r,intervalId:u})&&(clearInterval(u),clearTimeout(c))},et)})),ke=i=>new Promise(e=>{let t=new FileReader;t.readAsDataURL(i),t.onload=function(){e(t.result)}}),R=()=>(0,B.v4)(),De=i=>(0,B.validate)(i);var xe=({key:i,data:e,useZero:t=!0,shouldReturnString:n=!1})=>i.split(/\.|\[/).map(c=>c.replace(/\]$/,"")).reduce((c,u)=>{let l=t?0:void 0,p=c?.[u];if(!p)return l;if(Array.isArray(p)&&/^\d+$/.test(u)){let d=parseInt(u,10);return d>=0&&d<p.length?c[u]=p[d]:c[u]??l}else return c[u]??l},e||{})??{},ve=(i,e=1e3)=>new Promise(t=>setTimeout(t,i*e));var Se=(i,e)=>i.filter(t=>t.key!==e.key);var T=({key:i,value:e})=>e||e===0||e===!1?{[i]:e}:{},tt=(i,e)=>Math.floor(Math.random()*(e-i+1))+i,ne=()=>tt(1,Number.MAX_SAFE_INTEGER);var x=async(i,e={})=>{let{delayInSeconds:t=1,callback:n}=e,s=e.maxRetries??1;for(;s;)try{return await i()}catch(r){if(console.log("error",r),n?.(),r?.error)throw r;if(s--,s>0)await ve(t),await x(i,{...e,maxRetries:s});else throw r}};var A=class{constructor({apiKey:e,url:t=te.PRODUCTION,shouldReconnect:n=!0,globalMaxRetries:s=2,timeoutDuration:r=ee}){this._listeners=[];this._globalMessages={};this._globalImages=[];this.ensureConnectionUUID=null;this.isWebsocketReadyState=()=>this._ws?.readyState===1;this.isInvalidAPIKey=()=>this._connectionError?.error?.code==="invalidApiKey";this.send=e=>{this._ws.send(JSON.stringify([e]))};this.uploadImage=async e=>{try{return await x(async()=>{let t=R();if(typeof e=="string"&&De(e))return{imageURL:e,imageUUID:e,taskUUID:t,taskType:"imageUpload"};let n=typeof e=="string"?e:await ke(e);return{imageURL:n,imageUUID:n,taskUUID:t,taskType:"imageUpload"}})}catch(t){throw t}};this.controlNetPreProcess=async({inputImage:e,preProcessorType:t,height:n,width:s,outputType:r,outputFormat:c,highThresholdCanny:u,lowThresholdCanny:l,includeHandsAndFaceOpenPose:p,includeCost:d,outputQuality:g,customTaskUUID:a,retry:m,includeGenerationTime:o,includePayload:y})=>{let I=m||this._globalMaxRetries,f,k=Date.now();try{return await x(async()=>{await this.ensureConnection();let _=await this.uploadImage(e);if(!_?.imageUUID)return null;let U=a||R(),b={inputImage:_.imageUUID,taskType:"imageControlNetPreProcess",taskUUID:U,preProcessorType:t,...T({key:"height",value:n}),...T({key:"width",value:s}),...T({key:"outputType",value:r}),...T({key:"outputFormat",value:c}),...T({key:"includeCost",value:d}),...T({key:"highThresholdCanny",value:u}),...T({key:"lowThresholdCanny",value:l}),...T({key:"includeHandsAndFaceOpenPose",value:p}),...g?{outputQuality:g}:{}};this.send({...b}),f=this.globalListener({taskUUID:U});let M=await S(({resolve:q,reject:V})=>{let v=this.getSingleMessage({taskUUID:U});if(v){if(v?.error)return V(v),!0;if(v)return q(v),!0}},{debugKey:"unprocessed-image",timeoutDuration:this._timeoutDuration});return f.destroy(),this.insertAdditionalResponse({response:M,payload:y?b:void 0,startTime:o?k:void 0}),M},{maxRetries:I,callback:()=>{f?.destroy()}})}catch(_){throw _}};this.requestImageToText=async({inputImage:e,includeCost:t,customTaskUUID:n,retry:s,includePayload:r,includeGenerationTime:c})=>{let u=s||this._globalMaxRetries,l,p=Date.now();try{return await x(async()=>{await this.ensureConnection();let d=e?await this.uploadImage(e):null,g=n||R(),a={taskUUID:g,taskType:"imageCaption",inputImage:d?.imageUUID,...T({key:"includeCost",value:t})};this.send(a),l=this.globalListener({taskUUID:g});let m=await S(({resolve:o,reject:y})=>{let I=this.getSingleMessage({taskUUID:g});if(I){if(I?.error)return y(I),!0;if(I)return delete this._globalMessages[g],o(I),!0}},{debugKey:"remove-image-background",timeoutDuration:this._timeoutDuration});return l.destroy(),this.insertAdditionalResponse({response:m,payload:r?a:void 0,startTime:c?p:void 0}),m},{maxRetries:u,callback:()=>{l?.destroy()}})}catch(d){throw d}};this.removeImageBackground=async e=>this.baseSingleRequest({payload:{...e,taskType:"imageBackgroundRemoval"},debugKey:"remove-image-background"});this.videoInference=async e=>this.baseSingleRequest({payload:{...e,deliveryMethod:"async",taskType:"videoInference"},debugKey:"video-inference"});this.getResponse=async e=>{let t=e.taskUUID;return this.baseSingleRequest({payload:{...e,customTaskUUID:t,taskType:"getResponse"},debugKey:"async-results"})};this.upscaleGan=async({inputImage:e,upscaleFactor:t,outputType:n,outputFormat:s,includeCost:r,outputQuality:c,customTaskUUID:u,retry:l,includeGenerationTime:p,includePayload:d})=>{let g=l||this._globalMaxRetries,a,m=Date.now();try{return await x(async()=>{await this.ensureConnection();let o;o=await this.uploadImage(e);let y=u||R(),I={taskUUID:y,inputImage:o?.imageUUID,taskType:"imageUpscale",upscaleFactor:t,...T({key:"includeCost",value:r}),...n?{outputType:n}:{},...c?{outputQuality:c}:{},...s?{outputFormat:s}:{}};this.send(I),a=this.globalListener({taskUUID:y});let f=await S(({resolve:k,reject:_})=>{let U=this.getSingleMessage({taskUUID:y});if(U){if(U?.error)return _(U),!0;if(U)return delete this._globalMessages[y],k(U),!0}},{debugKey:"upscale-gan",timeoutDuration:this._timeoutDuration});return a.destroy(),this.insertAdditionalResponse({response:f,payload:d?I:void 0,startTime:p?m:void 0}),f},{maxRetries:g,callback:()=>{a?.destroy()}})}catch(o){throw o}};this.enhancePrompt=async({prompt:e,promptMaxLength:t=380,promptVersions:n=1,includeCost:s,customTaskUUID:r,retry:c,includeGenerationTime:u,includePayload:l})=>{let p=c||this._globalMaxRetries,d,g=Date.now();try{return await x(async()=>{await this.ensureConnection();let a=r||R(),m={prompt:e,taskUUID:a,promptMaxLength:t,promptVersions:n,...T({key:"includeCost",value:s}),taskType:"promptEnhance"};this.send(m),d=this.globalListener({taskUUID:a});let o=await S(({resolve:y,reject:I})=>{let f=this._globalMessages[a];if(f?.error)return I(f),!0;if(f?.length>=n)return delete this._globalMessages[a],y(f),!0},{debugKey:"enhance-prompt",timeoutDuration:this._timeoutDuration});return d.destroy(),this.insertAdditionalResponse({response:o,payload:l?m:void 0,startTime:u?g:void 0}),o},{maxRetries:p,callback:()=>{d?.destroy()}})}catch(a){throw a}};this.modelUpload=async e=>{let{onUploadStream:t,retry:n,customTaskUUID:s,...r}=e,c=n||this._globalMaxRetries,u;try{return await x(async()=>{await this.ensureConnection();let l=s||R();this.send({...r,taskUUID:l,taskType:"modelUpload"});let p,d;return u=this.listenToUpload({taskUUID:l,onUploadStream:(a,m)=>{t?.(a,m),a?.status==="ready"?p=a:m&&(d=m)}}),await S(({resolve:a,reject:m})=>{if(p)return a(p),!0;if(d)return m(d),!1},{shouldThrowError:!1,timeoutDuration:60*60*1e3})},{maxRetries:c,callback:()=>{u?.destroy()}})}catch(l){throw l}};this.photoMaker=async(e,t)=>{let{onPartialImages:n,retry:s,customTaskUUID:r,numberResults:c,includeGenerationTime:u,includePayload:l,...p}=e,d=s||this._globalMaxRetries,g,a=[],m=0,o=Date.now();try{return await x(async()=>{await this.ensureConnection(),m++;let y=this._globalImages.filter(U=>a.includes(U.taskUUID)),I=r||R();a.push(I);let f=c-y.length,k={...p,...p.seed?{seed:p.seed}:{seed:ne()},...t??{},taskUUID:I,taskType:"photoMaker",numberResults:c};this.send({...k,numberResults:f}),g=this.listenToImages({onPartialImages:n,taskUUID:I,groupKey:"REQUEST_IMAGES",requestPayload:l?k:void 0,startTime:u?o:void 0});let _=await this.getSimilarImages({taskUUID:a,numberResults:c,lis:g});return g.destroy(),_},{maxRetries:d,callback:()=>{g?.destroy()}})}catch(y){if(y.taskUUID)throw y;if(m>=d)return this.handleIncompleteImages({taskUUIDs:a,error:y})}};this.modelSearch=async e=>this.baseSingleRequest({payload:{...e,taskType:"modelSearch"},debugKey:"model-search"});this.imageMasking=async e=>this.baseSingleRequest({payload:{...e,taskType:"imageMasking"},debugKey:"image-masking"});this.imageUpload=async e=>this.baseSingleRequest({payload:{...e,taskType:"imageUpload"},debugKey:"image-upload"});this.baseSingleRequest=async({payload:e,debugKey:t,mockResponse:n})=>{let{retry:s,customTaskUUID:r,includePayload:c,includeGenerationTime:u,...l}=e,p=s||this._globalMaxRetries,d,g=Date.now();try{return await x(async()=>{await this.ensureConnection();let a=r||R(),m={...l,taskUUID:a};n?setTimeout(()=>{this._globalMessages[a]=n},1e3):this.send(m),d=this.globalListener({taskUUID:a});let o=await S(({resolve:y,reject:I})=>{let f=this.getSingleMessage({taskUUID:a});if(f){if(f?.error)return I(f),!0;if(f)return delete this._globalMessages[a],y(f),!0}},{debugKey:t,timeoutDuration:this._timeoutDuration});return this.insertAdditionalResponse({response:o,payload:c?m:void 0,startTime:u?g:void 0}),d.destroy(),o},{maxRetries:p,callback:()=>{d?.destroy()}})}catch(a){throw a}};this.getSingleMessage=({taskUUID:e})=>{let t=this._globalMessages[e]?.[0],n=this._globalMessages[e];return!t&&!n?null:n?.error?n:t};this.insertAdditionalResponse=({response:e,payload:t,startTime:n})=>{if(!t&&!n)return;let s=e;s.additionalResponse={},t&&(e.additionalResponse.payload=t),n&&(e.additionalResponse.generationTime=Date.now()-n)};this.disconnect=async()=>{this._shouldReconnect=!1,this._ws?.terminate?.(),this._ws?.close?.()};this.connected=()=>this.isWebsocketReadyState()&&!!this._connectionSessionUUID;this._apiKey=e,this._url=t,this._sdkType="CLIENT",this._shouldReconnect=n,this._globalMaxRetries=s,this._timeoutDuration=r}static async initialize(e){try{let t=new this(e);return await t.ensureConnection(),t}catch(t){throw t}}addListener({lis:e,groupKey:t,taskUUID:n}){let s=u=>{let l=Array.isArray(u?.data)?u.data:[u.data],p=u?.[0]?.errors?u?.[0]?.errors:Array.isArray(u?.errors)?u.errors:[u.errors],d=l.filter(a=>(a?.taskUUID||a?.taskType)===n);if(p.filter(a=>(a?.taskUUID||a?.taskType)===n).length){e({error:{...p[0]??{}}});return}if(d.length){e({[n]:l});return}},r={key:n||R(),listener:s,groupKey:t};return this._listeners.push(r),{destroy:()=>{this._listeners=Se(this._listeners,r)}}}connect(){this._ws.onopen=e=>{this._connectionSessionUUID?this.send({taskType:"authentication",apiKey:this._apiKey,connectionSessionUUID:this._connectionSessionUUID}):this.send({apiKey:this._apiKey,taskType:"authentication"}),this.addListener({taskUUID:"authentication",lis:t=>{if(t?.error){this._connectionError=t;return}this._connectionSessionUUID=t?.authentication?.[0]?.connectionSessionUUID,this._connectionError=void 0}})},this._ws.onmessage=e=>{let t=JSON.parse(e.data);for(let n of this._listeners)if(n?.listener?.(t))return},this._ws.onclose=e=>{this.isInvalidAPIKey()}}destroy(e){Re(this._listeners,e)}listenToImages({onPartialImages:e,taskUUID:t,groupKey:n,requestPayload:s,startTime:r}){return this.addListener({taskUUID:t,lis:c=>{let u=c?.[t]?.filter(l=>l.taskUUID===t);c.error?(e?.(u,c?.error&&c),this._globalError=c):(u=u.map(l=>(this.insertAdditionalResponse({response:l,payload:s||void 0,startTime:r||void 0}),{...l})),e?.(u,c?.error&&c),this._sdkType==="CLIENT"?this._globalImages=[...this._globalImages,...(c?.[t]??[]).map(l=>(this.insertAdditionalResponse({response:l,payload:s||void 0,startTime:r||void 0}),{...l}))]:this._globalImages=[...this._globalImages,...u])},groupKey:n})}listenToUpload({onUploadStream:e,taskUUID:t}){return this.addListener({taskUUID:t,lis:n=>{let s=n?.error,r=n?.[t]?.[0],c=r?.taskUUID===t?r:null;(c||s)&&e?.(c||void 0,s)}})}globalListener({taskUUID:e}){return this.addListener({taskUUID:e,lis:t=>{if(t.error){this._globalMessages[e]=t;return}let n=xe({key:e,data:t,useZero:!1});Array.isArray(n)?n.forEach(s=>{this._globalMessages[s.taskUUID]=[...this._globalMessages[s.taskUUID]??[],s]}):this._globalMessages[n.taskUUID]=n}})}async requestImages({outputType:e,outputFormat:t,uploadEndpoint:n,checkNSFW:s,positivePrompt:r,negativePrompt:c,seedImage:u,maskImage:l,strength:p,height:d,width:g,model:a,steps:m,scheduler:o,seed:y,CFGScale:I,clipSkip:f,usePromptWeighting:k,promptWeighting:_,numberResults:U=1,onPartialImages:b,includeCost:M,customTaskUUID:q,retry:V,refiner:v,maskMargin:Le,outputQuality:h,controlNet:H,lora:re,embeddings:ae,ipAdapters:oe,outpaint:ie,acceleratorOptions:le,advancedFeatures:ce,referenceImages:ue,includeGenerationTime:Ke,includePayload:Pe},Fe){let C,de,L=[],pe=0,ge=V||this._globalMaxRetries;try{await this.ensureConnection();let w=null,j=null,Q=[];if(u){let D=await this.uploadImage(u);if(!D)return[];w=D.imageUUID}if(l){let D=await this.uploadImage(l);if(!D)return[];j=D.imageUUID}if(H?.length)for(let D=0;D<H.length;D++){let E=H[D],{endStep:J,startStep:K,weight:Y,guideImage:P,controlMode:Ge,startStepPercentage:Be,endStepPercentage:qe,model:Ve}=E,He=P?await this.uploadImage(P):null;Q.push({guideImage:He?.imageUUID,model:Ve,endStep:J,startStep:K,weight:Y,...T({key:"startStepPercentage",value:Be}),...T({key:"endStepPercentage",value:qe}),controlMode:Ge||"controlnet"})}de={taskType:"imageInference",model:a,positivePrompt:r,...c?{negativePrompt:c}:{},...d?{height:d}:{},...g?{width:g}:{},numberResults:U,...e?{outputType:e}:{},...t?{outputFormat:t}:{},...n?{uploadEndpoint:n}:{},...T({key:"checkNSFW",value:s}),...T({key:"strength",value:p}),...T({key:"CFGScale",value:I}),...T({key:"clipSkip",value:f}),...T({key:"maskMargin",value:Le}),...T({key:"usePromptWeighting",value:k}),...T({key:"steps",value:m}),..._?{promptWeighting:_}:{},...y?{seed:y}:{seed:ne()},...o?{scheduler:o}:{},...v?{refiner:v}:{},...ie?{outpaint:ie}:{},...T({key:"includeCost",value:M}),...w?{seedImage:w}:{},...j?{maskImage:j}:{},...h?{outputQuality:h}:{},...Q.length?{controlNet:Q}:{},...re?.length?{lora:re}:{},...ae?.length?{embeddings:ae}:{},...oe?.length?{ipAdapters:oe}:{},...le?{acceleratorOptions:le}:{},...ce?{advancedFeatures:ce}:{},...ue?.length?{referenceImages:ue}:{},...Fe??{}};let We=Date.now();return await x(async()=>{pe++,C?.destroy();let D=this._globalImages.filter(P=>L.includes(P.taskUUID)),E=q||R();L.push(E);let J=U-D.length,K={...de,taskUUID:E,numberResults:J};this.send(K),C=this.listenToImages({onPartialImages:b,taskUUID:E,groupKey:"REQUEST_IMAGES",requestPayload:Pe?K:void 0,startTime:Ke?We:void 0});let Y=await this.getSimilarImages({taskUUID:L,numberResults:U,lis:C});return C.destroy(),Y},{maxRetries:ge,callback:()=>{C?.destroy()}})}catch(w){if(pe>=ge)return this.handleIncompleteImages({taskUUIDs:L,error:w});throw w}}async ensureConnection(){if(this.connected()||this._url===te.TEST)return;let t=2e3,n=200;try{if(this.isInvalidAPIKey())throw this._connectionError;return new Promise((s,r)=>{let c=0,u=30,l=R(),p,d,g=()=>{this.ensureConnectionUUID=null,clearInterval(p),clearInterval(d)};this._sdkType==="SERVER"&&(p=setInterval(async()=>{try{let a=this.connected(),m=!1;(!this.ensureConnectionUUID||l===this.ensureConnectionUUID)&&(this.ensureConnectionUUID||(this.ensureConnectionUUID=l),m=!0);let o=c%10===0&&m;a?(g(),s(!0)):c>=u?(g(),r(new Error("Retry timed out"))):(o&&this.connect(),c++)}catch(a){g(),r(a)}},t)),d=setInterval(async()=>{if(this.connected()){g(),s(!0);return}if(this.isInvalidAPIKey()){g(),r(this._connectionError);return}},n)})}catch{throw this.ensureConnectionUUID=null,this._connectionError=void 0,this._connectionError??"Could not connect to server. Ensure your API key is correct"}}async getSimilarImages({taskUUID:e,numberResults:t,shouldThrowError:n,lis:s}){return await S(({resolve:r,reject:c,intervalId:u})=>{let l=Array.isArray(e)?e:[e],p=this._globalImages.filter(d=>l.includes(d.taskUUID));if(this._globalError){let d=this._globalError;return this._globalError=void 0,clearInterval(u),c?.(d),!0}else if(p.length>=t)return clearInterval(u),this._globalImages=this._globalImages.filter(d=>!l.includes(d.taskUUID)),r([...p].slice(0,t)),!0},{debugKey:"getting images",shouldThrowError:n,timeoutDuration:this._timeoutDuration})}handleIncompleteImages({taskUUIDs:e,error:t}){let n=this._globalImages.filter(s=>e.includes(s.taskUUID));if(n.length>1)return this._globalImages=this._globalImages.filter(s=>!e.includes(s.taskUUID)),n;throw t}};var Ne=ye(Oe(),1),O=class extends A{constructor(e){let{shouldReconnect:t,...n}=e;super(n),this._ws=new Ne.default(this._url),this.connect()}};var Me=ye(require("ws"),1);var N=class extends A{constructor(t){super(t);this._instantiated=!1;this._listeners=[];this._reconnectingIntervalId=null;this.send=t=>{this._ws.send(JSON.stringify([t]))};this.resetConnection=()=>{this._ws&&(this._listeners.forEach(t=>{t?.destroy?.()}),this._ws.removeAllListeners(),this._ws.readyState===1&&(this._ws.terminate(),this._ws.close()),this._ws=null,this._listeners=[])};this._sdkType="SERVER",this.connect()}async connect(){this._url&&(this.resetConnection(),this._ws=new Me.default(this._url,{perMessageDeflate:!1}),this._ws.on("error",()=>{}),this._ws.on("close",()=>{this.handleClose()}),this._ws.on("open",()=>{this._reconnectingIntervalId&&clearInterval(this._reconnectingIntervalId),this._connectionSessionUUID&&this.isWebsocketReadyState()?this.send({taskType:"authentication",apiKey:this._apiKey,connectionSessionUUID:this._connectionSessionUUID}):this.isWebsocketReadyState()&&this.send({apiKey:this._apiKey,taskType:"authentication"}),this.addListener({taskUUID:"authentication",lis:t=>{if(t?.error){this._connectionError=t;return}this._connectionSessionUUID=t?.authentication?.[0]?.connectionSessionUUID,this._connectionError=void 0}})}),this._ws.on("message",(t,n)=>{let s=n?t:t?.toString();if(!s)return;let r=JSON.parse(s);this._listeners.forEach(c=>{c.listener(r)})}))}handleClose(){this.isInvalidAPIKey()||(this._reconnectingIntervalId&&clearInterval(this._reconnectingIntervalId),this._shouldReconnect&&setTimeout(()=>this.connect(),1e3))}heartBeat(){clearTimeout(this._pingTimeout),this._pingTimeout=setTimeout(()=>{this.isWebsocketReadyState()&&this.send({ping:!0})},5e3)}};var se;typeof window>"u"?se=N:se=O;0&&(module.exports={EControlMode,EModelArchitecture,EModelConditioning,EModelFormat,EModelType,EOpenPosePreProcessor,EPhotoMakerEnum,EPreProcessor,EPreProcessorGroup,ETaskType,Environment,Runware,RunwareClient,RunwareServer,SdkType});
2
2
  //# sourceMappingURL=index.cjs.map