PageSourceSearch

https://aianime.io/_nuxt/CsMV4CeD.js

js aianime.io collected 2026-10-06 04:53:35 UTC 38,294 bytes, 1 lines download raw bytes

1import{u as oe,p as X,_ as Z,H as ee,G as ce,b as pe}from"./DpXM56c8.js";import{_ as fe,f as ne,r as d,g as P,C as ve,h as le,i as re,c,o as p,l as j,a as t,t as r,b,d as Y,z as we,D as ye,q as I,B as ae,m as de,p as te,y as be,e as ke,u as xe,n as Q}from"#entry";import{C as Te}from"./CzPKqKcK.js";import{u as _e,a as Ve,b as me}from"./mEGYuRU3.js";import{V as ie}from"./tRn4fVkB.js";import{s as F}from"./1yjO0eBA.js";import"./CGketc2-.js";import"./BCDhF72n.js";const Ie={key:0,class:"flex items-center justify-between p-4 border-b border-white/10"},Se={class:"text-lg font-semibold text-white"},Ee={class:"p-4"},ze={key:0,class:"text-lg font-semibold text-white mb-3"},Ce={class:"mb-4"},Me={class:"block text-sm font-medium text-white/80 mb-2"},Ae={class:"mb-4"},$e={class:"block text-sm font-medium text-white/80 mb-2"},Pe={class:"relative w-full"},je=["placeholder"],Le={class:"text-xs text-white/50 mt-1"},Ue={class:"mb-4"},He={class:"block text-sm font-medium text-white/80 mb-2"},De={key:0,class:"text-3xl mb-3"},qe=["src"],Fe={class:"text-white/60 text-sm"},We={class:"text-white/40 text-xs mt-1"},Re={class:"border-t border-white/10 bg-[#15193e]/95 backdrop-blur-sm"},Be=["disabled"],Ge={key:0,class:"flex items-center justify-center h-5 relative z-10"},Ne={key:1,class:"flex items-center justify-center gap-2 relative z-10"},Oe={key:0},Ye={key:1},Qe={class:"flex items-center"},Ke={class:"mt-3 p-2 glass-card pointer-events-none"},Je={class:"flex items-center justify-between text-xs"},Xe={class:"text-white/70"},Ze={class:"text-yellow-400 font-semibold"},ea={class:"w-full bg-white/10 rounded-full h-1.5 mt-1"},aa={__name:"ImageToVideoParams",props:{isGenerating:{type:Boolean,default:!1},showMobileParams:{type:Boolean,default:!1}},emits:["generate","close"],setup(K,{expose:S,emit:l}){const{t:x}=ne(),E=K,k=l,w=oe(),{error:y}=me(),V=d(0),T=d(null),v=d(null),s=d(null),o=d(!1),m=d(!1),z=d(null),A=_e(),C=Ve(),f=P(()=>V.value<768),M=P(()=>f.value?E.showMobileParams:!0),W=()=>{f.value&&k("close")},_=()=>{V.value=window.innerWidth},h=ve({model:"standard",prompt:""}),R=P(()=>[{value:"standard",label:x("imageToVideo.params.modelOptions.klingV1")}]),B={standard:20},L=P(()=>B[h.model]||10),U=()=>{T.value?.click()},H=async a=>{const e=a.target.files?.[0];e&&await $(e)},D=async a=>{a.preventDefault();const e=a.dataTransfer?.files?.[0];e&&e.type.startsWith("image/")&&await $(e)},$=async a=>{try{o.value=!0;const e=new FileReader;e.onload=i=>{v.value=i.target?.result},e.readAsDataURL(a),s.value=a}catch(e){console.error("Error processing image:",e),y(x("imageToVideo.messages.imageProcessError")||"图片处理失败")}finally{o.value=!1}},q=async()=>{if(!s.value){y(x("imageToVideo.messages.noImage")||"请先上传图片");return}if(!h.prompt.trim()){y(x("imageToVideo.messages.noPrompt")||"请输入提示词");return}const a=L.value,e=Math.max(0,Number(w.credits??0)),i=!!A.userStatus,n=Math.max(0,Number(A.userInfo?.user_credits??0));if(e<a){const u=a-e;if(!i){C.emit("open-login");return}if(n<u){C.emit("open-pricing");return}}const g={model:h.model,prompt:h.prompt,image:s.value};k("generate",g)},G=a=>{a.prompt!==void 0&&(h.prompt=a.prompt),a.model&&(h.model=a.model)},N=async a=>{v.value=a,o.value=!0;try{{const e=new Image;e.crossOrigin="anonymous",await new Promise((O,ue)=>{e.onload=O,e.onerror=ue,e.src=a});const i=document.createElement("canvas"),n=i.getContext("2d");i.width=e.naturalWidth,i.height=e.naturalHeight,n.drawImage(e,0,0);const g=await new Promise(O=>{i.toBlob(O,"image/jpeg",.95)});if(!g)throw new Error("Failed to convert image to blob");const u=a.split("."),J=u[u.length-1].split("?")[0].toLowerCase(),ge=["jpg","jpeg","png","webp"].includes(J)?J:"jpg",he=new File([g],`source-image.${ge}`,{type:g.type||"image/jpeg",lastModified:Date.now()});s.value=he}}catch(e){console.error("Error converting source image URL to file:",e),s.value=null,y(x("imageToVideo.messages.imageConversionError")||"图片转换失败,请重新上传",x("imageToVideo.messages.imageError")||"图片错误"),v.value=null}finally{o.value=!1}};return le(()=>{typeof window<"u"&&(V.value=window.innerWidth,window.addEventListener("resize",_),w.loadCredits())}),S({params:h,updateParams:G,setSourceImage:N}),re(()=>{typeof window<"u"&&window.removeEventListener("resize",_)}),(a,e)=>(p(),c("div",{class:I(["w-full border-r border-white/10 backdrop-blur-sm bg-[#15193e]/95 flex flex-col h-full md:relative md:bg-[#15193e]/80",[f.value?"fixed bottom-0 left-0 right-0 z-[70] transform transition-transform duration-300 ease-in-out":"",f.value&&!M.value?"translate-y-full":"translate-y-0"]])},[f.value?(p(),c("div",Ie,[t("p",Se,r(a.$t("imageToVideo.params.title")),1),t("button",{onClick:W,class:"w-8 h-8 flex items-center justify-center rounded-full bg-white/10 hover:bg-white/20 transition-colors"}
1,[...e[6]||(e[6]=[t("svg",{class:"w-5 h-5 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])])):j("",!0),t("div",{class:I(["flex-1 overflow-y-auto scrollbar-hide",{"max-h-[100vh]":f.value&&M.value}])},[t("div",Ee,[f.value?j("",!0):(p(),c("p",ze,r(a.$t("imageToVideo.params.title")),1)),t("div",Ce,[t("label",Me,[Y(r(a.$t("imageToVideo.params.model"))+" ",1),e[7]||(e[7]=t("span",{class:"text-red-500 ml-1"},"*",-1))]),b(Te,{modelValue:h.model,"onUpdate:modelValue":e[0]||(e[0]=i=>h.model=i),options:R.value},null,8,["modelValue","options"])]),t("div",Ae,[t("label",$e,[Y(r(a.$t("imageToVideo.params.prompt"))+" ",1),e[8]||(e[8]=t("span",{class:"text-red-500 ml-1"},"*",-1))]),t("div",Pe,[we(t("textarea",{ref_key:"promptTextarea",ref:z,"onUpdate:modelValue":e[1]||(e[1]=i=>h.prompt=i),placeholder:a.$t("imageToVideo.params.promptPlaceholder"),class:I(["w-full p-3 rounded-lg border border-white/20 bg-white/5 text-white placeholder-white/50 resize-none scrollbar-hide focus:outline-none focus:border-white transition-all duration-200",[m.value&&h.prompt.trim()?"h-32":"h-20"]]),onFocus:e[2]||(e[2]=i=>m.value=!0),onBlur:e[3]||(e[3]=i=>m.value=!1)},null,42,je),[[ye,h.prompt]])]),t("div",Le,r(h.prompt.length)+"/1500 "+r(a.$t("imageToVideo.params.promptLength")),1)]),t("div",Ue,[t("label",He,[Y(r(a.$t("imageToVideo.params.uploadImage"))+" ",1),e[9]||(e[9]=t("span",{class:"text-red-500 ml-1"},"*",-1))]),t("div",{onClick:U,onDrop:D,onDragover:e[4]||(e[4]=ae(()=>{},["prevent"])),onDragenter:e[5]||(e[5]=ae(()=>{},["prevent"])),class:"border-2 border-dashed border-white/20 rounded-lg p-6 text-center hover:border-white/40 transition-colors cursor-pointer"},[v.value?(p(),c("img",{key:1,src:v.value,alt:"Uploaded image",class:I(["max-w-full max-h-24 mx-auto mb-3 rounded-lg",{"opacity-50":o.value}])},null,10,qe)):(p(),c("div",De,"🎬")),t("p",Fe,r(v.value?a.$t("imageToVideo.params.uploadChange"):a.$t("imageToVideo.params.uploadText")),1),t("p",We,r(a.$t("imageToVideo.params.uploadFormat")),1)],32),t("input",{ref_key:"fileInput",ref:T,type:"file",accept:"image/*",onChange:H,class:"hidden"},null,544)])])],2),t("div",Re,[t("div",{class:I(["p-4",{"pb-8":f.value}])},[t("button",{onClick:q,disabled:!s.value||!h.prompt.trim()||E.isGenerating,class:"w-full generate-button py-3 text-base font-semibold relative overflow-hidden"},[E.isGenerating?(p(),c("span",Ge,[...e[10]||(e[10]=[de('<span class="wave" data-v-39f5d3a7></span><span class="wave" data-v-39f5d3a7></span><span class="wave" data-v-39f5d3a7></span><span class="wave" data-v-39f5d3a7></span><span class="wave" data-v-39f5d3a7></span>',5)])])):(p(),c("span",Ne,[f.value?(p(),c("span",Oe,r(a.$t("imageToVideo.params.generateMobile")),1)):(p(),c("span",Ye,r(a.$t("imageToVideo.params.generate")),1)),t("div",Qe,[e[11]||(e[11]=t("svg",{class:"w-4 h-4 text-yellow-400",fill:"currentColor",viewBox:"0 0 20 20"},[t("path",{"fill-rule":"evenodd",d:"M11.3 1.046A1 1 0 0112 2v5h4a1 1 0 01.82 1.573l-7 10A1 1 0 018 18v-5H4a1 1 0 01-.82-1.573l7-10a1 1 0 011.12-.38z","clip-rule":"evenodd"})],-1)),t("span",null,r(L.value),1)])]))],8,Be),t("div",Ke,[t("div",Je,[t("span",Xe,r(a.$t("imageToVideo.params.credits")),1),t("span",Ze,r(te(w).creditsDisplay),1)]),t("div",ea,[t("div",{class:"bg-gradient-to-r from-yellow-400 to-orange-400 h-1.5 rounded-full transition-all duration-300",style:be({width:`${te(w).creditsPercentage}%`})},null,4)])])],2)])],2))}},se=fe(aa,[["__scopeId","data-v-39f5d3a7"]]),ta={class:"hidden md:flex h-[90vh] text-white overflow-hidden max-h-[90vh]"},ia={class:"flex-1 flex bg-black/10 backdrop-blur-sm overflow-hidden"},sa={class:"w-96 flex-shrink-0 h-full overflow-y-auto scrollbar-hide"},oa={class:"flex-1 flex flex-col"},na={class:"md:hidden flex flex-col min-h-screen text-white overflow-hidden"},la={class:"flex items-center justify-between p-4 bg-[#15193e]/95 backdrop-blur-sm border-b border-white/10 z-40 flex-shrink-0 sticky top-0"},ra={class:"text-sm font-medium"},da={class:"text-sm font-medium"},ma={class:"flex-1 overflow-y-auto pb-20"},ga={class:"fixed bottom-0 left-0 right-0 p-4 bg-[#15193e]/95 backdrop-blur-sm border-t border-white/10 z-50 safe-area-bottom"},ha=["disabled"],ua={key:0,class:"wave-animation"},ca={key:1,class:"flex items-center justify-center relative z-10"},pa={class:"ml-3"},fa={key:2,class:"relative z-10"},va={class:"flex items-center justify-between p-4 border-b border-white/10"},wa={class:"text-lg font-semibold text-white"},ya={class:"flex items-center justify-between p-4 border-b border-white/10 flex-shrink-0"},ba={class:"text-lg font-semibold text-white"},ka={class:"flex-1 overflow-hidden"},Ma={__name:"index",setup(K){const{locale:S,t:l}=ne();ke();const x={"@context":"https://schema.org","@graph":[{"@type":"SoftwareApplication",name:"AI Anime Video Generator",headline:"Free AI Anime Video Generator: Photo to Video (No Watermark)",description:"Turn photos into stunning anime videos with text prompts. 100% Free & No Watermark. Control the motion instantly with our AI.",applicationCategory:"MultimediaApplication",operatingSystem:"Web, Browser",url:"https://aianime.io/image-to-vi
1deo/",image:"https://aianime.io/assets/image/image2video/step3.gif",offers:{"@type":"Offer",price:"0",priceCurrency:"USD",availability:"https://schema.org/InStock"},aggregateRating:{"@type":"AggregateRating",ratingValue:"4.8",ratingCount:"12580",bestRating:"5",worstRating:"1"},featureList:["Text to Motion Control","No Watermark","Free Daily Credits","Supports Anime & Manga Styles","Flicker-Free Technology"],author:{"@type":"Organization",name:"AI Anime",url:"https://aianime.io/"}},{"@type":"HowTo",name:"How to Turn Photos into Anime Videos",step:[{"@type":"HowToStep",name:"Upload Your Image",text:"Start by dragging and dropping your static anime art or photo. We support JPG and PNG formats.",image:"https://aianime.io/assets/image/image2video/step1.png",position:1},{"@type":"HowToStep",name:"Describe Motion with Text",text:"Enter a text prompt to control the animation (e.g., 'hair blowing in wind', 'smiling'). Choose your preferred AI model settings.",image:"https://aianime.io/assets/image/image2video/step2.jpeg",position:2},{"@type":"HowToStep",name:"Generate & Download",text:"Hit generate and watch the magic happen in seconds. Download the high-quality MP4 video instantly—100% free and without watermarks.",image:"https://aianime.io/assets/image/image2video/step3.gif",position:3}]},{"@type":"FAQPage",mainEntity:[{"@type":"Question",name:"Is this AI Anime Video Generator free to use?",acceptedAnswer:{"@type":"Answer",text:"Yes! You can use up to 60 free credits per day to create videos without spending a dime. Best of all, no registration is required to start."}},{"@type":"Question",name:"Can I use the generated videos commercially?",acceptedAnswer:{"@type":"Answer",text:"Absolutely. You own the commercial rights to the videos you generate. You can use them for YouTube monetization, social media ads, or marketing campaigns."}},{"@type":"Question",name:"Does it add a watermark?",acceptedAnswer:{"@type":"Answer",text:"No. We believe in creative freedom. Download your crisp, vibrant, and polished videos without any ugly watermarks ruining your art."}},{"@type":"Question",name:"Does this tool support NSFW AI video generation?",acceptedAnswer:{"@type":"Answer",text:"No. We are a strictly Safe-For-Work (SFW) platform. Our content safety filters automatically detect and block requests for NSFW AI video generation."}},{"@type":"Question",name:"Can I upload NSFW images to convert into video?",acceptedAnswer:{"@type":"Answer",text:"No. We do not allow NSFW image to video conversion. Our Terms of Service strictly prohibit the upload of adult content."}}]}]};xe({title:l("seo.imageToVideo.title"),meta:[{name:"description",content:l("seo.imageToVideo.description")},{property:"og:title",content:l("seo.imageToVideo.ogTitle")},{property:"og:description",content:l("seo.imageToVideo.ogDescription")},{property:"og:image",content:l("seo.imageToVideo.ogImage")}],link:[{rel:"canonical",href:l("seo.imageToVideo.href")}],script:[{type:"application/ld+json",children:JSON.stringify(x)}]});const E=d("image-to-video"),k=d(!1),w=d(!1),y=d(!1),V=d(0),T=d(null),v=d(null),s=d(null),o=d(null),m=d(!1),z=d(null),A=d({title:l("imageToVideo.display.title"),subtitle:l("imageToVideo.display.subtitle"),steps:[{title:l("imageToVideo.steps.step1.title"),description:l("imageToVideo.steps.step1.description")},{title:l("imageToVideo.steps.step2.title"),description:l("imageToVideo.steps.step2.description")},{title:l("imageToVideo.steps.step3.title"),description:l("imageToVideo.steps.step3.description")}],showcaseImages:["https://aianime.io/assets/image/image2video/step1.png","https://aianime.io/assets/image/image2video/step2.jpeg","https://aianime.io/assets/image/image2video/step3.gif"],dividerText:l("imageToVideo.display.dividerText"),examples:[{id:1,model:"standard",prompt:"A cinematic sci-fi scene of a pilot in a red suit standing before a towering giant mecha robot at sunrise, camera slowly dolly-in from behind the pilot, dust and sparks floating in the air, warm orange light reflecting on metal armor, epic atmosphere, realistic lighting, ultra-detailed, 8K cinematic style.",thumbnail:"https://aianime.io/assets/image/image2video/example1.jpeg",videoUrl:"https://aianime.io/assets/image/image2video/example1.mp4"},{id:2,model:"standard",prompt:"A cinematic fantasy scene of a fairy girl with glowing golden wings standing quietly in an enchanted forest. Soft sunlight filters through the trees, mist drifting in the air, camera slowly moves around her in a gentle orbit, her wings shimmer as they catch the light, magical dust floating around, serene and ethereal atmosphere, ultra-realistic, 8K fantasy cinematic lighting.",thumbnail:"https://aianime.io/assets/image/image2video/example2.jpeg",videoUrl:"https://aianime.io/assets/image/image2video/example2.mp4"},{id:3,model:"standard",prompt:"A cute anime catgirl with fluffy brown ears and big sparkling eyes lying on a soft pink blanket in a cozy bedroom. Warm morning sunlight streams through the window, dust particles float in the air, her cat ears twitch slightly, and her eyes blink softly. The camera slowly zooms in toward her face, showing a gentle smile and warm golden reflections in her eyes. Cozy, heartw
1arming, anime cinematic lighting, ultra-detailed, soft depth of field, pastel color tones.",thumbnail:"https://aianime.io/assets/image/image2video/example3.jpeg",videoUrl:"https://aianime.io/assets/image/image2video/example3.mp4"}],moreExamplesText:l("imageToVideo.display.moreExamplesText"),moreExamples:[{id:1,model:"standard",prompt:"A beautiful anime girl, smiling and making a peace sign under the summer night sky filled with fireworks. The fireworks burst and sparkle in the background, colorful reflections shimmer on her face and yukata. The camera slowly pans around her as soft watercolor-style sparkles drift through the air. Warm light flickers gently, painterly anime aesthetic, romantic festival atmosphere, 4K ultra-detailed.",thumbnail:"https://aianime.io/assets/image/image2video/moreExample1.jpeg?x-oss-process=image/resize,p_50",videoUrl:"https://aianime.io/assets/image/image2video/moreExample1.mp4"},{id:2,model:"standard",prompt:"A cinematic close-up of a beautiful nurse with long flowing red hair and red eyes, sitting gracefully with her legs crossed in a hospital room. Warm sunlight streams through the window, creating soft lens flares and gentle reflections on her latex gloves and black pantyhose. The camera slowly zooms in as she gives a kind, professional smile. Her hair subtly moves with the breeze, light particles floating in the air. Ultra-detailed, flat-color anime aesthetic with a photo-realistic touch, soft warm lighting, elegant cover illustration style.",thumbnail:"https://aianime.io/assets/image/image2video/moreExample2.webp?x-oss-process=image/resize,p_50",videoUrl:"https://aianime.io/assets/image/image2video/moreExample2.mp4"},{id:3,model:"standard",prompt:"A cinematic outdoor scene of a stylish anime girl standing under bright sunlight, official cover art style. Her thin legs and elegant silhouette are highlighted by soft lens flares and glowing reflections. The camera slowly zooms in, sunlight gently flickering across the frame. Her hair and clothes move slightly in the breeze. Flat-color anime aesthetic with photo-realistic lighting, clean background, warm tones, elegant and serene atmosphere, 4K ultra-detailed.",thumbnail:"https://aianime.io/assets/image/image2video/moreExample3.jpeg?x-oss-process=image/resize,p_50",videoUrl:"https://aianime.io/assets/image/image2video/moreExample3.mp4"},{id:4,model:"standard",prompt:"A cinematic Disney-Pixar-style animation of Skyler White standing confidently in a sleek black dress in a desert landscape. The camera slowly pans around her as golden sunlight breaks through dramatic rolling clouds, casting warm highlights on her face and dress. Her expression subtly shifts, eyes glinting with determination. The wind gently moves her hair and dress. Dust particles float through the glowing air, capturing a powerful, emotional Pixar cinematic atmosphere. Ultra-detailed, UHD, stylized lighting and color grading.",thumbnail:"https://aianime.io/assets/image/image2video/moreExample4.png?x-oss-process=image/resize,p_50",videoUrl:"https://aianime.io/assets/image/image2video/moreExample4.mp4"},{id:5,model:"standard",prompt:"A cinematic short animation of a beautiful anime girl with silver-gray gradient hair tied in a high ponytail, sitting in a quiet library bathed in warm light. The camera slowly moves closer to her face, capturing her smug smile and glossy pink lips. Her silver hair gently sways as soft light flickers through the window. Dust particles float in the air, and her eyes blink slowly with a confident, elegant expression. Very aesthetic, anime style, subtle motion, realistic lighting, masterpiece, best quality, UHD.",thumbnail:"https://aianime.io/assets/image/image2video/moreExample5.png?x-oss-process=image/resize,p_50",videoUrl:"https://aianime.io/assets/image/image2video/moreExample5.mp4"},{id:6,model:"standard",prompt:"A soft anime-style short video of a cheerful girl with short black hair and gray eyes, wearing a cardigan and carrying a bag outdoors. The camera gently moves around her as sunlight flickers through the trees, casting warm highlights on her hair and face. Her expression is calm and happy, and her bangs sway lightly in the breeze. The leaves rustle softly in the background, creating a peaceful and heartwarming atmosphere. Masterpiece, best quality, subtle motion, realistic anime lighting, UHD.",thumbnail:"https://aianime.io/assets/image/image2video/moreE
1xample6.png?x-oss-process=image/resize,p_50",videoUrl:"https://aianime.io/assets/image/image2video/moreExample6.mp4"},{id:7,model:"standard",prompt:"A cinematic anime-style short video of a girl with light blue eyes standing under a wide sky filled with drifting clouds and airplane contrails. The wind gently blows through her hair and clothes as she gazes afar, her expression calm and thoughtful. The camera slowly pans around her from the side, sunlight softly flickers through the clouds, creating a serene and airy atmosphere. Masterpiece, best quality, subtle motion, anime-realistic lighting, UHD, warm color grading.",thumbnail:"https://aianime.io/assets/image/image2video/moreExample7.png?x-oss-process=image/resize,p_50",videoUrl:"https://aianime.io/assets/image/image2video/moreExample7.mp4"},{id:8,model:"standard",prompt:"A cinematic anime-style short video of a confident blonde girl in a punk jacket standing in front of a vibrant graffiti wall. The camera slowly moves forward, emphasizing her bold pose and sharp expression. Neon lights softly flicker on the graffiti, creating dynamic reflections on her jacket. She slightly tilts her head and smirks, hands in pockets, exuding strong attitude and urban confidence. Vivid colors, comic shading, clean motion, masterpiece, best quality, UHD, anime cinematic lighting.",thumbnail:"https://aianime.io/assets/image/image2video/moreExample8.webp?x-oss-process=image/resize,p_50",videoUrl:"https://aianime.io/assets/image/image2video/moreExample8.mp4"},{id:9,model:"standard",prompt:"A cinematic anime-style short video of a confident girl with long brown hair in a half updo and blunt bangs, wearing a white t-shirt and green buruma, red bracelet, sitting on a scooter. The camera slowly moves forward from below, looking over her shoulder, emphasizing her slight smile and blue eyes. Her hair and t-shirt flutter gently in the wind as she rides, palm trees sway in the background under a vibrant blue sky with lens flare. Summer vibes, midriff and bare thighs visible, smooth motion, dynamic sunlight, realistic hair and cloth movement, vivid colors, lineart preserved, comic shading, masterpiece quality, best quality, UHD, cinematic anime lighting.",thumbnail:"https://aianime.io/assets/image/image2video/moreExample9.png?x-oss-process=image/resize,p_50",videoUrl:"https://aianime.io/assets/image/image2video/moreExample9.mp4"},{id:10,model:"standard",prompt:"A cinematic anime-style short video of a girl with black hair and cat ears, green eyes, sitting on a bench in front of a grand castle. She gently looks around and blinks, her hair and clothes flutter softly in the breeze. The camera slowly moves closer, slightly circling around her, emphasizing her calm and charming expression. Sunlight softly illuminates her face, the castle in the background slightly shimmering, clouds drifting across the sky. Smooth motion, natural animation, vibrant colors, lineart preserved, masterpiece quality, best quality, high-resolution, cinematic anime lighting.",thumbnail:"https://aianime.io/assets/image/image2video/moreExample10.png?x-oss-process=image/resize,p_50",videoUrl:"https://aianime.io/assets/image/image2video/moreExample10.mp4"},{id:11,model:"standard",prompt:"A cinematic anime-style short video of a cute girl with long flowing chestnut hair tied in a loose side ponytail, big sparkling amber eyes, and a gentle, slightly shy smile. She leans against a sun-drenched classroom window as soft afternoon light filters through the blinds, casting warm rays across her face. Her hair sways gently in the breeze, cherry blossom petals drift slowly outside the window, and she blinks and slightly tilts her head. The background shows detailed desks and a chalkboard. Smooth motion, natural animation, vibrant colors, anime style, high detail, filmic lighting, masterpiece quality, best quality, high-resolution, cinematic anime lighting.",thumbnail:"https://aianime.io/assets/image/image2video/moreExample11.jpeg?x-oss-process=image/resize,p_50",videoUrl:"https://aianime.io/assets/image/image2video/moreExample11.mp4"},{id:12,model:"standard",prompt:"A cinematic anime-style short video of a magical girl with long, flowing silver hair glowing with starlight, big sparkling amethyst eyes, and a gentle, knowing smile. She holds a delicate crystal staff from which tiny light orbs float and orbit around her. She slowly lifts and moves the staff, causing soft ethereal light to ripple across the enchanted forest. Giant glowing mushrooms and bioluminescent flowers sway gently, and pastel-colored twilight sky changes subtly as clouds drift. Floating islands in the distance shimmer faintly. Smooth motion, natural animation, vibrant colors, anime style, high detail, fantasy art, masterpiece qual
1ity, best quality, high-resolution, cinematic anime lighting.",thumbnail:"https://aianime.io/assets/image/image2video/moreExample12.png?x-oss-process=image/resize,p_50",videoUrl:"https://aianime.io/assets/image/image2video/moreExample12.mp4"},{id:13,model:"standard",prompt:"A cinematic anime-style short video of a cute girl with long, flowing blonde hair under a straw hat, big sparkling emerald green eyes, and a gentle, sunny smile. She walks slowly through a sunlit field of wildflowers, holding a small basket of freshly picked herbs. Her hair and dress sway gently in the breeze, petals float softly around her, and she occasionally looks down to inspect the flowers. Soft dappled sunlight filters through nearby trees, creating warm, peaceful lighting. Background shows a rustic cottage and rolling hills in the distance. Smooth motion, natural animation, pastel colors, whimsical Ghibli-style, high detail, masterpiece quality, best quality, high-resolution, cinematic anime lighting.",thumbnail:"https://aianime.io/assets/image/image2video/moreExample13.png?x-oss-process=image/resize,p_50",videoUrl:"https://aianime.io/assets/image/image2video/moreExample13.mp4"},{id:14,model:"standard",prompt:"A cinematic anime-style short video of a cute girl with long, flowing white hair, big sparkling ruby eyes, and a gentle, cozy smile. Her cheeks are flushed pink from the cold. She’s bundled up in a thick red wool coat and a knitted scarf, holding a warm mug with both hands. Steam rises softly from the mug as she exhales a faint breath of warmth. She gently looks outside the frosted window, where snowflakes slowly fall. The warm indoor light flickers softly, casting a golden glow that contrasts with the cool blue tones outside. A detailed cozy room background with books, a sofa, and frosted glass. Smooth motion, natural animation, pastel colors, warm and cold contrast, slice-of-life anime style, high detail, masterpiece quality, best quality, high-resolution, cinematic anime lighting.",thumbnail:"https://aianime.io/assets/image/image2video/moreExample14.png?x-oss-process=image/resize,p_50",videoUrl:"https://aianime.io/assets/image/image2video/moreExample14.mp4"},{id:15,model:"standard",prompt:"A cinematic anime-style short video of a serene girl with long, flowing wavy sky-blue hair, big sparkling sapphire eyes, and a gentle, peaceful smile. She gracefully walks across soft, fluffy clouds during a glowing sunset, her white and blue dress fluttering lightly in the wind. The setting sun casts a dreamy gradient of pastel pink, purple, and orange across the sky. Her hair flows with the breeze as she looks up at the sky, the light reflecting in her eyes. The vast cloud sea beneath her slowly shifts, with distant floating islands shimmering in golden light. Smooth motion, ethereal atmosphere, natural animation, soft diffuse lighting, high detail, Makoto Shinkai style, Weathering With You aesthetic, masterpiece quality, best quality, high-resolution, cinematic anime lighting.",thumbnail:"https://aianime.io/assets/image/image2video/moreExample15.png?x-oss-process=image/resize,p_50",videoUrl:"https://aianime.io/assets/image/image2video/moreExample15.mp4"}]}),C=d(null),f=oe(),{error:M}=me(),W={i18nKey:"imageToVideoLanding",theme:"image-to-video",links:{start:"#",cta:"#"},features:[{key:"features1",icon:'<svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"></path></svg>'},{key:"features2",icon:'<svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"></path></svg>'},{key:"features3",icon:'<svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg>'},{key:"features4",icon:'<svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 10l-2 1m0 0l-2-1m2 1v2.5M20 7l-2 1m2-1l-2-1m2 1v2.5M14 4l-2-1-2 1M4 7l2-1M4 7l2 1M4 7v2.5M12 21l-2-1m2 1l2-1m-2 1v-2.5M6 18l-2-1v-2.5M18 18l2-1v-2.5"></path></svg>'}],faqs:[{key:"faqs1"},{key:"faqs2"},{key:"faqs3"},{key:"faqs4"},{key:"faqs5"},{key:"faqs6"},{key:"faqs7"},{key:"faqs8"}]},_=P(()=>V.value<768),h=()=>{V.value=window.innerWidth};le(async()=>{if(await F("ImageToVideo","open_image_to_video","",null),typeof window<"u"&&(V.value=window.innerWidth,window.addEventListener("resize",h)),await Q(),typeof window<"u"){const a=sessionStorage.getItem("landing_prompt");if(a){await Q();const e=_.value?v.value:T.value;e&&e.updateParams&&e.updateParams({prompt:a}),_.value&&(k.value=!0),sessionStorage.removeItem("landing_prompt")}}await L()}),re(()=>{typeof window<"u"&&window.removeEventListener("resize",h)});const R=()=>{},B=()=>{w.value=!1},L=async()=>{try{await Q();let a=[];s.value&&(a=s.value.getLoadingTasks()),a.length===0&&o.value&&(a=o.value.getLoadingTasks());for(const e of a)if(e.id){if(Date.now()-e.timestamp>864e5)continue;s.value&&s.value.addLoadingItem(e.id),o.value&&o.value.addLoadingItem(e.id),X(e.id,n=>{s.value&&s.value.updateItemProgress(e.id,n),o.value&&o.value.updateItemProgress(e.id,n)}).then(n=>{if(n.code===200&&n.result?.image_url&&n.result.image_url.length>0){const g=n.result.image_url[0];s.value&&s.value.completeItem(e.id,g),o.value&&o.value.completeItem(e.id,g)}else{const g=n.message||"Task failed";s.value&&s.value.failItem(e.id,g),o.value&&o.value.failItem(e.id,g)}}).catch(n=>{s.value&&s.value.failItem(e.id,n.message||"Polling failed"),o.value&&o.value.failItem(e.id,n.message||"Polling failed")})}}catch(a){console.error("Error restoring loading tasks:",a)}},U=async(a,e)=>{try{await F("ImageToVideo","generate","",null);const i=await pe(a);if(i.code===429){const n=S.value,g=typeof i.message=="object"?i.message[n]||i.message.en||l("imageToVideo.messages.dailyLimitReached")||"已达到每日生成限制":i.message||l("imageToVideo.messages.dailyLimitReached")||"已达到每日生成限制";s.value&&s.value.removeLoadingItem(e),o.value&&o.value.removeLoadingItem(e),M(l("imageToVideo.messages.dailyLimitReached")),f.saveCredits(0,f.maxCredits),m.value=!1;return}if(i.code===200&&i.result?.job_id){const n=i.result.job_id;s.value&&s.value.removeLoadingItem(e),o.value&&o.value.removeLoadingItem(e),s.value&&s.value.addLoadingItem(n,!0),o.value&&o.value.addLoadingItem(n,!0),await f.updateCredits(i);const g=await X(n,u=>{s.value&&s.value.updateItemProgress(n,u),o.value&&o.value.updateItemProgress(n,u)});if(g.code===200&&g.result?.image_url&&g.result.image_url.length>0){const u=g.result.image_url[0];z.value=u,await F("ImageToVideo","generate_succeed",`realTaskId: ${n};videoUrl: ${u}`,null),s.value&&s.value.completeItem(n,u),o.value&&o.value.completeItem(n,u)}else{const u=g.message||"Task failed";throw await F("ImageToVideo","generate_failed","realTaskId:"+n,null),s.value&&s.value.failItem(n,u),o.value&&o.value.failItem(n,u),new Error(u)}}else{const n=typeof i.message=="object"?i.message[S.value]||i.message.en||"Generate failed":i.message||"Generate failed";throw new Error(n)}}finally{m.value=!1}},H=async a=>{C.value={apiParams:a},_.value&&(k.value=!1);const e=Date.now().toString();s.value&&s.value.addLoadingItem(e,!1),o.value&&o.value.addLoadingItem(e,!1),m.value=!0;try{await U(a,e)}catch(i){m.value=!1;const n=typeof i.message=="object"?i.message[S.value]||i.message.en||l("imageToVideo.messages.generateFailed")||"生成失败":i.message||l("imageToVideo.messages.generateFailed")||"生成失败";M(n,l("imageToVideo.messages.taskFailed")||"任务失败"),s.value&&s.value.failItem(e,i.message||l("imageToVideo.messages.generateFailed")||"生成失败"),o.value&&o.value.failItem(e,i.message||l("imageToVideo.messages.generateFailed")||"生成失败")}},D=a=>{T.value&&a.thumbnail&&(T.value.setSourceImage(a.thumbnail),T.value.updateParams({model:a.model,prompt:a.prompt})),v.value&&a.thumbnail&&(v.value.setSourceImage(a.thumbnail),v.value.updateParams({model:a.model,prompt:a.prompt}),k.value=!0)},$=()=>{z.value=null,m.value=!1},q=async()=>
1{if(!C.value)return;const a=Date.now().toString();s.value&&s.value.addLoadingItem(a,!1),o.value&&o.value.addLoadingItem(a,!1),m.value=!0;try{await U(C.value.apiParams,a)}catch(e){console.error("Regeneration failed:",e),m.value=!1;const i=typeof e.message=="object"?e.message[S.value]||e.message.en||l("imageToVideo.messages.regenerateFailed")||"重新生成失败":e.message||l("imageToVideo.messages.regenerateFailed")||"重新生成失败";M(i,l("imageToVideo.messages.taskFailed")||"任务失败"),s.value&&s.value.failItem(a,e.message||l("imageToVideo.messages.regenerateFailed")||"重新生成失败"),o.value&&o.value.failItem(a,e.message||l("imageToVideo.messages.regenerateFailed")||"重新生成失败")}},G=a=>{console.log("History item selected:",a)},N=a=>{y.value=!1,console.log("Mobile history item selected:",a)};return(a,e)=>(p(),c("div",null,[t("div",ta,[b(Z,{"active-tab":E.value,onTabChange:R},null,8,["active-tab"]),t("div",ia,[t("div",sa,[b(se,{ref_key:"paramsRef",ref:T,"is-generating":m.value,onGenerate:H},null,8,["is-generating"])]),t("div",oa,[b(ie,{"result-video":z.value,"is-generating":m.value,"display-data":A.value,onSelectExample:D,onClearResult:$,onRegenerate:q},null,8,["result-video","is-generating","display-data"])])]),b(ee,{onSelectItem:G,ref_key:"historySidebarRef",ref:s},null,512)]),t("div",na,[t("div",la,[t("button",{onClick:e[0]||(e[0]=i=>w.value=!0),class:"flex items-center gap-2 px-3 py-2 bg-white/10 hover:bg-white/20 rounded-lg transition-colors"},[e[8]||(e[8]=t("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 12h16M4 18h16"})],-1)),t("span",ra,r(a.$t("imageToVideo.title")||"Image to Video"),1)]),t("button",{onClick:e[1]||(e[1]=i=>y.value=!0),class:"flex items-center gap-2 px-3 py-2 bg-white/10 hover:bg-white/20 rounded-lg transition-colors"},[e[9]||(e[9]=t("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})],-1)),t("span",da,r(a.$t("imageToVideo.mobile.history")||"历史"),1)])]),t("div",ma,[b(ie,{"result-video":z.value,"is-generating":m.value,"display-data":A.value,onSelectExample:D,onClearResult:$,onRegenerate:q},null,8,["result-video","is-generating","display-data"])]),t("div",ga,[t("button",{onClick:e[2]||(e[2]=i=>k.value=!0),disabled:m.value,class:"w-full py-3.5 bg-gradient-to-r from-pink-500 to-purple-500 hover:from-pink-600 hover:to-purple-600 disabled:from-gray-500 disabled:to-gray-600 disabled:cursor-not-allowed rounded-xl text-white font-semibold text-base transition-all duration-200 shadow-lg relative overflow-hidden mobile-generate-button active:scale-95"},[m.value?j("",!0):(p(),c("div",ua,[...e[10]||(e[10]=[t("div",{class:"wave-line wave-1"},null,-1),t("div",{class:"wave-line wave-2"},null,-1),t("div",{class:"wave-line wave-3"},null,-1)])])),m.value?(p(),c("span",ca,[e[11]||(e[11]=de('<span class="mobile-wave"></span><span class="mobile-wave"></span><span class="mobile-wave"></span><span class="mobile-wave"></span><span class="mobile-wave"></span>',5)),t("span",pa,r(a.$t("imageToVideo.params.generating")||"生成中..."),1)])):(p(),c("span",fa,r(a.$t("imageToVideo.mobile.generate")||"生成视频"),1))],8,ha)]),b(se,{ref_key:"mobileParamsRef",ref:v,"show-mobile-params":k.value,"is-generating":m.value,onClose:e[3]||(e[3]=i=>k.value=!1),onGenerate:H},null,8,["show-mobile-params","is-generating"])]),w.value&&_.value?(p(),c("div",{key:0,onClick:e[4]||(e[4]=i=>w.value=!1),class:"fixed inset-0 bg-black/50 z-40 md:hidden"})):j("",!0),y.value&&_.value?(p(),c("div",{key:1,onClick:e[5]||(e[5]=i=>y.value=!1),class:"fixed inset-0 bg-black/50 z-40 md:hidden"})):j("",!0),t("div",{class:I(["md:hidden fixed inset-y-0 left-0 w-80 bg-[#15193e]/95 backdrop-blur-sm border-r border-white/10 z-[70] transform transition-transform duration-300 ease-in-out",w.value?"translate-x-0":"-translate-x-full"])},[t("div",va,[t("p",wa,r(a.$t("imageToVideo.mobile.tabs")||"功能"),1),t("button",{onClick:e[6]||(e[6]=i=>w.value=!1),class:"p-2 hover:bg-white/10 rounded-lg transition-colors"}
1,[...e[12]||(e[12]=[t("svg",{class:"w-5 h-5 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),b(Z,{"active-tab":E.value,onTabChange:B},null,8,["active-tab"])],2),t("div",{class:I(["md:hidden fixed inset-y-0 right-0 w-80 bg-[#15193e]/95 backdrop-blur-sm border-l border-white/10 z-[9999] transform transition-transform duration-300 ease-in-out flex flex-col",y.value?"translate-x-0":"translate-x-full"])},[t("div",ya,[t("p",ba,r(a.$t("imageToVideo.mobile.history")||"历史记录"),1),t("button",{onClick:e[7]||(e[7]=i=>y.value=!1),class:"p-2 hover:bg-white/10 rounded-lg transition-colors"},[...e[13]||(e[13]=[t("svg",{class:"w-5 h-5 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),t("div",ka,[b(ee,{onSelectItem:N,ref_key:"mobileHistorySidebarRef",ref:o},null,512)])],2),b(ce,{config:W})]))}};export{Ma as default};

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.