1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,115437,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.ModelPricingClientError=void 0,i.ModelPricingClientError=class extends Error{constructor(e,t,i){super(`ModelPricingClientError: [${t}] ${e} failed: ${(null==i?void 0:i.reason)||""} - ${(null==i?void 0:i.message)||""}`),this.name=this.constructor.name,this.status=t,this.details=i}}},623354,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.ModelPricingServerError=void 0,i.ModelPricingServerError=class extends Error{constructor(e){super(`ModelPricingServerError: ${e}`),this.name=this.constructor.name}}},47426,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.ModelPricingUnknownError=void 0,i.ModelPricingUnknownError=class extends Error{constructor(e){super(`ModelPricingUnknownError: ${e}`),this.name=this.constructor.name}}},776571,(e,t,i)=>{"use strict";var a=e.e&&e.e.__awaiter||function(e,t,i,a){return new(i||(i=Promise))(function(r,o){function n(e){try{d(a.next(e))}catch(e){o(e)}}function s(e){try{d(a.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):((t=e.value)instanceof i?t:new i(function(e){e(t)})).then(n,s)}d((a=a.apply(e,t||[])).next())})};Object.defineProperty(i,"__esModule",{value:!0}),i.ModelPricingClient=void 0;let r=e.r(115437),o=e.r(623354),n=e.r(47426);i.ModelPricingClient=class{constructor(e){var t;this.pricing=null,this.userDiscounts=null,this.refreshTimer=null,this.userDiscountsRefreshTimer=null,this.defaultHeaders={Accept:"application/json"},this.options=e,this.options.timeoutMs=null!=(t=e.timeoutMs)?t:5e3,this.modelPricingApiBaseUrl=e.baseUrl.replace(/\/+$/,"")}init(){return a(this,void 0,void 0,function*(){var e;yield this.loadAll();let t=null!=(e=this.options.refreshIntervalMs)?e:6e5;t>0&&null==this.refreshTimer&&(this.refreshTimer=setInterval(()=>{this.loadPricing().catch(()=>{})},t),"function"==typeof this.refreshTimer.unref&&this.refreshTimer.unref()),null==this.userDiscountsRefreshTimer&&(this.userDiscountsRefreshTimer=setInterval(()=>{this.loadUserDiscounts().catch(()=>{})},3e4),"function"==typeof this.userDiscountsRefreshTimer.unref&&this.userDiscountsRefreshTimer.unref())})}stop(){null!=this.refreshTimer&&(clearInterval(this.refreshTimer),this.refreshTimer=null),null!=this.userDiscountsRefreshTimer&&(clearInterval(this.userDiscountsRefreshTimer),this.userDiscountsRefreshTimer=null)}getModelPricing(e={}){var t,i,a,r,o;if(null==this.pricing)throw Error("ModelPricingClient: pricing not loaded. Call and await init() before getModelPricing().");let n=this.applyFilters(this.pricing,e),s=(null==(t=e.countryCode)?void 0:t.trim())||void 0,d=(null==(i=e.touchpoint)?void 0:i.trim())||void 0,l=(null==(a=e.platform)?void 0:a.trim())||void 0,u=(null==(r=e.packageId)?void 0:r.trim())||void 0,m=this.applyCreditOverrides(n,s,d,l,u);return this.applyUserDiscounts(m,(null==(o=e.userId)?void 0:o.trim())||void 0)}loadAll(){return a(this,void 0,void 0,function*(){yield Promise.all([this.loadPricing(),this.loadUserDiscounts()])})}loadPricing(){return a(this,void 0,void 0,function*(){try{let e=new URL(`${this.modelPricingApiBaseUrl}/pricing-management/model-pricing`);this.options.includePostCharging&&e.searchParams.set("includePostCharging","true");let t=yield this._fetch(e,{method:"GET",signal:AbortSignal.timeout(this.options.timeoutMs)}),i=yield this.toSuccessResponse(t,"getModelPricing");this.pricing=i.response}catch(e){throw this.wrapError("getModelPricing",e)}})}loadUserDiscounts(){return a(this,void 0,void 0,function*(){try{let e=`${this.modelPricingApiBaseUrl}/pricing-management/user-discounts/public`,t=yield this._fetch(e,{method:"GET",signal:AbortSignal.timeout(this.options.timeoutMs)}),i=yield this.toSuccessResponse(t,"getUserDiscounts");this.userDiscounts=this.indexUserDiscounts(i.response)}catch(e){console.error(`ModelPricingClient: failed to load user discounts - ${e.message}`),null==this.userDiscounts&&(this.userDiscounts=new Map)}})}indexUserDiscounts(e){let t=new Map;for(let i of e){let e=t.get(i.userId);null==e&&(e=new Map,t.set(i.userId,e));let a=e.get(i.modelId);null==a?e.set(i.modelId,[i]):a.push(i)}return t}applyUserDiscounts(e,t){var i;if(null==t)return e;let a=null==(i=this.userDiscounts)?void 0:i.get(t);if(null==a||0===a.size)return e;let r=Date.now();return e.map(e=>{let t=a.get(e.metadata.modelId);if(null==t||0===t.length)return e;let i=0;for(let e of t){let t=Date.parse(e.expirationDate);(Number.isNaN(t)||t>=r)&&e.discountPercent>i&&(i=e.discountPercent)}if(i<=0)return e;let o=Math.min(i,100),n=Math.round(e.credits*(1-o/100));return Object.assign(Object.assign({},e),{credits:n,originalCredits:e.credits})})}applyFilters(e,t){return e.filter(e=>(null==t.vendor||e.metadata.vendor===t.vendor)&&(null==t.modelId||e.metadata.modelId===t.modelId)&&(null==t.operationId||e.operationId===t.operationId)&&(null==t.useCase||e.metadata.useCase===t.useCase)&&(null==t.quality||e.metadata.quality===t.quality)&&(null==t.audio||e.metadata.audio===t.audio)&&!0)}applyCreditOverrides(e,t,i,a,r){return null==t&&null==i&&null==a&&null==r?e:(console.log(`Applying credit overrides for countryCode: ${t}, touchpoint: ${i}, platform: ${a} and packageId: ${r}`),e.map(e=>{var o,n,s;let d;if(!(null==(o=e.creditOverrides)?void 0:o.length))return e;for(let o of e.creditOverrides){let e=0===o.countries.length||null!=t&&o.countries.some(e=>e.toLowerCase()===t.toLowerCase()),l=0===o.touchpoints.length||null!=i&&o.touchpoints.some(e=>e.toLowerCase()===i.toLowerCase()),u=null!=(n=o.platforms)?n:[],m=0===u.length||null!=a&&u.some(e=>e.toLowerCase()===a.toLowerCase()),p=null!=(s=o.packageIds)?s:[],c=0===p.length||null!=r&&p.some(e=>e.toLowerCase()===r.toLowerCase());e&&l&&m&&c&&(d=o.credits)}return null==d?e:Object.assign(Object.assign({},e),{credits:d})}))}toSuccessResponse(e,t){return a(this,void 0,void 0,function*(){return yield this.throwIfError(e,t),yield e.json()})}throwIfError(e,t){return a(this,void 0,void 0,function*(){if(e.status>=500){let i;try{let t=yield e.json();i=t.message||t.reason||"Unknown error"}catch(e){i="Non json response was returned from server"}throw new o.ModelPricingServerError(`[${e.status}] - ${t} failed with message: ${i}.`)}if(!e.ok)throw new r.ModelPricingClientError(t,e.status,(yield e.json()))})}wrapError(e,t){return t instanceof r.ModelPricingClientError||t instanceof o.ModelPricingServerError||t instanceof DOMException?t:new n.ModelPricingUnknownError(`modelPricing.${e} failed - ${t.message}`)}buildRequestHeaders(e){let t=new Headers(e);for(let[e,i]of new Headers(Object.assign(Object.assign({}
1,this.defaultHeaders),this.options.headers)).entries())t.has(e)||t.set(e,i);return t}_fetch(e,t){return a(this,void 0,void 0,function*(){let i=this.buildRequestHeaders(null==t?void 0:t.headers),a=Object.assign(Object.assign({},t),{headers:i});return this.options.fetch?this.options.fetch(e,Object.assign(Object.assign({},a),{headers:Object.fromEntries(i.entries())})):fetch(e,a)})}}},729726,(e,t,i)=>{"use strict";var a,r,o,n;Object.defineProperty(i,"__esModule",{value:!0}),i.PricingUnit=i.UseCase=void 0,(o=a||(i.UseCase=a={})).TextToImage="text-to-image",o.ImageToImage="image-to-image",o.TextToVideo="text-to-video",o.ImageToVideo="image-to-video",o.VideoToVideo="video-to-video",o.VideoToImage="video-to-image",o.TextToSpeech="text-to-speech",o.TextToAudio="text-to-audio",o.SpeechToText="speech-to-text",o.ImageToAudio="image-to-audio",o.AudioToAudio="audio-to-audio",o.SpeechToSpeech="speech-to-speech",o.ChatCompletions="chat-completions",o.AudioToVideo="audio-to-video",o.VideoToAudio="video-to-audio",o.Request="request",(n=r||(i.PricingUnit=r={})).Generation="generation",n.Megapixel="megapixel",n.Second="second",n.ThirtySecond="30_second",n.Minute="minute",n.ThousandCharacters="1k_characters",n.InputTokens="input_tokens",n.InputTextTokens="input_text_tokens",n.InputCachedTokens="input_cached_tokens",n.CacheWrite5mTokens="cache_write_5m_tokens",n.CacheWrite1hTokens="cache_write_1h_tokens",n.InputImageTokens="input_image_tokens",n.OutputTokens="output_tokens",n.OutputImageTokens="output_image_tokens",n.OutputAudioTokens="output_audio_tokens",n.OutputTextTokens="output_text_tokens",n.InputMegapixel="input_megapixel",n.OutputMegapixel="output_megapixel",n.OutputMegapixelAdditional="output_megapixel_additional",n.ThousandOutputVideoTokens="1k_output_video_tokens"},468389,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.PricingUnit=i.UseCase=i.ModelPricingUnknownError=i.ModelPricingServerError=i.ModelPricingClientError=i.ModelPricingClient=void 0;let a=e.r(776571);Object.defineProperty(i,"ModelPricingClient",{enumerable:!0,get:function(){return a.ModelPricingClient}});let r=e.r(115437);Object.defineProperty(i,"ModelPricingClientError",{enumerable:!0,get:function(){return r.ModelPricingClientError}});let o=e.r(623354);Object.defineProperty(i,"ModelPricingServerError",{enumerable:!0,get:function(){return o.ModelPricingServerError}});let n=e.r(47426);Object.defineProperty(i,"ModelPricingUnknownError",{enumerable:!0,get:function(){return n.ModelPricingUnknownError}});let s=e.r(729726);Object.defineProperty(i,"UseCase",{enumerable:!0,get:function(){return s.UseCase}}),Object.defineProperty(i,"PricingUnit",{enumerable:!0,get:function(){return s.PricingUnit}})},715844,862266,e=>{"use strict";var t,i,a,r=(...e)=>{console.error(...e)},o=(...e)=>{console.debug(...e)},n=((t=n||{}).ACCEPTED="ACCEPTED",t.FAILED="FAILED",t.COMPLETED="COMPLETED",t.IN_PROGRESS="IN_PROGRESS",t),s=((i=s||{}).ASYNC="ASYNC",i.SYNC="SYNC",i.STREAM="STREAM",i.SOCKET="SOCKET",i),d=((a=d||{}).COMPLETED="task.completed",a.FAILED="task.failed",a.PARTIAL_RESULT="task.partial-result",a.METRICS="task.metrics",a),l="task.stream",u=e=>(e||"").replace(/-/g,"_").toLowerCase(),m=e=>`workflows:${u(e)}:all`,p="unknown_error",c="Unknown error",g=e=>e&&"object"==typeof e?e:void 0,f=e=>"string"==typeof e&&e.length>0?e:void 0,h=class e extends Error{constructor(e){super(e.message),this.name=this.constructor.name,this.reason=e.reason,this.httpStatusCode=e.httpStatusCode}static fromBody(t,i){let a,r=g(t);return new e({reason:f(r?.reason)||i.reason,message:f(r?.message)||i.message,httpStatusCode:("number"==typeof(a=r?.statusCode)&&Number.isFinite(a)?a:void 0)??i.httpStatusCode})}static async fromResponse(t,i){let a;try{a=await t.json()}catch{a=void 0}let r=g(a);return new e({reason:f(r?.reason)||i?.reason||p,message:f(r?.message)||i?.message||(r?c:"Non json response was returned from server"),httpStatusCode:t.status})}static fromUnknown(t){return new e({reason:p,message:(t instanceof Error?t.message:f(t))||c})}},v=class{constructor(e,t,i){this.onProgressFn=e,this.onPartialResultFn=t,this.onEventFn=i}async onUpdate(e){if(!e.updated||(await this.deliverEvents(e),"IN_PROGRESS"!==e.status))return;let t=new Date(e.updated);t?.getTime()!==this.updated?.getTime()&&(this.updated=t,await this.onPartialResultFn?.(e),e.progress&&await this.onProgressFn?.(e.progress))}async deliverEvents(e){if(!e.events?.length||!this.onEventFn)return;let t=0;if(this._lastEventId){let i=e.events.findIndex(e=>e.id===this._lastEventId);-1!==i&&(t=i+1)}let i=e.events.slice(t);for(let e of i)await this.onEventFn(e);i.length>0&&(this._lastEventId=i[i.length-1].id)}},y=class{constructor(e){this.config=e,this.ownsSocket=!1,this.channelRefs=new WeakMap}async *subscribe(e){let t,i,a;if(!this.config.socket&&!this.config.socketConnection)throw new h({httpStatusCode:400,reason:"invalid_state",message:"subscribe() requires either `socket` or `socketConnection` on the client."});if(e.signal?.aborted)throw new DOMException("Aborted","AbortError");let r=e.taskId?(i=e.name,a=e.taskId,`workflows:${u(i)}:${a}`):m(e.name);this.assertValidChannel(r);let o=await this.resolveSocket();if(!o)return;if(e.signal?.aborted)throw new DOMException("Aborted","AbortError");let n=u(e.name),s=[],d=e=>{s.push(e);let i=t;t=void 0,i?.()},p=t=>{t&&(e.taskId?t.taskId===e.taskId:t.workflow===n)&&d({msg:t})};o.on(l,p);let c=e=>d({error:new h({httpStatusCode:503,reason:"socket_connection_lost",message:`Lost the socket connection (${e}); the event stream ended.`})}),g=this.onSessionLost(o,()=>c("the session could not be recovered on reconnect")),f=this.onConnectAbandoned(o,e=>c(`socket.io stopped reconnecting after "${e instanceof Error?e.message:String(e)}"`)),v=this.onDisconnected(o,e=>c(`"${e}"`)),y=()=>d({error:new DOMException("Aborted","AbortError")});
1e.signal?.addEventListener("abort",y),this.joinChannel(o,r);try{for(;;){for(;s.length;){let t=s.shift();if("error"in t)throw t.error;if(yield t.msg,e.taskId&&("task.completed"===t.msg.type||"task.failed"===t.msg.type))return}await new Promise(e=>{t=e})}}finally{e.signal?.removeEventListener("abort",y),this.leaveChannel(o,r),o.off(l,p),g(),f(),v()}}connect(){return this.resolveSocket()}async disconnect(){if(!this.ownsSocket||!this.socketPromise)return;let e=await this.socketPromise.catch(()=>void 0);e?.disconnect(),this.socketPromise=void 0,this.ownsSocket=!1}async runTask(e,t,i,a){let r=i?.abortSignal;await this.ensureSocketReady(e,r);let{onProgress:o,onPartialResult:n,onEvent:s}=i??{},d=new AbortController,l=()=>d.abort();r?.addEventListener("abort",l);let u=this.subscribe({name:e,signal:d.signal})[Symbol.asyncIterator](),m=u.next();m.catch(()=>{});try{let e=await t();for(let t=m;;t=u.next()){let{value:i,done:r}=await t;if(r)break;if(i.taskId===e)switch(i.type){case"task.completed":return Promise.resolve(a?.(e)).catch(()=>void 0),{result:i.payload?.result,usage:i.payload?.usage,status:"COMPLETED"};case"task.failed":throw Promise.resolve(a?.(e)).catch(()=>void 0),this.failureError(i.payload?.result??i.payload);case"task.metrics":await o?.(i.payload);break;case"task.partial-result":await n?.({status:"IN_PROGRESS",result:i.payload});break;default:i.type.startsWith("event.")&&await s?.({...i.payload,type:i.type.replace(/^event\./,"")})}}throw new h({httpStatusCode:500,reason:"socket_stream_ended",message:"Socket stream ended before the task completed."})}finally{r?.removeEventListener("abort",l),d.abort(),await u.return?.()}}async ensureSocketReady(e,t){if(t?.aborted)throw new DOMException("Aborted","AbortError");let i=m(e);if(this.assertValidChannel(i),!await this.resolveSocket())throw new h({httpStatusCode:400,reason:"invalid_state",message:"ExecutionMode.SOCKET requires either `socket` or `socketConnection` on the client."});if(t?.aborted)throw new DOMException("Aborted","AbortError")}onSessionLost(e,t){let i=()=>{e.recovered||t()};return e.on("connect",i),()=>e.off("connect",i)}onConnectAbandoned(e,t){let i=i=>{!1===e.active&&t(i)};return e.on("connect_error",i),()=>e.off("connect_error",i)}onDisconnected(e,t){let i=i=>{!1===e.active&&t(i)};return e.on("disconnect",i),()=>e.off("disconnect",i)}resolveSocket(){if(this.socketPromise)return this.socketPromise;let{socket:e,socketConnection:t}=this.config;if(!e&&!t)return Promise.resolve(void 0);let i=(async()=>{let i=e??await this.createSocket(t);this.ownsSocket=!e;try{await this.whenConnected(i)}catch(t){throw e||(i.disconnect(),this.ownsSocket=!1),t}return i})();return i.catch(()=>{this.socketPromise===i&&(this.socketPromise=void 0)}),this.socketPromise=i,i}whenConnected(e){return e.connected?Promise.resolve():new Promise((t,i)=>{let a=()=>{e.off("connect",r),e.off("connect_error",o)},r=()=>{a(),t()},o=e=>{a(),i(e instanceof Error?e:Error(`socket connection failed: ${String(e)}`))};e.on("connect",r),e.on("connect_error",o),e.connect()})}async createSocket(t){let i;try{({io:i}=await e.A(618609))}catch{throw new h({httpStatusCode:400,reason:"invalid_state",message:'socketConnection requires the optional peer dependency "socket.io-client" to be installed.'})}return i(t.url,{path:t.path??"/socket-gateway",transports:t.transports??["websocket"],auth:this.buildAuth(t)})}buildAuth(e){let{getToken:t}=e;return e=>{Promise.resolve().then(t).then(t=>e({token:t.startsWith("Bearer ")?t:`Bearer ${t}`})).catch(t=>{r("workflows.socket - socketConnection.getToken failed; the handshake will be refused",t),e({token:""})})}}assertValidChannel(e){if(!/^workflows:[a-zA-Z0-9_/-]+:[a-zA-Z0-9_/-]+$/.test(e))throw new h({httpStatusCode:400,reason:"invalid_channel",message:`Invalid channel "${e}" \u2014 name and taskId may only contain letters, digits, "_", "-" or "/".`})}joinChannel(e,t){let i=this.channelRefs.get(e);i||(i=new Map,this.channelRefs.set(e,i)),i.set(t,(i.get(t)??0)+1),e.emit("subscribe",{channels:[t]})}leaveChannel(e,t){let i=this.channelRefs.get(e);if(!i)return;let a=(i.get(t)??0)-1;a<=0?(i.delete(t),e.emit("unsubscribe",{channels:[t]})):i.set(t,a)}failureError(e){return h.fromBody(e,{httpStatusCode:500,reason:"workflow_failed",message:"Workflow failed"})}};async function*w(e){for await(let t of b(e)){let e=t.split("\n"),i={};for(let t of e)if(t.startsWith("data:")){let e=t.replace(/^data:\s*/,"");if("[DONE]"===e)return;try{i.data=JSON.parse(e)}catch(t){o(`Failed to parse data JSON from OpenAI event stream: - ${e}, err=${JSON.stringify(t)}`)}}yield i}}async function*b(e){let t=e.getReader(),i=new Uint8Array,a=new TextDecoder("utf-8");try{for(;;){let e,{value:r,done:o}=await t.read();if(o)break;let n=new Uint8Array(i.length+r.length);for(n.set(i),n.set(r,i.length),i=n;-1!==(e=function(e){for(let t=0;t<e.length-1;t++){if(10===e[t]&&10===e[t+1]||13===e[t]&&13===e[t+1])return t+2;if(13===e[t]&&10===e[t+1]&&t+3<e.length&&13===e[t+2]&&10===e[t+3])return t+4}return -1}(i));){let t=i.subarray(0,e);yield a.decode(t),i=i.subarray(e)}}i.length>0&&(yield a.decode(i))}finally{t.releaseLock()}}var x=e=>new Promise(t=>setTimeout(t,e)),I=class{constructor(e){this.defaultHeaders={Accept:"application/json","Content-Type":"application/json"},this.terminalStatuses=["COMPLETED","FAILED"],this.clientOptions=e||{},this.clientOptions.baseUrl=this.clientOptions.baseUrl||"https://api.picsart.com/",this.clientOptions.baseUrl.endsWith("/")||(this.clientOptions.baseUrl+="/"),this.clientOptions.apiKey&&(this.clientOptions.apiKey=this.clientOptions.apiKey.replace("Bearer ","")),this.clientOptions.identityToken&&(this.clientOptions.identityToken=this.clientOptions.identityToken.replace("Bearer ","")),this.workflowsApiBaseUrl=`${this.clientOptions.baseUrl}
1workflows`,this.sockets=new y({socket:this.clientOptions.socket,socketConnection:this.clientOptions.socketConnection&&{...this.clientOptions.socketConnection,url:this.clientOptions.socketConnection.url||this.clientOptions.baseUrl}}),(this.clientOptions.socket||this.clientOptions.socketConnection)&&Promise.resolve().then(()=>this.sockets.connect()).catch(()=>void 0)}async run(e,t,i){try{let a=(await this.getApiSettings(e,i?.remoteSettingName)).executionMode||i?.mode||"ASYNC";if("SYNC"===a)return this.executeTaskSync(e,t,i);if("STREAM"===a)return this.executeTaskStream(e,t,i);if("SOCKET"===a){let a=async()=>{try{let a=await this.postTask(e,t,i);return await i?.onAccepted?.(a),a}catch(t){throw this.wrapError(e,t)}};return this.sockets.runTask(e,a,i,e=>this.disableNotification(e,{headers:i?.headers}))}let r=await this.postTask(e,t,i);return await i?.onAccepted?.(r),this.runPolling(e,r,i)}catch(t){throw this.wrapError(e,t)}}async submit(e,t,i){try{return await this.postTask(e,t,i)}catch(t){throw this.wrapError(e,t)}}async options(e,t={},i){try{let a=await this.getApiSettings(e,i?.remoteSettingName),r=await this._fetch(`${this.workflowsApiBaseUrl}/${e}/options`,{method:"POST",headers:this.requestHeaders(a.configId),body:JSON.stringify({params:t})});return(await this.toSuccessResponse(r)).response}catch(t){throw this.wrapError(e,t)}}async postTask(e,t,i){let a=await this.getApiSettings(e,i?.remoteSettingName),r=await this._fetch(`${this.workflowsApiBaseUrl}/${e}/submit`,{method:"POST",headers:this.requestHeaders(a.configId,i?.headers),body:JSON.stringify({params:t,notification:i?.notificationConfig})});return(await this.toSuccessResponse(r)).response.id}async runPolling(e,t,i){let a,r,n=i?.pollingInterval||300,s=i?.retriesCount||1e3,d=0,l=new v(i?.onProgress,i?.onPartialResult,i?.onEvent);do{if(i?.abortSignal?.aborted)throw new DOMException("Aborted","AbortError");await x(this.pollingDelay(n,d)),s--;try{a=await this.getResult(e,t),d=0,r=void 0}catch(i){if(!this.isConnectionError(i))throw i;if(++d>10)throw this.connectionError(i);r=i,o(`workflows.runPolling - poll ${d}/10 of ${e}/${t} did not reach the server, retrying`,i);continue}await l.onUpdate(a.response)}while(s>0&&!this.isTerminal(a))if(r)throw this.connectionError(r);if(!this.isTerminal(a)||!a?.response.result)throw new h({httpStatusCode:408,reason:"client_timeout",message:"Polling timeout reached. Consider increasing polling interval or retries count from execution options."});return a.response}connectionError(e){return new h({reason:"connection_error",message:e?.message||"The request did not reach the server"})}isTerminal(e){return!!e&&this.terminalStatuses.includes(e.response.status)}isConnectionError(e){let t=e?.name;return"AbortError"!==t&&"TimeoutError"!==t&&(!(e instanceof h)||void 0===e.httpStatusCode)}pollingDelay(e,t){return 0===t?e:Math.min(e*2**t,Math.max(e,5e3))}async result(e,t){try{return(await this.getResult(e,t)).response}catch(t){throw this.wrapError(e,t)}}subscribe(e){if(!e.name)throw new h({httpStatusCode:400,reason:"INVALID_ARGUMENTS",message:"subscribe() requires `name`."});return this.sockets.subscribe(e)}async disconnect(){return this.sockets.disconnect()}async disableNotification(e,t){try{let i=`${this.clientOptions.baseUrl}workflow-notifications/${e}/seen-status`,a=await this._fetch(i,{method:"PATCH",headers:t?.headers});await this.throwIfError(a)}catch(e){throw this.wrapError("disableNotification",e)}}async executeTaskSync(e,t,i){let a=await this.getApiSettings(e,i?.remoteSettingName),r=await this._fetch(`${this.workflowsApiBaseUrl}/${e}/execute`,{signal:i?.abortSignal,method:"POST",headers:this.requestHeaders(a.configId,i?.headers),body:JSON.stringify({params:t})});return(await this.toSuccessResponse(r)).response}async getResult(e,t){let i=await this._fetch(`${this.workflowsApiBaseUrl}/${e}/${t}/result`,{method:"GET"});return this.toSuccessResponse(i)}async executeTaskStream(e,t,i){let a=await this.getApiSettings(e,i?.remoteSettingName),r=i?.onEvent;if(!r)throw new h({httpStatusCode:400,reason:"INVALID_ARGUMENTS",message:"onEvent is required for streaming"});let o=this.requestHeaders(a.configId,i?.headers);o.set("Accept","text/event-stream");let n=await this._fetch(`${this.workflowsApiBaseUrl}/${e}/stream`,{signal:i?.abortSignal,method:"POST",headers:o,body:JSON.stringify({params:t})});if(await this.throwIfError(n),!n.body)throw new h({httpStatusCode:500,reason:"invalid_response",message:"No response body"});let s={};
1for await(let e of w(n.body)){if(i?.abortSignal?.aborted)break;let t=e.data;if(t.type.startsWith("event.")&&await r({...t,type:t.type.replace(/^event\.\s*/,"")}),"task.partial-result"===t.type&&await i.onPartialResult?.({status:"IN_PROGRESS",result:t.result}),"task.failed"===t.type)throw h.fromBody(t.result,{httpStatusCode:500,reason:"workflow_failed",message:"Workflow failed"});"task.completed"===t.type&&(s=t)}return{result:s.result,usage:s.usage,status:"COMPLETED"}}async executionsHistory(e,t=0,i=10,a=!1){try{let r=`${this.clientOptions.baseUrl}workflows-history${a?"/grouped":""}?name=${e}&limit=${i}&offset=${t}`,o=await this._fetch(r);return this.toSuccessResponse(o)}catch(e){throw this.wrapError("requestHistory",e)}}async toSuccessResponse(e){await this.throwIfError(e);let t=await e.text();try{return JSON.parse(t)}catch{throw new h({httpStatusCode:e.status,reason:"invalid_response",message:"Non json response was returned from server"})}}async throwIfError(e){if(!e.ok)throw await h.fromResponse(e,{reason:"request_failed"})}async getApiSettings(e,t){if(!this.clientOptions.getRemoteSettings)return{};let i=t||`${e.replace(/-/g,"_").toLowerCase()}_api`;try{let e=await this.clientOptions.getRemoteSettings(i,"miniapp");return{configId:e?.configId||"",executionMode:e?.executionMode}}catch(e){return r(`workflows.getConfigId - failed when fetching remoteSettings: settingName=${i}`,e),{}}}wrapError(e,t){return t instanceof h||t instanceof DOMException?t:(r(`WorkflowsError - ${e} failed`,t),h.fromUnknown(t))}requestHeaders(e,t){let i=new Headers(t);return i.has("x-config-id")||i.set("x-config-id",e||""),i}buildRequestHeaders(e){let t=new Headers(e),i=new Headers(this.defaultHeaders);for(let[e,t]of new Headers(this.clientOptions.headers).entries())i.set(e,t);for(let[e,a]of i.entries())t.has(e)||t.set(e,a);return this.clientOptions.apiKey&&t.set("Authorization",`Bearer ${this.clientOptions.apiKey}`),this.clientOptions.identityToken&&t.set("x-app-authorization",`Bearer ${this.clientOptions.identityToken}`),t}async _fetch(e,t){let i=this.buildRequestHeaders(t?.headers),a={...t,headers:i};if(this.clientOptions.fetch)return this.clientOptions.fetch(e,{...a,headers:Object.fromEntries(i.entries())});if(!i.has("Authorization")&&!i.has("x-app-authorization"))throw new h({httpStatusCode:400,reason:"invalid_state",message:"apiKey is not provided"});return fetch(e,a)}};e.s(["ExecutionMode",0,s,"WorkflowsClient",0,I,"WorkflowsError",0,h],862266);var k=e.i(468389),_={},T=function(e,t,i,a,r){var o=new Worker(_[t]||(_[t]=URL.createObjectURL(new Blob([e+';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'],{type:"text/javascript"}))));return o.onmessage=function(e){var t=e.data,i=t.$e$;if(i){var a=Error(i[0]);a.code=i[1],a.stack=i[2],r(a,null)}else r(null,t)},o.postMessage(i,a),o},S=Uint8Array,A=Uint16Array,P=Int32Array,R=new S([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),F=new S([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),C=new S([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),U=function(e,t){for(var i=new A(31),a=0;a<31;++a)i[a]=t+=1<<e[a-1];for(var r=new P(i[30]),a=1;a<30;++a)for(var o=i[a];o<i[a+1];++o)r[o]=o-i[a]<<5|a;return{b:i,r:r}},E=U(R,2),V=E.b,L=E.r;V[28]=258,L[258]=28;for(var M=U(F,0),O=M.b,D=M.r,q=new A(32768),K=0;K<32768;++K){var G=(43690&K)>>1|(21845&K)<<1;G=(61680&(G=(52428&G)>>2|(13107&G)<<2))>>4|(3855&G)<<4,q[K]=((65280&G)>>8|(255&G)<<8)>>1}for(var $=function(e,t,i){for(var a,r=e.length,o=0,n=new A(t);o<r;++o)e[o]&&++n[e[o]-1];var s=new A(t);for(o=1;o<t;++o)s[o]=s[o-1]+n[o-1]<<1;if(i){a=new A(1<<t);var d=15-t;for(o=0;o<r;++o)if(e[o])for(var l=o<<4|e[o],u=t-e[o],m=s[e[o]-1]++<<u,p=m|(1<<u)-1;m<=p;++m)a[q[m]>>d]=l}else for(a=new A(r),o=0;o<r;++o)e[o]&&(a[o]=q[s[e[o]-1]++]>>15-e[o]);return a},j=new S(288),K=0;K<144;++K)j[K]=8;for(var K=144;K<256;++K)j[K]=9;for(var K=256;K<280;++K)j[K]=7;for(var K=280;K<288;++K)j[K]=8;for(var W=new S(32),K=0;K<32;++K)W[K]=5;var z=$(j,9,0),B=$(j,9,1),N=$(W,5,0),H=$(W,5,1),Q=function(e){for(var t=e[0],i=1;i<e.length;++i)e[i]>t&&(t=e[i]);return t},X=function(e,t,i){var a=t/8|0;return(e[a]|e[a+1]<<8)>>(7&t)&i},J=function(e,t){var i=t/8|0;return(e[i]|e[i+1]<<8|e[i+2]<<16)>>(7&t)},Y=function(e){return(e+7)/8|0},Z=function(e,t,i){return(null==t||t<0)&&(t=0),(null==i||i>e.length)&&(i=e.length),new S(e.subarray(t,i))}
1,ee=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],et=function(e,t,i){var a=Error(t||ee[e]);if(a.code=e,Error.captureStackTrace&&Error.captureStackTrace(a,et),!i)throw a;return a},ei=function(e,t,i,a){var r=e.length,o=a?a.length:0;if(!r||t.f&&!t.l)return i||new S(0);var n=!i,s=n||2!=t.i,d=t.i;n&&(i=new S(3*r));var l=function(e){var t=i.length;if(e>t){var a=new S(Math.max(2*t,e));a.set(i),i=a}},u=t.f||0,m=t.p||0,p=t.b||0,c=t.l,g=t.d,f=t.m,h=t.n,v=8*r;do{if(!c){u=X(e,m,1);var y=X(e,m+1,3);if(m+=3,y)if(1==y)c=B,g=H,f=9,h=5;else if(2==y){var w=X(e,m,31)+257,b=X(e,m+10,15)+4,x=w+X(e,m+5,31)+1;m+=14;for(var I=new S(x),k=new S(19),_=0;_<b;++_)k[C[_]]=X(e,m+3*_,7);m+=3*b;for(var T=Q(k),A=(1<<T)-1,P=$(k,T,1),_=0;_<x;){var U=P[X(e,m,A)];m+=15&U;var E=U>>4;if(E<16)I[_++]=E;else{var L=0,M=0;for(16==E?(M=3+X(e,m,3),m+=2,L=I[_-1]):17==E?(M=3+X(e,m,7),m+=3):18==E&&(M=11+X(e,m,127),m+=7);M--;)I[_++]=L}}var D=I.subarray(0,w),q=I.subarray(w);f=Q(D),h=Q(q),c=$(D,f,1),g=$(q,h,1)}else et(1);else{var E=Y(m)+4,K=e[E-4]|e[E-3]<<8,G=E+K;if(G>r){d&&et(0);break}s&&l(p+K),i.set(e.subarray(E,G),p),t.b=p+=K,t.p=m=8*G,t.f=u;continue}if(m>v){d&&et(0);break}}s&&l(p+131072);for(var j=(1<<f)-1,W=(1<<h)-1,z=m;;z=m){var L=c[J(e,m)&j],N=L>>4;if((m+=15&L)>v){d&&et(0);break}if(L||et(2),N<256)i[p++]=N;else if(256==N){z=m,c=null;break}else{var ee=N-254;if(N>264){var _=N-257,ei=R[_];ee=X(e,m,(1<<ei)-1)+V[_],m+=ei}var ea=g[J(e,m)&W],er=ea>>4;ea||et(3),m+=15&ea;var q=O[er];if(er>3){var ei=F[er];q+=J(e,m)&(1<<ei)-1,m+=ei}if(m>v){d&&et(0);break}s&&l(p+131072);var eo=p+ee;if(p<q){var en=o-q,es=Math.min(q,eo);for(en+p<0&&et(3);p<es;++p)i[p]=a[en+p]}for(;p<eo;++p)i[p]=i[p-q]}}t.l=c,t.p=z,t.b=p,t.f=u,c&&(u=1,t.m=f,t.d=g,t.n=h)}while(!u)return p!=i.length&&n?Z(i,0,p):i.subarray(0,p)},ea=function(e,t,i){i<<=7&t;var a=t/8|0;e[a]|=i,e[a+1]|=i>>8},er=function(e,t,i){i<<=7&t;var a=t/8|0;e[a]|=i,e[a+1]|=i>>8,e[a+2]|=i>>16},eo=function(e,t){for(var i=[],a=0;a<e.length;++a)e[a]&&i.push({s:a,f:e[a]});var r=i.length,o=i.slice();if(!r)return{t:ep,l:0};if(1==r){var n=new S(i[0].s+1);return n[i[0].s]=1,{t:n,l:1}}i.sort(function(e,t){return e.f-t.f}),i.push({s:-1,f:25001});var s=i[0],d=i[1],l=0,u=1,m=2;for(i[0]={s:-1,f:s.f+d.f,l:s,r:d};u!=r-1;)s=i[i[l].f<i[m].f?l++:m++],d=i[l!=u&&i[l].f<i[m].f?l++:m++],i[u++]={s:-1,f:s.f+d.f,l:s,r:d};for(var p=o[0].s,a=1;a<r;++a)o[a].s>p&&(p=o[a].s);var c=new A(p+1),g=en(i[u-1],c,0);if(g>t){var a=0,f=0,h=g-t,v=1<<h;for(o.sort(function(e,t){return c[t.s]-c[e.s]||e.f-t.f});a<r;++a){var y=o[a].s;if(c[y]>t)f+=v-(1<<g-c[y]),c[y]=t;else break}for(f>>=h;f>0;){var w=o[a].s;c[w]<t?f-=1<<t-c[w]++-1:++a}for(;a>=0&&f;--a){var b=o[a].s;c[b]==t&&(--c[b],++f)}g=t}return{t:new S(c),l:g}},en=function(e,t,i){return -1==e.s?Math.max(en(e.l,t,i+1),en(e.r,t,i+1)):t[e.s]=i},es=function(e){for(var t=e.length;t&&!e[--t];);for(var i=new A(++t),a=0,r=e[0],o=1,n=function(e){i[a++]=e},s=1;s<=t;++s)if(e[s]==r&&s!=t)++o;else{if(!r&&o>2){for(;o>138;o-=138)n(32754);o>2&&(n(o>10?o-11<<5|28690:o-3<<5|12305),o=0)}else if(o>3){for(n(r),--o;o>6;o-=6)n(8304);o>2&&(n(o-3<<5|8208),o=0)}for(;o--;)n(r);o=1,r=e[s]}return{c:i.subarray(0,a),n:t}},ed=function(e,t){for(var i=0,a=0;a<t.length;++a)i+=e[a]*t[a];return i},el=function(e,t,i){var a=i.length,r=Y(t+2);e[r]=255&a,e[r+1]=a>>8,e[r+2]=255^e[r],e[r+3]=255^e[r+1];for(var o=0;o<a;++o)e[r+o+4]=i[o];return(r+4+a)*8},eu=function(e,t,i,a,r,o,n,s,d,l,u){ea(t,u++,i),++r[256];for(var m,p,c,g,f=eo(r,15),h=f.t,v=f.l,y=eo(o,15),w=y.t,b=y.l,x=es(h),I=x.c,k=x.n,_=es(w),T=_.c,S=_.n,P=new A(19),U=0;U<I.length;++U)++P[31&I[U]];for(var U=0;U<T.length;++U)++P[31&T[U]];for(var E=eo(P,7),V=E.t,L=E.l,M=19;M>4&&!V[C[M-1]];--M);var O=l+5<<3,D=ed(r,j)+ed(o,W)+n,q=ed(r,h)+ed(o,w)+n+14+3*M+ed(P,V)+2*P[16]+3*P[17]+7*P[18];if(d>=0&&O<=D&&O<=q)return el(t,u,e.subarray(d,d+l));if(ea(t,u,1+(q<D)),u+=2,q<D){m=$(h,v,0),p=h,c=$(w,b,0),g=w;var K=$(V,L,0);ea(t,u,k-257),ea(t,u+5,S-1),ea(t,u+10,M-4),u+=14;for(var U=0;U<M;++U)ea(t,u+3*U,V[C[U]]);u+=3*M;for(var G=[I,T],B=0;B<2;++B)for(var H=G[B],U=0;U<H.length;++U){var Q=31&H[U];ea(t,u,K[Q]),u+=V[Q],Q>15&&(ea(t,u,H[U]>>5&127),u+=H[U]>>12)}}else m=z,p=j,c=N,g=W;for(var U=0;U<s;++U){var X=a[U];if(X>255){var Q=X>>18&31;er(t,u,m[Q+257]),u+=p[Q+257],Q>7&&(ea(t,u,X>>23&31),u+=R[Q]);var J=31&X;er(t,u,c[J]),u+=g[J],J>3&&(er(t,u,X>>5&8191),u+=F[J])}else er(t,u,m[X]),u+=p[X]}return er(t,u,m[256]),u+p[256]},em=new P([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),ep=new S(0),ec=function(e,t,i,a,r,o){var n=o.z||e.length,s=new S(a+n+5*(1+Math.ceil(n/7e3))+r),d=s.subarray(a,s.length-r),l=o.l,u=7&(o.r||0);if(t){u&&(d[0]=o.r>>3);for(var m=em[t-1],p=m>>13,c=8191&m,g=(1<<i)-1,f=o.p||new A(32768),h=o.h||new A(g+1),v=Math.ceil(i/3),y=2*v,w=function(t){return(e[t]^e[t+1]<<v^e[t+2]<<y)&g},b=new P(25e3),x=new A(288),I=new A(32),k=0,_=0,T=o.i||0,C=0,U=o.w||0,E=0;T+2<n;++T){var V=w(T),M=32767&T,O=h[V];if(f[M]=O,h[V]=M,U<=T){var q=n-T;if((k>7e3||C>24576)&&(q>423||!l)){u=eu(e,d,0,b,x,I,_,C,E,T-E,u),C=k=_=0,E=T;for(var K=0;K<286;++K)x[K]=0;for(var K=0;K<30;++K)I[K]=0}var G=2,$=0,j=c,W=M-O&32767;if(q>2&&V==w(T-W))for(var z=Math.min(p,q)-1,B=Math.min(32767,T),N=Math.min(258,q);W<=B&&--j&&M!=O;){if(e[T+G]==e[T+G-W]){for(var H=0;H<N&&e[T+H]==e[T+H-W];++H);if(H>G){if(G=H,$=W,H>z)break;for(var Q=Math.min(W,H-2),X=0,K=0;K<Q;++K){var J=T-W+K&32767,ee=f[J],et=J-ee&32767;et>X&&(X=et,O=J)}}}O=f[M=O],W+=M-O&32767}if($){b[C++]=0x10000000|L[G]<<18|D[$];var ei=31&L[G],ea=31&D[$];_+=R[ei]+F[ea],++x[257+ei],++I[ea],U=T+G,++k}else b[C++]=e[T],++x[e[T]]}}for(T=Math.max(T,U);T<n;++T)b[C++]=e[T],++x[e[T]];u=eu(e,d,l,b,x,I,_,C,E,T-E,u),l||(o.r=7&u|d[u/8|0]<<3,u-=7,o.h=h,o.p=f,o.i=T,o.w=U)}else{for(var T=o.w||0;T<n+l;T+=65535){var er=T+65535;er>=n&&(d[u/8|0]=l,er=n),u=el(d,u+1,e.subarray(T,er))}o.i=n}return Z(s,0,a+Y(u)+r)},eg=function(){for(var e=new Int32Array(256),t=0;t<256;++t){for(var i=t,a=9;--a;)i=(1&i&&-0x12477ce0)^i>>>1;e[t]=i}return e}(),ef=function(){var e=-1;return{p:function(t){for(var i=e,a=0;a<t.length;++a)i=eg[255&i^t[a]]^i>>>8;e=i},d:function(){return~e}}},eh=function(){var e=1,t=0;return{p:function(i){for(var a=e,r=t,o=0|i.length,n=0;n!=o;){for(var s=Math.min(n+2655,o);n<s;++n)r+=a+=i[n];a=(65535&a)+15*(a>>16),r=(65535&r)+15*(r>>16)}e=a,t=r},d:function(){return e%=65521,t%=65521,(255&e)<<24|(65280&e)<<8|(255&t)<<8|t>>8}}},ev=function(e,t,i,a,r){if(!r&&(r={l:1},t.dictionary)){var o=t.dictionary.subarray(-32768),n=new S(o.length+e.length);n.set(o),n.set(e,o.length),e=n,r.w=o.length}return ec(e,null==t.level?6:t.level,null==t.mem?r.l?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):20:12+t.mem,i,a,r)},ey=function(e,t){var i={};for(var a in e)i[a]=e[a];for(var a in t)i[a]=t[a];return i},ew=function(e,t,i){for(var a=e(),r=e.toString(),o=r.slice(r.indexOf("[")+1,r.lastIndexOf("]")).replace(/\s+/g,"").split(","),n=0;n<a.length;++n){var s=a[n],d=o[n];if("function"==typeof s){t+=";"+d+"=";var l=s.toString();if(s.prototype)if(-1!=l.indexOf("[native code]")){var u=l.indexOf(" ",8)+1;t+=l.slice(u,l.indexOf("(",u))}else for(var m in t+=l,s.prototype)t+=";"+d+".prototype."+m+"="+s.prototype[m].toString();else t+=l}else i[d]=s}return t},eb=[],ex=function(e){var t=[];for(var i in e)e[i].buffer&&t.push((e[i]=new e[i].constructor(e[i])).buffer);return t},eI=function(e,t,i,a){if(!eb[i]){for(var r="",o={},n=e.length-1,s=0;s<n;++s)r=ew(e[s],r,o);eb[i]={c:ew(e[n],r,o),e:o}}var d=ey({},eb[i].e);return T(eb[i].c+";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage="+t.toString()+"}",i,d,ex(d),a)},ek=function(){return[S,A,P,R,F,C,V,O,B,H,q,ee,$,Q,X,J,Y,Z,et,ei,eN,eA,eP]},e_=function(){return[S,A,P,R,F,C,L,D,z,j,N,W,q,em,ep,$,ea,er,eo,en,es,ed,el,eu,Y,Z,ec,ev,eW,eA]},eT=function(){return[eM,eO]},eS=function(){return[eK]},eA=function(e){return postMessage(e,[e.buffer])},eP=function(e){return e&&{out:e.size&&new S(e.size),dictionary:e.dictionary}},eR=function(e){return e.ondata=function(e,t){return postMessage([e,t],[e.buffer])},function(t){t.data[0]?(e.push(t.data[0],t.data[1]),postMessage([t.data[0].length])):e.flush(t.data[1])}},eF=function(e,t,i,a,r,o,n){var s,d=eI(e,a,r,function(e,i){e?(d.terminate(),t.ondata.call(t,e)):Array.isArray(i)?1==i.length?(t.queuedSize-=i[0],t.ondrain&&t.ondrain(i[0])):(i[1]&&d.terminate(),t.ondata.call(t,e,i[0],i[1])):n(i)});
1d.postMessage(i),t.queuedSize=0,t.push=function(e,i){t.ondata||et(5),s&&t.ondata(et(4,0,1),null,!!i),t.queuedSize+=e.length,d.postMessage([e,s=i],e.buffer instanceof ArrayBuffer?[e.buffer]:[])},t.terminate=function(){d.terminate()},o&&(t.flush=function(e){d.postMessage([0,e])})},eC=function(e,t){return e[t]|e[t+1]<<8},eU=function(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0},eE=function(e,t){return eU(e,t)+0x100000000*eU(e,t+4)},eV=function(e,t,i){for(;i;++t)e[t]=i,i>>>=8},eL=function(e,t){var i=t.filename;if(e[0]=31,e[1]=139,e[2]=8,e[8]=t.level<2?4:2*(9==t.level),e[9]=3,0!=t.mtime&&eV(e,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),i){e[3]=8;for(var a=0;a<=i.length;++a)e[a+10]=i.charCodeAt(a)}},eM=function(e){(31!=e[0]||139!=e[1]||8!=e[2])&&et(6,"invalid gzip data");var t=e[3],i=10;4&t&&(i+=(e[10]|e[11]<<8)+2);for(var a=(t>>3&1)+(t>>4&1);a>0;a-=!e[i++]);return i+(2&t)},eO=function(e){var t=e.length;return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0},eD=function(e){return 10+(e.filename?e.filename.length+1:0)},eq=function(e,t){var i=t.level;if(e[0]=120,e[1]=(0==i?0:i<6?1:9==i?3:2)<<6|(t.dictionary&&32),e[1]|=31-(e[0]<<8|e[1])%31,t.dictionary){var a=eh();a.p(t.dictionary),eV(e,2,a.d())}},eK=function(e,t){return((15&e[0])!=8||e[0]>>4>7||(e[0]<<8|e[1])%31)&&et(6,"invalid zlib data"),(e[1]>>5&1)==+!t&&et(6,"invalid zlib data: "+(32&e[1]?"need":"unexpected")+" dictionary"),(e[1]>>3&4)+2};function eG(e,t){return"function"==typeof e&&(t=e,e={}),this.ondata=t,e}var e$=function(){function e(e,t){if("function"==typeof e&&(t=e,e={}),this.ondata=t,this.o=e||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new S(98304),this.o.dictionary){var i=this.o.dictionary.subarray(-32768);this.b.set(i,32768-i.length),this.s.i=32768-i.length}}return e.prototype.p=function(e,t){this.ondata(ev(e,this.o,0,0,this.s),t)},e.prototype.push=function(e,t){this.ondata||et(5),this.s.l&&et(4);var i=e.length+this.s.z;if(i>this.b.length){if(i>2*this.b.length-32768){var a=new S(-32768&i);a.set(this.b.subarray(0,this.s.z)),this.b=a}var r=this.b.length-this.s.z;this.b.set(e.subarray(0,r),this.s.z),this.s.z=this.b.length,this.p(this.b,!1),this.b.set(this.b.subarray(-32768)),this.b.set(e.subarray(r),32768),this.s.z=e.length-r+32768,this.s.i=32766,this.s.w=32768}else this.b.set(e,this.s.z),this.s.z+=e.length;this.s.l=1&t,(this.s.z>this.s.w+8191||t)&&(this.p(this.b,t||!1),this.s.w=this.s.i,this.s.i-=2),t&&(this.s=this.o={},this.b=ep)},e.prototype.flush=function(e){if(this.ondata||et(5),this.s.l&&et(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2,e){var t=new S(6);t[0]=this.s.r>>3;var i=el(t,this.s.r,ep);this.s.r=0,this.ondata(t.subarray(0,i>>3),!1)}},e}(),ej=function(e,t){eF([e_,function(){return[eR,e$]}],this,eG.call(this,e,t),function(e){onmessage=eR(new e$(e.data))},6,1)};function eW(e,t){return ev(e,t||{},0,0)}var ez=function(){function e(e,t){"function"==typeof e&&(t=e,e={}),this.ondata=t;var i=e&&e.dictionary&&e.dictionary.subarray(-32768);this.s={i:0,b:i?i.length:0},this.o=new S(32768),this.p=new S(0),i&&this.o.set(i)}return e.prototype.e=function(e){if(this.ondata||et(5),this.d&&et(4),this.p.length){if(e.length){var t=new S(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}}else this.p=e},e.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,i=ei(this.p,this.s,this.o);this.ondata(Z(i,t,this.s.b),this.d),this.o=Z(i,this.s.b-32768),this.s.b=this.o.length,this.p=Z(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),eB=function(e,t){eF([ek,function(){return[eR,ez]}],this,eG.call(this,e,t),function(e){onmessage=eR(new ez(e.data))},7,0)};function eN(e,t){return ei(e,{i:2},t&&t.out,t&&t.dictionary)}(function(){function e(e,t){this.c=ef(),this.l=0,this.v=1,e$.call(this,e,t)}e.prototype.push=function(e,t){this.c.p(e),this.l+=e.length,e$.prototype.push.call(this,e,t)},e.prototype.p=function(e,t){var i=ev(e,this.o,this.v&&eD(this.o),t&&8,this.s);this.v&&(eL(i,this.o),this.v=0),t&&(eV(i,i.length-8,this.c.d()),eV(i,i.length-4,this.l)),this.ondata(i,t)},e.prototype.flush=function(e){e$.prototype.flush.call(this,e)}})();var eH=function(){function e(e,t){this.v=1,this.r=0,ez.call(this,e,t)}return e.prototype.push=function(e,t){if(ez.prototype.e.call(this,e),this.r+=e.length,this.v){var i=this.p.subarray(this.v-1),a=i.length>3?eM(i):4;if(a>i.length){if(!t)return}else this.v>1&&this.onmember&&this.onmember(this.r-i.length);this.p=i.subarray(a),this.v=0}ez.prototype.c.call(this,0),this.s.f&&!this.s.l?(this.v=Y(this.s.p)+9,this.s={i:0},this.o=new S(0),this.push(new S(0),t)):t&&ez.prototype.c.call(this,t)},e}(),eQ=function(e,t){var i=this;eF([ek,eT,function(){return[eR,ez,eH]}],this,eG.call(this,e,t),function(e){var t=new eH(e.data);t.onmember=function(e){return postMessage(e)},onmessage=eR(t)},9,0,function(e){return i.onmember&&i.onmember(e)})},eX=(function(){function e(e,t){this.c=eh(),this.v=1,e$.call(this,e,t)}e.prototype.push=function(e,t){this.c.p(e),e$.prototype.push.call(this,e,t)},e.prototype.p=function(e,t){var i=ev(e,this.o,this.v&&(this.o.dictionary?6:2),t&&4,this.s);this.v&&(eq(i,this.o),this.v=0),t&&eV(i,i.length-4,this.c.d()),this.ondata(i,t)},e.prototype.flush=function(e){e$.prototype.flush.call(this,e)}}(),function(){function e(e,t){ez.call(this,e,t),this.v=e&&e.dictionary?2:1}return e.prototype.push=function(e,t){if(ez.prototype.e.call(this,e),this.v){if(this.p.length<6&&!t)return;this.p=this.p.subarray(eK(this.p,this.v-1)),this.v=0}t&&(this.p.length<4&&et(6,"invalid zlib data"),this.p=this.p.subarray(0,-4)),ez.prototype.c.call(this,t)},e}()),eJ=function(e,t){eF([ek,eS,function(){return[eR,ez,eX]}],this,eG.call(this,e,t),function(e){onmessage=eR(new eX(e.data))},11,0)},eY=function(){function e(e,t){this.o=eG.call(this,e,t)||{},this.G=eH,this.I=ez,this.Z=eX}return e.prototype.i=function(){var e=this;this.s.ondata=function(t,i){e.ondata(t,i)}},e.prototype.push=function(e,t){if(this.ondata||et(5),this.s)this.s.push(e,t);else{if(this.p&&this.p.length){var i=new S(this.p.length+e.length);i.set(this.p),i.set(e,this.p.length)}else this.p=e;this.p.length>2&&(this.s=31==this.p[0]&&139==this.p[1]&&8==this.p[2]?new this.G(this.o):(15&this.p[0])!=8||this.p[0]>>4>7||(this.p[0]<<8|this.p[1])%31?new this.I(this.o):new this.Z(this.o),this.i(),this.s.push(this.p,t),this.p=null)}},e}();function eZ(e,t){eY.call(this,e,t),this.queuedSize=0,this.G=eQ,this.I=eB,this.Z=eJ}eZ.prototype.i=function(){var e=this;this.s.ondata=function(t,i,a){e.ondata(t,i,a)},this.s.ondrain=function(t){e.queuedSize-=t,e.ondrain&&e.ondrain(t)}},eZ.prototype.push=function(e,t){this.queuedSize+=e.length,eY.prototype.push.call(this,e,t)};var e0="u">typeof TextEncoder&&new TextEncoder,e1="u">typeof TextDecoder&&new TextDecoder,e2=0;try{e1.decode(ep,{stream:!0}),e2=1}catch(e){}var e3=function(e){for(var t="",i=0;;){var a=e[i++],r=(a>127)+(a>223)+(a>239);if(i+r>e.length)return{s:t,r:Z(e,i-1)};r?3==r?t+=String.fromCharCode(55296|(a=((15&a)<<18|(63&e[i++])<<12|(63&e[i++])<<6|63&e[i++])-65536)>>10,56320|1023&a):1&r?t+=String.fromCharCode((31&a)<<6|63&e[i++]):t+=String.fromCharCode((1
15&a)<<12|(63&e[i++])<<6|63&e[i++]):t+=String.fromCharCode(a)}};function e6(e,t){if(t){for(var i=new S(e.length),a=0;a<e.length;++a)i[a]=e.charCodeAt(a);return i}if(e0)return e0.encode(e);for(var r=e.length,o=new S(e.length+(e.length>>1)),n=0,s=function(e){o[n++]=e},a=0;a<r;++a){if(n+5>o.length){var d=new S(n+8+(r-a<<1));d.set(o),o=d}var l=e.charCodeAt(a);l<128||t?s(l):(l<2048?s(192|l>>6):(l>55295&&l<57344?(s(240|(l=65536+(1047552&l)|1023&e.charCodeAt(++a))>>18),s(128|l>>12&63)):s(224|l>>12),s(128|l>>6&63)),s(128|63&l))}return Z(o,0,n)}(function(e){this.ondata=e,e2?this.t=new TextDecoder:this.p=ep}).prototype.push=function(e,t){if(this.ondata||et(5),t=!!t,this.t){this.ondata(this.t.decode(e,{stream:!0}),t),t&&(this.t.decode().length&&et(8),this.t=null);return}this.p||et(4);var i=new S(this.p.length+e.length);i.set(this.p),i.set(e,this.p.length);var a=e3(i),r=a.s,o=a.r;t?(o.length&&et(8),this.p=null):this.p=o,this.ondata(r,t)},(function(e){this.ondata=e}).prototype.push=function(e,t){this.ondata||et(5),this.d&&et(4),this.ondata(e6(e),this.d=t||!1)};var e4=function(e){return 1==e?3:e<6?2:+(9==e)},e5=function(e,t,i,a,r,o,n){var s=0xffffffff==r,d=0xffffffff==o,l=0xffffffff==n,u=t+i;if(a&&s+d+l){for(;t+4<u;t+=4+eC(e,t+2))if(1==eC(e,t))return[s?eE(e,t+4+8*d):r,d?eE(e,t+4):o,l?eE(e,t+4+8*(d+s)):n,1];a<2&&et(13)}return[r,o,n,0]},e8=function(e){var t=0;if(e)for(var i in e){var a=e[i].length;a>65535&&et(9),t+=a+4}return t},e7=function(e,t,i,a,r,o,n,s){var d=a.length,l=i.extra,u=s&&s.length,m=e8(l);eV(e,t,null!=n?0x2014b50:0x4034b50),t+=4,null!=n&&(e[t++]=20,e[t++]=i.os),e[t]=20,t+=2,e[t++]=i.flag<<1|(o<0&&8),e[t++]=r&&8,e[t++]=255&i.compression,e[t++]=i.compression>>8;var p=new Date(null==i.mtime?Date.now():i.mtime),c=p.getFullYear()-1980;if((c<0||c>119)&&et(10),eV(e,t,c<<25|p.getMonth()+1<<21|p.getDate()<<16|p.getHours()<<11|p.getMinutes()<<5|p.getSeconds()>>1),t+=4,-1!=o&&(eV(e,t,i.crc),eV(e,t+4,o<0?-o-2:o),eV(e,t+8,i.size)),eV(e,t+12,d),eV(e,t+14,m),t+=16,null!=n&&(eV(e,t,u),eV(e,t+6,i.attrs),eV(e,t+10,n),t+=14),e.set(a,t),t+=d,m)for(var g in l){var f=l[g],h=f.length;eV(e,t,+g),eV(e,t+2,h),e.set(f,t+4),t+=4+h}return u&&(e.set(s,t),t+=u),t},e9=function(e,t,i,a,r){eV(e,t,0x6054b50),eV(e,t+8,i),eV(e,t+10,i),eV(e,t+12,a),eV(e,t+16,r)},te=function(){function e(e){this.filename=e,this.c=ef(),this.size=0,this.compression=0}return e.prototype.process=function(e,t){this.ondata(null,e,t)},e.prototype.push=function(e,t){this.ondata||et(5),this.c.p(e),this.size+=e.length,t&&(this.crc=this.c.d()),this.process(e,t||!1)},e}();function tt(e,t){var i=this;t||(t={}),te.call(this,e),this.d=new e$(t,function(e,t){i.ondata(null,e,t)}),this.compression=8,this.flag=e4(t.level)}function ti(e,t){var i=this;t||(t={}),te.call(this,e),this.d=new ej(t,function(e,t,a){i.ondata(e,t,a)}),this.compression=8,this.flag=e4(t.level),this.terminate=this.d.terminate}function ta(e){this.ondata=e,this.u=[],this.d=1}tt.prototype.process=function(e,t){try{this.d.push(e,t)}catch(e){this.ondata(e,null,t)}},tt.prototype.push=function(e,t){te.prototype.push.call(this,e,t)},ti.prototype.process=function(e,t){this.d.push(e,t)},ti.prototype.push=function(e,t){te.prototype.push.call(this,e,t)},ta.prototype.add=function(e){var t=this;if(this.ondata||et(5),2&this.d)this.ondata(et(4+(1&this.d)*8,0,1),null,!1);else{var i=e6(e.filename),a=i.length,r=e.comment,o=r&&e6(r),n=a!=e.filename.length||o&&r.length!=o.length,s=a+e8(e.extra)+30;a>65535&&this.ondata(et(11,0,1),null,!1);var d=new S(s);e7(d,0,e,i,n,-1);var l=[d],u=function(){for(var e=0,i=l;e<i.length;e++){var a=i[e];t.ondata(null,a,!1)}l=[]},m=this.d;this.d=0;var p=this.u.length,c=ey(e,{f:i,u:n,o:o,t:function(){e.terminate&&e.terminate()},r:function(){if(u(),m){var e=t.u[p+1];e?e.r():t.d=1}m=1}}),g=0;e.ondata=function(i,a,r){if(i)t.ondata(i,a,r),t.terminate();else if(g+=a.length,l.push(a),r){var o=new S(16);eV(o,0,0x8074b50),eV(o,4,e.crc),eV(o,8,g),eV(o,12,e.size),l.push(o),c.c=g,c.b=s+g+16,c.crc=e.crc,c.size=e.size,m&&c.r(),m=1}else m&&u()},this.u.push(c)}},ta.prototype.end=function(){var e=this;2&this.d?this.ondata(et(4+(1&this.d)*8,0,1),null,!0):(this.d?this.e():this.u.push({r:function(){1&e.d&&(e.u.splice(-1,1),e.e())},t:function(){}}),this.d=3)},ta.prototype.e=function(){for(var e=0,t=0,i=0,a=0,r=this.u;a<r.length;a++){var o=r[a];i+=46+o.f.length+e8(o.extra)+(o.o?o.o.length:0)}for(var n=new S(i+22),s=0,d=this.u;s<d.length;s++){var o=d[s];e7(n,e,o,o.f,o.u,-o.c-2,t,o.o),e+=46+o.f.length+e8(o.extra)+(o.o?o.o.length:0),t+=o.b}e9(n,e,this.u.length,i,t),this.ondata(null,n,!0),this.d=2},ta.prototype.terminate=function(){for(var e=0,t=this.u;e<t.length;e++)t[e].t();this.d=2};var tr=function(){function e(){}return e.prototype.push=function(e,t){this.ondata(null,e,t)},e.compression=0,e}();function to(){var e=this;this.i=new ez(function(t,i){e.ondata(null,t,i)})}function tn(e,t){var i=this;t<32e4?this.i=new ez(function(e,t){i.ondata(null,e,t)}):(this.i=new eB(function(e,t,a){i.ondata(e,t,a)}),this.terminate=this.i.terminate)}function ts(e){this.onfile=e,this.k=[],this.o={0:tr},this.p=ep}function td(e){let t={};for(let[i,a]of Object.entries(e)){let e=a.descriptor;"default"in e&&(t[i]=e.default)}return t}function tl(e,t){for(let[i,a]of Object.entries(e))!function e(t,i,a,r){if(null==a||r&&"string"==typeof a&&0===a.trim().length||r&&Array.isArray(a)&&0===a.length){if(r)throw Error(`"${t}" is required`);if(null==a)return}switch(i.kind){case"enum":{let e=i.options.map(e=>e.id);if(!e.includes(a))throw Error(`"${t}" must be one of: ${e.join(", ")}`);break}case"catalog":if("string"!=typeof a)throw Error(`"${t}" must be a string`);break;case"range":if("number"!=typeof a||Number.isNaN(a))throw Error(`"${t}" must be a number`);if(a<i.min||a>i.max)throw Error(`"${t}" must be between ${i.min} and ${i.max}`);break;case"boolean":if("boolean"!=typeof a)throw Error(`"${t}" must be a boolean`);break;case"text":if("string"!=typeof a)throw Error(`"${t}" must be a string`);if(i.minLength&&a.trim().length<i.minLength)throw Error(`"${t}" must be at least ${i.minLength} characters`);if(i.maxLength&&a.length>i.maxLength)throw Error(`"${t}" exceeds max length of ${i.maxLength}`);break;case"file":if(i.array){if(!Array.isArray(a))throw Error(`"${t}" must be an array of URLs`);if(null!=i.array.min&&a.length<i.array.min)throw Error(`"${t}" needs at least ${i.array.min} items`);if(null!=i.array.max&&a.length>i.array.max)throw Error(`"${t}" allows at most ${i.array.max} items`)}else if("string"!=typeof a)throw Error(`"${t}" must be a string URL`);break;case"object":{if(i.array&&!Array.isArray(a))throw Error(`"${t}" must be an array`);let r=i.array?a:[a];if(i.array?.min!=null&&r.length<i.array.min)throw Error(`"${t}" needs at least ${i.array.min} items`);if(i.array?.max!=null&&r.length>i.array.max)throw Error(`"${t}" allows at most ${i.array.max} items`);for(let a of r){if(null==a||"object"!=typeof a||Array.isArray(a))throw Error(`"${t}" items must be objects`);for(let[r,o]of Object.entries(i.fields))e(`${t}.${r}`,o,a[r])}}}}(i,a.descriptor,t[i],a.required)}function tu(e,t,i){if(t){let a=t.max??1/0,r=(Array.isArray(e)?e:[e]).filter(e=>!i(e)).slice(0,a);return r.length>0?r:void 0}let a=Array.isArray(e)?e[0]:e;return i(a)?void 0:a}function tm(e,t){let i=td(e);for(let[a,r]of Object.entries(e)){let e=t[a];if(null==e)continue;let o=r.descriptor;switch(o.kind){case"enum":o.options.map(e=>e.id).includes(e)&&(i[a]=e);break;case"catalog":break;case"range":"number"==typeof e&&(i[a]=Math.min(Math.max(e,o.min),o.max));break;case"boolean":"boolean"==typeof e&&(i[a]=e);break;case"text":"string"==typeof e&&(i[a]=null!=o.maxLength?e.slice(0,o.maxLength):e);break;case"file":{let t=tu(e,o.array,e=>null==e||""===e);void 0!==t&&(i[a]=t);break}case"object":{let t=tu(e,o.array,e=>null==e);void 0!==t&&(i[a]=t);break}default:i[a]=e}}return i}to.prototype.push=function(e,t){try{this.i.push(e,t)}catch(e){this.ondata(e,null,t)}},to.compression=8,tn.prototype.push=function(e,t){this.i.terminate&&(e=Z(e,0)),this.i.push(e,t)},tn.compression=8,ts.prototype.push=function(e,t){var i=this;if(this.onfile||et(5),this.p||et(4),this.c>0){var a=Math.min(this.c,e.length),r=e.subarray(0,a);if(this.c-=a,this.d?this.d.push(r,!this.c):this.k[0].push(r),(e=e.subarray(a)).length)return this.push(e,t)}else{var o=0,n=0,s=void 0,d=void 0;this.p.length?e.length?((d=new S(this.p.length+e.length)).set(this.p),d.set(e,this.p.length)):d=this.p:d=e;for(var l=d.length,u=this.c,m=u&&this.d,p=this;
1n<l-4&&"break"!==function(){var e=eU(d,n);if(0x4034b50==e){o=1,s=n,p.d=null,p.c=0;var t=eC(d,n+6),a=eC(d,n+8),r=eC(d,n+26),m=eC(d,n+28);if(l>n+30+r+m){var c,g=[];p.k.unshift(g),o=2;var f=eU(d,n+18),h=eU(d,n+22),v=function(e,t){if(t){for(var i="",a=0;a<e.length;a+=16384)i+=String.fromCharCode.apply(null,e.subarray(a,a+16384));return i}if(e1)return e1.decode(e);var r=e3(e),o=r.s,i=r.r;return i.length&&et(8),o}(d.subarray(n+30,n+=30+r),!(2048&t)),y=e5(d,n,m,2,f,h,0),w=y[0],b=y[1],x=y[3];8&t&&(w=-1-x),n+=m,p.c=w;var I={name:v,compression:a,start:function(){if(I.ondata||et(5),w){var e=i.o[a];e||I.ondata(et(14,"unknown compression type "+a,1),null,!1),(c=w<0?new e(v):new e(v,w,b)).ondata=function(e,t,i){I.ondata(e,t,i)};for(var t=0;t<g.length;t++){var r=g[t];c.push(r,!1)}i.k[0]==g&&i.c?i.d=c:c.push(ep,!0)}else I.ondata(null,ep,!0)},terminate:function(){c&&c.terminate&&c.terminate()}};w>=0&&(I.size=w,I.originalSize=b),p.onfile(I)}return"break"}if(u){if(0x8074b50==e)return s=n+=12+(-2==u&&8),o=3,p.c=0,"break";else if(0x2014b50==e)return s=n-=4,o=3,p.c=0,"break"}}();++n);if(this.p=ep,u<0){var c=o?d.subarray(0,s-12-(-2==u&&8)-(0x8074b50==eU(d,s-16)&&4)):d.subarray(0,n);m?m.push(c,!!o):this.k[+(2==o)].push(c)}if(2&o)return this.push(d.subarray(n),t);this.p=d.subarray(n)}t&&(this.c&&et(13),this.p=null)},ts.prototype.register=function(e){this.o[e.compression]=e},"function"==typeof queueMicrotask&&queueMicrotask;var tp=class extends Error{status;code;reason;constructor(e,t){super(e),this.name="ApiError",this.status=t.status,this.code=t.code,this.reason=t.code}},tc={400:"bad_request",401:"unauthorized",402:"payment_required",403:"forbidden",404:"not_found",408:"timeout",409:"conflict",413:"payload_too_large",422:"unprocessable_entity",429:"rate_limited",500:"server_error",502:"bad_gateway",503:"service_unavailable",504:"gateway_timeout"};function tg(e){return tc[e]??(e>=500?"server_error":`http_${e}`)}var tf=["production","general-availability"],th=e=>e.release??"production";function tv(e,t=tf){return!e.deprecated&&t.includes(th(e))}var ty={picsart:{color:"#FF3399",label:"PA",name:"Picsart"},google:{color:"#4285F4",label:"G",name:"Google"},kling:{color:"#8B5CF6",label:"K",name:"Kling"},grok:{color:"#1DA1F2",label:"X",name:"Grok"},openai:{color:"#10B981",label:"O",name:"OpenAI"},flux:{color:"#FF6B6B",label:"F",name:"Flux"},ideogram:{color:"#06B6D4",label:"I",name:"Ideogram"},elevenlabs:{color:"#2D6B4F",label:"XI",name:"ElevenLabs"},minimax:{color:"#FF7B54",label:"M",name:"MiniMax"},wan:{color:"#00BCD4",label:"W",name:"Wan"},seedance:{color:"#EC4899",label:"SD",name:"Seedance"},ltx:{color:"#6366F1",label:"LT",name:"LTX"},seedream:{color:"#14B8A6",label:"SR",name:"Seedream"},seedaudio:{color:"#7C3AED",label:"SA",name:"Seed Audio"},hunyuan:{color:"#F59E0B",label:"HY",name:"Hunyuan"},pika:{color:"#FF6B9D",label:"PK",name:"Pika"},runway:{color:"#00D4AA",label:"RW",name:"Runway"},luma:{color:"#FFB800",label:"LU",name:"Luma"},ovi:{color:"#9333EA",label:"OV",name:"OVI"},creatify:{color:"#FF3D00",label:"CR",name:"Creatify"},veed:{color:"#5B21B6",label:"VD",name:"VEED"},bytedance:{color:"#00F5D4",label:"BD",name:"ByteDance"},qwen:{color:"#1E40AF",label:"QW",name:"Qwen"},reve:{color:"#E11D48",label:"RV",name:"Reve"},recraft:{color:"#3B82F6",label:"RF",name:"Recraft"},videography:{color:"#78716C",label:"VG",name:"Videography"},topaz:{color:"#14B8A6",label:"TZ",name:"Topaz"},heygen:{color:"#5B4EFF",label:"HG",name:"HeyGen"},happyhorse:{color:"#FF6A00",label:"HH",name:"Happy Horse"},pixverse:{color:"#7C3AED",label:"PV",name:"PixVerse"},anthropic:{color:"#D97757",label:"CL",name:"Anthropic"},async:{color:"#5E5CE6",label:"AA",name:"Async AI"},captionsai:{color:"#1D1F20",label:"MR",name:"Mirage"}
1,meta:{color:"#0081FB",label:"MT",name:"Meta"}},tw={aspectRatio:(e=["16:9","9:16","1:1"],t)=>({aspectRatio:{descriptor:{kind:"enum",valueType:"string",options:e.map(e=>({id:e})),default:t??e[0]}}}),duration:(e,t)=>({duration:{descriptor:{kind:"enum",valueType:"number",options:e.map(e=>({id:e})),default:t??e[0]}}}),durationRange:(e,t,i,a=1)=>({duration:{descriptor:{kind:"range",min:e,max:t,step:a,default:i}}}),resolution:(e,t)=>({resolution:{descriptor:{kind:"enum",valueType:"string",options:e.map(e=>({id:e})),default:t??e[0]}}}),count:(e=[1,2,4,6,8,10],t)=>({count:{descriptor:{kind:"enum",valueType:"number",options:e.map(e=>({id:e})),default:t??e[0]}}}),quality:(e,t)=>({quality:{descriptor:{kind:"enum",valueType:"string",options:e.map(e=>({id:e})),default:t??e[0]}}}),size:(e,t)=>({size:{descriptor:{kind:"enum",valueType:"string",options:e.map(e=>({id:e})),default:t??e[0]}}}),style:(e,t)=>({style:{descriptor:{kind:"enum",valueType:"string",options:e,default:t??e[0].id}}}),renderingSpeed:(e,t)=>({renderingSpeed:{descriptor:{kind:"enum",valueType:"string",options:e,default:t??e[0].id}}}),generateAudio:(e=!0)=>({generateAudio:{descriptor:{kind:"boolean",default:e}}}),returnLastFrame:(e=!1)=>({returnLastFrame:{label:"Capture Last Frame",descriptor:{kind:"boolean",default:e}}}),audioSetting:(e=["auto","origin"],t="auto")=>({audioSetting:{label:"Audio",descriptor:{kind:"enum",valueType:"string",options:e.map(e=>({id:e})),default:t}}}),enhancePrompt:(e=!0)=>({enhancePrompt:{descriptor:{kind:"boolean",default:e}}}),prompt:e=>({prompt:{label:"Prompt",required:e?.required??!0,descriptor:{kind:"text",minLength:e?.minLength,maxLength:e?.maxLength,placeholder:e?.placeholder}}}),negativePrompt:(e,t)=>({negativePrompt:{label:"Negative Prompt",descriptor:{kind:"text",placeholder:e,maxLength:t}}}),seed:(e=0x7fffffff)=>({seed:{label:"Seed",descriptor:{kind:"range",min:0,max:e,step:1}}}),cfgScale:(e,t,i,a)=>({cfgScale:{label:"CFG Scale",descriptor:{kind:"range",min:e,max:t,step:a,default:i}}}),imageWeight:(e,t,i,a)=>({imageWeight:{label:"Image Weight",descriptor:{kind:"range",min:e,max:t,step:a,default:i}}}),file:(e,t,i)=>({[e]:{label:i?.label,required:i?.required,...i?.category?{category:i.category}:{},descriptor:{kind:"file",accept:t,...i?.array?{array:i.array}:{},...i?.maxDurationSec!=null?{maxDurationSec:i.maxDurationSec}:{},...i?.minDurationSec!=null?{minDurationSec:i.minDurationSec}:{},...i?.maxFrameRate!=null?{maxFrameRate:i.maxFrameRate}:{},...i?.minPixels!=null?{minPixels:i.minPixels}:{},...i?.maxPixels!=null?{maxPixels:i.maxPixels}:{},...i?.minSidePixels!=null?{minSidePixels:i.minSidePixels}:{},...i?.maxSidePixels!=null?{maxSidePixels:i.maxSidePixels}:{},...i?.minAspectRatio!=null?{minAspectRatio:i.minAspectRatio}:{},...i?.maxAspectRatio!=null?{maxAspectRatio:i.maxAspectRatio}:{},...i?.maxShortSidePixels!=null?{maxShortSidePixels:i.maxShortSidePixels}:{},...i?.maxBytes!=null?{maxBytes:i.maxBytes}:{}}}}),boolean:(e,t,i)=>({[e]:{label:i,descriptor:{kind:"boolean",default:t}}}),enum(e,t,i,a){let r=t.map(e=>"object"==typeof e?e:{id:e}),o={kind:"enum",valueType:"number"==typeof r[0].id?"number":"string",options:r,default:i??r[0].id};return{[e]:{label:a?.label,descriptor:o}}},range:(e,t,i,a,r)=>({[e]:{label:r?.label,descriptor:{kind:"range",min:t,max:i,step:r?.step,default:a}}}),text:(e,t)=>({[e]:{label:t?.label,required:t?.required,descriptor:{kind:"text",maxLength:t?.maxLength,placeholder:t?.placeholder}}}),catalog:(e,t)=>({[e]:{label:t.label,required:t.required,descriptor:{kind:"catalog",source:t.source,default:t.default}}}),voiceId:(e,t,i)=>({voiceId:{label:"Voice",required:i?.required,catalogOptions:e,descriptor:i?.catalog?{kind:"catalog",source:i.catalog,default:t}:{kind:"enum",valueType:"string",options:e.map(e=>({id:e.id,label:e.name??e.id})),default:t}}}),videoId:(e,t,i)=>({videoId:{label:"Avatar",required:i?.required,catalogOptions:e,descriptor:i?.catalog?{kind:"catalog",source:i.catalog,default:t}:{kind:"enum",valueType:"string",options:e.map(e=>({id:e.id,label:e.name??e.id})),default:t}}}),language:e=>({language:{label:"Language",descriptor:{kind:"text"}},...e?{accent:{label:"Accent",descriptor:{kind:"text"}}}:{}})},tb=e=>t=>{let i=td(e),a={};for(let r of Object.keys(e)){let e=t[r];null!=e?a[r]=e:r in i&&(a[r]=i[r])}return a};function tx(e,t){let i=[];for(let a of t){let t=a.provider??e,r=a.buildPayload??tb(a.paramConfig),o=ty[t]??{color:"#666",label:"?",name:String(t)},n={id:a.id,name:a.name,providerName:o.name,providerColor:o.color,providerLabel:o.label,provider:t,workflow:a.workflow,buildPayload:r,mode:a.mode,inputType:a.inputType,description:a.description,features:a.features,paramConfig:a.paramConfig};void 0!==a.editWorkflow&&(n.editWorkflow=a.editWorkflow),void 0!==a.syncExecute&&(n.syncExecute=a.syncExecute),void 0!==a.buildEditPayload&&(n.buildEditPayload=a.buildEditPayload),void 0!==a.estimatedTime&&(n.estimatedTime=a.estimatedTime),void 0!==a.editEstimatedTime&&(n.editEstimatedTime=a.editEstimatedTime),void 0!==a.testTimeout&&(n.testTimeout=a.testTimeout),void 0!==a.pollOptions&&(n.pollOptions=a.pollOptions),void 0!==a.badge&&(n.badge=a.badge),void 0!==a.addedAt&&(n.addedAt=a.addedAt),void 0!==a.deprecated&&(n.deprecated=a.deprecated),void 0!==a.release&&(n.release=a.release),void 0!==a.modelId&&(n.modelId=a.modelId),void 0!==a.constraints&&(n.constraints=a.constraints);let s=ou(n);
1n.outputSchema=a.outputSchema??s.output,i.push(n)}return{MODELS:i}}function tI(e,t){for(let[i,a]of Object.entries(t)){let t=e.find(e=>e.id===i);t&&(t.buildPayload=a)}}function tk(e,t){for(let[i,a]of Object.entries(t)){let t=e.find(e=>e.id===i);t&&(t.buildEditPayload=a)}}var t_={prompt:tw.prompt,aspectRatio:tw.aspectRatio,duration:tw.duration,durationRange:tw.durationRange,count:tw.count,resolution:tw.resolution,negativePrompt:tw.negativePrompt,seed:tw.seed,generateAudio:tw.generateAudio,returnLastFrame:tw.returnLastFrame,audioSetting:tw.audioSetting,enhancePrompt:tw.enhancePrompt,cfgScale:tw.cfgScale,imageWeight:tw.imageWeight,style:tw.style,renderingSpeed:tw.renderingSpeed,voiceId:tw.voiceId,videoId:tw.videoId,catalog:tw.catalog,language:tw.language,imageInput:(e=1,t="Start Image",i=!1,a="reference",r)=>tw.file("imageUrls","image",{array:{max:e},label:t,required:i,category:a,...r}),videoInput:(e="Source Video",t="reference",i=!0,a,r,o,n)=>tw.file("videoUrl","video",{label:e,required:i,category:t,maxDurationSec:a,maxShortSidePixels:r,maxBytes:o,...n}),audioInput:(e="Audio Track",t=!1,i="asset")=>tw.file("audioUrl","audio",{label:e,required:t,category:i}),videoInputs:(e=3,t="Reference Videos",i=!1,a)=>tw.file("videoUrls","video",{array:{max:e},label:t,required:i,category:"reference",...a}),audioInputs:(e=3,t="Reference Audios",i=!1,a)=>tw.file("audioUrls","audio",{array:{max:e},label:t,required:i,category:"reference",...a}),startFrame:(e="Start Frame",t=!1,i)=>tw.file("startFrame","image",{label:e,required:t,category:"asset",...i}),endFrame:(e="End Frame",t)=>tw.file("endFrame","image",{label:e,category:"asset",...t})},tT=({aspectRatios:e=["16:9","9:16","1:1"],durations:t=[5,10],defaultDuration:i,includeNegativePrompt:a=!0,includeGenerateAudio:r=!0,includeEndFrame:o=!0}={})=>({...tw.aspectRatio(e),...tw.duration(t,i),...tw.file("startFrame","image",{label:"Start Frame",required:!1}),...o?tw.file("endFrame","image",{label:"End Frame"}):{},...a?tw.negativePrompt():{},...r?tw.generateAudio():{}}),tS=(e,t)=>({label:e,variant:t}),tA={characterOrientation:{label:"Character Orientation",descriptor:{kind:"enum",valueType:"string",options:[{id:"image",label:"Match Image (â¤10s ref video)"},{id:"video",label:"Match Video (â¤30s ref video)"}],default:"video"}}},tP={keepOriginalSound:{label:"Keep Original Sound",descriptor:{kind:"enum",valueType:"string",options:[{id:"yes",label:"Yes"},{id:"no",label:"No"}],default:"yes"}}},tR=[3,4,5,6,7,8,9,10,11,12,13,14,15],tF=["16:9","9:16","1:1","21:9","4:3","3:2","2:3","3:4"],tC={workflow:"kling-text-to-vi
1deo",editWorkflow:"kling-image-to-video",mode:"video",inputType:"t2v",features:[tS("Image Input","input"),tS("Start/End Frame","frame"),tS("Audio","audio"),tS("1080p","resolution"),tS("15 sec","duration")],paramConfig:{...t_.prompt({maxLength:2500}),...tT({durations:tR,defaultDuration:5}),multiShot:{label:"Multi-Shot Mode",descriptor:{kind:"boolean",default:!1}},shotType:{label:"Shot Segmentation",descriptor:{kind:"enum",valueType:"string",options:[{id:"customize",label:"Customize"},{id:"intelligence",label:"AI Auto"}],default:"customize"}},multiPrompt:{label:"Multi-Shot Prompts",descriptor:{kind:"object",array:{max:6},fields:{index:{kind:"range",min:0,max:5,default:0},prompt:{kind:"text",maxLength:512},duration:{kind:"text"}}}},voiceList:{label:"Voice References",descriptor:{kind:"object",array:{max:2},fields:{voice_id:{kind:"text"}}}},elementList:{label:"Element References",descriptor:{kind:"object",array:{max:3},fields:{element_id:{kind:"text"}}}},...t_.renderingSpeed([{id:"std",label:"Standard"},{id:"pro",label:"Pro"},{id:"4k",label:"4K"}],"4k")}}
1,tU={workflow:"kling-text-to-video",editWorkflow:"kling-image-to-video",mode:"video",inputType:"t2v",features:[tS("Image Input","input"),tS("1080p","resolution"),tS("15 sec","duration")],paramConfig:{...t_.prompt({maxLength:2500}),...t_.aspectRatio(["16:9","9:16","1:1"]),...t_.duration(tR,5),...t_.negativePrompt(),...t_.resolution(["720p","1080p"],"720p"),...t_.startFrame("Start Frame")}},tE={...tC,features:[tS("Image Input","input"),tS("Start/End Frame","frame"),tS("Audio","audio"),tS("1080p","resolution"),tS("5/10 sec","duration")],paramConfig:{...t_.prompt({maxLength:2500}),...tT({durations:[5,10],defaultDuration:5})}},{MODELS:tV}=tx("kling",[{...tC,id:"kling-v3",name:"Kling V3",modelId:"kling-v3",addedAt:"2026-02-06",estimatedTime:55,editEstimatedTime:55,badge:["popular","premium"],description:"Long-form video up to 15s with native audio and start/end frame control.",constraints:[{when:{generateAudio:{is:!1}},then:{voiceList:{disabled:!0,reason:"Voice references require generated audio."}}},{when:{generateAudio:{exists:!1}},then:{voiceList:{disabled:!0,reason:"Voice references require generated audio."}}},{when:{multiShot:{is:!0}},then:{startFrame:{disabled:!0,reason:"Frames are unavailable in multi-shot mode."},endFrame:{disabled:!0,reason:"Frames are unavailable in multi-shot mode."}}}]},{...tU,id:"kling-v3-turbo",name:"Kling V3 Turbo",modelId:"kling-v3-turbo",addedAt:"2026-06-18",estimatedTime:55,editEstimatedTime:55,badge:["new"],description:"Faster V3 variant â long-form video up to 15s with native audio, start/end frame control, and 720p/1080p output."},{...tE,id:"kling-v2-6",name:"Kling V2.6",modelId:"kling-v2-6",addedAt:"2026-02-11",estimatedTime:60,description:"Mature pipeline with audio and pro-tier rendering."},{id:"kling-v3-omni",name:"Kling V3 Omni",modelId:"kling-v3-omni",addedAt:"2026-02-06",workflow:"kling-omni-video",estimatedTime:55,mode:"video",inputType:"t2v",description:"Flexible generation across creative styles using V3 Omni architecture, with optional 4K output.",features:[tS("Image + Video Input","input"),tS("4K","resolution"),tS("15 sec","duration")],paramConfig:{...t_.prompt({maxLength:2500}),...t_.aspectRatio(["16:9","9:16","1:1"]),...t_.duration(tR,5),...t_.resolution(["720p","1080p","4k"],"720p"),...t_.generateAudio(!1),...t_.startFrame("First Frame"),...t_.endFrame("End Frame"),...t_.imageInput(7,"Reference Images"),...t_.videoInput("Reference Video","reference",!1),referType:{label:"Reference Video Mode",descriptor:{kind:"enum",valueType:"string",options:[{id:"feature",label:"Feature Reference"},{id:"base",label:"Base Edit"}],default:"feature"}},...tP,multiShot:{label:"Multi-Shot Mode",descriptor:{kind:"boolean",default:!1}},shotType:{label:"Shot Segmentation",descriptor:{kind:"enum",valueType:"string",options:[{id:"customize",label:"Customize"}],default:"customize"}},multiPrompt:{label:"Multi-Shot Prompts",descriptor:{kind:"object",array:{max:6},fields:{index:{kind:"range",min:0,max:5,default:0},prompt:{kind:"text",maxLength:512},duration:{kind:"text"}}}},elementList:{label:"Element References",descriptor:{kind:"object",array:{max:3},fields:{element_id:{kind:"text"}}}}},constraints:[{when:{videoUrl:{exists:!0}},then:{resolution:{allowed:["720p","1080p"],reason:"4K output is unavailable with a reference video."},generateAudio:{disabled:!0,reason:"Kling disables generated sound when a reference video is supplied."}}},{when:{startFrame:{exists:!1}},then:{endFrame:{disabled:!0,reason:"End frame requires a first frame."}}},{when:{referType:{is:"base"},videoUrl:{exists:!0}},then:{startFrame:{disabled:!0,reason:"Base video editing cannot be combined with frames."},endFrame:{disabled:!0,reason:"Base video editing cannot be combined with frames."},multiShot:{disabled:!0,reason:"Base video editing does not support multi-shot."},multiPrompt:{disabled:!0,reason:"Base video editing does not support multi-shot."}}}]},{id:"kling-video-o1",name:"Kling Video O1",modelId:"kling-video-o1",addedAt:"2026-03-11",workflow:"kling-omni-video",estimatedTime:55,mode:"video",inputType:"t2v",badge:["new"],description:"O1-architecture video generation with 5 or 10 second output.",features:[tS("1080p","resolution"),tS("10 sec","duration")],paramConfig:{...t_.prompt({maxLength:2500}),...t_.aspectRatio(["16:9","9:16","1:1"]),...t_.duration([5,10],5),...t_.renderingSpeed([{id:"std",label:"Standard"},{id:"pro",label:"Pro"}],"std"),...t_.generateAudio(!1)}},{id:"kling-motion-control-v3",name:"Kling Motion Control V3",addedAt:"2026-02-14",workflow:"kling-motion-control",estimatedTime:280,mode:"video",inputType:"i2v",badge:["popular"],description:"Map body movement from a video clip onto a portrait photo â V3 quality.",features:[tS("Image + Video","input"),tS("Motion Transfer","characteristic"),tS("V3","resolution")],paramConfig:{...t_.prompt({required:!1,maxLength:2500}),...t_.renderingSpeed([{id:"std",label:"Standard"},{id:"pro",label:"Pro"}],"std"),...tA,...tP,...t_.imageInput(1,"Person Photo (upper body)",!0),...t_.videoInput("Motion Reference Video")}},{id:"kling-motion-control",name:"Kling Motion Control 2.6",addedAt:"2026-02-10",workflow:"kling-motion-control",estimatedTime:300,mode:"video",inputType:"i2v",badge:["popular"],description:"Transfer body movement from a reference video onto a portrait photo.",features:[tS("Image + Video","input"),tS("Motion Transfer","characteristic"),tS("2.6","resolution")],paramConfig:{...t_.prompt({required:!1,maxLength:2500}),...t_.renderingSpeed([{id:"std",label:"Standard"},{id:"pro",label:"Pro"}],"std"),...tA,...tP,...t_.imageInput(1,"Person Photo (upper body)",!0),...t_.videoInput("Motion Reference Video")}},{id:"kling-avatar",name:"Kling Avatar",addedAt:"2026-02-10",workflow:"kling-avatar",estimatedTime:306,mode:"video",inputType:"i2v",description:"Lip-synced talking head from a portrait and speech audio.",features:[tS("Image + Audio","input"),tS("Talking Head","characteristic")],paramConfig:{...t_.prompt({required:!1,maxLength:2500}),...t_.renderingSpeed([{id:"std",label:"Standard"},{id:"pro",label:"Pro"}],"std"),...t_.imageInput(1,"Face Portrait",!0),...t_.audioInput("Speech Audio",!0),audioId:{label:"TTS Audio ID",descriptor:{kind:"text",placeholder:"audio_id from Kling TTS API"}}}},{id:"kling-3.0-image",name:"Kling 3.0 Image",modelId:"kling-v3-omni",addedAt:"2026-03-01",workflow:"kling/v1/images/omni-image",estimatedTime:20,mode:"image",inputType:"t2i",description:"Cinematic visuals with up to 4K resolution and 10 reference images.",features:[tS("Multi-Image Input","input"),tS("4K","resolution")],paramConfig:{...t_.prompt({maxLength:2500}),...t_.aspectRatio(tF),...t_.resolution(["1k","2k","4k"],"1k"),...t_.count([1,2,3,4,5,6,7,8,9]),...t_.imageInput(10,"Reference Images")}},{id:"kling-o1-image",name:"Kling O1 Image",modelId:"kling-image-o1",addedAt:"2026-03-01",workflow:"kling/v1/images/omni-image",estimatedTime:20,mode:"image",inputType:"t2i",description:"O1-architecture image generation with multi-reference support.",features:[tS("Multi-Image Input","input")],paramConfig:{...t_.prompt({maxLength:2500}),...t_.aspectRatio(tF),...t_.resolution(["1k","2k"],"1k"),...t_.count([1,2,3,4,5,6,7,8,9]),...t_.imageInput(10,"Reference Images")}},{id:"kling-v2-1-image",name:"Kling V2.1 Image",modelId:"kling-v2-1",addedAt:"2026-03-25",deprecated:!0,workflow:"kling/v1/images/generations",estimatedTime:15,mode:"image",inputType:"t2i",description:"V2.1 image generation with improved fidelity and restyle support.",features:[tS("Image Input","input"),tS("Negative Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:2500}),...t_.aspectRatio(tF),...t_.count([1,2,3,4,5,6,7,8,9]),...t_.negativePrompt(),...t_.imageInput(1,"Restyle Image")},constraints:[{when:{imageUrls:{exists:!0}},then:{negativePrompt:{disabled:!0,reason:"Negative prompt is ignored in image-to-image mode."}}}]},{id:"kling-multi-image-v2-1",name:"Kling Multi-Image V2.1",modelId:"kling-v2-1-multi",addedAt:"2026-03-25",deprecated:!0,workflow:"kling/v1/images/multi-image-to-image",estimatedTime:20,mode:"image",inputType:"i2i",description:"V2.1 multi-image composition with improved subject blending.",features:[tS("Multi-Image Input","input")],paramConfig:{...t_.prompt({required:!1,maxLength:2500}),...t_.aspectRatio(tF,"16:9"),...t_.count([1,2,3,4,5,6,7,8,9]),...t_.imageInput(4,"Subject Images",!0),sceneImage:{label:"Scene Reference",category:"reference",descriptor:{kind:"file",accept:"image"}},styleImage:{label:"Style Reference",category:"reference",descriptor:{kind:"file",accept:"image"}}}},{id:"kling-elements",name:"Kling Elements",addedAt:"2026-05-11",release:"preview",workflow:"kling-elements",estimatedTime:30,mode:"image",inputType:"i2i",description:"Save a character or scene to reuse across Kling models.",features:[tS("Multi-Image / Video Reference","input"),tS("Element Factory","characteristic")],paramConfig:{elementName:{label:"Element Name",required:!0,descriptor:{kind:"text",maxLength:20}},elementDescription:{label:"Element Description",required:!0,descriptor:{kind:"text",maxLength:100}},referenceType:{label:"Reference Type",required:!0,descriptor:{kind:"enum",valueType:"string",options:[{id:"image_refer",label:"Image Reference"},{id:"video_refer",label:"Video Reference"}],default:"image_refer"}},...t_.imageInput(4,"Reference Images (1st = frontal, plus 1-3 angles)",!1),...t_.videoInput("Reference Video","reference",!1),elementVoiceId:{label:"Voice ID (character/humanoid elements)",descriptor:{kind:"text"}}},constraints:[{when:{referenceType:{is:"video_refer"}},then:{imageUrls:{disabled:!0,reason:"Video reference uses the reference video, not images."}}},{when:{referenceType:{is:"image_refer"}},then:{videoUrl:{disabled:!0,reason:"Image reference uses reference images, not a video."}}},{when:{referenceType:{exists:!1}},then:{videoUrl:{disabled:!0,reason:"Image reference uses reference images, not a video."}}}]},{id:"kling-video-effects",name:"Kling Video Effects",addedAt:"2026-05-13",workflow:"kling/v1/video-effects",estimatedTime:30,mode:"video",inputType:"i2v",badge:["new"],description:"Apply curated Kling visual effects to photos â single or dual-image scenes.",features:[tS("Image Input","input"),tS("Video Effects","characteristic")],paramConfig:{...t_.catalog("templateId",{label:"Effect",s
1ource:{workflow:"kling/v1/catalog/templates"},default:"korean_baseball"}),...t_.imageInput(2,"Effect Images",!0,"reference",{minSidePixels:300})}},{id:"kling-t2a",name:"Kling T2A",addedAt:"2026-02-06",workflow:"kling-text-to-audio",estimatedTime:28,mode:"audio",inputType:"t2a",description:"Text-to-audio clips of 3â10 seconds from a prompt description.",features:[tS("Text-to-Audio","characteristic")],paramConfig:{...t_.prompt({maxLength:2500}),duration:{label:"Duration (s)",descriptor:{kind:"range",min:3,max:10,step:.5,default:5}}}},{id:"kling-v2a",name:"Kling V2A",addedAt:"2026-02-06",workflow:"kling-video-to-audio",estimatedTime:28,mode:"audio",inputType:"v2a",description:"Extract or generate a matching audio track from an uploaded video.",features:[tS("Video Input","input")],paramConfig:{...t_.videoInput("Source Video (3-20s, â¤100MB)","reference",!0,20,void 0,0x6400000)}}]),tL=(e,t)=>{let i=e.meta?.[t];return"string"==typeof i?i:void 0};function tM(e,t){return{id:e.id,name:e.name,description:e.description??"",tags:e.tags,provider:t,previewUrl:e.preview?.audioUrl}}function tO(e,t){return{id:e.id,name:e.name,description:e.description??"",tags:e.tags,provider:t,previewImageUrl:e.preview?.imageUrl,previewVideoUrl:e.preview?.videoUrl,gender:tL(e,"gender"),defaultVoiceId:tL(e,"defaultVoiceId")}}var tD=new Map,tq=e=>`${e.workflow} ${e.modelId??""}`,tK={voiceId:tM,videoId:tO};function tG(e,t,i){if(!e?.length||e.length>6)throw new tp(`${i}: multi-shot mode requires 1-6 storyboard entries in multiPrompt.`,{status:400,code:"validation_error"});let a=e.map(e=>Number(e.duration));if(a.some(e=>!Number.isFinite(e)||e<1||e>t))throw new tp(`${i}: each storyboard duration must be between 1 and the total duration (${t}s).`,{status:400,code:"validation_error"});let r=a.reduce((e,t)=>e+t,0);if(r!==t)throw new tp(`${i}: storyboard durations must add up to the total duration (${r}s \u2260 ${t}s).`,{status:400,code:"validation_error"})}var t$=e=>({prompt:e.negativePrompt?`${e.prompt}. Avoid: ${e.negativePrompt}`.slice(0,2500):e.prompt,aspect_ratio:e.aspectRatio??"16:9",duration:String(e.duration??5),model_name:"kling-v3-turbo",resolution:e.resolution??"720p",...e.startFrame?{image:e.startFrame}:{}}),tj=e=>{let t=!!(e.startFrame&&e.endFrame),i=!!e.generateAudio&&!t;return{prompt:e.prompt,aspect_ratio:e.aspectRatio??"16:9",duration:String(e.duration??5),model_name:"kling-v2-6",...e.startFrame?{image:e.startFrame}:{},...t?{image_tail:e.endFrame}:{},...e.negativePrompt?{negative_prompt:e.negativePrompt}:{},...i?{sound:"on"}:{},mode:"pro"}},tW=e=>t=>({prompt:t.prompt,image_url:t.imageUrls[0],video_url:t.videoUrl,character_orientation:t.characterOrientation??"video",mode:t.renderingSpeed??"std",...t.keepOriginalSound?{keep_original_sound:t.keepOriginalSound}:{},model_name:e}),tz=e=>t=>({prompt:t.prompt,model_name:e,n:t.count??1,...t.aspectRatio?{aspect_ratio:t.aspectRatio}:{},...t.resolution?{resolution:t.resolution}:{},...t.imageUrls?.length?{image_list:t.imageUrls.map(e=>({image_url:e}))}:{}}),tB=new Set(["pet_skateboard","daily_ootd","toss_run","switch_to_silk","studio_look","french_elegance","finger_swipe","smooth_transition","kiss_pro","snow_night_kiss","eternal_kiss","cheers_2026","fight_pro","hug_pro","heart_gesture_pro"]),tN=((e="std")=>t=>{let i=!!(t.startFrame&&t.endFrame),a=!!t.generateAudio,r=t.renderingSpeed??e,o=t.duration??5;t.multiShot&&(t.shotType??"customize")!=="intelligence"&&tG(t.multiPrompt,o,"Kling V3");let n=a&&t.startFrame?t.voiceList:void 0;return{...t.multiShot?{}:{prompt:t.prompt},aspect_ratio:t.aspectRatio??"16:9",duration:String(o),model_name:"kling-v3",...t.startFrame?{image:t.startFrame}:{},...i?{image_tail:t.endFrame}:{},...t.negativePrompt?{negative_prompt:t.negativePrompt}:{},...a?{sound:"on"}:{},mode:r,...null!=t.multiShot?{multi_shot:t.multiShot}:{},...t.shotType?{shot_type:t.shotType}:{},...t.multiPrompt?{multi_prompt:t.multiPrompt}:{},...n?{voice_list:n}:{},...t.startFrame&&t.elementList&&!n?{element_list:t.elementList}:{}}})("std");tI(tV,{"kling-v3":tN,"kling-v3-turbo":t$,"kling-v2-6":tj,"kling-v3-omni":e=>{let t,i=[...e.startFrame?[{image_url:e.startFrame,type:"first_frame"}]:[],...e.endFrame?[{image_url:e.endFrame,type:"end_frame"}]:[],...(e.imageUrls??[]).map(e=>({image_url:e}))],a=e.videoUrl?[{video_url:e.videoUrl,refer_type:e.referType??"feature",keep_original_sound:e.keepOriginalSound??"yes"}]:[],r=a[0]?.refer_type==="base",o=a.length>0,n=!!e.generateAudio&&!o,s="4k"===e.resolution?o?"pro":"4k":"1080p"===e.resolution?"pro":"std",d=e.duration??5;
1return e.multiShot&&!r&&tG(e.multiPrompt,d,"Kling V3 Omni"),{...e.multiShot?{}:{prompt:e.prompt},model_name:"kling-v3-omni",...r||e.startFrame?{}:{aspect_ratio:e.aspectRatio??"16:9"},...r?{}:{duration:String(d)},mode:s,...null!=e.multiShot?{multi_shot:e.multiShot}:{},...e.shotType?{shot_type:e.shotType}:{},...e.multiPrompt?{multi_prompt:e.multiPrompt}:{},...i.length?{image_list:i}:{},...a.length?{video_list:a}:{},...(t=e.elementList,t?.length?{element_list:t.map(e=>({element_id:String(e.element_id)}))}:{}),...n?{sound:"on"}:{}}},"kling-video-o1":e=>{let t=!!e.generateAudio;return{prompt:e.prompt,model_name:"kling-video-o1",aspect_ratio:e.aspectRatio??"16:9",duration:String(e.duration??5),...e.renderingSpeed?{mode:e.renderingSpeed}:{},...t?{sound:"on"}:{}}},"kling-motion-control-v3":tW("kling-v3"),"kling-motion-control":tW("kling-v2-6"),"kling-avatar":e=>({image:e.imageUrls[0],...e.audioUrl?{sound_file:e.audioUrl}:e.audioId?{audio_id:e.audioId}:{},prompt:e.prompt,...e.renderingSpeed?{mode:e.renderingSpeed}:{}}),"kling-3.0-image":tz("kling-v3-omni"),"kling-o1-image":tz("kling-image-o1"),"kling-v2-1-image":e=>{let t=!!e.imageUrls?.[0];return{prompt:e.prompt,model_name:"kling-v2-1",n:e.count??1,...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{},...e.negativePrompt&&!t?{negative_prompt:e.negativePrompt}:{},...t?{image:e.imageUrls[0]}:{}}},"kling-multi-image-v2-1":e=>({model_name:"kling-v2-1",n:e.count??1,...e.prompt?{prompt:e.prompt}:{},subject_image_list:(e.imageUrls??[]).map(e=>({subject_image:e})),...e.sceneImage?{scene_image:e.sceneImage}:{},...e.styleImage?{style_image:e.styleImage}:{},...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{}}),"kling-elements":e=>{let t="video_refer"===e.referenceType;if(t&&!e.videoUrl)throw new tp("Kling Elements: video reference requires a reference video.",{status:400,code:"validation_error"});if(!t&&(e.imageUrls?.length??0)<2)throw new tp("Kling Elements: image reference requires at least 2 images â a frontal image plus 1-3 additional angles.",{status:400,code:"validation_error"});return{element_name:e.elementName,element_description:e.elementDescription,reference_type:e.referenceType??"image_refer",...t?{element_video_list:{refer_videos:[{video_url:e.videoUrl}]}}:{element_image_list:{frontal_image:e.imageUrls[0],refer_images:e.imageUrls.slice(1).map(e=>({image_url:e}))}},...e.elementVoiceId?{element_voice_id:e.elementVoiceId}:{}}},"kling-video-effects":e=>{var t;let i=e.templateId,a=(t={workflow:"kling/v1/catalog/templates"},tD.get(tq(t)))?.items.find(e=>e.id===i),r="number"==typeof a?.meta?.imageSlots?a.meta.imageSlots:i&&tB.has(i)?2:1,o=e.imageUrls?.length??0;if(o<r)throw new tp(`Kling Video Effects: the "${i}" effect requires ${r} image${r>1?"s":""} (got ${o}).`,{status:400,code:"validation_error"});return{effect_scene:i,...2===r?{images:e.imageUrls.slice(0,2)}:{image:e.imageUrls[0]}}},"kling-t2a":e=>({prompt:e.prompt,duration:e.duration??5}),"kling-v2a":e=>({video_url:e.videoUrl})}),tk(tV,{"kling-v3":tN,"kling-v3-turbo":t$,"kling-v2-6":tj});var tH=[6,8,10],tQ=[6,8,10,12,14,16,18,20],tX=["1080p","1440p","2160p"],tJ=["16:9","9:16"],tY=[24,25,48,50],tZ=["16:9","9:16"],t0=[{id:"none",label:"None"},{id:"static",label:"Static"},{id:"dolly_in",label:"Dolly In"},{id:"dolly_out",label:"Dolly Out"},{id:"dolly_left",label:"Dolly Left"},{id:"dolly_right",label:"Dolly Right"},{id:"jib_up",label:"Jib Up"},{id:"jib_down",label:"Jib Down"},{id:"focus_shift",label:"Focus Shift"}],t1="Videos longer than 10s render at 720p/1080p and 24 or 25 fps.",t2=[12,14,16,18,20].map(e=>({when:{duration:{is:e}},then:{resolution:{allowed:["720p","1080p"],reason:t1},fps:{allowed:[24,25],reason:t1}}})),t3="Videos longer than 10s render at 1080p / 25 fps.",t6=[12,14,16,18,20].map(e=>({when:{duration:{is:e}},then:{resolution:{allowed:["1080p"],reason:t3},fps:{allowed:[25],reason:t3}}})),t4=e=>({prompt:e.prompt,...e.imageUrls?.[0]?{image_url:e.imageUrls[0]}:{},...null!=e.duration?{duration:e.duration}:{},...e.resolution?{resolution:e.resolution}:{},generate_audio:e.generateAudio??!0}),t5=e=>({prompt:e.prompt,image_url:e.imageUrls?.[0],...null!=e.duration?{duration:e.duration}:{},...e.resolution?{resolution:e.resolution}:{},generate_audio:e.generateAudio??!0}),t8=e=>({prompt:e.prompt,...e.imageUrls?.[0]?{image_url:e.imageUrls[0]}:{},...null!=e.duration?{duration:e.duration}:{},...e.resolution?{resolution:e.resolution}:{},...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{},...null!=e.fps?{fps:e.fps}:{},generate_audio:e.generateAudio??!0}),t7=e=>({prompt:e.prompt,image_url:e.imageUrls?.[0],...e.endFrame?{end_image_url:e.endFrame}:{},...null!=e.duration?{duration:e.duration}:{},...e.resolution?{resolution:e.resolution}:{},...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{},...null!=e.fps?{fps:e.fps}:{},generate_audio:e.generateAudio??!0}),{MODELS:t9}=tx("ltx",[{id:"ltx-pro-t2v",name:"LTX Pro",modelId:"ltx-v2-pro",addedAt:"2026-02-06",deprecated:!0,workflow:"ltxv-2/text-to-vi
1deo",editWorkflow:"ltxv-2/image-to-video",buildPayload:t4,buildEditPayload:t5,estimatedTime:75,editEstimatedTime:78,mode:"video",inputType:"t2v",description:"4K output with audio â streamlined for fast, production-ready results.",features:[tS("Image Input","input"),tS("Start Frame","frame"),tS("Audio","audio"),tS("4K","resolution"),tS("6/8/10 sec","duration")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.duration(tH,6),...t_.resolution([...tX]),...t_.generateAudio(),...t_.imageInput()}},{id:"ltx-v2-fast",name:"LTX Fast",addedAt:"2026-02-06",deprecated:!0,workflow:"ltxv-2/text-to-video/fast",editWorkflow:"ltxv-2/image-to-video/fast",buildPayload:t4,buildEditPayload:t5,estimatedTime:38,editEstimatedTime:40,mode:"video",inputType:"t2v",description:"Fast with long video support â up to 20s at 1080p, ideal for drafts and extended scenes.",features:[tS("Image Input","input"),tS("Fast","duration"),tS("Up to 20s","duration"),tS("Audio","audio"),tS("4K","resolution")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.duration(tQ,6),...t_.resolution([...tX]),...t_.generateAudio(),...t_.imageInput()}},{id:"ltx-v2-retake",name:"LTX Retake",addedAt:"2026-02-06",deprecated:!0,workflow:"ltx-2/retake-video",buildPayload:e=>({prompt:e.prompt,video_url:e.videoUrl,...null!=e.duration?{duration:e.duration}:{}}),estimatedTime:33,mode:"video",inputType:"v2v",description:"Reinterpret existing footage with a new visual direction â up to 20s segments.",features:[tS("Video Input","input"),tS("Up to 20s","duration")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.duration([5,10,15,20],5),...t_.videoInput("Source Video")}},{id:"ltx-v2.3-pro",name:"LTX 2.3 Pro",addedAt:"2026-03-19",workflow:"ltx-2.3/text-to-video",editWorkflow:"ltx-2.3/image-to-video",buildPayload:t8,buildEditPayload:t7,estimatedTime:75,editEstimatedTime:78,mode:"video",inputType:"t2v",description:"4K output with audio and aspect ratio control â production-ready v2.3.",features:[tS("Image Input","input"),tS("Start Frame","frame"),tS("Audio","audio"),tS("4K","resolution"),tS("16:9 / 9:16","characteristic"),tS("6/8/10 sec","duration")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.duration(tH,6),...t_.resolution([...tX]),...t_.aspectRatio(tJ),...tw.enum("fps",tY,25,{label:"FPS"}),...t_.generateAudio(),...t_.imageInput(),...t_.endFrame()},constraints:[{when:{imageUrls:{exists:!1}},then:{endFrame:{disabled:!0,reason:"An end frame requires a start image."}}}]},{id:"ltx-v2.3-fast",name:"LTX 2.3 Fast",addedAt:"2026-03-19",workflow:"ltx-2.3/text-to-video/fast",editWorkflow:"ltx-2.3/image-to-video/fast",buildPayload:t8,buildEditPayload:t7,estimatedTime:38,editEstimatedTime:40,mode:"video",inputType:"t2v",description:"Fast 2.3 with long video support â up to 20s at 1080p with aspect ratio control.",features:[tS("Image Input","input"),tS("Fast","duration"),t
1S("Up to 20s","duration"),tS("Audio","audio"),tS("4K","resolution"),tS("16:9 / 9:16","characteristic")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.duration(tQ,6),...t_.resolution([...tX]),...t_.aspectRatio(tJ),...tw.enum("fps",tY,25,{label:"FPS"}),...t_.generateAudio(),...t_.imageInput(),...t_.endFrame()},constraints:[...t6,{when:{imageUrls:{exists:!1}},then:{endFrame:{disabled:!0,reason:"An end frame requires a start image."}}}]},{id:"ltx-2.3-a2v",name:"LTX 2.3 Audio-to-Video",modelId:"ltx-v2.3-pro",addedAt:"2026-03-19",workflow:"ltx-2.3/audio-to-video",buildPayload:e=>{if(!e.prompt&&!e.imageUrls?.[0])throw new tp("LTX 2.3 Audio-to-Video: provide a prompt or a first-frame image.",{status:400,code:"validation_error"});return{audio_url:e.audioUrl,...e.prompt?{prompt:e.prompt}:{},...e.imageUrls?.[0]?{image_url:e.imageUrls[0]}:{},...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{},...null!=e.cfgScale?{guidance_scale:e.cfgScale}:{}}},estimatedTime:60,mode:"video",inputType:"a2v",description:"Generate video driven by an audio track â 2-20s, optional image for first frame.",features:[tS("Audio Input","audio"),tS("Image Input","input"),tS("2â20 sec","duration")],paramConfig:{...t_.prompt({required:!1,maxLength:5e3}),...t_.audioInput("Audio Track",!0),...t_.imageInput(1,"First Frame Image",!1),...t_.aspectRatio(["auto",...tJ]),cfgScale:{label:"CFG Scale",descriptor:{kind:"range",min:1,max:50,step:1}}}},{id:"ltx-v2.3-extend",name:"LTX 2.3 Extend",addedAt:"2026-03-19",workflow:"ltx-2.3/extend-video",buildPayload:e=>({video_url:e.videoUrl,...e.prompt?{prompt:e.prompt}:{},...null!=e.duration?{duration:e.duration}:{},mode:e.mode??"end"}),estimatedTime:45,mode:"video",inputType:"v2v",description:"Seamlessly extend an existing video forward or backward â up to 20s.",features:[tS("Video Input","input"),tS("Up to 20s","duration")],paramConfig:{...t_.prompt({required:!1,maxLength:5e3}),...t_.durationRange(2,20,5,1),...tw.enum("mode",["end","start"],"end",{label:"Extend Direction"}),...t_.videoInput("Source Video")}},{id:"ltx-v2.3-retake",name:"LTX 2.3 Retake",addedAt:"2026-03-19",workflow:"ltx-2.3/retake-video",buildPayload:e=>({prompt:e.prompt,video_url:e.videoUrl,...null!=e.duration?{duration:e.duration}:{},retake_mode:e.retakeMode??"replace_audio_and_video",...null!=e.startTime?{start_time:e.startTime}:{}}),estimatedTime:33,mode:"video",inputType:"v2v",description:"Retake video with new direction â replace audio, video, or both.",features:[tS("Video Input","input"),tS("Up to 20s","duration")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.durationRange(2,20,5,1),...tw.enum("retakeMode",["replace_audio_and_video","replace_audio","replace_video"],"replace_audio_and_video",{label:"Retake Mode"}),startTime:{label:"Start Time (s)",descriptor:{kind:"range",min:0,max:20,step:1}},...t_.videoInput("Source Video")}},{id:"ltx-v2.3-reframe",name:"LTX 2.3 Reframe",modelId:"fal-ai-ltx-2.3-reframe",addedAt:"2026-09-23",workflow:"ltx-2.3/reframe",estimatedTime:45,mode:"video",inputType:"v2v",description:"Reframe a video into a new aspect ratio â the source is re-cropped and the newly exposed edges are generated to match. Takes no prompt.",features:[tS("Video Input","input"),tS("Aspect Ratio","characteristic"),tS("Up to 1080p","resolution")],paramConfig:{...t_.videoInput("Source Video","asset",!0),...t_.resolution(["720p","1080p"],"1080p"),...t_.aspectRatio(["16:9","9:16","1:1","4:5","5:4"])}},{id:"ltx-v2.3-outpaint",name:"LTX 2.3 Outpaint",modelId:"fal-ai-ltx-2.3-quality-outpaint",addedAt:"2026-09-23",workflow:"ltx-2.3-quality/outpaint",estimatedTime:180,mode:"video",inputType:"v2v",description:"Expand a video past its original frame â the source stays put inside a wider canvas and the surrounding region is generated to match.",features:[tS("Video Input","input"),tS("Outpaint","characteristic"),tS("Audio","audio"),tS("Up to 1080p","resolution")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.videoInput("Source Video","asset",!0),...t_.negativePrompt(),...t_.aspectRatio(["21:9","16:9","4:3","1:1","3:4","9:16","9:21"]),...t_.resolution(["480p","720p","1080p"],"720p"),...tw.range("numFrames",9,481,121,{label:"Frames"}),...tw.range("fps",1,60,24,{label:"FPS"}
1),...tw.range("sourceScale",.25,1,1,{step:.05,label:"Source Scale"}),...tw.range("videoStrength",0,1,1,{step:.05,label:"Source Strength"}),...t_.cfgScale(1,20,1),...tw.range("numInferenceSteps",8,30,15,{label:"Inference Steps"}),...tw.enum("videoQuality",["low","medium","high","maximum"],"high",{label:"Video Quality"}),...tw.enum("videoWriteMode",["fast","balanced","small"],"balanced",{label:"Write Mode"}),...t_.enhancePrompt(),...t_.generateAudio(),...tw.boolean("enableSafetyChecker",!0,"Safety Checker"),...t_.seed()}},{id:"ltx-v2.5-pro",name:"LTX 2.5 Pro",modelId:"fal-ai-ltx-2.5-pro",addedAt:"2026-09-23",workflow:"lightricks/ltx-2.5/text-to-video/pro",editWorkflow:"lightricks/ltx-2.5/image-to-video/pro",estimatedTime:75,editEstimatedTime:78,mode:"video",inputType:"t2v",description:"Quality-optimized 2.5 with synchronized native audio in a single pass â 720p/1080p, 6-10s, with camera motion control.",features:[tS("Image Input","input"),tS("Start Frame","frame"),tS("End Frame","frame"),tS("Audio","audio"),tS("Camera Motion","characteristic"),tS("6/8/10 sec","duration")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.duration(tH,6),...t_.resolution(["720p","1080p"],"1080p"),...t_.aspectRatio(tZ),...tw.enum("fps",[24,25,50],25,{label:"FPS"}),...tw.enum("cameraMotion",t0,"none",{label:"Camera Motion"}),...t_.generateAudio(),...t_.startFrame("Start Frame"),...t_.endFrame()},constraints:[{when:{startFrame:{exists:!1}},then:{endFrame:{disabled:!0,reason:"An end frame requires a start image."}}}]},{id:"ltx-v2.5-fast",name:"LTX 2.5 Fast",modelId:"fal-ai-ltx-2.5-fast",addedAt:"2026-09-23",workflow:"lightricks/ltx-2.5/text-to-vi
1deo/fast",editWorkflow:"lightricks/ltx-2.5/image-to-video/fast",estimatedTime:38,editEstimatedTime:40,mode:"video",inputType:"t2v",description:"Speed-optimized 2.5 with synchronized native audio â up to 4K, up to 20s, with camera motion control.",features:[tS("Image Input","input"),tS("Start Frame","frame"),tS("End Frame","frame"),tS("Fast","duration"),tS("Up to 20s","duration"),tS("Audio","audio"),tS("4K","resolution"),tS("Camera Motion","characteristic")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.duration(tQ,6),...t_.resolution(["720p","1080p","1440p","2160p"],"1080p"),...t_.aspectRatio(tZ),...tw.enum("fps",[24,25,48,50],25,{label:"FPS"}),...tw.enum("cameraMotion",t0,"none",{label:"Camera Motion"}),...t_.generateAudio(),...t_.startFrame("Start Frame"),...t_.endFrame()},constraints:[...t2,{when:{startFrame:{exists:!1}},then:{endFrame:{disabled:!0,reason:"An end frame requires a start image."}}}]}]),{MODELS:ie}=tx("creatify",[{id:"creatify-aurora",name:"Creatify Aurora HD",addedAt:"2026-02-06",workflow:"creatify/aurora",buildPayload:e=>({prompt:e.prompt,url:e.imageUrls?.[0],image_url:e.imageUrls?.[0],...e.audioUrl?{audio_url:e.audioUrl}:{}}),estimatedTime:169,mode:"video",inputType:"i2v",description:"Product showcase from still images with gentle camera motion.",features:[tS("Image Input","input"),tS("Audio Input","audio")],paramConfig:{...t_.prompt({required:!1}),...t_.imageInput(1,"Product Image",!0),...t_.audioInput("Audio Track",!0)}},{id:"creatify-boreal",name:"Creatify Boreal",addedAt:"2026-09-22",workflow:"creatify/boreal",estimatedTime:169,mode:"video",inputType:"t2v",description:"Text-to-video with synchronized native audio for product, UGC, and presenter clips.",features:[tS("Image Input","input"),tS("Audio Input","audio")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.imageInput(1,"Reference Image",!1,"asset"),...t_.audioInput("Audio Track",!1),...t_.negativePrompt(),...t_.resolution(["720p","1080p","2k"],"720p"),...t_.aspectRatio(["auto","16:9","9:16","1:1","4:3","3:4"],"auto"),...t_.durationRange(1,20,10),...tw.boolean("manifestDisclosure",!1,"AI-Generated Disclosure")}}]),it={buildPayload:e=>({prompt:e.prompt,image_url:e.imageUrls?.[0],resolution:e.resolution??"720p",...e.audioUrl?{audio_url:e.audioUrl}:{}}),mode:"video",inputType:"i2v",paramConfig:{...t_.prompt({required:!1}),...t_.resolution(["480p","720p"],"720p"),...t_.imageInput(1,"Start Image",!0),...t_.audioInput("Audio Track",!0)}},{MODELS:ii}=tx("veed",[{...it,id:"veed-fabric-v1",name:"VEED Fabric 1.0",addedAt:"2026-02-06",workflow:"veed/fabric-1.0",estimatedTime:500,description:"Image-driven video with layered ambient atmosphere and optional audio.",features:[tS("Image Input","input"),tS("Audio Input","audio"),tS("720p","resolution")]},{...it,id:"veed-fabric-v1-fast",name:"VEED Fabric 1.0 Fast",addedAt:"2026-02-06",workflow:"veed/fabric-1.0/fast",estimatedTime:514,description:"Quick ambient video from images with optional audio overlay.",features:[tS("Image Input","input"),tS("Audio Input","audio"),tS("720p","resolution"),tS("Fast","duration")]}]),ia={"9:16":"512x992","16:9":"992x512","1:1":"720x720","9:16+":"512x960","16:9+":"960x512","2:5":"448x1120","5:2":"1120x448"},{MODELS:ir}=tx("ovi",[{id:"ovi",name:"OVI",addedAt:"2026-02-06",workflow:"ovi",editWorkflow:"ovi/image-to-video",buildPayload:e=>({prompt:e.prompt,...e.imageUrls?.[0]?{image_url:e.imageUrls[0]}:{},...e.size?{resolution:ia[e.size]??e.size}:{}}),estimatedTime:251,editEstimatedTime:286,mode:"video",inputType:"t2v",description:"Straightforward text/image-to-video at 720p with broad style coverage.",features:[tS("Image Input","input"),tS("720p","resolution")],paramConfig:{...t_.prompt(),...tw.size(["9:16","16:9","1:1","9:16+","16:9+","2:5","5:2"],"16:9"),...t_.imageInput()}}]),{MODELS:io}=tx("bytedance",[{id:"bytedance-video-upscaler",name:"ByteDance Upscaler",addedAt:"2026-02-06",workflow:"bytedance-upscaler/upscale/video",buildPayload:e=>({video_url:e.videoUrl,target_resolution:"1080p"}),estimatedTime:88,mode:"video",inputType:"v2v",deprecated:!0,description:"AI upscale video resolution â enhance existing footage to 1080p.",features:[tS("Video Input","input"),tS("1080p","resolution")],paramConfig:{...t_.videoInput("Video to Upscale","reference",!0,void 0,1079)}},{id:"bytedance-omnihuman-v1.5",name:"ByteDance OmniHuman",addedAt:"2026-02-06",workflow:"bytedance/omnihuman/v1.5",modelId:"bytedance-omnihuman-1.5",estimatedTime:250,mode:"video",inputType:"i2v",description:"Animate a portrait with realistic body movement driven by audio.",features:[tS("Image Input","input"),tS("Audio Input","audio"),tS("1080p","resolution")],paramConfig:{...t_.prompt({required:!1,maxLength:300}),...t_.imageInput(1,"Portrait Image",!0),...t_.audioInput("Audio Track",!0),...t_.resolution(["720p","1080p"],"1080p"),...tw.boolean("turboMode",!1,"Turbo Mode"),...tw.range("seed",-1,0x7fffffff,-1)}},{id:"bytedance-video-enhance",name:"ByteDance Video Enhance",addedAt:"2026-07-29",workflow:"bytedance/video-enhance",estimatedTime:300,mode:"video",inputType:"v2v",description:"Denoise, color-correct and super-resolve existing footage up to 8K, with frame-rate conversion.",features:[tS("Video Required","input"),tS("Up to 8K","resolution"),tS("Enhance","quality")],paramConfig:{...t_.videoInput("Source Video","asset",!0),...tw.quality(["standard","professional"],"standard"),...tw.enum("resolution",["source","720p","1080p","2k","4k","8k"],"source"),...tw.enum("fps",[30,60,120],30),...tw.enum("scene",["common","ugc","short_series","aigc","old_film"],"common"),...tw.enum("bitrateLevel",["low","medium","high"],"medium")}
1,constraints:[{when:{quality:{is:"professional"}},then:{scene:{disabled:!0,reason:"Scene presets only apply to the standard version"}}}]}]),is="standard";tI(io,{"bytedance-video-enhance":e=>{let t=e.quality??is;return{video_url:e.videoUrl,tool_version:t,bitrate_level:e.bitrateLevel??"medium",fps:e.fps??30,...e.resolution&&"source"!==e.resolution?{resolution:e.resolution}:{},...e.scene&&t===is?{scene:e.scene}:{}}},"bytedance-omnihuman-v1.5":e=>({image_url:e.imageUrls[0],audio_url:e.audioUrl,resolution:e.resolution??"1080p",...e.prompt?{prompt:e.prompt}:{},...e.turboMode?{turbo_mode:!0}:{},...null!=e.seed&&-1!==e.seed?{seed:e.seed}:{}})});var{MODELS:id}=tx("videography",[{id:"picsart-videography",name:"Videography",addedAt:"2026-02-06",workflow:"videography",buildPayload:e=>({imageUrl:e.imageUrls?.[0]}),estimatedTime:82,mode:"video",inputType:"i2v",description:"Turn a still photo into polished video with automated composition.",features:[tS("Image Input","input")],paramConfig:{...t_.imageInput(1,"Source Image",!0)}}]),il={"1:1":"square_hd","16:9":"landscape_16_9","9:16":"portrait_16_9","4:3":"landscape_4_3","3:4":"portrait_4_3"},{MODELS:iu}=tx("hunyuan",[{id:"hunyuan-v3",name:"Hunyuan V3",modelId:"hunyuan-v3",addedAt:"2026-02-06",workflow:"hunyuan-image/v3/text-to-image",buildPayload:e=>({prompt:e.prompt,num_images:e.count??1,...null!=e.cfgScale?{guidance_scale:e.cfgScale}:{},...e.negativePrompt?{negative_prompt:e.negativePrompt}:{},...e.aspectRatio&&il[e.aspectRatio]?{image_size:il[e.aspectRatio]}:{}}),estimatedTime:74,mode:"image",inputType:"t2i",description:"Infographic-friendly generation with readable text and cfg control.",features:[tS("1K","resolution")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["1:1","16:9","9:16","4:3","3:4"],"16:9"),...t_.count([1,2,4]),...t_.negativePrompt(),...t_.cfgScale(1,20,7.5,.5)}}]),im=e=>t=>({prompt:t.prompt,...void 0!==t.enhancePrompt?{prompt_optimizer:t.enhancePrompt}:{},...e&&t.duration?{duration:t.duration}:{}}),ip=e=>t=>({prompt:t.prompt,image_url:t.imageUrls?.[0],...void 0!==t.enhancePrompt?{prompt_optimizer:t.enhancePrompt}:{},...e&&t.duration?{duration:t.duration}:{}}),ic="First/last frame and reference inputs cannot be combined.",ig={mode:"video"},{MODELS:ih}=tx("minimax",[{...ig,id:"hailuo-2.3",name:"Hailuo 2.3",modelId:"hailuo-2.3",addedAt:"2026-02-06",inputType:"t2v",workflow:"minimax/hailuo-2.3/standard/text-to-vi
1deo",editWorkflow:"minimax/hailuo-2.3/standard/image-to-video",buildPayload:im(!0),buildEditPayload:ip(!0),estimatedTime:150,description:"Stylized 768p animation with strong character expression and emotion.",features:[tS("Image Input","input"),tS("Start Frame","frame"),tS("768p","resolution"),tS("10 sec","duration")],paramConfig:{...t_.prompt({maxLength:2e3}),...t_.enhancePrompt(),...t_.duration([6,10]),...t_.imageInput()}},{...ig,id:"hailuo-2.3-pro",name:"Hailuo 2.3 Pro",modelId:"hailuo-2.3-pro",addedAt:"2026-02-06",inputType:"t2v",workflow:"minimax/hailuo-2.3/pro/text-to-video",editWorkflow:"minimax/hailuo-2.3/pro/image-to-video",buildPayload:im(!1),buildEditPayload:ip(!1),estimatedTime:165,description:"1080p output focused on detailed scenes and polished short-form content.",features:[tS("Image Input","input"),tS("Start Frame","frame"),tS("1080p","resolution"),tS("6 sec","duration")],paramConfig:{...t_.prompt({maxLength:2e3}),...t_.enhancePrompt(),...t_.imageInput()}},{...ig,id:"hailuo-2.3-fast",name:"Hailuo 2.3 Fast",modelId:"hailuo-2.3-fast",addedAt:"2026-02-06",inputType:"i2v",workflow:"minimax/hailuo-2.3-fast/standard/image-to-video",buildPayload:ip(!0),estimatedTime:173,description:"Quick 768p previews with expressive characters for rapid experimentation.",features:[tS("Image Input","input"),tS("Start Frame","frame"),tS("768p","resolution"),tS("10 sec","duration")],paramConfig:{...t_.prompt({maxLength:2e3}),...t_.enhancePrompt(),...t_.duration([6,10]),...t_.imageInput(1,"Start Image",!0)}},{...ig,id:"hailuo-2.3-fast-pro",name:"Hailuo 2.3 Fast Pro",modelId:"hailuo-2.3-fast-pro",addedAt:"2026-02-06",inputType:"i2v",workflow:"minimax/hailuo-2.3-fast/pro/image-to-video",buildPayload:ip(!1),estimatedTime:162,description:"Fast 1080p output for short, polished clips with varied styles.",features:[tS("Image Input","input"),tS("Start Frame","frame"),tS("1080p","resolution"),tS("6 sec","duration")],paramConfig:{...t_.prompt({maxLength:2e3}),...t_.enhancePrompt(),...t_.imageInput(1,"Start Image",!0)}},{...ig,id:"minimax-h3",name:"MiniMax H3",modelId:"minimax-h3",addedAt:"2026-07-30",inputType:"t2v",workflow:"minimax/v2/video-generation",buildPayload:e=>{let t=[{type:"text",text:e.prompt}];for(let i of(e.startFrame&&t.push({type:"image_url",image_url:{url:e.startFrame},role:"first_frame"}),e.endFrame&&t.push({type:"image_url",image_url:{url:e.endFrame},role:"last_frame"}),e.imageUrls??[]))t.push({type:"image_url",image_url:{url:i},role:"reference_image"});for(let i of e.videoUrls??[])t.push({type:"video_url",video_url:{url:i},role:"reference_video"});for(let i of e.audioUrls??[])t.push({type:"audio_url",audio_url:{url:i},role:"reference_audio"});return{model:"MiniMax-H3",content:t,resolution:e.resolution??"2K",duration:e.duration??5,...e.aspectRatio?{ratio:e.aspectRatio}:{}}},estimatedTime:300,description:"MiniMax H3 2K video from text, start/last frame, or image/video/audio references.",features:[tS("Start Frame","frame"),tS("End Frame","frame"),tS("Reference Video","input"),tS("2K","resolution"),tS("15 sec","duration")],paramConfig:{...t_.prompt({maxLength:7e3}),...t_.startFrame(),...t_.endFrame(),...t_.imageInput(9,"Reference Images",!1),...t_.videoInputs(3,"Reference Videos",!1),...t_.audioInputs(3,"Reference Audios",!1),...t_.resolution(["768P","2K"],"2K"),...t_.durationRange(5,15,5),...tw.aspectRatio(["adaptive","21:9","16:9","4:3","1:1","3:4","9:16"],"adaptive")},constraints:[{when:{startFrame:{exists:!0}},then:{imageUrls:{disabled:!0,reason:ic},videoUrls:{disabled:!0,reason:ic},audioUrls:{disabled:!0,reason:ic}}},{when:{endFrame:{exists:!0}},then:{imageUrls:{disabled:!0,reason:ic},videoUrls:{disabled:!0,reason:ic},audioUrls:{disabled:!0,reason:ic}}},{when:{imageUrls:{exists:!0}},then:{startFrame:{disabled:!0,reason:ic},endFrame:{disabled:!0,reason:ic}}},{when:{videoUrls:{exists:!0}},then:{startFrame:{disabled:!0,reason:ic},endFrame:{disabled:!0,reason:ic}}},{when:{audioUrls:{exists:!0}},then:{startFrame:{disabled:!0,reason:ic},endFrame:{disabled:!0,reason:ic}}},{when:{startFrame:{exists:!1}},then:{endFrame:{disabled:!0,reason:"An end frame requires a start frame."}}},{when:{imageUrls:{exists:!1},videoUrls:{exists:!1}},then:{audioUrls:{disabled:!0,reason:"Reference audio needs a reference image or video."}}}]}]),iv=e=>{let t=e.startFrame??e.imageUrls?.[0],i=[];return t&&i.push({type:"first_frame",url:t}),e.endFrame&&i.push({type:"last_frame",url:e.endFrame}),e.audioUrl&&i.push({type:"driving_audio",url:e.audioUrl}),{media:i,resolution:e.resolution??"720P",duration:e.duration??5,prompt_extend:e.enhancePrompt??!0,...e.prompt?{prompt:e.prompt}:{},...e.negativePrompt?{negative_prompt:e.negativePrompt}:{},...null!=e.seed?{seed:e.seed}:{}}},iy=["16:9","9:16","1:1","4:3","3:4"],iw=["720P","1080P"],ib="Start/End frames cannot be combined with reference images, videos, or audios",ix=[{when:{imageUrls:{exists:!0}},then:{startFrame:{disabled:!0,reason:ib},endFrame:{disabled:!0,reason:ib}}},{when:{videoUrls:{exists:!0}},then:{startFrame:{disabled:!0,reason:ib},endFrame:{disabled:!0,reason:ib}}},{when:{audioUrls:{exists:!0}},then:{startFrame:{disabled:!0,reason:ib},endFrame:{disabled:!0,reason:ib}}},{when:{startFrame:{exists:!0}},then:{imageUrls:{disabled:!0,reason:ib},videoUrls:{disabled:!0,reason:ib},audioUrls:{disabled:!0,reason:ib}}},{when:{endFrame:{exists:!0}},then:{imageUrls:{disabled:!0,reason:ib},videoUrls:{disabled:!0,reason:ib},audioUrls:{disabled:!0,reason:ib}}}],iI=[tS("Image Input","input"),tS("Video Input","input"),tS("Audio","audio"),tS("Start/End Frame","frame"),tS("1080P","resolution"),tS("Adaptive Ratio","resolution")],ik={...t_.prompt({required:!1,maxLength:5e3}),duration:{label:"Duration (s)",descriptor:{kind:"enum",valueType:"number",options:[{id:-1,label:"Auto"},{id:5},{id:10},{id:15},{id:30}],default:5}},...t_.resolution(["480P","720P","1080P"],"1080P"),...t_.aspectRatio(["16:9","9:16","1:1","4:3","3:4","adaptive"],"adaptive"),...t_.generateAudio(!0),...t_.startFrame(),...t_.endFrame(),...t_.imageInput(10,"Reference Images"),...t_.videoInputs(5,"Reference Videos",!1),...t_.audioInputs(5,"Reference Audios"),...tw.boolean("enableThinking",!1,"Deep Thinking"),...tw.boolean("watermark",!1,"Watermark"),...t_.seed()},{MODELS:i_}=tx("wan",[{id:"wan-2.6-t2v",name:"Wan 2.6",modelId:"wan2.6-t2v",addedAt:"2026-02-06",deprecated:!0,workflow:"wan/v2.6/text-to-vi
1deo",editWorkflow:"wan/v2.6/image-to-video",buildPayload:e=>({prompt:e.prompt,resolution:e.resolution??"720p",duration:e.duration??5,...e.startFrame?{image_url:e.startFrame}:{},...e.negativePrompt?{negative_prompt:e.negativePrompt}:{},...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{}}),buildEditPayload:e=>({prompt:e.prompt,image_url:e.startFrame,resolution:"1080p"===e.resolution?"1080p":"720p",duration:String(e.duration??5),...e.negativePrompt?{negative_prompt:e.negativePrompt}:{}}),estimatedTime:{"480p":40,"720p":50,"1080p":50},editEstimatedTime:14,mode:"video",inputType:"t2v",description:"Painterly artistic look with audio â up to 15s at 1080p.",features:[tS("Image Input","input"),tS("Start Frame","frame"),tS("Audio","audio"),tS("1080p","resolution"),tS("5/10/15 sec","duration")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.duration([5,10,15],5),...t_.resolution(["480p","720p","1080p"],"720p"),...t_.aspectRatio(["16:9","9:16","1:1","4:3","3:4"]),...t_.negativePrompt(),...t_.startFrame()}},{id:"wan-2.6-r2v",name:"Wan 2.6 Ref-to-Video",modelId:"wan2.6-r2v",addedAt:"2026-02-06",deprecated:!0,workflow:"wan/v2.6/reference-to-video",buildPayload:e=>({prompt:e.prompt,video_urls:[e.videoUrl],resolution:"1080p"===e.resolution?"1080p":"720p",duration:String(e.duration??5)}),estimatedTime:26,mode:"video",inputType:"v2v",description:"Regenerate video from a reference clip with new stylistic direction.",features:[tS("Video Input","input"),tS("1080p","resolution"),tS("5/10 sec","duration")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.duration([5,10],5),...t_.resolution(["720p","1080p"],"720p"),...t_.videoInput("Reference Video")}},{id:"wan-2.6-image",name:"Wan 2.6 Image",modelId:"wan2.6-t2i",addedAt:"2026-03-01",workflow:"image-gen-flow",buildPayload:e=>({prompt:e.prompt,model:"wan-2.6",count:e.count??1,...e.negativePrompt?{modelOptions:{negative_prompt:e.negativePrompt}}:{}}),mode:"image",inputType:"t2i",deprecated:!0,description:"Diverse, stylized images for visual exploration and animation.",features:[tS("Multi-Image Input","input")],paramConfig:{...t_.prompt({maxLength:1500}),...t_.count(),...t_.negativePrompt()}},{id:"wan-2.7-t2v",name:"Wan 2.7",modelId:"wan2.7-t2v",addedAt:"2026-03-30",workflow:"wan/v2/text-to-video",editWorkflow:"wan/v2/image-to-video",buildPayload:e=>({prompt:e.prompt,resolution:e.resolution??"720P",ratio:e.aspectRatio??"16:9",duration:e.duration??5,prompt_extend:e.enhancePrompt??!0,...e.negativePrompt?{negative_prompt:e.negativePrompt}:{},...e.audioUrl?{audio_url:e.audioUrl}:{},...null!=e.seed?{seed:e.seed}:{}}),buildEditPayload:iv,estimatedTime:{"720P":120,"1080P":120},editEstimatedTime:120,mode:"video",inputType:"t2v",badge:["popular"],description:"Wan 2.7 T2V â up to 15s at 1080p with audio input and prompt enhancement.",features:[tS("Image Input","input"),tS("Start Frame","frame"),tS("Audio","audio"),tS("1080P","resolution"),tS("5/10/15 sec","duration")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.duration([5,10,15],5),...t_.resolution(iw,"720P"),...t_.aspectRatio(iy),...t_.negativePrompt(void 0,500),...t_.enhancePrompt(!0),...t_.audioInput("Audio Track"),...t_.startFrame(),...t_.seed()}},{id:"wan-2.7-i2v",name:"Wan 2.7 Image-to-Video",modelId:"wan2.7-i2v",addedAt:"2026-03-30",workflow:"wan/v2/image-to-video",buildPayload:iv,estimatedTime:120,mode:"video",inputType:"i2v",badge:["popular"],description:"Wan 2.7 I2V â animate images with start/end frame and optional driving audio.",features:[tS("Start/End Frame","frame"),tS("Audio","audio"),tS("1080P","resolution"),tS("5/10/15 sec","duration")],paramConfig:{...t_.prompt({required:!1,maxLength:5e3}),...t_.duration([5,10,15],5),...t_.resolution(iw,"720P"),...t_.negativePrompt(void 0,500),...t_.enhancePrompt(!0),...t_.startFrame("Start Frame",!0),...t_.endFrame(),...t_.audioInput("Driving Audio"),...t_.seed()}},{id:"wan-2.7-r2v",name:"Wan 2.7 Ref-to-Video",modelId:"wan2.7-r2v",addedAt:"2026-03-30",workflow:"wan/v2/reference-to-video",buildPayload:e=>{let t=[];if(e.imageUrls?.length)for(let i of e.imageUrls)t.push({type:"reference_image",url:i});if(e.videoUrl&&t.push({type:"reference_video",url:e.videoUrl}),t.length>5)throw new tp("Wan 2.7 R2V accepts at most 5 reference items (images + video combined).",{status:400,code:"validation_error"});return{prompt:e.prompt,media:t,resolution:e.resolution??"720P",ratio:e.aspectRatio??"16:9",duration:e.duration??5,...e.negativePrompt?{negative_prompt:e.negativePrompt}:{},...null!=e.seed?{seed:e.seed}:{}}},estimatedTime:26,mode:"video",inputType:"v2v",badge:["popular"],description:"Wan 2.7 R2V â generate video from reference images/video with style direction.",features:[tS("Multi-Image Input","input"),tS("Video Input","input"),tS("1080P","resolution"),tS("5/10 sec","duration")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.duration([5,10],5),...t_.resolution(iw,"720P"),...t_.aspectRatio(iy),...t_.negativePrompt(void 0,500),...t_.imageInput(5,"Reference Images",!0),...t_.videoInput("Reference Video"),...t_.seed()}}
1,{id:"wan-2.7-video-edit",name:"Wan 2.7 Video Edit",modelId:"wan2.7-videoedit",addedAt:"2026-03-30",workflow:"wan/v2/video-edit",buildPayload:e=>{let t=[];if(e.videoUrl&&t.push({type:"video",url:e.videoUrl}),e.imageUrls?.length)for(let i of e.imageUrls.slice(0,4))t.push({type:"reference_image",url:i});return{media:t,resolution:e.resolution??"720P",...e.prompt?{prompt:e.prompt}:{},...e.negativePrompt?{negative_prompt:e.negativePrompt}:{},...e.aspectRatio?{ratio:e.aspectRatio}:{},...e.duration?{duration:e.duration}:{},...e.audioSetting?{audio_setting:e.audioSetting}:{},...null!=e.seed?{seed:e.seed}:{}}},estimatedTime:26,mode:"video",inputType:"v2v",badge:["popular"],description:"Wan 2.7 Video Edit â restyle or modify existing video with reference images.",features:[tS("Video Input","input"),tS("Image Input","input"),tS("1080P","resolution")],paramConfig:{...t_.prompt({required:!1,maxLength:5e3}),...t_.resolution(iw,"720P"),...t_.aspectRatio(iy),...t_.negativePrompt(void 0,500),...t_.videoInput("Source Video"),...t_.imageInput(4,"Reference Images"),...t_.audioSetting(),duration:{label:"Output Duration (s)",descriptor:{kind:"range",min:2,max:10,step:1}},...t_.seed()}},{id:"wan-3.0-video",name:"Wan 3.0",modelId:"wan3.0-video",addedAt:"2026-08-03",workflow:"wan/v3/video",estimatedTime:120,mode:"video",inputType:"t2v",description:"Wan 3.0 all-in-one â text, image/video/audio references, and start/end frames with adaptive ratio, intelligent duration, and audio.",features:[...iI],constraints:ix,paramConfig:{...ik}},{id:"wan-3.0-video-prime",name:"Wan 3.0 Prime",modelId:"wan3.0-video-prime",addedAt:"2026-08-26",workflow:"wan/v3/video",estimatedTime:30,mode:"video",inputType:"t2v",description:"Wan 3.0 Prime â the same all-in-one model as Wan 3.0, up to 7x faster.",features:[...iI],constraints:ix,paramConfig:{...ik}}]),iT=e=>t=>{let i=[];if(t.startFrame&&i.push({type:"first_frame",url:t.startFrame}),t.endFrame&&i.push({type:"last_frame",url:t.endFrame}),t.imageUrls?.length)for(let e of t.imageUrls)i.push({type:"reference_image",url:e});if(t.videoUrls?.length)for(let e of t.videoUrls)i.push({type:"reference_video",url:e});if(t.audioUrls?.length)for(let e of t.audioUrls)i.push({type:"reference_audio",url:e});if(!t.prompt&&0===i.length)throw new tp("Wan 3.0: provide a prompt or at least one media input (frames or references).",{status:400,code:"validation_error"});return{model:e,resolution:t.resolution??"1080P",ratio:t.aspectRatio??"adaptive",duration:t.duration??5,audio:t.generateAudio??!0,enable_thinking:t.enableThinking??!1,watermark:t.watermark??!1,...t.prompt?{prompt:t.prompt}:{},...i.length?{media:i}:{},...null!=t.seed?{seed:t.seed}:{}}};tI(i_,{"wan-3.0-video":iT("wan3.0-video"),"wan-3.0-video-prime":iT("wan3.0-video-prime")});var iS="luma-image-to-video-generation",iA="luma-media-reframe",iP=e=>t=>({generation_type:"reframe_video",model:e,media:{url:t.videoUrl??""},aspect_ratio:t.aspectRatio??"16:9",...t.prompt?{prompt:t.prompt}:{}}),iR=iP("ray-2"),iF=iP("ray-flash-2"),iC=["16:9","9:16","1:1","4:3","3:4","21:9","9:21"],iU={...t_.prompt({maxLength:5e3}),...t_.aspectRatio(iC),...t_.resolution(["540p","720p","1080p","4k"],"720p"),...t_.duration([5,9],5)},iE=e=>t=>({prompt:t.prompt,model:e,...t.aspectRatio?{aspect_ratio:t.aspectRatio}:{},...t.style?{style:t.style}:{},...t.imageUrls?.length?{image_ref:t.imageUrls.map(e=>({url:e}))}:{}}),iV=e=>t=>{let i=t.startFrame??t.imageUrls?.[0],a=t.startFrame?t.imageUrls:t.imageUrls?.slice(1),r=a?.length?a.map(e=>({url:e})):[];return{prompt:t.prompt,...i?{source:{url:i}}:{},model:e,...t.style?{style:t.style}:{},...r.length?{image_ref:r}:{}}},iL=iE("uni-1"),iM=iV("uni-1"),iO=iE("uni-1-max"),iD=iV("uni-1-max"),iq={...t_.prompt({maxLength:5e3}),...t_.aspectRatio(["3:1","2:1","16:9","3:2","1:1","2:3","9:16","1:2","1:3"],"1:1"),...t_.style([{id:"auto",label:"Auto"},{id:"manga",label:"Manga"}],"auto"),...t_.imageInput(9,"Reference Images",!1)},iK=["9:16","3:4","1:1","4:3","16:9","21:9"],iG=["540p","720p","1080p"],i$="Start/end frames require 5s duration",ij="HDR is not supported with 10s duration",iW="EXR export (requires HDR) is not supported with 10s duration",iz="Looping is not supported with 10s duration",iB="HDR is not supported at 540p",iN="Looping is not supported with HDR (or EXR, which requires HDR)",{MODELS:iH}=tx("luma",[{id:"luma-ray-2",name:"Luma Ray 2",addedAt:"2026-02-06",workflow:iS,editWorkflow:iS,buildPayload:e=>{let t={};return e.startFrame&&(t.frame0={type:"image",url:e.startFrame}),e.endFrame&&(t.frame1={type:"image",url:e.endFrame}
1),{prompt:e.prompt,model:"ray-2",...Object.keys(t).length?{keyframes:t}:{},aspect_ratio:e.aspectRatio??"16:9",resolution:e.resolution??"720p",duration:`${e.duration??5}s`}},estimatedTime:18,editEstimatedTime:24,mode:"video",inputType:"t2v",description:"Smooth video with a dreamy, polished aesthetic â up to 4K resolution.",features:[tS("Image Input","input"),tS("Start/End Frame","frame"),tS("Up to 4K","resolution"),tS("5/9 sec","duration")],paramConfig:{...iU,...t_.startFrame(),...t_.endFrame()}},{id:"luma-ray-flash-2",name:"Luma Flash 2",addedAt:"2026-02-06",workflow:iS,buildPayload:e=>{let t={};return e.startFrame&&(t.frame0={type:"image",url:e.startFrame}),e.endFrame&&(t.frame1={type:"image",url:e.endFrame}),{prompt:e.prompt,model:"ray-flash-2",...Object.keys(t).length?{keyframes:t}:{},aspect_ratio:e.aspectRatio??"16:9",resolution:e.resolution??"720p",duration:`${e.duration??5}s`}},estimatedTime:9,mode:"video",inputType:"i2v",description:"Quick image-to-video with smooth, stylized motion â up to 4K.",features:[tS("Image Input","input"),tS("Start/End Frame","frame"),tS("Up to 4K","resolution"),tS("5/9 sec","duration")],paramConfig:{...iU,...t_.startFrame("Start Frame",!0),...t_.endFrame()}},{id:"luma-ray-2-reframe-video",name:"Luma Ray 2 Reframe",modelId:"luma-ray-2",addedAt:"2026-05-21",workflow:iA,buildPayload:iR,estimatedTime:20,mode:"video",inputType:"v2v",description:"Reframe a video to a new aspect ratio using Luma Ray 2.",features:[tS("Video Input","input"),tS("Reframe","characteristic")],paramConfig:{...t_.prompt({required:!1,maxLength:5e3}),...t_.aspectRatio(iC,"16:9"),...t_.videoInput("Source Video")}},{id:"luma-ray-flash-2-reframe-video",name:"Luma Flash 2 Reframe",modelId:"luma-ray-flash-2",addedAt:"2026-05-21",workflow:iA,buildPayload:iF,estimatedTime:12,mode:"video",inputType:"v2v",description:"Reframe a video to a new aspect ratio using Luma Flash 2.",features:[tS("Video Input","input"),tS("Reframe","characteristic")],paramConfig:{...t_.prompt({required:!1,maxLength:5e3}),...t_.aspectRatio(iC,"16:9"),...t_.videoInput("Source Video")}},{id:"luma-uni-1",name:"Luma UNI-1",addedAt:"2026-05-20",workflow:"luma-uni1-text-to-image",editWorkflow:"luma-uni1-image-edit",buildPayload:iL,buildEditPayload:iM,estimatedTime:50,mode:"image",inputType:"t2i",description:"Luma UNI-1 â agentic image generation and editing with up to 9 reference images.",features:[tS("Multi-Image Input","input"),tS("Edit","characteristic"),tS("Styles","style")],paramConfig:iq},{id:"luma-uni-1-max",name:"Luma UNI-1 Max",addedAt:"2026-05-20",workflow:"luma-uni1-text-to-image",editWorkflow:"luma-uni1-image-edit",buildPayload:iO,buildEditPayload:iD,estimatedTime:60,mode:"image",inputType:"t2i",description:"Luma UNI-1 Max â higher-quality UNI-1 variant with the same multi-reference editing controls.",features:[tS("Multi-Image Input","input"),tS("Edit","characteristic"),tS("Styles","style")],paramConfig:iq},{id:"luma-ray-3.2",name:"Luma Ray 3.2",addedAt:"2026-06-11",workflow:"luma-ray32-video",estimatedTime:30,mode:"video",inputType:"t2v",description:"Luma Ray 3.2 â high-fidelity video generation with start/end frames, HDR, and looping (early access).",features:[tS("Image Input","input"),tS("Start/End Frame","frame"),tS("HDR","characteristic"),tS("5/10 sec","duration")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.aspectRatio(iK,"16:9"),...t_.resolution(iG,"720p"),...t_.duration([5,10],5),...t_.startFrame(),...t_.endFrame(),...tw.boolean("hdr",!1,"HDR"),...tw.boolean("exrExport",!1,"EXR Export"),...tw.boolean("loop",!1,"Loop")},constraints:[{when:{startFrame:{exists:!0}},then:{duration:{allowed:[5],reason:i$}}},{when:{endFrame:{exists:!0}},then:{duration:{allowed:[5],reason:i$}}},{when:{hdr:{is:!0}},then:{duration:{allowed:[5],reason:ij}}},{when:{exrExport:{is:!0}},then:{duration:{allowed:[5],reason:iW}}},{when:{loop:{is:!0}
1},then:{duration:{allowed:[5],reason:iz}}},{when:{duration:{is:10}},then:{startFrame:{disabled:!0,reason:i$},endFrame:{disabled:!0,reason:i$},hdr:{disabled:!0,reason:ij},exrExport:{disabled:!0,reason:iW},loop:{disabled:!0,reason:iz}}},{when:{hdr:{is:!0}},then:{resolution:{allowed:["720p","1080p"],reason:iB}}},{when:{exrExport:{is:!0}},then:{resolution:{allowed:["720p","1080p"],reason:iB}}},{when:{resolution:{is:"540p"}},then:{hdr:{disabled:!0,reason:iB},exrExport:{disabled:!0,reason:iB}}},{when:{hdr:{is:!0}},then:{loop:{disabled:!0,reason:iN}}},{when:{exrExport:{is:!0}},then:{loop:{disabled:!0,reason:iN}}},{when:{loop:{is:!0}},then:{hdr:{disabled:!0,reason:iN},exrExport:{disabled:!0,reason:iN}}}]},{id:"luma-ray-3.2-edit",name:"Luma Ray 3.2 Edit",modelId:"luma-ray-3.2",addedAt:"2026-06-11",workflow:"luma-ray32-video-edit",estimatedTime:30,mode:"video",inputType:"v2v",description:"Edit a prior video from a prompt using Luma Ray 3.2 â preservation-vs-reimagination presets (early access).",features:[tS("Video Input","input"),tS("Edit","characteristic"),tS("HDR","characteristic"),tS("5/10 sec","duration")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.videoInput("Source Video","reference",!0,30),...t_.resolution(iG,"720p"),...t_.duration([5,10],5),...tw.enum("editStrength",[{id:"adhere_1",label:"Adhere 1"},{id:"adhere_2",label:"Adhere 2"},{id:"adhere_3",label:"Adhere 3"},{id:"flex_1",label:"Flex 1"},{id:"flex_2",label:"Flex 2"},{id:"flex_3",label:"Flex 3"},{id:"reimagine_1",label:"Reimagine 1"},{id:"reimagine_2",label:"Reimagine 2"},{id:"reimagine_3",label:"Reimagine 3"}],"flex_2",{label:"Edit Strength"}),...tw.boolean("hdr",!1,"HDR"),...tw.boolean("exrExport",!1,"EXR Export")},constraints:[{when:{hdr:{is:!0}},then:{duration:{allowed:[5],reason:ij}}},{when:{exrExport:{is:!0}},then:{duration:{allowed:[5],reason:iW}}},{when:{duration:{is:10}},then:{hdr:{disabled:!0,reason:ij},exrExport:{disabled:!0,reason:iW}}},{when:{hdr:{is:!0}},then:{resolution:{allowed:["720p","1080p"],reason:iB}}},{when:{exrExport:{is:!0}},then:{resolution:{allowed:["720p","1080p"],reason:iB}}},{when:{resolution:{is:"540p"}},then:{hdr:{disabled:!0,reason:iB},exrExport:{disabled:!0,reason:iB}}}]},{id:"luma-ray-3.2-reframe-video",name:"Luma Ray 3.2 Reframe",modelId:"luma-ray-3.2",addedAt:"2026-06-11",workflow:"luma-ray32-video-reframe",estimatedTime:20,mode:"video",inputType:"v2v",description:"Reframe a video to a new aspect ratio using Luma Ray 3.2 (early access).",features:[tS("Video Input","input"),tS("Reframe","characteristic")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.aspectRatio(iK,"16:9"),...t_.videoInput("Source Video","reference",!0,30),...t_.resolution(iG,"720p")}}]);tI(iH,{"luma-ray-3.2":e=>{let t={resolution:e.resolution??"720p",duration:`${e.duration??5}s`};return(e.hdr||e.exrExport)&&(t.hdr=!0),e.exrExport&&(t.exr_export=!0),e.loop&&(t.loop=!0),e.startFrame&&(t.start_frame={url:e.startFrame}),e.endFrame&&(t.end_frame={url:e.endFrame}),{prompt:e.prompt,aspect_ratio:e.aspectRatio??"16:9",video:t}},"luma-ray-3.2-edit":e=>{let t={resolution:e.resolution??"720p",duration:`${e.duration??5}s`,edit:{auto_controls:!0,strength:e.editStrength??"flex_2"}};return(e.hdr||e.exrExport)&&(t.hdr=!0),e.exrExport&&(t.exr_export=!0),{prompt:e.prompt,source:{url:e.videoUrl},video:t}},"luma-ray-3.2-reframe-video":e=>({prompt:e.prompt,aspect_ratio:e.aspectRatio??"16:9",source:{url:e.videoUrl},video:{resolution:e.resolution??"720p"}})});var iQ="Start/End frames cannot be combined with reference images, videos, or audios",iX={minAspectRatio:.39,maxAspectRatio:2.5,minSidePixels:300,maxSidePixels:6e3,maxPixels:36e6,maxBytes:0x1e00000},iJ={minAspectRatio:.39,maxAspectRatio:2.5,minPixels:9e4,maxPixels:36e6,minSidePixels:300,maxSidePixels:6e3,maxBytes:0x1e00000},iY={minAspectRatio:.39,maxAspectRatio:2.5,minPixels:407696,maxPixels:8295044,minSidePixels:300,maxSidePixels:6e3,maxBytes:0xc800000,minDurationSec:1.8,maxDurationSec:30,maxFrameRate:60},iZ={minAspectRatio:.39,maxAspectRatio:2.5,minPixels:407696,maxPixels:8295044,minSidePixels:300,maxSidePixels:6e3,maxBytes:0xc800000,minDurationSec:1.8,maxDurationSec:15,maxFrameRate:60},i0={minDurationSec:1.8,maxDurationSec:30,maxBytes:0xf00000},i1={minDurationSec:1.8,maxDurationSec:15,maxBytes:0xf00000},i2=[{when:{imageUrls:{exists:!1},videoUrls:{exists:!1},startFrame:{exists:!1},endFrame:{exists:!1}},then:{audioUrls:{disabled:!0,reason:"Audio cannot be the only modal input â add an image or video."}}},{when:{imageUrls:{exists:!0}},then:{startFrame:{disabled:!0,reason:iQ},endFrame:{disabled:!0,reason:iQ}}},{when:{videoUrls:{exists:!0}},then:{startFrame:{disabled:!0,reason:iQ},endFrame:{disabled:!0,reason:iQ}}},{when:{audioUrls:{exists:!0}},then:{startFrame:{disabled:!0,reason:iQ},endFrame:{disabled:!0,reason:iQ}}},{when:{startFrame:{exists:!0}},then:{imageUrls:{disabled:!0,reason:iQ},videoUrls:{disabled:!0,reason:iQ},audioUrls:{disabled:!0,reason:iQ}}},{when:{endFrame:{exists:!0}},then:{imageUrls:{disabled:!0,reason:iQ},videoUrls:{disabled:!0,reason:iQ},audioUrls:{disabled:!0,reason:iQ}}}],i3=e=>t=>{let i=t.imageUrls??[],a=t.videoUrls??[],r=t.audioUrls??[];return{model:e,content:[...t.startFrame?[{type:"image_url",image_url:{url:t.startFrame},role:"first_frame"}]:[],...i.map(e=>({type:"image_url",image_url:{url:e},role:"reference_image"})),...a.slice(0,3).map(e=>({type:"video_url",video_url:{url:e},role:"reference_video"})),...r.slice(0,3).map(e=>({type:"audio_url",audio_url:{url:e},role:"reference_audio"})),...t.endFrame?[{type:"image_url",image_url:{url:t.endFrame},role:"last_frame"}]:[],{type:"text",text:t.prompt}],ratio:t.aspectRatio??"16:9",duration:t.duration??10,resolution:t.resolution??"720p",generate_audio:t.generateAudio??!0,...t.returnLastFrame?{return_last_frame:!0}:{}}},i6=e=>t=>({model:e,content:[{type:"text",text:t.prompt},{type:"video_url",video_url:{url:t.videoUrl},role:"reference_video"},...(t.imageUrls??[]).slice(0,9).map(e=>({type:"image_url",image_url:{url:e},role:"reference_image"}))],ratio:t.aspectRatio??"16:9",duration:t.duration??5,resolution:t.resolution??"720p",generate_audio:t.generateAudio??!0,...t.returnLastFrame?{return_last_frame:!0}:{}}),i4=e=>t=>({model:e,content:[{type:"text",text:t.prompt},...(t.videoUrls??[]).slice(0,3).map(e=>({type:"video_url",video_url:{url:e},role:"reference_video"}))],ratio:t.aspectRatio??"adaptive",duration:t.duration??15,resolution:t.resolution??"720p",generate_audio:t.generateAudio??!0}),i5=[...["480p","720p"].map(e=>({when:{resolution:{is:e}},then:{colorDepth:{disabled:!0,reason:"Color depth applies to 1080p only â 480p and 720p are always 8-bit."}}})),{when:{outputFormat:{is:"mov"}},then:{colorDepth:{disabled:!0,reason:"Color depth applies to the mp4 container only."}}}],i8="First/Last Frame mode requires an adaptive aspect ratio â the vendor rejects any fixed ratio.",i7=[...i2.slice(1),{when:{startFrame:{exists:!1}},then:{endFrame:{disabled:!0,reason:"End frame needs a start frame â a last frame on its own is rejected."}}},{when:{startFrame:{exists:!0}},then:{aspectRatio:{allowed:["adaptive"],reason:i8}}},{when:{endFrame:{exists:!0}},then:{aspectRatio:{allowed:["adaptive"],reason:i8}}},...i5],i9=e=>"mov"===e.outputFormat?"mov":"8bit"===e.colorDepth?"mp4_8bit":"mp4",ae=e=>t=>{let i=t.imageUrls??[],a=t.videoUrls??[],r=t.audioUrls??[],o=!!(t.startFrame||t.endFrame);return{model:e,content:[...t.startFrame?[{type:"image_url",image_url:{url:t.startFrame},role:"first_frame"}]:[],...i.slice(0,30).map(e=>({type:"image_url",image_url:{url:e},role:"reference_image"})),...a.slice(0,10).map(e=>({type:"video_url",video_url:{url:e},role:"reference_video"})),...r.slice(0,10).map(e=>({type:"audio_url",audio_url:{url:e},role:"reference_audio"})),...t.endFrame?[{type:"image_url",image_url:{url:t.endFrame},role:"last_frame"}]:[],{type:"text",text:t.prompt}],ratio:o?"adaptive":t.aspectRatio??"16:9",duration:t.duration??5,resolution:t.resolution??"1080p",generate_audio:t.generateAudio??!0,output_format:i9(t),...t.returnLastFrame?{return_last_frame:!0}:{}}},at=e=>t=>({model:e,content:[{type:"text",text:t.prompt},{type:"video_url",video_url:{url:t.videoUrl},role:"reference_video"},...(t.imageUrls??[]).slice(0,30).map(e=>({type:"image_url",image_url:{url:e},role:"reference_image"}))],ratio:"adaptive",duration:-1,resolution:t.resolution??"1080p",generate_audio:t.generateAudio??!0,output_format:i9(t),...t.returnLastFrame?{return_last_frame:!0}:{}}),ai=e=>t=>({model:e,content:[{type:"text",text:t.prompt},...(t.videoUrls??[]).slice(0,10).map(e=>({type:"video_url",video_url:{url:e},role:"reference_video"}))],ratio:"adaptive",duration:t.duration??15,resolution:t.resolution??"1080p",generate_audio:t.generateAudio??!0,output_format:i9(t)}),aa=["16:9","9:16","1:1","4:3","3:4","21:9","adaptive"],ar=["mp4","mov"],ao=["10bit","8bit"],an=[4,5,6,7,8,9,10,11,12,13,14,15],{MODELS:as}=tx("seedance",[{id:"seedance-2.5",name:"Seedance 2.5",modelId:"seedance-2.5",addedAt:"2026-08-06",workflow:"seedance",buildPayload:ae("seedance_2_5"),constraints:i7,estimatedTime:20,mode:"video",inputType:"t2v",badge:["new","premium","hot"],description:"Latest cinematic video with audio, multi-reference input, and mp4/mov output in 10- or 8-bit. Up to 30s.",features:[tS("Reference Image","frame"),tS("Start/End Frame","frame"),tS("Audio","audio"),tS("1080p","resolution"),tS("4-30 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p","1080p"],"1080p"),...t_.durationRange(4,30,5),...t_.generateAudio(),...t_.returnLastFrame(),...tw.enum("outputFormat",ar,"mp4",{label:"Format"}),...tw.enum("colorDepth",ao,"10bit",{label:"Color Depth"}),...t_.imageInput(30,"Reference Images",!1,"reference",iX),...t_.videoInputs(10,"Reference Videos",!1,iY),...t_.audioInputs(10,"Reference Audios",!1,i0),...t_.startFrame("Start Frame",!1,iJ),...t_.endFrame("End Frame",iJ)}},{id:"seedance-2.5-without-moderation",name:"Seedance 2.5 Without Moderation",modelId:"seedance-2.5",addedAt:"2026-09-09",release:"preview",workflow:"seedance",buildPayload:ae("seedance_2_5_without_moderation"),constraints:i7,estimatedTime:20,mode:"video",inputType:"t2v",badge:["new","premium","hot"],description:"Seedance 2.5 with vendor moderation disabled â cinematic video with audio, multi-reference input, and mp4/mov output in 10- or 8-bit. Up to 30s.",features:[tS("Reference Image","frame"),tS("Start/End Frame","frame"),tS("Audio","audio"),tS("1080p","resolution"),tS("4-30 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p","1080p"],"1080p"),...t_.durationRange(4,30,5),...t_.generateAudio(),...t_.returnLastFrame(),...tw.enum("outputFormat",ar,"mp4",{label:"Format"}),...tw.enum("colorDepth",ao,"10bit",{label:"Color Depth"}),...t_.imageInput(30,"Reference Images",!1,"reference",iX),...t_.videoInputs(10,"Reference Videos",!1,iY),...t_.audioInputs(10,"Reference Audios",!1,i0),...t_.startFrame("Start Frame",!1,iJ),...t_.endFrame("End Frame",iJ)}}
1,{id:"seedance-2.5-video-edit",name:"Seedance 2.5 Video Edit",modelId:"seedance-2.5",addedAt:"2026-08-06",workflow:"seedance",buildPayload:at("seedance_2_5"),constraints:i5,estimatedTime:60,mode:"video",inputType:"v2v",badge:["new","premium","hot"],description:"Edit video â replace subjects, add or remove objects, restyle scenes with reference images.",features:[tS("Video Input","input"),tS("Multi-Image Input","input"),tS("Audio","audio"),tS("1080p","resolution"),tS("Source length","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["adaptive"]),...t_.resolution(["480p","720p","1080p"],"1080p"),...t_.generateAudio(),...t_.returnLastFrame(),...tw.enum("outputFormat",ar,"mp4",{label:"Format"}),...tw.enum("colorDepth",ao,"10bit",{label:"Color Depth"}),...t_.videoInput("Source Video","reference",!0,void 0,void 0,void 0,iY),...t_.imageInput(30,"Reference Images",!1,"reference",iX)}},{id:"seedance-2.5-without-moderation-video-edit",name:"Seedance 2.5 Without Moderation Video Edit",modelId:"seedance-2.5",addedAt:"2026-09-09",release:"preview",workflow:"seedance",buildPayload:at("seedance_2_5_without_moderation"),constraints:i5,estimatedTime:60,mode:"video",inputType:"v2v",badge:["new","premium","hot"],description:"Moderation-free video edit â replace subjects, add or remove objects, restyle scenes with reference images.",features:[tS("Video Input","input"),tS("Multi-Image Input","input"),tS("Audio","audio"),tS("1080p","resolution"),tS("Source length","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["adaptive"]),...t_.resolution(["480p","720p","1080p"],"1080p"),...t_.generateAudio(),...t_.returnLastFrame(),...tw.enum("outputFormat",ar,"mp4",{label:"Format"}),...tw.enum("colorDepth",ao,"10bit",{label:"Color Depth"}),...t_.videoInput("Source Video","reference",!0,void 0,void 0,void 0,iY),...t_.imageInput(30,"Reference Images",!1,"reference",iX)}},{id:"seedance-2.5-video-extend",name:"Seedance 2.5 Video Extend",modelId:"seedance-2.5",addedAt:"2026-08-06",workflow:"seedance",buildPayload:ai("seedance_2_5"),constraints:i5,estimatedTime:200,mode:"video",inputType:"v2v",badge:["new","premium","hot"],description:"Stitch up to 10 clips into one continuous, extended video.",features:[tS("Multi-Video Input","input"),tS("Audio","audio"),tS("1080p","resolution"),tS("4-30 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["adaptive"]),...t_.resolution(["480p","720p","1080p"],"1080p"),...t_.durationRange(4,30,15),...t_.generateAudio(),...tw.enum("outputFormat",ar,"mp4",{label:"Format"}),...tw.enum("colorDepth",ao,"10bit",{label:"Color Depth"}),...t_.videoInputs(10,"Source Videos",!0,iY)}},{id:"seedance-2.5-without-moderation-video-extend",name:"Seedance 2.5 Without Moderation Video Extend",modelId:"seedance-2.5",addedAt:"2026-09-09",release:"preview",workflow:"seedance",buildPayload:ai("seedance_2_5_without_moderation"),constraints:i5,estimatedTime:200,mode:"video",inputType:"v2v",badge:["new","premium","hot"],description:"Moderation-free: stitch up to 10 clips into one continuous, extended video.",features:[tS("Multi-Video Input","input"),tS("Audio","audio"),tS("1080p","resolution"),tS("4-30 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["adaptive"]),...t_.resolution(["480p","720p","1080p"],"1080p"),...t_.durationRange(4,30,15),...t_.generateAudio(),...tw.enum("outputFormat",ar,"mp4",{label:"Format"}),...tw.enum("colorDepth",ao,"10bit",{label:"Color Depth"}),...t_.videoInputs(10,"Source Videos",!0,iY)}},{id:"seedance-2.0",name:"Seedance 2.0",modelId:"seedance-2.0",addedAt:"2026-05-27",workflow:"seedance",buildPayload:i3("seedance_2_0"),constraints:i2,estimatedTime:15,mode:"video",inputType:"t2v",badge:["new","premium","hot"],description:"Next-gen cinematic video with optional audio and reference image. Up to 4K.",features:[tS("Reference Image","frame"),tS("Start/End Frame","frame"),tS("Audio","audio"),tS("4K","resolution"),tS("4-15 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p","1080p","4k"],"720p"),...t_.duration(an,10),...t_.generateAudio(),...t_.returnLastFrame(),...t_.imageInput(9,"Reference Images",!1,"reference",iX),...t_.videoInputs(3,"Reference Videos",!1,iZ),...t_.audioInputs(3,"Reference Audios",!1,i1),...t_.startFrame("Start Frame",!1,iJ),...t_.endFrame("End Frame",iJ)}}
1,{id:"seedance-2.0-without-moderation",name:"Seedance 2.0 Without Moderation",modelId:"seedance-2.0",addedAt:"2026-08-17",release:"preview",workflow:"seedance",buildPayload:i3("seedance_2_0_without_moderation"),constraints:i2,estimatedTime:15,mode:"video",inputType:"t2v",badge:["new","premium","hot"],description:"Seedance 2.0 with vendor moderation disabled â cinematic video with optional audio and reference image. Up to 4K.",features:[tS("Reference Image","frame"),tS("Start/End Frame","frame"),tS("Audio","audio"),tS("4K","resolution"),tS("4-15 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p","1080p","4k"],"720p"),...t_.duration(an,10),...t_.generateAudio(),...t_.returnLastFrame(),...t_.imageInput(9,"Reference Images",!1,"reference",iX),...t_.videoInputs(3,"Reference Videos",!1,iZ),...t_.audioInputs(3,"Reference Audios",!1,i1),...t_.startFrame("Start Frame",!1,iJ),...t_.endFrame("End Frame",iJ)}},{id:"seedance-2.0-fast",name:"Seedance 2.0 Fast",modelId:"seedance-2.0-fast",addedAt:"2026-05-27",workflow:"seedance",buildPayload:i3("seedance_2_0_fast"),constraints:i2,estimatedTime:15,mode:"video",inputType:"t2v",badge:["new","fast","premium","hot"],description:"Fast cinematic video with audio, reference images, and start/end frame control.",features:[tS("Reference Image","frame"),tS("Start/End Frame","frame"),tS("Audio","audio"),tS("720p","resolution"),tS("4-15 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p"],"720p"),...t_.duration(an,10),...t_.generateAudio(),...t_.returnLastFrame(),...t_.imageInput(9,"Reference Images",!1,"reference",iX),...t_.videoInputs(3,"Reference Videos",!1,iZ),...t_.audioInputs(3,"Reference Audios",!1,i1),...t_.startFrame("Start Frame",!1,iJ),...t_.endFrame("End Frame",iJ)}},{id:"seedance-2.0-mini",name:"Seedance 2.0 Mini",modelId:"seedance-2.0-mini",addedAt:"2026-06-25",workflow:"seedance",buildPayload:i3("seedance_2_0_mini"),constraints:i2,estimatedTime:15,mode:"video",inputType:"t2v",badge:["new","fast","premium"],description:"Lightweight cinematic video with audio, reference images, and start/end frame control.",features:[tS("Reference Image","frame"),tS("Start/End Frame","frame"),tS("Audio","audio"),tS("720p","resolution"),tS("4-15 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p"],"720p"),...t_.duration(an,10),...t_.generateAudio(),...t_.returnLastFrame(),...t_.imageInput(9,"Reference Images",!1,"reference",iX),...t_.videoInputs(3,"Reference Videos",!1,iZ),...t_.audioInputs(3,"Reference Audios",!1,i1),...t_.startFrame("Start Frame",!1,iJ),...t_.endFrame("End Frame",iJ)}},{id:"seedance-2.0-video-edit",name:"Seedance 2.0 Video Edit",modelId:"seedance-2.0",addedAt:"2026-05-27",workflow:"seedance",buildPayload:i6("seedance_2_0"),estimatedTime:77,mode:"video",inputType:"v2v",badge:["new","premium","hot"],description:"Edit video â replace subjects, add or remove objects, restyle scenes with reference images.",features:[tS("Video Input","input"),tS("Multi-Image Input","input"),tS("Audio","audio"),tS("4K","resolution"),tS("4-15 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p","1080p","4k"],"720p"),...t_.duration(an,5),...t_.generateAudio(),...t_.returnLastFrame(),...t_.videoInput("Source Video","reference",!0,void 0,void 0,void 0,iZ),...t_.imageInput(9,"Reference Images",!1,"reference",iX)}},{id:"seedance-2.0-without-moderation-video-edit",name:"Seedance 2.0 Without Moderation Video Edit",modelId:"seedance-2.0",addedAt:"2026-08-17",release:"preview",workflow:"seedance",buildPayload:i6("seedance_2_0_without_moderation"),estimatedTime:77,mode:"video",inputType:"v2v",badge:["new","premium","hot"],description:"Moderation-free video edit â replace subjects, add or remove objects, restyle scenes with reference images.",features:[tS("Video Input","input"),tS("Multi-Image Input","input"),tS("Audio","audio"),tS("4K","resolution"),tS("4-15 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p","1080p","4k"],"720p"),...t_.duration(an,5),...t_.generateAudio(),...t_.returnLastFrame(),...t_.videoInput("Source Video","reference",!0,void 0,void 0,void 0,iZ),...t_.imageInput(9,"Reference Images",!1,"reference",iX)}},{id:"seedance-2.0-fast-video-edit",name:"Seedance 2.0 Fast Video Edit",modelId:"seedance-2.0-fast",addedAt:"2026-05-27",workflow:"seedance",buildPayload:i6("seedance_2_0_fast"),estimatedTime:30,mode:"video",inputType:"v2v",badge:["new","fast","premium","hot"],description:"Fast video edit â modify scenes with reference images.",features:[tS("Video Input","input"),tS("Multi-Image Input","input"),tS("Audio","audio"),tS("720p","resolution"),tS("4-15 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p"],"720p"),...t_.duration(an,5),...t_.generateAudio(),...t_.returnLastFrame(),...t_.videoInput("Source Video","reference",!0,void 0,void 0,void 0,iZ),...t_.imageInput(9,"Reference Images",!1,"reference",iX)}},{id:"seedance-2.0-mini-video-edit",name:"Seedance 2.0 Mini Video E
1dit",modelId:"seedance-2.0-mini",addedAt:"2026-06-25",workflow:"seedance",buildPayload:i6("seedance_2_0_mini"),estimatedTime:30,mode:"video",inputType:"v2v",badge:["new","fast","premium"],description:"Lightweight video edit â modify scenes with reference images.",features:[tS("Video Input","input"),tS("Multi-Image Input","input"),tS("Audio","audio"),tS("720p","resolution"),tS("4-15 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p"],"720p"),...t_.duration(an,5),...t_.generateAudio(),...t_.returnLastFrame(),...t_.videoInput("Source Video","reference",!0,void 0,void 0,void 0,iZ),...t_.imageInput(9,"Reference Images",!1,"reference",iX)}},{id:"seedance-2.0-video-extend",name:"Seedance 2.0 Video Extend",modelId:"seedance-2.0",addedAt:"2026-05-27",workflow:"seedance",buildPayload:i4("seedance_2_0"),estimatedTime:400,mode:"video",inputType:"v2v",badge:["new","premium","hot"],description:"Stitch up to 3 clips into one continuous, extended video.",features:[tS("Multi-Video Input","input"),tS("Audio","audio"),tS("4K","resolution"),tS("4-15 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p","1080p","4k"],"720p"),...t_.duration(an,15),...t_.generateAudio(),...t_.videoInputs(3,"Source Videos",!0,iZ)}},{id:"seedance-2.0-without-moderation-video-extend",name:"Seedance 2.0 Without Moderation Video Extend",modelId:"seedance-2.0",addedAt:"2026-08-17",release:"preview",workflow:"seedance",buildPayload:i4("seedance_2_0_without_moderation"),estimatedTime:400,mode:"video",inputType:"v2v",badge:["new","premium","hot"],description:"Moderation-free: stitch up to 3 clips into one continuous, extended video.",features:[tS("Multi-Video Input","input"),tS("Audio","audio"),tS("4K","resolution"),tS("4-15 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p","1080p","4k"],"720p"),...t_.duration(an,15),...t_.generateAudio(),...t_.videoInputs(3,"Source Videos",!0,iZ)}},{id:"seedance-2.0-fast-video-extend",name:"Seedance 2.0 Fast Video Extend",modelId:"seedance-2.0-fast",addedAt:"2026-05-27",workflow:"seedance",buildPayload:i4("seedance_2_0_fast"),estimatedTime:180,mode:"video",inputType:"v2v",badge:["new","fast","premium","hot"],description:"Quickly stitch up to 3 clips into one continuous video.",features:[tS("Multi-Video Input","input"),tS("Audio","audio"),tS("720p","resolution"),tS("4-15 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p"],"720p"),...t_.duration(an,15),...t_.generateAudio(),...t_.videoInputs(3,"Source Videos",!0,iZ)}},{id:"seedance-2.0-mini-video-extend",name:"Seedance 2.0 Mini Video Extend",modelId:"seedance-2.0-mini",addedAt:"2026-06-25",workflow:"seedance",buildPayload:i4("seedance_2_0_mini"),estimatedTime:180,mode:"video",inputType:"v2v",badge:["new","fast","premium"],description:"Lightweight: stitch up to 3 clips into one continuous video.",features:[tS("Multi-Video Input","input"),tS("Audio","audio"),tS("720p","resolution"),tS("4-15 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p"],"720p"),...t_.duration(an,15),...t_.generateAudio(),...t_.videoInputs(3,"Source Videos",!0,iZ)}},{id:"seedance-1.5-pro",name:"Seedance 1.5 Pro",modelId:"seedance-1.5-pro",addedAt:"2026-02-06",deprecated:!0,workflow:"seedance",buildPayload:e=>({model:"seedance_1_5_pro",content:[...e.startFrame?[{type:"image_url",image_url:{url:e.startFrame},role:"first_frame"}]:[],...e.endFrame?[{type:"image_url",image_url:{url:e.endFrame},role:"last_frame"}]:[],{type:"text",text:e.prompt}],ratio:e.aspectRatio??"16:9",duration:e.duration??5,resolution:e.resolution??"720p",generate_audio:e.generateAudio??!1,...e.negativePrompt?{negative_prompt:e.negativePrompt}:{}}),estimatedTime:15,mode:"video",inputType:"t2v",description:"Built-in audio with start/end frame control and flexible 4-12s durations.",features:[tS("Start/End Frame","frame"),tS("Audio","audio"),tS("720p","resolution"),tS("12 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p"],"720p"),...t_.duration([4,5,8,10,12],5),...t_.generateAudio(!1),...t_.startFrame(),...t_.endFrame()}},{id:"seedance-i2v",name:"Seedance I2V",modelId:"seedance-1.0-pro",addedAt:"2026-02-06",deprecated:!0,workflow:"seedance",buildPayload:e=>({model:"seedance_1_0_pro",content:[...e.startFrame?[{type:"image_url",image_url:{url:e.startFrame},role:"first_frame"}]:[],...e.endFrame?[{type:"image_url",image_url:{url:e.endFrame},role:"last_frame"}]:[],{type:"text",text:e.prompt}],ratio:e.aspectRatio??"16:9",duration:e.duration??5,resolution:e.resolution??"720p",...e.negativePrompt?{negative_prompt:e.negativePrompt}:{}}),estimatedTime:40,mode:"video",inputType:"i2v",description:"Bring a still image to life with natural motion and style transfer, up to 1080p.",features:[tS("Image Input","input"),tS("Up to 1080p","resolution"),tS("5/10 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aa),...t_.resolution(["480p","720p","1080p"],"720p"),...t_.duration([5,10],5),...t_.startFrame("First Frame",!0)}}]);function ad(e){return t=>({prompt:t.prompt,model:e,count:t.count??1,...t.resolution?{resolution:t.resolution}:{},...t.aspectRatio?{aspect_ratio:t.aspectRatio}:{},...t.imageUrls?.length?{image:t.imageUrls}:{},...t.negativePrompt?{modelOptions:{negative_prompt:t.negativePrompt}}:{}})}var al=ad("seedream_4_0"),au=ad("seedream_4_5"),am=ad("seedream_4_7"),ap=ad("seedream_5_0_lite"),ac=ad("seedream_5_0_pro"),ag={...t_.prompt(),...t_.aspectRatio(["1:1","4:3","3:4","16:9","9:16","3:2","2:3","21:9"],"16:9"),...t_.count(),...t_.imageInput(2,"Source Images"),...t_.
1negativePrompt()},{MODELS:af}=tx("seedream",[{id:"seedream-5.0-pro",name:"Seedream 5.0 Pro",modelId:"seedream_5_0_pro",addedAt:"2026-07-08",workflow:"seedream",buildPayload:ac,estimatedTime:{"1K":20,"2K":35},mode:"image",inputType:"t2i",description:"Top-tier single-image generation with up to 10 reference images and 2K detail.",features:[tS("Multi-Image Input","input"),tS("2K","resolution")],paramConfig:{...t_.resolution(["1K","2K"]),...t_.prompt(),...t_.aspectRatio(["1:1","4:3","3:4","16:9","9:16","3:2","2:3","21:9"],"16:9"),...t_.imageInput(10,"Source Images"),...t_.negativePrompt()}},{id:"seedream-5.0-lite",name:"Seedream 5.0 Lite",modelId:"seedream_5_0_lite",addedAt:"2026-02-24",workflow:"seedream",buildPayload:ap,estimatedTime:{"2K":22,"3K":44},mode:"image",inputType:"t2i",badge:["popular"],description:"Speedy 3K output with negative prompt and dual-image input support.",features:[tS("Multi-Image Input","input"),tS("3K","resolution")],paramConfig:{...t_.resolution(["2K","3K"]),...ag}},{id:"seedream-4.7",name:"Seedream 4.7",modelId:"seedream_4_7",addedAt:"2026-08-06",workflow:"seedream",buildPayload:am,estimatedTime:{"1K":12,"2K":21,"4K":58},mode:"image",inputType:"t2i",description:"Reliable all-purpose generation with readable text overlay.",features:[tS("Multi-Image Input","input"),tS("4K","resolution")],paramConfig:{...t_.resolution(["1K","2K","4K"]),...ag}},{id:"seedream-4.5",name:"Seedream 4.5",modelId:"seedream_4_5",addedAt:"2026-02-14",workflow:"seedream",buildPayload:au,estimatedTime:{"2K":21,"4K":58},mode:"image",inputType:"t2i",description:"Detailed 4K renders with clean in-image text and dual-image input.",features:[tS("Multi-Image Input","input"),tS("4K","resolution")],paramConfig:{...t_.resolution(["2K","4K"]),...ag}},{id:"seedream-4.0",name:"Seedream 4.0",modelId:"seedream_4_0",addedAt:"2026-02-06",deprecated:!0,workflow:"seedream",buildPayload:al,estimatedTime:{"1K":12,"2K":21,"4K":58},mode:"image",inputType:"t2i",description:"Reliable all-purpose generation with readable text overlay.",features:[tS("Multi-Image Input","input"),tS("4K","resolution")],paramConfig:{...t_.resolution(["1K","2K","4K"]),...ag}}]),ah="JBFqnCBsd6RMkjVDRZzb",av="Kore",ay="cca0e076-b350-4966-b570-4c2fca50b525",aw="en_male_tim_uranus_bigtts",ab="A named voice and audio/image references cannot be combined.",ax=e=>({...t_.prompt({maxLength:3e3}),...t_.voiceId([],aw,{catalog:{workflow:"bytedance/v1/catalog/voices",modelId:e}}),...t_.audioInputs(3,"Reference Audios"),...t_.imageInput(1,"Reference Image",!1),...tw.enum("format",["wav","mp3","pcm","ogg_opus"],"wav",{label:"Format"}),...tw.enum("sampleRate",[8e3,16e3,24e3,32e3,44100,48e3],44100,{label:"Sample Rate"}),...tw.range("speechRate",-50,100,0,{label:"Speech Rate"}),...tw.range("loudnessRate",-50,100,0,{label:"Loudness"}),...tw.range("pitchRate",-12,12,0,{label:"Pitch"}),...tw.boolean("aigcWatermark",!1,"Watermark")}),aI=[{when:{imageUrls:{exists:!0}},then:{voiceId:{disabled:!0,reason:ab},audioUrls:{disabled:!0,reason:ab}}},{when:{audioUrls:{exists:!0}},then:{voiceId:{disabled:!0,reason:ab},imageUrls:{disabled:!0,reason:ab}}}],{MODELS:ak}=tx("seedaudio",[{id:"seed-audio-1.0-multilingual",name:"Seed Audio Multilingual",addedAt:"2026-07-28",workflow:"bytedance/text-to-speech",estimatedTime:15,mode:"audio",inputType:"tts",description:"Synthesize natural speech in 20 languages â pick a named voice or clone one from a reference audio.",features:[tS("20 Languages","characteristic"),tS("Voice Cloning","characteristic"),tS("Reference Audio","audio")],paramConfig:ax("seed-audio-1.0-multilingual"),constraints:aI},{id:"seed-audio-1.0",name:"Seed Audio",addedAt:"2026-07-27",workflow:"bytedance/text-to-speech",estimatedTime:15,mode:"audio",inputType:"tts",description:"Synthesize natural English or Chinese speech â pick a named voice or clone one from a reference audio.",features:[tS("Voice Cloning","characteristic"),tS("Reference Audio","audio")],paramConfig:ax("seed-audio-1.0"),constraints:aI}]),a_=e=>t=>{let i,a=(i=t.imageUrls?.[0])?[{image_url:i}]:t.audioUrls?.length?t.audioUrls.map(e=>({audio_url:e})):[{speaker:t.voiceId??aw}];return{model:e,text_prompt:t.prompt,audio_config:{format:t.format??"wav",sample_rate:t.sampleRate??44100,speech_rate:t.speechRate??0,loudne
1ss_rate:t.loudnessRate??0,pitch_rate:t.pitchRate??0},watermark:{aigc_watermark:t.aigcWatermark??!1},...a?{references:a}:{}}};tI(ak,{"seed-audio-1.0":a_("seed-audio-1.0"),"seed-audio-1.0-multilingual":a_("seed-audio-1.0-multilingual")});var{MODELS:aT}=tx("reve",[{id:"reve",name:"Reve",addedAt:"2026-02-06",workflow:"reve/text-to-image",editWorkflow:"reve/edit",buildPayload:e=>{let t=e.imageUrls&&e.imageUrls.length>0;return{prompt:e.prompt,num_images:e.count??1,...e.aspectRatio&&!t?{aspect_ratio:e.aspectRatio}:{},...t?{image_url:e.imageUrls[0]}:{}}},release:"preview",estimatedTime:20,mode:"image",inputType:"t2i",description:"Stylized 1K images with optional reference input.",features:[tS("Image Input","input"),tS("1K","resolution")],paramConfig:{...t_.prompt({maxLength:2560}),...t_.aspectRatio(["16:9","9:16","1:1","4:3","3:4","3:2","2:3"]),...t_.count([1,2,4]),...t_.imageInput(1,"Source Image")}}]),aS=e=>t=>({model:e,prompt:t.prompt,n:t.count??1,...t.aspectRatio?{aspect_ratio:t.aspectRatio}:{},...t.resolution?{resolution:t.resolution}:{}}),aA=e=>t=>{let i=t.imageUrls??[],a=i.length>1?{images:i.map(e=>({url:e}))}:1===i.length?{image:{url:i[0]}}:{};return{model:e,prompt:t.prompt,n:t.count??1,...t.aspectRatio?{aspect_ratio:t.aspectRatio}:{},...t.resolution?{resolution:t.resolution}:{},...a}},aP=["16:9","9:16","1:1","4:3","3:4","3:2","2:3"],aR=["1:1","16:9","9:16","4:3","3:4","3:2","2:3","2:1","1:2","19.5:9","9:19.5","20:9","9:20"],aF=[3,5,6,8,10,12,15],aC=["1k","2k"],{MODELS:aU}=tx("grok",[{id:"grok-imagine-video",name:"Grok Imagine 1.0",addedAt:"2026-02-24",workflow:"x-ai/v1/videos/generations",editWorkflow:"x-ai/v1/videos/generations",buildPayload:e=>({model:"grok-imagine-video",prompt:e.prompt,duration:e.duration??6,...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{},...e.resolution?{resolution:e.resolution}:{},...e.imageUrls?.[0]?{image:{url:e.imageUrls[0]}}:{}}),buildEditPayload:e=>({model:"grok-imagine-video",prompt:e.prompt,...e.imageUrls?.[0]?{image:{url:e.imageUrls[0]}}:{},duration:e.duration??6,...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{}}),estimatedTime:30,mode:"video",inputType:"t2v",badge:["fast"],description:"Fastest generation pipeline â 720p with audio in seconds, up to 15s.",features:[tS("Image Input","input"),tS("Start Frame","frame"),tS("Audio","audio"),tS("720p","resolution"),tS("15 sec","duration")],paramConfig:{...t_.prompt({maxLength:4096}),...t_.aspectRatio(aP),...t_.resolution(["480p","720p"],"720p"),...t_.duration(aF,6),...t_.imageInput()}},{id:"grok-imagine-video-1.5",name:"Grok Imagine 1.5",addedAt:"2026-06-02",workflow:"x-ai/v1/videos/generations",editWorkflow:"x-ai/v1/videos/generations",buildPayload:e=>({model:"grok-imagine-video-1.5",prompt:e.prompt,duration:e.duration??8,...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{},...e.resolution?{resolution:e.resolution}:{},...e.imageUrls?.[0]?{image:{url:e.imageUrls[0]}}:{}}),buildEditPayload:e=>({model:"grok-imagine-video-1.5",prompt:e.prompt,...e.imageUrls?.[0]?{image:{url:e.imageUrls[0]}}:{},duration:e.duration??8,...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{}}),estimatedTime:30,mode:"video",inputType:"t2v",badge:["new"],description:"Next-gen Grok video â faster, higher fidelity, up to 15s with audio.",features:[tS("Image Input","input"),tS("Audio","audio"),tS("1080p","resolution"),tS("15 sec","duration")],paramConfig:{...t_.prompt({maxLength:4096}),...t_.aspectRatio(aP),...t_.resolution(["480p","720p","1080p"],"720p"),...t_.duration(aF,8),...t_.imageInput(1,"Input Image",!1)}},{id:"grok-edit-video",name:"Grok Edit Video",modelId:"grok-imagine-video",addedAt:"2026-02-06",workflow:"x-ai/v1/videos/edits",buildPayload:e=>({prompt:e.prompt,...e.videoUrl?{video:{url:e.videoUrl}}:{}}),estimatedTime:9,mode:"video",inputType:"v2v",description:"Restyle or remix an existing video with a new prompt direction.",features:[tS("Video Input","input"),tS("Up to 8s","duration")],paramConfig:{...t_.prompt({maxLength:4096}),...t_.videoInput("Source Video","reference",!0,8)}},{id:"grok-extend-video",name:"Grok Extend Video",modelId:"grok-imagine-video",addedAt:"2026-04-22",workflow:"x-ai/v1/videos/extensions",buildPayload:e=>({prompt:e.prompt,...e.videoUrl?{video:{url:e.videoUrl}}:{},duration:e.duration??6}),estimatedTime:15,mode:"video",inputType:"v2v",description:"Extend an existing video forward with a new prompt â up to 10 seconds.",features:[tS("Video Input","input"),tS("Up to 10s","duration")],paramConfig:{...t_.prompt({maxLength:4096}),...t_.duration([3,5,6,8,10],6),...t_.videoInput("Source Video")}},{id:"grok-imagine-image",name:"Grok Imagine",addedAt:"2026-02-06",workflow:"x-ai/v1/images/generations",editWorkflow:"x-ai/v1/images/edits",buildPayload:aS("grok-imagine-image"),buildEditPayload:aA("grok-imagine-image"),estimatedTime:8,mode:"image",inputType:"t2i",badge:["fast"],description:"Rapid image creation with wide aspect-ratio selection and image input.",features:[tS("Image Input","input")],paramConfig:{...t_.prompt({maxLength:8e3}),...t_.aspectRatio(aR,"1:1"),...t_.resolution(aC,"1k"),...t_.count([1,2,4]),...t_.imageInput(1,"Source Image")}},{id:"grok-imagine-image-quality",name:"Grok Imagine Quality",modelId:"grok-imagine-image-quality",addedAt:"2026-05-19",workflow:"x-ai/v1/images/generations",editWorkflow:"x-ai/v1/images/edits",buildPayload:aS("grok-imagine-image-quality"),buildEditPayload:aA("grok-imagine-image-quality"),estimatedTime:16,mode:"image",inputType:"t2i",description:"Higher-fidelity Grok Imagine variant for production-grade images.",features:[tS("Image Input","input"),tS("2k","resolution")],paramConfig:{...t_.prompt({maxLength:8e3}),...t_.aspectRatio(aR,"1:1"),...t_.resolution(aC,"2k"),...t_.count([1,2,4]),...t_.imageInput(1,"Source Image")}},{id:"grok-imagine-image-2.0",name:"Grok Imagine 2.0",addedAt:"2026-08-19",workflow:"x-ai/v1/images/generations",editWorkflow:"x-ai/v1/images/edits",estimatedTime:16,mode:"image",inputType:"t2i",description:"Latest Grok Imagine generation â sharper detail with a low/medium quality tier.",features:[tS("Image Input","input"),tS("2k","resolution")],paramConfig:{...t_.prompt({maxLength:8e3}),...t_.aspectRatio(aR,"1:1"),...t_.resolution(aC,"1k"),...tw.quality(["low","medium"],"medium"),...t_.count([1,2,4]),...t_.imageInput(1,"Source Image")}},{id:"grok-tts",name:"Grok TTS",modelId:"grok-tts",addedAt:"2026-04-21",workflow:"x-ai/v1/tts",buildPayload:e=>({text:e.prompt,language:e.language??"auto",voice_id:e.voiceId??"eve"}),estimatedTime:8,mode:"audio",inputType:"tts",description:"Expressive text-to-speech from xAI Grok with multilingual support.",features:[tS("Multilingual","characteristic"),tS("5 Voices","characteristic")],paramConfig:{...t_.language(!0),...t_.prompt({maxLength:15e3}),...t_.voiceId([],"eve",{catalog:{workflow:"x-ai/v1/catalog/voices"}})}}]);tI(aU,{"grok-imagine-image-2.0":e=>({model:"grok-imagine-image-2.0",prompt:e.prompt,n:e.count??1,...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{},...e.resolution?{resolution:e.resolution}:{},...e.quality?{quality:e.quality}:{}})}),tk(aU,{"grok-imagine-image-2.0":e=>{let t=e.imageUrls??[],i=t.length>1?{images:t.map(e=>({url:e}))}:1===t.length?{image:{url:t[0]}}:{};return{model:"grok-imagine-image-2.0",prompt:e.prompt,n:e.count??1,...e.resolution?{resolution:e.resolution}:{},...i}}});var aE={"16:9":1.77,"9:16":.56,"1:1":1,"4:5":.8,"5:4":1.25,"3:2":1.5,"2:3":.67},aV=[5,10],aL=["16:9","9:16","1:1","4:5","5:4","3:2","2:3"],aM=["720p","1080p"],{MODELS:aO}=tx("pika",[{id:"pika-2.2",name:"Pika",addedAt:"2026-02-06",deprecated:!0,workflow:"pika-text-to-vi
1deo-v2-2",editWorkflow:"pika-image-to-video-v2-2",buildPayload:e=>({prompt:e.prompt,...e.imageUrls?.[0]?{image:e.imageUrls[0]}:{},resolution:e.resolution??"720p",duration:String(e.duration??5),...!e.imageUrls?.[0]?{aspectRatio:aE[e.aspectRatio??"16:9"]??1.77}:{}}),estimatedTime:50,editEstimatedTime:50,mode:"video",inputType:"t2v",description:"Expressive animation across many visual styles from text or image.",features:[tS("Image Input","input"),tS("Up to 1080p","resolution"),tS("5/10 sec","duration")],paramConfig:{...t_.prompt(),...t_.duration(aV,5),...t_.aspectRatio(aL),...t_.resolution(aM),...t_.imageInput()}},{id:"pika-2.2-scenes",name:"Pika Scenes",addedAt:"2026-02-06",deprecated:!0,workflow:"pika-scenes-v2-2",buildPayload:e=>({prompt:e.prompt,images:e.imageUrls??[],resolution:e.resolution??"720p",duration:String(e.duration??5),aspectRatio:aE[e.aspectRatio??"16:9"]??1.77}),estimatedTime:55,mode:"video",inputType:"i2v",description:"Blend up to 4 images into a cohesive video with smooth transitions.",features:[tS("Multi-Image Input","input"),tS("Up to 1080p","resolution"),tS("5/10 sec","duration")],paramConfig:{...t_.prompt(),...t_.duration(aV,5),...t_.aspectRatio(aL),...t_.resolution(aM),...t_.imageInput(4,"Scene Images",!0)}},{id:"pika-2.2-frames",name:"Pika Frames",addedAt:"2026-02-06",deprecated:!0,workflow:"pika-frames-v2-2",buildPayload:e=>({prompt:e.prompt,frames:e.imageUrls??[],resolution:e.resolution??"720p",duration:String(e.duration??5),aspectRatio:aE[e.aspectRatio??"16:9"]??1.77}),estimatedTime:50,mode:"video",inputType:"i2v",description:"Morph between two keyframes with controlled in-between motion.",features:[tS("Multi-Image Input","input"),tS("Up to 1080p","resolution"),tS("5/10 sec","duration")],paramConfig:{...t_.prompt(),...t_.duration(aV,5),...t_.resolution(aM),...t_.imageInput(2,"Start + End Frame",!0)}}]);function aD(e){return e.match(/\.png(\?|$)/i)?"image/png":"image/jpeg"}var aq=(e,t={})=>i=>{let a=i.imageUrls??[];return{model:e,prompt:i.prompt,count:1,...i.videoUrl?{video:{url:i.videoUrl,mimeType:"video/mp4"}}:{...i.startFrame?{image:{url:i.startFrame,mimeType:aD(i.startFrame)}}:{},...i.endFrame?{lastFrame:{url:i.endFrame,mimeType:aD(i.endFrame)}}:{},...a.length>0?{referenceImages:a.slice(0,3).map(e=>({image:{url:e,mimeType:aD(e)},referenceType:"asset"}))}:{}},...i.negativePrompt?{negativePrompt:i.negativePrompt}:{},parameters:{resolution:i.resolution??"720p",aspectRatio:i.aspectRatio??"16:9",durationSeconds:i.videoUrl?7:i.duration??8,...t.withAudio?{generateAudio:i.generateAudio??!0}:{}}}},aK={...t_.prompt({maxLength:4e3}),...t_.aspectRatio(["16:9","9:16"]),...t_.duration([4,6,8],8),...t_.resolution(["720p","1080p","4k"]),...t_.imageInput(3,"Reference Images"),...t_.generateAudio(),...t_.negativePrompt(),...t_.startFrame(),...t_.endFrame()},aG="Reference images cannot be combined with start and last frame images",a$=[{when:{imageUrls:{exists:!0}},then:{duration:{allowed:[8],reason:"Reference images require 8s duration"}}},{when:{resolution:{is:"4k"}},then:{duration:{allowed:[8],reason:"4K requires 8s duration"}}},{when:{resolution:{is:"1080p"}},then:{duration:{allowed:[8],reason:"1080p requires 8s duration"}}},{when:{startFrame:{exists:!0}},then:{imageUrls:{disabled:!0,reason:aG}}},{when:{endFrame:{exists:!0}},then:{imageUrls:{disabled:!0,reason:aG}}},{when:{imageUrls:{exists:!0}},then:{startFrame:{disabled:!0,reason:aG},endFrame:{disabled:!0,reason:aG}}}],aj={...t_.prompt({maxLength:4e3}),...t_.aspectRatio(["16:9","9:16"]),...t_.duration([4,6,8],8),...t_.resolution(["720p","1080p"]),...t_.startFrame()},{MODELS:aW}=tx("google",[{id:"veo-3.1",name:"Veo 3.1",modelId:"veo-3.1-generate-001",addedAt:"2026-02-06",workflow:"veo-t2v",buildPayload:aq("veo-3.1-generate-001",{withAudio:!0}),estimatedTime:{"720p":40,"1080p":80,"4k":138},mode:"video",inputType:"t2v",badge:["popular","premium"],description:"4K video with built-in audio â voices, music, and effects match every scene.",features:[tS("Start/End Frame","frame"),tS("Reference Images","input"),tS("4K","resolution"),tS("Audio","audio"),tS("4/6/8 sec","duration")],paramConfig:aK,constraints:a$},{id:"veo-3.1-fast",name:"Veo 3.1 Fast",modelId:"veo-3.1-fast-generate-001",addedAt:"2026-02-06",workflow:"veo-t2v",buildPayload:aq("veo-3.1-fast-generate-001",{withAudio:!0}),estimatedTime:{"720p":40,"1080p":60,"4k":80},mode:"video",inputType:"t2v",badge:["popular","fast"],description:"Quick 4K video with synchronized audio for rapid iteration.",features:[tS("Start/End Frame","frame"),tS("Reference Images","input"),tS("4K","resolution"),tS("Audio","audio"),tS("4/6/8 sec","duration")],paramConfig:aK,constraints:a$},{id:"veo-3.1-lite",name:"Veo 3.1 Lite",modelId:"veo-3.1-lite-generate-preview",addedAt:"2026-04-02",workflow:"veo-t2v",buildPayload:aq("veo-3.1-lite-generate-preview"),estimatedTime:{"720p":10,"1080p":25},mode:"video",inputType:"t2v",badge:["fast"],description:"Lightweight video with built-in audio â fast and affordable, 720p/1080p",features:[tS("Start Frame","frame"),tS("Audio","audio"),tS("1080p","resolution"),tS("4/6/8 sec","duration")],paramConfig:aj,constraints:[{when:{resolution:{is:"1080p"}},then:{duration:{allowed:[8],reason:"1080p supports 8s only"}}}]}]),az=["Game Character","Music Superstar","Game Character Man","Cat Character","Influencer","Tennis Coach","Human Resource","Fashion Designer","Cooking Teacher"].map(e=>({id:e.toLowerCase().replace(/ /g,"-"),label:e})),aB={"16:9":"1280:720","9:16":"720:1280"},aN={"16:9":"1920:1080","9:16":"1080:1920"},aH={"16:9":"1280:768","9:16":"768:1280"},{MODELS:aQ}=tx("runway",[{id:"runway-avatar-video",name:"Runway Avatar",addedAt:"2026-04-17",workflow:"runway/avatar/video",buildPayload:e=>{let t=!!e.audioUrl;return{avatarType:"runway-preset",presetId:e.style??"game-character",speechType:t?"audio":"text",...t?{audio:e.audioUrl}:{text:e.prompt,...e.voiceId?{voice:{type:"preset",presetId:e.voiceId}}:{}}
1}},constraints:[{when:{audioUrl:{exists:!0}},then:{voiceId:{disabled:!0,reason:"Voice comes from the attached audio file"},prompt:{disabled:!0,reason:"Prompt is ignored when audio is attached"}}}],estimatedTime:120,mode:"video",inputType:"t2v",description:"Generate speaking avatar videos from preset characters with natural lip-sync.",features:[tS("Audio Input","audio")],paramConfig:{...t_.style(az,"game-character"),...t_.voiceId([],"victoria",{catalog:{workflow:"runway/v1/catalog/voices"}}),...t_.prompt({maxLength:1500,placeholder:"Write the script your avatar will speak...",required:!1}),...t_.audioInput("Audio Track")}},{id:"runway-gen3a-turbo",name:"Runway Gen-3 Alpha Turbo",addedAt:"2026-03-08",deprecated:!0,workflow:"runway-video-generate",buildPayload:e=>({promptText:e.prompt,model:"gen3a_turbo",seed:Math.floor(0x7fffffff*Math.random()),promptImage:[...e.startFrame?[{uri:e.startFrame,position:"first"}]:[],...e.endFrame?[{uri:e.endFrame,position:"last"}]:[]],ratio:aH[e.aspectRatio??"16:9"]??"1280:768",duration:e.duration??5}),estimatedTime:20,mode:"video",inputType:"i2v",description:"Fast I2V generation with start/end frame interpolation â ideal for controllable motion.",features:[tS("Start/End Frame","frame"),tS("5/10 sec","duration")],paramConfig:{...t_.prompt({maxLength:1e3}),...t_.duration([5,10],5),...t_.aspectRatio(["16:9","9:16"]),...t_.startFrame("Start Frame",!0),...t_.endFrame()}},{id:"runway-gen4.5",name:"Runway Gen 4.5",addedAt:"2026-02-06",workflow:"runway-gen4-5-text-to-video",editWorkflow:"runway-gen4-5-image-to-video",buildPayload:e=>({promptText:e.prompt,...e.imageUrls?.[0]?{promptImage:[{uri:e.imageUrls[0],position:"first"}]}:{},ratio:aB[e.aspectRatio??"16:9"]??"1280:720",duration:e.duration??5}),estimatedTime:24,editEstimatedTime:36,mode:"video",inputType:"t2v",badge:["premium"],description:"Photorealistic motion at 1080p with nuanced camera and lighting.",features:[tS("Image Input","input"),tS("1080p","resolution"),tS("5/8/10 sec","duration")],paramConfig:{...t_.prompt({maxLength:1e3}),...t_.duration([5,8,10],5),...t_.aspectRatio(["16:9","9:16"]),...t_.imageInput()}},{id:"runway-gen4-aleph",name:"Runway Aleph",addedAt:"2026-02-06",deprecated:!0,workflow:"runway-aleph",buildPayload:e=>({model:"gen4_aleph",promptText:e.prompt,videoUri:e.videoUrl,ratio:aB[e.aspectRatio??"16:9"]??"1280:720"}),estimatedTime:135,mode:"video",inputType:"v2v",description:"Transform or enhance existing video content through restyling.",features:[tS("Video Input","input")],paramConfig:{...t_.prompt({maxLength:1e3}),...t_.videoInput("Source Video","reference",!0,30)}},{id:"runway-aleph2",name:"Runway Aleph 2",addedAt:"2026-06-01",workflow:"runway-aleph",buildPayload:e=>({model:"aleph2",promptText:e.prompt,videoUri:e.videoUrl,ratio:aB[e.aspectRatio??"16:9"]??"1280:720",...e.startFrame||e.endFrame?{promptImage:[...e.startFrame?[{uri:e.startFrame,position:"first"}]:[],...e.endFrame?[{uri:e.endFrame,position:"last"}]:[]]}:{}}),estimatedTime:135,mode:"video",inputType:"v2v",description:"Next-gen video restyling with keyframe image guidance for precise motion and style control.",features:[tS("Video Input","input"),tS("Start/End Frame","frame")],paramConfig:{...t_.prompt({maxLength:1e3}),...t_.videoInput("Source Video","reference",!0,30),...t_.startFrame(),...t_.endFrame()}},{id:"runway-gen4-ref",name:"Runway Gen4 Ref",addedAt:"2026-02-06",workflow:"runway-gen4-image-ref",buildPayload:e=>({promptText:e.prompt,referenceImages:(e.imageUrls??[]).map(e=>({uri:e})),ratio:aN[e.aspectRatio??"16:9"]??"1920:1080"}),estimatedTime:6,mode:"image",inputType:"i2i",description:"Generate a still image from up to 3 reference images with consistent identity.",features:[tS("Image Input","input"),tS("1080p","resolution")],paramConfig:{...t_.prompt({maxLength:1e3}),...t_.aspectRatio(["16:9","9:16"]),...t_.imageInput(3,"Reference Images",!0)}}]),aX={"1:1":"1024x1024","5:3":"1280x768","3:5":"768x1280","4:3":"1024x768","3:4":"768x1024"},aJ=["1:1","16:9","9:16","4:3","3:4","21:9","9:21"],aY=["1K","2K","4K"],aZ=e=>t=>({prompt:t.prompt,model:e,count:t.count??1,imageUrls:t.imageUrls??[],resolution:t.resolution??"1K",aspectRatio:t.aspectRatio??"1:1",...null!=t.guidance?{guidance:t.guidance}:{},...null!=t.seed?{seed:t.seed}:{}}),a0=e=>t=>{let i=function(e){if(!e)return null;let t=String(e).trim();return t?t.startsWith("ASPECT_")?t.replace("ASPECT_","").replace("_",":"):t:null}
1(t.aspectRatio)||function(e){if(!e)return null;let t=String(e).match(/^(\d+)x(\d+)$/i);if(!t)return null;let i=Number(t[1]),a=Number(t[2]);return i&&a?`${i}:${a}`:null}(t.size);return{prompt:t.prompt,model:e,count:t.count??1,imageUrls:t.imageUrls??[],...i?{aspectRatio:i}:{}}},a1={workflow:"bfl/v1/flux-2",mode:"image",inputType:"t2i"},a2={workflow:"bfl/v1/flux-kontext",mode:"image",inputType:"t2i"},{MODELS:a3}=tx("flux",[{...a1,id:"flux-2-pro",name:"Flux 2 Pro",modelId:"flux-2-pro",addedAt:"2026-02-06",buildPayload:aZ("flux-2-pro"),estimatedTime:19,description:"Sharp images up to 4K with fine-tuned color accuracy and detail.",features:[tS("Multi-Image Input","input"),tS("4K","resolution")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aJ,"4:3"),...t_.resolution(aY,"1K"),...t_.count(),...t_.imageInput(4,"Source Images")}},{...a1,id:"flux-2-max",name:"Flux 2 Max",modelId:"flux-2-max",addedAt:"2026-02-06",buildPayload:aZ("flux-2-max"),estimatedTime:27,description:"Maximum detail for intricate compositions and demanding scenes.",features:[tS("Image Input","input"),tS("4K","resolution")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aJ,"1:1"),...t_.resolution(aY,"1K"),...t_.count(),...t_.imageInput(1,"Source Image")}},{...a1,id:"flux-2-flex",name:"Flux 2 Flex",modelId:"flux-2-flex",addedAt:"2026-02-06",buildPayload:aZ("flux-2-flex"),estimatedTime:15,description:"Adaptable generation across varied visual styles up to 4K.",features:[tS("Image Input","input"),tS("4K","resolution")],paramConfig:{...t_.prompt(),...t_.aspectRatio(aJ,"3:4"),...t_.resolution(aY,"1K"),...t_.count(),...t_.imageInput(1,"Source Image")}},{...a2,id:"flux-kontext-max",name:"Flux Kontext Max",modelId:"flux-kontext-max",addedAt:"2026-02-06",buildPayload:a0("flux-kontext-max"),estimatedTime:15,description:"Edit and compose from up to 4 reference images with context awareness.",features:[tS("Multi-Image Input","input")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["1:1","16:9","9:16","4:3","3:4","21:9","9:21"],"1:1"),...t_.count(),...t_.imageInput(4,"Source Images")}},{...a2,id:"flux-kontext-pro",name:"Flux Kontext Pro",modelId:"flux-kontext-pro",addedAt:"2026-02-06",buildPayload:a0("flux-kontext-pro"),estimatedTime:15,badge:["fast"],description:"Single-image context-aware editing and generation â fast.",features:[tS("Image Input","input")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["1:1","16:9","9:16","4:3","3:4","21:9","9:21"],"1:1"),...t_.count(),...t_.imageInput(1,"Source Image")}},{id:"flux-3-image",name:"Flux 3 Image",workflow:"bfl/v1/flux-3-image",mode:"image",inputType:"t2i",release:"preview",addedAt:"2026-09-22",estimatedTime:75,description:"Generate and edit images with up to 10 references â multi-reference composition, precise local edits and text rendering, natively up to 4K.",features:[tS("Multi-Image Input","input"),tS("4K","resolution")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["auto","21:9","2:1","16:9","3:2","7:5","4:3","5:4","1:1","4:5","3:4","5:7","2:3","9:16","1:2"],"auto"),...t_.resolution(["512sq","768sq","1k","2k","4k"],"1k"),...t_.count(),...t_.imageInput(10,"Reference Images",!1,"reference"),...tw.range("safetyTolerance",0,4,2,{label:"Safety Tolerance"})}},{id:"flux-3-video",name:"Flux 3 Video",workflow:"flux/v1/video",mode:"video",inputType:"t2v",addedAt:"2026-07-27",estimatedTime:120,constraints:[{when:{draft:{is:!0}},then:{resolution:{allowed:["hd"],reason:"Draft mode only supports HD resolution."}}}],description:"Text-to-video with synchronized audio, plus image-to-video (animate up to 10 images) and video continuation.",features:[tS("Image & Video Input","input"),tS("Audio","audio"),tS("Up to 20s","duration"),t
1S("1080p","resolution")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["auto","21:9","2:1","16:9","4:3","1:1","3:4","9:16"],"auto"),...t_.resolution(["hd","fhd"],"hd"),...tw.enum("duration",["auto","5","10","15","20"],"auto",{label:"Duration"}),...t_.imageInput(10,"Images",!1,"asset"),...t_.videoInput("Start Video","asset",!1,15),...t_.generateAudio(!0),...tw.range("safetyTolerance",0,4,2,{label:"Safety Tolerance"}),...tw.boolean("draft",!1,"Draft")}},{id:"flux-video-upscale",name:"Flux Video Upscale",workflow:"flux/v1/video-upscale",mode:"video",inputType:"v2v",addedAt:"2026-08-28",estimatedTime:180,description:"Upscale videos toward 4K (1.5xâ3x) in precise (source-faithful) or creative (detail-enhancing) mode. Source clips up to 20 seconds and 2K.",features:[tS("Upscale","quality"),tS("Video Required","input"),tS("Up to 4K","resolution")],paramConfig:{...t_.videoInput("Source Video","asset",!0,20,1440,0x3200000),...tw.range("upscaleFactor",1.5,3,2,{step:.5,label:"Upscale Factor"}),...tw.enum("creativity",[{id:0,label:"Precise"},{id:1,label:"Creative"}],1,{label:"Creativity"}),...t_.prompt({required:!1}),...tw.range("safetyTolerance",0,4,2,{label:"Safety Tolerance"})}},{id:"flux-video-edit",name:"FLUX Video Edit",workflow:"flux/v1/video-edit",mode:"video",inputType:"v2v",addedAt:"2026-09-09",estimatedTime:180,badge:["new","fast"],description:"Edit videos with a text instruction â change objects, styles or scenes while preserving motion, timing and audio. Source clips up to 15 seconds; output at 24 fps, up to 720p.",features:[tS("Video Required","input"),tS("Up to 15s","duration"),t
1S("720p","resolution")],paramConfig:{...t_.videoInput("Source Video","asset",!0,15,void 0,0x3200000),...t_.prompt({maxLength:4096}),...tw.range("safetyTolerance",0,4,2,{label:"Safety Tolerance"})}}]);function a6(e){let t={};return e.thinkingLevel&&(t.thinkingLevel=e.thinkingLevel.toUpperCase()),null!=e.thinkingBudget&&(t.thinkingBudget=e.thinkingBudget),Object.keys(t).length?{thinkingConfig:t}:{}}tI(a3,{"flux-3-video":e=>{let t=e.duration&&"auto"!==e.duration?Number(e.duration):"auto";return{prompt:e.prompt,aspectRatio:e.aspectRatio??"auto",resolution:e.resolution??"hd",duration:t,generateAudio:e.generateAudio??!0,safetyTolerance:e.safetyTolerance??2,...e.imageUrls?.length?{keyframes:e.imageUrls}:{},...e.videoUrl?{startVideo:e.videoUrl}:{},...e.draft?{draft:e.draft}:{}}}});var a4=e=>({text:e.prompt,model:e.modelId??"gemini-2.5-flash-tts",voiceName:e.voiceId??"Kore"}),a5=["1:1","16:9","9:16","3:4","4:3","2:3","21:9","auto"],a8={thinkingLevel:{label:"Thinking",descriptor:{kind:"enum",valueType:"string",options:[{id:"minimal",label:"Minimal (faster)"},{id:"high",label:"High (more reasoning)"}],default:"minimal"}}},{MODELS:a7}=tx("google",[{id:"gemini-3.1-flash-image",addedAt:"2026-02-26",name:"Nano Banana 2",specName:"Gemini 3.1 Flash Image",workflow:"gemini/v2/images",buildPayload:e=>({prompt:e.prompt,model:"gemini-3.1-flash-image-preview",count:e.count??1,...e.imageUrls?.length?{imageUrls:e.imageUrls}:{},aspectRatio:e.aspectRatio??"1:1",imageSize:e.resolution??"1K",...a6(e)}),estimatedTime:{"0.5K":12,"1K":22,"2K":46,"4K":92},mode:"image",inputType:"t2i",modelId:"gemini-3.1-flash-image-preview",badge:["hot","fast"],description:"Fast 4K generation with accurate text and search-grounded accuracy.",features:[tS("Multi-Image Input","input"),tS("4K","resolution"),tS("Text Rendering","characteristic")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["1:1","16:9","9:16","3:4","4:3","3:2","2:3","4:5","5:4","4:1","1:4","8:1","1:8","21:9","auto"],"1:1"),...t_.resolution(["0.5K","1K","2K","4K"],"1K"),...t_.count(),...a8,...t_.imageInput(14,"Source Images")}},{id:"gemini-3.1-flash-lite-image",addedAt:"2026-07-01",name:"Nano Banana 2 Lite",specName:"Gemini 3.1 Flash Lite Image",workflow:"gemini/v2/images",buildPayload:e=>({prompt:e.prompt,model:"gemini-3.1-flash-lite-image",count:e.count??1,...e.imageUrls?.length?{imageUrls:e.imageUrls}:{},aspectRatio:e.aspectRatio??"1:1",imageSize:e.resolution??"1K",...a6(e)}),estimatedTime:14,mode:"image",inputType:"t2i",modelId:"gemini-3.1-flash-lite-image",badge:["fast"],description:"Lightweight Nano Banana 2 variant for faster, high-volume image generation.",features:[tS("Multi-Image Input","input"),tS("Text Rendering","characteristic")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["1:1","16:9","9:16","3:4","4:3","3:2","2:3","4:5","5:4","4:1","1:4","8:1","1:8","21:9","auto"],"1:1"),...t_.count(),...a8,...t_.imageInput(14,"Source Images")}},{id:"gemini-3-pro-image",addedAt:"2026-02-06",name:"Nano Banana Pro",specName:"Gemini 3 Pro Image",workflow:"gemini/v2/images",buildPayload:e=>({prompt:e.prompt,model:"gemini-3-pro-image-preview",count:e.count??1,...e.imageUrls?.length?{imageUrls:e.imageUrls}:{},aspectRatio:e.aspectRatio??"1:1",imageSize:e.resolution??"2K",...a6(e)}),estimatedTime:{"0.5K":15,"1K":30,"2K":57,"4K":74},mode:"image",inputType:"t2i",modelId:"gemini-3-pro-image-preview",badge:["popular","premium"],description:"Top-tier 4K images with precise multilingual text rendering.",features:[tS("Multi-Image Input","input"),tS("4K","resolution")],paramConfig:{...t_.prompt(),...t_.aspectRatio([...a5],"1:1"),...t_.resolution(["1K","2K","4K"],"2K"),...t_.count(),thinkingBudget:{label:"Thinking Budget",descriptor:{kind:"range",min:128,max:24576,step:128,default:128}},...t_.imageInput(14,"Source Images")}},{id:"gemini-2.5-flash-image",addedAt:"2026-02-06",name:"Nano Banana",specName:"Gemini 2.5 Flash Image",workflow:"gemini/v2/images",buildPayload:e=>({prompt:e.prompt,model:"gemini-2.5-flash-image",count:e.count??1,...e.imageUrls?.length?{imageUrls:e.imageUrls}:{},aspectRatio:e.aspectRatio??"16:9"}),estimatedTime:17,mode:"image",inputType:"t2i",modelId:"gemini-2.5-flash-image",badge:["popular","fast"],description:"Quick, lightweight image creation for high-volume workflows.",features:[tS("Multi-Image Input","input"),tS("1K","resolution")],paramConfig:{...t_.prompt(),...t_.aspectRatio([...a5],"16:9"),...t_.count(),...t_.imageInput(14,"Source Images")}},{id:"gemini-2.5-flash-tts",name:"Gemini 2.5 Flash TTS",addedAt:"2026-02-15",workflow:"gemini/v1/audios",buildPayload:a4,estimatedTime:15,mode:"audio",inputType:"tts",modelId:"gemini-2.5-flash-tts",description:"Google Gemini native text-to-speech with expressive multilingual voices.",features:[tS("Multilingual","characteristic"),tS("30 Voices","characteristic")],paramConfig:{...t_.language(!0),...t_.prompt({maxLength:6e3}),...t_.voiceId([],av,{catalog:{workflow:"gemini/v1/catalog/voices"}})}},{id:"gemini-2.5-pro-tts",name:"Gemini 2.5 Pro TTS",addedAt:"2026-03-18",workflow:"gemini/v1/audios",buildPayload:a4,estimatedTime:20,mode:"audio",inputType:"tts",modelId:"gemini-2.5-pro-tts",badge:["premium"],description:"Premium Gemini TTS with richer expressiveness and multi-speaker support.",features:[tS("Multilingual","characteristic"),tS("30 Voices","characteristic"),tS("Multi-Speaker","characteristic")],paramConfig:{...t_.language(!0),...t_.prompt({maxLength:6e3}),...t_.voiceId([],av,{catalog:{workflow:"gemini/v1/catalog/voices"}})}},{id:"gemini-omni-flash-preview",name:"Gemini Omni",addedAt:"2026-06-24",workflow:"gemini-omni/video",buildPayload:e=>({prompt:e.prompt,model:"gemini-omni-flash-preview",...e.aspectRatio?{aspectRatio:e.aspectRatio}:{},...e.duration?{durationSeconds:e.duration}:{},...e.imageUrls?.[0]?{image:{url:e.imageUrls[0],mimeType:e.imageUrls[0].match(/\.png(\?|$)/i)?"image/png":"image/jpeg"}}:{},...e.videoUrl?{video:{url:e.videoUrl}}:{}}),estimatedTime:40,mode:"video",inputType:"t2v",description:"Google Gemini multimodal video â text, image, or video as input.",features:[tS("Source Image","input"),tS("Source Video","input"),tS("3â10 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["16:9","9:16"]),...tw.enum("duration",[3,5,6,8,10],8,{label:"Duration (seconds)"}),...t_.imageInput(1,"Source Image",!1,"asset"),...t_.videoInput("Source Video","asset",!1)}},{id:"gemini-omni-1.1-flash-preview",name:"Gemini Omni 1.1 Flash",specName:"Gemini Omni 1.1 Flash Preview",addedAt:"2026-08-27",workflow:"gemini-omni/video",estimatedTime:{"360p":30,"720p":40,"1080p":60,"4k":90},mode:"video",inputType:"t2v",description:"Gemini Omni with frame interpolation, video extension, reference-guided generation, and up to 4K output.",features:[tS("Start/End Frame","input"),tS("Reference Images & Videos","input"),tS("Video Extension","input"),tS("4K","resolution"),tS("3â10 sec","duration")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["16:9","9:16"],"16:9"),...t_.resolution(["360p","720p","1080p","4k"],"720p"),...t_.duration([3,4,5,6,7,8,9,10],8),...t_.startFrame("Start Frame"),...t_.endFrame("End Frame"),...t_.imageInput(5,"Reference Images",!1,"reference"),...t_.videoInput("Source Video","asset",!1,30),...t_.videoInputs(3,"Reference Videos")}}]),a9=e=>({url:e,mimeType:e.match(/\.png(\?|$)/i)?"image/png":"image/jpeg"});tI(a7,{"gemini-omni-1.1-flash-preview":e=>({prompt:e.prompt,model:"gemini-omni-1.1-flash-preview",aspectRatio:e.aspectRatio??"16:9",durationSeconds:e.duration??8,resolution:e.resolution??"720p",...e.startFrame?{image:a9(e.startFrame)}:{},...e.endFrame?{lastFrame:a9(e.endFrame)}:{},...e.imageUrls?.length?{referenceImages:e.imageUrls.map(a9)}:{},...e.videoUrl?{video:{url:e.videoUrl}}:{},...e.videoUrls?.length?{referenceVideos:e.videoUrls.map(e=>({url:e}))}:{}})});var re={"1:1":"1024x1024","3:2":"1536x1024","2:3":"1024x1536","16:9":"1536x1024","9:16":"1024x1536","4:3":"1536x1024","3:4":"1024x1536"},rt={"1:1":"1024x1024","3:2":"1536x1024","2:3":"1024x1536","16:9":"1824x1024","9:16":"1024x1824","4:3":"1360x1024","3:4":"1024x1360"},ri=["max","xhigh","high","medium","low"],ra=["1:1","3:2","2:3","16:9","9:16","4:3","3:4","auto"],rr=[{when:{background:{is:"transparent"}},then:{outputFormat:{allowed:["png","webp"],reason:"Transparent background needs PNG or WEBP â JPEG has no alpha channel."}}}],{MODELS:ro}=tx("openai",[{id:"gpt-image-2.5-sunburst",name:"GPT Image 2.5 Sunburst",addedAt:"2026-09-09",workflow:"openai-images-generate",editWorkflow:"openai-image-editing",estimatedTime:60,mode:"image",inputType:"t2i",description:"Most capable GPT Image tier â premium edits and campaign-grade output, with longer generation times.",features:[tS("Multi-Image Input","input"),tS("High Quality","quality")],paramConfig:{...t_.prompt({maxLength:32e3}),...t_.aspectRatio(ra,"1:1"),...tw.quality(ri,"high"),...tw.enum("background",["opaque","transparent"],"opaque",{label:"Backgroun
1d"}),...tw.enum("outputFormat",["png","jpeg","webp"],"png",{label:"Format"}),...t_.count(),...t_.imageInput(16,"Source Images")},constraints:rr},{id:"gpt-image-2.5-flare",name:"GPT Image 2.5 Flare",addedAt:"2026-09-09",workflow:"openai-images-generate",editWorkflow:"openai-image-editing",estimatedTime:25,mode:"image",inputType:"t2i",description:"Fast GPT Image tier â everyday generation at roughly half the latency of GPT Image 2.",features:[tS("Multi-Image Input","input"),tS("Fast","characteristic")],paramConfig:{...t_.prompt({maxLength:32e3}),...t_.aspectRatio(ra,"1:1"),...tw.quality(ri,"high"),...tw.enum("background",["opaque","transparent"],"opaque",{label:"Background"}),...tw.enum("outputFormat",["png","jpeg","webp"],"png",{label:"Format"}),...t_.count(),...t_.imageInput(16,"Source Images")},constraints:rr},{id:"gpt-image-2",name:"GPT Image 2",modelId:"gpt-image-2",addedAt:"2026-04-21",workflow:"openai-images-generate",editWorkflow:"openai-image-editing",buildPayload:e=>{let t=e.aspectRatio??"",i="auto"===t?void 0:rt[t];return{prompt:e.prompt,model:"gpt-image-2",n:e.count??1,size:e.size??i??"1024x1024",quality:e.quality??"high",...e.background?{background:e.background}:{},...e.outputFormat?{output_format:e.outputFormat}:{}}},buildEditPayload:e=>({prompt:e.prompt,model:"gpt-image-2",images:e.imageUrls??[],n:e.count??1,size:"auto"===e.aspectRatio?"auto":rt[e.aspectRatio??""]??"auto",quality:e.quality??"high",...e.background?{background:e.background}:{},...e.outputFormat?{output_format:e.outputFormat}:{}}),estimatedTime:50,mode:"image",inputType:"t2i",description:"Next-gen GPT image model with arbitrary output dimensions and multi-image input.",features:[tS("Multi-Image Input","input"),tS("High Quality","quality")],paramConfig:{...t_.prompt({maxLength:32e3}),...t_.aspectRatio(["1:1","3:2","2:3","16:9","9:16","4:3","3:4","auto"],"1:1"),...tw.quality(["high","medium","low"],"high"),...tw.enum("outputFormat",["png","jpeg","webp"],"png",{label:"Format"}),...t_.count(),...t_.imageInput(5,"Source Images")},constraints:[{when:{imageUrls:{exists:!0}},then:{aspectRatio:{allowed:["1:1","3:2","2:3","auto"],reason:"Image edit supports only square / 3:2 / 2:3 or auto."}}},{when:{imageUrls:{exists:!1}},then:{aspectRatio:{allowed:["1:1","3:2","2:3","16:9","9:16","4:3","3:4"],reason:'"Auto" requires a source image â upload one to use it.'}}}]},{id:"gpt-image-1.5",name:"GPT Image 1.5",modelId:"gpt-image-1.5",addedAt:"2026-02-06",workflow:"openai-images-generate",editWorkflow:"openai-image-editing",buildPayload:e=>({prompt:e.prompt,model:"gpt-image-1.5",n:e.count??1,size:e.size??re[e.aspectRatio??""]??"1024x1024",quality:e.quality??"high",...e.background?{background:e.background}:{},...e.outputFormat?{output_format:e.outputFormat}:{}}),buildEditPayload:e=>({prompt:e.prompt,model:"gpt-image-1.5",images:e.imageUrls??[],n:e.count??1,size:e.size??re[e.aspectRatio??""]??"1024x1024",quality:e.quality??"high",...e.background?{background:e.background}:{},...e.outputFormat?{output_format:e.outputFormat}:{}}),estimatedTime:50,mode:"image",inputType:"t2i",description:"Strong text-in-image and infographic rendering with multi-image input.",features:[tS("Multi-Image Input","input"),tS("High Quality","quality")],paramConfig:{...t_.prompt({maxLength:32e3}),...t_.aspectRatio(["1:1","3:2","2:3","16:9","9:16","4:3","3:4"],"1:1"),...tw.quality(["high","medium","low"],"high"),...tw.enum("background",["opaque","transparent"],"opaque",{label:"Background"}),...tw.enum("outputFormat",["png","jpeg","webp"],"png",{label:"Format"}),...t_.count(),...t_.imageInput(5,"Source Images")},constraints:rr},{id:"gpt-image-1",name:"GPT Image 1",modelId:"gpt-image-1",addedAt:"2026-03-13",deprecated:!0,workflow:"openai-images-generate",editWorkflow:"openai-image-editing",buildPayload:e=>({prompt:e.prompt,model:"gpt-image-1",n:e.count??1,size:e.size??re[e.aspectRatio??""]??"1024x1024",quality:e.quality??"high",...e.background?{background:e.background}:{},...e.outputFormat?{output_format:e.outputFormat}:{}}),buildEditPayload:e=>({prompt:e.prompt,model:"gpt-image-1",images:e.imageUrls??[],n:e.count??1,size:e.size??re[e.aspectRatio??""]??"1024x1024",quality:e.quality??"high",...e.background?{background:e.background}:{},...e.outputFormat?{output_format:e.outputFormat}:{}}),estimatedTime:40,mode:"image",inputType:"t2i",description:"Original GPT image model with quality-tiered generation.",features:[tS("Multi-Image Input","input")],paramConfig:{...t_.prompt({maxLength:32e3}),...t_.aspectRatio(["1:1","3:2","2:3","16:9","9:16","4:3","3:4"],"1:1"),...tw.quality(["high","medium","low"],"high"),...tw.enum("background",["opaque","transparent"],"opaque",{label:"Backgroun
1d"}),...tw.enum("outputFormat",["png","jpeg","webp"],"png",{label:"Format"}),...t_.count(),...t_.imageInput(5,"Source Images")},constraints:rr}]),rn=(e,t)=>"auto"===e?"auto":rt[e??""]??t,rs=e=>t=>({prompt:t.prompt,model:e,n:t.count??1,size:rn(t.aspectRatio,"1024x1024"),quality:t.quality??"high",...t.background?{background:t.background}:{},...t.outputFormat?{output_format:t.outputFormat}:{}}),rd=e=>t=>({prompt:t.prompt,model:e,images:t.imageUrls??[],n:t.count??1,size:rn(t.aspectRatio,"auto"),quality:t.quality??"high",...t.background?{background:t.background}:{},...t.outputFormat?{output_format:t.outputFormat}:{}});tI(ro,{"gpt-image-2.5-flare":rs("gpt-image-2.5-flare"),"gpt-image-2.5-sunburst":rs("gpt-image-2.5-sunburst")}),tk(ro,{"gpt-image-2.5-flare":rd("gpt-image-2.5-flare"),"gpt-image-2.5-sunburst":rd("gpt-image-2.5-sunburst")});var rl={workflow:"elevenlabs/v1/catalog/voices"},ru=e=>t=>({voice_description:t.prompt,auto_generate_text:!0,model_id:e}),rm=e=>({stability:{label:"Stability",descriptor:{kind:"range",min:0,max:1,step:.05}},similarityBoost:{label:"Similarity",descriptor:{kind:"range",min:0,max:1,step:.05}},styleExaggeration:{label:"Style Exaggeration",descriptor:{kind:"range",min:0,max:1,step:.05}},speed:{label:"Speed",descriptor:{kind:"range",min:.1,max:5,step:.05}},...e?{useSpeakerBoost:{label:"Speaker Boost",descriptor:{kind:"boolean",default:!0}}}:{}}),rp=(e,t)=>({...t?t_.language(!1):{},...t_.prompt({maxLength:e}),...t_.voiceId([],ah,{catalog:rl}),...rm(!0)}),{MODELS:rc}=tx("elevenlabs",[{id:"eleven-v3",name:"Eleven v3",modelId:"eleven_v3",addedAt:"2026-02-06",workflow:"elevenlabs/v1/text-to-speech",estimatedTime:11,mode:"audio",inputType:"tts",badge:["popular"],description:"Latest voice engine with expanded tone and pacing control.",features:[tS("Experimental","characteristic"),tS("Creative Control","characteristic")],paramConfig:rp(5e3,!0)},{id:"eleven-multilingual-v2",name:"Eleven Multilingual v2",modelId:"eleven_multilingual_v2",addedAt:"2026-02-06",workflow:"elevenlabs/v1/text-to-speech",estimatedTime:9,mode:"audio",inputType:"tts",badge:["popular","fast"],description:"Stable multilingual speech across 29+ languages with natural rhythm.",features:[tS("Stable","characteristic"),tS("Professional","characteristic")],paramConfig:rp(1e4,!1)},{id:"eleven-text-to-dialogue",name:"Eleven Dialogue v3",modelId:"eleven-text-to-dialogue",addedAt:"2026-09-22",workflow:"elevenlabs/v1/text-to-dialogue",estimatedTime:12,mode:"audio",inputType:"tts",description:"Generate a multi-speaker conversation â a voice per line â in one take.",features:[tS("Multi-Speaker","characteristic"),tS("Creative Control","characteristic")],paramConfig:{dialogue:{label:"Dialogue",required:!0,descriptor:{kind:"object",array:{min:1},fields:{voiceId:{label:"Voice ID",kind:"text",placeholder:ah},text:{label:"Line",kind:"text",maxLength:5e3}}}},...tw.enum("stability",[{id:0,label:"Creative"},{id:.5,label:"Natural"},{id:1,label:"Robust"}],.5,{label:"Stability"}),...t_.language(!1),...t_.seed(0xffffffff)}},{id:"elevenlabs-sfx",name:"ElevenLabs SFX v2",modelId:"eleven_text_to_sound_v2",addedAt:"2026-02-06",workflow:"elevenlabs/v1/sound-generation",buildPayload:e=>({text:e.prompt,duration_seconds:e.duration??5,model_id:"eleven_text_to_sound_v2"}),estimatedTime:6,mode:"audio",inputType:"sfx",badge:["popular"],description:"Create custom sound effects from a text description â up to 30 seconds.",features:[tS("Sound Effects","characteristic")],paramConfig:{...t_.prompt({maxLength:450}),...t_.durationRange(.5,30,5,.5)}},{id:"elevenlabs-music-v2",name:"ElevenLabs Music v2",modelId:"eleven_music_v2",addedAt:"2026-07-02",workflow:"elevenlabs/v1/music-generation",estimatedTime:30,mode:"audio",inputType:"music",description:"Generate music with vocals or instrumental from a text prompt.",features:[tS("Vocal & Instrumental","characteristic")],paramConfig:{...t_.prompt({maxLength:4100}),...t_.duration([10,20,30,60,120,180,300,600],30),...tw.boolean("isInstrumental",!1,"Instrumental Only")}},{id:"eleven-sts-v2",name:"Eleven STS v2",modelId:"eleven_english_sts_v2",addedAt:"2026-02-15",workflow:"elevenlabs/v1/spee
1ch-to-speech",estimatedTime:15,mode:"audio",inputType:"sts",description:"Swap your voice to a different speaker while keeping timing and emotion.",features:[tS("Voice Changer","characteristic"),tS("Emotion Preserved","characteristic")],paramConfig:{...t_.audioInput("Speech Audio",!0),...t_.voiceId([],ah,{catalog:rl}),...tw.boolean("removeBackgroundNoise",!1,"Remove Background Noise"),...rm(!1)}},{id:"eleven-multilingual-sts-v2",name:"Eleven Multilingual STS v2",modelId:"eleven_multilingual_sts_v2",addedAt:"2026-02-15",workflow:"elevenlabs/v1/speech-to-speech",estimatedTime:15,mode:"audio",inputType:"sts",description:"Voice swap across 29 languages â preserves emotion and cadence.",features:[tS("Voice Changer","characteristic"),tS("Multilingual","characteristic"),tS("29 Languages","characteristic")],paramConfig:{...t_.audioInput("Speech Audio",!0),...t_.voiceId([],ah,{catalog:rl}),...tw.boolean("removeBackgroundNoise",!1,"Remove Background Noise"),...rm(!1)}},{id:"eleven-audio-isolation",name:"Eleven Audio Isolation",addedAt:"2026-03-24",workflow:"elevenlabs/v1/audio-isolation",buildPayload:e=>({audio_url:e.audioUrl}),estimatedTime:20,mode:"audio",inputType:"sts",description:"Isolate vocals and remove background noise from an audio file.",features:[tS("Noise Removal","characteristic"),tS("Vocal Isolation","characteristic")],paramConfig:{...t_.audioInput("Audio File",!0)}},{id:"eleven-dubbing",name:"Eleven Dubbing",addedAt:"2026-03-24",workflow:"elevenlabs/v1/dubbing",buildPayload:e=>({audio_url:e.audioUrl,source_lang:"auto",target_lang:e.language}),estimatedTime:60,mode:"audio",inputType:"sts",description:"Dub audio or video across languages with automatic voice matching.",features:[tS("Multilingual","characteristic"),tS("Dubbing","characteristic")],paramConfig:{...t_.audioInput("Source Audio",!0),language:{label:"Target Language (ISO 639 code)",required:!0,descriptor:{kind:"text",placeholder:"e.g. es, fr, de"}}}},{id:"eleven-voice-remix",name:"Eleven Voice Remix",addedAt:"2026-03-24",workflow:"elevenlabs/v1/voice-remix",buildPayload:e=>({voice_id:e.voiceId,voice_description:e.prompt,auto_generate_text:!0}),estimatedTime:15,mode:"audio",inputType:"tts",release:"preview",description:"Remix voice characteristics by describing the desired vocal style.",features:[tS("Voice Design","characteristic"),tS("Remix","characteristic")],paramConfig:{voiceId:{label:"Voice ID (a custom voice from your workspace)",required:!0,descriptor:{kind:"text",placeholder:"Premade/catalog voices are rejected by ElevenLabs"}},...t_.prompt({minLength:5,maxLength:1e3})}},{id:"eleven-voice-design-v3",name:"Eleven Voice Design v3",addedAt:"2026-03-24",modelId:"eleven_ttv_v3",workflow:"elevenlabs/v1/voice-design",buildPayload:ru("eleven_ttv_v3"),estimatedTime:15,mode:"audio",inputType:"tts",description:"Design a new voice from a text description using v3 engine.",features:[tS("Voice Design","characteristic"),tS("Preview","characteristic")],paramConfig:{...t_.prompt({minLength:20,maxLength:1e3})}},{id:"eleven-voice-design-v2",name:"Eleven Voice Design Multilingual v2",addedAt:"2026-03-24",modelId:"eleven_multilingual_ttv_v2",workflow:"elevenlabs/v1/voice-design",buildPayload:ru("eleven_multilingual_ttv_v2"),estimatedTime:15,mode:"audio",inputType:"tts",description:"Design a new voice from a text description with multilingual support.",features:[tS("Voice Design","characteristic"),tS("Multilingual","characteristic"),tS("Preview","characteristic")],paramConfig:{...t_.prompt({minLength:20,maxLength:1e3})}},{id:"eleven-voice-create",name:"Eleven Voice Previews",modelId:"eleven-voice-create-previews",addedAt:"2026-03-24",workflow:"elevenlabs/v1/voice-create-previews",buildPayload:e=>({voice_description:e.prompt,auto_generate_text:!0}),estimatedTime:15,mode:"audio",inputType:"tts",description:"Generate voice previews from a description to audition before committing.",features:[tS("Voice Design","characteristic"),tS("Preview","characteristic")],paramConfig:{...t_.prompt({minLength:20,maxLength:1e3})}}]),rg=e=>{let t={...null!=e.stability?{stability:e.stability}:{},...null!=e.similarityBoost?{similarity_boost:e.similarityBoost}:{},...null!=e.styleExaggeration?{style:e.styleExaggeration}:{},...null!=e.speed?{speed:e.speed}:{},...null!=e.useSpeakerBoost?{use_speaker_boost:e.useSpeakerBoost}:{}};return Object.keys(t).length>0?{voice_settings:t}:{}},rf=e=>t=>({text:t.prompt,voice_id:t.voiceId??ah,model_id:e,...t.language?{language_code:t.language}:{},...rg(t)}),rh=e=>t=>({audio_url:t.audioUrl,voice_id:t.voiceId??ah,model_id:e,remove_background_noise:t.removeBackgroun
1dNoise??!1,...rg(t)});tI(rc,{"elevenlabs-music-v2":e=>({prompt:e.prompt,music_length_seconds:e.duration??30,model_id:"music_v2",force_instrumental:e.isInstrumental??!1}),"eleven-v3":rf("eleven_v3"),"eleven-multilingual-v2":rf("eleven_multilingual_v2"),"eleven-sts-v2":rh("eleven_english_sts_v2"),"eleven-multilingual-sts-v2":rh("eleven_multilingual_sts_v2"),"eleven-text-to-dialogue":e=>({conversation:e.dialogue.map(e=>({voice_id:e.voiceId,text:e.text})),model_id:"eleven_v3",...null!=e.stability?{settings:{stability:e.stability}}:{},...e.language?{language_code:e.language}:{},...null!=e.seed?{seed:e.seed}:{}})});var rv={...t_.voiceId([],"",{required:!0,catalog:{workflow:"heygen/v1/catalog/voices"}})},{MODELS:ry}=tx("heygen",[{id:"heygen-talking-photo",modelId:"heygen-avatar-iv",addedAt:"2026-03-17",name:"HeyGen Talking Photo",workflow:"heygen/v1/video/generate",buildPayload:e=>({image_url:e.imageUrls?.[0],script:e.prompt,voice_id:e.voiceId||void 0,...e.resolution?{resolution:e.resolution}:{},...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{}}),estimatedTime:120,mode:"video",inputType:"i2v",description:"Animate any photo into a speaking avatar with natural lip-sync.",features:[tS("Image Input","input"),tS("Voice Selection","audio"),tS("Lip Sync","characteristic")],paramConfig:{...t_.imageInput(1,"Portrait Image",!0),...t_.resolution(["4k","1080p","720p"],"720p"),...t_.aspectRatio(["16:9","9:16","4:5","5:4","1:1","auto"]),...rv,...t_.prompt({minLength:20,maxLength:5e3,placeholder:"Write the script your avatar will speak (at least 20 characters)..."})}},{id:"heygen-video-avatar",modelId:"heygen-avatar-iv",addedAt:"2026-03-17",name:"HeyGen Video Avatar",workflow:"heygen/v1/video/generate",buildPayload:e=>({avatar_id:e.videoId||void 0,script:e.prompt,voice_id:e.voiceId||void 0,...e.resolution?{resolution:e.resolution}:{},...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{},...e.engine?{engine:e.engine}:{}}),estimatedTime:90,mode:"video",inputType:"t2v",description:"Generate a speaking avatar video from a stock avatar and text script.",features:[tS("Avatar Selection","characteristic"),tS("Voice Selection","audio"),tS("Lip Sync","characteristic")],paramConfig:{...t_.videoId([],"",{required:!0,catalog:{workflow:"heygen/v1/catalog/avatars"}}),engine:{label:"Engine",required:!1,descriptor:{kind:"enum",valueType:"string",options:[{id:"avatar_iv",label:"Avatar IV"},{id:"avatar_v",label:"Avatar V"}],default:"avatar_iv"}},...t_.resolution(["4k","1080p","720p"],"720p"),...t_.aspectRatio(["16:9","9:16","4:5","5:4","1:1","auto"]),...rv,...t_.prompt({minLength:20,maxLength:5e3,placeholder:"Write the script your avatar will speak (at least 20 characters)..."})}}]),rw="References and start/end frames cannot be combined.",rb="Aspect ratio follows the frame image.",rx={startFrame:{disabled:!0,reason:rw},endFrame:{disabled:!0,reason:rw}},rI={imageUrls:{disabled:!0,reason:rw},videoUrls:{disabled:!0,reason:rw},audioUrls:{disabled:!0,reason:rw}},{MODELS:rk}=tx("minimax",[{id:"minimax-music-v2",name:"MiniMax Music v2",addedAt:"2026-02-06",workflow:"minimax-music/v2",buildPayload:e=>({prompt:e.prompt,...e.lyricsPrompt?{lyrics:e.lyricsPrompt}:{},...null!=e.lyricsOptimizer?{lyrics_optimizer:e.lyricsOptimizer}:{},...null!=e.isInstrumental?{is_instrumental:e.isInstrumental}:{},audio_setting:{sample_rate:e.sampleRate??44100,bitrate:e.bitrate??256e3,format:e.format??"mp3"}}),estimatedTime:39,mode:"audio",inputType:"music",description:"Text-to-music with vocals or instrumentals from a style prompt and lyrics prompt.",features:[tS("Music","characteristic"),tS("Vocals","characteristic")],paramConfig:{...t_.prompt({maxLength:2e3,placeholder:"Describe the genre, mood, instruments, tempo, and production style..."}),...tw.text("lyricsPrompt",{maxLength:3500,label:"Lyrics",placeholder:"Write lyrics, or describe the lyrical theme. Optional for instrumental or optimizer-generated lyrics."}),...tw.boolean("lyricsOptimizer",!1,"Lyrics Optimizer"),...tw.boolean("isInstrumental",!1,"Instrumental"),...tw.enum("sampleRate",[16e3,24e3,32e3,44100],44100,{label:"Sample Rate"}),...tw.enum("bitrate",[32e3,64e3,128e3,256e3],256e3,{label:"Bitrate"}),...tw.enum("format",["mp3","wav","pcm"],"mp3",{label:"Format"})}},{id:"minimax-music-v3",name:"MiniMax Music v3",addedAt:"2026-08-14",workflow:"minimax-music/v3",estimatedTime:40,mode:"audio",inputType:"music",description:"Text-to-music with vocals or instrumentals from a style prompt and optional lyrics, with configurable audio encoding.",features:[tS("Music","characteristic"),tS("Vocals","characteristic")],paramConfig:{...t_.prompt({maxLength:2e3,placeholder:"Describe the genre, mood, instruments, tempo, and production style..."}),...tw.text("lyricsPrompt",{maxLength:3500,label:"Lyrics",placeholder:"Write lyrics; \\n separates lines, [Intro]/[Verse]/[Chorus] tags supported. Optional for instrumental or optimizer-generated lyrics."}),...tw.boolean("lyricsOptimizer",!1,"Lyrics Optimizer"),...tw.boolean("isInstrumental",!1,"Instrumental"),...tw.enum("sampleRate",[16e3,24e3,32e3,44100],44100,{label:"Sample Rate"}),...tw.enum("bitrate",[32e3,64e3,128e3,256e3],256e3,{label:"Bitrate"}),...tw.enum("format",["mp3","wav","pcm"],"mp3",{label:"Format"})}},{id:"minimax-h3-max",name:"MiniMax H3 Max",modelId:"fal-ai-h3-max",addedAt:"2026-08-28",workflow:"minimax/h3-max/video-generation",estimatedTime:5,mode:"video",inputType:"t2v",description:"Top-tier MiniMax H3 Max video from text, a start/end frame, or reference images, videos, and audio â refer to references in the prompt as Image 1, Video 1, Audio 1, in input order. Up to 15s at 1080p.",features:[tS("Start/End Frame","frame"),tS("Multi-Image Input","input"),tS("Video Input","input"),tS("Audio Input","input"),tS("1080p","resolution"),tS("5-15 sec","duration")],paramConfig:{...t_.prompt({maxLength:5e4}),...t_.startFrame(),...t_.endFrame(),...t_.imageInput(9,"Reference Images"),...t_.videoInputs(3,"Reference Videos"),...t_.audioInputs(3,"Reference Audios"),...t_.resolution(["480p","768p","1080p"],"768p"),...t_.durationRange(5,15,5),...t_.aspectRatio(["adaptive","21:9","16:9","4:3","1:1","3:4","9:16"],"16:9"),...tw.enum("promptExpansionMode",["balanced","quality"],"balanced",{label:"Prompt Expansion"}),...tw.range("seed",-1,0x7fffffff,-1),...tw.boolean("enableSafetyChecker",!0,"Safety Checker")},constraints:[{when:{startFrame:{exists:!0}},then:rI},{when:{endFrame:{exists:!0}},then:rI},{when:{imageUrls:{exists:!0}},then:rx},{when:{videoUrls:{exists:!0}},then:rx},{when:{audioUrls:{exists:!0}},then:rx},{when:{startFrame:{exists:!0}},then:{aspectRatio:{disabled:!0,reason:rb}}},{when:{endFrame:{exists:!0}},then:{aspectRatio:{disabled:!0,reason:rb}}},{when:{imageUrls:{exists:!1},videoUrls:{exists:!1},audioUrls:{exists:!1}},then:{aspectRatio:{allowed:["21:9","16:9","4:3","1:1","3:4","9:16"],reason:"Adaptive aspect ratio requires reference inputs."}}},{when:{imageUrls:{exists:!1},videoUrls:{exists:!1}},then:{audioUrls:{disabled:!0,reason:"Audio cannot be the only reference â add an image or video."}}}]},{id:"minimax-h3-max-turbo",name:"MiniMax H3 Max Turbo",modelId:"fal-ai-h3-max-turbo",addedAt:"2026-09-03",workflow:"minimax/h3-max-turbo/text-to-vi
1deo",editWorkflow:"minimax/h3-max-turbo/image-to-video",estimatedTime:5,mode:"video",inputType:"t2v",description:"Faster-than-realtime MiniMax H3 Max Turbo video from text or a start/end frame, with prompt expansion. Up to 15s at 1080p.",features:[tS("Fast","characteristic"),tS("Image Input","input"),tS("Start/End Frame","frame"),tS("1080p","resolution"),tS("5-15 sec","duration")],paramConfig:{...t_.prompt({maxLength:5e4}),...t_.startFrame(),...t_.endFrame(),...t_.resolution(["480p","768p","1080p"],"768p"),...t_.durationRange(5,15,5),...t_.aspectRatio(["21:9","16:9","4:3","1:1","3:4","9:16"],"16:9"),...tw.enum("promptExpansionMode",["balanced","quality"],"balanced",{label:"Prompt Expansion"}),...tw.range("seed",-1,0x7fffffff,-1),...tw.boolean("enableSafetyChecker",!0,"Safety Checker")},constraints:[{when:{startFrame:{exists:!0}},then:{aspectRatio:{disabled:!0,reason:"Aspect ratio follows the frame image."}}},{when:{endFrame:{exists:!0}},then:{aspectRatio:{disabled:!0,reason:"Aspect ratio follows the frame image."}}}]},{id:"minimax-h3-max-camera-controls",name:"MiniMax H3 Max Camera Controls",modelId:"fal-ai-h3-max-camera-controls",addedAt:"2026-09-14",workflow:"minimax/h3-max/camera-controls",estimatedTime:5,mode:"video",inputType:"i2v",description:"MiniMax H3 Max video from a start frame with scripted camera motion â 2-12 keyframes set the camera angle, height, and distance over time. Leave the prompt blank to freeze the scene and move only the camera. Up to 15s at 1080p.",features:[tS("Camera Controls","characteristic"),tS("Image Input","input"),tS("1080p","resolution"),tS("5-15 sec","duration")],paramConfig:{...t_.prompt({maxLength:5e4,required:!1,placeholder:"Optional â leave blank to freeze the scene and move only the camera..."}),...t_.startFrame("Start Frame",!0),...t_.resolution(["480p","768p","1080p"],"480p"),...t_.durationRange(5,15,5),cameraTrajectory:{label:"Camera Trajectory",descriptor:{kind:"object",array:{min:2,max:12},fields:{time:{kind:"range",min:0,max:1,step:.01,default:0},azimuth:{kind:"range",min:-11520,max:11520,default:0},elevation:{kind:"range",min:-90,max:90,default:0},distance:{kind:"range",min:.01,max:100,default:1}}}},...tw.enum("promptExpansionMode",["balanced","quality"],"balanced",{label:"Prompt Expansion"}),...tw.range("seed",-1,0x7fffffff,-1),...tw.boolean("enableSafetyChecker",!0,"Safety Checker")}},{id:"minimax-h3-max-lip-sync",name:"MiniMax H3 Max Lip Sync",modelId:"fal-ai-h3-max-lip-sync",addedAt:"2026-09-22",workflow:"minimax/h3-max/lip-sync/image-to-video",estimatedTime:120,mode:"video",inputType:"i2v",description:"MiniMax H3 Max lip-synced video from a portrait and an audio track â mouth movements follow the soundtrack, optionally guided by a transcript. 5-14.8s of audio, up to 2K.",features:[tS("Lip Sync","characteristic"),tS("Image Input","input"),tS("Audio Input","audio"),tS("2K","resolution"),tS("5-15 sec","duration")],paramConfig:{...t_.startFrame("Portrait Image",!0),...t_.audioInput("Audio Track",!0),...t_.resolution(["480p","768p","1080p","2k"],"768p"),...tw.boolean("enableTranscription",!1,"Transcription"),...tw.range("seed",-1,0x7fffffff,-1),...tw.boolean("enableSafetyChecker",!0,"Safety Checker")}}]),r_=e=>({prompt:e.prompt,prompt_expansion_mode:e.promptExpansionMode??"balanced",duration:e.duration??5,resolution:e.resolution??"768p",...e.startFrame?{image_url:e.startFrame}:{},...e.endFrame?{end_image_url:e.endFrame}:{},...e.startFrame||e.endFrame?{}:{aspect_ratio:e.aspectRatio??"16:9"},...null!=e.seed&&-1!==e.seed?{seed:e.seed}:{},enable_safety_checker:e.enableSafetyChecker??!0});tI(rk,{"minimax-music-v3":e=>({prompt:e.prompt,...e.lyricsPrompt?{lyrics:e.lyricsPrompt}:{},lyrics_optimizer:e.lyricsOptimizer??!1,is_instrumental:e.isInstrumental??!1,audio_setting:{sample_rate:e.sampleRate??44100,bitrate:e.bitrate??256e3,format:e.format??"mp3"}}),"minimax-h3-max":e=>{let t=!!(e.imageUrls?.length||e.videoUrls?.length||e.audioUrls?.length),i=!!(e.startFrame||e.endFrame);return{prompt:e.prompt,prompt_expansion_mode:e.promptExpansionMode??"balanced",duration:e.duration??5,resolution:(e.resolution??"768p").toUpperCase(),...e.startFrame?{image_url:e.startFrame}:{},...e.endFrame?{end_image_url:e.endFrame}:{},...e.imageUrls?.length?{reference_image_urls:e.imageUrls}:{},...e.videoUrls?.length?{reference_video_urls:e.videoUrls}:{},...e.audioUrls?.length?{reference_audio_urls:e.audioUrls}:{},...i?{}:{aspect_ratio:e.aspectRatio??(t?"adaptive":"16:9")},...null!=e.seed&&-1!==e.seed?{seed:e.seed}:{},enable_safety_checker:e.enableSafetyChecker??!0}},"minimax-h3-max-turbo":r_,"minimax-h3-max-camera-controls":e=>({...e.prompt?{prompt:e.prompt}:{},image_url:e.startFrame,...e.cameraTrajectory?.length?{camera_trajectory:e.cameraTrajectory}:{},prompt_expansion_mode:e.promptExpansionMode??"balanced",duration:e.duration??5,resolution:(e.resolution??"480p").toUpperCase(),...null!=e.seed&&-1!==e.seed?{seed:e.seed}:{},enable_safety_checker:e.enableSafetyChecker??!0}),"minimax-h3-max-lip-sync":e=>({image_url:e.startFrame,audio_url:e.audioUrl,resolution:(e.resolution??"768p").toUpperCase(),enable_transcription:e.enableTranscription??!1,...null!=e.seed&&-1!==e.seed?{seed:e.seed}:{},enable_safety_checker:e.enableSafetyChecker??!0})}),tk(rk,{"minimax-h3-max-turbo":r_});var{MODELS:rT}=tx("ideogram",[{id:"ideogram-v4",name:"Ideogram 4.0",addedAt:"2026-06-03",workflow:"ideogram/v4/generate",editWorkflow:"ideogram/v4/remix",buildPayload:e=>({text_prompt:e.prompt,...e.resolution?{resolution:e.resolution}:{},...e.renderingSpeed?{rendering_speed:e.renderingSpeed}:{},...e.enableCopyrightDetection?{enable_copyright_detection:!0}
1:{}}),buildEditPayload:e=>({text_prompt:e.prompt,image:e.startFrame??e.imageUrls?.[0],...null!=e.imageWeight?{image_weight:e.imageWeight}:{},...e.renderingSpeed?{rendering_speed:e.renderingSpeed}:{},...e.enableCopyrightDetection?{enable_copyright_detection:!0}:{}}),estimatedTime:20,mode:"image",inputType:"t2i",description:"Ideogram's latest model â class-leading text rendering at up to ~3K resolution.",features:[tS("Text Rendering","style"),tS("Up to 3K","resolution"),tS("Image Remix","input")],paramConfig:{...t_.prompt(),...t_.resolution(["2048x2048","1440x2880","2880x1440","1664x2496","2496x1664","1792x2240","2240x1792","1440x2560","2560x1440","1600x2560","2560x1600","1728x2304","2304x1728","1296x3168","3168x1296","1152x2944","2944x1152","1248x3328","3328x1248","1280x3072","3072x1280","1024x3072","3072x1024","1024x1024","896x1120","1120x896","864x1152","1152x864","832x1248","1248x832","800x1280","1280x800","720x1280","1280x720","720x1440","1440x720","512x1536","1536x512"],"2048x2048"),...t_.renderingSpeed([{id:"TURBO",label:"Turbo"},{id:"DEFAULT",label:"Balanced"},{id:"QUALITY",label:"Quality"}],"DEFAULT"),...tw.boolean("enableCopyrightDetection",!1,"Copyright Detection"),...t_.imageInput(1,"Source Image"),...t_.imageWeight(1,100,50,5)}},{id:"ideogram-p-image",name:"Ideogram P-Image",addedAt:"2026-07-28",workflow:"ideogram/p-image/generate",buildPayload:e=>({prompt:e.prompt,resolution:e.resolution??"1024x1024",rendering_speed:e.renderingSpeed??"medium"}),estimatedTime:15,mode:"image",inputType:"t2i",description:"Tiered Ideogram text-to-image â pick a speed/quality tier from very-low (fastest) to high (max quality).",features:[tS("Speed Tiers","style"),tS("Up to 2K","resolution")],paramConfig:{...t_.prompt(),...t_.resolution(["2048x2048","1440x2880","2880x1440","1664x2496","2496x1664","1792x2240","2240x1792","1440x2560","2560x1440","1600x2560","2560x1600","1728x2304","2304x1728","1296x3168","3168x1296","1152x2944","2944x1152","1248x3328","3328x1248","1280x3072","3072x1280","1024x3072","3072x1024","1024x1024","896x1120","1120x896","864x1152","1152x864","832x1248","1248x832","800x1280","1280x800","720x1280","1280x720","720x1440","1440x720"],"1024x1024"),...t_.renderingSpeed([{id:"very-low",label:"Very Low"},{id:"low",label:"Low"},{id:"medium",label:"Balanced"},{id:"high",label:"Quality"}],"medium")}},{id:"ideogram-v3",name:"Ideogram v3",modelId:"ideogram_v_3",addedAt:"2026-02-06",workflow:"ideogram-v3-generate",editWorkflow:"ideogram-v3-remix",buildPayload:e=>({prompt:e.prompt,num_images:e.count??1,style_type:e.style??"GENERAL",magic_prompt_option:"AUTO",aspect_ratio:(e.aspectRatio??"16:9").replace(":","x"),...e.renderingSpeed?{rendering_speed:e.renderingSpeed}:{},...e.negativePrompt?{negative_prompt:e.negativePrompt}:{}}),buildEditPayload:e=>({prompt:e.prompt,image:e.imageUrls?.[0],num_images:e.count??1,image_weight:e.imageWeight??50,style_type:e.style??"GENERAL",magic_prompt:"AUTO",aspect_ratio:(e.aspectRatio??"16:9").replace(":","x"),...e.renderingSpeed?{rendering_speed:e.renderingSpeed}:{},...e.negativePrompt?{negative_prompt:e.negativePrompt}:{}}),estimatedTime:17,mode:"image",inputType:"t2i",description:"Best-in-class text placement for logos, posters, and graphic design.",features:[tS("Multi-Image Input","input"),tS("Styles","style")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["16:9","9:16","1:1","3:4","4:3"]),...t_.renderingSpeed([{id:"FLASH",label:"Flash"},{id:"TURBO",label:"Turbo"},{id:"DEFAULT",label:"Balanced"},{id:"QUALITY",label:"Quality"}],"DEFAULT"),...t_.style([{id:"GENERAL",label:"General"},{id:"REALISTIC",label:"Realistic"},{id:"DESIGN",label:"Design"}],"GENERAL"),...t_.count(),...t_.negativePrompt(),...t_.imageInput(1,"Source Image"),...t_.imageWeight(1,100,50,5)}},{id:"ideogram-character",name:"Ideogram Character",modelId:"ideogram-v3-character",addedAt:"2026-02-14",workflow:"ideogram-v3-generate",buildPayload:e=>({prompt:e.prompt,num_images:e.count??1,resolution:e.resolution??"1024x1024",style_type:e.style??"AUTO",...e.renderingSpeed?{rendering_speed:e.renderingSpeed}:{},...e.imageUrls?.length?{character_reference_images:[e.imageUrls[0]]}:{}}),estimatedTime:20,mode:"image",inputType:"i2i",description:"Maintain a consistent character across scenes using a single reference photo.",features:[tS("Character Ref","input"),tS("Styles","style")],paramConfig:{...t_.prompt(),...t_.resolution(["1024x1024","1344x768","768x1344","1152x864","864x1152","832x1248","1280x800"]),...t_.renderingSpeed([{id:"TURBO",label:"Turbo"},{id:"DEFAULT",label:"Balanced"},{id:"QUALITY",label:"Quality"}],"DEFAULT"),...t_.style([{id:"AUTO",label:"Auto"},{id:"REALISTIC",label:"Realistic"},{id:"FICTION",label:"Fiction"}],"AUTO"),...t_.count(),...t_.imageInput(1,"Character Reference",!0)}}]),rS=e=>t=>{let i=Array.isArray(t.imageUrls)&&t.imageUrls.length>0,a="agent"===t.promptExtendMode&&i&&e.startsWith("qwen-image-3.0")?void 0:t.promptExtendMode,r=t.enhancePrompt??!0;return{prompt:t.prompt,model:e,...i?{image_urls:t.imageUrls}:{},...t.negativePrompt?{negative_prompt:t.negativePrompt}:{},...i?{}:{size:(t.resolution??"2048x2048").replace("x","*")},n:t.count??1,prompt_extend:r,...a?{prompt_extend_mode:a}:{},...null!=t.enableThinking&&r?{enable_thinking:t.enableThinking}:{},watermark:!1,...null!=t.seed?{seed:t.seed}:{}}},rA={...t_.prompt({maxLength:800}),...t_.negativePrompt(void 0,500),...t_.resolution(["2048x2048","2688x1536","1536x2688","2368x1728","1728x2368"],"2048x2048"),...t_.count([1,2,4,6]),...t_.enhancePrompt(!0),...t_.imageInput(3,"Source Images"),...t_.seed()},rP={...rA,...tw.enum("promptExtendMode",["direct","agent"],"direct"),...tw.boolean("enableThinking",!0,"Deep Thinking")},{MODELS:rR}=tx("qwen",[{id:"qwen",name:"Qwen",addedAt:"2026-02-06",deprecated:!0,workflow:"qwen-image",editWorkflow:"qwen-image/image-to-image",buildPayload:e=>{let t=Array.isArray(e.imageUrls)&&e.imageUrls.length>0;return{prompt:e.prompt,...t?{image_url:e.imageUrls[0]}:{}}
1},estimatedTime:12,mode:"image",inputType:"t2i",description:"Clean 1K images from text or an image reference.",features:[tS("Image Input","input"),tS("1K","resolution")],paramConfig:{...t_.prompt(),...t_.imageInput(1,"Source Image")}},{id:"qwen-image-2",name:"Qwen 2",addedAt:"2026-03-27",deprecated:!0,workflow:"qwen-image-2/text-to-image",editWorkflow:"qwen-image-2/edit",buildPayload:e=>{let t=Array.isArray(e.imageUrls)&&e.imageUrls.length>0;return{prompt:e.prompt,num_images:e.count??1,...t?{image_urls:e.imageUrls}:{}}},estimatedTime:30,mode:"image",inputType:"t2i",description:"Next-gen image generation with improved realism and typography.",features:[tS("Image Input","input"),tS("Typography","characteristic"),tS("1K","resolution")],paramConfig:{...t_.prompt(),...t_.count(),...t_.imageInput(1,"Source Image")}},{id:"qwen-image-2-pro",name:"Qwen 2 Pro",addedAt:"2026-03-27",workflow:"qwen/v1/text-to-image",editWorkflow:"qwen/v1/image-to-image",buildPayload:rS("qwen-image-2.0-pro-2026-04-22"),estimatedTime:60,mode:"image",inputType:"t2i",badge:["premium"],description:"Premium Qwen 2 (2026-04-22) with highest quality output.",features:[tS("Image Input","input"),tS("Negative Prompt","characteristic"),tS("2K","resolution")],paramConfig:rA},{id:"qwen-image-3.0",name:"Qwen 3.0",addedAt:"2026-07-27",release:"preview",workflow:"qwen/v1/text-to-image",editWorkflow:"qwen/v1/image-to-image",buildPayload:rS("qwen-image-3.0"),estimatedTime:90,mode:"image",inputType:"t2i",description:"Qwen-Image 3.0 â highest-fidelity text-to-image and image editing with a selectable prompt-rewrite mode.",features:[tS("Image Input","input"),tS("Negative Prompt","characteristic"),tS("2K","resolution")],paramConfig:rP},{id:"qwen-image-3.0-pro",name:"Qwen 3.0 Pro",addedAt:"2026-08-31",workflow:"qwen/v1/text-to-image",editWorkflow:"qwen/v1/image-to-image",buildPayload:rS("qwen-image-3.0-pro"),estimatedTime:90,mode:"image",inputType:"t2i",badge:["premium"],description:"Qwen-Image 3.0 Pro (GA) â flagship text-to-image and image editing with prompt-rewrite modes and thinking mode.",features:[tS("Image Input","input"),tS("Negative Prompt","characteristic"),tS("2K","resolution")],paramConfig:rP}]),rF=["1:1","4:3","3:4","3:2","2:3","16:9","9:16","2:1","1:2"],rC=(e,t)=>{let i="vector_illustration"===e;return t?i?"recraftv4_pro_vector":"recraftv4_pro":i?"recraftv4_vector":"recraftv4"},rU=e=>t=>({prompt:t.prompt,model:e,n:t.count??1,...t.aspectRatio?{size:t.aspectRatio}:{},...t.style?{style:t.style}:{},...t.substyle?{substyle:t.substyle}:{},...t.negativePrompt?{negative_prompt:t.negativePrompt}:{},...t.imageUrls?.[0]?{image_url:t.imageUrls[0]}:{},...t.imageUrls?.[0]?{strength:(t.imageWeight??80)/100}:{}}),rE=e=>t=>({image_url:t.imageUrls?.[0],...e&&t.prompt?{prompt:t.prompt}:{}}),rV=e=>t=>{if(!t.imageUrls?.length)throw Error("V4 Styles models require style-reference images");return{prompt:t.prompt,model:e,n:t.count??1,...t.aspectRatio?{size:t.aspectRatio}:{},style_reference_urls:t.imageUrls}},rL=e=>t=>({prompt:t.prompt,model:e,n:t.count??1,...t.aspectRatio?{size:t.aspectRatio}:{},...t.imageUrls?.[0]?{image_url:t.imageUrls[0],strength:(t.imageWeight??80)/100}:{}}),rM=tw.file("imageUrls","image",{label:"Style References",required:!0,array:{min:1,max:5},category:"reference",maxBytes:0xa00000}),{MODELS:rO}=tx("recraft",[{id:"recraftv4_1",name:"Recraft V4.1",addedAt:"2026-05-18",workflow:"recraft/v1/images/generations",buildPayload:rL("recraftv4_1"),estimatedTime:17,mode:"image",inputType:"t2i",description:"Next-generation raster output with refined detail and 10K-character prompts.",features:[tS("Image Input","input"),tS("Text in Image","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.imageInput(1,"Source Image"),...t_.imageWeight(0,100,80,5)}},{id:"recraftv4_1_pro",name:"Recraft V4.1 Pro",addedAt:"2026-05-18",workflow:"recraft/v1/images/generations",buildPayload:rL("recraftv4_1_pro"),estimatedTime:35,mode:"image",inputType:"t2i",badge:["premium"],description:"Pro-tier V4.1 with enhanced quality and detail for premium output.",features:[tS("Image Input","input"),tS("Text in Image","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.imageInput(1,"Source Image"),...t_.imageWeight(0,100,80,5)}},{id:"recraftv4_1_utility",name:"Recraft V4.1 Utility",addedAt:"2026-05-18",workflow:"recraft/v1/images/generations",buildPayload:rL("recraftv4_1_utility"),estimatedTime:15,mode:"image",inputType:"t2i",description:"V4.1 tuned for utility output â icons, logos, and functional design assets.",features:[tS("Image Input","input"),tS("Utility","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.imageInput(1,"Source Image"),...t_.imageWeight(0,100,80,5)}},{id:"recraftv4_1_utility_pro",name:"Recraft V4.1 Utility Pro",addedAt:"2026-05-18",workflow:"recraft/v1/images/generations",buildPayload:rL("recraftv4_1_utility_pro"),estimatedTime:25,mode:"image",inputType:"t2i",badge:["premium"],description:"Pro-tier V4.1 utility â premium quality for icons, logos, and design assets.",features:[tS("Image Input","input"),tS("Utility","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.imageInput(1,"Source Image"),...t_.imageWeight(0,100,80,5)}},{id:"recraftv4_1_flash",name:"Recraft V4.1 Flash",addedAt:"2026-09-22",workflow:"recraft/v1/images/generations",buildPayload:rL("recraftv4_1_flash"),estimatedTime:8,mode:"image",inputType:"t2i",badge:["fast"],description:"Fastest V4.1 tier â quick raster output with 10K-character prompts.",features:[tS("Fast","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6])}},{id:"recraftv4_1_vector",name:"Recraft V4.1 Vector",addedAt:"2026-05-18",workflow:"recraft/v1/images/generations",buildPayload:rL("recraftv4_1_vector"),estimatedTime:22,mode:"image",inputType:"t2i",description:"Dedicated SVG vector output using V4.1 with clean lines.",features:[tS("Image Input","input"),tS("Vector/SVG","characteristic"),tS("Text in Image","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.imageInput(1,"Source Image"),...t_.imageWeight(0,100,80,5)}},{id:"recraftv4_1_pro_vector",name:"Recraft V4.1 Pro Vector",addedAt:"2026-05-18",workflow:"recraft/v1/images/generations",buildPayload:rL("recraftv4_1_pro_vector"),estimatedTime:40,mode:"image",inputType:"t2i",badge:["premium"],description:"Pro-tier V4.1 SVG vector output with enhanced detail.",features:[tS("Image Input","input"),tS("Vector/SVG","characteristic"),tS("Text in Image","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.imageInput(1,"Source Image"),...t_.imageWeight(0,100,80,5)}},{id:"recraftv4_1_utility_vector",name:"Recraft V4.1 Utility Vector",addedAt:"2026-05-18",workflow:"recraft/v1/images/generations",buildPayload:rL("recraftv4_1_utility_vector"),estimatedTime:18,mode:"image",inputType:"t2i",description:"V4.1 utility tuned for SVG vector output â icons, logos, design assets.",features:[tS("Image Input","input"),tS("Vector/SVG","characteristic"),tS("Utility","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.imageInput(1,"Source Image"),...t_.imageWeight(0,100,80,5)}},{id:"recraftv4_1_utility_pro_vector",name:"Recraft V4.1 Utility Pro Vector",addedAt:"2026-05-18",workflow:"recraft/v1/images/generations",buildPayload:rL("recraftv4_1_utility_pro_vector"),estimatedTime:30,mode:"image",inputType:"t2i",badge:["premium"],description:"Pro-tier V4.1 utility SVG vector output for premium design assets.",features:[tS("Image Input","input"),tS("Vector/SVG","characteristic"),tS("Utility","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.imageInput(1,"Source Image"),...t_.imageWeight(0,100,80,5)}},{id:"recraftv4",name:"Recraft V4",addedAt:"2026-02-18",workflow:"recraft/v1/images/generations",buildPayload:e=>({prompt:e.prompt,model:rC(e.style),n:e.count??1,...e.aspectRatio?{size:e.aspectRatio}:{},...e.imageUrls?.[0]?{image_url:e.imageUrls[0],strength:(e.imageWeight??80)/100}
1:{}}),estimatedTime:17,mode:"image",inputType:"t2i",description:"Raster and vector output with clean text placement and 10K-character prompts.",features:[tS("Image Input","input"),tS("Vector/SVG","characteristic"),tS("Text in Image","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...t_.style([{id:"raster",label:"Raster"},{id:"vector_illustration",label:"Vector (SVG)"}],"raster"),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.imageInput(1,"Source Image"),...t_.imageWeight(0,100,80,5)}},{id:"recraftv3",name:"Recraft V3",addedAt:"2026-02-15",workflow:"recraft/v1/images/generations",buildPayload:rU("recraftv3"),estimatedTime:12,mode:"image",inputType:"t2i",description:"SVG vector, illustration, and photo styles with readable in-image text.",features:[tS("Image Input","input"),tS("Styles","style"),tS("Vector/SVG","characteristic"),tS("Text in Image","characteristic")],paramConfig:{...t_.prompt({maxLength:1e3}),...t_.style([{id:"realistic_image",label:"Realistic"},{id:"digital_illustration",label:"Illustration"},{id:"vector_illustration",label:"Vector (SVG)"},{id:"any",label:"Any"}],"realistic_image"),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.negativePrompt(),...t_.imageInput(1,"Source Image"),...t_.imageWeight(0,100,80,5)}},{id:"recraftv2",name:"Recraft 20B",addedAt:"2026-02-15",deprecated:!0,workflow:"recraft/v1/images/generations",buildPayload:rU("recraftv2"),estimatedTime:7,mode:"image",inputType:"t2i",description:"20B parameter model with icon, illustration, and vector modes.",features:[tS("Styles","style")],paramConfig:{...t_.prompt({maxLength:1e3}),...t_.style([{id:"realistic_image",label:"Realistic"},{id:"digital_illustration",label:"Illustration"},{id:"vector_illustration",label:"Vector (SVG)"},{id:"icon",label:"Icon"}],"realistic_image"),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.negativePrompt()}},{id:"recraftv4_pro",name:"Recraft V4 Pro",addedAt:"2026-02-20",workflow:"recraft/v1/images/generations",buildPayload:e=>({prompt:e.prompt,model:rC(e.style,!0),n:e.count??1,...e.aspectRatio?{size:e.aspectRatio}:{},...e.imageUrls?.[0]?{image_url:e.imageUrls[0],strength:(e.imageWeight??80)/100}:{}}),estimatedTime:35,mode:"image",inputType:"t2i",badge:["premium"],description:"Pro-quality raster and vector output with enhanced detail and 10K-character prompts.",features:[tS("Image Input","input"),tS("Vector/SVG","characteristic"),tS("Text in Image","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...t_.style([{id:"raster",label:"Raster"},{id:"vector_illustration",label:"Vector (SVG)"}],"raster"),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.imageInput(1,"Source Image"),...t_.imageWeight(0,100,80,5)}},{id:"recraftv4_vector",name:"Recraft V4 Vector",addedAt:"2026-02-18",workflow:"recraft/v1/images/generations",buildPayload:rL("recraftv4_vector"),estimatedTime:22,mode:"image",inputType:"t2i",description:"Dedicated SVG vector output with clean lines and 10K-character prompts.",features:[tS("Image Input","input"),tS("Vector/SVG","characteristic"),tS("Text in Image","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.imageInput(1,"Source Image"),...t_.imageWeight(0,100,80,5)}},{id:"recraftv4_pro_vector",name:"Recraft V4 Pro Vector",addedAt:"2026-02-20",workflow:"recraft/v1/images/generations",buildPayload:rL("recraftv4_pro_vector"),estimatedTime:35,mode:"image",inputType:"t2i",badge:["premium"],description:"Pro-quality SVG vector output with enhanced detail and 10K-character prompts.",features:[tS("Image Input","input"),tS("Vector/SVG","characteristic"),tS("Text in Image","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.imageInput(1,"Source Image"),...t_.imageWeight(0,100,80,5)}},{id:"recraftv4_styles",name:"Recraft V4 Styles",addedAt:"2026-08-14",workflow:"recraft/v1/images/generations",buildPayload:rV("recraftv4_styles"),estimatedTime:17,mode:"image",inputType:"t2i",description:"Style-focused raster output with 10K-character prompts.",features:[tS("Style References","style"),tS("Text in Image","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...rM,...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6])}},{id:"recraftv4_styles_vector",name:"Recraft V4 Styles Vector",addedAt:"2026-08-14",workflow:"recraft/v1/images/generations",buildPayload:rV("recraftv4_styles_vector"),estimatedTime:22,mode:"image",inputType:"t2i",description:"Style-focused SVG vector output with 10K-character prompts.",features:[tS("Style References","style"),tS("Vector/SVG","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...rM,...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6])}},{id:"recraftv4_styles_pro",name:"Recraft V4 Styles Pro",addedAt:"2026-08-14",workflow:"recraft/v1/images/generations",buildPayload:rV("recraftv4_styles_pro"),estimatedTime:35,mode:"image",inputType:"t2i",badge:["premium"],description:"Pro-quality style-focused raster output with enhanced detail and 10K-character prompts.",features:[tS("Style References","style"),tS("Text in Image","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...rM,...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6])}},{id:"recraftv4_styles_pro_vector",name:"Recraft V4 Styles Pro Vector",addedAt:"2026-08-14",workflow:"recraft/v1/images/generations",buildPayload:rV("recraftv4_styles_pro_vector"),estimatedTime:35,mode:"image",inputType:"t2i",badge:["premium"],description:"Pro-quality style-focused SVG vector output with enhanced detail and 10K-character prompts.",features:[tS("Style References","style"),tS("Vector/SVG","characteristic"),tS("10K Prompt","characteristic")],paramConfig:{...t_.prompt({maxLength:1e4}),...rM,...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6])}},{id:"recraftv3_vector",name:"Recraft V3 Vector",addedAt:"2026-02-18",workflow:"recraft/v1/images/generations",buildPayload:rU("recraftv3_vector"),estimatedTime:15,mode:"image",inputType:"t2i",description:"Dedicated SVG vector output with substyle options and negative prompts.",features:[tS("Vector/SVG","characteristic"),tS("Text in Image","characteristic")],paramConfig:{...t_.prompt({maxLength:1e3}),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.negativePrompt()}},{id:"recraftv2_vector",name:"Recraft 20B Vector",addedAt:"2026-03-13",deprecated:!0,workflow:"recraft/v1/images/generations",buildPayload:rU("recraftv2_vector"),estimatedTime:7,mode:"image",inputType:"t2i",description:"Dedicated SVG vector output using the 20B parameter model.",features:[tS("Vector/SVG","characteristic")],paramConfig:{...t_.prompt({maxLength:1e3}),...t_.aspectRatio(rF,"1:1"),...t_.count([1,2,4,6]),...t_.negativePrompt()}},{id:"recraft-vectorize",name:"Recraft Vectorize",addedAt:"2026-03-13",workflow:"recraft/v1/images/vectorize",buildPayload:rE(!0),estimatedTime:10,mode:"image",inputType:"i2i",description:"Convert raster images to clean SVG vector format.",features:[tS("Image Input","input"),tS("Vector/SVG","characteristic")],paramConfig:{...t_.prompt({required:!1,maxLength:1e3}),...t_.imageInput(1,"Source Image",!0)}},{id:"recraft-creative-upscale",name:"Recraft Creative Upscale",addedAt:"2026-03-13",workflow:"recraft/v1/images/creativeUpscale",buildPayload:rE(!1),estimatedTime:15,mode:"image",inputType:"i2i",description:"AI-enhanced upscaling that adds creative detail to enlarged images.",features:[tS("Image Input","input"),tS("Upscale","characteristic")],paramConfig:{...t_.imageInput(1,"Source Image",!0)}},{id:"recraft-crisp-upscale",name:"Recraft Crisp Upscale",addedAt:"2026-03-13",workflow:"recraft/v1/images/crispUpscale",buildPayload:rE(!1),estimatedTime:10,mode:"image",inputType:"i2i",description:"Clean upscaling that preserves sharp edges and fine detail.",features:[tS("Image Input","input"),tS("Upscale","characteristic")],paramConfig:{...t_.imageInput(1,"Source Image",!0)}}
1,{id:"recraftv3-replace-bg",name:"Recraft Replace Background",addedAt:"2026-03-13",workflow:"recraft/v1/images/replaceBackground",buildPayload:rE(!0),estimatedTime:10,mode:"image",inputType:"i2i",description:"Replace the background of an image using a text prompt.",features:[tS("Image Input","input")],paramConfig:{...t_.prompt({required:!1,maxLength:1e3}),...t_.imageInput(1,"Source Image",!0)}},{id:"recraft-explore",name:"Recraft Explore",addedAt:"2026-03-23",workflow:"recraft/v1/images/explore",buildPayload:e=>({prompt:e.prompt,...e.aspectRatio?{size:e.aspectRatio}:{}}),estimatedTime:15,mode:"image",inputType:"t2i",description:"Explore creative image ideas from a text prompt using Recraft V4.",features:[tS("Explore Ideas","characteristic")],paramConfig:{...t_.prompt({maxLength:1e3}),...t_.aspectRatio(rF,"1:1")}},{id:"recraft-explore-similar",name:"Recraft Explore Similar",addedAt:"2026-03-23",workflow:"recraft/v1/images/exploresimilar",buildPayload:e=>({source_image_id:e.sourceImageId,similarity:e.similarity??3,...e.aspectRatio?{size:e.aspectRatio}:{}}),estimatedTime:15,mode:"image",inputType:"i2i",description:"Find images visually similar to a previously explored Recraft image.",features:[tS("Similarity Search","characteristic")],paramConfig:{...t_.aspectRatio(rF,"1:1"),...tw.text("sourceImageId",{label:"Source Image ID",required:!0}),...tw.range("similarity",1,5,3,{step:1})}}]),{MODELS:rD}=tx("topaz",[{id:"topaz-upscale-image",name:"Topaz Image Upscale",addedAt:"2026-03-06",workflow:"topaz/upscale/image",estimatedTime:30,mode:"image",inputType:"i2i",description:"Image upscaling and enhancement with Topaz AI â Standard, Hi-Fi, CGI, Recovery and Wonder models.",features:[tS("Upscale","quality"),tS("Image Required","input")],paramConfig:{...t_.imageInput(1,"Image",!0),...tw.enum("model",["Standard V2","Standard MAX","Low Resolution V2","High Fidelity V2","CGI","Text Refine","Redefine","Recovery","Recovery V2","Wonder","Wonder 3"],"Standard V2",{label:"Model"})}},{id:"topaz-upscale-video",name:"Topaz Video Upscale",addedAt:"2026-07-21",workflow:"topaz/upscale/video",estimatedTime:600,mode:"video",inputType:"v2v",description:"Video upscaling and enhancement with Topaz AI â Proteus, Artemis, Nyx, Gaia and Starlight models.",features:[tS("Upscale","quality"),tS("Video Required","input")],paramConfig:{...t_.videoInput("Source Video","asset",!0),...tw.enum("model",["Proteus","Artemis HQ","Artemis MQ","Artemis LQ","Nyx","Nyx Fast","Nyx XL","Nyx HF","Gaia HQ","Gaia CG","Gaia 2","Starlight Precise 2.5","Starlight HQ","Starlight Mini","Starlight Sharp","Starlight Fast 2"],"Proteus",{label:"Model"})}}]);tI(rD,{"topaz-upscale-image":e=>({image_url:e.imageUrls[0],model:e.model??"Standard V2",upscale_factor:2,output_format:"png",face_enhancement:!1,face_enhancement_creativity:0,face_enhancement_strength:.8,subject_detection:"All",crop_to_fill:!1}),"topaz-upscale-video":e=>({video_url:e.videoUrl,model:e.model??"Proteus",upscale_factor:2,H264_output:!1})});var rq=(e,t)=>e.aspectRatio&&t[e.aspectRatio]||e.size,rK=e=>{let t=e.imageUrls??[];return{...t.length>1?{image:t}:1===t.length?{image:t[0]}:{},...e.prompt?{prompt:e.prompt}:{},...e.negativePrompt?{negative_prompt:e.negativePrompt}:{}}},rG={"1:1":"1024x1024","4:3":"1024x768","3:4":"768x1024","3:2":"1152x768","2:3":"768x1152","16:9":"1344x768","9:16":"768x1344","2:1":"1408x704","1:2":"704x1408"},r$=e=>({template:e.templateId??"",imageUrls:e.imageUrls??[]}),{MODELS:rj}=tx("picsart",[{id:"picsart-change-bg",name:"Picsart Change Background",addedAt:"2026-02-15",workflow:"v4/smart-background",syncExecute:!0,buildPayload:e=>{var t;let i;return{imageUrl:e.imageUrls?.[0]??"",prompt:(i=(t=e.prompt).split(/\s+/)).length<=77?t:i.slice(0,77).join(" "),count:1}},mode:"image",inputType:"i2i",description:"Swap the background of a photo using a text prompt for the new scene.",features:[tS("Background Replace","characteristic"),tS("Image Required","input")],paramConfig:{...t_.imageInput(1,"Source Image",!0),...t_.prompt({maxLength:460})}}
1,{id:"picsart-sod-v8-2",name:"Remove Background",addedAt:"2026-04-02",workflow:"pcp/v2/sod",syncExecute:!0,buildPayload:e=>({photo:e.imageUrls?.[0]??"",postprocess_image:!0,model:"model-sod-v8-2"}),outputSchema:{parse(e){let t=e?.data,i=t?.image;if("string"!=typeof i)throw Error("No image URL in remove-bg response");return{url:i}}},mode:"image",inputType:"i2i",description:"Remove the background from any image with precision, leaving a clean cutout.",features:[tS("Background Remove","characteristic"),tS("Image Required","input")],paramConfig:{...t_.imageInput(1,"Source Image",!0)}},{id:"picsart-enhance",name:"Enhance",addedAt:"2026-04-02",workflow:"pcp/v1/enhancement",buildPayload:e=>({image:e.imageUrls?.[0]??"",upscale:{enabled:!0,target_scale:2},face_enhancement:{enabled:!0},colour_correction:{enabled:!1},output_format:"PNG"}),mode:"image",inputType:"i2i",estimatedTime:6,description:"AI image enhancement with upscale and face enhancement.",features:[tS("Enhancement","quality"),tS("Image Required","input")],paramConfig:{...t_.imageInput(1,"Source Image",!0)}},{id:"picsart-qwen-image-edit",name:"Picsart Image Edit",addedAt:"2026-04-23",workflow:"pcp/v1/qwen-image-edit",buildPayload:rK,estimatedTime:20,mode:"image",inputType:"i2i",description:"General-purpose image editing for swaps, fixes, style changes, and creative edits.",features:[tS("Image Input","input"),tS("Multi-Ref","characteristic")],paramConfig:{...t_.imageInput(3,"Source Images",!0),...t_.prompt(),...t_.negativePrompt()}},{id:"picsart-qwen-makeup",name:"Picsart Makeup",addedAt:"2026-04-23",workflow:"pcp/v2/qwen-makeup",buildPayload:rK,estimatedTime:20,mode:"image",inputType:"i2i",description:"Apply virtual makeup to portraits â lipstick, eye looks, blush, and full styled looks.",features:[tS("Image Input","input"),tS("Beauty","characteristic")],paramConfig:{...t_.imageInput(1,"Portrait",!0),...t_.prompt(),...t_.negativePrompt()}},{id:"picsart-flux-2-klein",name:"Flux 2 Klein 4B",addedAt:"2026-04-23",workflow:"pcp/v1/flux-text-to-image",buildPayload:e=>{let t=rq(e,aX),[i,a]=t?t.split("x").map(e=>parseInt(e)):[1024,1024];return{prompt:e.prompt,width:i,height:a,...e.imageUrls?.length?{images:e.imageUrls.slice(0,3)}:{}}},estimatedTime:8,mode:"image",inputType:"t2i",badge:["fast"],description:"Fast Flux 2 Klein 4B â up to 3 optional reference images.",features:[tS("Multi-Image Input","input"),tS("Fast","characteristic")],paramConfig:{...t_.prompt(),...t_.aspectRatio(Object.keys(aX),"1:1"),...t_.imageInput(3,"Reference Images")}},{id:"picsart-sana-sprint-v1",name:"Picsart SANA-Sprint",addedAt:"2026-05-19",workflow:"pcp/v1/sana-sprint",syncExecute:!0,buildPayload:e=>{let t=rq(e,rG),[i,a]=t?t.split("x").map(e=>parseInt(e)):[1024,1024];return{model:"picsart-sana-sprint-v1",prompt:e.prompt,width:i,height:a}},estimatedTime:3,mode:"image",inputType:"t2i",badge:["new","fast"],description:"Fast text-to-image generation powered by SANA-Sprint.",features:[tS("Text-to-Image","input"),tS("Fast","characteristic")],paramConfig:{...t_.prompt(),...t_.aspectRatio(Object.keys(rG),"1:1")}},{id:"picsart-flow",name:"Picsart Effects",addedAt:"2026-08-14",workflow:"picsart-flow/v1/effects",buildPayload:r$,estimatedTime:35,mode:"image",inputType:"i2i",badge:["new"],description:"Apply curated Picsart effect presets to a photo â multi-step Magic Flow pipelines, one tap.",features:[tS("Effect Presets","characteristic"),tS("Image Required","input")],paramConfig:{...t_.catalog("templateId",{label:"Effect Preset",required:!0,source:{workflow:"picsart-flow/v1/catalog/templates",modelId:"picsart-flow"},default:""}),...t_.imageInput(3,"Your Photo",!0,"asset")}},{id:"picsart-flow-video",name:"Picsart Effects Video",addedAt:"2026-08-14",workflow:"picsart-flow/v1/effects",buildPayload:r$,estimatedTime:150,mode:"video",inputType:"i2v",badge:["new"],description:"Animate a photo with curated Picsart video presets â multi-step Magic Flow pipelines, one tap.",features:[tS("Effect Presets","characteristic"),tS("Image Required","input")],paramConfig:{...t_.catalog("templateId",{label:"Effect Preset",required:!0,source:{workflow:"picsart-flow/v1/catalog/templates",modelId:"picsart-flow-video"},default:""}),...t_.imageInput(3,"Your Photo",!0,"asset")}},{id:"picsart-hidream-t2i",name:"Picsart HiDream T2I",addedAt:"2026-07-29",workflow:"pcp/v1/hidream-t2i",estimatedTime:7,mode:"image",inputType:"t2i",release:"preview",description:"Fast text-to-image generation powered by HiDream-Image-O1",features:[tS("Text-to-Image","input")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["1:1","5:3","3:5","4:3","3:4"],"1:1")}}]),rW=e=>({url:e,mimeType:"image/jpeg"}),rz=e=>t=>({prompt:t.prompt,model:e,...t.imageUrls?.length===1?{image:rW(t.imageUrls[0])}:{},...(t.imageUrls?.length??0)>1?{images:t.imageUrls.slice(0,10).map(rW)}:{}}),{MODELS:rB}=tx("google",[{id:"lyria-3-clip",addedAt:"2026-03-26",name:"Lyria 3 Clip",modelId:"lyria-3-clip-preview",workflow:"lyria/v2/music",buildPayload:rz("lyria-3-clip-preview"),estimatedTime:30,mode:"audio",inputType:"music",description:"Fast music clips from text and image prompts using Google Lyria 3.",features:[tS("Image Input","input"),tS("Vocal & Instrumental","characteristic")],paramConfig:{...t_.prompt({maxLength:5e3}),...t_.imageInput(10,"Mood Images")}},{id:"lyria-3-pro",addedAt:"2026-03-26",name:"Lyria 3 Pro",modelId:"lyria-3-pro-preview",workflow:"lyria/v2/music",buildPayload:rz("lyria-3-pro-preview"),estimatedTime:45,mode:"audio",inputType:"music",badge:["premium"],description:"Extended music generation up to 184s with vocals, powered by Google Lyria 3 Pro.",features:[tS("Image Input","input"),tS("Vocal & Instrumental","characteristic"),tS("Up to 184s","duration")],paramConfig:{...t_.prompt({maxLength:5e3,placeholder:"Generate voiceover, music and sound effects"}),...t_.imageInput(10,"Mood Images")}},{id:"lyria-3.5",addedAt:"2026-09-08",name:"Lyria 3.5",workflow:"lyria/v2/music",buildPayload:rz("lyria-3.5"),estimatedTime:90,mode:"audio",inputType:"music",description:"Full-length song generation with vocals from text and image prompts, powered by Google Lyria 3.5.",features:[tS("Image Input","input"),tS("Vocal & Instrumental","characteristic"),tS("Full-length songs","duration")],paramConfig:{...t_.prompt({placeholder:"Generate voiceover, music and sound effects"}),...t_.imageInput(10,"Mood Images")}}]),rN=["16:9","9:16","1:1","4:3","3:4"],rH=["720P","1080P"],{MODELS:rQ}=tx("happyhorse",[{id:"happyhorse-1.0-t2v",name:"Happy Horse 1.0",modelId:"happyhorse-1.0",addedAt:"2026-04-23",workflow:"happyhorse/v1/text-to-vi
1deo",editWorkflow:"happyhorse/v1/image-to-video",buildPayload:e=>({prompt:e.prompt,resolution:e.resolution??"720P",ratio:e.aspectRatio??"16:9",duration:e.duration??5,watermark:!1,...null!=e.seed?{seed:e.seed}:{}}),buildEditPayload:e=>{let t=e.startFrame??e.imageUrls?.[0],i=[];return t&&i.push({type:"first_frame",url:t}),{media:i,resolution:e.resolution??"720P",duration:e.duration??5,watermark:!1,...e.prompt?{prompt:e.prompt}:{},...null!=e.seed?{seed:e.seed}:{}}},estimatedTime:30,mode:"video",inputType:"t2v",description:"Happy Horse 1.0 â up to 15s at 1080P with optional first-frame guidance.",features:[tS("Start Frame","frame"),tS("1080P","resolution"),tS("3-15 sec","duration")],paramConfig:{...t_.prompt({maxLength:2500}),...t_.seed(),...t_.aspectRatio(rN,"16:9"),...t_.resolution(rH,"720P"),...t_.durationRange(3,15,5),...t_.startFrame()}},{id:"happyhorse-1.0-r2v",name:"Happy Horse 1.0 Ref-to-Video",modelId:"happyhorse-1.0",addedAt:"2026-05-05",workflow:"happyhorse/v1/reference-to-video",buildPayload:e=>{let t=(e.imageUrls??[]).map(e=>({type:"reference_image",url:e}));return{prompt:e.prompt,media:t,resolution:e.resolution??"720P",ratio:e.aspectRatio??"16:9",duration:e.duration??5,watermark:!1,...null!=e.seed?{seed:e.seed}:{}}},estimatedTime:30,mode:"video",inputType:"i2v",badge:["new"],description:"Generate video from up to 9 reference images â refer to them in the prompt as `[Image 1]`, `[Image 2]`, ⦠in the same order they appear in the input list.",features:[tS("Multi-Image Input","input"),tS("1080P","resolution"),tS("3-15 sec","duration")],paramConfig:{...t_.prompt({maxLength:2500}),...t_.seed(),...t_.aspectRatio(rN,"16:9"),...t_.resolution(rH,"720P"),...t_.durationRange(3,15,5),...t_.imageInput(9,"Reference Images",!0)}},{id:"happyhorse-1.0-video-edit",name:"Happy Horse 1.0 Video Edit",modelId:"happyhorse-1.0",addedAt:"2026-05-05",workflow:"happyhorse/v1/video-edit",buildPayload:e=>{let t=[];for(let i of(e.videoUrl&&t.push({type:"video",url:e.videoUrl}),(e.imageUrls??[]).slice(0,5)))t.push({type:"reference_image",url:i});return{prompt:e.prompt,media:t,resolution:e.resolution??"720P",watermark:!1,...e.audioSetting?{audio_setting:e.audioSetting}:{},...null!=e.seed?{seed:e.seed}:{}}},estimatedTime:22,mode:"video",inputType:"v2v",badge:["new"],description:"Edit video â style transfer or object replacement, with up to 5 references.",features:[tS("Video Input","input"),tS("Image Input","input"),tS("1080P","resolution")],paramConfig:{...t_.prompt({maxLength:2500}),...t_.seed(),...t_.resolution(rH,"720P"),...t_.audioSetting(),...t_.videoInput("Source Video"),...t_.imageInput(5,"Reference Images")}},{id:"happyhorse-1.1-t2v",name:"Happy Horse 1.1",modelId:"happyhorse-1.1",addedAt:"2026-06-22",workflow:"happyhorse/v1.1/text-to-video",editWorkflow:"happyhorse/v1.1/image-to-video",buildPayload:e=>({prompt:e.prompt,resolution:e.resolution??"720P",ratio:e.aspectRatio??"16:9",duration:e.duration??5,watermark:!1,...null!=e.seed?{seed:e.seed}:{}}),buildEditPayload:e=>{let t=e.startFrame??e.imageUrls?.[0],i=[];return t&&i.push({type:"first_frame",url:t}),{media:i,resolution:e.resolution??"720P",duration:e.duration??5,watermark:!1,...e.prompt?{prompt:e.prompt}:{},...null!=e.seed?{seed:e.seed}:{}}},estimatedTime:30,mode:"video",inputType:"t2v",description:"Happy Horse 1.1 â up to 15s at 1080P with optional first-frame guidance.",features:[tS("Start Frame","frame"),tS("1080P","resolution"),tS("3-15 sec","duration")],paramConfig:{...t_.prompt({maxLength:2500}),...t_.seed(),...t_.aspectRatio(rN,"16:9"),...t_.resolution(rH,"720P"),...t_.durationRange(3,15,5),...t_.startFrame()}},{id:"happyhorse-1.1-r2v",name:"Happy Horse 1.1 Ref-to-Video",modelId:"happyhorse-1.1",addedAt:"2026-06-22",workflow:"happyhorse/v1.1/reference-to-video",buildPayload:e=>{let t=(e.imageUrls??[]).map(e=>({type:"reference_image",url:e}));return{prompt:e.prompt,media:t,resolution:e.resolution??"720P",ratio:e.aspectRatio??"16:9",duration:e.duration??5,watermark:!1,...null!=e.seed?{seed:e.seed}:{}}},estimatedTime:30,mode:"video",inputType:"i2v",description:"Generate video from up to 9 reference images â refer to them in the prompt as `[Image 1]`, `[Image 2]`, ⦠in the same order they appear in the input list.",features:[tS("Multi-Image Input","input"),tS("1080P","resolution"),tS("3-15 sec","duration")],paramConfig:{...t_.prompt({maxLength:2500}),...t_.seed(),...t_.aspectRatio(rN,"16:9"),...t_.resolution(rH,"720P"),...t_.durationRange(3,15,5),...t_.imageInput(9,"Reference Images",!0)}}]),rX=["16:9","4:3","1:1","3:4","9:16","2:3","3:2","21:9"],rJ={...t_.prompt({maxLength:5e3}),...tw.quality(["360p","540p","720p","1080p"],"540p"),...t_.duration([5,6,7,8,9,10,11,12,13,14,15],5),...t_.generateAudio(!1)},rY=[tS("Audio","audio"),tS("Up to 1080p","resolution"),tS("5-15 sec","duration")],{MODELS:rZ}=tx("pixverse",[{id:"pixverse-v6",name:"PixVerse V6",addedAt:"2026-06-12",workflow:"pixverse/v2/text-to-vi
1deo",estimatedTime:60,mode:"video",inputType:"t2v",description:"Generate video from a text prompt with PixVerse V6.",features:[...rY],paramConfig:{...rJ,...t_.aspectRatio(rX,"16:9")}},{id:"pixverse-v6-image",name:"PixVerse V6 Image",addedAt:"2026-06-12",workflow:"pixverse/v2/image-to-video",estimatedTime:60,mode:"video",inputType:"i2v",description:"Animate a source image into video with PixVerse V6.",features:[tS("Image Input","input"),...rY],paramConfig:{...rJ,...t_.imageInput(1,"Source Image",!0,"asset")}},{id:"pixverse-v6-fusion",name:"PixVerse V6 Fusion",addedAt:"2026-06-12",workflow:"pixverse/v2/reference-to-video",estimatedTime:60,mode:"video",inputType:"i2v",description:"Fuse up to 7 reference images (subjects/backgrounds) into a new video scene with PixVerse V6.",features:[tS("Reference Images","input"),...rY],paramConfig:{...rJ,...t_.aspectRatio(rX,"16:9"),...t_.imageInput(7,"Reference Images",!0,"reference")}},{id:"pixverse-c1",name:"PixVerse C1",addedAt:"2026-06-12",workflow:"pixverse/v2/text-to-video",estimatedTime:60,mode:"video",inputType:"t2v",description:"Generate video from a text prompt with PixVerse C1.",features:[...rY],paramConfig:{...rJ,...t_.aspectRatio(rX,"16:9")}},{id:"pixverse-c1-image",name:"PixVerse C1 Image",addedAt:"2026-06-12",workflow:"pixverse/v2/image-to-video",estimatedTime:60,mode:"video",inputType:"i2v",description:"Animate a source image into video with PixVerse C1.",features:[tS("Image Input","input"),...rY],paramConfig:{...rJ,...t_.imageInput(1,"Source Image",!0,"asset")}},{id:"pixverse-c1-fusion",name:"PixVerse C1 Fusion",addedAt:"2026-06-12",workflow:"pixverse/v2/reference-to-video",estimatedTime:60,mode:"video",inputType:"i2v",description:"Fuse up to 7 reference images (subjects/backgrounds) into a new video scene with PixVerse C1.",features:[tS("Reference Images","input"),...rY],paramConfig:{...rJ,...t_.aspectRatio(rX,"16:9"),...t_.imageInput(7,"Reference Images",!0,"reference")}}]),r0=(e,t)=>({prompt:e.prompt,model:t,quality:e.quality??"540p",duration:e.duration??5,...null!=e.generateAudio?{generate_audio_switch:e.generateAudio}:{}}),r1=e=>t=>({...r0(t,e),aspect_ratio:t.aspectRatio??"16:9"}),r2=e=>t=>({...r0(t,e),image_url:t.startFrame??t.imageUrls?.[0]}),r3=e=>t=>({...r0(t,e),aspect_ratio:t.aspectRatio??"16:9",image_references:(t.imageUrls??[]).map(e=>({url:e}))});tI(rZ,{"pixverse-v6":r1("v6"),"pixverse-v6-image":r2("v6"),"pixverse-v6-fusion":r3("v6"),"pixverse-c1":r1("c1"),"pixverse-c1-image":r2("c1"),"pixverse-c1-fusion":r3("c1")});var{MODELS:r6}=tx("async",[{id:"async-flash-v1",name:"Async Flash v1.0",modelId:"async_flash_v1.0",addedAt:"2026-06-12",workflow:"async-ai-text-to-speech",estimatedTime:12,mode:"audio",inputType:"tts",description:"Generate natural speech from text with Async AIâs Flash voice engine.",features:[tS("Text to Speech","characteristic"),tS("Fast","characteristic")],paramConfig:{...t_.prompt(),...t_.voiceId([],ay,{catalog:{workflow:"async-ai/v1/catalog/voices"}}),...tw.enum("container",["mp3","wav","raw"],"mp3",{label:"Audio Format"}),...tw.range("sampleRate",8e3,48e3,24e3,{label:"Sample Rate"}),...tw.enum("encoding",["pcm_s16le","pcm_f32le"],"pcm_s16le",{label:"Encoding"}),...tw.range("bitRate",32e3,32e4,192e3,{label:"Bit Rate"})}}]);tI(r6,{"async-flash-v1":e=>{let t=e.container??"mp3";return{model_id:"async_flash_v1.0",transcript:e.prompt,voice:{mode:"id",id:e.voiceId||ay},output_format:{container:t,sample_rate:e.sampleRate??24e3,..."mp3"!==t?{encoding:e.encoding??"pcm_s16le"}:{},..."mp3"===t?{bit_rate:e.bitRate??192e3}:{}}}}});var r4="2026-06-16",r5=e=>tw.enum("thinking",["off",...e],"off",{label:"Thinking"}),{MODELS:r8}=tx("anthropic",[{id:"claude-fable-5-1",name:"Claude Fable 5.1",workflow:"claude/v1/messages",addedAt:"2026-09-07",estimatedTime:12,mode:"text",inputType:"i2t",badge:["new"],description:"Anthropicâs newest flagship â frontier reasoning above the Opus tier.",features:[tS("Vision","input")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images")}},{id:"claude-fable-5",name:"Claude Fable 5",workflow:"claude/v1/messages",addedAt:"2026-09-07",estimatedTime:12,mode:"text",inputType:"i2t",badge:["new"],description:"Anthropicâs Fable-tier model for the most demanding reasoning and agentic tasks.",features:[tS("Vision","input")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images")}},{id:"claude-opus-5",name:"Claude Opus 5",workflow:"claude/v1/messages",addedAt:"2026-09-07",estimatedTime:10,mode:"text",inputType:"i2t",badge:["new"],description:"Next-generation Opus model for complex reasoning and long-form analysis.",features:[tS("Vision","input")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images")}},{id:"claude-opus-4-8",name:"Claude Opus 4.8",workflow:"claude/v1/messages",addedAt:r4,estimatedTime:10,mode:"text",inputType:"i2t",badge:["premium"],description:"Anthropicâs most capable model for complex reasoning and long-form analysis.",features:[tS("Vision","input")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images")}},{id:"claude-sonnet-5",name:"Claude Sonnet 5",workflow:"claude/v1/messages",addedAt:"2026-09-16",estimatedTime:6,mode:"text",inputType:"i2t",description:"Latest Sonnet â frontier reasoning at everyday latency and cost.",features:[tS("Vision","input")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images")}},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",workflow:"claude/v1/messages",addedAt:r4,estimatedTime:6,mode:"text",inputType:"i2t",badge:["popular"],description:"Balanced Claude model â strong reasoning at lower latency and cost.",features:[tS("Vision","input")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images")}},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5",workflow:"claude/v1/messages",addedAt:"2026-09-16",estimatedTime:6,mode:"text",inputType:"i2t",description:"Previous-generation Sonnet â balanced reasoning, latency, and cost.",features:[tS("Vision","input")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images")}},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",workflow:"claude/v1/messages",addedAt:r4,estimatedTime:4,mode:"text",inputType:"i2t",badge:["fast"],description:"Fast, lightweight Claude model for high-volume text tasks.",features:[tS("Vision","input")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images")}}]),{MODELS:r7}=tx("openai",[{id:"gpt-6-astra",name:"GPT-6 Astra",workflow:"chat-completions",addedAt:"2026-09-04",estimatedTime:10,mode:"text",inputType:"i2t",badge:["new"],description:"OpenAIâs next-generation flagship model for advanced reasoning and multimodal tasks.",features:[tS("Vision","input"),tS("Thinking","characteristic")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images"),...r5(["low","medium","high"])}},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",workflow:"chat-completions",addedAt:"2026-09-04",estimatedTime:10,mode:"text",inputType:"i2t",badge:["premium"],description:"OpenAIâs most capable GPT-5.6 model for deep reasoning and complex tasks.",features:[tS("Vision","input"),tS("Thinking","characteristic")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images"),...r5(["low","medium","high"])}},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",workflow:"chat-completions",addedAt:"2026-09-04",estimatedTime:8,mode:"text",inputType:"i2t",badge:["popular"],description:"Balanced GPT-5.6 model â strong general-purpose quality at moderate latency.",features:[tS("Vision","input"),tS("Thinking","characteristic")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images"),...r5(["low","medium","high"])}},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",workflow:"chat-completions",addedAt:"2026-09-04",estimatedTime:5,mode:"text",inputType:"i2t",badge:["fast"],description:"Fast, lightweight GPT-5.6 model for low-latency, high-volume text tasks.",features:[tS("Vision","input"),tS("Thinking","characteristic")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images"),...r5(["low","medium","high"])}},{id:"gpt-5.5",name:"GPT-5.5",workflow:"chat-completions",addedAt:r4,estimatedTime:8,mode:"text",inputType:"i2t",badge:["popular"],description:"OpenAIâs flagship multimodal model for general-purpose text generation.",features:[tS("Vision","input"),tS("Thinking","characteristic")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images"),...r5(["low","medium","high"])}},{id:"gpt-5.2",name:"GPT-5.2",workflow:"chat-completions",addedAt:"2026-09-16",estimatedTime:8,mode:"text",inputType:"i2t",description:"GPT-5.2 reasoning model â strong general-purpose text generation.",features:[tS("Vision","input"),tS("Thinking","characteristic")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images"),...r5(["low","medium","high"])}},{id:"gpt-5.1",name:"GPT-5.1",workflow:"chat-completions",addedAt:"2026-09-16",estimatedTime:8,mode:"text",inputType:"i2t",description:"GPT-5.1 reasoning model â reliable general-purpose text generation.",features:[tS("Vision","input"),tS("Thinking","characteristic")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images"),...r5(["low","medium","high"])}},{id:"gpt-5",name:"GPT-5",workflow:"chat-completions",addedAt:"2026-09-16",estimatedTime:8,mode:"text",inputType:"i2t",description:"GPT-5 reasoning model for general-purpose text generation.",features:[tS("Vision","input"),tS("Thinking","characteristic")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images"),...r5(["low","medium","high"])}},{id:"gpt-5-mini",name:"GPT-5 Mini",workflow:"chat-completions",addedAt:"2026-09-16",estimatedTime:5,mode:"text",inputType:"i2t",badge:["fast"],description:"Fast, lightweight GPT-5 model for high-volume text tasks.",features:[tS("Vision","input"),tS("Thinking","characteristic")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images"),...r5(["low","medium","high"])}},{id:"gpt-4o",name:"GPT-4o",workflow:"chat-completions",addedAt:"2026-09-16",estimatedTime:5,mode:"text",inputType:"i2t",description:"Multimodal GPT-4o â solid quality at low latency, no reasoning pass.",features:[tS("Vision","input")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images")}},{id:"gpt-4o-mini",name:"GPT-4o Mini",workflow:"chat-completions",addedAt:"2026-09-16",estimatedTime:4,mode:"text",inputType:"i2t",badge:["fast"],description:"Small, cost-efficient GPT-4o t
1ier for high-volume text tasks.",features:[tS("Vision","input")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images")}},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini",workflow:"chat-completions",addedAt:"2026-09-16",estimatedTime:4,mode:"text",inputType:"i2t",badge:["fast"],description:"Compact GPT-4.1 tier â fast text generation with vision input.",features:[tS("Vision","input")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images")}},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano",workflow:"chat-completions",addedAt:"2026-09-16",estimatedTime:3,mode:"text",inputType:"i2t",badge:["fast"],description:"The smallest, fastest GPT-4.1 tier for lightweight text tasks.",features:[tS("Vision","input")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images")}}]),{MODELS:r9}=tx("google",[{id:"gemini-3-pro",name:"Gemini 3 Pro",modelId:"gemini-3-pro-preview",workflow:"gemini",addedAt:r4,estimatedTime:8,mode:"text",inputType:"v2t",badge:["premium"],description:"Googleâs top Gemini model â text, image, and video reasoning.",features:[tS("Vision","input"),tS("Video Input","input"),tS("Thinking","characteristic")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images"),...t_.videoInput("Video","reference",!1),...r5(["low","high"])}},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",workflow:"chat-completions",addedAt:"2026-09-03",estimatedTime:5,mode:"text",inputType:"i2t",badge:["fast"],description:"Latest fast Gemini model â low-latency multimodal text generation.",features:[tS("Vision","input"),tS("Thinking","characteristic")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images"),...r5(["low","medium","high"])}},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",workflow:"chat-completions",addedAt:"2026-08-19",estimatedTime:5,mode:"text",inputType:"i2t",badge:["fast"],description:"Fast Gemini model â low-latency multimodal text generation.",features:[tS("Vision","input"),tS("Thinking","characteristic")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images"),...r5(["low","medium","high"])}},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",workflow:"chat-completions",addedAt:"2026-07-22",estimatedTime:5,mode:"text",inputType:"i2t",badge:["fast"],description:"Fast Gemini model â low-latency multimodal text generation.",features:[tS("Vision","input"),tS("Thinking","characteristic")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images"),...r5(["low","medium","high"])}},{id:"gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite",workflow:"chat-completions",addedAt:"2026-07-22",estimatedTime:4,mode:"text",inputType:"i2t",badge:["fast"],description:"Lightweight Gemini model â the fastest, most cost-efficient tier.",features:[tS("Vision","input")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images")}},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",workflow:"chat-completions",addedAt:"2026-09-16",estimatedTime:4,mode:"text",inputType:"i2t",badge:["fast"],description:"Proven fast Gemini tier â low-latency multimodal text generation.",features:[tS("Vision","input"),tS("Thinking","characteristic")],paramConfig:{...t_.prompt(),...t_.imageInput(8,"Images"),...r5(["low","medium","high"])}}]),oe=[...r8,...r7,...r9],ot=e=>t=>{let i=[{type:"text",text:t.prompt}];for(let e of t.imageUrls??[])i.push({type:"image_url",image_url:{url:e}});return{model:e,messages:[{role:"user",content:i}],...t.thinking&&"off"!==t.thinking?{reasoning_effort:t.thinking}:{}}},oi=e=>t=>{let i=[{type:"text",text:t.prompt}];for(let e of t.imageUrls??[])i.push({type:"image",source:{type:"url",url:e}});return{model:e,max_tokens:8192,messages:[{role:"user",content:i}]}};tI(oe,{"claude-fable-5-1":oi("claude-fable-5-1"),"claude-fable-5":oi("claude-fable-5"),"claude-opus-5":oi("claude-opus-5"),"claude-opus-4-8":oi("claude-opus-4-8"),"claude-sonnet-5":oi("claude-sonnet-5"),"claude-sonnet-4-6":oi("claude-sonnet-4-6"),"claude-sonnet-4-5":oi("claude-sonnet-4-5"),"claude-haiku-4-5":oi("claude-haiku-4-5"),"gpt-6-astra":ot("gpt-6-astra"),"gpt-5.6-sol":ot("gpt-5.6-sol"),"gpt-5.6-terra":ot("gpt-5.6-terra"),"gpt-5.6-luna":ot("gpt-5.6-luna"),"gpt-5.5":ot("gpt-5.5"),"gpt-5.2":ot("gpt-5.2"),"gpt-5.1":ot("gpt-5.1"),"gpt-5":ot("gpt-5"),"gpt-5-mini":ot("gpt-5-mini"),"gpt-4o":ot("gpt-4o"),"gpt-4o-mini":ot("gpt-4o-mini"),"gpt-4.1-mini":ot("gpt-4.1-mini"),"gpt-4.1-nano":ot("gpt-4.1-nano"),"gemini-3-pro":e=>{var t,i;let a=[{text:e.prompt}];
1for(let t of e.imageUrls??[])a.push({type:"IMAGE",imageUrl:t});e.videoUrl&&a.push({fileData:{mimeType:(t=e.videoUrl,/\.webm(\?|$)/i.test(t)?"video/webm":/\.mov(\?|$)/i.test(t)?"video/quicktime":"video/mp4"),fileUri:e.videoUrl}});let r="high"===(i=e.thinking)?"HIGH":"low"===i||"medium"===i?"LOW":void 0;return{model:"gemini-3-pro-preview",contents:[{role:"user",parts:a}],...r?{generationConfig:{thinkingConfig:{thinkingLevel:r}}}:{}}},"gemini-3.8-flash":ot("gemini-3.8-flash"),"gemini-3.7-flash":ot("gemini-3.7-flash"),"gemini-3.6-flash":ot("gemini-3.6-flash"),"gemini-3.5-flash-lite":ot("gemini-3.5-flash-lite"),"gemini-2.5-flash":ot("gemini-2.5-flash")});var oa="ctpl_DxflLOnuKkb198FNdI9E",{MODELS:or}=tx("captionsai",[{id:"captionsai-video-captions",name:"Captions",modelId:"mirage-captions",addedAt:"2026-08-27",workflow:"captionsai/v1/videos/captions",estimatedTime:60,mode:"video",inputType:"v2v",release:"preview",description:"Auto-transcribes a vertical video and burns in animated captions from 67 style templates â up to 5 minutes, 9:16.",features:[tS("Video Required","input"),tS("9:16","resolution"),tS("Up to 5 min","duration"),t
1S("67 Templates","style")],paramConfig:{...t_.videoInput("Source Video","asset",!0,300,void 0,0x3200000),...t_.catalog("templateId",{label:"Caption Style",source:{workflow:"captionsai/v1/catalog/caption-templates"},default:oa})}}]);tI(or,{"captionsai-video-captions":e=>({video:{url:e.videoUrl},caption_template_id:e.templateId??oa})});var{MODELS:oo}=tx("meta",[{id:"muse-image-1.0",name:"Muse Image 1.0",addedAt:"2026-08-31",workflow:"meta/v1/images/generations",editWorkflow:"meta/v1/images/edits",estimatedTime:60,mode:"image",inputType:"t2i",description:"Meta's agentic image model â plans with reasoning, web and image search before rendering.",features:[tS("Multi-Image Input","input"),tS("Web Search","characteristic"),tS("High Quality","quality")],paramConfig:{...t_.prompt(),...t_.aspectRatio(["1:1","3:2","2:3","16:9","9:16","4:3","3:4"],"1:1"),...tw.enum("reasoningStrength",["low","high"],"high",{label:"Reasoning"}),...tw.enum("moderation",["auto","low","none"],"auto",{label:"Moderation"}),...tw.boolean("enableImageSearch",!0,"Image Search"),...tw.boolean("enableWebSearch",!0,"Web Search"),...tw.boolean("enableShell",!0,"Layout & Chart Tools"),...tw.enum("outputFormat",["png","jpeg","webp"],"png",{label:"Format"}),...t_.count(),...t_.imageInput(5,"Source Images")}}]),on={"1:1":"1024x1024","3:2":"1536x1024","2:3":"1024x1536","16:9":"1820x1024","9:16":"1024x1820","4:3":"1365x1024","3:4":"1024x1365"},os=e=>({model:"muse-image-1.0",prompt:e.prompt,n:e.count??1,size:on[e.aspectRatio??""]??"1024x1024",...e.outputFormat?{output_format:e.outputFormat}:{},...e.reasoningStrength?{reasoning_strength:e.reasoningStrength}:{},...e.moderation?{moderation:e.moderation}:{},tool_enablement:{enable_image_search:e.enableImageSearch??!0,enable_web_search:e.enableWebSearch??!0,enable_shell:e.enableShell??!0}});function od(e){if(!e.startFrame)throw new tp("LTX 2.5: an end frame requires a start image.",{status:400,code:"validation_error"});return e.startFrame}tI(oo,{"muse-image-1.0":e=>os(e)}),tk(oo,{"muse-image-1.0":e=>({...os(e),images:e.imageUrls??[]})}),tI(ie,{"creatify-boreal":e=>({prompt:e.prompt,...e.imageUrls?.[0]?{image_url:e.imageUrls[0]}:{},...e.audioUrl?{audio_url:e.audioUrl}:{},negative_prompt:e.negativePrompt??"",resolution:e.resolution??"720p",aspect_ratio:e.aspectRatio??"auto",duration:e.duration??10,manifest_disclosure:e.manifestDisclosure??!1})}),tI(t9,{"ltx-v2.5-pro":e=>({prompt:e.prompt,...null!=e.duration?{duration:e.duration}:{},...e.resolution?{resolution:e.resolution}:{},...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{},...null!=e.fps?{fps:e.fps}:{},...e.cameraMotion&&"none"!==e.cameraMotion?{camera_motion:e.cameraMotion}:{},generate_audio:e.generateAudio??!0}),"ltx-v2.5-fast":e=>({prompt:e.prompt,...null!=e.duration?{duration:e.duration}:{},...e.resolution?{resolution:e.resolution}:{},...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{},...null!=e.fps?{fps:e.fps}:{},...e.cameraMotion&&"none"!==e.cameraMotion?{camera_motion:e.cameraMotion}:{},generate_audio:e.generateAudio??!0}),"ltx-v2.3-reframe":e=>({video_url:e.videoUrl,...e.resolution?{resolution:e.resolution}:{},...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{}}),"ltx-v2.3-outpaint":e=>({prompt:e.prompt,video_url:e.videoUrl,...e.negativePrompt?{negative_prompt:e.negativePrompt}:{},...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{},...e.resolution?{output_resolution:e.resolution}:{},...null!=e.numFrames?{num_frames:e.numFrames}:{},...null!=e.fps?{frames_per_second:e.fps}:{},...null!=e.sourceScale?{source_scale:e.sourceScale}:{},...null!=e.videoStrength?{video_strength:e.videoStrength}:{},...null!=e.cfgScale?{guidance_scale:e.cfgScale}:{},...null!=e.numInferenceSteps?{num_inference_steps:e.numInferenceSteps}:{},...e.videoQuality?{video_quality:e.videoQuality}:{},...e.videoWriteMode?{video_write_mode:e.videoWriteMode}:{},...null!=e.seed?{seed:e.seed}:{},enable_prompt_expansion:e.enhancePrompt??!0,generate_audio:e.generateAudio??!0,enable_safety_checker:e.enableSafetyChecker??!0})}),tk(t9,{"ltx-v2.5-pro":e=>({prompt:e.prompt,image_url:od(e),...e.endFrame?{end_image_url:e.endFrame}:{},...null!=e.duration?{duration:e.duration}:{},...e.resolution?{resolution:e.resolution}:{},...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{},...null!=e.fps?{fps:e.fps}:{},...e.cameraMotion&&"none"!==e.cameraMotion?{camera_motion:e.cameraMotion}:{},generate_audio:e.generateAudio??!0}),"ltx-v2.5-fast":e=>({prompt:e.prompt,image_url:od(e),...e.endFrame?{end_image_url:e.endFrame}:{},...null!=e.duration?{duration:e.duration}:{},...e.resolution?{resolution:e.resolution}:{},...e.aspectRatio?{aspect_ratio:e.aspectRatio}:{},...null!=e.fps?{fps:e.fps}:{},...e.cameraMotion&&"none"!==e.cameraMotion?{camera_motion:e.cameraMotion}:{},generate_audio:e.generateAudio??!0})});var ol=[...tV,...t9,...ie,...ii,...ir,...io,...id,...iu,...ih,...i_,...iH,...as,...af,...ak,...aT,...aU,...aO,...aW,...aQ,...a3,...a7,...ro,...rc,...ry,...rk,...rT,...rB,...rR,...rO,...rD,...rj,...rQ,...rZ,...r6,...oe,...or,...oo];
1function ou(e){return{id:e.id,input:{parse(t){var i=`Invalid input for model "${e.id}"`;if(!t||"object"!=typeof t||Array.isArray(t))throw new tp(i,{status:400,code:"validation_error"});try{tl(e.paramConfig,t)}catch(e){if(e instanceof tp)throw e;throw new tp(e instanceof Error?e.message:String(e),{status:400,code:"validation_error"})}return t}},output:{parse(t){if(null==t)throw new tp(`Model "${e.id}" returned empty output`,{status:502,code:"invalid_response"});return t}}}}var om=null;function op(e){return(!om&&(om=Object.fromEntries(ol.map(e=>{let t=ou(e),i=e.outputSchema??t.output;return[e.id,{id:e.id,input:t.input,output:i}]}))),om)[e]}function oc(e,t){if(!e||"object"!=typeof e||Array.isArray(e))return;let i=e.status??e.statusCode,a=e.message??e.error??e.reason;if("number"==typeof i&&i>=400||"error"===i||"FAILED"===i){let r="number"==typeof i?` (${i})`:"",o=a?String(a):"unknown error",n="number"==typeof i?i:502,s=e.reason;throw new tp(`${t} failed${r}: ${o}`,{status:n,code:"string"==typeof s&&s.length>0?s:tg(n)})}}var og=e=>{if(Array.isArray(e))return og(e[0]);if(e&&"object"==typeof e){if("string"==typeof e.url)return e.url;if("string"==typeof e.videoUrl)return e.videoUrl;if("string"==typeof e.video_url)return e.video_url;if(e.video&&"object"==typeof e.video){let t=e.video;if("string"==typeof t.url)return t.url}if(e.audio&&"object"==typeof e.audio){let t=e.audio;if("string"==typeof t.url)return t.url}if(e.assets&&"object"==typeof e.assets){let t=e.assets;if("string"==typeof t.video)return t.video;if("string"==typeof t.image)return t.image}if("string"==typeof e.image)return e.image;if(e.image&&"object"==typeof e.image){let t=e.image;if("string"==typeof t.url)return t.url}if("string"==typeof e.image_url)return e.image_url;if("string"==typeof e.imageUrl)return e.imageUrl;if("string"==typeof e.audio_url)return e.audio_url;if(Array.isArray(e.audioUrls)&&e.audioUrls.length>0){let t=e.audioUrls[0];if("string"==typeof t)return t;if(t&&"object"==typeof t&&"string"==typeof t.url)return t.url}if("string"==typeof e.url_mp3)return e.url_mp3;if(Array.isArray(e.imageUrls)&&e.imageUrls.length>0){let t=e.imageUrls[0];if("string"==typeof t)return t;if(t&&"object"==typeof t&&"string"==typeof t.url)return t.url}if(Array.isArray(e.images)&&e.images.length>0){let t=e.images[0];if("string"==typeof t)return t;if(t&&"object"==typeof t&&"string"==typeof t.url)return t.url}if(Array.isArray(e.urls)&&e.urls.length>0&&"string"==typeof e.urls[0])return e.urls[0];if(Array.isArray(e.candidates))for(let t of e.candidates){let e=t?.content,i=e?.parts;if(Array.isArray(i)){for(let e of i)if("string"==typeof e.imageUrl)return e.imageUrl}}if(Array.isArray(e.data)&&e.data.length>0){let t=e.data[0];if("string"==typeof t)return t;if(t&&"object"==typeof t&&"string"==typeof t.url)return t.url}if(Array.isArray(e.items)&&e.items.length>0){let t=e.items[0];if("string"==typeof t)return t;if(t&&"object"==typeof t&&"string"==typeof t.url)return t.url}if(Array.isArray(e.previews)&&e.previews.length>0){let t=e.previews[0];if("string"==typeof t)return t;if(t&&"object"==typeof t&&"string"==typeof t.url)return t.url}if(e.result&&"object"==typeof e.result)return og(e.result);if(e.url&&"object"==typeof e.url)return og(e.url)}if("string"==typeof e)return e},of=e=>{if("string"==typeof e)return e;if(Array.isArray(e))return of(e[0]);if(e&&"object"==typeof e){if("string"==typeof e.text)return e.text;if("string"==typeof e.output_text)return e.output_text;if("string"==typeof e.outputText)return e.outputText;if("string"==typeof e.content)return e.content;if("string"==typeof e.message)return e.message;if(Array.isArray(e.content)){let t=e.content.map(e=>e&&"object"==typeof e&&"string"==typeof e.text?e.text:null).filter(e=>null!=e);if(t.length)return t.join("")}if(Array.isArray(e.choices)&&e.choices.length>0){let t=e.choices[0],i=t?.message;if(i){if("string"==typeof i.content)return i.content;if(Array.isArray(i.content)){let e=i.content.map(e=>"string"==typeof e?.text?e.text:null).filter(e=>null!=e);if(e.length)return e.join("")}}if("string"==typeof t?.text)return t.text}if(Array.isArray(e.candidates)&&e.candidates.length>0)for(let t of e.candidates){let e=t?.content,i=e?.parts;if(Array.isArray(i)){let e=i.filter(e=>e&&!0!==e.thought).map(e=>"string"==typeof e?.text?e.text:null).filter(e=>null!=e);if(e.length)return e.join("")}}if(e.response&&"object"==typeof e.response){let t=of(e.response);if(null!=t)return t}if(e.result&&"object"==typeof e.result){let t=of(e.result);if(null!=t)return t}}},oh=["items","images","imageUrls","urls","data","previews"];function ov(e,t,i,a){let r={},o=t&&"object"==typeof t&&!Array.isArray(t)?t:void 0;"recraft"===a&&"string"==typeof o?.image_id&&(r.exploreImageId=o.image_id),"elevenlabs"===a&&"string"==typeof o?.generated_voice_id&&(r.generatedVoiceId=o.generated_voice_id);let n=o?.last_frame_url??(e&&"object"==typeof e?e:void 0)?.last_frame_url;return"string"==typeof n&&(r.lastFrameUrl=n),Object.keys(r).length>0?r:void 0}function oy(e,t,i,a){return{handle:e,status:"COMPLETED",result:t,raw:i,usage:a}}var ow=new Map(ol.map(e=>[e.id,e])),ob=new Map,ox=new Map,oI=new Map,ok=new Set;for(let e of ol){e.modelId&&!ob.has(e.modelId)&&ob.set(e.modelId,e),ox.has(e.workflow)||ox.set(e.workflow,e),e.editWorkflow&&!ox.has(e.editWorkflow)&&ox.set(e.editWorkflow,e);let t=e.name.trim().toLowerCase();if(t&&!ok.has(t)){if(oI.has(t)){oI.delete(t),ok.add(t);continue}oI.set(t,e)}}var o_=e=>ow.get(e)??ob.get(e),oT=e=>{let t=e.trim();if(t)return o_(t)??ox.get(t)??oI.get(t.toLowerCase())};function oS(e){let t=oT(e);if(!t)throw new tp(`Unknown model: "${e}"`,{status:400,code:"unknown_model"});return t}var oA=new Set(["request_failed","unknown_error"]);function oP(e,t,i){if(e instanceof tp||e instanceof DOMException&&"AbortError"===e.name)return e;if(e instanceof h||e instanceof Error&&"string"==typeof e.reason&&/WorkflowsError$/.test(e.name??"")){if("client_timeout"===e.reason)return new tp(`Timed out waiting for workflow ${t}${i?`:${i}`:""}`,{status:408,code:"timeout"});let a=e.httpStatusCode??502;return new tp(e.message??"Request failed",{status:a,code:e.reason&&!oA.has(e.reason)?e.reason:tg(a)})}return new tp(e instanceof Error?e.message:String(e),{status:502,code:"generation_failed"})}var oR={platform:"api","X-Touchpoint":"sdk"};function oF(e,t){let i,a={...t},r=op(e.id),o=r?r.input.parse(a):a,n={hasImages:i=Array.isArray(o.imageUrls)&&o.imageUrls.length>0||!!o.startFrame||!!o.endFrame,workflow:i&&e.editWorkflow?e.editWorkflow:e.workflow,buildPayload:i&&e.buildEditPayload?e.buildEditPayload:e.buildPayload??(e=>({prompt:e.prompt}))},s=n.buildPayload(o);return{ctx:a,workflow:n.workflow,payload:s,contract:r}}function oC(e,t,i){oc(e.result,t.name);let a=i?.output?i.output.parse(e.result):e.result,r=(e=>{let t;if(!e||"object"!=typeof e)return;for(let i of oh){let a=e[i];if(Array.isArray(a)&&a.length>1){t=a;break}}if(!t)return;let i=[];for(let e of t){if("string"==typeof e){i.push({url:e});continue}e&&"object"==typeof e&&"string"==typeof e.url&&i.push({url:e.url,source:e})}return i.length>0?i:void 0})(a);if(r?.length){let i=r.map((e,i)=>({url:e.url,metadata:ov(a,e.source,i,t.provider)}));return{url:i[0].url,items:i,results:i,...e.handle.id?{generationId:e.handle.id}:{},usage:e.usage}}let o=og(a);if(!o)throw new tp(`${t.name}: unexpected response \u2014 no result URL`,{status:502,code:"invalid_response"});let n=a&&"object"==typeof a?a:void 0,s=a;for(let e of["images","items","imageUrls","data","previews"]){let t=n?.[e];if(Array.isArray(t)&&t.length>0){s=t[0];break}}let d=[{url:o,metadata:ov(a,s,0,t.provider)}];return{url:o,items:d,results:d,...e.handle.id?{generationId:e.handle.id}:{},usage:e.usage}}var oU="userReaction";function oE(e){return"video"===e?"VIDEO":"audio"===e?"AUDIO":"PHOTO"}function oV(e,t){let i=String(Date.now()).slice(-6),a="video"===t?"mp4":"audio"===t?"mp3":"png";if(!e)return`ai-generation-${i}.${a}`;let r=e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,50);return`${r}-${i}.${a}`}function oL(e){if("string"==typeof e)return e.trim()||void 0}function oM(e){let t={};if(!e||"object"!=typeof e)return t;if(Array.isArray(e))for(let i of e)t[i.property]=String(i.value);else for(let[i,a]of Object.entries(e))t[i]=String(a);return t}function oO(e){return"like"===e||"dislike"===e?e:void 0}var oD=e=>"string"==typeof e&&e.trim()?e:void 0;function oq(e){let t={model:e.modelId,aiSDKPayload:JSON.stringify(function(e){let t={prompt:String(e.prompt??"").slice(0,18e3)};for(let[i,a]of Object.entries(e))"prompt"!==i&&null!=a&&""!==a&&(t[i]=a);return t}(e.params))};return e.app&&(t.appId=e.app.id,t.appType=e.app.type),t}function oK(e){let t=oL(e.sourceUrl);
1if(!t||String(e.name||"").startsWith("__"))return null;let i=e.preview;return{uid:String(e.uid??""),url:t,name:String(e.name||""),type:function(e){let t=String(e.name||"");if(/\.(mp3|wav|ogg|aac|flac|m4a)$/i.test(t))return"audio";if(/\.(mp4|webm|mov|avi|mkv|m4v|wmv)$/i.test(t))return"video";let i=e.contentType??e.content,a=String(i?.resourceType||"").toUpperCase();return"VIDEO"===a?"video":"AUDIO"===a?"audio":"image"}(e),previewUrl:oL(i?.url),timestamp:Number(e.updatedAt??e.createdAt??0)}}var oG={"ai-playground":{appId:"com.picsart.ai-playground",appType:"miniapp"}};function o$(e){let t=oM(e.attributes);return t.aiSDKPayload?{appId:t.appId||void 0,appType:"native"===t.appType||"miniapp"===t.appType?t.appType:void 0,model:t.model||void 0,aiSDKPayload:function(e){if(e)try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:void 0}catch{return}}(t.aiSDKPayload),userReaction:oO(t[oU])}:function(e){let t,i={};if(e.textScript)try{i=JSON.parse(e.textScript)}catch{}let a={prompt:e.prompt||""},r=oD(i.aspectRatio);r&&(a.aspectRatio=r);let o=oD(i.resolution);o&&(a.resolution=o);let n=i.duration??e.duration;null!=n&&""!==n&&(a.duration=Number(n));let s=Array.isArray(t=i.referenceImageUrls)&&t.length&&t.every(e=>"string"==typeof e)?t:void 0;s&&(a.imageUrls=s);let d=oD(i.referenceVideoUrl);d&&(a.videoUrl=d);let l=oD(i.referenceAudioUrl);l&&(a.audioUrl=l);let u=oD(i.startFrame);u&&(a.startFrame=u);let m=oD(i.endFrame);m&&(a.endFrame=m);let p=oD(i.quality);p&&(a.quality=p);let c=oD(i.style);c&&(a.style=c);let g=oD(i.iterateModel);g&&(a.iterateModel=g);let f=oD(i.exploreImageId);f&&(a.exploreImageId=f);let h=e.tool?oG[e.tool]:void 0;return{appId:h?.appId,appType:h?.appType,model:e.model||void 0,aiSDKPayload:a,userReaction:oO(e[oU])}}(t)}var oj=e=>({items:[...e.items],nextCursor:e.nextCursor}),oW=e=>e.reason??new DOMException("The catalog load was aborted.","AbortError");function oz(e,t){return t?t.aborted?Promise.reject(oW(t)):new Promise((i,a)=>{let r=()=>a(oW(t));t.addEventListener("abort",r,{once:!0}),e.then(e=>{t.removeEventListener("abort",r),i(e)},e=>{t.removeEventListener("abort",r),a(e)})}):e}var oB={video:{intervalMs:2e3,maxAttempts:1800},image:{intervalMs:1e3,maxAttempts:1200},audio:{intervalMs:1e3,maxAttempts:1200},text:{intervalMs:1e3,maxAttempts:1200}};function oN(e,t){let i={...oB[e.mode],...e.pollOptions};return t?.intervalMs!==void 0&&(i.intervalMs=t.intervalMs),t?.maxAttempts!==void 0&&(i.maxAttempts=t.maxAttempts),t?.signal!==void 0&&(i.signal=t.signal),i}var oH=null,oQ=null,oX=null;function oJ(e,t){if(!oQ)return null;let i=oQ.get(e);if(!i||0===i.length||t&&0===(i=i.filter(e=>(void 0===t.generateAudio||e.metadata.audio===t.generateAudio)&&(void 0===t.resolution||e.metadata.quality===t.resolution))).length)return null;let a=1/0,r=-1/0,o=i[0].unit;for(let e of i)e.credits<a&&(a=e.credits),e.credits>r&&(r=e.credits),e.unit!==o&&(o=void 0);let n=i.map(e=>({credits:e.credits,unit:e.unit,quality:e.metadata.quality||void 0,audio:e.metadata.audio,useCase:e.metadata.useCase}));return o?{min:a,max:r,unit:o,tiers:n}:{min:a,max:r,tiers:n}}function oY(e,t){var i;if("catalog"!==e.descriptor.kind)return t;let a=(i=e.descriptor.source,tD.get(tq(i)));return a?{...t,catalogOptions:a.catalogOptions}:t}var oZ=class{def;constructor(e){this.def=e}param(e){let t=this.def.paramConfig[e];if(!t)return;let{descriptor:i,...a}=t;return oY(t,{...a,...i})}hasParam(e){return e in this.def.paramConfig}all(){return Object.entries(this.def.paramConfig).map(([e,t])=>{let{descriptor:i,...a}=t;return oY(t,{key:e,...a,...i})})}enum(e){return this.narrow(e,"enum")}catalog(e){return this.narrow(e,"catalog")}range(e){return this.narrow(e,"range")}boolean(e){return this.narrow(e,"boolean")}text(e){return this.narrow(e,"text")}file(e){return this.narrow(e,"file")}prompt(){return this.narrow("prompt","text")}aspectRatio(){return this.narrow("aspectRatio","enum")}duration(){let e=this.param("duration");if(e&&("enum"===e.kind||"range"===e.kind))return e}resolution(){return this.narrow("resolution","enum")}generateAudio(){return this.narrow("generateAudio","boolean")}startFrame(){return this.narrow("startFrame","file")}endFrame(){return this.narrow("endFrame","file")}hasFileInput(){return Object.values(this.def.paramConfig).some(e=>"file"===e.descriptor.kind)}getDefault(e){let t=this.def.paramConfig[e];if(!t)return;let i=t.descriptor;return"default"in i?i.default:void 0}getDefaults(){return td(this.def.paramConfig)}toSchema(){var e=this.def.paramConfig;let t={};for(let[i,a]of Object.entries(e)){let e=a.descriptor;switch(e.kind){case"enum":t[i]={type:e.valueType,enum:e.options.map(e=>e.id),default:e.default};break;case"range":t[i]={type:"number",min:e.min,max:e.max,step:e.step,default:e.default};break;case"boolean":t[i]={type:"boolean",default:e.default};break;case"text":t[i]={type:"string",label:a.label};break;case"catalog":t[i]={type:"string",default:e.default,label:a.label};break;case"file":t[i]={type:"file",required:a.required,label:a.label,accept:e.accept}}}return t}transferValues(e){return tm(this.def.paramConfig,e)}narrow(e,t){let i=this.param(e);if(i&&i.kind===t)return i}},o0=class{inner;effects;constructor(e,t){this.inner=e,this.effects=t}enum(e){return this.applyEnum(e,this.inner.enum(e))}catalog(e){return this.applyEntry(e,this.inner.catalog(e))}range(e){return this.applyEntry(e,this.inner.range(e))}boolean(e){return this.applyEntry(e,this.inner.boolean(e))}text(e){return this.applyEntry(e,this.inner.text(e))}file(e){return this.applyEntry(e,this.inner.file(e))}prompt(){return this.applyEntry("prompt",this.inner.prompt())}aspectRatio(){return this.applyEnum("aspectRatio",this.inner.aspectRatio())}duration(){let e=this.inner.duration();return e?.kind==="enum"?this.applyEnum("duration",e):this.applyEntry("duration",e)}resolution(){return this.applyEnum("resolution",this.inner.resolution())}generateAudio(){return this.applyEntry("generateAudio",this.inner.generateAudio())}startFrame(){return this.applyEntry("startFrame",this.inner.startFrame())}endFrame(){return this.applyEntry("endFrame",this.inner.endFrame())}
1all(){return this.inner.all().map(e=>{let t=this.effects.get(e.key);return t?"enum"===e.kind?this.decorateEnumFlat(e,t):"disabled"===t.kind?{...e,disabled:!0,disabledReason:t.reason}:e:e})}param(e){return this.inner.param(e)}hasParam(e){return this.inner.hasParam(e)}hasFileInput(){return this.inner.hasFileInput()}getDefault(e){return this.inner.getDefault(e)}getDefaults(){return this.inner.getDefaults()}toSchema(){return this.inner.toSchema()}transferValues(e){return this.inner.transferValues(e)}applyEntry(e,t){if(!t)return;let i=this.effects.get(e);return i&&"disabled"===i.kind?{...t,disabled:!0,disabledReason:i.reason}:t}applyEnum(e,t){if(!t)return;let i=this.effects.get(e);if(!i)return t;if("disabled"===i.kind){let e=t.options.map(e=>({...e,disabled:!0,disabledReason:i.reason}));return{...t,options:e,disabled:!0,disabledReason:i.reason}}let a=new Set(i.allowed.map(String)),r=t.options.map(e=>a.has(String(e.id))?e:{...e,disabled:!0,disabledReason:i.reason});return{...t,options:r}}decorateEnumFlat(e,t){if("enum"!==e.kind)return e;if("disabled"===t.kind){let i=e.options.map(e=>({...e,disabled:!0,disabledReason:t.reason}));return{...e,options:i,disabled:!0,disabledReason:t.reason}}let i=new Set(t.allowed.map(String)),a=e.options.map(e=>i.has(String(e.id))?e:{...e,disabled:!0,disabledReason:t.reason});return{...e,options:a}}},o1=class{mode;inputType;description;features;badges;provider;addedAt;release;constructor(e){this.mode=e.mode,this.inputType=e.inputType,this.description=e.description,this.features=e.features,this.badges=e.badge??[],this.release=e.release??"production",this.provider={id:e.provider,name:e.providerName,color:e.providerColor,label:e.providerLabel},this.addedAt=e.addedAt??null}},o2=class{id;name;api;def;_params;_meta;constructor(e){this.id=e.id,this.name=e.name,this.api={workflow:e.workflow,editWorkflow:e.editWorkflow},this.def=e}params(){return this._params??=new oZ(this.def)}paramsFor(e){let t=this.params(),i=function(e,t){let i=new Map;if(!e?.length)return i;for(let a of e)if(function(e,t){return Object.entries(e).every(([e,i])=>(function(e,t){if("exists"in e){let i=null!=t&&(!Array.isArray(t)||t.length>0)&&("string"!=typeof t||t.length>0);return e.exists?i:!i}return"is"in e&&t===e.is})(i,t[e]))}(a.when,t))for(let[e,t]of Object.entries(a.then))i.set(e,function(e,t){if(!e)return t;if("disabled"===e.kind||"disabled"===t.kind)return{kind:"disabled",reason:"disabled"===t.kind?t.reason:"disabled"===e.kind?e.reason:void 0};let i=new Set(t.allowed.map(String));return{kind:"allowed",allowed:e.allowed.filter(e=>i.has(String(e))),reason:t.reason??e.reason}}(i.get(e),"disabled"in t?{kind:"disabled",reason:t.reason}:{kind:"allowed",allowed:t.allowed,reason:t.reason}));return i}(this.def.constraints,e);return i.size?new o0(t,i):t}validate(e){if(!e||"object"!=typeof e||Array.isArray(e))return{valid:!1,errors:[`Invalid input for model "${this.def.id}"`]};try{return tl(this.def.paramConfig,e),{valid:!0}}catch(e){return{valid:!1,errors:[e instanceof Error?e.message:String(e)]}}}meta(){return this._meta??=new o1(this.def)}
1getCreditsInfo(e){if(this.def.modelId){let t=oJ(this.def.modelId,e);if(t)return t}return oJ(this.def.id,e)}},o3=new Set(["prompt","negativePrompt","imageUrls","videoUrl","audioUrl","startFrame","endFrame"]),o6=new Set(["audioFile","mentionedPersonas","modelId","exploreImageId","sourceImageId","sourceImageUrl","multiPrompt","elementList","voiceList","dynamicMasks","staticMask","callbackUrl","externalTaskId"]),o4=[/^https:\/\/([a-z0-9-]+\.)*picsart\.com(\/|$)/i,/^https:\/\/([a-z0-9-]+\.)*pastatic\.com(\/|$)/i,/^https:\/\/([a-z0-9-]+\.)*cdn-picsart\.com(\/|$)/i];function o5(e){try{let t=new URL(e);if("https:"!==t.protocol)return!1}catch{return!1}return o4.some(t=>t.test(e))}function o8(e){return e.replace(/<\/?[^>]+(>|$)/g,"").replace(/javascript\s*:/gi,"").replace(/on\w+\s*=/gi,"")}e.s(["ALL_MODELS",0,ol,"ApiError",0,tp,"DEFAULT_VISIBLE_RELEASES",0,tf,"GenerationEventType",0,{Progress:"generation.progress",Completed:"generation.completed",Failed:"generation.failed"},"Model",0,function(e){return new o2(oS(e))},"Models",0,{AsyncFlashV1:"async-flash-v1",BytedanceOmnihumanV15:"bytedance-omnihuman-v1.5",BytedanceVideoEnhance:"bytedance-video-enhance",BytedanceVideoUpscaler:"bytedance-video-upscaler",CaptionsaiVideoCaptions:"captionsai-video-captions",ClaudeFable5:"claude-fable-5",ClaudeFable51:"claude-fable-5-1",ClaudeHaiku45:"claude-haiku-4-5",ClaudeOpus48:"claude-opus-4-8",ClaudeOpus5:"claude-opus-5",ClaudeSonnet45:"claude-sonnet-4-5",ClaudeSonnet46:"claude-sonnet-4-6",ClaudeSonnet5:"claude-sonnet-5",CreatifyAurora:"creatify-aurora",CreatifyBoreal:"creatify-boreal",ElevenAudioIsolation:"eleven-audio-isolation",ElevenDubbing:"eleven-dubbing",ElevenMultilingualStsV2:"eleven-multilingual-sts-v2",ElevenMultilingualV2:"eleven-multilingual-v2",ElevenStsV2:"eleven-sts-v2",ElevenTextToDialogue:"eleven-text-to-dialogue",ElevenV3:"eleven-v3",ElevenVoiceCreate:"eleven-voice-create",ElevenVoiceDesignV2:"eleven-voice-design-v2",ElevenVoiceDesignV3:"eleven-voice-design-v3",ElevenVoiceRemix:"eleven-voice-remix",ElevenlabsMusicV2:"elevenlabs-music-v2",ElevenlabsSfx:"elevenlabs-sfx",Flux2Flex:"flux-2-flex",Flux2Max:"flux-2-max",Flux2Pro:"flux-2-pro",Flux3Image:"flux-3-image",Flux3Video:"flux-3-video",FluxKontextMax:"flux-kontext-max",FluxKontextPro:"flux-kontext-pro",FluxVideoEdit:"flux-video-edit",FluxVideoUpscale:"flux-video-upscale",Gemini25Flash:"gemini-2.5-flash",Gemini25FlashImage:"gemini-2.5-flash-image",Gemini25FlashTts:"gemini-2.5-flash-tts",Gemini25ProTts:"gemini-2.5-pro-tts",Gemini3Pro:"gemini-3-pro",Gemini3ProImage:"gemini-3-pro-image",Gemini31FlashImage:"gemini-3.1-flash-image",Gemini31FlashLiteImage:"gemini-3.1-flash-lite-image",Gemini35FlashLite:"gemini-3.5-flash-lite",Gemini36Flash:"gemini-3.6-flash",Gemini37Flash:"gemini-3.7-flash",Gemini38Flash:"gemini-3.8-flash",GeminiOmni11FlashPreview:"gemini-omni-1.1-flash-preview",GeminiOmniFlashPreview:"gemini-omni-flash-preview",Gpt41Mini:"gpt-4.1-mini",Gpt41Nano:"gpt-4.1-nano",Gpt4o:"gpt-4o",Gpt4oMini:"gpt-4o-mini",Gpt5:"gpt-5",Gpt5Mini:"gpt-5-mini",Gpt51:"gpt-5.1",Gpt52:"gpt-5.2",Gpt55:"gpt-5.5",Gpt56Luna:"gpt-5.6-luna",Gpt56Sol:"gpt-5.6-sol",Gpt56Terra:"gpt-5.6-terra",Gpt6Astra:"gpt-6-astra",GptImage1:"gpt-image-1",GptImage15:"gpt-image-1.5",GptImage2:"gpt-image-2",GptImage25Flare:"gpt-image-2.5-flare",GptImage25Sunburst:"gpt-image-2.5-sunburst",GrokEditVideo:"grok-edit-video",GrokExtendVideo:"grok-extend-video",GrokImagineImage:"grok-imagine-image",GrokImagineImage20:"grok-imagine-image-2.0",GrokImagineImageQuality:"grok-imagine-image-quality",GrokImagineVideo:"grok-imagine-video",GrokImagineVideo15:"grok-imagine-video-1.5",GrokTts:"grok-tts",Hailuo23:"hailuo-2.3",Hailuo23Fast:"hailuo-2.3-fast",Hailuo23FastPro:"hailuo-2.3-fast-pro",Hailuo23Pro:"hailuo-2.3-pro",Happyhorse10R2v:"happyhorse-1.0-r2v",Happyhorse10T2v:"happyhorse-1.0-t2v",Happyhorse10VideoEdit:"happyhorse-1.0-video-edit",Happyhorse11R2v:"happyhorse-1.1-r2v",Happyhorse11T2v:"happyhorse-1.1-t2v",HeygenTalkingPhoto:"heygen-talking-photo",HeygenVideoAvatar:"heygen-video-avatar",HunyuanV3:"hunyuan-v3",IdeogramCharacter:"ideogram-character",IdeogramPImage:"ideogram-p-image",IdeogramV3:"ideogram-v3",IdeogramV4:"ideogram-v4",Kling30Image:"kling-3.0-image",KlingAvatar:"kling-avatar",KlingElements:"kling-elements",KlingMotionControl:"kling-motion-control",KlingMotionControlV3:"kling-motion-control-v3",KlingMultiImageV21:"kling-multi-image-v2-1",KlingO1Image:"kling-o1-image",KlingT2a:"kling-t2a",KlingV21Image:"kling-v2-1-image",KlingV26:"kling-v2-6",KlingV2a:"kling-v2a",KlingV3:"kling-v3",KlingV3Omni:"kling-v3-omni",KlingV3Turbo:"kling-v3-turbo",KlingVideoEffects:"kling-video-effects",KlingVideoO1:"kling-video-o1",Ltx23A2v:"ltx-2.3-a2v",LtxProT2v:"ltx-pro-t2v",LtxV2Fast:"ltx-v2-fast",LtxV2Retake:"ltx-v2-retake",LtxV23Extend:"ltx-v2.3-extend",LtxV23Fast:"ltx-v2.3-fast",LtxV23Outpaint:"ltx-v2.3-outpaint",LtxV23Pro:"ltx-v2.3-pro",LtxV23Reframe:"ltx-v2.3-reframe",LtxV23Retake:"ltx-v2.3-retake",LtxV25Fast:"ltx-v2.5-fast",LtxV25Pro:"ltx-v2.5-pro",LumaRay2:"luma-ray-2",LumaRay2ReframeVideo:"luma-ray-2-reframe-video",LumaRay32:"luma-ray-3.2",LumaRay32Edit:"luma-ray-3.2-edit",LumaRay32ReframeVideo:"luma-ray-3.2-reframe-video",LumaRayFlash2:"luma-ray-flash-2",LumaRayFlash2ReframeVideo:"luma-ray-flash-2-reframe-video",LumaUni1:"luma-uni-1",LumaUni1Max:"luma-uni-1-max",Lyria3Clip:"lyria-3-clip",Lyria3Pro:"lyria-3-pro",Lyria35:"lyria-3.5",MinimaxH3:"minimax-h3",MinimaxH3Max:"minimax-h3-max",MinimaxH3MaxCameraControls:"minimax-h3-max-camera-controls",MinimaxH3MaxLipSync:"minimax-h3-max-lip-sync",MinimaxH3MaxTurbo:"minimax-h3-max-turbo",MinimaxMusicV2:"minimax-music-v2",MinimaxMusicV3:"minimax-music-v3",MuseImage10:"muse-image-1.0",Ovi:"ovi",PicsartChangeBg:"picsart-change-bg",PicsartEnhance:"picsart-enhance",PicsartFlow:"picsart-flow",PicsartFlowVideo:"picsart-flow-video",P
1icsartFlux2Klein:"picsart-flux-2-klein",PicsartHidreamT2i:"picsart-hidream-t2i",PicsartQwenImageEdit:"picsart-qwen-image-edit",PicsartQwenMakeup:"picsart-qwen-makeup",PicsartSanaSprintV1:"picsart-sana-sprint-v1",PicsartSodV82:"picsart-sod-v8-2",PicsartVideography:"picsart-videography",Pika22:"pika-2.2",Pika22Frames:"pika-2.2-frames",Pika22Scenes:"pika-2.2-scenes",PixverseC1:"pixverse-c1",PixverseC1Fusion:"pixverse-c1-fusion",PixverseC1Image:"pixverse-c1-image",PixverseV6:"pixverse-v6",PixverseV6Fusion:"pixverse-v6-fusion",PixverseV6Image:"pixverse-v6-image",Qwen:"qwen",QwenImage2:"qwen-image-2",QwenImage2Pro:"qwen-image-2-pro",QwenImage30:"qwen-image-3.0",QwenImage30Pro:"qwen-image-3.0-pro",RecraftCreativeUpscale:"recraft-creative-upscale",RecraftCrispUpscale:"recraft-crisp-upscale",RecraftExplore:"recraft-explore",RecraftExploreSimilar:"recraft-explore-similar",RecraftVectorize:"recraft-vectorize",Recraftv2:"recraftv2",Recraftv2Vector:"recraftv2_vector",Recraftv3:"recraftv3",Recraftv3Vector:"recraftv3_vector",Recraftv3ReplaceBg:"recraftv3-replace-bg",Recraftv4:"recraftv4",Recraftv41:"recraftv4_1",Recraftv41Flash:"recraftv4_1_flash",Recraftv41Pro:"recraftv4_1_pro",Recraftv41ProVector:"recraftv4_1_pro_vector",Recraftv41Utility:"recraftv4_1_utility",Recraftv41UtilityPro:"recraftv4_1_utility_pro",Recraftv41UtilityProVector:"recraftv4_1_utility_pro_vector",Recraftv41UtilityVector:"recraftv4_1_utility_vector",Recraftv41Vector:"recraftv4_1_vector",Recraftv4Pro:"recraftv4_pro",Recraftv4ProVector:"recraftv4_pro_vector",Recraftv4Styles:"recraftv4_styles",Recraftv4StylesPro:"recraftv4_styles_pro",Recraftv4StylesProVector:"recraftv4_styles_pro_vector",Recraftv4StylesVector:"recraftv4_styles_vector",Recraftv4Vector:"recraftv4_vector",Reve:"reve",RunwayAleph2:"runway-aleph2",RunwayAvatarVideo:"runway-avatar-video",RunwayGen3aTurbo:"runway-gen3a-turbo",RunwayGen4Aleph:"runway-gen4-aleph",RunwayGen4Ref:"runway-gen4-ref",RunwayGen45:"runway-gen4.5",SeedAudio10:"seed-audio-1.0",SeedAudio10Multilingual:"seed-audio-1.0-multilingual",Seedance15Pro:"seedance-1.5-pro",Seedance20:"seedance-2.0",Seedance20Fast:"seedance-2.0-fast",Seedance20FastVideoEdit:"seedance-2.0-fast-video-edit",Seedance20FastVideoExtend:"seedance-2.0-fast-video-extend",Seedance20Mini:"seedance-2.0-mini",Seedance20MiniVideoEdit:"seedance-2.0-mini-video-edit",Seedance20MiniVideoExtend:"seedance-2.0-mini-video-extend",Seedance20VideoEdit:"seedance-2.0-video-edit",Seedance20VideoExtend:"seedance-2.0-video-extend",Seedance20WithoutModeration:"seedance-2.0-without-moderation",Seedance20WithoutModerationVideoEdit:"seedance-2.0-without-moderation-video-edit",Seedance20WithoutModerationVideoExtend:"seedance-2.0-without-moderation-video-extend",Seedance25:"seedance-2.5",Seedance25VideoEdit:"seedance-2.5-video-edit",Seedance25VideoExtend:"seedance-2.5-video-extend",Seedance25WithoutModeration:"seedance-2.5-without-moderation",Seedance25WithoutModerationVideoEdit:"seedance-2.5-without-moderation-video-edit",Seedance25WithoutModerationVideoExtend:"seedance-2.5-without-moderation-video-extend",SeedanceI2v:"seedance-i2v",Seedream40:"seedream-4.0",Seedream45:"seedream-4.5",Seedream47:"seedream-4.7",Seedream50Lite:"seedream-5.0-lite",Seedream50Pro:"seedream-5.0-pro",TopazUpscaleImage:"topaz-upscale-image",TopazUpscaleVideo:"topaz-upscale-video",VeedFabricV1:"veed-fabric-v1",VeedFabricV1Fast:"veed-fabric-v1-fast",Veo31:"veo-3.1",Veo31Fast:"veo-3.1-fast",Veo31Lite:"veo-3.1-lite",Wan26Image:"wan-2.6-image",Wan26R2v:"wan-2.6-r2v",Wan26T2v:"wan-2.6-t2v",Wan27I2v:"wan-2.7-i2v",Wan27R2v:"wan-2.7-r2v",Wan27T2v:"wan-2.7-t2v",Wan27VideoEdit:"wan-2.7-video-edit",Wan30Video:"wan-3.0-video",Wan30VideoPrime:"wan-3.0-video-prime"},"buildFilename",0,oV,"buildGenerationAttributes",0,oq,"catalog",0,{all:function(e={}){let t=e.release??tf;return ol.filter(e=>tv(e,t)).map(e=>new o2(e))},find:function(e){let t=e.release??tf;return ol.filter(i=>!!tv(i,t)&&(!e.output||i.mode===e.output)&&(!e.provider||i.provider===e.provider)).map(e=>new o2(e))},search:function(e,t={}){let i=t.release??tf,a=e.toLowerCase();return ol.filter(e=>tv(e,i)&&(e.id.toLowerCase().includes(a)||e.name.toLowerCase().includes(a)||e.provider.toLowerCase().includes(a))).map(e=>new o2(e))},pricing:{configure:function(e){oH=new k.ModelPricingClient(e),oQ=null,oX=null},load:function(){if(oQ)return Promise.resolve();if(!oH)return Promise.reject(Error("loadPricing(): not configured. Call catalog.pricing.configure({ baseUrl, fetch }) first."));if(!oX){let e=oH;oX=e.init().then(()=>{let t=new Map;for(let i of e.getModelPricing()){let e=i.metadata.modelId,a=t.get(e);a?a.push(i):t.set(e,[i])}oQ=t}).catch(e=>{throw oX=null,e})}return oX},isLoaded:function(){return null!==oQ}}},"createClient",0,function(e){var t;let i=function(e){if(e.fetch)return e.fetch;if(e.apiKey){let t=e.apiKey.replace(/^Bearer\s+/i,"");return(e,i)=>{let a=new Headers(i?.headers);for(let[e,i]of(a.set("Authorization",`Bearer ${t}`),Object.entries(oR)))a.has(e)||a.set(e,i);return globalThis.fetch(e,{...i,headers:a})}}return null}(e),a=e.apiUrl&&i?(t=e.apiUrl,new I({baseUrl:t,fetch:(e,t)=>e instanceof Request?i(e.url,t??{method:e.method,headers:e.headers,body:e.body,signal:e.signal}):i("string"==typeof e?e:e.toString(),t)})):null,r=e.transport??function(){if(a){let e;return e=e=>({result:e.result,usage:e.usage,raw:e.result}),{async execute(t){try{let i=await a.run(t.workflow,t.payload,{mode:s.SYNC,abortSignal:t.signal});return e(i)}catch(e){throw oP(e,t.workflow)}},async submit(e){try{let t=await a.submit(e.workflow,e.payload,{abort
1Signal:e.signal});if(!t)throw new tp("No task id in response",{status:502,code:"invalid_response"});return t}catch(t){throw oP(t,e.workflow)}},async poll(t,i){try{let r=await a.runPolling(t.workflow,t.id,{pollingInterval:i?.intervalMs,retriesCount:i?.maxAttempts,abortSignal:i?.signal,onProgress:i?.onProgress});return e(r)}catch(e){throw oP(e,t.workflow,t.id)}},async status(t,i){if(i?.aborted)throw new tp("Operation aborted",{status:499,code:"aborted"});try{return e(await a.result(t.workflow,t.id))}catch(e){throw oP(e,t.workflow,t.id)}},async options(e,t){try{let i=await a.options(e,t);return"number"==typeof i?.credits?i.credits:null}catch{return null}}}}throw Error(e.apiUrl?"createClient config requires either `fetch` or `apiKey` (or a custom `transport`).":"createClient config requires `apiUrl` (or a custom `transport`).")}(),o="function"==typeof r.submit&&"function"==typeof r.poll,n={async run(e,t,i){if(!a)throw new tp("`ai.apis` requires `apiUrl` plus `fetch` or `apiKey` on createClient â the workflows APIs are not served by a custom transport.",{status:400,code:"unsupported_transport"});let r={...i??{}};delete r.remoteSettingName,delete r.onPartialResult,delete r.notificationConfig;try{return await a.run(e,t,r)}catch(t){throw oP(t,e)}}},d=e.inputsTransformation,l=function(e,t){let i=new Map,a=new Map,r=e=>`${e.workflow} ${e.modelId??""}`;async function o(t,i){let a,r={};i.modelId&&(r.modelId=i.modelId),i.cursor&&(r.cursor=i.cursor),i.limit&&(r.limit=i.limit);try{a=await e.execute({workflow:t,payload:r})}catch(e){if(e instanceof tp||e instanceof DOMException&&"AbortError"===e.name)throw e;throw new tp(`${t} failed: ${e instanceof Error?e.message:String(e)}`,{status:502,code:"bad_gateway"})}let o=a.result??a.raw,n=o?.response??o,s=n?.result??n;if(oc(s,t),!s||!Array.isArray(s.items))throw new tp(`${t} returned no catalog result`,{status:502,code:"invalid_response"});return{...s,nextCursor:s.nextCursor??null}}async function n(e,t,n,s){var d;let l,u,m=(d=s?.forceRefresh,l=r(n),(u=i.get(l))?(d||0!==u.expiresAt&&u.expiresAt<=Date.now())&&(u.pages.clear(),u.version="",u.expiresAt=0,u.gen+=1):(u={pages:new Map,version:"",expiresAt:0,gen:0},i.set(l,u)),u),p=s?.cursor??"",c=m.pages.get(p);if(c)return oz(Promise.resolve(oj(c)),s?.signal);let g=`${r(n)} ${p}`;if(!s?.forceRefresh){let e=a.get(g);if(e)return oz(e.then(oj),s?.signal)}let f=m.gen,h=o(n.workflow,{modelId:n.modelId,cursor:s?.cursor,limit:s?.limit??100}).then(i=>{let a={items:i.items,nextCursor:i.nextCursor};if(m.gen===f){var r,o,s;let d;m.pages.set(p,a),m.version=i.version,0===m.expiresAt&&(m.expiresAt=Date.now()+1e3*Math.max(60,i.ttlSeconds||0)),r=function(e){let t=new Map;for(let i of e.pages.values())for(let e of i.items)t.set(e.id,e);return[...t.values()]}(m),o=e.provider,s=m.version,d=tK[t],tD.set(tq(n),{paramKey:t,items:r,options:r.map(e=>({id:e.id,label:e.name})),catalogOptions:d?r.map(e=>d(e,o)):r,version:s})}return a}).finally(()=>{a.get(g)===h&&a.delete(g)});return a.set(g,h),oz(h.then(oj),s?.signal)}async function s(e,t,i){let a=oS(e);return n(a,t,function(e,t){let i=e.paramConfig[t]?.descriptor,a=i?.kind==="catalog"?i.source:void 0;if(!a)throw Error(`Model "${e.id}" has no runtime catalog on param "${t}" \u2014 its options are static.`);return a}(a,t),i)}if(t?.preload){let e=new Set;for(let t of ol)for(let[i,a]of Object.entries(t.paramConfig)){let o=a.descriptor,s="catalog"===o.kind?o.source:void 0;!s||e.has(r(s))||(e.add(r(s)),n(t,i,s).catch(()=>{}))}}return{voices:(e,t)=>s(e,"voiceId",t),avatars:(e,t)=>s(e,"videoId",t),templates:(e,t)=>s(e,"templateId",t)}}(r,e.catalogs),u=e.drive,m=e.apiUrl;if(u&&!(i&&m))throw Error("createClient `drive` requires `apiUrl` plus `fetch` or `apiKey` â Drive is a REST surface, not served by a custom transport.");function p(e,t){if(e instanceof tp)return e;if(e instanceof DOMException&&"AbortError"===e.name){if(t?.aborted)return new tp("Operation aborted",{status:499,code:"aborted"});throw e}return new tp(e instanceof Error?e.message:String(e),{status:502,code:"generation_failed"})}function c(e){return new tp(`Transport does not support ${e} (execute-only transport)`,{status:400,code:"unsupported_transport"})}function g(e,t){return oy(e,t.result,t.raw??t.result,t.usage)}function f(e,t,i){return r.poll?r.poll(e,{...t,onProgress:i}):Promise.reject(c("polling"))}function h(){if(!r.submit)throw c("submit");
1if(!r.poll)throw c("polling")}function v(e){if("text"===e.mode)throw new tp(`${e.name} is a text model \u2014 use generateText() instead.`,{status:400,code:"wrong_model_mode"})}async function y(e,t,i){if(i?.aborted)throw new tp("Operation aborted",{status:499,code:"aborted"});if(!r.submit)throw c("submit");let a=await r.submit({workflow:e,payload:t,signal:i});if(!a)throw new tp("No task id in response",{status:502,code:"invalid_response"});return a}async function w(e,t,i,a){let n=a?.signal;try{if(e.syncExecute||!o){var s;let e=await r.execute({workflow:t,payload:i,signal:n});return oy({workflow:t,id:""},((s=e.result)&&"object"==typeof s?s.response?.result??s.result:s)??e.result,e.raw??e.result,e.usage)}let d=await y(t,i,n),l=await f({workflow:t,id:d},oN(e,a));return g({workflow:t,id:d},l)}catch(e){throw p(e,n)}}function b(e,t,i){let a=i?.drive;if(!u&&!a)return;let r=oq({modelId:e.id,params:t,app:i?.app}),o=i?.folder?.name??u?.folder;return{name:a?.name??oV(t.prompt,e.mode),attributes:{...r,...a?.attributes??{}},folder:a?.folder??(o?{path:o}:void 0)}}function x(e,t,i){let a=e.options??{};return{...e,options:{...a,inputs_transformation:{downscale_oversized_images:i?.downscaleOversizedImages??d?.downscaleOversizedImages??!1},...t?{drive:t}:{}}}}async function k(e,t,i){let a={workflow:e.workflow,id:t};if(!e.editWorkflow||!r.status)return a;try{return await r.status(a,i),a}catch(i){if(i instanceof tp&&404===i.status)return{workflow:e.editWorkflow,id:t};throw i}}return{async generate(e,t,i){let a=oS(e);v(a);let{workflow:r,payload:o,contract:n}=oF(a,t),s=x(o,b(a,t,i),i?.inputsTransformation);return oC(await w(a,r,s,i),a,n)},async generateText(e,t,i){let a=oS(e);if("text"!==a.mode)throw new tp(`${a.name} is not a text model \u2014 use generate() instead.`,{status:400,code:"wrong_model_mode"});let{workflow:r,payload:o}=oF(a,t);var n=await w(a,r,o,i);oc(n.result,a.name),oc(n.raw,a.name);let s=of(n.result)??of(n.raw);if(null==s)throw new tp(`${a.name}: unexpected response \u2014 no text`,{status:502,code:"invalid_response"});return{text:s,model:a.id,raw:n.raw??n.result,usage:n.usage}},async getCredits(e,t){if(!r.options)return null;let{workflow:i,payload:a}=oF(oS(e),t);return await r.options(i,a)??null},buildPayload(e,t){let{payload:i}=oF(oS(e),t);return i},async submit(e,t,i){let a=oS(e);v(a),h();let{workflow:r,payload:o}=oF(a,t),n=x(o,b(a,t,i),i?.inputsTransformation);try{return await y(r,n,i?.signal)}catch(e){throw p(e,i?.signal)}},async result(e,t,i){let a,r=oS(e);v(r);let o=op(r.id);h();let n=await k(r,t,i?.signal);try{a=g(n,await f(n,oN(r,i)))}catch(e){throw p(e,i?.signal)}return oC(a,r,o)},subscribe(e,t,i){let a=oS(e);v(a),h();let r=op(a.id);return async function*(){let e,o;try{e=await k(a,t,i?.signal)}catch(e){yield{type:"generation.failed",error:p(e,i?.signal)};return}let n=new AbortController;i?.signal&&(i.signal.aborted?n.abort():i.signal.addEventListener("abort",()=>n.abort(),{once:!0}));let s=[],d=new Promise(e=>{o=()=>e(null)}),l=f(e,{...oN(a,i),signal:n.signal},e=>{s.push(e),o()}).then(e=>({ok:!0,res:e}),e=>({ok:!1,err:e}));try{for(;;){for(;s.length;)yield{type:"generation.progress",progress:s.shift()};let t=await Promise.race([l,d]);if(null===t){d=new Promise(e=>{o=()=>e(null)});continue}for(;s.length;)yield{type:"generation.progress",progress:s.shift()};if(!t.ok)return void(yield{type:"generation.failed",error:p(t.err,i?.signal)});let n=g(e,t.res);try{yield{type:"generation.completed",result:oC(n,a,r)}}catch(e){yield{type:"generation.failed",error:p(e,i?.signal)}}return}}finally{n.abort()}}()},apis:n,catalogs:l,drive:(u&&i&&m?function(e,t,i){let a=null,r=null,o=async(i,a)=>e(`${t}${i}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),n=async i=>e(`${t}${i}`);async function s(e){try{let t=await n(`/cloud-storage/v1/me/files-by-path?path=${encodeURIComponent(e)}`);
1if(!t.ok)return null;let i=await t.json();if("success"!==i.status)return null;let a=i.response,r=Array.isArray(a)?a[0]:a;return r?.uid??null}catch{return null}}async function d(e,t){try{let i=t?`parentFolderUid=${t}&fileTypes=FOLDER&limit=100`:"fileTypes=FOLDER&limit=100",a=await n(`/cloud-storage/v1/me/files?${i}`);if(!a.ok)return null;let r=(await a.json()).response,o=(Array.isArray(r)?r:[]).find(t=>String(t.name||"").toLowerCase()===e.toLowerCase());return o?.uid??null}catch{return null}}async function l(e,t){try{let i={name:e};t&&(i.parentFolderUid=t);let a=await o("/cloud-storage/v1/me/folders",i);if(!a.ok)return null;let r=(await a.json()).response;return r?.uid??null}catch{return null}}async function u(){let e=await s(i);if(e)return e;let t=await d(i);if(t)return t;let a=await s(i);return a||l(i)}async function m(){return a||(r||(r=u().then(e=>(a=e,r=null,e)).catch(e=>{throw setTimeout(()=>{r=null},1e4),e})),r)}async function p(e){try{let t=e?`parentFolderUid=${e}&fileTypes=FOLDER&limit=100`:"fileTypes=FOLDER&limit=100",i=await n(`/cloud-storage/v1/me/files?${t}`);if(!i.ok)return[];let a=await i.json();return(Array.isArray(a.response)?a.response:[]).filter(e=>e.uid&&e.name).map(e=>({name:String(e.name),uid:String(e.uid)}))}catch{return[]}}async function c(e){try{var t;let i=e.folderUid?"/cloud-storage/v1/me/files":"/cloud-storage/v1/me/flattened-files",a=[e.folderUid?`parentFolderUid=${e.folderUid}`:"","limit=100","sortType=UPDATED","sortOrder=DESC","fileTypes=FILE",`contentResourceTypes=${(t=e.type,"image"===t?"PHOTO":"video"===t?"VIDEO":"audio"===t?"AUDIO":"PHOTO,VIDEO,AUDIO")}`].filter(Boolean).join("&"),r=await n(`${i}?${a}`);if(!r.ok)return[];let o=await r.json();return Array.isArray(o.response)?o.response:[]}catch{return[]}}async function g(e){try{let t=await n(`/drive/v1/files/${e}`);if(!t.ok)return null;let i=(await t.json()).response;return i&&"object"==typeof i&&!Array.isArray(i)?i:null}catch{return null}}async function f(i,a){try{return(await e(`${t}/drive/v1/files/${i}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({attributes:{[oU]:a}})})).ok}catch{return!1}}return{async ensureFolder(e){let t=await m();if(!t)return null;if(!e)return{name:i,uid:t};let a=await d(e,t);if(a)return{name:e,uid:a};let r=await l(e,t);return r?{name:e,uid:r}:null},async folders(){let e=await m();return e?p(e):[]},async allFolders(){let e=await m(),[t,i]=await Promise.all([p(),e?p(e):Promise.resolve([])]),a=new Set,r=[];for(let e of[...t,...i])a.has(e.uid)||(a.add(e.uid),r.push(e));return r},async findFolder(e){if(e.toLowerCase()===i.toLowerCase()){let e=await m();return e?{name:i,uid:e}:null}let t=await m(),[a,r]=await Promise.all([p(),t?p(t):Promise.resolve([])]),o=e.toLowerCase();return[...a,...r].find(e=>e.name.toLowerCase()===o)??null},async list(e){let t=e?.folder?.uid??void 0,i=await c({folderUid:t,type:e?.type}),a=[];for(let e of i){let t=oK(e);t&&a.push(t)}return a},async listDetailed(e){let t=e?.folder?.uid??void 0,i=await c({folderUid:t,type:e?.type}),a=[];for(let e of i){let t=function(e){let t=oK(e);if(!t)return null;let i=oM(e.attributes),a={};if(i.textScript)try{a=JSON.parse(i.textScript)}catch{}return{...t,createdAt:e.createdAt,model:i.model,prompt:i.prompt||void 0,service:i.service,subType:i.subType,duration:i.duration,userReaction:oO(i[oU]),referenceImageUrls:a.referenceImageUrls,referenceVideoUrl:a.referenceVideoUrl,referenceAudioUrl:a.referenceAudioUrl,aspectRatio:a.aspectRatio,resolution:a.resolution,quality:a.quality}}(e);t&&a.push(t)}return a},async getGeneration(e){let t=await g(e);return t?o$(t):null},async save(e,t){let a=t?.uid??await m();if(!a)return null;let r=t??{name:i,uid:a},n={name:e.name,sourceUrl:e.url,parentFolderUid:a,content:{type:"STANDALONE",resourceType:e.resourceType,sourcePlatform:"WEB"},preview:{url:e.previewUrl||e.url,width:1024,height:1024},attributes:Object.entries(e.attributes??{}).map(([e,t])=>({property:e,value:t}))};try{let t=await o("/cloud-storage/v1/me/files",n);if(400===t.status){if(!(await t.text()).includes("restricted_keywords"))return null;{let i=e.name.split(".").pop()||"png";n.name=`ai-generation-${Date.now()}.${i}`,t=await o("/cloud-storage/v1/me/files",n)}}if(!t.ok)return null;let i=(await t.json()).response,a=i?.uid;if(!a)return null;return{uid:a,folder:r}}catch{return null}},buildSaveParams:(e,t,i,a,r)=>({url:e,name:oV(r,a),resourceType:oE(a),attributes:{tool:"ai-sdk",model:t,prompt:r||"",service:i}}),addReaction:async(e,t)=>f(e,t),removeReaction:async e=>f(e,null)}}(i,m,u.folder):null)??void 0}},"decodeDeepLinkPayload",0,function(e){return function(e){var t;let i;try{let t;t=eN(function(e){let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")),i=new Uint8Array(t.length);for(let e=0;e<t.length;e++)i[e]=t.charCodeAt(e);return i}(e)),i=JSON.parse(new TextDecoder().decode(t))}catch{return null}if(!("object"==typeof(t=i)&&null!==t&&1===t.v&&"string"==typeof t.m&&t.m.length>0))return null;let a=[],r={},o=o_(i.m),n=!!o;if(n||a.push(`Unknown model: ${i.m}`),i.p&&(r.prompt=o8(i.p)),i.np&&(r.negativePrompt=o8(i.np)),i.i?.length){let e=function(e,t){let i=[];for(let a of e)"string"==typeof a&&(o5(a)?i.push(a):t.push(`Rejected URL: ${a}`));return i}(i.i,a);e.length&&(r.imageUrls=e)}return i.vi&&(o5(i.vi)?r.videoUrl=i.vi:a.push(`Rejected video URL: ${i.vi}`)),i.au&&(o5(i.au)?r.audioUrl=i.au:a.push(`Rejected audio URL: ${i.au}`)),i.sf&&(o5(i.sf)?r.startFrame=i.sf:a.push(`Rejected start frame URL: ${i.sf}`)),i.ef&&(o5(i.ef)?r.endFrame=i.ef:a.push(`Rejected end frame URL: ${i.ef}`)),i.o&&"object"==typeof i.o&&(o?Object.assign(r,tm(o.paramConfig,i.o)):Object.assign(r,i.o)),{modelId:i.m,context:r,modelKnown:n,warnings:a}}(e)},"encodeDeepLinkPayload",0,function(e,t){return function(e,t){let i={v:1,m:e};t.prompt&&(i.p=t.prompt),t.negativePrompt&&(i.np=t.negativePrompt),t.imageUrls?.length&&(i.i=t.imageUrls),t.videoUrl&&(i.vi=t.videoUrl),t.audioUrl&&(i.au=t.audioUrl),t.startFrame&&(i.sf=t.
1startFrame),t.endFrame&&(i.ef=t.endFrame);let a=o_(e),r=a?td(a.paramConfig):{},o={};for(let[e,i]of Object.entries(t))!(o3.has(e)||o6.has(e))&&null!=i&&(e in r&&r[e]===i||(o[e]=i));Object.keys(o).length>0&&(i.o=o);let n=JSON.stringify(i);var s=eW(new TextEncoder().encode(n));let d="";for(let e=0;e<s.length;e++)d+=String.fromCharCode(s[e]);return btoa(d).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}(e,t)},"findModel",0,oT,"getModel",0,o_,"getModelsByMode",0,(e,t=!1)=>ol.filter(i=>i.mode===e&&(t||tv(i))),"getVoiceById",0,function(e){return(function(){let e=[];for(let t of tD.values())"voiceId"===t.paramKey&&e.push(...t.catalogOptions);return e})().find(t=>t.id===e)},"inferResourceType",0,oE,"isVisibleForReleases",0,tv,"parseGeneration",0,o$,"releaseOf",0,th,"toAvatarOption",0,tO,"toVoiceOption",0,tM],715844)}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.