diff --git a/src/main/java/kz/konturai/parser/service/MarketingStrategyV3Service.java b/src/main/java/kz/konturai/parser/service/MarketingStrategyV3Service.java index 0f25a1a..accc199 100644 --- a/src/main/java/kz/konturai/parser/service/MarketingStrategyV3Service.java +++ b/src/main/java/kz/konturai/parser/service/MarketingStrategyV3Service.java @@ -747,68 +747,38 @@ public class MarketingStrategyV3Service { String niche, String brand, String city, String platform) { - // Первые 100 символов текста поста — для контекста сцены - String sceneContext = postText.length() > 100 - ? postText.substring(0, 100).trim() : postText.trim(); - - // Убираем кириллицу из контекста для промпта — оставляем только смысл - // (Переводить не нужно — Veo 3 enhance сам улучшит EN-промпт) - // Описываем тему своими словами на EN - - // Определяем тип сцены по теме поста + String speechScript = postText.length() > 250 ? postText.substring(0, 250).trim() : postText.trim(); String sceneType = resolveSceneType(theme, niche); - - // Стиль и звук по платформе String style, audio; + switch (platform) { case "tiktok" -> { - style = "dynamic TikTok Reels style, fast energetic cuts, trendy transitions, " + - "handheld camera movement, authentic street style"; - audio = "upbeat modern music, energetic rhythm, suitable for young Kazakh audience, " + - "no lyrics, ambient background"; + style = "dynamic TikTok Reels style, fast energetic cuts, trendy transitions, handheld camera movement, authentic street style"; + audio = "upbeat modern music, energetic rhythm, suitable for young Kazakh audience"; } case "telegram" -> { style = "clean professional look, steady camera, informative documentary style"; audio = "calm soft background music, subtle ambient sounds, professional feel"; } - default -> { // instagram - style = "cinematic Instagram Reels, smooth gimbal movement, warm color grading, " + - "aesthetic lifestyle composition, shallow depth of field"; - audio = "modern soft background music, atmospheric ambient, " + - "natural environment sounds, warm and inviting"; + default -> { + style = "cinematic Instagram Reels, smooth gimbal movement, warm color grading, aesthetic lifestyle composition, shallow depth of field"; + audio = "modern soft background music, atmospheric ambient, natural environment sounds"; } } return String.format( - // СЦЕНА "Vertical 9:16 cinematic video for %s business in %s, Kazakhstan. " + "Business niche: %s. Brand: %s. " + "Scene: %s. " + "Visual concept: %s. " + - // ЛЮДИ - "People: Kazakh appearance, natural authentic look, " + - "real emotions, perfect anatomy, photorealistic. " + - // СТИЛЬ + "People: Kazakh appearance, natural authentic look, real emotions, perfect anatomy, photorealistic. " + "Style: %s. " + - "Quality: 8K resolution, professional lighting, sharp focus, " + - "no blur, no CGI, photorealistic, commercial grade. " + - // ЗВУК — явно для Veo 3 + "Quality: 8K resolution, professional lighting, sharp focus, no blur, no CGI, photorealistic, commercial grade. " + "Sound design: %s. " + - // ЗАПРЕТЫ — критично важны - "STRICT RULES: " + - "NO text on screen. " + - "NO subtitles. " + - "NO captions. " + - "NO watermarks. " + - "NO on-screen graphics. " + - "NO logos overlaid. " + - "NO artificial CGI look.", - platform, city, - niche, brand, - sceneType, - theme, - style, - audio + "CRITICAL AUDIO INSTRUCTION: The narrator, voiceover, or characters MUST speak strictly in the RUSSIAN language with natural intonation. " + + "Use the following Russian text as the exact spoken dialogue/voiceover script: \"%s\". " + + "STRICT RULES: NO text on screen. NO subtitles. NO captions. NO watermarks. NO on-screen graphics. NO logos overlaid. NO artificial CGI look.", + platform, city, niche, brand, sceneType, theme, style, audio, speechScript ); }