@runware/sdk-js 1.1.44 → 1.1.45-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 +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var Ye=Object.create;var W=Object.defineProperty;var $e=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty;var tt=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),nt=(i,t)=>{for(var e in t)W(i,e,{get:t[e],enumerable:!0})},ye=(i,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Ze(t))!et.call(i,s)&&s!==e&&W(i,s,{get:()=>t[s],enumerable:!(n=$e(t,s))||n.enumerable});return i};var Ie=(i,t,e)=>(e=i!=null?Ye(Xe(i)):{},ye(t||!i||!i.__esModule?W(e,"default",{value:i,enumerable:!0}):e,i)),st=i=>ye(W({},"__esModule",{value:!0}),i);var Le=tt((ln,Ne)=>{"use strict";var Oe=i=>i&&i.CLOSING===2,at=()=>typeof WebSocket<"u"&&Oe(WebSocket),ot=()=>({constructor:at()?WebSocket:null,maxReconnectionDelay:1e4,minReconnectionDelay:1500,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,debug:!1}),it=(i,t,e)=>{Object.defineProperty(t,e,{get:()=>i[e],set:n=>{i[e]=n},enumerable:!0,configurable:!0})},Ee=i=>i.minReconnectionDelay+Math.random()*i.minReconnectionDelay,lt=(i,t)=>{let e=t*i.reconnectionDelayGrowFactor;return e>i.maxReconnectionDelay?i.maxReconnectionDelay:e},ut=["onopen","onclose","onmessage","onerror"],ct=(i,t,e)=>{Object.keys(e).forEach(n=>{e[n].forEach(([s,o])=>{i.addEventListener(n,s,o)})}),t&&ut.forEach(n=>{i[n]=t[n]})},Me=function(i,t,e={}){let n,s,o=0,u=0,c=!0,r={};if(!(this instanceof Me))throw new TypeError("Failed to construct 'ReconnectingWebSocket': Please use the 'new' operator");let p=ot();if(Object.keys(p).filter(l=>e.hasOwnProperty(l)).forEach(l=>p[l]=e[l]),!Oe(p.constructor))throw new TypeError("Invalid WebSocket constructor. Set `options.constructor`");let d=p.debug?(...l)=>console.log("RWS:",...l):()=>{},g=(l,y)=>setTimeout(()=>{let I=new Error(y);I.code=l,Array.isArray(r.error)&&r.error.forEach(([f])=>f(I)),n.onerror&&n.onerror(I)},0),a=()=>{if(d("close"),u++,d("retries count:",u),u>p.maxRetries){g("EHOSTDOWN","Too many failed connection attempts");return}o?o=lt(p,o):o=Ee(p),d("reconnectDelay:",o),c&&setTimeout(m,o)},m=()=>{d("connect");let l=n;n=new p.constructor(i,t),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&&it(n,this,y);n.addEventListener("open",()=>{clearTimeout(s),d("open"),o=Ee(p),d("reconnectDelay:",o),u=0}),n.addEventListener("close",a),ct(n,l,r)};d("init"),m(),this.close=(l=1e3,y="",{keepClosed:I=!1,fastClose:f=!0,delay:k=0}={})=>{if(k&&(o=k),c=!I,n.close(l,y),f){let _={code:l,reason:y,wasClean:!0};a(),Array.isArray(r.close)&&r.close.forEach(([U,b])=>{U(_),n.removeEventListener("close",U,b)}),n.onclose&&(n.onclose(_),n.onclose=null)}},this.send=l=>{n.send(l)},this.addEventListener=(l,y,I)=>{Array.isArray(r[l])?r[l].some(([f])=>f===y)||r[l].push([y,I]):r[l]=[[y,I]],n.addEventListener(l,y,I)},this.removeEventListener=(l,y,I)=>{Array.isArray(r[l])&&(r[l]=r[l].filter(([f])=>f!==y)),n.removeEventListener(l,y,I)}};Ne.exports=Me});var dt={};nt(dt,{EControlMode:()=>X,EModelArchitecture:()=>be,EModelConditioning:()=>Ue,EModelFormat:()=>fe,EModelType:()=>Te,EOpenPosePreProcessor:()=>he,EPhotoMakerEnum:()=>_e,EPreProcessor:()=>te,EPreProcessorGroup:()=>ee,ETaskType:()=>G,Environment:()=>Z,Runware:()=>se,RunwareClient:()=>O,RunwareServer:()=>M,SdkType:()=>F});module.exports=st(dt);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=(l=>(l.IMAGE_INFERENCE="imageInference",l.IMAGE_UPLOAD="imageUpload",l.IMAGE_UPSCALE="imageUpscale",l.IMAGE_BACKGROUND_REMOVAL="imageBackgroundRemoval",l.VIDEO_INFERENCE="videoInference",l.GET_RESPONSE="getResponse",l.PHOTO_MAKER="photoMaker",l.IMAGE_CAPTION="imageCaption",l.IMAGE_CONTROL_NET_PRE_PROCESS="imageControlNetPreProcess",l.IMAGE_MASKING="imageMasking",l.PROMPT_ENHANCE="promptEnhance",l.AUTHENTICATION="authentication",l.MODEL_UPLOAD="modelUpload",l.MODEL_SEARCH="modelSearch",l))(G||{}),X=(n=>(n.BALANCED="balanced",n.PROMPT="prompt",n.CONTROL_NET="controlnet",n))(X||{}),ee=(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))(ee||{}),te=(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))(te||{}),he=(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))(he||{}),fe=(e=>(e.safetensors="safetensors",e.pickletensor="pickletensor",e))(fe||{}),be=(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))(be||{}),Te=(n=>(n.base="base",n.inpainting="inpainting",n.pix2pix="pix2pix",n))(Te||{}),Ue=(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))(Ue||{}),_e=(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))(_e||{});var q=require("uuid"),V=6e4,B=1e3,Re=100,ne={PRODUCTION:"wss://ws-api.runware.ai/v1",TEST:"ws://localhost:8080"},ke=(i,t)=>{if(i==null)return;let e=i.indexOf(t);e!==-1&&i.splice(e,1)},S=(i,{debugKey:t="debugKey",timeoutDuration:e=V,shouldThrowError:n=!0,pollingInterval:s=Re})=>(e=e<B?B:e,new Promise((o,u)=>{let c=setTimeout(()=>{r&&(clearInterval(r),n&&u(`Response could not be received from server for ${t}`)),clearTimeout(c)},e),r=setInterval(async()=>{i({resolve:o,reject:u,intervalId:r})&&(clearInterval(r),clearTimeout(c))},s)})),De=i=>new Promise(t=>{let e=new FileReader;e.readAsDataURL(i),e.onload=function(){t(e.result)}}),R=()=>(0,q.v4)(),xe=i=>(0,q.validate)(i);var ve=({key:i,data:t,useZero:e=!0,shouldReturnString:n=!1})=>i.split(/\.|\[/).map(u=>u.replace(/\]$/,"")).reduce((u,c)=>{let r=e?0:void 0,p=u?.[c];if(!p)return r;if(Array.isArray(p)&&/^\d+$/.test(c)){let d=parseInt(c,10);return d>=0&&d<p.length?u[c]=p[d]:u[c]??r}else return u[c]??r},t||{})??{},Se=(i,t=1e3)=>new Promise(e=>setTimeout(e,i*t));var we=(i,t)=>i.filter(e=>e.key!==t.key);var T=({key:i,value:t})=>t||t===0||t===!1?{[i]:t}:{},rt=(i,t)=>Math.floor(Math.random()*(t-i+1))+i,Ae=()=>rt(1,Number.MAX_SAFE_INTEGER),Ce=(i,{debugKey:t="debugKey",timeoutDuration:e=V,shouldThrowError:n=!0,pollingInterval:s=Re})=>(e=e<B?B:e,new Promise((o,u)=>{let c=setTimeout(()=>{r&&(clearInterval(r),n&&u(`Response could not be received from server for ${t}`)),clearTimeout(c)},e),r=setInterval(async()=>{try{await i({resolve:o,reject:u,intervalId:r})&&(clearInterval(r),clearTimeout(c))}catch(p){clearInterval(r),clearTimeout(c),u(p)}},s)}));var x=async(i,t={})=>{let{delayInSeconds:e=1,callback:n}=t,s=t.maxRetries??1;for(;s;)try{return await i()}catch(o){if(n?.(),o?.error)throw o;if(s--,s>0)await Se(e),await x(i,{...t,maxRetries:s});else throw o}};var A=class{constructor({apiKey:t,url:e=ne.PRODUCTION,shouldReconnect:n=!0,globalMaxRetries:s=2,timeoutDuration:o=V}){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"&&xe(t))return{imageURL:t,imageUUID:t,taskUUID:e,taskType:"imageUpload"};let n=typeof t=="string"?t:await De(t);return{imageURL:n,imageUUID:n,taskUUID:e,taskType:"imageUpload"}})}catch(e){throw e}};this.controlNetPreProcess=async({inputImage:t,preProcessorType:e,height:n,width:s,outputType:o,outputFormat:u,highThresholdCanny:c,lowThresholdCanny:r,includeHandsAndFaceOpenPose:p,includeCost:d,outputQuality:g,customTaskUUID:a,retry:m,includeGenerationTime:l,includePayload:y})=>{let I=m||this._globalMaxRetries,f,k=Date.now();try{return await x(async()=>{await this.ensureConnection();let _=await this.uploadImage(t);if(!_?.imageUUID)return null;let U=a||R(),b={inputImage:_.imageUUID,taskType:"imageControlNetPreProcess",taskUUID:U,preProcessorType:e,...T({key:"height",value:n}),...T({key:"width",value:s}),...T({key:"outputType",value:o}),...T({key:"outputFormat",value:u}),...T({key:"includeCost",value:d}),...T({key:"highThresholdCanny",value:c}),...T({key:"lowThresholdCanny",value:r}),...T({key:"includeHandsAndFaceOpenPose",value:p}),...g?{outputQuality:g}:{}};this.send({...b}),f=this.globalListener({taskUUID:U});let N=await S(({resolve:H,reject:j})=>{let v=this.getSingleMessage({taskUUID:U});if(v){if(v?.error)return j(v),!0;if(v)return H(v),!0}},{debugKey:"unprocessed-image",timeoutDuration:this._timeoutDuration});return f.destroy(),this.insertAdditionalResponse({response:N,payload:y?b:void 0,startTime:l?k:void 0}),N},{maxRetries:I,callback:()=>{f?.destroy()}})}catch(_){throw _}};this.requestImageToText=async({inputImage:t,includeCost:e,customTaskUUID:n,retry:s,includePayload:o,includeGenerationTime:u})=>{let c=s||this._globalMaxRetries,r,p=Date.now();try{return await x(async()=>{await this.ensureConnection();let d=t?await this.uploadImage(t):null,g=n||R(),a={taskUUID:g,taskType:"imageCaption",inputImage:d?.imageUUID,...T({key:"includeCost",value:e})};this.send(a),r=this.globalListener({taskUUID:g});let m=await S(({resolve:l,reject:y})=>{let I=this.getSingleMessage({taskUUID:g});if(I){if(I?.error)return y(I),!0;if(I)return delete this._globalMessages[g],l(I),!0}},{debugKey:"remove-image-background",timeoutDuration:this._timeoutDuration});return r.destroy(),this.insertAdditionalResponse({response:m,payload:o?a:void 0,startTime:u?p:void 0}),m},{maxRetries:c,callback:()=>{r?.destroy()}})}catch(d){throw d}};this.removeImageBackground=async t=>this.baseSingleRequest({payload:{...t,taskType:"imageBackgroundRemoval"},debugKey:"remove-image-background"});this.videoInference=async t=>{let{skipResponse:e,...n}=t;try{let s=await this.baseSingleRequest({payload:{...n,deliveryMethod:"async",taskType:"videoInference"},debugKey:"video-inference"});if(e)return s;let o=s?.taskUUID,u=t?.numberResults??1,c=new Map;return await Ce(async({resolve:r,reject:p})=>{try{let d=await this.getResponse({taskUUID:o});for(let a of d||[])a.videoUUID&&c.set(a.videoUUID,a);return c.size===u?(r(Array.from(c.values())),!0):!1}catch(d){return p(d),!0}},{debugKey:"async-response",pollingInterval:2*1e3,timeoutDuration:10*60*1e3}),Array.from(c.values())}catch(s){throw s}};this.getResponse=async t=>{let e=t.taskUUID;return this.baseSingleRequest({payload:{...t,customTaskUUID:e,taskType:"getResponse"},isMultiple:!0,debugKey:"async-results"})};this.upscaleGan=async({inputImage:t,upscaleFactor:e,outputType:n,outputFormat:s,includeCost:o,outputQuality:u,customTaskUUID:c,retry:r,includeGenerationTime:p,includePayload:d})=>{let g=r||this._globalMaxRetries,a,m=Date.now();try{return await x(async()=>{await this.ensureConnection();let l;l=await this.uploadImage(t);let y=c||R(),I={taskUUID:y,inputImage:l?.imageUUID,taskType:"imageUpscale",upscaleFactor:e,...T({key:"includeCost",value:o}),...n?{outputType:n}:{},...u?{outputQuality:u}:{},...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(l){throw l}};this.enhancePrompt=async({prompt:t,promptMaxLength:e=380,promptVersions:n=1,includeCost:s,customTaskUUID:o,retry:u,includeGenerationTime:c,includePayload:r})=>{let p=u||this._globalMaxRetries,d,g=Date.now();try{return await x(async()=>{await this.ensureConnection();let a=o||R(),m={prompt:t,taskUUID:a,promptMaxLength:e,promptVersions:n,...T({key:"includeCost",value:s}),taskType:"promptEnhance"};this.send(m),d=this.globalListener({taskUUID:a});let l=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:l,payload:r?m:void 0,startTime:c?g:void 0}),l},{maxRetries:p,callback:()=>{d?.destroy()}})}catch(a){throw a}};this.modelUpload=async t=>{let{onUploadStream:e,retry:n,customTaskUUID:s,...o}=t,u=n||this._globalMaxRetries,c;try{return await x(async()=>{await this.ensureConnection();let r=s||R();this.send({...o,taskUUID:r,taskType:"modelUpload"});let p,d;return c=this.listenToUpload({taskUUID:r,onUploadStream:(a,m)=>{e?.(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:u,callback:()=>{c?.destroy()}})}catch(r){throw r}};this.photoMaker=async(t,e)=>{let{onPartialImages:n,retry:s,customTaskUUID:o,numberResults:u,includeGenerationTime:c,includePayload:r,...p}=t,d=s||this._globalMaxRetries,g,a=[],m=0,l=Date.now();try{return await x(async()=>{await this.ensureConnection(),m++;let y=this._globalImages.filter(U=>a.includes(U.taskUUID)),I=o||R();a.push(I);let f=u-y.length,k={...p,...p.seed?{seed:p.seed}:{seed:Ae()},...e??{},taskUUID:I,taskType:"photoMaker",numberResults:u};this.send({...k,numberResults:f}),g=this.listenToImages({onPartialImages:n,taskUUID:I,groupKey:"REQUEST_IMAGES",requestPayload:r?k:void 0,startTime:c?l:void 0});let _=await this.getSimilarImages({taskUUID:a,numberResults:u,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 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,isMultiple:n})=>{let{retry:s,customTaskUUID:o,includePayload:u,includeGenerationTime:c,...r}=t,p=s||this._globalMaxRetries,d,g=Date.now();try{return await x(async()=>{await this.ensureConnection();let a=o||R(),m={...r,taskUUID:a};this.send(m),d=this.globalListener({taskUUID:a});let l=await S(({resolve:y,reject:I})=>{let f=n?this.getMultipleMessages({taskUUID:a}):this.getSingleMessage({taskUUID:a});if(f){if(f?.error)return I(f),!0;if(f)return delete this._globalMessages[a],y(f),!0}},{debugKey:e,timeoutDuration:this._timeoutDuration});return this.insertAdditionalResponse({response:l,payload:u?m:void 0,startTime:c?g:void 0}),d.destroy(),l},{maxRetries:p,callback:()=>{d?.destroy()}})}catch(a){throw a}};this.getSingleMessage=({taskUUID:t})=>{let e=this._globalMessages[t]?.[0],n=this._globalMessages[t];return!e&&!n?null:n?.error?n:e};this.getMultipleMessages=({taskUUID:t})=>{let e=this._globalMessages[t]?.[0],n=this._globalMessages[t];return!e&&!n?null:n};this.insertAdditionalResponse=({response:t,payload:e,startTime:n})=>{if(!e&&!n)return;let s=t;s.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=s,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 s=c=>{let r=Array.isArray(c?.data)?c.data:[c.data],p=c?.[0]?.errors?c?.[0]?.errors:Array.isArray(c?.errors)?c.errors:[c.errors],d=r.filter(a=>(a?.taskUUID||a?.taskType)===n);if(p.filter(a=>(a?.taskUUID||a?.taskType)===n).length){t({error:{...p[0]??{}}});return}if(d.length){t({[n]:r});return}},o={key:n||R(),listener:s,groupKey:e};return this._listeners.push(o),{destroy:()=>{this._listeners=we(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){ke(this._listeners,t)}listenToImages({onPartialImages:t,taskUUID:e,groupKey:n,requestPayload:s,startTime:o}){return this.addListener({taskUUID:e,lis:u=>{let c=u?.[e]?.filter(r=>r.taskUUID===e);u.error?(t?.(c,u?.error&&u),this._globalError=u):(c=c.map(r=>(this.insertAdditionalResponse({response:r,payload:s||void 0,startTime:o||void 0}),{...r})),t?.(c,u?.error&&u),this._sdkType==="CLIENT"?this._globalImages=[...this._globalImages,...(u?.[e]??[]).map(r=>(this.insertAdditionalResponse({response:r,payload:s||void 0,startTime:o||void 0}),{...r}))]:this._globalImages=[...this._globalImages,...c])},groupKey:n})}listenToUpload({onUploadStream:t,taskUUID:e}){return this.addListener({taskUUID:e,lis:n=>{let s=n?.error,o=n?.[e]?.[0],u=o?.taskUUID===e?o:null;(u||s)&&t?.(u||void 0,s)}})}globalListener({taskUUID:t}){return this.addListener({taskUUID:t,lis:e=>{if(e.error){this._globalMessages[t]=e;return}let n=ve({key:t,data:e,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:t,outputFormat:e,uploadEndpoint:n,checkNSFW:s,positivePrompt:o,negativePrompt:u,seedImage:c,maskImage:r,strength:p,height:d,width:g,model:a,steps:m,scheduler:l,seed:y,CFGScale:I,clipSkip:f,usePromptWeighting:k,promptWeighting:_,numberResults:U=1,onPartialImages:b,includeCost:N,customTaskUUID:H,retry:j,refiner:v,maskMargin:We,outputQuality:h,controlNet:Q,lora:re,embeddings:ae,ipAdapters:oe,providerSettings:ie,outpaint:le,acceleratorOptions:ue,advancedFeatures:ce,referenceImages:de,includeGenerationTime:Fe,includePayload:Ge,...Be},qe){let C,pe,L=[],ge=0,me=j||this._globalMaxRetries;try{await this.ensureConnection();let w=null,J=null,z=[];if(c){let D=await this.uploadImage(c);if(!D)return[];w=D.imageUUID}if(r){let D=await this.uploadImage(r);if(!D)return[];J=D.imageUUID}if(Q?.length)for(let D=0;D<Q.length;D++){let E=Q[D],{endStep:Y,startStep:P,weight:$,guideImage:K,controlMode:He,startStepPercentage:je,endStepPercentage:Qe,model:Je}=E,ze=K?await this.uploadImage(K):null;z.push({guideImage:ze?.imageUUID,model:Je,endStep:Y,startStep:P,weight:$,...T({key:"startStepPercentage",value:je}),...T({key:"endStepPercentage",value:Qe}),controlMode:He||"controlnet"})}pe={taskType:"imageInference",model:a,positivePrompt:o,...u?{negativePrompt:u}:{},...d?{height:d}:{},...g?{width:g}:{},numberResults:U,...t?{outputType:t}:{},...e?{outputFormat:e}:{},...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:We}),...T({key:"usePromptWeighting",value:k}),...T({key:"steps",value:m}),..._?{promptWeighting:_}:{},...y?{seed:y}:{},...l?{scheduler:l}:{},...v?{refiner:v}:{},...le?{outpaint:le}:{},...T({key:"includeCost",value:N}),...w?{seedImage:w}:{},...J?{maskImage:J}:{},...h?{outputQuality:h}:{},...z.length?{controlNet:z}:{},...re?.length?{lora:re}:{},...ae?.length?{embeddings:ae}:{},...oe?.length?{ipAdapters:oe}:{},...ie?{providerSettings:ie}:{},...ue?{acceleratorOptions:ue}:{},...ce?{advancedFeatures:ce}:{},...de?.length?{referenceImages:de}:{},...Be,...qe??{}};let Ve=Date.now();return await x(async()=>{ge++,C?.destroy();let D=this._globalImages.filter(K=>L.includes(K.taskUUID)),E=H||R();L.push(E);let Y=U-D.length,P={...pe,taskUUID:E,numberResults:Y};this.send(P),C=this.listenToImages({onPartialImages:b,taskUUID:E,groupKey:"REQUEST_IMAGES",requestPayload:Ge?P:void 0,startTime:Fe?Ve:void 0});let $=await this.getSimilarImages({taskUUID:L,numberResults:U,lis:C});return C.destroy(),$},{maxRetries:me,callback:()=>{C?.destroy()}})}catch(w){if(ge>=me)return this.handleIncompleteImages({taskUUIDs:L,error:w});throw w}}async ensureConnection(){if(this.connected()||this._url===ne.TEST)return;let e=2e3,n=200;try{if(this.isInvalidAPIKey())throw this._connectionError;return new Promise((s,o)=>{let u=0,c=30,r=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||r===this.ensureConnectionUUID)&&(this.ensureConnectionUUID||(this.ensureConnectionUUID=r),m=!0);let l=u%10===0&&m;a?(g(),s(!0)):u>=c?(g(),o(new Error("Retry timed out"))):(l&&this.connect(),u++)}catch(a){g(),o(a)}},e)),d=setInterval(async()=>{if(this.connected()){g(),s(!0);return}if(this.isInvalidAPIKey()){g(),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:s}){return await S(({resolve:o,reject:u,intervalId:c})=>{let r=Array.isArray(t)?t:[t],p=this._globalImages.filter(d=>r.includes(d.taskUUID));if(this._globalError){let d=this._globalError;return this._globalError=void 0,clearInterval(c),u?.(d),!0}else if(p.length>=e)return clearInterval(c),this._globalImages=this._globalImages.filter(d=>!r.includes(d.taskUUID)),o([...p].slice(0,e)),!0},{debugKey:"getting images",shouldThrowError:n,timeoutDuration:this._timeoutDuration})}handleIncompleteImages({taskUUIDs:t,error:e}){let n=this._globalImages.filter(s=>t.includes(s.taskUUID));if(n.length>1)return this._globalImages=this._globalImages.filter(s=>!t.includes(s.taskUUID)),n;throw e}};var Pe=Ie(Le(),1),O=class extends A{constructor(t){let{shouldReconnect:e,...n}=t;super(n),this._ws=new Pe.default(this._url),this.connect()}};var Ke=Ie(require("ws"),1);var M=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 Ke.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 s=n?e:e?.toString();if(!s)return;let o=JSON.parse(s);this._listeners.forEach(u=>{u.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=M:se=O;0&&(module.exports={EControlMode,EModelArchitecture,EModelConditioning,EModelFormat,EModelType,EOpenPosePreProcessor,EPhotoMakerEnum,EPreProcessor,EPreProcessorGroup,ETaskType,Environment,Runware,RunwareClient,RunwareServer,SdkType});
|
|
1
|
+
"use strict";var Ye=Object.create;var W=Object.defineProperty;var Ze=Object.getOwnPropertyDescriptor;var Xe=Object.getOwnPropertyNames;var et=Object.getPrototypeOf,tt=Object.prototype.hasOwnProperty;var nt=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),st=(o,t)=>{for(var e in t)W(o,e,{get:t[e],enumerable:!0})},Ie=(o,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Xe(t))!tt.call(o,r)&&r!==e&&W(o,r,{get:()=>t[r],enumerable:!(n=Ze(t,r))||n.enumerable});return o};var he=(o,t,e)=>(e=o!=null?Ye(et(o)):{},Ie(t||!o||!o.__esModule?W(e,"default",{value:o,enumerable:!0}):e,o)),rt=o=>Ie(W({},"__esModule",{value:!0}),o);var Pe=nt((un,Le)=>{"use strict";var Me=o=>o&&o.CLOSING===2,ot=()=>typeof WebSocket<"u"&&Me(WebSocket),it=()=>({constructor:ot()?WebSocket:null,maxReconnectionDelay:1e4,minReconnectionDelay:1500,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,debug:!1}),lt=(o,t,e)=>{Object.defineProperty(t,e,{get:()=>o[e],set:n=>{o[e]=n},enumerable:!0,configurable:!0})},Oe=o=>o.minReconnectionDelay+Math.random()*o.minReconnectionDelay,ut=(o,t)=>{let e=t*o.reconnectionDelayGrowFactor;return e>o.maxReconnectionDelay?o.maxReconnectionDelay:e},ct=["onopen","onclose","onmessage","onerror"],dt=(o,t,e)=>{Object.keys(e).forEach(n=>{e[n].forEach(([r,a])=>{o.addEventListener(n,r,a)})}),t&&ct.forEach(n=>{o[n]=t[n]})},Ne=function(o,t,e={}){let n,r,a=0,u=0,c=!0,s={};if(!(this instanceof Ne))throw new TypeError("Failed to construct 'ReconnectingWebSocket': Please use the 'new' operator");let d=it();if(Object.keys(d).filter(l=>e.hasOwnProperty(l)).forEach(l=>d[l]=e[l]),!Me(d.constructor))throw new TypeError("Invalid WebSocket constructor. Set `options.constructor`");let p=d.debug?(...l)=>console.log("RWS:",...l):()=>{},g=(l,y)=>setTimeout(()=>{let I=new Error(y);I.code=l,Array.isArray(s.error)&&s.error.forEach(([f])=>f(I)),n.onerror&&n.onerror(I)},0),i=()=>{if(p("close"),u++,p("retries count:",u),u>d.maxRetries){g("EHOSTDOWN","Too many failed connection attempts");return}a?a=ut(d,a):a=Oe(d),p("reconnectDelay:",a),c&&setTimeout(m,a)},m=()=>{p("connect");let l=n;n=new d.constructor(o,t),r=setTimeout(()=>{p("timeout"),n.close(),g("ETIMEDOUT","Connection timeout")},d.connectionTimeout),p("bypass properties");for(let y in n)["addEventListener","removeEventListener","close","send"].indexOf(y)<0&<(n,this,y);n.addEventListener("open",()=>{clearTimeout(r),p("open"),a=Oe(d),p("reconnectDelay:",a),u=0}),n.addEventListener("close",i),dt(n,l,s)};p("init"),m(),this.close=(l=1e3,y="",{keepClosed:I=!1,fastClose:f=!0,delay:k=0}={})=>{if(k&&(a=k),c=!I,n.close(l,y),f){let _={code:l,reason:y,wasClean:!0};i(),Array.isArray(s.close)&&s.close.forEach(([U,b])=>{U(_),n.removeEventListener("close",U,b)}),n.onclose&&(n.onclose(_),n.onclose=null)}},this.send=l=>{n.send(l)},this.addEventListener=(l,y,I)=>{Array.isArray(s[l])?s[l].some(([f])=>f===y)||s[l].push([y,I]):s[l]=[[y,I]],n.addEventListener(l,y,I)},this.removeEventListener=(l,y,I)=>{Array.isArray(s[l])&&(s[l]=s[l].filter(([f])=>f!==y)),n.removeEventListener(l,y,I)}};Le.exports=Ne});var pt={};st(pt,{EControlMode:()=>X,EModelArchitecture:()=>Te,EModelConditioning:()=>_e,EModelFormat:()=>be,EModelType:()=>Ue,EOpenPosePreProcessor:()=>fe,EPhotoMakerEnum:()=>Re,EPreProcessor:()=>te,EPreProcessorGroup:()=>ee,ETaskType:()=>G,Environment:()=>Z,Runware:()=>re,RunwareClient:()=>O,RunwareServer:()=>M,SdkType:()=>F});module.exports=rt(pt);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=(l=>(l.IMAGE_INFERENCE="imageInference",l.IMAGE_UPLOAD="imageUpload",l.IMAGE_UPSCALE="imageUpscale",l.IMAGE_BACKGROUND_REMOVAL="imageBackgroundRemoval",l.VIDEO_INFERENCE="videoInference",l.GET_RESPONSE="getResponse",l.PHOTO_MAKER="photoMaker",l.IMAGE_CAPTION="imageCaption",l.IMAGE_CONTROL_NET_PRE_PROCESS="imageControlNetPreProcess",l.IMAGE_MASKING="imageMasking",l.PROMPT_ENHANCE="promptEnhance",l.AUTHENTICATION="authentication",l.MODEL_UPLOAD="modelUpload",l.MODEL_SEARCH="modelSearch",l))(G||{}),X=(n=>(n.BALANCED="balanced",n.PROMPT="prompt",n.CONTROL_NET="controlnet",n))(X||{}),ee=(i=>(i.canny="canny",i.depth="depth",i.mlsd="mlsd",i.normalbae="normalbae",i.openpose="openpose",i.tile="tile",i.seg="seg",i.lineart="lineart",i.lineart_anime="lineart_anime",i.shuffle="shuffle",i.scribble="scribble",i.softedge="softedge",i))(ee||{}),te=(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))(te||{}),fe=(a=>(a.openpose="openpose",a.openpose_face="openpose_face",a.openpose_faceonly="openpose_faceonly",a.openpose_full="openpose_full",a.openpose_hand="openpose_hand",a))(fe||{}),be=(e=>(e.safetensors="safetensors",e.pickletensor="pickletensor",e))(be||{}),Te=(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))(Te||{}),Ue=(n=>(n.base="base",n.inpainting="inpainting",n.pix2pix="pix2pix",n))(Ue||{}),_e=(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))(_e||{}),Re=(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))(Re||{});var q=require("uuid"),V=6e4,B=1e3,ke=100,ne={PRODUCTION:"wss://ws-api.runware.ai/v1",TEST:"ws://localhost:8080"},De=(o,t)=>{if(o==null)return;let e=o.indexOf(t);e!==-1&&o.splice(e,1)},S=(o,{debugKey:t="debugKey",timeoutDuration:e=V,shouldThrowError:n=!0,pollingInterval:r=ke})=>(e=e<B?B:e,new Promise((a,u)=>{let c=setTimeout(()=>{s&&(clearInterval(s),n&&u(`Response could not be received from server for ${t}`)),clearTimeout(c)},e),s=setInterval(async()=>{o({resolve:a,reject:u,intervalId:s})&&(clearInterval(s),clearTimeout(c))},r)})),xe=o=>new Promise(t=>{let e=new FileReader;e.readAsDataURL(o),e.onload=function(){t(e.result)}}),R=()=>(0,q.v4)(),se=o=>(0,q.validate)(o);var ve=({key:o,data:t,useZero:e=!0,shouldReturnString:n=!1})=>o.split(/\.|\[/).map(u=>u.replace(/\]$/,"")).reduce((u,c)=>{let s=e?0:void 0,d=u?.[c];if(!d)return s;if(Array.isArray(d)&&/^\d+$/.test(c)){let p=parseInt(c,10);return p>=0&&p<d.length?u[c]=d[p]:u[c]??s}else return u[c]??s},t||{})??{},Se=(o,t=1e3)=>new Promise(e=>setTimeout(e,o*t));var we=(o,t)=>o.filter(e=>e.key!==t.key);var T=({key:o,value:t})=>t||t===0||t===!1?{[o]:t}:{},at=(o,t)=>Math.floor(Math.random()*(t-o+1))+o,Ae=()=>at(1,Number.MAX_SAFE_INTEGER),Ce=(o,{debugKey:t="debugKey",timeoutDuration:e=V,shouldThrowError:n=!0,pollingInterval:r=ke})=>(e=e<B?B:e,new Promise((a,u)=>{let c=setTimeout(()=>{s&&(clearInterval(s),n&&u(`Response could not be received from server for ${t}`)),clearTimeout(c)},e),s=setInterval(async()=>{try{await o({resolve:a,reject:u,intervalId:s})&&(clearInterval(s),clearTimeout(c))}catch(d){clearInterval(s),clearTimeout(c),u(d)}},r)})),Ee=o=>typeof o=="string"&&(o.startsWith("http:")||o.startsWith("https:"));var x=async(o,t={})=>{let{delayInSeconds:e=1,callback:n}=t,r=t.maxRetries??1;for(;r;)try{return await o()}catch(a){if(n?.(),a?.error)throw a;if(r--,r>0)await Se(e),await x(o,{...t,maxRetries:r});else throw a}};var A=class{constructor({apiKey:t,url:e=ne.PRODUCTION,shouldReconnect:n=!0,globalMaxRetries:r=2,timeoutDuration:a=V}){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"&&se(t))return{imageURL:t,imageUUID:t,taskUUID:e,taskType:"imageUpload"};let n=typeof t=="string"?t:await xe(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:a,outputFormat:u,highThresholdCanny:c,lowThresholdCanny:s,includeHandsAndFaceOpenPose:d,includeCost:p,outputQuality:g,customTaskUUID:i,retry:m,includeGenerationTime:l,includePayload:y})=>{let I=m||this._globalMaxRetries,f,k=Date.now();try{return await x(async()=>{await this.ensureConnection();let _=await this.uploadImage(t);if(!_?.imageUUID)return null;let U=i||R(),b={inputImage:_.imageUUID,taskType:"imageControlNetPreProcess",taskUUID:U,preProcessorType:e,...T({key:"height",value:n}),...T({key:"width",value:r}),...T({key:"outputType",value:a}),...T({key:"outputFormat",value:u}),...T({key:"includeCost",value:p}),...T({key:"highThresholdCanny",value:c}),...T({key:"lowThresholdCanny",value:s}),...T({key:"includeHandsAndFaceOpenPose",value:d}),...g?{outputQuality:g}:{}};this.send({...b}),f=this.globalListener({taskUUID:U});let N=await S(({resolve:H,reject:j})=>{let v=this.getSingleMessage({taskUUID:U});if(v){if(v?.error)return j(v),!0;if(v)return H(v),!0}},{debugKey:"unprocessed-image",timeoutDuration:this._timeoutDuration});return f.destroy(),this.insertAdditionalResponse({response:N,payload:y?b:void 0,startTime:l?k:void 0}),N},{maxRetries:I,callback:()=>{f?.destroy()}})}catch(_){throw _}};this.requestImageToText=async({inputImage:t,includeCost:e,customTaskUUID:n,retry:r,includePayload:a,includeGenerationTime:u})=>{let c=r||this._globalMaxRetries,s,d=Date.now();try{return await x(async()=>{await this.ensureConnection();let p=t?await this.uploadImage(t):null,g=n||R(),i={taskUUID:g,taskType:"imageCaption",inputImage:p?.imageUUID,...T({key:"includeCost",value:e})};this.send(i),s=this.globalListener({taskUUID:g});let m=await S(({resolve:l,reject:y})=>{let I=this.getSingleMessage({taskUUID:g});if(I){if(I?.error)return y(I),!0;if(I)return delete this._globalMessages[g],l(I),!0}},{debugKey:"remove-image-background",timeoutDuration:this._timeoutDuration});return s.destroy(),this.insertAdditionalResponse({response:m,payload:a?i:void 0,startTime:u?d:void 0}),m},{maxRetries:c,callback:()=>{s?.destroy()}})}catch(p){throw p}};this.removeImageBackground=async t=>this.baseSingleRequest({payload:{...t,taskType:"imageBackgroundRemoval"},debugKey:"remove-image-background"});this.videoInference=async t=>{let{skipResponse:e,inputAudios:n,...r}=t;try{if(n?.length){for(let d of n)if(!Ee(d)&&!se(d))throw new Error(`Invalid audio source: "${d}". Only public URLs or media UUIDs are supported for audio.`)}let a=await this.baseSingleRequest({payload:{...r,...n?.length?{inputAudios:n}:{},deliveryMethod:"async",taskType:"videoInference"},debugKey:"video-inference"});if(e)return a;let u=a?.taskUUID,c=t?.numberResults??1,s=new Map;return await Ce(async({resolve:d,reject:p})=>{try{let g=await this.getResponse({taskUUID:u});for(let m of g||[])m.videoUUID&&s.set(m.videoUUID,m);return s.size===c?(d(Array.from(s.values())),!0):!1}catch(g){return p(g),!0}},{debugKey:"async-response",pollingInterval:2*1e3,timeoutDuration:10*60*1e3}),Array.from(s.values())}catch(a){throw a}};this.getResponse=async t=>{let e=t.taskUUID;return this.baseSingleRequest({payload:{...t,customTaskUUID:e,taskType:"getResponse"},isMultiple:!0,debugKey:"async-results"})};this.upscaleGan=async({inputImage:t,upscaleFactor:e,outputType:n,outputFormat:r,includeCost:a,outputQuality:u,customTaskUUID:c,retry:s,includeGenerationTime:d,includePayload:p})=>{let g=s||this._globalMaxRetries,i,m=Date.now();try{return await x(async()=>{await this.ensureConnection();let l;l=await this.uploadImage(t);let y=c||R(),I={taskUUID:y,inputImage:l?.imageUUID,taskType:"imageUpscale",upscaleFactor:e,...T({key:"includeCost",value:a}),...n?{outputType:n}:{},...u?{outputQuality:u}:{},...r?{outputFormat:r}:{}};this.send(I),i=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 i.destroy(),this.insertAdditionalResponse({response:f,payload:p?I:void 0,startTime:d?m:void 0}),f},{maxRetries:g,callback:()=>{i?.destroy()}})}catch(l){throw l}};this.enhancePrompt=async({prompt:t,promptMaxLength:e=380,promptVersions:n=1,includeCost:r,customTaskUUID:a,retry:u,includeGenerationTime:c,includePayload:s})=>{let d=u||this._globalMaxRetries,p,g=Date.now();try{return await x(async()=>{await this.ensureConnection();let i=a||R(),m={prompt:t,taskUUID:i,promptMaxLength:e,promptVersions:n,...T({key:"includeCost",value:r}),taskType:"promptEnhance"};this.send(m),p=this.globalListener({taskUUID:i});let l=await S(({resolve:y,reject:I})=>{let f=this._globalMessages[i];if(f?.error)return I(f),!0;if(f?.length>=n)return delete this._globalMessages[i],y(f),!0},{debugKey:"enhance-prompt",timeoutDuration:this._timeoutDuration});return p.destroy(),this.insertAdditionalResponse({response:l,payload:s?m:void 0,startTime:c?g:void 0}),l},{maxRetries:d,callback:()=>{p?.destroy()}})}catch(i){throw i}};this.modelUpload=async t=>{let{onUploadStream:e,retry:n,customTaskUUID:r,...a}=t,u=n||this._globalMaxRetries,c;try{return await x(async()=>{await this.ensureConnection();let s=r||R();this.send({...a,taskUUID:s,taskType:"modelUpload"});let d,p;return c=this.listenToUpload({taskUUID:s,onUploadStream:(i,m)=>{e?.(i,m),i?.status==="ready"?d=i:m&&(p=m)}}),await S(({resolve:i,reject:m})=>{if(d)return i(d),!0;if(p)return m(p),!1},{shouldThrowError:!1,timeoutDuration:60*60*1e3})},{maxRetries:u,callback:()=>{c?.destroy()}})}catch(s){throw s}};this.photoMaker=async(t,e)=>{let{onPartialImages:n,retry:r,customTaskUUID:a,numberResults:u,includeGenerationTime:c,includePayload:s,...d}=t,p=r||this._globalMaxRetries,g,i=[],m=0,l=Date.now();try{return await x(async()=>{await this.ensureConnection(),m++;let y=this._globalImages.filter(U=>i.includes(U.taskUUID)),I=a||R();i.push(I);let f=u-y.length,k={...d,...d.seed?{seed:d.seed}:{seed:Ae()},...e??{},taskUUID:I,taskType:"photoMaker",numberResults:u};this.send({...k,numberResults:f}),g=this.listenToImages({onPartialImages:n,taskUUID:I,groupKey:"REQUEST_IMAGES",requestPayload:s?k:void 0,startTime:c?l:void 0});let _=await this.getSimilarImages({taskUUID:i,numberResults:u,lis:g});return g.destroy(),_},{maxRetries:p,callback:()=>{g?.destroy()}})}catch(y){if(y.taskUUID)throw y;if(m>=p)return this.handleIncompleteImages({taskUUIDs:i,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,isMultiple:n})=>{let{retry:r,customTaskUUID:a,includePayload:u,includeGenerationTime:c,...s}=t,d=r||this._globalMaxRetries,p,g=Date.now();try{return await x(async()=>{await this.ensureConnection();let i=a||R(),m={...s,taskUUID:i};this.send(m),p=this.globalListener({taskUUID:i});let l=await S(({resolve:y,reject:I})=>{let f=n?this.getMultipleMessages({taskUUID:i}):this.getSingleMessage({taskUUID:i});if(f){if(f?.error)return I(f),!0;if(f)return delete this._globalMessages[i],y(f),!0}},{debugKey:e,timeoutDuration:this._timeoutDuration});return this.insertAdditionalResponse({response:l,payload:u?m:void 0,startTime:c?g:void 0}),p.destroy(),l},{maxRetries:d,callback:()=>{p?.destroy()}})}catch(i){throw i}};this.getSingleMessage=({taskUUID:t})=>{let e=this._globalMessages[t]?.[0],n=this._globalMessages[t];return!e&&!n?null:n?.error?n:e};this.getMultipleMessages=({taskUUID:t})=>{let e=this._globalMessages[t]?.[0],n=this._globalMessages[t];return!e&&!n?null:n};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=a}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 s=Array.isArray(c?.data)?c.data:[c.data],d=c?.[0]?.errors?c?.[0]?.errors:Array.isArray(c?.errors)?c.errors:[c.errors],p=s.filter(i=>(i?.taskUUID||i?.taskType)===n);if(d.filter(i=>(i?.taskUUID||i?.taskType)===n).length){t({error:{...d[0]??{}}});return}if(p.length){t({[n]:s});return}},a={key:n||R(),listener:r,groupKey:e};return this._listeners.push(a),{destroy:()=>{this._listeners=we(this._listeners,a)}}}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){De(this._listeners,t)}listenToImages({onPartialImages:t,taskUUID:e,groupKey:n,requestPayload:r,startTime:a}){return this.addListener({taskUUID:e,lis:u=>{let c=u?.[e]?.filter(s=>s.taskUUID===e);u.error?(t?.(c,u?.error&&u),this._globalError=u):(c=c.map(s=>(this.insertAdditionalResponse({response:s,payload:r||void 0,startTime:a||void 0}),{...s})),t?.(c,u?.error&&u),this._sdkType==="CLIENT"?this._globalImages=[...this._globalImages,...(u?.[e]??[]).map(s=>(this.insertAdditionalResponse({response:s,payload:r||void 0,startTime:a||void 0}),{...s}))]:this._globalImages=[...this._globalImages,...c])},groupKey:n})}listenToUpload({onUploadStream:t,taskUUID:e}){return this.addListener({taskUUID:e,lis:n=>{let r=n?.error,a=n?.[e]?.[0],u=a?.taskUUID===e?a:null;(u||r)&&t?.(u||void 0,r)}})}globalListener({taskUUID:t}){return this.addListener({taskUUID:t,lis:e=>{if(e.error){this._globalMessages[t]=e;return}let n=ve({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:a,negativePrompt:u,seedImage:c,maskImage:s,strength:d,height:p,width:g,model:i,steps:m,scheduler:l,seed:y,CFGScale:I,clipSkip:f,usePromptWeighting:k,promptWeighting:_,numberResults:U=1,onPartialImages:b,includeCost:N,customTaskUUID:H,retry:j,refiner:v,maskMargin:Fe,outputQuality:h,controlNet:Q,lora:ae,embeddings:oe,ipAdapters:ie,providerSettings:le,outpaint:ue,acceleratorOptions:ce,advancedFeatures:de,referenceImages:pe,includeGenerationTime:Ge,includePayload:Be,...qe},Ve){let C,ge,L=[],me=0,ye=j||this._globalMaxRetries;try{await this.ensureConnection();let w=null,J=null,$=[];if(c){let D=await this.uploadImage(c);if(!D)return[];w=D.imageUUID}if(s){let D=await this.uploadImage(s);if(!D)return[];J=D.imageUUID}if(Q?.length)for(let D=0;D<Q.length;D++){let E=Q[D],{endStep:z,startStep:P,weight:Y,guideImage:K,controlMode:je,startStepPercentage:Qe,endStepPercentage:Je,model:$e}=E,ze=K?await this.uploadImage(K):null;$.push({guideImage:ze?.imageUUID,model:$e,endStep:z,startStep:P,weight:Y,...T({key:"startStepPercentage",value:Qe}),...T({key:"endStepPercentage",value:Je}),controlMode:je||"controlnet"})}ge={taskType:"imageInference",model:i,positivePrompt:a,...u?{negativePrompt:u}:{},...p?{height:p}:{},...g?{width:g}:{},numberResults:U,...t?{outputType:t}:{},...e?{outputFormat:e}:{},...n?{uploadEndpoint:n}:{},...T({key:"checkNSFW",value:r}),...T({key:"strength",value:d}),...T({key:"CFGScale",value:I}),...T({key:"clipSkip",value:f}),...T({key:"maskMargin",value:Fe}),...T({key:"usePromptWeighting",value:k}),...T({key:"steps",value:m}),..._?{promptWeighting:_}:{},...y?{seed:y}:{},...l?{scheduler:l}:{},...v?{refiner:v}:{},...ue?{outpaint:ue}:{},...T({key:"includeCost",value:N}),...w?{seedImage:w}:{},...J?{maskImage:J}:{},...h?{outputQuality:h}:{},...$.length?{controlNet:$}:{},...ae?.length?{lora:ae}:{},...oe?.length?{embeddings:oe}:{},...ie?.length?{ipAdapters:ie}:{},...le?{providerSettings:le}:{},...ce?{acceleratorOptions:ce}:{},...de?{advancedFeatures:de}:{},...pe?.length?{referenceImages:pe}:{},...qe,...Ve??{}};let He=Date.now();return await x(async()=>{me++,C?.destroy();let D=this._globalImages.filter(K=>L.includes(K.taskUUID)),E=H||R();L.push(E);let z=U-D.length,P={...ge,taskUUID:E,numberResults:z};this.send(P),C=this.listenToImages({onPartialImages:b,taskUUID:E,groupKey:"REQUEST_IMAGES",requestPayload:Be?P:void 0,startTime:Ge?He:void 0});let Y=await this.getSimilarImages({taskUUID:L,numberResults:U,lis:C});return C.destroy(),Y},{maxRetries:ye,callback:()=>{C?.destroy()}})}catch(w){if(me>=ye)return this.handleIncompleteImages({taskUUIDs:L,error:w});throw w}}async ensureConnection(){if(this.connected()||this._url===ne.TEST)return;let e=2e3,n=200;try{if(this.isInvalidAPIKey())throw this._connectionError;return new Promise((r,a)=>{let u=0,c=30,s=R(),d,p,g=()=>{this.ensureConnectionUUID=null,clearInterval(d),clearInterval(p)};this._sdkType==="SERVER"&&(d=setInterval(async()=>{try{let i=this.connected(),m=!1;(!this.ensureConnectionUUID||s===this.ensureConnectionUUID)&&(this.ensureConnectionUUID||(this.ensureConnectionUUID=s),m=!0);let l=u%10===0&&m;i?(g(),r(!0)):u>=c?(g(),a(new Error("Retry timed out"))):(l&&this.connect(),u++)}catch(i){g(),a(i)}},e)),p=setInterval(async()=>{if(this.connected()){g(),r(!0);return}if(this.isInvalidAPIKey()){g(),a(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 S(({resolve:a,reject:u,intervalId:c})=>{let s=Array.isArray(t)?t:[t],d=this._globalImages.filter(p=>s.includes(p.taskUUID));if(this._globalError){let p=this._globalError;return this._globalError=void 0,clearInterval(c),u?.(p),!0}else if(d.length>=e)return clearInterval(c),this._globalImages=this._globalImages.filter(p=>!s.includes(p.taskUUID)),a([...d].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 Ke=he(Pe(),1),O=class extends A{constructor(t){let{shouldReconnect:e,...n}=t;super(n),this._ws=new Ke.default(this._url),this.connect()}};var We=he(require("ws"),1);var M=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 We.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 a=JSON.parse(r);this._listeners.forEach(u=>{u.listener(a)})}))}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 re;typeof window>"u"?re=M:re=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
|