PageSourceSearch

https://skyvid.ai/_next/static/chunks/3992-b68f088a3540ee8f.js

js skyvid.ai collected 2026-10-05 12:37:38 UTC 53,329 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3992],{2503:(e,t,o)=>{var i,a,r,n,s,l,d,c,m,u,p,h,g,f,v,w,y;o.d(t,{bs:()=>I,ym:()=>A,zU:()=>b});let b="/app/assets",I={t2v:"/text-to-video",i2v:"/image-to-video",v2v:"/video-to-video",t2i:"/text-to-image",i2i:"/image-to-image","lip-sync":"/lip-sync"};function A(e){return"t2i"===e||"i2i"===e}let E={"text-to-video":{slug:"text-to-video",mode:"t2v",title:"Text to Video",seoTitle:"AI Text to Video Generator | Create Videos from Prompts",description:"Create AI videos from text prompts with SkyVid. Compare supported video models, choose aspect ratio, quality, and duration, then generate in one workspace.",keywords:["text to video","AI text to video generator","generate video from text","AI video generator"],eyebrow:"AI video creation from text",h1:"AI Text to Video Generator",intro:["Turn a written scene into a video without building a timeline by hand. Describe the subject, action, environment, camera movement, lighting, and mood, then choose a supported model and output settings in SkyVid.","Use the same workspace to compare available model options, see the credit cost before submitting, and keep the generated result with your other assets."],modelsTitle:"Create videos with supported AI video models",modelsIntro:"Choose from the video models currently available in the SkyVid workspace. Each model exposes its own quality, aspect ratio, and duration options, so the controls update when you switch models.",stepsTitle:"How to turn text into an AI video",steps:[{title:"Describe the shot",description:"Write the subject, action, environment, lighting, visual style, and camera direction you want to see."},{title:"Choose model and settings",description:"Select an available model, then choose a supported quality tier, aspect ratio, and duration."},{title:"Generate and refine",description:"Review the clip and adjust one part of the prompt at a time to improve motion, framing, or detail."}],examplesTitle:"Text to video examples and prompt directions",examplesIntro:"A useful video prompt reads like a short shot brief. These examples show how to combine subject, movement, setting, camera, and light for different formats.",examples:[{title:"Desert fashion shot",category:"Cinematic portrait",description:"A confident single-subject clip with a simple walk cycle and camera movement that keeps the composition readable.",prompt:"A fashion model walks through warm desert dunes, wind moving her hair and clothing, medium tracking shot, low afternoon sun, crisp editorial color, smooth natural motion.",media:{type:"video",src:"/samples/demo-seedance-2.mp4",poster:"/samples/demo-seedance-2-poster.jpg",alt:"AI-generated fashion video in a desert"}},{title:"Fantasy character reveal",category:"Stylized animation",description:"Use one clear action and environmental motion so the character remains the visual focus.",prompt:"A fantasy heroine turns toward the horizon as luminous blue butterflies circle her, fabric and hair drifting in a gentle breeze, slow orbiting camera, soft cloud light, polished animated-film style.",media:{type:"video",src:"/samples/demo1.mp4",poster:"/samples/demo1-poster.jpg",alt:"AI-generated fantasy character with luminous butterflies"}},{title:"Surreal landscape",category:"Vertical social clip",description:"Vertical framing works best when the prompt names a strong central subject and a simple camera path.",prompt:"A tiny white house sits alone on rolling green cliffs at sunrise, thin smoke rises from the chimney, slow aerial push forward, quiet surreal mood, vertical composition, soft natural haze.",media:{type:"video",src:"/samples/demo2.mp4",poster:"/samples/demo2-poster.jpg",alt:"AI-generated vertical video of a house on surreal green cliffs"}},{title:"Studio product reveal",category:"Product concept",description:"Define the product material, light movement, camera path, and final frame instead of adding unrelated scene 
1changes.",prompt:"A matte black wireless speaker on a dark glass plinth, a narrow rim light sweeps across the surface, slow 30-degree camera orbit, subtle mist, premium studio commercial, end on a centered hero frame."}],useCasesTitle:"What can you create from a text prompt?",useCases:[{title:"Social video concepts",description:"Test vertical hooks, visual ideas, and short sequences before committing to a full production workflow."},{title:"Product and campaign shots",description:"Explore product reveals, lighting directions, and campaign scenes from a compact visual brief."},{title:"Storyboards and previsualization",description:"Turn written beats into moving references for framing, pacing, and camera direction."},{title:"Cinematic experiments",description:"Try locations, moods, lenses, and camera movement without assembling footage first."}],guide:{title:"How to write a better text to video prompt",intro:"Start with the visible action, then add only the details that change the shot. A clear sequence is easier to control than a long list of disconnected adjectives.",formula:"Subject + action + environment + camera + lighting + visual style",items:[{title:"Name one main action",description:"Short clips are more stable when the subject has one understandable action and a clear ending state."},{title:"Direct the camera explicitly",description:"Use terms such as static wide shot, slow push-in, tracking shot, handheld close-up, or gentle orbit."},{title:"Describe light and material",description:"Specific light direction and surface qualities usually guide the look more effectively than broad quality words."}]},constraintsTitle:"Text to video settings explained",constraintsIntro:"The workspace only shows combinations supported by the selected model. Check the live Generate button for the exact credit cost of the current configuration.",constraints:[{label:"Prompt length",value:"Up to 5,000 characters for video prompts."},{label:"Aspect ratio",value:"Landscape, vertical, square, and other ratios vary by model."},{label:"Duration",value:"Available clip lengths update when the selected model changes."},{label:"Credits",value:"The required credits are shown before you submit a generation."}],relatedArticles:[{title:"How to generate text-to-video with Seedance 2.0",href:"/blog/how-to-generate-text-to-vi
1deo-seedance-2-0"},{title:"How to write Veo 3.1 prompts",href:"/blog/how-to-write-veo-3-1-prompts"}],faq:[{q:"What is text to video generation?",a:"Text to video generation uses an AI model to create a moving clip from a written description of the subject, scene, action, camera, and style."},{q:"What should I include in a text to video prompt?",a:"Start with the subject and its main action, then add the environment, camera movement, lighting, and visual style. One clear shot direction is usually easier to control than several unrelated actions."},{q:"Which video models can I use in SkyVid?",a:"The model selector shows the video models currently enabled for new generations. SkyVid updates the available settings when you choose a different model."},{q:"Which aspect ratios and durations are available?",a:"Supported ratios and durations depend on the selected model. The generator only displays options accepted by that model."},{q:"How are credits calculated before generation?",a:"Credits depend on the selected model, quality tier, duration, and input mode. The Generate button shows the current cost before submission."},{q:"Do I need to log in before I configure a video?",a:"You can browse models and configure text, quality, ratio, and duration on the public page. SkyVid asks you to log in when you submit the generation."}]},"image-to-video":{slug:"image-to-video",mode:"i2v",title:"Image to Video",seoTitle:"AI Image to Video Generator | Animate Photos with AI",description:"Create AI video from images, videos, or audio. Mention references with @, then choose the model, aspect ratio, quality, and duration.",keywords:["image to video","AI image to video generator","animate photo with AI","turn image into video"],eyebrow:"Animate a still image with AI",h1:"AI Image to Video Generator",intro:["Upload portraits, product photos, illustrations, motion clips, or audio cues and describe how they should guide the result. Use @ mentions to connect a prompt instruction to a specific reference.","Choose a supported video model, output ratio, quality, and duration before generating. Seedance 2.0 accepts multiple references instead of treating the first two images as fixed first and last frames."],modelsTitle:"Animate images with supported AI video models",modelsIntro:"The Image to Video model list is filtered to reference-guided workflows. Quality, ratio, duration, and credit cost update with the selected model.",stepsTitle:"How to turn an image into a video",steps:[{title:"Upload reference material",description:"Add the images, videos, or audio that should guide identity, composition, motion, rhythm, or sound."},{title:"Describe the motion",description:"Separate subject movement, camera movement, environmental motion, speed, and the intended ending state."},{title:"Choose settings and generate",description:"Select a compatible model, ratio, quality, and duration, then review how closely the clip preserves the source."}],examplesTitle:"Image to video motion prompt ideas",examplesIntro:"The source image already defines the look. Use the prompt to direct motion rather than redescribing every visible detail.",examples:[{title:"Portrait with restrained movement",category:"Portrait",description:"Small facial and camera movements usually preserve identity and composition better than several large actions at once.",prompt:"She looks toward the camera and blinks naturally, a light breeze moves a few strands of hair, slow camera push-in, calm expression, keep the face and background consistent."},{title:"Product orbit",category:"Product",description:"Keep the object fixed while directing a controlled camera path and a simple lighting change.",prompt:"The product remains centered and unchanged, slow clockwise camera orbit, a soft highlight travels across the surface, subtle background haze, end on the original front angle."},{title:"Illustration brought to life",category:"Illustration",description:"Animate hair, fabric, particles, and the camera while keeping the character design readable.",prompt:"Her hair and dress move gently in the wind as glowing butterflies pass around her, slow camera arc from behind to three-quarter view, preserve the character design and pastel sky.",media:{type:"video",src:"/samples/demo1.mp4",poster:"/samples/demo1-poster.jpg",alt:"Animated fantasy illustration with butterflies"}},{title:"Landscape atmosphere",category:"Environment",description:"Layer subtle environmental movement with one slow camera direction for a stable scenic clip.",prompt:"Clouds drift slowly from left to right, grass ripples in waves, chimney smoke rises and bends with the wind, gentle aerial push toward the house, preserve the vertical composition.",media:{type:"video",src:"/samples/demo2.mp4",poster:"/samples/demo2-poster.jpg",alt:"Animated landscape of a house on green cliffs"}}],useCasesTitle:"Which images can you animate?",useCases:[{title:"Portraits and character art",description:"Add restrained facial, hair, clothing, and camera movement to a clear single-subject image."},{title:"Product photography",description:"Create short product reveals with controlled camera motion, lighting, and atmosphere."},{title:"Illustrations and concept frames",description:"Introduce environmental motion and depth while preserving the original visual direction."},{title:"Storyboard frames",description:"Test motion, pacing, and camera ideas from an approved composition before production."}],guide:{title:"How to write an image to video motion prompt",intro:"Tell the model what should move, how the camera should move, and what must remain stable. Motion language should complement the source frame.",formula:"Subject motion + camera motion + environment motion + speed + ending state",items:[{title:"Separate three kinds of motion",description:"Describe the subject, camera, and environment independently so the model can interpret each direction."},{title:"Match movement to the pose",description:"A seated portrait, close product shot, and wide landscape each support different motion ranges."},{title:"State what should stay consistent",description:"Name the face, product shape, composition, or background elements that should not change."}]},constraintsTitle:"Image to video input and output settings",constraintsIntro:"Seedance reference limits are validated before upload, while output ratio, quality, duration, and credits depend on the selected model.",constraints:[{label:"Reference images",value:"Up to 9 JPG, PNG, or WebP images; aspect ratio up to 2.5."},{label:"Video and audio",value:"Up to 3 MP4/MOV videos and 3 MP3/WAV audio files; 2–15s each and 15s total per type."},{label:"Prompt length",value:"Up to 5,000 characters for the motion prompt."},{label:"Output settings",value:"Aspect ratio, quality, and duration update by model."}
1],relatedArticles:[{title:"Image-to-video AI: the complete guide",href:"/blog/image-to-video-ai-complete-guide"},{title:"How to make image-to-video with Seedance 2.0",href:"/blog/how-to-make-image-to-video-seedance-2-0"}],faq:[{q:"What is image to video generation?",a:"Image to video generation uses a still image as the visual starting point for an AI-generated clip. A motion prompt directs the subject, camera, and environment over time."},{q:"What images work best for image to video?",a:"Use a clear image with a readable subject, intentional composition, and enough detail. Motion that fits the pose and framing is usually easier to preserve."},{q:"Will the generated video preserve my original image?",a:"The model uses the image as its starting reference, but preservation varies with the model and requested motion. Smaller, specific movements generally reduce unwanted changes."},{q:"How should I describe camera and subject motion?",a:"Describe them separately. For example, specify a slow subject turn, a gentle camera push-in, and light background movement, then state what should remain consistent."},{q:"Which reference formats are supported?",a:"Seedance 2.0 accepts JPG, PNG, and WebP images, MP4 and MOV videos, and MP3 and WAV audio in the reference uploader."},{q:"Which aspect ratios and durations can I choose?",a:"The available aspect ratios and durations depend on the selected video model. The generator updates the controls to show supported combinations."}]},"video-to-video":{slug:"video-to-video",mode:"v2v",title:"Video to Video",seoTitle:"AI Video to Video Generator | Restyle Existing Footage",description:"Transform existing footage with SkyVid's AI video to video generator. Upload reference videos, describe a new look, and create a restyled clip with Seedance.",keywords:["video to video","AI video to video generator","AI video style transfer","restyle video with AI"],eyebrow:"Transform existing footage with AI",h1:"AI Video to Video Generator",intro:["Upload existing footage and describe how you want it reinterpreted. SkyVid uses the reference clip for motion, timing, framing, and scene context while your prompt directs the new visual treatment.","Use Video to Video for controlled restyling rather than generating every movement from scratch. Choose Seedance 2.0 or Seedance 2.0 Mini, set the output format, review the credit cost, and generate in the same workspace."],modelsTitle:"Transform video with supported Seedance models",modelsIntro:"The Video to Video workspace currently supports Seedance 2.0 and Seedance 2.0 Mini. Model selection updates the available quality, aspect ratio, duration, and credit cost before generation.",stepsTitle:"How to transform a video with AI",steps:[{title:"Upload reference footage",description:"Add one to three MP4 or MOV clips whose movement, framing, or timing should guide the new video."},{title:"Describe the transformation",description:"Write the target style, subject treatment, environment, lighting, and the details that should stay consistent."},{title:"Choose settings and generate",description:"Select the model, quality, ratio, and duration, then review the result and refine one direction at a time."}],examplesTitle:"Video to video prompt templates",examplesIntro:"A useful transformation prompt separates what the source clip already provides from what the output should change. Start with preservation, then add a focused visual direction.",examples:[{title:"Cinematic environment restyle",category:"Cinematic look",description:"Keep the original performance and camera path while changing the location, atmosphere, and light.",prompt:"Preserve the person's movement, timing, and camera framing. Reimagine the scene as a rain-soaked neon street at night, cyan and amber reflections, soft atmospheric haze, realistic cinematic lighting, consistent face and clothing.",media:{type:"video",src:"/samples/video-to-video-sample.mp4",poster:"/samples/video-to-video-sample.jpg",alt:"AI video to video transformation example"}},{title:"Animated illustration style",category:"Stylized video",description:"Translate live footage into a graphic medium without introducing unrelated movement.",prompt:"Keep the source motion, shot order, and subject positions. Render the full clip as a hand-painted animation with visible brush texture, restrained navy and coral palette, clean silhouettes, and stable details between frames."},{title:"Product campaign variation",category:"Marketing",description:"Protect product identity while testing a new set, surface, and lighting system.",prompt:"Preserve the product shape, logo placement, camera motion, and edit timing. Replace the set with dark volcanic stone and a reflective black surface, cool rim light, premium studio commercial, no extra objects or text."},{title:"Dance and performance treatment",category:"Performance",description:"Let the source define choreography while the prompt changes the art direction around it.",prompt:"Keep the dancer's choreography, body proportions, rhythm, and camera movement. Transform the scene into a bold cut-paper animation with layered shadows, lime and cobalt shapes, smooth temporal consistency, and no added performers."}],useCasesTitle:"What can you create with video to video AI?",useCases:[{title:"Style transfer for social clips",description:"Turn existing short footage into a distinctive animated, illustrated, or cinematic visual treatment."},{title:"Campaign and product variations",description:"Reuse a strong camera move while exploring new sets, lighting directions, colors, and materials."},{title:"Dance and performance videos",description:"Use recorded choreography and timing as the motion reference for a new art direction."},{title:"Previsualization and look development",description:"Test how the same blocking and camera path read across different visual worlds before production."}],guide:{title:"How to write a better video transformation prompt",intro:"Treat the uploaded video as the motion plan. Tell the model what to preserve, what to replace, and how the new look should remain coherent from frame to frame.",formula:"Preserve + transform + visual style + lighting + consistency limits",items:[{title:"Name what must stay",description:"Specify the motion, face, product shape, shot order, camera path, or timing that should remain recognizable."}
1,{title:"Choose one visual direction",description:"Define a coherent medium, palette, environment, and lighting system instead of combining unrelated styles."},{title:"Control unwanted changes",description:"State what should not appear, such as extra people, new text, altered logos, or additional camera moves."}]},constraintsTitle:"Video to video reference and output settings",constraintsIntro:"SkyVid validates Seedance reference footage before upload. Output quality, aspect ratio, duration, and credits follow the selected model configuration.",constraints:[{label:"Reference videos",value:"Upload up to 3 MP4 or MOV videos; each clip must be 2–15 seconds and total reference duration cannot exceed 15 seconds."},{label:"Video dimensions",value:"Width and height must be 300–6000px, with 409,600–2,086,876 total pixels and aspect ratio up to 2.5."},{label:"Prompt length",value:"Use up to 5,000 characters to direct the transformation."},{label:"Output settings",value:"Quality, aspect ratio, duration, and credit cost update when the selected model changes."}],relatedArticles:[{title:"How to generate video with Seedance 2.0",href:"/blog/how-to-generate-text-to-vi
1deo-seedance-2-0"},{title:"Image-to-video AI: the complete guide",href:"/blog/image-to-video-ai-complete-guide"}],faq:[{q:"What is video to video AI?",a:"Video to video AI uses existing footage as a reference for motion, timing, framing, and scene structure while generating a new visual interpretation directed by a prompt."},{q:"Which video to video models are available in SkyVid?",a:"The current SkyVid Video to Video workspace supports Seedance 2.0 and Seedance 2.0 Mini. The form shows the settings and credit cost available for each model."},{q:"Which reference video formats are supported?",a:"SkyVid accepts MP4 and MOV reference videos for this workflow. You can upload up to three clips, with each clip between 2 and 15 seconds and no more than 15 seconds total."},{q:"Will AI preserve the movement in my original video?",a:"The reference footage guides movement and timing, but exact preservation can vary. Clearly state which actions, framing, identity details, and camera motion should stay consistent."},{q:"How do I get more consistent video restyling results?",a:"Use clear footage, choose one coherent visual direction, describe what must remain unchanged, and avoid requesting new actions that conflict with the source motion."},{q:"How many credits does video to video use?",a:"Credit cost depends on the selected Seedance model, quality, and duration. SkyVid displays the current cost on the Generate button before submission."}]},"text-to-image":{slug:"text-to-image",mode:"t2i",title:"Text to Image",seoTitle:"AI Text to Image Generator | Create Images from Prompts",description:"Create AI images from text prompts with SkyVid. Choose a supported image model, aspect ratio, and resolution, then refine your prompt and generate.",keywords:["text to image","AI text to image generator","create image from text","AI image generator"],eyebrow:"Create images from a written idea",h1:"AI Text to Image Generator",intro:["Describe the subject, composition, setting, lighting, color, and visual style you want. SkyVid turns the prompt into an image using a supported image workflow and lets you choose an output ratio and resolution before generation.","Use concise art direction for the first result, then refine the details that matter most instead of changing every part of the prompt at once."],modelsTitle:"Create images with supported AI image models",modelsIntro:"The model selector shows image workflows currently enabled for text input. Resolution tiers, ratios, and credit cost update to match the selected option.",stepsTitle:"How to generate an image from text",steps:[{title:"Write the visual brief",description:"Describe the subject, composition, environment, lighting, colors, materials, and intended visual style."},{title:"Choose ratio and resolution",description:"Pick the format for the final use case, then select one of the resolution tiers supported by the model."},{title:"Generate and refine",description:"Review the result and change one important variable at a time to make the next prompt more precise."}],examplesTitle:"Text to image prompt templates",examplesIntro:"A strong image prompt defines the visual hierarchy before adding style. Use these structures as starting points, then replace the details with your own brief.",examples:[{title:"Product advertising",category:"Commercial image",description:"Specify product material, camera angle, background, light, brand colors, and usable negative space.",prompt:"A cobalt blue insulated bottle on a brushed steel pedestal, three-quarter product angle, cool white strip lighting, pale gray studio background, crisp condensation detail, premium campaign photography, generous space above for copy."},{title:"Editorial illustration",category:"Illustration",description:"Lead with the idea, composition, medium, and limited color palette instead of generic style keywords.",prompt:"Editorial illustration about focused work in a noisy city, one person reading inside a quiet circle while abstract traffic flows around them, risograph texture, black, lime, and coral palette, bold simple shapes."}
1,{title:"Photorealistic scene",category:"Photography",description:"Camera distance, light direction, surface texture, and environmental details help define a credible photograph.",prompt:"Early-morning bakery interior, baker placing fresh sourdough on a wooden counter, eye-level documentary photograph, window light from the left, visible flour in the air, natural skin and fabric texture, warm restrained color."},{title:"Concept design",category:"Design exploration",description:"Describe function, shape, materials, environment, and presentation view for a more useful concept image.",prompt:"Compact modular reading lamp for small apartments, adjustable folded aluminum arm, recycled translucent shade, shown in three-quarter view on a dark worktable, soft task light, realistic industrial design visualization."}],useCasesTitle:"AI image ideas for marketing, design, and storytelling",useCases:[{title:"Campaign concepts",description:"Explore product settings, lighting systems, compositions, and visual directions before a shoot."},{title:"Editorial and social visuals",description:"Create illustrations and platform-specific compositions around a focused idea or story."},{title:"Storyboards and moodboards",description:"Develop environments, characters, color palettes, and scene references for a larger project."},{title:"Product and spatial concepts",description:"Visualize objects, packaging, interiors, and materials from a structured design brief."}],guide:{title:"How to write a better text to image prompt",intro:"Write the prompt in visual order: what matters most, where it appears, how it is lit, and how the final image should feel. Avoid conflicting styles and camera directions.",formula:"Subject + composition + environment + lighting + color + medium",items:[{title:"Set the visual hierarchy",description:"Name the primary subject first, then clarify supporting objects and the amount of negative space."},{title:"Use concrete art direction",description:"Describe light direction, palette, materials, viewpoint, and medium instead of relying on quality adjectives."},{title:"Refine one variable at a time",description:"Keep the parts that worked and revise only composition, color, detail, or style in the next prompt."}]},constraintsTitle:"Choose the right aspect ratio and resolution",constraintsIntro:"SkyVid filters the ratio and resolution controls using the selected model's configuration. The exact credit cost remains visible on the Generate button.",constraints:[{label:"Prompt length",value:"Up to 20,000 characters for image prompts."},{label:"Resolution",value:"Available tiers vary by model and can include 1K, 2K, and 4K."},{label:"Image ratio",value:"Only ratios supported by the selected model and resolution appear."},{label:"GPT Image 2 limits",value:"Auto is limited to 1K, and square 1:1 output is unavailable at 4K."}],relatedArticles:[{title:"How to generate photoreal images with Seedream 4.5",href:"/blog/how-to-generate-photoreal-images-seedream-4-5"},{title:"How to use Seedream 4.5 for image editing",href:"/blog/how-to-use-seedream-4-5-image-to-image"}],faq:[{q:"What is a text to image generator?",a:"A text to image generator creates a new image from a written visual description. The prompt directs the subject, composition, environment, lighting, and style."},{q:"What makes a good text to image prompt?",a:"A good prompt identifies the main subject, composition, setting, light, colors, materials, and medium without mixing conflicting directions."},{q:"Which image models are available in SkyVid?",a:"The model selector lists the image workflows currently enabled for text input. Available ratios, resolutions, and credits update with the selection."},{q:"Which aspect ratios and resolutions are supported?",a:"Support varies by model. The generator filters the controls so you only see ratios and resolution tiers accepted by the current model."},{q:"Why do some settings change when I choose another model?",a:"Each image model has its own supported ratios, resolution tiers, and pricing. SkyVid updates the form to match those model-specific rules."},{q:"How many credits will an image use?",a:"The cost depends on the selected model and resolution tier. The Generate button displays the required credits before you submit."}]},"image-to-image":{slug:"image-to-image",mode:"i2i",title:"Image to Image",seoTitle:"AI Image to Image Generator | Transform Images with AI",description:"Transform one or more reference images with AI. Describe the edit, choose aspect ratio and resolution, and create product, style, or scene variations.",ke
1ywords:["image to image","AI image to image generator","AI image editor","transform image with AI"],eyebrow:"Edit and transform reference images",h1:"AI Image to Image Generator",intro:["Upload one or more reference images and describe what should change. Use the source for subject, composition, product, or style context, then direct the new environment, lighting, color, materials, or visual treatment with a prompt.","SkyVid supports up to 16 reference images in the current Image to Image workflow. Choose an available ratio and resolution, review the result, and make a more specific follow-up edit when needed."],modelsTitle:"Transform images with supported AI image models",modelsIntro:"Image to Image only shows workflows configured to accept reference images. The available resolution tiers, ratios, and credits follow the selected model.",stepsTitle:"How to use the AI image to image generator",steps:[{title:"Add reference images",description:"Upload between one and 16 images, giving each reference a clear purpose such as subject, product, composition, or style."},{title:"Describe what to keep and change",description:"State the details that must remain consistent, then name the background, light, color, material, or style changes."},{title:"Choose output settings",description:"Select a supported ratio and resolution, generate the result, and make the next edit more specific if needed."}],examplesTitle:"Image to image editing prompt templates",examplesIntro:"The most useful editing prompts separate invariants from changes. Use these structures to make the source image's role explicit.",examples:[{title:"Product scene variation",category:"Product",description:"Preserve the product design while replacing the surface, environment, and lighting direction.",prompt:"Keep the bottle shape, label layout, cap, and proportions unchanged. Place it on dark volcanic stone beside a shallow reflective pool, cool dawn light from the left, premium outdoor campaign photography, no extra text."},{title:"Background and atmosphere",category:"Portrait",description:"State which identity and pose details must remain before describing the new environment.",prompt:"Keep the person's face, hairstyle, pose, and clothing unchanged. Replace the background with a quiet train platform at blue hour, soft overhead light, light rain in the distance, realistic documentary color."},{title:"Style direction",category:"Art direction",description:"Preserve composition and subject placement while changing medium, texture, and color language.",prompt:"Keep the original composition and all object positions. Reinterpret the scene as a cut-paper editorial illustration with visible fiber texture, flat shadows, and a limited navy, lime, and coral palette."},{title:"Multi-reference composition",category:"Multiple references",description:"Assign a single job to each image so the references do not compete with one another.",prompt:"Use image 1 for the person's face and hairstyle, image 2 for the jacket design, and image 3 for the studio lighting and background colors. Create a waist-up campaign portrait with natural proportions and no logos."}],useCasesTitle:"What can you change with image to image AI?",useCases:[{title:"Product scene variations",description:"Keep product details while testing surfaces, environments, lighting, and campaign moods."},{title:"Background and atmosphere",description:"Move a subject into a new location, season, time of day, or color environment."},{title:"Style and material direction",description:"Reinterpret an existing composition through a new medium, texture, palette, or rendering approach."},{title:"Multi-reference concepts",description:"Combine clearly assigned subject, product, wardrobe, composition, and style references in one brief."}],guide:{title:"How to write an image editing prompt",intro:"Begin with what must not change. Then describe the requested edits in visual terms and remove any reference that does not have a clear role.",formula:"Keep + change + reference roles + avoid",items:[{title:"Define the invariants",description:"Name identity, product details, pose, composition, text, or proportions that must remain stable."},{title:"Assign each reference a role",description:"Explain whether an image supplies the subject, product, wardrobe, layout, material, or style direction."},{title:"Avoid conflicting instructions",description:"More references are not automatically better. Remove images or directions that compete for the same visual decision."}]},constraintsTitle:"Image to image upload and output settings",constraintsIntro:"The current workflow accepts multiple reference images and filters ratio and resolution combinations using the selected model's rules.",constraints:[{label:"Reference images",value:"Upload 1 to 16 PNG, JPG, WebP, or GIF images."},{label:"File size",value:"Each reference image can be up to 10MB."},{label:"Prompt length",value:"Up to 20,000 characters for editing instructions."},{label:"GPT Image 2 limits",value:"Auto is limited to 1K, and square 1:1 output is unavailable at 4K."}],relatedArticles:[{title:"How to use Seedream 4.5 for image-to-image editing",href:"/blog/how-to-use-seedream-4-5-image-to-image"},{title:"How to generate photoreal images with Seedream 4.5",href:"/blog/how-to-generate-photoreal-images-seedream-4-5"}],faq:[{q:"What is image to image generation?",a:"Image to image generation creates a new result from one or more reference images plus a written edit prompt. The references can guide subject, composition, product, or style details."},{q:"How many reference images can I upload?",a:"The current SkyVid Image to Image workflow accepts between one and 16 reference images in a generation."},{q:"What should I tell the AI to keep unchanged?",a:"Name the important invariants directly, such as a face, product shape, label layout, pose, composition, clothing, or color that should remain consistent."},{q:"Which file formats and sizes are supported?",a:"SkyVid accepts PNG, JPG or JPEG, WebP, and GIF reference images. Each file can be up to 10MB."},{q:"Which aspect ratios and resolutions can I use?",a:"The available settings depend on the selected model. For GPT Image 2 workflows, Auto is limited to 1K and 1:1 output is unavailable at 4K."},{q:"How do I get more consistent results from multiple references?",a:"Give each reference one clear role and state what must remain unchanged. Remove images that provide conflicting versions of the same subject, product, or style."}]}};
1null==(i=E["text-to-video"].examples[0])||i.media,null==(a=E["text-to-video"].examples[1])||a.media,null==(r=E["text-to-video"].examples[2])||r.media,null==(n=E["text-to-video"].examples[3])||n.media,E["text-to-video"].relatedArticles.map((e,t)=>({title:0===t?"如何编写 AI 视频提示词":"AI 视频模型选择指南",href:e.href})),null==(s=E["image-to-video"].examples[0])||s.media,null==(l=E["image-to-video"].examples[1])||l.media,null==(d=E["image-to-video"].examples[2])||d.media,null==(c=E["image-to-video"].examples[3])||c.media,E["image-to-video"].relatedArticles.map((e,t)=>({title:0===t?"图生视频提示词指南":"如何让静态图片自然动起来",href:e.href})),null==(m=E["video-to-video"].examples[0])||m.media,E["video-to-video"].relatedArticles.map((e,t)=>({title:0===t?"如何使用 Seedance 2.0 生成视频":"图生视频完整指南",href:e.href})),null==(u=E["text-to-image"].examples[0])||u.media,null==(p=E["text-to-image"].examples[1])||p.media,null==(h=E["text-to-image"].examples[2])||h.media,null==(g=E["text-to-image"].examples[3])||g.media,E["text-to-image"].relatedArticles.map((e,t)=>({title:0===t?"AI 图片提示词写作指南":"如何生成写实 AI 图片",href:e.href})),null==(f=E["image-to-image"].examples[0])||f.media,null==(v=E["image-to-image"].examples[1])||v.media,null==(w=E["image-to-image"].examples[2])||w.media,null==(y=E["image-to-image"].examples[3])||y.media,E["image-to-image"].relatedArticles.map((e,t)=>({title:0===t?"多参考图编辑指南":"如何保持主体一致性",href:e.href}))},2627:(e,t,o)=>{o.d(t,{FD:()=>v,MY:()=>r,PJ:()=>n,Wl:()=>l,XP:()=>m,_x:()=>a,bL:()=>u,po:()=>d,ql:()=>c,wO:()=>s,yL:()=>w});var i=o(6259);function a(e){return("object"==typeof e?null==e.host&&null==e.hostname:!/^[a-z]+:/i.test(e))&&!function(e){let t="object"==typeof e?e.pathname:e;return null!=t&&!t.startsWith("/")}(e)}function r(e,t){return e.replace(RegExp(`^${t}`),"")||"/"}function n(e,t){let o=e;return/^\/(\?.*)?$/.test(t)&&(t=t.slice(1)),o+=t}function s(e,t){return t===e||t.startsWith(`${e}/`)}function l(e,t,o){return"string"==typeof e?e:e[t]||o}function d(e){let t=function(){try{return"true"===i.env._next_intl_trailing_slash}catch{return!1}}(),[o,...a]=e.split("#"),r=a.join("#"),n=o;if("/"!==n){let e=n.endsWith("/");t&&!e?n+="/":!t&&e&&(n=n.slice(0,-1))}return r&&(n+="#"+r),n}function c(e,t){let o=d(e),i=d(t);return(function(e){let t=e.replace(/\/\[\[(\.\.\.[^\]]+)\]\]/g,"(?:/(.*))?").replace(/\[\[(\.\.\.[^\]]+)\]\]/g,"(?:/(.*))?").replace(/\[(\.\.\.[^\]]+)\]/g,"(.+)").replace(/\[([^\]]+)\]/g,"([^/]+)");return RegExp(`^${t}$`)})(o).test(i)}function m(e,t){return"never"!==t.mode&&t.prefixes?.[e]||u(e)}function u(e){return"/"+e}function p(e){return e.includes("[[...")}function h(e){return e.includes("[...")}function g(e){return e.includes("[")}function f(e,t){let o=e.split("/"),i=t.split("/"),a=Math.max(o.length,i.length);for(let e=0;e<a;e++){let t=o[e],a=i[e];if(!t&&a)return -1;if(t&&!a)return 1;if(t||a){if(!g(t)&&g(a))return -1;if(g(t)&&!g(a))return 1;if(!h(t)&&h(a))return -1;if(h(t)&&!h(a))return 1;if(!p(t)&&p(a))return -1;if(p(t)&&!p(a))return 1}}return 0}function v(e){return e.sort(f)}function w(e){return"function"==typeof e.then}},2844:(e,t,o)=>{o.d(t,{N_:()=>p,Hm:()=>v,a8:()=>g});var i=o(9285),a=o(9356),r=o.t(a,2),n=o(868),s=r["use".trim()],l=o(2627),d=o(9526),c=o(5550),m=o(4624),u=o(5311);let{Link:p,redirect:h,usePathname:g,useRouter:f,getPathname:v}=function(e){let{Link:t,config:o,getPathname:r,...p}=function(e,t){var o,r,n;let u={...o=t||{},localePrefix:"object"==typeof(n=o.localePrefix)?n:{mode:n||"always"},localeCookie:!!((r=o.localeCookie)??1)&&{name:"NEXT_LOCALE",sameSite:"lax",..."object"==typeof r&&r},localeDetection:o.localeDetection??!0,alternateLinks:o.alternateLinks??!0},p=u.pathnames,h=(0,a.forwardRef)(function({href:t,locale:o,...i},a){let r,n;"object"==typeof t?(r=t.pathname,n=t.params):r=t;let c=(0,l._x)(t),h=e(),f=(0,l.yL)(h)?s(h):h,v=c?g({locale:o||f,href:null==p?r:{pathname:r,params:n},forcePrefix:null!=o||void 0}):r;return(0,m.jsx)(d.default,{ref:a,href:"object"==typeof t?{...t,pathname:v}:v,locale:o,localeCookie:u.localeCookie,...i})});function g(e){let t,{forcePrefix:o,href:i,locale:a}=e;return null==p?"object"==typeof i?(t=i.pathname,i.query&&(t+=(0,c.Zn)(i.query))):t=i:t=(0,c.FP)({locale:a,...(0,c.TK)(i),pathnames:u.pathnames}),(0,c.x3)(t,a,u,o)}function f(e){return function(t,...o){return e(g(t),...o)}}return{config:u,Link:h,redirect:f(i.redirect),permanentRedirect:f(i.permanentRedirect),getPathname:g}}(n.Ym,e);return{...p,Link:t,usePathname:function(){let e=function(e){let t=(0,i.usePathname)(),o=(0,n.Ym)();return(0,a.useMemo)(()=>
1{if(!t)return t;let i=t,a=(0,l.XP)(o,e.localePrefix);if((0,l.wO)(a,t))i=(0,l.MY)(t,a);else if("never"!==e.localePrefix.mode&&e.localePrefix.prefixes){let e=(0,l.bL)(o);(0,l.wO)(e,t)&&(i=(0,l.MY)(t,e))}return i},[e.localePrefix,o,t])}(o),t=(0,n.Ym)();return(0,a.useMemo)(()=>e&&o.pathnames?(0,c.aM)(t,e,o.pathnames):e,[t,e])},useRouter:function(){let e=(0,i.useRouter)(),t=(0,n.Ym)(),s=(0,i.usePathname)();return(0,a.useMemo)(()=>{function i(e){return function(i,a){let{locale:n,...l}=a||{},d=[r({href:i,locale:n||t,forcePrefix:null!=n||void 0})];Object.keys(l).length>0&&d.push(l),(0,u.A)(o.localeCookie,s,t,n),e(...d)}}return{...e,push:i(e.push),replace:i(e.replace),prefetch:i(e.prefetch)}},[t,s,e])},getPathname:r}}({locales:["en","zh"],defaultLocale:"en",localePrefix:"as-needed",localeDetection:!1})},5311:(e,t,o)=>{o.d(t,{A:()=>a});var i=o(5550);function a(e,t,o,a){if(!e||a===o||null==a||!t)return;let r=(0,i.DT)(t),{name:n,...s}=e;s.path||(s.path=""!==r?r:"/");let l=`${n}=${a};`;for(let[e,t]of Object.entries(s))l+=`${"maxAge"===e?"max-age":e}`,"boolean"!=typeof t&&(l+="="+t),l+=";";document.cookie=l}},5550:(e,t,o)=>{o.d(t,{DT:()=>l,FP:()=>n,TK:()=>a,Zn:()=>r,aM:()=>s,x3:()=>d});var i=o(2627);function a(e){return"string"==typeof e?{pathname:e}:e}function r(e){let t=new URLSearchParams;for(let[o,i]of Object.entries(e))Array.isArray(i)?i.forEach(e=>{t.append(o,String(e))}):t.set(o,String(i));return"?"+t.toString()}function n({pathname:e,locale:t,params:o,pathnames:a,query:n}){function s(e){let s,l=a[e];return l?(s=(0,i.Wl)(l,t,e),o&&Object.entries(o).forEach(([e,t])=>{let o,i;Array.isArray(t)?(o=`(\\[)?\\[...${e}\\](\\])?`,i=t.map(e=>String(e)).join("/")):(o=`\\[${e}\\]`,i=String(t)),s=s.replace(RegExp(o,"g"),i)}),s=new URL(s=s.replace(/\[\[\.\.\..+\]\]/g,""),"http://l").pathname):s=e,s=(0,i.po)(s),n&&(s+=r(n)),s}if("string"==typeof e)return s(e);{let{pathname:t,...o}=e;return{...o,pathname:s(t)}}}function s(e,t,o){let a=(0,i.FD)(Object.keys(o)),r=decodeURI(t);for(let t of a){let a=o[t];if("string"==typeof a){if((0,i.ql)(a,r))return t}else if((0,i.ql)((0,i.Wl)(a,e,t),r))return t}return t}function l(e,t=window.location.pathname){return"/"===e?t:t.replace(e,"")}function d(e,t,o,a){let r,{mode:n}=o.localePrefix;if(void 0!==a)r=a;else if((0,i._x)(e)){let e=o.domains?.find(e=>e.locales.includes(t)),i=e?.localePrefix||n;"always"===i?r=!0:"as-needed"===i&&(r=e?t!==e.defaultLocale:t!==o.defaultLocale)}return r?(0,i.PJ)((0,i.XP)(t,o.localePrefix),e):e}},6077:(e,t,o)=>{o.d(t,{Z:()=>r});var i=o(9356),a=o(6852);function r(){let[e]=(0,i.useState)(a.u),[t,o]=(0,i.useState)(null),[r,n]=(0,i.useState)(!0);return(0,i.useEffect)(()=>{let t=!0;e.auth.getSession().then(e=>{var i,a;let{data:r}=e;t&&(o(null!=(a=null==(i=r.session)?void 0:i.user)?a:null),n(!1))});let{data:{subscription:i}}=e.auth.onAuthStateChange((e,i)=>{var a;t&&(o(null!=(a=null==i?void 0:i.user)?a:null),n(!1))});return()=>{t=!1,i.unsubscribe()}},[e]),{user:t,isLoading:r}}},6174:(e,t,o)=>{o.d(t,{Bj:()=>n,ph:()=>d,HE:()=>h,rP:()=>m,$m:()=>p,ZX:()=>u,cL:()=>c,Ok:()=>y,IF:()=>f,ch:()=>g,tL:()=>r,DJ:()=>w,NV:()=>v});var i=o(2503);let a={"kling-ai-avatar-standard":"/models/kling.svg","volcengine-video-lip-sync":"/models/doubao.svg","seedance-2":"/models/doubao.svg","seedance-2-mini":"/models/doubao.svg","seedance-2-fast":"/models/doubao.svg","happyhorse-1.1":"/models/happyhorse.png","veo-3.1":"/models/gemini.svg",runway:"/models/runway.svg","kling-2.6":"/models/kling.svg","wan-2.7":"/models/qwen.svg","hailuo-2.3":"/models/hailuo.svg","grok-imagine-video":"/models/grok.png","seedream-5-pro":"/models/doubao.svg","seedream-5-lite":"/models/doubao.svg","nano-banana-2-lite":"/models/gemini.svg","gpt-image-2":"/models/openai.svg","wan-2.7-image":"/models/qwen.svg","nano-banana-2":"/models/gemini.svg","grok-imagine-image":"/models/grok.png","nano-banana-pro":"/models/gemini.svg","nano-banana":"/models/gemini.svg","seedream-4-5":"/models/doubao.svg","z-image-turbo":"/models/qwen.svg","flux-2-pro":"/models/flux.svg","qwen-image-2":"/models/qwen.svg"};function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",o=a[e];if(o)return o;let i="".concat(e," ").concat(t).toLowerCase();return i.includes("seedance")||i.includes("seedream")?"/models/doubao.svg":i.includes("banana")||i.includes("gemini")?"/models/gemini.svg":i.includes("gpt")||i.includes("openai")||i.includes("sora")?"/models/openai.svg":i.includes("qwen")||i.includes("wan")?"/models/qwen.svg":i.includes("kling")?"/models/kling.svg":i.includes("happyhorse")?"/models/happyhorse.png":i.includes("grok")?"/models/grok.png":i.includes("runway")?"/models/runway.svg":i.includes("hailuo")?"/models/hailuo.svg":i.includes("flux")?"/models/flux.svg":"/models/stable.png"}a["veo-3.1"],a["kling-2.6"],a["hailuo-2.3"],a["seedance-2"],a.runway,a["seedream-4-5"],a["nano-banana-pro"],a["flux-2-pro"];let n=["auto","1:1","9:16","16:9","4:3","3:4","21:9"],s=["seedance-2","seedance-2-mini","veo-3.1","happyhorse-1.1","runway","kling-2.6","wan-2.7","hailuo-2.3","grok-imagine-video"],l=["seedream-5-pro","seedream-5-lite","nano-banana-2-lite","gpt-image-2","wan-2.7-image","nano-banana-2","grok-imagine-image"];function d(e,t){var o=e.filter(e=>"lip-sync"===t?e.supportsLipSync:"t2i"===t?"image"===e.kind&&e.supportsTextToImage:"i2i"===t?"image"===e.kind&&e.supportsImageToImage:"i2v"===t?"video"===e.kind&&e.supportsImageToVideo:"v2v"===t?"video"===e.kind&&("seedance-2"===e.modelKey||"seedance-2-mini"===e.modelKey):"video"===e.kind&&!e.supportsLipSync);let a=new Map(((0,i.ym)(t)?l:s).map((e,t)=>[e,t]));
1return[...o].sort((e,t)=>{var o,i;return(null!=(o=a.get(e.modelKey))?o:Number.MAX_SAFE_INTEGER)-(null!=(i=a.get(t.modelKey))?i:Number.MAX_SAFE_INTEGER)})}function c(e){if(e&&0!==e.supportedDurations.length)return Math.min(...e.supportedDurations)}function m(e,t,o){var a,r;let n=null!=(a=null==t?void 0:t.supportedAspectRatios)?a:[];if(!(0,i.ym)(e))return n;let s="4K"===(r=o)?"4K":"2K"===r||"high"===r||"quality"===r?"2K":"1K";return n.filter(e=>("1K"===s||"auto"!==e)&&("4K"!==s||"1:1"!==e))}function u(e){var t;return e.includes("16:9")?"16:9":e.includes("1:1")?"1:1":null!=(t=e[0])?t:""}function p(e){let{mode:t,model:o,tier:i,durationSeconds:a}=e,r=null==o?void 0:o.tiers.find(e=>e.tier===i);if(!r)return null;let n=("i2v"===t||"v2v"===t)&&null!=r.creditsI2v?r.creditsI2v:r.credits,s=("i2v"===t||"v2v"===t)&&null!=r.durationCreditsI2v?r.durationCreditsI2v:r.durationCredits;return null!=a&&(null==s?void 0:s[a])!=null?s[a]:null==n?null:r.perSecond?null==a?null:Math.ceil(n*a):n}function h(e){if(/^\d+s(?:-audio)?$/.test(e.tier))return e.tier.endsWith("-audio")?"".concat(e.tier.replace("-audio","")," + audio"):e.tier;if(e.tier.startsWith("standard-"))return"Standard";if(e.tier.startsWith("pro-"))return"Pro";let t=e.displayName||e.tier,o=/(?:^|\s|\()(\d{3,4}p|[1248]k)(?:\)|\s|$)/i.exec(t);return(null==o?void 0:o[1])?o[1].toLowerCase():t.replace(/[()]/g,"")}function g(e,t){return"".concat(10===e?10:5,"s").concat(t?"-audio":"")}function f(e){return e.startsWith("10s")?10:5}function v(e){return"lip-sync"===e?5e3:(0,i.ym)(e)?2e4:5e3}function w(e){return"i2i"===e?16:9*("i2v"===e)}function y(e){let{mode:t,authLoading:o,hasModel:i,prompt:a,imageCount:r,creditsAvailable:n}=e;return o?"The generator is still loading. Please wait a moment.":i?a.trim()?"i2v"===t&&0===r?"Choose at least one reference asset.":"v2v"===t&&0===r?"Choose at least one reference video.":"i2i"===t&&0===r?"Choose at least one reference image.":n?null:"Pricing is unavailable for this configuration.":"Enter a prompt.":"Choose a model."}},6852:(e,t,o)=>{o.d(t,{u:()=>l});var i=o(791),a=o(6232),r=o(735),n=o(6259);let s=(0,a.w)({server:{DATABASE_URL:r.Yj().url(),DIRECT_URL:r.Yj().url(),SUPABASE_SERVICE_ROLE_KEY:r.Yj().min(1),CRON_SECRET:r.Yj().min(16).optional(),STRIPE_SECRET_KEY:r.Yj().startsWith("sk_").optional(),STRIPE_WEBHOOK_SECRET:r.Yj().startsWith("whsec_").optional(),KIE_API_KEY:r.Yj().min(1).optional(),KIE_API_BASE_URL:r.Yj().url().default("https://api.kie.ai/api/v1"),TOPENROUTER_API_KEY:r.Yj().min(1).optional(),TOPENROUTER_API_BASE_URL:r.Yj().url().default("https://tp-api.chinadatapay.com:8000"),R2_ACCOUNT_ID:r.Yj().min(1).optional(),R2_ACCESS_KEY_ID:r.Yj().min(1).optional(),R2_SECRET_ACCESS_KEY:r.Yj().min(1).optional(),R2_BUCKET_NAME:r.Yj().min(1).optional(),R2_PUBLIC_URL:r.Yj().url().optional(),R2_VIDEO_BUCKET_NAME:r.Yj().min(1).optional(),R2_VIDEO_PUBLIC_URL:r.Yj().url().optional(),NODE_ENV:r.k5(["development","test","production"]).default("development")},client:{NEXT_PUBLIC_SUPABASE_URL:r.Yj().url(),NEXT_PUBLIC_SUPABASE_ANON_KEY:r.Yj().min(1),NEXT_PUBLIC_SITE_URL:r.Yj().url().default("https://skyvid.ai"),NEXT_PUBLIC_GOOGLE_CLIENT_ID:r.Yj().optional()},runtimeEnv:{DATABASE_URL:n.env.DATABASE_URL,DIRECT_URL:n.env.DIRECT_URL,SUPABASE_SERVICE_ROLE_KEY:n.env.SUPABASE_SERVICE_ROLE_KEY,CRON_SECRET:n.env.CRON_SECRET,STRIPE_SECRET_KEY:n.env.STRIPE_SECRET_KEY,STRIPE_WEBHOOK_SECRET:n.env.STRIPE_WEBHOOK_SECRET,KIE_API_KEY:n.env.KIE_API_KEY,KIE_API_BASE_URL:n.env.KIE_API_BASE_URL,TOPENROUTER_API_KEY:n.env.TOPENROUTER_API_KEY,TOPENROUTER_API_BASE_URL:n.env.TOPENROUTER_API_BASE_URL,R2_ACCOUNT_ID:n.env.R2_ACCOUNT_ID,R2_ACCESS_KEY_ID:n.env.R2_ACCESS_KEY_ID,R2_SECRET_ACCESS_KEY:n.env.R2_SECRET_ACCESS_KEY,R2_BUCKET_NAME:n.env.R2_BUCKET_NAME,R2_PUBLIC_URL:n.env.R2_PUBLIC_URL,R2_VIDEO_BUCKET_NAME:n.env.R2_VIDEO_BUCKET_NAME,R2_VIDEO_PUBLIC_URL:n.env.R2_VIDEO_PUBLIC_URL,NEXT_PUBLIC_SUPABASE_URL:"https://hsqvnkkvayzdytgvznce.supabase.co",NEXT_PUBLIC_SUPABASE_ANON_KEY:"sb_publishable_jx-xLazdC6QR6ARbLFVO0Q_ZZOeTJjR",NEXT_PUBLIC_SITE_URL:"https://skyvid.ai",NEXT_PUBLIC_GOOGLE_CLIENT_ID:"258208678819-pvkisgcvmn1dq5ptpr042m1eiocuvlot.apps.googleusercontent.com",NODE_ENV:"production"},skipValidation:!!n.env.SKIP_ENV_VALIDATION,emptyStringAsUndefined:!0});function l(){return(0,i.k)(s.NEXT_PUBLIC_SUPABASE_URL,s.NEXT_PUBLIC_SUPABASE_ANON_KEY)}},8544:(e,t,o)=>{o.d(t,{Tp:()=>r,W3:()=>n,Xw:()=>s});let i="skyvid:generation-draft:v2:",a="files";async function r(e){let{mode:t,input:o,files:a=[]}=e;l();let r=crypto.randomUUID(),n=a.map(()=>crypto.randomUUID()),s=Date.now();if(a.length>0){let e=await d();await c(e,"readwrite",e=>{a.forEach((t,o)=>{let i=n[o];i&&e.put({id:i,draftId:r,file:t})})}),e.close()}
1try{window.localStorage.setItem("".concat(i).concat(r),JSON.stringify({version:2,id:r,mode:t,createdAt:s,expiresAt:s+864e5,input:o,fileIds:n}))}catch(e){throw await m(n),e}return r}async function n(e){var t,o,r;let n;l();let c="".concat(i).concat(e),m=window.localStorage.getItem(c);if(!m)return null;try{n=JSON.parse(m)}catch(e){return window.localStorage.removeItem(c),null}if(2!==n.version||n.id!==e||"t2v"!==(t=n.mode)&&"i2v"!==t&&"v2v"!==t&&"t2i"!==t&&"i2i"!==t||n.expiresAt<=Date.now()||!((o=n.input)&&"object"==typeof o&&"string"==typeof o.modelKey&&"string"==typeof o.tier&&"string"==typeof o.prompt)){return await s(e,null!=(r=n.fileIds)?r:[]),null}if(0===n.fileIds.length)return{draft:n,files:[]};let u=await d(),p=await Promise.all(n.fileIds.map(async e=>{var t;let o=await (t=u.transaction(a,"readonly").objectStore(a).get(e),new Promise((e,o)=>{t.onsuccess=()=>e(t.result),t.onerror=()=>{var e;return o(null!=(e=t.error)?e:Error("Draft storage request failed."))}}));return null==o?void 0:o.file}));return u.close(),{draft:n,files:p.filter(e=>e instanceof File)}}async function s(e,t){let o="".concat(i).concat(e),a=t;if(!a)try{let e=window.localStorage.getItem(o);a=e?JSON.parse(e).fileIds:[]}catch(e){a=[]}window.localStorage.removeItem(o),await m(null!=a?a:[])}function l(){if(!window.localStorage||!window.indexedDB)throw Error("Draft storage is unavailable in this browser.")}function d(){return new Promise((e,t)=>{let o=window.indexedDB.open("skyvid-drafts",1);o.onupgradeneeded=()=>{let e=o.result;e.objectStoreNames.contains(a)||e.createObjectStore(a,{keyPath:"id"})},o.onsuccess=()=>e(o.result),o.onerror=()=>{var e;return t(null!=(e=o.error)?e:Error("Failed to open draft storage."))}})}function c(e,t,o){return new Promise((i,r)=>{let n=e.transaction(a,t);o(n.objectStore(a)),n.oncomplete=()=>i(),n.onerror=()=>{var e;return r(null!=(e=n.error)?e:Error("Draft storage failed."))},n.onabort=()=>{var e;return r(null!=(e=n.error)?e:Error("Draft storage was aborted."))}})}async function m(e){if(0===e.length||!window.indexedDB)return;let t=await d();await c(t,"readwrite",t=>{e.forEach(e=>t.delete(e))}),t.close()}},9526:(e,t,o)=>{o.d(t,{default:()=>d});var i=o(4400),a=o(9285),r=o(9356),n=o(868),s=o(5311),l=o(4624),d=(0,r.forwardRef)(function(e,t){let{href:o,locale:r,localeCookie:d,onClick:c,prefetch:m,...u}=e,p=(0,n.Ym)(),h=null!=r&&r!==p,g=(0,a.usePathname)();return h&&(m=!1),(0,l.jsx)(i,{ref:t,href:o,hrefLang:h?r:void 0,onClick:function(e){(0,s.A)(d,g,p,r),c&&c(e)},prefetch:m,...u})})}}]);

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.