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