PageSourceSearch

https://www.wedopr.com/assets/VideoWedo-ztJfRXL-.js

js wedopr.com collected 2026-10-07 18:51:40 UTC 71,031 bytes, 101 lines download raw bytes

1import{j as e,r as f}from"./react-core-DGbc2Y4Q.js";import{c as X,g as be,S as fe,H as ve,B as R,F as xe}from"./render-app-BKEtI_Gz.js";import{S as we}from"./seo-injector-DcbDJuz9.js";import{B as V}from"./badge-C8BXxVvd.js";import{T as ke,I as ie}from"./textarea-CpPoiUQX.js";import{d as ye,L as je,T as Ne,e as Ae}from"./radix-vendor-BG8iXauy.js";import{b as Se,e as $e,s as te}from"./videoJobSpec-B4EmH5eG.js";import{A as re,t as Ce,J as le,aN as Le,X as Te,aU as Re,aV as K,ai as Ie,aW as Me,aX as Pe,aY as Be,aZ as ze}from"./icons-vendor-C1hvyZgf.js";import"./index-CzV5y2Z9.js";import"./feedback-vendor-lUOMG4xM.js";import"./utils-vendor-DPhhqT8T.js";function Ue({className:a,...o}){return e.jsx(ye,{"data-slot":"tabs",className:X("flex flex-col gap-2",a),...o})}function Ee({className:a,...o}){return e.jsx(je,{"data-slot":"tabs-list",className:X("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",a),...o})}function O({className:a,...o}){return e.jsx(Ne,{"data-slot":"tabs-trigger",className:X("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a),...o})}function de({className:a,...o}){return e.jsx(Ae,{"data-slot":"tabs-content",className:X("flex-1 outline-none",a),...o})}const b={travel:{label:"旅遊 / 景點",promptLabel:"Quiet luxury Hokkaido golf travel",audience:"高端旅遊客、企業招待決策者、北海道高爾夫週末行程受眾",viralMechanic:"quiet arrival, private access, seasonal atmosphere, curated itinerary, understated luxury, first-person immersion",visualLanguage:"quiet luxury Hokkaido golf travel film, private concierge itinerary mood, natural morning light, misty fairway atmosphere, understated hospital
1ity details, elegant slow camera movement, tactile materials, destination-first composition, refined weekend escape tone",guardrail:"避免誇大行程承諾、危險拍攝、侵犯隱私;畫面不出現任何可讀文字、字幕、車牌、招牌、菜單、品牌標誌或旁白",safetyRule:"Do not imply unsafe travel behavior, exaggerated promises, privacy invasion, or risky filming.",defaultBrief:"北海道清晨高爾夫旅遊,呈現球場薄霧、私人接送、安靜高品質的週末行程。",samples:["北海道高端高爾夫週末,從私人車抵達晨霧球場,到晚餐安排與套房收尾。","企業招待型北海道高爾夫行程,重點是私人接送、球具細節、從容服務與安靜質感。"],beats3:[{purpose:"清晨抵達",hook:"Open with a private arrival into a misty Hokkaido golf resort.",spreadAngle:"用安靜抵達感建立高端行程",visual:"view from inside a private car approaching a tree-lined golf resort driveway, pale morning fog, soft fairway light, no signage",avoid:"station exits, street signs, tour-bus feeling, license plates, visible resort logos"},{purpose:"球場細節",hook:"Show the tactile evidence of a prepared golf weekend.",spreadAngle:"用球具與晨霧讓旅程具象",visual:"dew on fairway grass, white golf glove, polished club, leather golf bag, low-angle slow push-in toward a misty green",avoid:"golf club brand logos, scoreboards, competitive sports energy, readable numbers"},{purpose:"行程收尾",hook:"Close with the feeling that every detail has been arranged.",spreadAngle:"留下客製服務與諮詢想像",visual:"suite window overlooking the course at dusk, luggage, plain ivory itinerary folder with no marks, unbranded leather key fob, large clean negative space",avoid:"CTA text, hotel logos, room numbers, printed itinerary words, flashy luxury display"}],beats6:[{purpose:"清晨抵達",hook:"Begin from the back seat or side window of a private car arriving at a misty Hokkaido golf resort.",spreadAngle:"安靜抵達與第一人稱沉浸感",visual:"private car slowly turning into a quiet resort approach road lined with trees, morning mist over distant fairway, soft sunrise reflection on glass",avoid:"station exits, public streets, road signs, readable boards, license plates, tour-bus atmosphere"},{purpose:"私人接送",hook:"Show understated concierge service without showing faces.",spreadAngle:"私人動線與高端服務感",visual:"car door opens, leather luggage and a golf bag are handled carefully by gloved hands, smooth movement, no face-forward portrait",avoid:"uniform logos, car brands, license plates, dramatic chauffeur stereotypes, visible name tags"},{purpose:"清晨球場細節",hook:"Move into the tactile details that make this a golf journey.",spreadAngle:"晨霧球場辨識度",visual:"dew on short grass, white golf glove placed beside an unbranded golf bag, polished club head, misty green in the background, low-angle slow push-in",avoid:"golf brand logos, scorecards, hole numbers, flags with text, crowded tournament mood"},{purpose:"從容擊球",hook:"Show one calm golfer as a silhouette inside the landscape.",spreadAngle:"克制、從容、不是競技炫耀",visual:"single traveler seen from behind on a wide misty fairway, slow practice swing or gentle tee shot, open Hokkaido landscape, refined pacing",avoid:"front-facing celebrity shot, victory pose, aggressive sports commercial style, crowds, scoreboards"},{purpose:"晚餐安排",hook:"Shift from the fairway to a prepared evening table.",spreadAngle:"客製週末行程完整感",visual:"elegant restaurant table under warm light, blank folded reservation card with no visible writing, glassware, linen, seasonal Hokkaido ingredient atmosphere, server hands gently placing a napkin",avoid:"menu text, restaurant signs, wine labels, visible logos, excessive luxury display, readable reservation names"},{purpose:"諮詢收尾",hook:"End with a quiet itinerary mood and room to add brand text later.",spreadAngle:"留下安靜邀請感",visual:"luggage, plain ivory itinerary folder with no marks, unbranded leather key fob, suite window overlooking dusk fairway, camera slowly pulls back leaving clean negative space",avoid:"CTA text, brand marks, hotel room numbers, printed schedules, over-advertising tone"}]},food:{label:"美食 / 感官",promptLabel:"Clean sensory food film",audience:"喜歡餐桌儀式、料理質感、餐廳氛圍與感官短影音的觀眾",viralMechanic:"craveable texture, tactile preparation, quiet table ritual, sensory memory, satisfying transformation",visualLanguage:"clean sensory food cinematography, macro texture, warm realistic light, slow tactile hand movement, steam and gloss, elegant table atmosphere, no menu-card storytelling",guardrail:"避免不實健康宣稱、過度浪費食物、髒亂畫面;畫面不出現任何可讀文字、字幕、菜單、包裝標籤、品牌標誌或旁白",safetyRule:"Do not imply false health claims, food waste, dirty preparation, or unsafe cooking.",defaultBrief:"一碗深夜牛肉麵,從熱湯、麵條拉起、牛肉切面,到安靜吃完後的空碗。",samples:["一顆可頌從切開到抹上奶油,做成療癒感 30 秒素材。","夜市烤玉米的炭火、醬刷、焦香與人潮光影。"],beats3:[{purpose:"食慾鉤子",hook:"Open with the single most craveable texture.",spreadAngle:"第一眼就讓人想吃",visual:"extreme macro of steam, gloss, crisp surface, sauce movement, or noodles lifting in warm light",avoid:"menu cards, package labels, price tags, restaurant logos, exaggerated health implication"},{purpose:"手作轉換",hook:"Show one clear preparation action that transforms the food.",spreadAngle:"容易重播的感官動作",visual:"hands slicing, folding, brushing, pouring, plating, or setting a bowl down with calm precision",avoid:"messy kitchen, wasteful excess, branded tools, readable labels, unsafe cooking gestures"},{purpose:"餐桌收尾",hook:"End on a clean table moment that can be edited later.",spreadAngle:"讓觀眾想收藏店家或做法",visual:"final dish hero shot with tableware, soft depth of field, warm ambient light, clean negative space",avoid:"menus, store signs, QR codes, captions, over-styled stock-food look"}],beats6:[{purpose:"食慾鉤子",hook:"Start with the strongest texture before showing the full dish.",spreadAngle:"讓觀眾立刻停下來看",visual:"macro steam, melting fat, crisp surface, bubbling broth, glossy sauce, or a slow tear-open moment",avoid:"written packaging, labels, menus, nutrition claims, cluttered countertop"},{purpose:"原料質地",hook:"Show the ingredient that signals quality without needing words.",spreadAngle:"建立真實感與信任",visual:"fresh ingredients handled gently, rinsing, seasoning, cutting board texture, ceramic bowl, natural light",avoid:"brand packaging, supermarket labels, price stickers, artificial color, excessive abundance"},{purpose:"手作動作",hook:"Use one precise hand movement as the emotional center.",spreadAngle:"療癒與可重播",visual:"kneading, slicing, folding, brushing, pouring, or lifting noodles in slow tactile motion",avoid:"unsafe knife handling, dirty preparation, face-forward chef talking, visible written recipe"},{purpose:"聲音想像",hook:"Make the viewer imagine crunch, sizzle, or pour even if the clip is silent.",spreadAngle:"無聲也能有感",visual:"crispy break, grill sizzle, soup pour, sauce drizzle, steam burst, or ice clink",avoid:"dialogue, lip-sync, captions, sound-wave graphics, chaotic montage"},{purpose:"上桌儀式",hook:"Turn plating into a small reveal.",spreadAngle:"從製作變成期待",visual:"dish placed on an elegant table, napkin adjusted, glassware catching warm light, steam rising",avoid:"menu cards, restaurant signs, table numbers, wine labels, readable reservation cards"},{purpose:"記憶收尾",hook:"Close on one satisfying final image with room for later text.",spreadAngle:"適合收藏與分享",visual:"finished dish, quiet table, empty chair, warm light, clean negative space for editing",avoid:"hard CTA, brand signage, fake handwritten notes, overexposed stock-food shine"}]},product:{label:"產品 / 開箱",promptLabel:"Premium clean product short",audience:"正在比較商品、想快速理解使用情境與材質差異的社群觀眾",viralMechanic:"first-frame product reveal, tactile proof, before-and-after use case, premium detail, clean edit space",visual
1Language:"premium product cinematography, tactile material detail, clean tabletop composition, refined lighting, precise hand movement, commercial but not overhyped",guardrail:"避免誇大功效、假測試、假認證;畫面不出現任何可讀文字、Logo、包裝標籤、字幕或旁白",safetyRule:"Do not imply fake certifications, exaggerated performance, unsafe usage, or misleading before-and-after results.",defaultBrief:"一款高質感隨身工作包,呈現材質、收納、放進筆電與出門使用情境。",samples:["一支無線滑鼠的開箱、握感、桌面工作流與收納細節。","一款香氛蠟燭從點燃、空間氛圍到晚間放鬆收尾。"],beats3:[{purpose:"產品登場",hook:"Open with a clean product reveal that is understandable without words.",spreadAngle:"第一眼看懂產品質感",visual:"unbranded product on a clean surface, soft directional light, one hand entering frame for scale, no packaging text",avoid:"logos, labels, readable packaging, feature text, fake award badges"},{purpose:"使用證據",hook:"Show the product solving one practical moment.",spreadAngle:"讓觀眾理解用途",visual:"hands using the product in a realistic setting, one clear action, tactile material detail",avoid:"exaggerated claims, UI text, unsafe use, cluttered desk, brand marks"},{purpose:"生活收尾",hook:"Close with the product naturally placed in the user's day.",spreadAngle:"留下購買或詢問動機",visual:"product in a calm lifestyle scene with negative space for later CTA overlay",avoid:"price tags, coupon text, logo close-ups, fake testimonials"}],beats6:[{purpose:"產品登場",hook:"Start with a quiet product reveal, not a text card.",spreadAngle:"強第一幀",visual:"unbranded product on clean surface, premium light, tactile texture visible, no text",avoid:"logos, labels, readable packaging, title card"},{purpose:"材質細節",hook:"Move close enough to make texture feel real.",spreadAngle:"建立可信度",visual:"macro material detail, hand touch, seam, surface, reflection, soft shadow",avoid:"brand marks, printed labels, fake certification marks"},{purpose:"核心功能",hook:"Show one clear function through action.",spreadAngle:"讓用途一眼明白",visual:"hands performing one practical use case in a clean environment",avoid:"feature text, UI labels, exaggerated transformation"},{purpose:"情境轉換",hook:"Move the product into a real day.",spreadAngle:"讓觀眾想像自己使用",visual:"product moving from desk to bag, kitchen, room, or travel setting",avoid:"price tags, competitor comparison charts, readable notes"},{purpose:"滿意瞬間",hook:"Show a small non-verbal satisfaction cue.",spreadAngle:"提高情緒記憶",visual:"calm hand gesture, product placed neatly, clean result without showing words",avoid:"talking head, thumbs-up cliche, fake review text"},{purpose:"CTA 留白",hook:"End with a hero frame made for later overlay.",spreadAngle:"方便後製轉換",visual:"product hero shot with large natural negative space and warm lighting",avoid:"CTA text, URLs, coupon codes, logos"}]},brand_story:{label:"品牌 / 故事",promptLabel:"Warm brand story film",audience:"想理解品牌理念、服務態度與團隊可信度的潛在客戶",viralMechanic:"human craft detail, invisible service, values shown through action, quiet trust, documentary warmth",visualLanguage:"warm brand documentary film, human hands, service details, quiet workplace, restrained premium tone, editorial realism",guardrail:"避免假團隊、假客戶、誇大成果;畫面不出現可讀文件、商標、字幕、網址或旁白",safetyRule:"Do not imply fake clients, fake awards, misleading outcomes, or expose private documents.",defaultBrief:"一支 WEDO 服務形象短片,呈現討論、整理資料、規劃策略與交付成果的安靜專業感。",samples:["設計工作室從草圖、材質、打樣到交付作品的品牌故事。","顧問團隊如何把混亂需求整理成可執行方案。"],beats3:[{purpose:"價值開場",hook:"Open with the quiet work behind the brand.",spreadAngle:"讓品牌可信",visual:"hands arranging blank documents, samples, and tools on a warm desk, no readable text",avoid:"logos, client names, certificates, screen UI"},{purpose:"服務過程",hook:"Show the method through physical movement.",spreadAngle:"把抽象服務具象化",visual:"team hands sorting blank cards, reviewing materials, placing objects into a clear structure",avoid:"meeting notes text, faces of private clients, charts with words"},{purpose:"信任收尾",hook:"End with a polished handoff moment.",spreadAngle:"形成詢問動機",visual:"plain folder, product sample, calm table, natural negative space for later brand overlay",avoid:"brand slogan, URL, readable proposal, signature text"}],beats6:[{purpose:"品牌起點",hook:"Show the brand through work, not a logo.",spreadAngle:"避開廣告感",visual:"quiet workspace, blank notes, tactile materials, warm light",avoid:"logos, readable text, slogans"},{purpose:"問題整理",hook:"Make the client's messy situation visible without exposing data.",spreadAngle:"讓觀眾被說中",visual:"scattered blank cards and materials being organized",avoid:"private data, written client details, screen UI"},{purpose:"方法形成",hook:"Show structure emerging from hands and objects.",spreadAngle:"建立專業感",visual:"hands grouping blank cards, samples, and folders into a clear plan",avoid:"framework labels, charts with text"},{purpose:"細節打磨",hook:"Focus on one quality detail.",spreadAngle:"讓服務有質感",visual:"close-up of material choice, editing gesture, product sample, refined table detail",avoid:"fake award, brand marks, testimonial text"},{purpose:"交付片刻",hook:"Show a calm delivery moment.",spreadAngle:"讓成果可想像",visual:"plain folder handed across table, no faces, warm trust atmosphere",avoid:"contracts with text, signatures, identifiable clients"},{purpose:"品牌留白",hook:"Leave space for the brand message later.",spreadAngle:"適合後製 CTA",visual:"clean desk, completed unbranded package, natural negative space",avoid:"logo, URL, CTA text, slogan"}]},event:{label:"活動 / 宣傳",promptLabel:"Clean event promo film",audience:"正在決定是否報名、參加或分享活動資訊的社群觀眾",viralMechanic:"arrival energy, venue reveal, people-safe atmosphere, anticipation, highlight recap, clean CTA frame",visual
1Language:"polished event promo cinematography, warm venue light, safe crowd atmosphere, refined detail montage, no readable signage",guardrail:"避免露出個資、人臉侵犯隱私、錯誤活動資訊;畫面不出現可讀看板、名牌、議程、Logo、字幕或旁白",safetyRule:"Do not expose private attendees, name tags, schedules, tickets, QR codes, or misleading event claims.",defaultBrief:"一場品牌講座活動,從來賓抵達、場地細節、交流氛圍到活動後的安靜收尾。",samples:["新產品發表會的抵達、展台、體驗與掌聲收尾。","企業內訓活動的場地、桌面教材、互動與團隊合照氛圍。"],beats3:[{purpose:"活動抵達",hook:"Open with people arriving and the venue mood forming.",spreadAngle:"建立想參加的期待",visual:"venue entrance detail, warm lights, people arriving from behind, no signage",avoid:"event posters, QR codes, readable badges, identifiable faces"},{purpose:"現場亮點",hook:"Show one lively but safe highlight.",spreadAngle:"讓活動有能量",visual:"hands interacting with display objects, audience silhouettes, speaker stage from distance with no slides visible",avoid:"slide text, sponsor logos, private attendee faces"},{purpose:"收尾留白",hook:"Close with the feeling of a completed event.",spreadAngle:"方便後製報名 CTA",visual:"empty venue after event, chairs, soft lights, clean negative space",avoid:"date text, URL, ticket text, logo wall"}],beats6:[{purpose:"抵達",hook:"Show the start of arrival energy.",spreadAngle:"讓觀眾想進場",visual:"people entering venue from behind, warm lobby light, no signage",avoid:"readable posters, badges, tickets"},{purpose:"場地",hook:"Reveal the venue quality.",spreadAngle:"建立信任",visual:"venue detail, chairs, lighting, stage shape, no screens with text",avoid:"slide text, sponsor logos, room numbers"},{purpose:"互動",hook:"Show attendees engaging without exposing identity.",spreadAngle:"營造參與感",visual:"hands interacting with objects, blurred audience, safe mid shots",avoid:"clear faces, name tags, written cards"},{purpose:"亮點",hook:"Capture one highlight moment.",spreadAngle:"提高完播",visual:"applause texture, display reveal, product experience, warm stage light",avoid:"slide content, public claims, visible brand marks"},{purpose:"交流",hook:"Shift to quiet networking.",spreadAngle:"讓活動有後續價值",visual:"small groups from behind, coffee cups, blank materials, warm ambience",avoid:"business cards text, name tags, private conversations"},{purpose:"下一場",hook:"End with a clean invitation frame.",spreadAngle:"交給後製 CTA",visual:"empty venue, light fading, clean negative space for Remotion overlay",avoid:"event date text, URL, QR code, sponsor wall"}]},book:{label:"書籍 / 觀點",promptLabel:"Editorial book trailer",audience:"喜歡閱讀、觀點整理、作者內容與書籍推薦的社群觀眾",viralMechanic:"quiet hook, page texture, idea object, author desk mood, collectible insight, clean quote overlay space",visualLanguage:"editorial book trailer, paper texture, quiet desk, warm reading light, cinematic close-ups, no readable pages",guardrail:"避免露出未授權書頁全文、假書評、假作者背書;畫面不出現可讀文字、封面標題、字幕或旁白",safetyRule:"Do not show readable copyrighted pages, fake endorsements, fake awards, or misleading claims.",defaultBrief:"一本關於 AI 與品牌信任的新書宣傳短片,呈現閱讀、筆記、觀點形成與邀請讀者行動。",samples:["用 30 秒做一本商業書的觀點短片,不露出可讀內文。","作者桌面、書頁、筆記與城市夜景,做成新書預告。"],beats3:[{purpose:"閱讀鉤子",hook:"Open with a book mood, not a readable cover.",spreadAngle:"讓觀眾進入閱讀感",visual:"closed blank book, warm desk lamp, hand touching paper edge, no readable title",avoid:"book cover text, page text, author name, quote text"},{purpose:"觀點形成",hook:"Show an idea being shaped through objects.",spreadAngle:"把抽象觀點變畫面",visual:"blank notes, pencil, page texture, objects arranged into a simple system",avoid:"written notes, readable pages, diagrams with words"},{purpose:"邀請收尾",hook:"Close with a clean frame for a quote or CTA overlay.",spreadAngle:"方便做後製字幕與 CTA",visual:"book on desk beside window light, large negative space",avoid:"CTA text, URL, cover title, fake review badges"}],beats6:[{purpose:"書的氣氛",hook:"Start with a tactile reading mood.",spreadAngle:"第一眼像書籍預告",visual:"blank book, warm light, paper texture, hand entering frame",avoid:"readable cover, text pages, title card"},{purpose:"問題意識",hook:"Show why the idea matters without words.",spreadAngle:"建立痛點",visual:"messy blank notes, closed laptop glow with 
1no UI, quiet desk tension",avoid:"screen text, written notes, statistics"},{purpose:"翻頁",hook:"Use a page movement as transition.",spreadAngle:"增加節奏",visual:"page turn close-up with no readable text, paper shadow, warm light",avoid:"visible paragraphs, quotes, chapter titles"},{purpose:"觀點整理",hook:"Show the idea becoming structure.",spreadAngle:"讓人想收藏",visual:"blank cards arranged neatly, pencil line without visible writing, objects forming a system",avoid:"framework text, arrows with labels"},{purpose:"作者桌面",hook:"Reveal the working atmosphere behind the book.",spreadAngle:"建立真實與親近",visual:"quiet writing desk, tea, blank manuscript stack, window light",avoid:"author face if not provided, manuscript text, publisher logos"},{purpose:"讀者邀請",hook:"End with space for a quote overlay.",spreadAngle:"方便後製轉換",visual:"book silhouette and clean negative space, calm final frame",avoid:"CTA text, URL, cover title, fake endorsements"}]},knowledge:{label:"知識 / 觀點",promptLabel:"Clean knowledge and insight film",audience:"想快速理解趨勢、商業、AI、生活知識與方法論的短影音觀眾",viralMechanic:"visual paradox, problem-to-system transformation, editorial metaphor, practical action, calm authority",visualLanguage:"editorial explainer film without text, metaphor-driven object scenes, clean workspace, physical systems replacing charts, calm decision-making mood, no talking head",guardrail:"避免製造焦慮、誇大預測、未證實數據;畫面不出現任何可讀文字、字幕、圖表文字、螢幕 UI 或旁白",safetyRule:"Do not create fear, exaggerated predictions, fake statistics, or misleading charts.",defaultBrief:"AI 時代,品牌真正缺的不是更多貼文,而是能被人和 AI 同時理解的內容資產。",samples:["為什麼越忙的人越需要一套內容系統,而不是更多工具。","用一個畫面說明:AI 讓普通工作變便宜,也讓判斷力更值錢。"],beats3:[{purpose:"反常識開場",hook:"Show a visual contradiction that makes people pause.",spreadAngle:"讓觀眾想知道為什麼",visual:"one messy digital-looking workspace beside one calm physical decision object, no readable screens",avoid:"charts with text, UI dashboards, talking-head explanation, fake statistics, alarmist imagery"},{purpose:"核心隱喻",hook:"Translate the abstract idea into one physical system.",spreadAngle:"容易被理解與轉傳",visual:"hands sorting blank cards, plain folders, tools, and layered objects into a clear structure",avoid:"written labels, arrows with words, whiteboard text, floating typography, overcomplicated diagrams"},{purpose:"行動畫面",hook:"End with a simple next-step visual.",spreadAngle:"讓觀眾覺得可執行",visual:"clean workspace, one organized tray, closed loop, calm decision moment, natural negative space",avoid:"CTA text, checklist writing, app UI, exaggerated productivity fantasy"}],beats6:[{purpose:"反常識開場",hook:"Open with a visual paradox instead of a written claim.",spreadAngle:"第一秒製造問題感",visual:"busy desk, many blank paper stacks, and one calm decision object in sharp focus",avoid:"text overlays, fake charts, readable documents, facial lecture, fear-based visual language"},{purpose:"問題具象化",hook:"Make the pain visible without words.",spreadAngle:"讓觀眾覺得被說中",visual:"scattered content objects, blurred device glow with no readable UI, fragmented workflow represented by separated blank cards",avoid:"screenshots, app names, UI text, notification text, exaggerated chaos"},{purpose:"轉折隱喻",hook:"Show the system starting to form.",spreadAngle:"從混亂到秩序",visual:"hands reorganizing blank cards, folders, and objects into simple rows and layers",avoid:"written frameworks, labeled arrows, diagrams with words, floating icons with text"},{purpose:"觀點證據",hook:"Give the idea a credible editorial feel.",spreadAngle:"增加保存價值",visual:"plain case folders, archive shelves, product samples, research-like desk layout with no labels",avoid:"confidential-looking documents, readable data, logos, fake certificates"},{purpose:"可執行動作",hook:"Show one simple action anyone can copy.",spreadAngle:"帶動分享給同事",visual:"hands choosing one blank priority card, placing it at the center, closing a notebook without visible writing",avoid:"checklist text, app tutorial UI, motivational slogans, unrealistic automation imagery"},{purpose:"乾淨收尾",hook:"End on a calm visual conclusion.",spreadAngle:"像一張可轉傳的觀點封面",visual:"minimal editorial closing frame with organized objects and clean negative space for later captions",avoid:"title cards, visible words, overdesigned infographic style, stock corporate montage"}]},entertainment:{label:"娛樂 / 反應",promptLabel:"Clean entertainment and reaction film",audience:"喜歡輕鬆、反差、挑戰、生活觀察與可二創素材的短影音觀眾",viralMechanic:"anticipation, prop-based reveal, visual contrast, expressive body language, safe loop-friendly ending",visual
1Language:"playful commercial reaction film, clean prop-driven storytelling, expressive body language, precise comedic timing, non-verbal visual humor, safe everyday setting",guardrail:"避免羞辱個人、危險挑戰、政治攻擊、低俗惡意;畫面不出現任何可讀文字、字幕、對話框、螢幕文字或旁白",safetyRule:"Do not show humiliation, dangerous challenges, political attacks, vulgar malice, or identifiable harassment.",defaultBrief:"一個上班族把混亂桌面整理成完美工作站,過程像迷你挑戰,結尾有反差感。",samples:["貓咪看到自動餵食器啟動的誇張反應,但畫面要乾淨可愛。","朋友以為只是普通便當,打開後像精品開箱。"],beats3:[{purpose:"反應鉤子",hook:"Start at the moment just before the reaction.",spreadAngle:"讓觀眾等著看下一秒",visual:"person notices a surprising object or situation, expressive body language, no speaking",avoid:"mockery, humiliation, dangerous stunt setup, readable phone screen, dialogue"},{purpose:"反差展開",hook:"Make the situation escalate through props and movement.",spreadAngle:"容易被剪成迷因素材",visual:"simple challenge action, prop transformation, exaggerated but clean reaction, safe physical comedy",avoid:"injury risk, political targets, vulgar gesture, text-based joke, cluttered room"},{purpose:"Loop 收尾",hook:"End in a way that can loop back to the beginning.",spreadAngle:"提升重播率",visual:"final reset pose, object returns to starting position, clean frame with visual punchline",avoid:"caption-dependent punchline, spoken punchline, harsh prank energy, identifiable bystanders"}],beats6:[{purpose:"反應前一秒",hook:"Freeze the anticipation before the reaction.",spreadAngle:"第一秒吊胃口",visual:"person staring at an unexpected prop, hands paused, clean everyday setting, no dialogue",avoid:"readable screens, prank humiliation, fear reaction, unsafe object"},{purpose:"小事件啟動",hook:"Show the trigger clearly.",spreadAngle:"觀眾一眼看懂",visual:"box opens, object moves, door reveals something, machine starts without labels or UI",avoid:"branded packaging, warning labels, text instructions, dangerous mechanism"},{purpose:"反差變大",hook:"Escalate the visual surprise.",spreadAngle:"形成分享點",visual:"unexpected size contrast, tidy prop transformation, playful staging with clear before-and-after",avoid:"chaotic mess, property damage, offensive stereotype, readable joke signs"},{purpose:"身體喜劇",hook:"Use movement instead of words.",spreadAngle:"跨語言也能看懂",visual:"double take, cautious step back, excited hand gesture, safe non-verbal comedic timing",avoid:"falling injury, aggressive chase, speaking to camera, exaggerated cruelty"},{purpose:"第二個驚喜",hook:"Add a final twist through a small visual reveal.",spreadAngle:"讓觀眾願意看完",visual:"secondary object appears, hidden compartment opens, small prop changes the meaning",avoid:"text reveal, phone-message reveal, mean-spirited twist, real personal information"},{purpose:"Loop 收尾",hook:"Close with a frame that resets the joke.",spreadAngle:"提高重播率",visual:"return to the starting pose or object position, loop-friendly clean ending",avoid:"caption-dependent ending, verbal punchline, hard cut to black with text"}]},anime:{label:"動漫 / 奇幻",promptLabel:"Original anime-inspired fantasy film",audience:"喜歡動漫感、角色世界觀、遊戲感、AI 視覺奇觀與二創素材的短影音觀眾",viralMechanic:"iconic silhouette, original character reveal, power awakening, screenshot-worthy worldbuilding, cliffhanger composition",visualLanguage:"original anime-inspired cinematic fantasy, expressive character acting, dynamic camera, glowing atmosphere, invented worldbuilding, no speech bubbles, no franchise resemblance",guardrail:"避免仿冒特定既有 IP、血腥暴力、兒少不當內容;畫面不出現任何可讀文字、字幕、符文文字、對話框或旁白",safetyRule:"Do not imitate a specific existing IP, franchise, named character, or copyrighted visual identity. Avoid gore and inappropriate minor-related content.",defaultBrief:"一位年輕守書人打開一本發光古書ï¼
1ŒåŸŽå¸‚上空浮現資料星圖,像知識系奇幻預告。",samples:["一隻機械貓在夜市屋頂追逐發光資料魚。","樂透球池變成宇宙引擎,一個可愛機器人守著概率星圖。"],beats3:[{purpose:"角色登場",hook:"Introduce the original character with one iconic silhouette.",spreadAngle:"讓觀眾想截圖",visual:"backlit original character silhouette, glowing object, wind movement, dramatic but clean atmosphere",avoid:"specific franchise style, recognizable named-character design, readable runes, speech bubbles"},{purpose:"能力覺醒",hook:"Show a visual power or transformation without symbols that look like text.",spreadAngle:"產生名場面感",visual:"energy field, particles, floating objects, outfit or environment shift, expressive hand motion",avoid:"blood, gore, text-like magical circles, copyrighted costume cues, spoken spellcasting"},{purpose:"世界開展",hook:"Reveal a larger world beyond the character.",spreadAngle:"讓觀眾期待下一集",visual:"wide original fantasy reveal, skyline, library, sky portal, constellation-like light without letters",avoid:"title cards, map labels, faction logos, existing IP resemblance, subtitle-style framing"}],beats6:[{purpose:"角色剪影",hook:"Open with a memorable original silhouette.",spreadAngle:"第一秒有角色記憶點",visual:"original anime-inspired character silhouette, backlight, wind, glowing object, clean negative space",avoid:"famous character resemblance, franchise color scheme, readable symbols, title text"},{purpose:"異常發生",hook:"Show the world becoming strange.",spreadAngle:"製造懸念",visual:"ordinary place bending into fantasy through light, particles, and object levitation, no readable signs",avoid:"signboards, school-name text, UI overlays, violent panic, copied IP locations"},{purpose:"能力覺醒",hook:"Make the power visible through motion and light.",spreadAngle:"形成截圖點",visual:"hands, eyes, glowing prop, energy field, transformation ripple, expressive character acting",avoid:"speech bubbles, spell text, gore, suggestive minor framing, copyrighted weapon design"},{purpose:"動作場面",hook:"Add one clean action beat.",spreadAngle:"提升節奏",visual:"dash, leap, camera orbit, object chase, non-violent fantasy movement with elegant timing",avoid:"realistic injury, blood, gun violence, chaotic fight montage, branded costumes"},{purpose:"世界觀揭露",hook:"Reveal the bigger system without written lore.",spreadAngle:"讓觀眾想追後續",visual:"portal, skyline, library, floating map-like light pattern with no letters, symbolic architecture",avoid:"map labels, faction emblems with text, exposition screens, title cards"},{purpose:"連載收尾",hook:"End on a cliffhanger image that can lead to another episode.",spreadAngle:"像下一集預告",visual:"character turns toward glowing horizon, unanswered visual mystery, clean negative space",avoid:"episode title text, dialogue, narration, direct imitation of anime openings"}]},buzz:{label:"八卦 / 熱議",promptLabel:"Clean social buzz and mystery film",audience:"關注社群熱點、名人事件、商業爭議、品牌翻車與輿論觀察的短影音觀眾",viralMechanic:"missing piece, clue reconstruction, public attention without screenshots, silent tension, unresolved ending",visualLanguage:"cinematic social-buzz reconstruction, blurred crowd energy, abstract phone glow with no readable UI, investigative mood, privacy-safe visual clues, no screenshots",guardrail:"避免捏造指控、露出真實個資、政治仇恨、名譽攻擊;畫面不出現任何可讀文字、字幕、留言截圖、帳號名稱或旁白",safetyRule:"Do not fabricate accusations, expose private information, show real comment screenshots, or imply defamatory claims.",defaultBrief:"一個品牌深夜突然撤下爭議貼文,社群開始截圖、討論、等待官方回應。",samples:["一場發表會後,現場嘉賓表情讓社群開始猜測真正發生什麼。","明星合作案突然消失,留下品牌櫥窗、手機通知光影與沉默會議室。"],beats3:[{purpose:"懸念開場",hook:"Open with the missing piece, not the accusation.",spreadAngle:"讓觀眾想知道後續",visual:"empty stage, closed laptop, p
1hone face down glowing softly, tense silence, no readable screen",avoid:"real names, account handles, news screenshots, defamatory implication, political hate symbols"},{purpose:"線索拼圖",hook:"Show multiple visual clues without making claims.",spreadAngle:"製造討論與猜測",visual:"hands arranging blurred photos, blank notes, abstract notification light, privacy-safe investigative mood",avoid:"readable comments, private messages, personal data, logos, text-based evidence"},{purpose:"等待回應",hook:"End with unresolved tension.",spreadAngle:"適合留言討論",visual:"quiet meeting room, unopened door, phone turned face down, camera slowly pulling back",avoid:"official statement text, brand logos, hostile crowd, spoken allegation, doxxing cues"}],beats6:[{purpose:"缺席鉤子",hook:"Show what is suddenly absent.",spreadAngle:"社群熱議的起點",visual:"empty display area, dark screen glow, removed object space, quiet room with no readable evidence",avoid:"real brand marks, screenshots, deleted-post text, account names, accusation framing"},{purpose:"圍觀擴散",hook:"Show people noticing without showing posts.",spreadAngle:"形成群體感",visual:"hands holding phones with abstract blurred light, faces out of focus, soft crowd energy",avoid:"readable UI, comment threads, identifiable faces, harassment atmosphere, news tickers"},{purpose:"線索重組",hook:"Make the audience feel a pattern forming.",spreadAngle:"引發推理慾",visual:"blurred photos, blank sticky notes, timeline-like objects with no writing, hands rearranging clues",avoid:"private information, written dates, names, legal documents, misleading proof"},{purpose:"關係張力",hook:"Show the silent room where decisions happen.",spreadAngle:"讓事件有戲劇性",visual:"closed meeting room, tense body language, chair slightly pulled back, laptop closed, no speaking",avoid:"logos, nameplates, readable documents, aggressive confrontation, political targeting"},{purpose:"反轉暗示",hook:"Reveal one visual detail that changes the mood.",spreadAngle:"提高完播",visual:"object left behind, light turns off, someone pauses before leaving, phone reflection shifts",avoid:"text reveal, incriminating note, real-person likeness, defamatory visual claim"},{purpose:"懸念收尾",hook:"End without answering everything.",spreadAngle:"帶動留言與轉傳",visual:"door closing, phone face down, city night reflection, clean unresolved frame",avoid:"final verdict text, explicit accusation, callout graphics, hostile mob energy"}]}},y={vertical30:{label:"9:16 直式|30 秒",aspect:"9:16",duration:"30 秒",durationSeconds:30,orientation:"直式",segmentLabel:"3 段"},vertical45:{label:"9:16 直式|45 秒",aspect:"9:16",duration:"45 秒",durationSeconds:45,orientation:"直式",segmentLabel:"5 段"},vertical60:{label:"9:16 直式|60 秒",aspect:"9:16",duration:"60 秒",durationSeconds:60,orientation:"直式",segmentLabel:"6 段"},horizontal30:{label:"16:9 橫式|30 秒",aspect:"16:9",duration:"30 秒",durationSeconds:30,orientation:"橫式",segmentLabel:"3 段"},horizontal45:{label:"16:9 橫式|45 秒",aspect:"16:9",duration:"45 秒",durationSeconds:45,orientation:"橫式",segmentLabel:"5 段"},horizontal60:{label:"16:9 橫式|60 秒",aspect:"16:9",duration:"60 秒",durationSeconds:60,orientation:"橫式",segmentLabel:"6 段"},square30:{label:"1:1 方形|30 秒",aspect:"1:1",duration:"30 秒",durationSeconds:30,orientation:"方形",segmentLabel:"3 段"},square45:{label:"1:1 方形|45 秒",aspect:"1:1",duration:"45 秒",durationSeconds:45,orientation:"方形",segmentLabel:"5 段"},square60:{label:"1:1 方形|60 秒",aspect:"1:1",duration:"60 秒",durationSeconds:60,orientation:"方形",segmentLabel:"6 段"}};function qe(a){return a.split(/[。!?!?;;]\s*|\n+/).map(o=>o.trim()).filter(Boolean)}function Ve(a,o){const s=a.toLowerCase().replace(/\s+/g,""),i=o.label.toLowerCase().replace(/\s+/g,"");return s===i||i.includes(s)}function ge(a,o){const s=a.trim().replace(/\r\n/g,`
2`),i=s.split(/\n+/).map(m=>m.trim()).filter(Boolean),n=i[0]||"短影音主題",c=Ve(n,o),l=c&&i[1]?i[
21]:n,h=l.replace(/[。!?!?;;]+$/,""),p=c&&i[1]?i.slice(2):i.slice(1),u=p.length>0?p.join("。"):s.replace(n,"").replace(l,""),d=qe(u).filter(m=>m!==h);return{title:h,details:d}}function me(a){return y[a].durationSeconds===60?6:y[a].durationSeconds===45?5:3}function Oe(a){return Math.round(y[a].durationSeconds/me(a))}function De(a,o,s){const i=b[a],n=(s===3?i.beats3:i.beats6)[o];return(n==null?void 0:n.purpose)??"收尾"}function se(a,o,s){const i=b[a],n=s===3?i.beats3:i.beats6;return n[o]??n[n.length-1]}function We(a,o,s,i){const n=se(a,s,i),c=o.details[s]||o.details[s-1]||"";return c?`${n.hook} ${c}`:`${n.hook} Topic: ${o.title}.`}function _e(a,o,s){return se(a,o,s).visual}function ee(a){return Math.max(0,Math.min(255,Math.round(a))).toString(16).padStart(2,"0")}function ce(a,o,s){return`#${ee(a)}${ee(o)}${ee(s)}`}function He(a,o){const s=a/Math.max(o,1);return s>1.25?"landscape reference":s<.8?"vertical reference":"square or balanced reference"}function oe(a){return a?`Visual style reference from uploaded image:
3${a}
4Use this reference for style, palette, lighting, texture, and composition direction only. Do not recreate private people, logos, readable text, brand marks, or exact copyrighted image content.`:""}function Fe(a,o,s){const i=Math.max(a,o,s),n=Math.min(a,o,s);return i===0?0:(i-n)/i}async function Ge(a){const o=URL.createObjectURL(a),s=new Image;try{await new Promise((g,w)=>{s.onload=()=>g(),s.onerror=()=>w(new Error("圖片讀取失敗,請換一張參考圖。")),s.src=o});const i=96,n=Math.min(i/s.naturalWidth,i/s.naturalHeight,1),c=Math.max(1,Math.round(s.naturalWidth*n)),l=Math.max(1,Math.round(s.naturalHeight*n)),h=document.createElement("canvas");h.width=c,h.height=l;const p=h.getContext("2d");if(!p)throw new Error("無法分析圖片色彩,請換一張參考圖。");p.drawImage(s,0,0,c,l);const u=p.getImageData(0,0,c,l).data;let d=0,m=0,k=0,v=0,S=0;const x=[],j=new Map;for(let g=0;g<u.length;g+=4){const w=u[g],T=u[g+1],A=u[g+2];if(u[g+3]<16)continue;const W=(w*.299+T*.587+A*.114)/255,t=Fe(w,T,A),r=Math.round(w/32)*32,M=Math.round(T/32)*32,Z=Math.round(A/32)*32,ne=`${r}-${M}-${Z}`,_=j.get(ne)||{count:0,red:0,green:0,blue:0};_.count+=1,_.red+=w,_.green+=T,_.blue+=A,j.set(ne,_),d+=w,m+=T,k+=A,v+=W,S+=t,x.push(W)}const N=Math.max(x.length,1),$=d/N,P=m/N,z=k/N,D=v/N,U=S/N,I=x.reduce((g,w)=>g+(w-D)**2,0)/Math.max(x.length,1),C=Math.sqrt(I),E=$-z,q=E>12?"warm":E<-12?"cool":"neutral",H=D>.68?"bright high-key":D<.38?"low-key shadowed":"balanced natural",F=U>.42?"rich color":U<.2?"muted color":"soft color",G=C>.24?"high contrast":C<.13?"low contrast":"medium contrast",B=He(s.naturalWidth,s.naturalHeight),J=Array.from(j.values()).sort((g,w)=>w.count-g.count).slice(0,5).map(g=>ce(g.red/g.count,g.green/g.count,g.blue/g.count)),Q=ce($,P,z),L=`${q}, ${H}, ${F}, ${G}, ${B}; palette ${J.join(", ")}; average color ${Q}; preserve the uploaded image's overall lighting mood, color relationship, material feeling, framing density, and visual restraint.`;return{fileName:a.name,previewUrl:o,summary:`${q} / ${H} / ${F} / ${G}`,promptText:L,palette:J,width:s.naturalWidth,height:s.naturalHeight,aspectLabel:B}}catch(i){throw URL.revokeObjectURL(o),i}}function ue(){return`Global clean-asset rules:
5- Create clean cinematic assets for later editing.
6- No on-screen text of any language.
7- No Chinese characters, English letters, numbers, subtitles, captions, logos, readable signs, labels, menus, UI text, charts, title cards, speech bubbles, handwritten words, brand marks, license plates, or name tags.
8- Any paper, folder, card, key fob, luggage tag, menu-like object, screen, board, package, or document must remain completely blank, unbranded, and unreadable.
9- No narration, no voiceover, no spoken dialogue, no lip-sync, no talking-head explanation.
10- If the source topic contains Chinese, interpret it only as visual meaning; never render written language.
11- Use visual storytelling, natural ambience, and non-verbal tactile sound only if audio is generated. Silent output is acceptable.
12- Create footage that can be edited later with separate subtitles, music, voiceover, and brand elements.`}function he(a,o,s,i){const n=b[a],c=y[o],l=me(o),h=Oe(o),p=te(s)||n.defaultBrief,u=ge(p,n);return Array.from({length:l},(d,m)=>{const k=m*h,v=m===l-1?c.durationSeconds:k+h,S=De(a,m,l),x=se(a,m,l),j=_e(a,m,l),N=We(a,u,m,l),$=x.avoid||"generic stock-video feeling, readable text, logos, clutter, overexplained scenes",P=oe(i);
12return{index:m+1,startSecond:k,endSecond:v,clipDurationSeconds:v-k,time:`${k}-${v}s`,title:`第 ${m+1} 段|${S}`,purpose:S,message:N,visualHook:x.hook,spreadAngle:x.spreadAngle,imagePrompt:`Create a ${c.aspect} keyframe image for a short video segment.
13Content category: ${n.promptLabel}
14Segment: ${m+1} of ${l}, ${S}
15Source topic: ${u.title}
16${P}
17Creative production mechanic: ${n.viralMechanic}
18Core visual idea: ${N}
19Why people would watch or share: ${x.spreadAngle}
20Scene direction: ${j}
21Avoid in this segment: ${$}
22Style: ${n.visualLanguage}, high-retention short-form visual, strong first-frame hook, cinematic lighting, tactile detail, clean composition.
23Composition: design for later editing, leave natural negative space, keep the subject immediately understandable without words.
24${ue()}
25Safety: ${n.safetyRule}
26Avoid overall: generic stock-video feeling, flat corporate montage, clutter, fake text, readable signs, overexplained scenes, exaggerated claims.`,videoPrompt:`Create a ${v-k}-second Veo / Flow video segment.
27Content category: ${n.promptLabel}
28Segment: ${m+1} of ${l}, ${S}
29Aspect ratio: ${c.aspect}
30Duration: ${v-k} seconds
31Source topic: ${u.title}
32${P}
33Creative production mechanic: ${n.viralMechanic}
34Core visual idea: ${N}
35Why people would watch or share: ${x.spreadAngle}
36Visual direction: ${j}
37Avoid in this segment: ${$}
38Motion: one memorable action per segment, strong visual hook in the first 1.5 seconds, smooth camera movement, polished short-form pacing, loop-friendly ending when possible.
39Audio: no voice, no speech, no narration. Silent output is acceptable. If audio is generated, use only subtle natural ambience or non-verbal tactile SFX.
40Clean edit space: leave natural negative space for later subtitles, but do not render any text.
41Continuity: make this segment feel consistent with the other ${l} segments in color, lighting, subject style, and tone.
42${ue()}
43Safety rules: ${n.safetyRule}
44Constraints: no hype, no misleading claims, no chaotic montage, no readable on-screen text, no voiceover, no dialogue.`}})}function Je(a,o,s,i){const n=b[a],c=y[o],l=he(a,o,s,i),h=oe(i),p=te(s)||n.defaultBrief;return`Clean video asset prompt pack for Veo / Flow
45Content category: ${n.promptLabel}
46Source brief: ${p}
47${h}
48Audience: ${n.audience}
49Aspect ratio: ${c.aspect}
50Total duration: ${c.duration}
51Production rule: Generate ${l.length} clean keyframe images and ${l.length} clean video clips that add up to ${c.duration}.
52Global rule: Create clean cinematic assets for later editing. No on-screen text, no subtitles, no captions, no title cards, no readable signs, no Chinese characters, no English letters, no numbers, no logos, no voiceover, no narration, no dialogue. Any paper, folder, card, screen, label, key fob, luggage tag, menu-like object, or document must stay blank and unbranded.
53Creative production mechanic: ${n.viralMechanic}
54Visual language: ${n.visualLanguage}
55Safety rules: ${n.safetyRule}
56
57${l.map(u=>`${u.title}(${u.time})
58
59Keyframe image prompt:
60${u.imagePrompt}
61
62Video prompt:
63${u.videoPrompt}`).join(`
64
65---
66
67`)}`}function ae(a,o,s,i,n){const c=b[o],l=y[s],h=oe(n),p=te(i)||c.defaultBrief,u=`Content category: ${c.promptLabel}
68Source brief: ${p}
69${h}
70Audience: ${c.audience}
71Aspect ratio: ${l.aspect}
72Duration: ${l.duration}
73Creative production mechanic: ${c.viralMechanic}
74Visual language: ${c.visualLanguage}
75Clean asset rules: no on-screen text, no subtitles, no captions, no title cards, no readable signs, no Chinese characters, no English letters, no numbers, no logos, no voiceover, no narration, no dialogue. Any paper, folder, card, screen, label, key fob, luggage tag, menu-like object, or document must stay blank and unbranded.
76Safety rules: ${c.safetyRule}`;return a==="kling"?`${u}
77
78Kling prompt:
79A ${l.duration} clean visual-only short-form video asset with one clear subject and controlled motion. ${c.visualLanguage}. Show the brief through action and atmosphere only: ${p}. Strong first-frame hook, precise object movement, soft realistic lighting, clean background, high retention for ${l.aspect} viewing.
80
81Negative prompt:
82on-screen text, Chinese characters, English letters, numbers, subtitles, captions, title cards, readable signs, logos, speech bubbles, voiceover, narration, dialogue, talking head, distorted text, cluttered background, low quality, exaggerated promises`:a==="veo"?Je(o,s,i,n):`${u}
83
84Runway prompt:
85${c.visualLanguage}. ${p}. Clean visual-only commercial video asset, one clear subject, smooth camera motion, refined lighting, strong first-frame hook, clean background, no text, no subtitles, no captions, no voiceover, no narration, no dialogue.
86
87Negative:
88on-screen text, Chinese characters, English letters, numbers, subtitles, captions, title cards, readable signs, logos, speech bubbles, voiceover, narration, dialogue, talking head, clutter, chaotic cuts, distorted typography, low resolution, exaggerated claims`}function Qe(a,o,s){const i=b[a];return`Video WEDO 乾淨影片素材企劃|${i.label}
89
90主題:${o}
91${s?`
92視覺參考:${s.summary},主色 ${s.palette.join(" / ")}。`:""}
93
94這支短片適合先生成乾淨畫面素材,再於剪輯階段另外加字幕、旁白、音樂與品牌元素。
95
96適用對象:${i.audience}
97擴散機制:${i.viralMechanic}
98素材原則:不在 AI 生成影片內直接出現中文、字幕、旁白、對話或可讀文字。
99安全邊界:${i.guardrail}
100
101#VideoWEDO #AIO #生成式AI #內容工作流`}function Ke(a){return{travel:"travel",food:"food",product:"product",brand_story:"brand_story",knowledge:"knowledge",event:"event",book:"book",entertainment:"entertainment",anime:"anime_style",buzz:"social_trend"}[a]}function Xe(a){return{travel:"lead_generation",food:"engagement",product:"sales",brand_story:"brand_trust",knowledge:"education",event:"lead_generation",book:"awareness",entertainment:"engagement",anime:"engagement",buzz:"engagement"}[a]}function pe(a){return{travel:"想規劃下一趟高品質行程,請聯繫我們。",food:"收藏這個靈感,下一次就安排這一餐。",product:"想了解完整方案,請私訊或聯繫我們。",brand_story:"如果你也想把品牌故事說清楚,請聯繫 WEDO。",knowledge:"想把內容變成可持續生產的系統,請聯繫 WEDO。",event:"想取得活動資訊或報名方式,請聯繫主辦團隊。",book:"想閱讀完整觀點,請關注新書與作者內容。",entertainment:"喜歡這種企劃,收藏起來下次一起做。",anime:"想看下一集,請收藏並追蹤後續更新。",buzz:"想掌握事件後續,請持續關注完整整理。"}[a]}function Ye({aspect:a,active:o}){const s=a==="9:16",i=a==="1:1";return e.jsx("div",{className:["flex h-24 items-center justify-center rounded-md",o?"bg-white/10":"bg-white"].join(" "),children:e.jsxs("div",{className:["rounded border-2",s?"h-20 w-[45px]":i?"h-[68px] w-[68px]":"h-[52px] w-24",o?"border-amber-200 bg-amber-200/10":"border-[#9b4d2a] bg-[#f7f3ec]"].join(" "),children:[e.jsx("div",{className:["mx-auto mt-2 h-1 rounded-full",s?"w-5":i?"w-6":"w-8",o?"bg-amber-200":"bg-[#9b4d2a]"].join(" ")}),e.jsx("div",{className:["mx-auto mt-2 rounded",s?"h-10 w-7":i?"h-8 w-8":"h-6 w-16",o?"bg-white/20":"bg-white"].join(" ")})]})})}function ca(){const[a,o]=f.useState("knowledge"),[s,i]=f.useState("vertical30"),[n,c]=f.useState(b.knowledge.defaultBrief),[l,h]=f.useState(null),[p,u]=f.useState("type"),[d,m]=f.useState(null),[k,v]=f.useState(null),[S,x]=f.useState(!1),[j,N]=f.useState("WEDO teammate"),[$,P]=f.useState(pe("knowledge")),[z,D]=f.useState(null),U="veo",I=(d==null?void 0:d.promptText)??null,C=f.useMemo(()=>he(a,s,n,I),[a,s,n,I]),E=f.useMemo(()=>{const t=ge(n,b[a]);return Se({title:t.title||b[a].label,brief:n,durationSeconds:y[s].durationSeconds,aspectRatio:y[s].aspect,contentType:Ke(a),objective:Xe(a),audience:b[a].audience,tone
101:"乾淨、克制、具有短影音停留感;畫面素材不直接生成字幕或旁白。",visualStyle:b[a].visualLanguage,cta:$,requestedBy:j,renderTemplate:`GenericShortVideoCleanFootage-${y[s].aspect}-${y[s].durationSeconds}`,segments:C.map(r=>({title:r.title,purpose:r.purpose,message:r.message,spreadAngle:r.spreadAngle,imagePrompt:r.imagePrompt,videoPrompt:r.videoPrompt,startSecond:r.startSecond,endSecond:r.endSecond}))})},[n,$,s,a,j,C]),q=f.useMemo(()=>({kling:ae("kling",a,s,n,I),veo:ae("veo",a,s,n,I),runway:ae("runway",a,s,n,I),social:Qe(a,n,d),job:JSON.stringify(E,null,2)}),[a,s,n,d,I,E]);f.useEffect(()=>()=>{d!=null&&d.previewUrl&&URL.revokeObjectURL(d.previewUrl)},[d==null?void 0:d.previewUrl]);const H=t=>{o(t),c(b[t].defaultBrief),P(pe(t))},F=async t=>{if(t){if(!t.type.startsWith("image/")){v("請上傳圖片檔,例如 JPG、PNG 或 WebP。");return}if(t.size>8*1024*1024){v("圖片請控制在 8MB 以內,方便手機快速分析。");return}x(!0),v(null);try{const r=await Ge(t);m(r)}catch(r){v(r instanceof Error?r.message:"圖片分析失敗,請換一張參考圖。")}finally{x(!1)}}},G=()=>{m(null),v(null)},B=async(t,r)=>{await navigator.clipboard.writeText(r),h(t),window.setTimeout(()=>h(null),1800)},J=()=>{const t=$e(E,j);D(t.id),window.setTimeout(()=>{window.location.href=`/video/studio?job=${t.id}`},700)},Q=y[s],L=be("/video"),g=Object.entries(b),w=Object.entries(y),T=n.trim()||"先輸入一句話主題",A=[{key:"type",label:"類型",value:b[a].label},{key:"brief",label:"主題",value:d?"含參考圖":T.length>18?`${T.slice(0,18)}...`:T},{key:"format",label:"規格",value:Q.label},{key:"result",label:"結果",value:`${C.length} 段 / 可複製`}],Y=(t,r=!1)=>{u(t),r&&window.requestAnimationFrame(()=>{var M;(M=document.getElementById("studio"))==null||M.scrollIntoView({behavior:"smooth",block:"start"})})},W=t=>{const r=A.findIndex(Z=>Z.key===p),M=Math.min(A.length-1,Math.max(0,r+t));u(A[M].key)};return e.jsxs("div",{className:"min-h-screen overflow-x-hidden bg-[#f7f3ec] text-slate-950 selection:bg-amber-200 selection:text-slate-950",children:[e.jsx(we,{title:L.seo.title,description:L.seo.description,image:L.seo.image,imageType:"image/jpeg",imageWidth:L.seo.imageWidth??1200,imageHeight:L.seo.imageHeight??630,imageAlt:L.seo.imageAlt??"Video WEDO Hero 社交分享圖",url:`${fe}/video`,keywords:L.seo.keywords}),e.jsx(ve,{}),e.jsxs("main",{children:[e.jsx("section",{className:"border-b border-stone-200 bg-[#f7f3ec]",children:e.jsxs("div",{className:"container grid gap-8 py-10 md:min-
101h-[calc(100vh-68px)] md:grid-cols-[1fr_0.9fr] md:items-end md:py-16",children:[e.jsxs("div",{className:"max-w-3xl pb-2 md:pb-6",children:[e.jsx(V,{className:"mb-5 border-stone-300 bg-white/70 text-slate-700",variant:"outline",children:"Video WEDO"}),e.jsxs("h1",{className:"max-w-4xl text-5xl font-black leading-[1.03] tracking-normal text-slate-950 md:text-7xl",children:["先做乾淨素材",e.jsx("span",{className:"block text-[#9b4d2a]",children:"再剪成短影音"})]}),e.jsx("p",{className:"mt-6 max-w-2xl text-base leading-7 text-slate-700 md:text-lg",children:"選影片類型、寫下主題,再選直式或橫式;系統會輸出可直接貼到 AI 圖片與影片工具的提示詞。"}),e.jsxs("div",{className:"mt-8 flex flex-col gap-3 sm:flex-row",children:[e.jsx(R,{asChild:!0,className:"h-12 rounded-full bg-slate-950 px-6 text-white hover:bg-slate-800",children:e.jsxs("a",{href:"#studio",children:["開始產生提示詞 ",e.jsx(re,{className:"h-4 w-4"})]})}),e.jsx(R,{asChild:!0,variant:"outline",className:"h-12 rounded-full border-stone-300 bg-white/70 px-6",children:e.jsx("a",{href:"/video/studio",children:"影片工作台"})})]})]}),e.jsxs("div",{className:"rounded-lg border border-stone-300 bg-white p-5 shadow-[0_24px_80px_rgba(41,37,36,0.12)]",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"flex h-11 w-11 items-center justify-center rounded-full bg-slate-950 text-amber-200",children:e.jsx(Ce,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-black uppercase text-[#9b4d2a]",children:"Workflow"}),e.jsx("p",{className:"text-xl font-black text-slate-950",children:"照 4 步走"})]})]}),e.jsx("div",{className:"mt-5 grid gap-3",children:[["1","選影片類型","旅遊、美食、知識、娛樂、動漫、熱議"],["2","寫一句主題","不用會寫 prompt,先把想拍的內容說清楚"],["3","選畫面版型","9:16 直式或 16:9 橫式,30 秒或 60 秒"],["4","複製提示詞","拿到分鏡圖片 prompt 與影片 prompt"]].map(([t,r,M])=>e.jsxs("button",{type:"button",className:"flex items-start gap-3 rounded-md border border-stone-200 bg-[#fbfaf7] p-3 text-left transition hover:bg-white",onClick:()=>Y(A[Number(t)-1].key,!0),children:[e.jsx("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[#9b4d2a] font-mono text-sm font-black text-white",children:t}),e.jsxs("span",{children:[e.jsx("span",{className:"block text-sm font-black text-slate-950",children:r}),e.jsx("span",{className:"mt-1 hidden text-xs leading-5 text-slate-600 md:block",children:M})]})]},t))})]})]})}),e.jsx("section",{id:"studio",className:"bg-[#f7f3ec] py-10 md:py-16",children:e.jsx("div",{className:"container",children:e.jsxs("div",{className:"mx-auto max-w-5xl",children:[e.jsx("div",{className:"mb-5 flex gap-2 overflow-x-auto pb-2",children:A.map((t,r)=>e.jsxs("button",{type:"button",className:`min-w-[116px] rounded-full border px-4 py-3 text-left transition ${p===t.key?"border-slate-950 bg-slate-950 text-white":"border-stone-300 bg-white text-slate-700"}`,onClick:()=>Y(t.key),children:[e.jsxs("span",{className:"block text-xs font-bold",children:["0",r+1]}),e.jsx("span",{className:"block text-sm font-semibold",children:t.label})]},t.key))}),e.jsxs("div",{className:"rounded-lg border border-stone-300 bg-white p-4 shadow-sm md:p-6",children:[p==="type"?e.jsxs("div",{children:[e.jsx(V,{className:"mb-4 bg-[#9b4d2a] text-white",children:"步驟 1"}),e.jsx("h2",{className:"text-2xl font-black text-slate-950 md:text-4xl",children:"你想做哪一種影片?"}),e.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-600",children:"先選一個最接近的方向。後面輸入主題時,可以再補充品牌、場景、角色或商品。"}),e.jsx("div",{className:"mt-5 grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:g.map(([t,r])=>e.jsxs("button",{type:"button",className:`rounded-lg border p-4 text-left transition ${a===t?"border-slate-950 bg-slate-950 text-white":"border-stone-200 bg-[#fbfaf7] text-slate-950"}`,onClick:()=>{H(t),u("brief")},children:[e.jsxs("span",{className:"flex items-center justify-between gap-3 text-base font-bold",children:[r.label,a===t?e.jsx(le,{className:"h-5 w-5 text-amber-200"}):null]}),e.jsx("span",{className:`mt-2 block text-sm leading-6 ${a===t?"text-slate-300":"text-slate-600"}`,children:r.viralMechanic})]},t))})]}):null,p==="brief"?e.jsxs("div",{children:[e.jsx(V,{className:"mb-4 bg-[#9b4d2a] text-white",children:"步驟 2"}),e.jsx("h2",{className:"text-2xl font-black text-slate-950 md:text-4xl",children:"寫主題,也可以上傳參考圖"}),e.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-600",children:"用自然語言寫主題;如果有喜歡的畫面,也可以用一張圖讓系統抓出視覺風格。"}),e.jsx(ke,{value:n,onChange:t=>c(t.target.value),className:"mt-5 min-h-44 resize-none rounded-lg border-stone-300 bg-[#fbfaf7] text-base leading-7"}),e.jsx("div",{className:"mt-4 grid gap-2 sm:grid-cols-2",children:b[a].samples.map(t=>e.jsx("button",{type:"button",className:"rounded-lg border border-stone-200 bg-white p-3 text-left text-sm leading-6 text-slate-700",onClick:()=>c(t),children:t},t))}),e.jsxs("div",{className:"mt-5 rounded-lg border border-stone-200 bg-[#fbfaf7] p-4",children:[e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-black text-slate-950",children:"參考圖風格"}),e.jsx("p",{className:"mt-1 text-sm leading-6 text-slate-600",children:"上傳一張接近你想要的畫面,系統會判斷色調、亮度、對比與構圖方向。"})]}),e.jsxs("label",{className:"inline-flex h-11 cursor-pointer items-center justify-center gap-2 rounded-full bg-slate-950 px-4 text-sm font-bold text-white transition hover:bg-slate-800",children:[e.jsx(Le,{className:"h-4 w-4"}),S?"分析中":d?"更換圖片":"上傳圖片",e.jsx("input",{type:"file",accept:"image/png,image/jpeg,image/webp,image/gif",className:"sr-only",disabled:S,onChange:t=>{var r;F((r=t.currentTarget.files)==null?void 0:r[0]),t.currentTarget.value=""}})]})]}),k?e.jsx("p",{className:"mt-3 rounded-md border border-red-200 bg-red-50 p-3 text-sm leading-6 text-red-800",children:k}):null,d?e.jsxs("div",{className:"mt-4 grid gap-3 rounded-md border border-stone-200 bg-white p-3 sm:grid-cols-[120px_1fr]",children:[e.jsx("img",{src:d.previewUrl,alt:"參考圖預覽",className:"h-28 w-full rounded-md object-cover sm:h-full"}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"break-words text-sm font-bold text-slate-950",children:d.fileName}),e.jsxs("p",{className:"mt-1 text-xs leading-5 text-slate-500",children:[d.width," x ",d.height," / ",d.aspectLabel]})]}),e.jsx("button",{type:"button",className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full border border-stone-300 text-slate-600 transition hover:bg-stone-100",onClick:G,"aria-label":"移除參考圖",children:e.jsx(Te,{className:"h-4 w-4"})})]}),e.jsx("p",{className:"mt-3 text-sm font-semibold text-[#9b4d2a]",children:d.summary}),e.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:d.palette.map(t=>e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-stone-200 bg-[#fbfaf7] px-3 py-1 text-xs font-semibold text-slate-700",children:[e.jsx("span",{className:"h-4 w-4 roun
101ded-full border border-black/10",style:{backgroundColor:t}}),t]},t))}),e.jsx("p",{className:"mt-3 text-xs leading-5 text-slate-500",children:"提示詞會參考這張圖的整體光線、色彩關係、材質感與構圖密度,但不會要求模型複製人物、文字、標誌或原圖內容。"})]})]}):null]}),e.jsxs("div",{className:"mt-5 rounded-lg border border-stone-200 bg-white p-4",children:[e.jsxs("div",{className:"mb-3",children:[e.jsx("p",{className:"text-sm font-black text-slate-950",children:"後製資訊"}),e.jsx("p",{className:"mt-1 text-sm leading-6 text-slate-600",children:"這些內容只會放進任務規格與 Remotion overlay,不會寫進圖片或影片生成素材。"})]}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsxs("label",{className:"block",children:[e.jsx("span",{className:"text-xs font-bold text-[#9b4d2a]",children:"建立同仁"}),e.jsx(ie,{value:j,onChange:t=>N(t.target.value),className:"mt-2 h-11 rounded-md border-stone-300 bg-[#fbfaf7]"})]}),e.jsxs("label",{className:"block",children:[e.jsx("span",{className:"text-xs font-bold text-[#9b4d2a]",children:"後製 CTA"}),e.jsx(ie,{value:$,onChange:t=>P(t.target.value),className:"mt-2 h-11 rounded-md border-stone-300 bg-[#fbfaf7]"})]})]})]})]}):null,p==="format"?e.jsxs("div",{children:[e.jsx(V,{className:"mb-4 bg-[#9b4d2a] text-white",children:"步驟 3"}),e.jsx("h2",{className:"text-2xl font-black text-slate-950 md:text-4xl",children:"選影片版型"}),e.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-600",children:"直式適合 Reels、Shorts、TikTok;橫式適合 YouTube、網站 Hero、簡報或活動螢幕。"}),e.jsx("div",{className:"mt-5 grid gap-3 sm:grid-cols-2",children:w.map(([t,r])=>e.jsxs("button",{type:"button",className:`rounded-lg border p-4 text-left transition ${s===t?"border-slate-950 bg-slate-950 text-white":"border-stone-200 bg-[#fbfaf7] text-slate-950"}`,onClick:()=>{i(t),u("result")},children:[e.jsx(Ye,{aspect:r.aspect,active:s===t}),e.jsxs("span",{className:"mt-4 flex items-center justify-between gap-3 text-base font-bold",children:[r.label,s===t?e.jsx(le,{className:"h-5 w-5 text-amber-200"}):null]}),e.jsxs("span",{className:`mt-2 block text-sm ${s===t?"text-slate-300":"text-slate-600"}`,children:[r.segmentLabel,"素材,適合",r.orientation,"畫面"]})]},t))})]}):null,p==="result"?e.jsxs("div",{children:[e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{children:[e.jsx(V,{className:"mb-4 bg-[#9b4d2a] text-white",children:"結果"}),e.jsx("h2",{className:"text-2xl font-black text-slate-950 md:text-4xl",children:"複製圖片 / 影片提示詞"})]}),e.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row",children:[e.jsxs(R,{className:"h-11 rounded-full bg-[#9b4d2a] text-white hover:bg-[#813f22]",onClick:J,children:[e.jsx(Re,{className:"h-4 w-4"}),z?"已送出":"送到影片工作台"]}),e.jsxs(R,{variant:"outline",className:"h-11 rounded-full border-stone-300 bg-white text-slate-900",onClick:()=>B(U,q[U]),children:[e.jsx(K,{className:"h-4 w-4"}),l===U?"已複製":"複製提示詞"]})]})]}),e.jsxs("div",{className:"mt-5 rounded-lg border border-stone-200 bg-[#fbfaf7] p-4",children:[e.jsxs("h3",{className:"font-bold text-slate-950",children:[b[a].label," / ",Q.label]}),e.jsx("p",{className:"mt-2 text-sm leading-6 text-slate-600",children:n}),d?e.jsxs("p",{className:"mt-2 text-sm leading-6 text-slate-600",children:["視覺參考:",d.summary,",主色 ",d.palette.join(" / ")]}):null,e.jsxs("p",{className:"mt-3 text-sm font-semibold text-[#9b4d2a]",children:["建議:Veo / Flow,",C.length," 張乾淨分鏡圖 + ",C.length," 段乾淨影片素材"]}),z?e.jsxs("p",{className:"mt-3 rounded-md border border-emerald-200 bg-emerald-50 p-3 text-sm leading-6 text-emerald-900",children:["已送到影片工作台:",z,"。系統稍後會轉到 `/video/studio`,目前尚未啟動 render。"]}):null,e.jsxs("div",{className:"mt-4 grid gap-2 text-sm leading-6 text-slate-700 sm:grid-cols-3",children:[e.jsxs("div",{className:"rounded-md bg-white p-3",children:[e.jsx(Ie,{className:"mb-2 h-4 w-4 text-[#9b4d2a]"}),"先做分鏡圖片"]}),e.jsxs("div",{className:"rounded-md bg-white p-3",children:[e.jsx(Me,{className:"mb-2 h-4 w-4 text-[#9b4d2a]"}),"再做 10 秒影片"]}),e.jsxs("div",{className:"rounded-md bg-white p-3",children:[e.jsx(Pe,{className:"mb-2 h-4 w-4 text-[#9b4d2a]"}),"最後再剪字幕與音樂"]})]})]}),e.jsxs(Ue,{defaultValue:"segments",className:"mt-5",children:[e.jsxs(Ee,{className:"mb-4 h-auto w-full flex-wrap justify-start rounded-md bg-stone-100 p-1",children:[e.jsx(O,{value:"segments",children:"分段素材"}),e.jsx(O,{value:"veo",children:"完整提示詞"}),e.jsx(O,{value:"kling",children:"Kling"}),e.jsx(O,{value:"runway",children:"Runway"}),e.jsx(O,{value:"social",children:"社群文案"}),e.jsx(O,{value:"job",children:"任務 JSON"})]}),e.jsx(de,{value:"segments",children:e.jsx("div",{className:"space-y-3",children:C.map(t=>e.jsxs("div",{className:"rounded-md border border-stone-200 bg-white p-4",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("h3",{className:"font-bold text-slate-950",children:t.title}),e.jsx(V,{variant:"outline",className:"border-stone-300 text-slate-600",children:t.time})]}),e.jsx("p",{className:"mt-3 text-sm font-semibold text-[#9b4d2a]",children:t.purpose}),e.jsxs("div",{className:"mt-3 rounded-md border border-amber-200 bg-amber-50 p-3 text-sm leading-6 text-amber-950",children:[e.jsx("p",{className:"font-bold",children:"本段核心"}),e.jsx("p",{className:"mt-1",children:t.message}),e.jsx("p",{className:"mt-2 text-xs font-semibold uppercase text-[#9b4d2a]",children:"擴散角度"}),e.jsx("p",{children:t.spreadAngle}),e.jsx("p",{className:"mt-2 text-xs font-semibold text-slate-600",children:"生成素材內不加字幕、不加旁白;字幕與口播留到剪輯階段。"})]}),e.jsxs("div",{className:"mt-4 rounded-md border border-stone-200 bg-[#fbfaf7] p-3",children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between gap-3",children:[e.jsx("p",{className:"text-sm font-bold text-slate-950",children:"分鏡圖片生成提示詞"}),e.jsxs(R,{size:"sm",variant:"outline",className:"h-9 border-stone-300 bg-white",onClick:()=>B(`segment-${t.index}-image`,t.imagePrompt),children:[e.jsx(K,{className:"h-4 w-4"}),l===`segment-${t.index}-image`?"已複製":"複製"]})]}),e.jsx("pre",{className:"max-h-[280px] overflow-auto whitespace-pre-wrap break-words text-sm leading-6 text-slate-700",children:t.imagePrompt})]}),e.jsxs("div",{className:"mt-3 rounded-md border border-slate-800 bg-slate-950 p-3 text-slate-100",children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between gap-3",children:[e.jsxs("p",{className:"text-sm font-bold text-amber-200",children:[t.clip
101DurationSeconds," 秒影片提示詞"]}),e.jsxs(R,{size:"sm",variant:"outline",className:"h-9 border-white/20 bg-white/10 text-white hover:bg-white/20",onClick:()=>B(`segment-${t.index}-video`,t.videoPrompt),children:[e.jsx(K,{className:"h-4 w-4"}),l===`segment-${t.index}-video`?"已複製":"複製"]})]}),e.jsx("pre",{className:"max-h-[320px] overflow-auto whitespace-pre-wrap break-words text-sm leading-6 text-slate-200",children:t.videoPrompt})]})]},t.index))})}),["veo","kling","runway","social","job"].map(t=>e.jsx(de,{value:t,children:e.jsxs("div",{className:"rounded-md border border-stone-200 bg-slate-950 p-4 text-slate-100",children:[e.jsxs("div",{className:"mb-3 flex items-center justify-between gap-3",children:[e.jsxs("p",{className:"flex items-center gap-2 text-sm font-bold uppercase text-amber-200",children:[t==="job"?e.jsx(Be,{className:"h-4 w-4"}):null,t]}),e.jsxs(R,{size:"sm",variant:"outline",className:"border-white/20 bg-white/10 text-white hover:bg-white/20",onClick:()=>B(t,q[t]),children:[l===t?e.jsx(ze,{className:"h-4 w-4"}):e.jsx(K,{className:"h-4 w-4"}),l===t?"已複製":"複製"]})]}),e.jsx("pre",{className:"max-h-[520px] overflow-auto whitespace-pre-wrap break-words text-sm leading-7 text-slate-200",children:q[t]})]})},t))]})]}):null,e.jsxs("div",{className:"mt-6 flex gap-3",children:[e.jsx(R,{type:"button",variant:"outline",className:"h-11 flex-1 rounded-full border-stone-300",disabled:p==="type",onClick:()=>W(-1),children:"上一步"}),e.jsxs(R,{type:"button",className:"h-11 flex-1 rounded-full bg-slate-950 text-white hover:bg-slate-800",disabled:p==="result",onClick:()=>W(1),children:["下一步 ",e.jsx(re,{className:"h-4 w-4"})]})]})]})]})})})]}),e.jsx(xe,{})]})}export{ca 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.