1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,822600,e=>{"use strict";var t=e.i(244410);e.s(["Image",()=>t.default])},790514,e=>{"use strict";var t=e.i(776938);function o(e){let o=[];for(let a of Object.keys(t.IMAGE_MODELS)){let i=t.IMAGE_MODELS[a];i&&!(i.credits>e)&&o.push({modelKey:a,name:i.name,credits:i.credits})}return o.sort((e,t)=>e.credits-t.credits),o}function a(){return(0,t.getDefaultImageModel)()}e.s(["getAffordableImageModels",()=>o,"getDefaultModel",()=>a])},791488,e=>{"use strict";var t=e.i(217501),o=e.i(17507),a=e.i(797659),i=e.i(884420),r=e.i(622989);let s={all:["historyWorks"]};function n(e={}){let l=(0,a.useQueryClient)(),u=(0,i.useLocale)(),{enabled:d=!0,limit:p=10,includeFailed:m=!1}=e,g=(0,o.useInfiniteQuery)({queryKey:[...s.all,{limit:p,locale:u,includeFailed:m}],initialPageParam:1,queryFn:async({pageParam:e})=>{let o=await (0,t.getMyWorks)({page:e,limit:p,locale:u,includeFailed:m});if(!o.success)throw Error(o.error||"Failed to fetch history works");return o},getNextPageParam:e=>{if(e.currentPage<e.totalPages)return e.currentPage+1},enabled:d,staleTime:3e4,gcTime:3e5}),c=(0,r.useMemo)(()=>{var e;let t;return e=g.data?.pages.flatMap(e=>e.works)||[],t=new Set,e.filter(e=>!(!e?.id||t.has(e.id))&&(t.add(e.id),!0))},[g.data]),f=g.data?.pages[0]?.total||0;return{...g,refresh:()=>{l.invalidateQueries({queryKey:s.all})},works:c,total:f}}e.s(["historyWorksKeys",0,s,"useHistoryWorks",()=>n])},236971,e=>{"use strict";let t={CONTENT_POLICY:"contentPolicy",INSUFFICIENT_CREDITS:"insufficientCredits",PROMPT_TOO_LONG:"promptTooLong",UNSUPPORTED_DURATION:"unsupportedDuration",UNSUPPORTED_RESOLUTION:"unsupportedResolution",INVALID_PARAMS:"invalidParams",INVALID_IMAGE:"invalidImage",RATE_LIMIT:"rateLimit",NETWORK:"network",TIMEOUT:"timeout",AUTH_ERROR:"auth",AUTHENTICATION:"auth",PROVIDER_OUT_OF_CREDITS:"providerOutOfCredits",MODEL_NOT_SUPPORTED:"modelNotSupported",TASK_EXPIRED:"taskExpired",NO_PROVIDER:"noProvider",TASK_FAILED:"taskFailed",POLLING_ERROR:"pollingError",GENERATION_FAILED:"generationFailed",INTERNAL_ERROR:"internalError",SERVER_ERROR:"internalError",UNKNOWN_ERROR:"unknown",UNEXPECTED_ERROR:"unknown",KIE_UNCLASSIFIED:"kieUnclassified",MODERATION_UNAVAILABLE:"moderationUnavailable"},o=new Set(Object.keys(t)),a=new Set(["GENERATION_FAILED","UNKNOWN_ERROR","INTERNAL_ERROR"]);function i(e,t){return t.some(t=>e.includes(t))}function r(e,t,r){let s=(t||"").trim().toUpperCase(),n=s.toLowerCase(),l=(e||"").trim().toLowerCase();return"431"===s?"CONTENT_POLICY":s&&o.has(s)&&!a.has(s)?s:i(n,["sensitivecontentdetected","policyviolation","privacyinformation","contentpolicy","content_policy","severeviolation","realperson"])?"CONTENT_POLICY":i(n,["accountoverdueerror","serviceoverdue","quotaexceeded","invalidsubscription","provider_out_of_credits"])?"PROVIDER_OUT_OF_CREDITS":i(n,["ratelimit","toomanyrequests","requestbursttoofast","setlimitexceeded","serveroverloaded"])?"RATE_LIMIT":i(n,["invalidparameter","missingparameter","invalidargumenterror","invalidimageurl","outofcontexterror"])?"INVALID_PARAMS":i(n,["unsupportedmodel","modelnotopen","invalidendpointormodel","model_not_supported"])?"MODEL_NOT_SUPPORTED":i(l,["content policy","content moderated","content-moderated","deepfake","wke=grok:content-moderated","safety","sensitive content","outputimagesensitivecontentdetected","nsfw","violent","å
容å®å
¨","å
容è§è","å
¬åºè¯ä¿","ä½ä¿","è²æ
","ä¸éå½","ä¸éå¾·","å¹³å°è§å","å
¬ä¼äººç©","å
¬ç¾äººç©","ç人身份","ææ","ææ"])?"CONTENT_POLICY":i(l,["provider_out_of_credits","ä¾åºå"])||l.includes("insufficient credits")&&i(l,["provider","apimart","302"])?"PROVIDER_OUT_OF_CREDITS":i(l,["insufficient credits","积åä¸è¶³","ä½é¢ä¸è¶³"])?"INSUFFICIENT_CREDITS":i(l,["prompt too long","prompt is too long","æè¿°è¿é¿","prompt_too_long"])?"PROMPT_TOO_LONG":i(l,["invalid params","åæ°æ æ","requires image or video input"])?"INVALID_PARAMS":i(l,["model not supported","模åä¸å¯ç¨"])?"MODEL_NOT_SUPPORTED":i(l,["timeout","è¶
æ¶"])?"TIMEOUT":r?.domain==="video"&&i(l,["duration","æ¶é¿"])&&i(l,["not supported","unsupported","䏿¯æ"])?"UNSUPPORTED_DURATION":r?.domain==="video"&&i(l,["resolution","å辨ç"])&&i(l,["not supported","unsupported","䏿¯æ"])?"UNSUPPORTED_RESOLUTION":i(l,["network","fetch"])?"NETWORK":i(l,["authentication","unauthorized","login"])?"AUTHENTICATION":s&&o.has(s)||s?s:void 0}function s(e){let o=(e||"").trim().toUpperCase();return o&&t[o]||"unknown"}function n(e){let t=(e||"").trim().toUpperCase();return"INSUFFICIENT_CREDITS"===t||"CONTENT_POLICY"===t?"blocked":"fail"}function l(e){let t=(e||"").trim().toUpperCase();return"INSUFFICIENT_CREDITS"===t?"insufficient_credits":"CONTENT_POLICY"===t?"content_policy":null}e.s(["getGenerationBlockedReason",()=>l,"getGenerationErrorAnalyticsType",()=>n,"getGenerationErrorSemanticKey",()=>s,"normalizeGenerationErrorCode",()=>r])},17507,e=>{"use strict";var t=e.i(103031),o=e.i(483596),a=class extends t.QueryObserver{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){super.setOptions({...e,behavior:(0,o.infiniteQueryBehavior)()})}getOptimisticResult(e){return e.behavior=(0,o.infiniteQueryBehavior)(),super.getOptimisticResult(e)}
1fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){let{state:a}=e,i=super.createResult(e,t),{isFetching:r,isRefetching:s,isError:n,isRefetchError:l}=i,u=a.fetchMeta?.fetchMore?.direction,d=n&&"forward"===u,p=r&&"forward"===u,m=n&&"backward"===u,g=r&&"backward"===u;return{...i,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:(0,o.hasNextPage)(t,a.data),hasPreviousPage:(0,o.hasPreviousPage)(t,a.data),isFetchNextPageError:d,isFetchingNextPage:p,isFetchPreviousPageError:m,isFetchingPreviousPage:g,isRefetchError:l&&!d&&!m,isRefetching:s&&!p&&!g}}},i=e.i(25753);function r(e,t){return(0,i.useBaseQuery)(e,a,t)}e.s(["useInfiniteQuery",()=>r],17507)},229748,e=>{"use strict";var t=e.i(696394),o=e.i(17507),a=e.i(797659),i=e.i(622989);let r={all:["historyVideos"]};function s(e={}){let n=(0,a.useQueryClient)(),{enabled:l=!0,limit:u=10,includeFailed:d=!1}=e,p=(0,o.useInfiniteQuery)({queryKey:[...r.all,{limit:u,includeFailed:d}],initialPageParam:1,queryFn:async({pageParam:e})=>{let o=await (0,t.getMyVideos)({page:e,limit:u,includeFailed:d});if(!o.success)throw Error(o.error||"Failed to fetch history videos");return o},getNextPageParam:e=>{if(e.currentPage<e.totalPages)return e.currentPage+1},enabled:l,staleTime:3e4,gcTime:3e5}),m=(0,i.useMemo)(()=>{var e;let t;return e=p.data?.pages.flatMap(e=>e.videos)||[],t=new Set,e.filter(e=>!(!e?.id||t.has(e.id))&&(t.add(e.id),!0))},[p.data]),g=p.data?.pages[0]?.total||0;return{...p,refresh:()=>{n.invalidateQueries({queryKey:r.all})},videos:m,total:g}}e.s(["historyVideosKeys",0,r,"useHistoryVideos",()=>s])},981084,752974,e=>{"use strict";function t(e){return 1024*e*1024}let o={image:{maxSizeMB:10,allowedTypes:["image/jpeg","image/png","image/webp","image/gif"],defaultFolder:"images/uploads"},audio:{maxSizeMB:100,allowedTypes:["audio/mpeg","audio/wav","audio/mp3","audio/m4a","audio/x-m4a","audio/mp4","audio/aac","audio/flac","audio/x-flac","audio/ogg"],defaultFolder:"audio/uploads"},video:{maxSizeMB:50,allowedTypes:["video/mp4","video/webm","video/quicktime","video/x-msvideo","video/x-matroska"],defaultFolder:"videos/uploads"}},a={maxSizeMB:o.video.maxSizeMB,allowedTypes:["video/mp4","video/webm","video/quicktime"],accept:"video/mp4,video/webm,video/quicktime",maxDurationSeconds:30,folder:o.video.defaultFolder},i={maxSizeMB:o.video.maxSizeMB,compressThresholdMB:10,allowedTypes:o.video.allowedTypes,accept:o.video.allowedTypes.join(","),folder:"prompts/videos"};o.audio.maxSizeMB,o.audio.allowedTypes,o.audio.allowedTypes.join(","),o.audio.defaultFolder;let r={maxSizeMB:o.image.maxSizeMB,allowedTypes:["image/png","image/jpeg","image/webp"],accept:"image/png, image/jpeg, image/webp",folder:"avatars"},s={maxWidth:1920,maxHeight:1080,quality:.7};async function n(e,t=1920,o=1080,a=.7){return new Promise((i,r)=>{let s=new Image,n=URL.createObjectURL(e);s.onload=()=>{let e=document.createElement("canvas"),l=e.getContext("2d");if(!l){URL.revokeObjectURL(n),r(Error("Failed to get canvas context"));return}let u=s.width,d=s.height;if(u>t||d>o){let e=u/d;u>d?d=(u=t)/e:u=(d=o)*e}e.width=u,e.height=d,l.drawImage(s,0,0,u,d),e.toBlob(e=>{URL.revokeObjectURL(n),e?i(e):r(Error("Failed to convert canvas to blob"))},"image/webp",a)},s.onerror=()=>{URL.revokeObjectURL(n),r(Error("Failed to load image"))};try{s.src=n}catch(e){URL.revokeObjectURL(n),r(Error("Failed to read file"))}})}function l(e){return o.image.allowedTypes.includes(e.type)?{valid:!0}:{valid:!1,error:"䏿¯æçæä»¶æ ¼å¼ã请ä¸ä¼ JPGãPNGãWebP æ GIF æ ¼å¼çå¾çã"}}async function u(e){return new Promise((t,o)=>{let a=new FileReader;a.onload=()=>t(a.result),a.onerror=o,a.readAsDataURL(e)})}function d(e){return URL.createObjectURL(e)}function p(e){URL.revokeObjectURL(e)}function m(e){if(!e)return null;let t=e.match(/data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=\s]+/i);return t?t[0].replace(/\s+/g,""):null}function g(e,t="pasted-image"){let o=e.match(/^data:(image\/[a-zA-Z0-9.+-]+);base64,([\s\S]+)$/i);if(!o)return null;let a=o[1].toLowerCase(),i=o[2].replace(/\s+/g,"");try{let e=atob(i),o=new Uint8Array(e.length);for(let t=0;t<e.length;t+=1)o[t]=e.charCodeAt(t);let r=a.split("/")[1]?.replace("jpeg","jpg")||"png";return new File([o],`${t}.${r}`,{type:a})}catch{return null}}async function c(e,t={}){var o;let{maxWidth:a=1920,maxHeight:i=1080,quality:r=.7}=t;return new File([await n(e,a,i,r)],!(o=e.name).includes(".")?`${o}.webp`:o.replace(/\.[^.]+$/,".webp"),{type:"image/webp",lastModified:e.lastModified})}e.s(["ADMIN_PROMPT_VIDEO_UPLOAD_POLICY",0,i,"AVATAR_UPLOAD_POLICY",0,r,"DIRECT_UPLOAD_POLICIES",0,o,"PROMPT_THUMBNAIL_WEBP_OPTIONS",0,{qual
1ity:80,maxWidth:1280,maxHeight:720},"REFERENCE_VIDEO_MEDIA_CONSTRAINTS",0,{minDurationSeconds:2,maxDurationSeconds:15,minWidth:300,minHeight:300,maxWidth:6e3,maxHeight:6e3,minAspectRatio:.4,maxAspectRatio:2.5,minPixelCount:409600,maxPixelCount:2086876},"SCENE_IMAGE_PREPARE_OPTIONS",0,s,"USER_IMAGE_PREPARE_OPTIONS",0,s,"VIDEO_REFERENCE_IMAGE_PREPARE_OPTIONS",0,s,"VIDEO_REFERENCE_UPLOAD_POLICY",0,a,"maxSizeMbToBytes",()=>t],752974),e.s(["createImagePreview",()=>d,"dataUriToImageFile",()=>g,"extractFirstImageDataUri",()=>m,"fileToBase64",()=>u,"prepareImageForUpload",()=>c,"revokeImagePreview",()=>p,"validateImageFile",()=>l],981084)},243658,e=>{"use strict";var t=e.i(981084),o=e.i(752974);let a="storage_upload_cache_r2_v2";function i(e){return(e||"").trim().replace(/^\/+|\/+$/g,"")}function r(e,t){return`${i(t)}|${e.name}|${e.size}|${e.lastModified}|${e.type}`}async function s(e,a){let i;return a||"image/png"!==(i=e.type.toLowerCase())&&"image/jpeg"!==i&&"image/jpg"!==i&&"image/webp"!==i?e:(0,t.prepareImageForUpload)(e,o.USER_IMAGE_PREPARE_OPTIONS)}function n(){try{let e=localStorage.getItem(a);if(!e)return new Map;let t=JSON.parse(e),o=new Map,i=Date.now();for(let e of t)i-e.timestamp<6048e5&&o.set(e.fingerprint,e);return o}catch{return new Map}}async function l(e){let t=await fetch("/api/storage/presigned-upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({filename:e.filename,contentType:e.contentType,fileSize:e.fileSize,folder:e.folder||void 0})});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error||e.message||"Failed to get upload URL")}return await t.json()}async function u(e,t){return l({filename:e.name,contentType:e.type,fileSize:e.size,folder:t})}async function d(e,t){var o,l;let d=await s(e,t?.preserveOriginalImageFormat),p=i(t?.folder);if(!t?.skipCache){let e=n().get(r(d,p))||null;if(e)return t?.onProgress?.(100),{url:e.url,key:e.key,fromCache:!0}}let m=await u(d,p);if(t?.onProgress)await (o=m.uploadUrl,l=t.onProgress,new Promise((e,t)=>{let a=new XMLHttpRequest;a.upload.addEventListener("progress",e=>{e.lengthComputable&&l(Math.round(e.loaded/e.total*100))}),a.addEventListener("load",()=>{a.status>=200&&a.status<300?e():t(Error(`Failed to upload file: ${a.status}`))}),a.addEventListener("error",()=>{t(Error("Network error during upload"))}),a.addEventListener("abort",()=>{t(Error("Upload aborted"))}),a.open("PUT",o),a.setRequestHeader("Content-Type",d.type||"application/octet-stream"),a.send(d)}));else{let e=await fetch(m.uploadUrl,{method:"PUT",headers:{"Content-Type":d.type||"application/octet-stream"},body:d});if(!e.ok)throw Error(`Failed to upload file: ${e.status} ${e.statusText}`)}let g={url:m.publicUrl,key:m.key,fromCache:!1},c=n(),f=r(d,p);c.set(f,{fingerprint:f,url:g.url,key:g.key,timestamp:Date.now()});try{localStorage.setItem(a,JSON.stringify(Array.from(c.values())))}catch{}return g}let p=async(e,t)=>{try{return await d(e,{folder:t})}catch(e){throw Error(e instanceof Error?e.message:"Unknown error occurred during file upload")}},m=async(e,t)=>{try{return await d(e,t)}catch(e){throw Error(e instanceof Error?e.message:"Unknown error occurred during file upload")}};e.s(["fetchPresignedUpload",()=>l,"uploadFileFromBrowser",0,p,"uploadFileWithProgressFromBrowser",0,m])},540164,e=>{"use strict";function t(e){let t=function(e){if(!e)return null;let t=e.trim().toLowerCase();return t?t.replace(/:\d+$/,""):null}(e);return t?{siteHost:t,siteKey:t.replace(/^www\./,"")}:{siteKey:null,siteHost:null}}function o(e){if(!e)return{siteKey:null,siteHost:null};try{return t(new URL(e).host)}catch{return t(e)}}e.s(["deriveSiteIdentityFromHost",()=>t,"deriveSiteIdentityFromUrl",()=>o])},854425,e=>{"use strict";let t="https://cdn.crushon.love",o={canonical:t,authorizedGallery:t,legacyDomainSeoMedia:t,legacyFile:t};function a(e,t){return`${o[e]}/${t.replace(/^\/+/,"")}`}e.s(["createR2AssetUrl",()=>a])},880788,962241,e=>{"use strict";e.i(442349),e.i(854425);var t=e.i(540164);let o=new Set(["undressme.pro","clothesremover.online"]),a=new Set(["localhost","127.0.0.1"]),i=new Set(["first-last-frame","reference","multimodal-reference"]);function r(e){return!!(e&&i.has(e))}function s(e){let o=e?.trim();return o?o.includes("://")?(0,t.deriveSiteIdentityFromUrl)(o).siteKey:(0,t.deriveSiteIdentityFromHost)(o).siteKey:null}function n(){let e,i;
1var r=(e=s(window.location.hostname))&&!a.has(e)?e:(0,t.deriveSiteIdentityFromUrl)("https://crushon.love").siteKey;return!((i=s(r))&&o.has(i))}e.s(["TEXT_ONLY_VIDEO_MODE",0,"text-image-to-video","isImageRequiredVideoMode",()=>r,"isUserImageUploadDisabledForBrowser",()=>n],962241);var l=e.i(622989);function u(){return(0,l.useMemo)(()=>n(),[])}e.s(["useUserImageUploadDisabled",()=>u],880788)},776938,e=>{"use strict";let t={"gemini-3-pro":{id:"gemini-3-pro-image-preview",name:"Nano Banana Pro",credits:6,description:"High quality image generation with rich details",logo:"/images/ai-model-logo/gemini-color.svg",translationKey:"pro",releaseDate:"November 2025",supportsResolution:!0,supportedResolutions:["1K","2K","4K"],defaultResolution:"1K",supportsImageInput:!0,maxImageInputs:8,maxPromptLength:1e4,fallbackModels:[{modelKey:"z-image",silent:!0}],supportedSizes:["1:1","2:3","3:2","3:4","4:3","4:5","5:4","9:16","16:9","21:9","auto"]},"gemini-2.5-flash":{id:"gemini-2.5-flash-image-preview",name:"NanoBanana Flash",credits:2,description:"Fast generation, cost-effective",logo:"/images/ai-model-logo/gemini-color.svg",translationKey:"flash",releaseDate:"August 2025",supportsResolution:!1,supportsImageInput:!0,maxImageInputs:10,maxPromptLength:5e3,fallbackModels:[{modelKey:"z-image",silent:!0}],supportedSizes:["1:1","9:16","16:9","3:4","4:3","3:2","2:3","auto"]},"nanobanana-2":{id:"nano-banana-2",name:"Nano Banana 2",credits:4,description:"Next-gen Nano Banana with optional web grounding",logo:"/images/ai-model-logo/gemini-color.svg",translationKey:"nanobanana2",releaseDate:"February 2026",supportsResolution:!0,supportedResolutions:["1K","2K","4K"],defaultResolution:"1K",supportsImageInput:!0,supportsWebSearch:!0,preferredProvider:"kie",fallbackModels:[{modelKey:"z-image",silent:!0}],maxImageInputs:14,maxPromptLength:2e4,supportedSizes:["1:1","2:3","3:2","3:4","4:3","9:16","16:9","auto"],isNew:!0},"flux2-klein":{id:"flux-2-klein",name:"Flux 2 Klein",credits:3,description:"Fast and efficient image generation",logo:"/images/ai-model-logo/flux.svg",translationKey:"flux2klein",releaseDate:"January 2026",kieModelId:"z-image-v2",supportsResolution:!1,supportedSizes:["1:1","4:3","3:4","16:9","9:16"],supportsImageInput:!0,maxImageInputs:3,fallbackModels:[{modelKey:"z-image",silent:!0}],supportsNSFW:!1},flux2:{id:"flux-2",name:"Flux 2",credits:4,description:"Flux 2 intelligent image generation (auto-selects text-to-image or image-to-image)",logo:"/images/ai-model-logo/flux.svg",translationKey:"flux2",releaseDate:"November 2025",supportsResolution:!0,supportedResolutions:["1K","2K"],defaultResolution:"1K",supportedSizes:["1:1","4:3","3:4","16:9","9:16","3:2","2:3","auto"],supportsImageInput:!0,maxImageInputs:8,maxPromptLength:5e3,fallbackModels:[{modelKey:"z-image",silent:!0}],supportsNSFW:!1},flux2pro:{id:"flux-2-pro",name:"Flux 2 Pro",credits:6,description:"Flux 2 Pro intelligent image generation with enhanced quality (auto-selects text-to-image or image-to-image)",logo:"/images/ai-model-logo/flux.svg",translationKey:"flux2pro",releaseDate:"November 2025",supportsResolution:!0,supportedResolutions:["1K","2K"],defaultResolution:"1K",supportedSizes:["1:1","4:3","3:4","16:9","9:16","3:2","2:3","auto"],supportsImageInput:!0,maxImageInputs:8,maxPromptLength:5e3,fallbackModels:[{modelKey:"z-image",silent:!0}],supportsNSFW:!1},"qwen-image-2":{id:"qwen/text-to-image",name:"Qwen Image 2",credits:6,description:"Advanced image generation with Qwen",logo:"/images/ai-model-logo/TongYi.svg",translationKey:"qwen2",releaseDate:"August 2025",supportsResolution:!0,supportedResolutions:["1K","2K","4K"],defaultResolution:"1K",supportsImageInput:!0,maxImageInputs:1,maxPromptLength:5e3,fallbackModels:[{modelKey:"z-image",silent:!0}],supportsNSFW:!1,isNew:!0},"qwen2-image":{id:"qwen2/text-to-image",name:"Qwen2 Image",credits:6,description:"Qwen2 image generation â text-to-image or image editing via smart routing",logo:"/images/ai-model-logo/TongYi.svg",translationKey:"qwen2image",releaseDate:"January 2026",supportsResolution:!1,supportedSizes:["1:1","4:3","3:4","16:9","9:16"],supportsImageInput:!0,maxImageInputs:1,maxPromptLength:800,preferredProvider:"kie",fallbackModels:[{modelKey:"z-image",silent:!0}],supportsNSFW:!1,isNew:!0},"wan27-image":{id:"wan/2-7-image",name:"Wan 2.7 Image",credits:2,description:"Alibaba Wan 2.7 â personalized characters, precise color palette control",logo:"/images/ai-model-logo/TongYi.svg",translationKey:"wan27image",releaseDate:"April 2026",supportsResolution:!0,supportedResolutions:["1K","2K"],defaultResolution:"2K",supportedSizes:["1:1","16:9","4:3","21:9","3:4","9:16"],supportsImageInput:!0,maxImageInputs:9,maxPromptLength:5e3,preferredProvider:"mulerouter",requiredProvider:"mulerouter",fallbackModels:[{modelKey:"z-image",silent:!0}],supportsNSFW:!1,isNew:!0}
1,"wan27-image-pro":{id:"wan/2-7-image-pro",name:"Wan 2.7 Image Pro",credits:5,description:"Alibaba Wan 2.7 Pro â stable composition, sharper prompt comprehension, 4K output",logo:"/images/ai-model-logo/TongYi.svg",translationKey:"wan27imagepro",releaseDate:"April 2026",supportsResolution:!0,supportedResolutions:["1K","2K","4K"],defaultResolution:"2K",supportedSizes:["1:1","16:9","4:3","21:9","3:4","9:16"],supportsImageInput:!0,maxImageInputs:9,maxPromptLength:5e3,preferredProvider:"mulerouter",requiredProvider:"mulerouter",supportsNSFW:!0,isNew:!0},"z-image":{id:"z-image",name:"Z-Image Spicy Pro",credits:3,description:"MuleRouter z-image-spicy-pro text-to-image",logo:"/images/ai-model-logo/TongYi.svg",translationKey:"zimage",releaseDate:"May 2025",supportsResolution:!1,supportedSizes:["1:1","4:3","3:4","16:9","9:16"],supportsImageInput:!1,maxImageInputs:1,maxPromptLength:5e3,preferredProvider:"mulerouter",requiredProvider:"mulerouter",fallbackModels:[{modelKey:"wan27-image-pro",silent:!0}],supportsNSFW:!0},"qwen-image-edit-spicy":{id:"qwen-image-edit-spicy",name:"Qwen Image Edit Spicy",credits:3,description:"MuleRouter NSFW image-to-image editing",logo:"/images/ai-model-logo/TongYi.svg",translationKey:"qwen2image",releaseDate:"July 2026",supportsResolution:!1,supportedSizes:["1:1","4:3","3:4","16:9","9:16"],supportsImageInput:!0,maxImageInputs:1,maxPromptLength:5e3,preferredProvider:"mulerouter",fallbackModels:[{modelKey:"wan27-image-pro",silent:!0}],supportsNSFW:!0},"seedream-5.0":{id:"seedream/5-lite-text-to-image",name:"Seedream 5.0",credits:6,description:"Next generation Seedream model",logo:"/images/ai-model-logo/doubao.svg",translationKey:"seedream5",releaseDate:"February 2026",supportsResolution:!0,supportedResolutions:["1K","2K","4K"],defaultResolution:"1K",supportsImageInput:!0,maxImageInputs:14,fallbackModels:[{modelKey:"z-image",silent:!0}],supportsNSFW:!1,isNew:!0},"seedream-4.0":{id:"doubao-seedance-4-0",name:"Seedream 4.0",credits:4,description:"High quality image generation",logo:"/images/ai-model-logo/doubao.svg",translationKey:"seedream4",releaseDate:"September 2025",supportsResolution:!0,supportedResolutions:["1K","2K","4K"],defaultResolution:"1K",supportsImageInput:!0,maxImageInputs:10,supportedSizes:["1:1","4:3","3:4","16:9","9:16","3:2","2:3"],maxPromptLength:5e3,fallbackModels:[{modelKey:"z-image",silent:!0}],supportsSequentialGeneration:!0,supportsPromptOptimization:!0,supportsNSFW:!1},"seedream-4.5":{id:"doubao-seedance-4-5",name:"Seedream 4.5",credits:5,description:"Ultra high quality, supports 2K/4K",logo:"/images/ai-model-logo/doubao.svg",translationKey:"seedream45",supportsResolution:!0,supportedResolutions:["2K","4K"],defaultResolution:"2K",supportsImageInput:!0,maxImageInputs:14,supportedSizes:["1:1","4:3","3:4","16:9","9:16","2:3","3:2"],maxPromptLength:3e3,fallbackModels:[{modelKey:"z-image",silent:!0}],supportsSequentialGeneration:!0,supportsPromptOptimization:!0,supportsNSFW:!1},"grok-imagine":{id:"grok-imagine/text-to-image",name:"Grok Imagine",credits:2,description:"Photorealistic generation by Grok Imagine",logo:"/images/ai-model-logo/Grok-2.svg",translationKey:"grok",releaseDate:"December 2024",supportsResolution:!1,supportedSizes:["1:1","2:3","3:2","16:9","9:16"],supportsImageInput:!0,maxImageInputs:1,maxPromptLength:5e3,fallbackModels:[{modelKey:"z-image",silent:!0}],supportsNSFW:!1,isNew:!0},"gpt-4o":{id:"gpt-4o-image",name:"GPT-4o",credits:2,description:"OpenAI GPT-4o image generation",logo:"/images/ai-model-logo/Chat-GPT.svg",translationKey:"gpt4o",releaseDate:"March 2025",supportsResolution:!1,supportsImageInput:!0,maxImageInputs:5,maxPromptLength:1e3,fallbackModels:[{modelKey:"z-image",silent:!0}],supportedSizes:["1:1","2:3","3:2"]},"gpt-image-2":{id:"gpt-image-2",name:"GPT Image 2",credits:2,description:"OpenAI GPT Image 2 â high quality generation with 4K support",logo:"/images/ai-model-logo/Chat-GPT.svg",translationKey:"gptImage2",releaseDate:"April 2026",supportsResolution:!0,supportedResolutions:["1K","2K","4K"],defaultResolution:"1K",supportedSizes:["auto","1:1","3:2","2:3","4:3","3:4","5:4","4:5","16:9","9:16","2:1","1:2","21:9","9:21"],supportsImageInput:!0,maxImageInputs:16,preferredProvider:"apimart",isNew:!0}},o=Object.entries(t).map(([e,t])=>({modelKey:e,name:t.name,credits:t.credits,isNew:t.isNew,logo:t.logo})).sort((e,t)=>
1e.isNew&&!t.isNew?-1:!e.isNew&&t.isNew?1:e.credits-t.credits);function a(){return"z-image"}function i(e){return t[e]?.credits||6}e.s(["IMAGE_MODELS",0,t,"IMAGE_PRICING_COMPARISON",0,o,"getDefaultImageModel",()=>a,"getImageModelCredits",()=>i])}]);
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.