PageSourceSearch

https://ecfotos.com/_next/static/chunks/70959-5b1dfcf2e42507ac.js

js ecfotos.com collected 2026-10-02 00:07:13 UTC 37,947 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[70959],{30462:(e,t,l)=>{"use strict";l.d(t,{A:()=>s});let s=(0,l(40157).A)("Star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]])},65697:(e,t,l)=>{"use strict";l.d(t,{ProductPhotographyLanding:()=>er});var s=l(95155),a=l(12115),r=l(2749),i=l(78720),n=l(13037),o=l(92443),d=l(2700),c=l(12734),x=l(58127),m=l(79311),u=l(17832),h=l(16923),p=l(25318),g=l(59434);let b=["image/jpeg","image/png","image/webp"];function f(e){let{onUpload:t,onClear:l,previewUrl:r}=e,[i,n]=(0,a.useState)(!1),[o,d]=(0,a.useState)(null),c=(0,a.useCallback)(e=>b.includes(e.type)?e.size>0xa00000?"File size must be under 10MB":null:"Please upload a JPG, PNG, or WebP image",[]),m=(0,a.useCallback)(e=>{let l=c(e);if(l)return void d(l);d(null);let s=URL.createObjectURL(e);t(e,s)},[t,c]),u=(0,a.useCallback)(e=>{e.preventDefault(),n(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&m(t[0])},[m]),f=(0,a.useCallback)(e=>{e.preventDefault(),n(!0)},[]),j=(0,a.useCallback)(()=>{n(!1)},[]),v=(0,a.useCallback)(e=>{let t=e.target.files;t&&t.length>0&&m(t[0])},[m]),N=(0,a.useCallback)(()=>{r&&URL.revokeObjectURL(r),d(null),l()},[r,l]);return(0,s.jsxs)("div",{className:"space-y-2",children:[r?(0,s.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-green-50 border-2 border-green-200 rounded-xl",children:[(0,s.jsx)("div",{className:"relative w-12 h-12 rounded-lg overflow-hidden flex-shrink-0 border border-green-300",children:(0,s.jsx)("img",{src:r,alt:"Product thumbnail",className:"w-full h-full object-cover"})}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5 mb-0.5",children:[(0,s.jsx)(x.A,{className:"w-3.5 h-3.5 text-green-600"}),(0,s.jsx)("p",{className:"text-sm font-semibold text-green-900",children:"Product image uploaded"})]}),(0,s.jsx)("p",{className:"text-xs text-green-700",children:"Click to change image"})]}),(0,s.jsxs)("div",{onDrop:u,onDragOver:f,onDragLeave:j,className:"relative",children:[(0,s.jsx)("input",{type:"file",accept:b.join(","),onChange:v,className:"absolute inset-0 w-full h-full opacity-0 cursor-pointer"}),(0,s.jsx)("button",{type:"button",className:"p-2 bg-white rounded-lg hover:bg-green-100 transition-colors border border-green-300",title:"Change image",children:(0,s.jsx)(h.A,{className:"w-4 h-4 text-green-700"})})]}),(0,s.jsx)("button",{type:"button",onClick:N,className:"p-2 bg-white rounded-lg hover:bg-red-50 transition-colors border border-red-300",title:"Remove image",children:(0,s.jsx)(p.A,{className:"w-4 h-4 text-red-600"})})]}):(0,s.jsxs)("div",{onDrop:u,onDragOver:f,onDragLeave:j,className:(0,g.cn)("relative border-2 border-dashed rounded-xl p-6 transition-all",i?"border-indigo-500 bg-indigo-50":"border-slate-300 hover:border-indigo-400",o&&"border-red-400 bg-red-50"),children:[(0,s.jsx)("input",{type:"file",accept:b.join(","),onChange:v,className:"absolute inset-0 w-full h-full opacity-0 cursor-pointer"}),(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center text-center space-y-2",children:[(0,s.jsx)("div",{className:(0,g.cn)("w-12 h-12 rounded-full flex items-center justify-center",o?"bg-red-100":"bg-indigo-100"),children:(0,s.jsx)(h.A,{className:(0,g.cn)("w-6 h-6",o?"text-red-600":"text-indigo-600")})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"text-sm font-semibold text-slate-900",children:i?"Drop your image here":"Drag & drop or click to browse"}),(0,s.jsx)("p",{className:"text-xs text-slate-500 mt-1",children:"JPG, PNG, or WebP, max 10MB"})]})]})]}),o&&(0,s.jsx)("p",{className:"text-xs text-red-600 font-medium",children:o}),!o&&!r&&(0,s.jsx)("p",{className:"text-xs text-slate-500",children:"\uD83D\uDCA1 Works best with products on plain backgrounds"})]})}var j=l(74601);
1let v=[{id:"template",label:"Preset Backgrounds",icon:j.A},{id:"custom",label:"Custom Background",icon:m.A},{id:"ai",label:"AI Generator",icon:u.A}];function N(e){let{activeMode:t,onModeChange:l}=e;return(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("h3",{className:"text-sm font-semibold text-slate-900 uppercase tracking-tight",children:"Generation Mode"}),(0,s.jsx)("div",{className:"flex items-center gap-1 p-1 bg-slate-100 rounded-lg",children:v.map(e=>{let a=e.icon,r=t===e.id;return(0,s.jsxs)("button",{type:"button",onClick:()=>l(e.id),className:(0,g.cn)("flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-md text-sm font-medium transition-all",r?"bg-white text-indigo-600 shadow-sm":"text-slate-600 hover:text-slate-900 hover:bg-white/50"),children:[(0,s.jsx)(a,{className:"w-4 h-4"}),(0,s.jsx)("span",{className:"hidden sm:inline",children:e.label}),(0,s.jsx)("span",{className:"sm:hidden",children:e.label.split(" ")[0]})]},e.id)})})]})}var w=l(965),y=l(73158),k=l(73885),A=l(51885);let C=["image/jpeg","image/png","image/webp"];function P(e){let{mode:t,selectedTemplate:l,onTemplateSelect:r,selectedCategory:i,onCategorySelect:n,productImage:o,customBackground:d,customBackgroundPreview:c,onCustomBackgroundUpload:x,onCustomBackgroundRemove:m,aiPrompt:u,onAiPromptChange:b}=e,[f,j]=(0,a.useState)(null),[v,N]=(0,a.useState)(!1),[P,S]=(0,a.useState)(0),[L,D]=(0,a.useState)([]),[I,T]=(0,a.useState)(!1),[G,U]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=!1;return"template"===t&&i?((async()=>{T(!0),U(null);try{var t,s;let a=new URLSearchParams;a.set("category",i.name),a.set("title",i.displayName),a.set("limit","14"),(null==o?void 0:o.name)&&a.set("keywords",o.name.replace(/\.[^/.]+$/,""));let n=await k.ok.get("".concat(k.pe.cn.sceneGenerator.templates,"?").concat(a.toString()),{withCredentials:!0});if(e)return;let d=null!=(s=null==n||null==(t=n.data)?void 0:t.templates)?s:[];if(!d.length)throw Error("Failed to load templates");D(d),"string"==typeof n.warning&&U(n.warning),!l&&d.length>0&&r(d[0])}catch(t){if(e)return;U(t instanceof Error?t.message:"Failed to load templates"),D([])}finally{e||T(!1)}})(),()=>{e=!0}):void D([])},[t,r,o,i,l]);let B=(0,a.useMemo)(()=>A.B.filter(e=>"template"===e.type),[]),R=e=>{if(!C.includes(e.type))return void j("Please upload a JPG, PNG, or WebP image");if(e.size>0xa00000)return void j("File size must be under 10MB");j(null);let t=URL.createObjectURL(e);x(e,t)},E=e=>{let t=document.getElementById("templates-scroll-container");if(t){let l="left"===e?t.scrollLeft-300:t.scrollLeft+300;t.scrollTo({left:l,behavior:"smooth"}),S(l)}};return(0,s.jsxs)("div",{className:"space-y-3",children:["template"===t&&(0,s.jsxs)("div",{className:"space-y-3",children:[n&&(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)("select",{value:(null==i?void 0:i.id)||"",onChange:e=>{let t=B.find(t=>t.id===e.target.value);t&&n(t)},className:"w-full px-3 py-2 pr-8 bg-white border-2 border-slate-200 rounded-lg text-sm font-medium text-slate-900 appearance-none cursor-pointer hover:border-indigo-300 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500",children:B.map(e=>(0,s.jsxs)("option",{value:e.id,children:[e.icon," ",e.displayName]},e.id))}),(0,s.jsx)("div",{className:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none",children:(0,s.jsx)("svg",{className:"w-4 h-4 text-slate-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})})]}),I?(0,s.jsx)("div",{className:"flex gap-3 overflow-x-auto pb-2",children:[...Array(6)].map((e,t)=>(0,s.jsx)("div",{className:"flex-shrink-0 w-32 aspect-square rounded-lg bg-slate-100 animate-pulse"},t))}):G?(0,s.jsx)("div",{className:"p-3 bg-red-50 border border-red-200 rounded-lg",children:(0,s.jsx)("p",{className:"text-xs text-red-600",children:G})}):0===L.length?(0,s.jsx)("p",{className:"text-xs text-slate-500 text-center py-4",children:"No templates available"}):(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-12 bg-gradient-to-r from-white to-transparent z-10 flex items-center",children:P>0&&(0,s.jsx)("button",{type:"button",onClick:()=>E("left"),className:"p-2 bg-white shadow-lg rounded-full hover:bg-slate-50 transition-colors",children:(0,s.jsx)(w.A,{className:"w-4 h-4 text-slate-700"})})}),(0,s.jsx)("div",{id:"templates-scroll-container",className:"flex gap-3 overflow-x-auto pb-2 scrollbar-hide scroll-smooth",onScroll:e=>S(e.currentTarget.scrollLeft),children:L.map(e=>(0,s.jsxs)("button",{type:"button",onClick:()=>r(e),className:(0,g.cn)("relative flex-shrink-0 w-32 aspect-square rounded-lg overflow-hidden border-2 transition-all",l===e.id?"border-indigo-500 shadow-md":"border-slate-200 hover:border-indigo-300"),title:e.displayName,children:[(0,s.jsx)("img",{src:e.thumbnailUrl,alt:e.displayName,className:"w-full h-full object-cover"}),l===e.id&&(0,s.jsx)("div",{className:"absolute top-2 right-2 w-6 h-6 bg-indigo-500 rounded-full flex items-center justify-center shadow-lg",children:(0,s.jsx)("svg",{className:"w-4 h-4 text-white",f
1ill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})})]},e.id))}),(0,s.jsx)("div",{className:"absolute right-0 top-0 bottom-0 w-12 bg-gradient-to-l from-white to-transparent z-10 flex items-center justify-end",children:(0,s.jsx)("button",{type:"button",onClick:()=>E("right"),className:"p-2 bg-white shadow-lg rounded-full hover:bg-slate-50 transition-colors",children:(0,s.jsx)(y.A,{className:"w-4 h-4 text-slate-700"})})})]})]}),"custom"===t&&(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)("p",{className:"text-xs text-slate-600",children:"Upload your own background image:"}),c?(0,s.jsxs)("div",{className:"relative rounded-xl overflow-hidden border border-slate-200",children:[(0,s.jsxs)("div",{className:"relative aspect-video bg-slate-50",children:[(0,s.jsx)("img",{src:c,alt:"Custom background preview",className:"w-full h-full object-contain"}),(0,s.jsx)("button",{type:"button",onClick:()=>{c&&URL.revokeObjectURL(c),j(null),m()},className:"absolute top-2 right-2 p-1.5 bg-white rounded-full shadow-lg hover:bg-red-50 transition-colors",children:(0,s.jsx)(p.A,{className:"w-3.5 h-3.5 text-slate-600 hover:text-red-600"})})]}),(0,s.jsx)("div",{className:"p-2 bg-white border-t border-slate-200",children:(0,s.jsx)("p",{className:"text-xs text-slate-600 text-center",children:"✅ Custom background uploaded"})})]}):(0,s.jsxs)("div",{onDrop:e=>{e.preventDefault(),N(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&R(t[0])},onDragOver:e=>{e.preventDefault(),N(!0)},onDragLeave:()=>{N(!1)},className:(0,g.cn)("relative border-2 border-dashed rounded-xl p-6 transition-all",v?"border-indigo-500 bg-indigo-50":"border-slate-300 hover:border-indigo-400",f&&"border-red-400 bg-red-50"),children:[(0,s.jsx)("input",{type:"file",accept:C.join(","),onChange:e=>{let t=e.target.files;t&&t.length>0&&R(t[0])},className:"absolute inset-0 w-full h-full opacity-0 cursor-pointer"}),(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center text-center space-y-2",children:[(0,s.jsx)("div",{className:(0,g.cn)("w-10 h-10 rounded-full flex items-center justify-center",f?"bg-red-100":"bg-indigo-100"),children:(0,s.jsx)(h.A,{className:(0,g.cn)("w-5 h-5",f?"text-red-600":"text-indigo-600")})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"text-sm font-semibold text-slate-900",children:v?"Drop your background image":"Drag & drop or click to browse"}),(0,s.jsx)("p",{className:"text-xs text-slate-500 mt-1",children:"JPG, PNG, or WebP, max 10MB"})]})]})]}),f&&(0,s.jsx)("p",{className:"text-xs text-red-600 font-medium",children:f})]}),"ai"===t&&(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("p",{className:"text-xs text-slate-600",children:"Describe your ideal scene:"}),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)("textarea",{value:u,onChange:e=>b(e.target.value),placeholder:"\uD83D\uDCA1 Tips: Be specific about colors/materials, mention lighting (natural/soft/dramatic), describe mood and style. E.g., White marble desk with natural lighting and soft shadows...",rows:3,className:(0,g.cn)("w-full px-3 py-2.5 text-sm border-2 rounded-lg resize-none transition-all","focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500",(null==u?void 0:u.length)&&u.length>=10?"border-green-400":"border-slate-300")}),u&&(0,s.jsx)("div",{className:"absolute bottom-2 right-2",children:(0,s.jsxs)("span",{className:(0,g.cn)("text-xs px-2 py-1 rounded-md font-medium",u.length>=10?"bg-green-100 text-green-700":"bg-slate-100 text-slate-600"),children:[u.length," / 10"]})})]}),(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsx)("p",{className:"text-xs font-semibold text-slate-700",children:"Example prompts:"}),(0,s.jsx)("div",{className:"flex flex-wrap gap-1.5",children:["White marble desk","Wooden table with plants","Modern minimalist studio","Elegant black marble","Natural lighting"].map(e=>(0,s.jsx)("button",{type:"button",onClick:()=>b(e),className:"text-xs px-2.5 py-1 bg-slate-100 hover:bg-slate-200 text-slate-700 rounded-full transition-colors",children:e},e))})]})]})]})}var S=l(50172);let L={template:{icon:j.A,label:"Generate Product Photo",gradient:"from-indigo-600 to-purple-600"},custom:{icon:m.A,label:"Blend & Generate",gradient:"from-purple-600 to-pink-600"},ai:{icon:u.A,label:"Create with AI",gradient:"from-pink-600 to-rose-600"}};function D(e){let{disabled:t,isGenerating:l,mode:a,progress:r,onClick:i}=e,n=L[a],o=n.icon;return(0,s.jsx)("button",{type:"button",onClick:i,disabled:t||l,className:(0,g.cn)("w-full py-4 px-6 rounded-xl font-semibold text-white shadow-lg","bg-gradient-to-r transition-all duration-200",n.gradient,"hover:shadow-xl hover:scale-[1.02]","disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:scale-100","flex items-center justify-center gap-3"),children:l?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(S.A,{className:"w-5 h-5 animate-spin"}),(0,s.jsx)("span",{children:r||"Processing your product photography..."})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o,{className:"w-5 h-5"}),(0,s.jsx)("span",{children:n.label})]})})}var I=l(68718),T=l(67554),G=l(66766),U=l(6874),B=l.n(U);function R(e){let{imageUrls:t,onDownload:l,onGenerateAnother:a,isAuthenticated:r,mode:i}=e;return(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between p-2.5 bg-green-50 rounded-lg border border-green-200",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(j.A,{className:"w-4 h-4 text-green-600"}),(0,s.jsxs)("p",{className:"text-xs font-semibold text-green-900",children:["Product photography ready! (",{template:"Preset Backgroun
1d",custom:"Custom Background",ai:"AI Generated"}[i],")"]})]}),(0,s.jsx)(B(),{href:"/account/auth/signup?ref=product-photography",className:"text-xs text-indigo-600 hover:text-indigo-700 font-medium",children:"Get HD →"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,s.jsxs)("button",{type:"button",onClick:l,className:"flex items-center justify-center gap-1.5 py-2.5 px-3 bg-indigo-600 hover:bg-indigo-700 text-white text-sm font-semibold rounded-lg transition-colors",children:[(0,s.jsx)(I.A,{className:"w-3.5 h-3.5"}),(0,s.jsx)("span",{children:"Download"})]}),(0,s.jsxs)("button",{type:"button",onClick:a,className:"flex items-center justify-center gap-1.5 py-2.5 px-3 bg-white border-2 border-slate-300 hover:border-indigo-400 hover:bg-indigo-50 text-slate-700 text-sm font-semibold rounded-lg transition-colors",children:[(0,s.jsx)(T.A,{className:"w-3.5 h-3.5"}),(0,s.jsx)("span",{children:"Generate Another"})]})]}),(0,s.jsx)("div",{className:"flex gap-2 overflow-x-auto pb-1",children:t.map((e,t)=>(0,s.jsx)("div",{className:"relative flex-shrink-0 w-16 h-16 rounded-lg overflow-hidden border border-slate-200 bg-slate-100",title:"Variant ".concat(t+1),children:(0,s.jsx)(G.default,{src:e,alt:"Generated product photography ".concat(t+1),fill:!0,className:"object-cover",priority:0===t})},"".concat(e,"-").concat(t)))})]})}var E=l(71158);function M(e){let{isAuthenticated:t}=e,l=[{icon:x.A,text:"Professional Product Photography"},{icon:m.A,text:"8K Resolution Output"},{icon:u.A,text:"AI-Powered Background Generation"}],[r,i]=(0,a.useState)(null),[n,o]=(0,a.useState)(null),[d,c]=(0,a.useState)("template"),[p,g]=(0,a.useState)(A.B[0]),[b,j]=(0,a.useState)(null),[v,w]=(0,a.useState)(null),[y,k]=(0,a.useState)(null),[C,S]=(0,a.useState)(""),[L,I]=(0,a.useState)("idle"),[T,G]=(0,a.useState)([]),[U,B]=(0,a.useState)(""),[M,z]=(0,a.useState)(null),W=(0,a.useCallback)((e,t)=>{i(e),o(t),I("idle"),G([]),z(null)},[]),F=(0,a.useCallback)(()=>{n&&URL.revokeObjectURL(n),i(null),o(null),I("idle"),G([]),j(null),z(null)},[n]),q=(0,a.useCallback)(e=>{c(e);let t=A.B.find(t=>t.type===e);t&&g(t),j(null),z(null)},[]),O=(0,a.useCallback)(e=>{g(e),j(null),z(null)},[]),_=(0,a.useCallback)(e=>{j(e),z(null)},[]),J=(0,a.useCallback)((e,t)=>{w(e),k(t),z(null)},[]),H=(0,a.useCallback)(()=>{y&&URL.revokeObjectURL(y),w(null),k(null),z(null)},[y]),V=(0,a.useCallback)(e=>{S(e),z(null)},[]),$=(0,a.useCallback)(async()=>{if(!r)return void alert("Please upload a product image first");
1if("template"===d&&!b)return void alert("Please select a template");if("ai"===d&&C.length<10)return void alert("Please enter a description (minimum 10 characters)");I("generating"),B("Initializing..."),z(null);try{var e;let t=await (0,E.g)({mode:d,productImage:r,templateId:null==b?void 0:b.id,templateModelNum:null==b?void 0:b.modelNum,customBackground:v||void 0,aiPrompt:C,outputFormat:"1:1"},e=>{B(e.message)});if(!t.success||!(null==(e=t.images)?void 0:e.length))throw Error(t.error||"Generation failed");G(t.images),I("completed")}catch(e){console.error("Generation failed:",e),I("error"),z(e instanceof Error?e.message:"Generation failed. Please try again.")}},[r,d,b,v,C]),K=(0,a.useCallback)(()=>{if(T.length>0){let e=document.createElement("a");e.href=T[0],e.download="product-photography.jpg",document.body.appendChild(e),e.click(),document.body.removeChild(e)}},[T]),Q=(0,a.useCallback)(()=>{I("idle"),G([]),B(""),z(null)},[]),Y="completed"===L&&T.length>0,X=!n&&!Y,Z=Y?T[0]:n;return(0,s.jsx)("section",{className:"py-8 md:py-12 bg-white",id:"product-photography-tool",children:(0,s.jsxs)("div",{className:"container mx-auto max-w-[1400px] px-4",children:[(0,s.jsxs)("div",{className:"text-center mb-8 max-w-3xl mx-auto",children:[(0,s.jsx)("span",{className:"text-indigo-600 font-headline font-bold text-xs uppercase tracking-[0.2em] mb-3 block",children:"Revolutionary AI Product Photography"}),(0,s.jsx)("h1",{className:"text-3xl md:text-4xl font-extrabold font-headline tracking-tight text-slate-900 mb-4",children:"Studio-Quality Product Photography in Seconds"}),(0,s.jsx)("p",{className:"text-slate-600 text-sm md:text-base leading-relaxed mb-6",children:"Create stunning product photography with AI. Generate professional backgrounds, perfect lighting, and magazine-ready product photos for e-commerce, Amazon, and your brand catalog."}),(0,s.jsx)("div",{className:"flex flex-wrap justify-center gap-4",children:l.map((e,t)=>(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(e.icon,{className:"h-3.5 w-3.5 text-indigo-600"}),(0,s.jsx)("span",{className:"text-xs font-medium text-slate-700",children:e.text})]},t))})]}),(0,s.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 h-[600px]",children:[(0,s.jsxs)("div",{className:"bg-white rounded-2xl border border-slate-200 shadow-sm overflow-hidden flex flex-col",children:[(0,s.jsx)("div",{className:"p-4 border-b border-slate-100 flex-shrink-0",children:(0,s.jsx)("h2",{className:"text-sm font-semibold text-slate-900 uppercase tracking-tight",children:"Product Photography Generator"})}),(0,s.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 space-y-4",children:[(0,s.jsx)(f,{onUpload:W,onClear:F,previewUrl:n}),(0,s.jsx)(N,{activeMode:d,onModeChange:q}),(0,s.jsx)(P,{mode:d,selectedTemplate:(null==b?void 0:b.id)||null,onTemplateSelect:_,selectedCategory:p,onCategorySelect:O,productImage:r,customBackground:v,customBackgroundPreview:y,onCustomBackgroundUpload:J,onCustomBackgroundRemove:H,aiPrompt:C,onAiPromptChange:V})]}),(0,s.jsxs)("div",{className:"p-4 border-t border-slate-200 bg-white flex-shrink-0",children:[Y?(0,s.jsx)(R,{imageUrls:T,onDownload:K,onGenerateAnother:Q,isAuthenticated:t,mode:d}):(0,s.jsx)(D,{disabled:!(r&&("template"!==d||b)&&("custom"!==d||v)&&("ai"!==d||!(C.length<10))&&1),isGenerating:"generating"===L,mode:d,progress:U,onClick:$}),M?(0,s.jsx)("p",{className:"mt-3 text-sm text-red-600",children:M}):null]})]}),(0,s.jsxs)("div",{className:"bg-white rounded-2xl border border-slate-200 shadow-sm overflow-hidden flex flex-col",children:[(0,s.jsx)("div",{className:"p-4 border-b border-slate-100",children:(0,s.jsx)("h2",{className:"text-sm font-semibold text-slate-900 uppercase tracking-tight",children:"Live Preview"})}),(0,s.jsxs)("div",{className:"flex-1 p-4 flex flex-col",children:[(0,s.jsx)("div",{className:"flex-1 bg-slate-50 rounded-xl border-2 border-dashed border-slate-300 relative p-4 flex items-center justify-center",children:Z?(0,s.jsx)("img",{src:Z,alt:"Product preview",className:"max-w-full max-h-full object-contain rounded-lg"}):X?(0,s.jsxs)("div",{className:"w-full h-full flex flex-col items-center justify-center",children:[(0,s.jsx)("img",{src:"https://image.ecfotos.com/homeres/home/glash_product_photography.webp",alt:"Example product photography",className:"max-w-full max-h-full object-contain rounded-lg mb-3"}),(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)("p",{className:"text-xs font-semibold text-indigo-900 mb-1",children:"Example Result"}),(0,s.jsx)("p",{className:"text-xs text-slate-500",children:"Upload your product to get started"})]})]}):(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)(h.A,{className:"h-12 w-12 text-slate-300 mx-auto mb-2"}),(0,s.jsx)("p",{className:"text-xs text-slate-400",children:"Upload a product image to get started"})]})}),(0,s.jsxs)("div",{className:"mt-4 p-3 bg-gradient-to-br from-indigo-50 to-purple-50 rounded-lg border border-indigo-100",children:[(0,s.jsx)("p",{className:"text-xs font-semibold text-indigo-900 mb-1",children:"Why AI Product Photography?"}),(0,s.jsx)("p",{className:"text-xs text-slate-600 leading-relaxed",children:"Transform your product photos into professional e-commerce assets. Perfect for Amazon, Shopify, and online stores."})]})]})]})]})]})})}function z(e){let{faq:t}=e;return(0,s.jsx)("section",{className:"py-16 md:py-20 bg-slate-50",children:(0,s.jsxs)("div",{className:"container mx-auto max-w-4xl px-4",children:[(0,s.jsx)("div",{className:"text-center mb-12",children:(0,s.jsx)("h2",{className:"text-3xl md:text-4xl font-headline font-extrabold tracking-tight text-slate-900 mb-3",children:"Frequently Asked Questions"})}),(0,s.jsx)("div",{className:"space-y-4",children:t.items.map((e,t)=>(0,s.jsxs)("div",{className:"p-5 bg-white rounded-xl border border-slate-200 shadow-sm",children:[(0,s.jsx)("h4",{className:"font-semibold text-base text-slate-900 mb-2",children:e.question}),(0,s.jsx)("p",{className:"text-slate-600 text-sm leading-relaxed",children:e.answer})]},t))})]})})}var W=l(89829),F=l(30462),q=l(19968);function O(e){let{finalCTA:t}=e,l=[{icon:W.A,text:"10 Free Credits"},{icon:x.A,text:"No Credit Card Required"},{icon:F.A,text:"Cancel Anytime"}];return(0,s.jsx)("section",{className:"py-20 md:py-24 studio-gradient",children:(0,s.jsx)("div",{className:"container mx-auto px-4",children:(0,s.jsxs)("div",{className:"mx-auto max-w-4xl text-center",children:[(0,s.jsx)("div",{className:"mb-6 flex justify-center",children:(0,s.jsx)("div",{className:"flex h-16 w-16 items-center justify-center rounded-2xl bg-white/20 text-white",children:(0,s.jsx)(j.A,{className:"h-8 w-8"})})}),(0,s.jsx)("h2",{className:"text-4xl md:text-5xl font-black tracking-tight text-white mb-5",children:t.title||"Ready to Transform Your Catalog?"}),(0,s.jsx)("p",{className:"text-lg md:text-xl text-white/90 mb-8 max-w-2xl mx-auto",children:t.description||"Join 10,000+ brands creating world-class photography without the expensive studio costs."}),(0,s.jsx)("div",{className:"flex flex-wrap items-center justify-center gap-3 mb-10",children:l.map((e,t)=>(0,s.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-white/30 bg-white/10 px-4 py-2",children:[(0,s.jsx)(e.icon,{className:"h-4 w-4 text-white"}),(0,s.jsx)("span",{className:"text-sm font-semibold text-white",children:e.text})]},t))}),(0,s.jsxs)("div",{className:"flex flex-col sm:flex-row justify-center gap-4",children:[(0,s.jsxs)(B(),{href:"/account/auth/signup",className:"inline-flex items-center gap-2 rounded-full bg-white px-8 py-4 text-base font-bold text-indigo-600 shadow-xl hover:shadow-2xl transition-all",children:["Get Started Free",(0,s.jsx)(q.A,{className:"h-5 w-5"})]}),(0,s.jsx)(B(),{href:"/demo",className:"inline-flex items-center gap-2 rounded-full bg-white/10 border border-white/20 px-8 py-4 text-base font-bold text-white hover:bg-white/20 transition-all",children:"Watch Demo"})]}),(0,s.jsxs)("div",{className:"mt-8 flex items-center justify-center gap-2 text-white/70",children:[(0,s.jsx)("div",{className:"flex",children:[void 0,void 0,void 0,void 0,void 0].map((e,t)=>(0,s.jsx)(F.A,{className:"h-4 w-4 fill-amber-400 text-amber-400"},t))}),(0,s.jsx)("span",{className:"text-sm",children:"Trusted by 50,000+ businesses"})]})]})})})}function _(e){let{howTo:t}=e,l=Array.isArray(t.steps)?t.steps:[],a=[{icon:h.A,color:"from-blue-500 to-cyan-500"},{icon:m.A,color:"from-purple-500 to-pink-500"}
1,{icon:j.A,color:"from-amber-500 to-orange-500"}];return(0,s.jsx)("section",{className:"py-16 md:py-20 bg-slate-50",children:(0,s.jsxs)("div",{className:"container mx-auto px-4",children:[(0,s.jsxs)("div",{className:"mx-auto max-w-3xl text-center mb-12",children:[(0,s.jsx)("h2",{className:"text-3xl md:text-4xl font-headline font-extrabold tracking-tight text-slate-900 mb-3",children:t.title||"Studio Excellence in 3 Steps"}),(0,s.jsx)("p",{className:"text-base md:text-lg text-slate-600",children:t.description||"Simple, fast, and professional results every single time."})]}),(0,s.jsx)("div",{className:"mx-auto max-w-5xl",children:(0,s.jsx)("div",{className:"grid gap-6 md:grid-cols-3",children:l.map((e,t)=>{var l,r;let i=(null==(l=a[t])?void 0:l.icon)||h.A,n=(null==(r=a[t])?void 0:r.color)||"from-indigo-500 to-purple-500";return(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)("div",{className:"mb-4 flex justify-center",children:(0,s.jsx)("div",{className:"flex h-14 w-14 items-center justify-center rounded-2xl bg-gradient-to-br ".concat(n," text-white text-xl font-bold shadow-lg"),children:e.number||t+1})}),(0,s.jsx)("div",{className:"mb-4 flex justify-center",children:(0,s.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl bg-white shadow-md",children:(0,s.jsx)(i,{className:"h-6 w-6 text-indigo-600"})})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-lg font-bold text-slate-900 mb-2",children:e.title||"Step ".concat(t+1)}),(0,s.jsx)("p",{className:"text-sm leading-relaxed text-slate-600",children:e.description||"Description of this step"})]})]},"".concat(e.title,"-").concat(t))})})})]})})}var J=l(50286);let H=(0,l(40157).A)("Award",[["path",{d:"m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526",key:"1yiouv"}],["circle",{cx:"12",cy:"8",r:"6",key:"1vp47v"}]]);var V=l(80659),$=l(76570);function K(e){var t;let{trustBar:l}=e,a=[{icon:J.A,value:"50K+",label:"Active Users"},{icon:H,value:"4.9/5",label:"User Rating"},{icon:V.A,value:"2M+",label:"Images Created"},{icon:$.A,value:"100%",label:"Secure"}];return(0,s.jsx)("section",{className:"border-y border-slate-200 bg-white py-12",children:(0,s.jsxs)("div",{className:"container mx-auto px-4",children:[(0,s.jsx)("div",{className:"mb-12 grid grid-cols-2 md:grid-cols-4 gap-8",children:a.map((e,t)=>(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)("div",{className:"mb-3 flex justify-center",children:(0,s.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl studio-gradient text-white shadow-md",children:(0,s.jsx)(e.icon,{className:"h-5 w-5"})})}),(0,s.jsx)("div",{className:"text-2xl font-black text-slate-900",children:e.value}),(0,s.jsx)("div",{className:"mt-1 text-xs font-semibold text-slate-500 uppercase tracking-wide",children:e.label})]},t))}),(0,s.jsxs)("div",{className:"border-t border-slate-100 pt-10",children:[(0,s.jsx)("p",{className:"text-center text-[10px] font-black uppercase tracking-[0.25em] text-slate-400 mb-6",children:null!=(t=null==l?void 0:l.headline)?t:"Trusted by Global E-commerce Leaders"}),(0,s.jsx)("div",{className:"flex flex-wrap items-center justify-center gap-6 md:gap-10",children:["amazon","shopify","etsy","ebay","WALMART"].map(e=>(0,s.jsx)("div",{className:"text-xl md:text-2xl font-bold text-slate-300 hover:text-slate-500 transition-colors",children:e},e))})]})]})})}var Q=l(90495),Y=l(43583);function X(e){let{section:t,caseStudies:l=[],onApplyCase:a}=e;return l.length?(0,s.jsx)("section",{className:"py-16 md:py-20 bg-white",children:(0,s.jsx)("div",{className:"container mx-auto",children:(0,s.jsx)("div",{className:"space-y-16 md:space-y-24",children:l.map((e,l)=>{var r,i,n,o,d,c;let m=l%2==1,u=!!(e.beforeImage&&e.afterImage),h="jewelry-reflection"===e.id&&u;return(0,s.jsx)("div",{className:"max-w-6xl mx-auto px-4 md:px-6",children:(0,s.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-8 lg:gap-12 items-center",children:[(0,s.jsx)("div",{className:m?"order-1":"order-1 lg:order-2",children:(0,s.jsxs)("div",{className:"bg-slate-50 rounded-2xl aspect-square overflow-hidden shadow-lg border border-slate-200 relative",children:[h?(0,s.jsxs)("div",{className:"grid h-full grid-cols-2 gap-3 p-4",children:[(0,s.jsx)("div",{className:"overflow-hidden rounded-xl bg-white",children:(0,s.jsx)("img",{src:e.beforeImage,alt:null!=(r=e.beforeLabel)?r:"".concat(e.title," before"),className:"h-full w-full object-contain"})}),(0,s.jsx)("div",{className:"overflow-hidden rounded-xl bg-white",children:(0,s.jsx)("img",{src:e.afterImage,alt:null!=(i=e.afterLabel)?i:"".concat(e.title," after"),className:"h-full w-full object-contain"})})]}):u?(0,s.jsx)(Q.EW,{className:"h-full w-full",position:50,itemOne:(0,s.jsx)(Q.D4,{src:e.beforeImage,alt:null!=(n=e.beforeLabel)?n:"".concat(e.title," before"),style:{objectFit:"contain",backgroundColor:"#f8fafc"}}),itemTwo:(0,s.jsx)(Q.D4,{src:e.afterImage,alt:null!=(o=e.afterLabel)?o:"".concat(e.title," after"),style:{objectFit:"contain",backgroundColor:"#f8fafc"}})}):(0,s.jsx)("img",{src:e.afterImage,alt:"".concat(e.title," - AI product photography example"),className:"w-full h-full object-contain"}),(0,s.jsx)("div",{className:"absolute bottom-3 left-3 bg-black/60 backdrop-blur-sm text-white text-[10px] font-bold px-3 py-1 rounded-full uppercase tracking-wider",children:"AI Generated"})]})}),(0,s.jsxs)("div",{className:m?"order-2 lg:order-2":"order-2 lg:order-1",children:[e.appliesTo&&e.appliesTo.length>0&&(0,s.jsx)("div",{className:"flex flex-wrap gap-2 mb-4",children:e.appliesTo.map((e,t)=>(0,s.jsx)("span",{className:"px-3 py-1 bg-indigo-50 text-indigo-700 text-[10px] font-bold rounded-full uppercase border border-indigo-200",children:e},t))}),(0,s.jsx)("h2",{className:"text-3xl md:text-4xl font-headline font-extrabold tracking-tight text-slate-900 mb-4",children:e.title}),(0,s.jsx)("p",{className:"text-slate-600 text-base md:text-lg leading-relaxed mb-6",children:e.subt
1itle}),e.bullets&&e.bullets.length>0&&(0,s.jsx)("ul",{className:"space-y-2 mb-6",children:e.bullets.map((e,t)=>(0,s.jsxs)("li",{className:"flex items-start gap-2 text-sm text-slate-700",children:[(0,s.jsx)(x.A,{className:"h-4 w-4 text-indigo-600 shrink-0 mt-0.5"}),(0,s.jsx)("span",{children:e})]},t))}),(0,s.jsx)("p",{className:"text-sm text-slate-500 mb-6 leading-relaxed",children:"Transform your product photography with AI-generated backgrounds. Perfect for e-commerce, Amazon listings, and brand catalogs."}),(0,s.jsxs)(Y.$n,{type:"button",onClick:()=>a(e.id),className:"studio-gradient text-white px-6 py-3 rounded-full font-semibold flex items-center gap-2 hover:shadow-lg transition-all",children:[null!=(c=null!=(d=e.ctaLabel)?d:null==t?void 0:t.ctaLabel)?c:"Try This Style",(0,s.jsx)(q.A,{className:"h-4 w-4"})]})]})]})},e.id)})})})}):null}var Z=l(47326),ee=l(25844);function et(e){var t,l,a;let{relatedTools:r}=e,i=Array.isArray(null==r?void 0:r.items)?r.items:[];if(!i.length)return null;let n={Eraser:Z.A,Wand2:u.A,ImageIcon:m.A,Layers:ee.A,Sparkles:j.A};return(0,s.jsx)("section",{className:"py-16 md:py-20 bg-slate-900",children:(0,s.jsx)("div",{className:"container mx-auto px-4",children:(0,s.jsxs)("div",{className:"grid gap-12 lg:grid-cols-2 lg:items-center",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"mb-4 inline-flex items-center justify-center rounded-full bg-indigo-500/20 px-4 py-2",children:[(0,s.jsx)(j.A,{className:"h-4 w-4 text-indigo-300 mr-2"}),(0,s.jsx)("span",{className:"text-sm font-bold uppercase tracking-[0.15em] text-indigo-300",children:null!=(t=null==r?void 0:r.badge)?t:"Powerful Tools"})]}),(0,s.jsx)("h2",{className:"text-3xl md:text-4xl font-black tracking-tight text-white mb-4",children:null!=(l=null==r?void 0:r.title)?l:"Complete Your Workflow"}),(0,s.jsx)("p",{className:"text-base md:text-lg text-slate-400 mb-8 leading-relaxed",children:null!=(a=null==r?void 0:r.description)?a:"Product photography is just the beginning. Explore our full suite of AI-powered tools."}),(0,s.jsxs)(B(),{href:"/tools",className:"inline-flex items-center gap-2 rounded-full bg-white px-6 py-3 text-sm font-bold text-slate-900 shadow-lg hover:shadow-xl transition-all",children:["Explore All Tools",(0,s.jsx)(q.A,{className:"h-4 w-4"})]})]}),(0,s.jsx)("div",{className:"grid gap-3",children:i.map(e=>{let t=e.icon?n[e.icon]:j.A;return(0,s.jsxs)(B(),{href:e.href,className:"flex items-center gap-4 roun
1ded-xl border border-slate-700 bg-slate-800/50 p-4 backdrop-blur-sm transition-all duration-300 hover:border-indigo-500 hover:bg-slate-800",children:[(0,s.jsx)("div",{className:"flex shrink-0 h-12 w-12 items-center justify-center rounded-xl studio-gradient text-white",children:(0,s.jsx)(t,{className:"h-6 w-6"})}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("h4",{className:"text-base font-bold text-white",children:e.title}),(0,s.jsx)("p",{className:"mt-0.5 text-sm text-slate-400 line-clamp-1",children:e.description})]}),(0,s.jsx)("div",{className:"flex shrink-0 h-8 w-8 items-center justify-center rounded-full border border-slate-600 text-slate-400",children:(0,s.jsx)(q.A,{className:"h-4 w-4"})})]},e.title)})})]})})})}var el=l(35695),es=l(94361);let ea=(e,t)=>"en"===e?t:"/".concat(e).concat(t);function er(){var e,t,l,x,m,u,h,p,g,b,f,j,v;let N=(0,el.usePathname)(),w=(0,es.lu)(N),y=(0,d.useContent)(),k=(0,d.useMarketing)(),{data:A}=(0,r.As)(),C=!!(null==A?void 0:A.user),[P,S]=(0,a.useState)(null),L=null!=(u=null==k?void 0:k.productPhotography)?u:o.A.productPhotography,D=null!=(h=null==k?void 0:k.productPhotographyUi)?h:o.A.productPhotographyUi,I=(0,a.useMemo)(()=>(0,c.Se)(L,o.A.productPhotography),[L]),T={...y,home:I,homeUi:D},G=(null==L?void 0:L.seo)||T.seo||n,U=(null==(e=T.seo)?void 0:e.structuredData)||n.structuredData,B=I.faq.items.map(e=>({question:e.question,answer:e.answer})),R=(null!=(p=null==(t=I.howTo)?void 0:t.steps)?p:[]).map((e,t)=>{var l,s;return{name:null!=(l=e.title)?l:"Step ".concat(t+1),text:null!=(s=e.description)?s:""}}),E=null!=(g=null==L||null==(l=L.caseStudies)?void 0:l.items)?g:[],W=(0,a.useMemo)(()=>{var e;let t=null!=(e=null==L?void 0:L.relatedTools)?e:{},l=Array.isArray(t.items)?t.items:[];return{...t,items:l.map(e=>({...e,href:ea(w,e.href)}))}},[w,L]),F=ea(w,"/tools/product-photography");return(0,s.jsxs)(d.ContentProvider,{content:T,children:[(0,s.jsx)(i.tI,{data:U.organization}),(0,s.jsx)(i.tc,{meta:null!=(b=G.meta)?b:G}),(0,s.jsx)(i.te,{data:U.software}),(0,s.jsx)(i.FH,{items:[{name:"Home",url:"https://ecfotos.com/"},{name:"AI Product Photography",url:"https://ecfotos.com".concat(F)}]}),(0,s.jsx)(i.Ah,{faqs:B}),(0,s.jsx)(i.$y,{name:null!=(f=null==(x=I.howTo)?void 0:x.title)?f:"How to use AI Product Photography",description:null!=(j=null==(m=I.howTo)?void 0:m.description)?j:"Upload a product photo, choose a background path, and generate the result.",steps:R}),(0,s.jsxs)("div",{className:"bg-white text-slate-900",children:[(0,s.jsx)(M,{isAuthenticated:C,hero:null!=(v=L.hero)?v:I.hero,caseStudies:E,selectedCaseId:P}),(0,s.jsx)(K,{trustBar:null==D?void 0:D.trustBar}),(0,s.jsx)(X,{section:null==L?void 0:L.caseStudies,caseStudies:E,onApplyCase:e=>{S(e),window.requestAnimationFrame(()=>{var e;null==(e=document.getElementById("product-photography-tool"))||e.scrollIntoView({behavior:"smooth",block:"start"})})}}),(0,s.jsx)(_,{howTo:I.howTo}),(0,s.jsx)(z,{faq:I.faq}),(0,s.jsx)(et,{relatedTools:W}),(0,s.jsx)(O,{finalCTA:I.finalCTA})]})]})}},70959:(e,t,l)=>{Promise.resolve().then(l.bind(l,65697))},76570:(e,t,l)=>{"use strict";l.d(t,{A:()=>s});let s=(0,l(40157).A)("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])}}]);

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.