diff --git "a/app.py" "b/app.py" new file mode 100644--- /dev/null +++ "b/app.py" @@ -0,0 +1,2752 @@ +# ═══════════════════════════════════════════════════════════════ +# 🧠 REALITY SHIFT ENGINE + MIND BREACH ENGINE +# Complete Autonomous Content Production Intelligence System +# Version: APEX_5.0 + OMEGA_1.0 +# ═══════════════════════════════════════════════════════════════ + +!pip install openai google-generativeai requests beautifulsoup4 rich markdown tabulate python-dateutil pytrends --quiet + +import os +import json +import random +import hashlib +import textwrap +from datetime import datetime, timedelta +from collections import OrderedDict +from enum import Enum +from typing import List, Dict, Optional, Tuple +from dataclasses import dataclass, field +from rich.console import Console +from rich.table import Table +from rich.panel import Panel +from rich.markdown import Markdown +from rich.text import Text +from rich import box +from tabulate import tabulate + +console = Console(width=120) + +console.print(Panel.fit( + "[bold magenta]🧠 REALITY SHIFT ENGINE + MIND BREACH ENGINE[/bold magenta]\n" + "[cyan]Complete Autonomous Content Production Intelligence System[/cyan]\n" + "[yellow]Version: APEX_5.0 + OMEGA_1.0[/yellow]\n" + "[green]Status: ALL SYSTEMS ONLINE[/green]", + border_style="bright_magenta", + title="⚡ INITIALIZED", + subtitle="Let's make reality jealous." +)) + +print("\n✅ All dependencies installed and loaded successfully!") +# ═══════════════════════════════════════════════════════════════ +# 🔧 CORE CONFIGURATION & DATA ARCHITECTURE +# ═══════════════════════════════════════════════════════════════ + +# ────────────────────────────────────────── +# ENUMS & DATA CLASSES +# ────────────────────────────────────────── + +class Mode(Enum): + PHANTOM = "👻 PHANTOM — Renovation/Restoration Timelapse" + ARCHITECT = "🏛️ ARCHITECT — Space Design & Visualization" + TITAN = "🏗️ TITAN — Mega Construction & Infrastructure" + RESURRECT = "⚡ RESURRECT — Object & Vehicle Restoration" + NATURE = "🌿 NATURE — Landscape & Environmental Transformation" + GHOST_KITCHEN = "🍳 GHOST KITCHEN — Restaurant/Food Space Buildout" + WARZONE = "🔨 WARZONE — Disaster Recovery & Restoration" + MONEY_SHOT = "💰 MONEY SHOT — Real Estate Listing Domination" + DIRECTOR = "🎬 DIRECTOR — Custom Cinematic Storytelling" + STRATEGY = "📊 STRATEGY — Content & Business Intelligence" + +class CameraProfile(Enum): + DOCUMENTARY_WITNESS = "Documentary Witness (24mm, f/8, static)" + ARCHITECTURAL_DIGEST = "Architectural Digest (24mm TS, f/11, editorial)" + CINEMATIC_STORYTELLER = "Cinematic Storyteller (35-50mm, f/2.8-4)" + DRONE_GOD = "Drone God (24mm aerial, epic scale)" + DETAIL_HUNTER = "Detail Hunter (50-100mm, f/2.8, tactile)" + +class Stage(Enum): + STAGE_0 = "THE DEATH STATE" + STAGE_1 = "THE TEARDOWN" + STAGE_2 = "THE SKELETON" + STAGE_3 = "THE SKIN" + STAGE_4 = "THE CLEAN SHELL" + STAGE_5 = "THE PARADISE" + +class IdeaDimension(Enum): + CROSS_NICHE_FUSION = "🔀 Cross-Niche Fusion" + IMPOSSIBLE_CONTRAST = "💥 Impossible Contrast" + TREND_PREDICTION = "🔮 Trend Prediction" + NEWS_JACKING = "📰 News-Jacking" + FORMAT_INNOVATION = "🎭 Format Innovation" + AUDIENCE_PSYCHOLOGY = "🧠 Psychological Trigger" + COMPETITION_GAP = "🕳️ Competition Gap" + SEASONAL_EVENT = "📅 Seasonal/Event-Based" + SERIES_ARCHITECTURE = "📺 Series Architecture" + CONTROVERSY = "🔥 Controversy/Debate" + NOSTALGIA = "💭 Nostalgia Mining" + COLLABORATION = "🤝 Collaboration Catalyst" + +@dataclass +class SceneLock: + camera_profile: str + focal_length: str + height: str + aperture: str + orientation: str + tripod_locked: bool = True + +@dataclass +class Landmark: + name: str + position: str + description: str + permanent: bool = True + +@dataclass +class ImagePrompt: + stage: str + stage_name: str + scene_lock: str + landmarks: str + description: str + lighting: str + mood: str + negative: str + +@dataclass +class VideoPrompt: + video_number: int + transition_name: str + camera: str + action: str + motion_details: str + duration_feel: str + forbidden: str + +@dataclass +class ContentIdea: + idea_number: int + dimension: str + title: str + viral_score: float + hook: str + concept: str + why_it_works: str + reality_shift_mode: str + best_platform: str + timing: str + execution_blueprint: List[str] + keywords: List[str] + hashtags: List[str] + series_potential: str + engagement_prompt: str + unique_factor: str + +@dataclass +class TitleBlock: + primary: str + alternate: str + short: str + +@dataclass +class KeywordBlock: + primary_seo: List[str] + long_tail: List[str] + hashtags: List[str] + ai_platform_tags: List[str] + metadata: List[str] + +console.print("[bold green]✅ Core data architecture loaded![/bold green]") +# ═══════════════════════════════════════════════════════════════ +# 🏗️ MATERIAL & CONSTRUCTION INTELLIGENCE DATABASE +# The most detailed construction knowledge base ever in a notebook +# ═══════════════════════════════════════════════════════════════ + +MATERIAL_DATABASE = { + "wood": { + "white_oak": { + "appearance": "Warm golden-brown with prominent straight grain", + "finish_options": ["clear satin polyurethane", "natural oil finish", "matte lacquer", "wire-brushed texture"], + "prompt_tokens": "white oak hardwood with visible grain pattern, warm golden-brown tone, satin finish, natural wood texture" + }, + "walnut": { + "appearance": "Rich dark brown with purple undertones, tight grain", + "finish_options": ["natural oil", "satin polyurethane", "hand-rubbed danish oil"], + "prompt_tokens": "American walnut with deep brown-purple tones, tight grain pattern, hand-rubbed satin finish" + }, + "maple": { + "appearance": "Light cream to pale amber, subtle grain, hard and smooth", + "finish_options": ["clear coat", "water-based poly", "light stain"], + "prompt_tokens": "hard maple with light cream color, subtle fine grain, smooth polished surface" + }, + "reclaimed": { + "appearance": "Mixed patina, nail holes, saw marks, paint remnants", + "finish_options": ["sealed natural", "light sand + clear coat", "wire brushed"], + "prompt_tokens": "reclaimed barn wood with weathered gray patina, visible nail holes, authentic saw marks, character-rich surface" + }, + "cedar": { + "appearance": "Reddish-brown, aromatic, visible grain lines", + "finish_options": ["natural weather", "clear sealant", "semi-transparent stain"], + "prompt_tokens": "western red cedar with warm reddish-brown color, natural grain lines, aromatic character wood" + } + }, + "stone": { + "calacatta_marble": { + "appearance": "White base, dramatic gold/gray veining", + "finish_options": ["polished mirror", "honed matte", "leathered"], + "prompt_tokens": "Calacatta marble with bright white base and dramatic gold-gray veining, polished to mirror finish, luxury natural stone" + }, + "carrara_marble": { + "appearance": "White-gray base, subtle gray veining, cooler tone", + "finish_options": ["polished", "honed", "tumbled"], + "prompt_tokens": "Carrara marble with cool white-gray base, delicate gray veining, honed matte finish, classic Italian stone" + }, + "concrete": { + "appearance": "Medium gray, slight aggregate texture, form marks", + "finish_options": ["raw sealed", "polished", "acid stained", "micro-topping"], + "prompt_tokens": "poured concrete with natural medium gray color, slight aggregate texture, sealed matte surface, industrial modern" + }, + "quartzite": { + "appearance": "Similar to marble but harder, crystalline structure", + "finish_options": ["polished", "honed", "leathered"], + "prompt_tokens": "natural quartzite with crystalline structure, marble-like veining, extremely durable polished surface" + }, + "travertine": { + "appearance": "Warm beige/cream, natural pitting", + "finish_options": ["filled and polished", "unfilled natural", "tumbled"], + "prompt_tokens": "travertine with warm beige-cream color, natural pitting and texture, filled and honed finish" + } + }, + "metal": { + "brushed_brass": { + "appearance": "Warm gold, directional brush marks, subtle reflection", + "prompt_tokens": "brushed brass hardware with warm gold tone, directional satin texture, soft warm reflection" + }, + "matte_black": { + "appearance": "Flat black, no reflection, powder-coat texture", + "prompt_tokens": "matte black powder-coated metal, zero reflection, smooth flat finish, modern minimal" + }, + "polished_chrome": { + "appearance": "Mirror-like, cool silver, sharp reflections", + "prompt_tokens": "polished chrome with mirror finish, cool silver tone, sharp crisp reflections of surrounding environment" + }, + "oil_rubbed_bronze": { + "appearance": "Dark brown-black, copper highlights on edges", + "prompt_tokens": "oil-rubbed bronze with dark brown-black base, warm copper highlights on raised edges, living patina finish" + } + }, + "fabric": { + "linen": { + "appearance": "Natural texture, slight wrinkle, breathable drape", + "prompt_tokens": "natural linen fabric with organic texture, soft gentle wrinkles, relaxed breathable drape" + }, + "velvet": { + "appearance": "Deep pile, directional light absorption, rich color saturation", + "prompt_tokens": "rich velvet fabric with deep pile, directional light play, saturated color depth, luxurious soft texture" + }, + "leather": { + "appearance": "Natural grain variation, stitch details, develops patina", + "prompt_tokens": "full-grain leather with natural variation, visible pore texture, quality saddle stitching, developing warm patina" + }, + "boucle": { + "appearance": "Loopy textured surface, cozy appearance, nubby", + "prompt_tokens": "bouclé fabric with loopy nubby texture, cozy tactile surface, warm and inviting" + } + }, + "tile": { + "subway": { + "appearance": "3x6 or 4x8 rectangular, glossy or matte glaze", + "prompt_tokens": "classic subway tile in 3x6 format, slightly glossy glaze, thin consistent grout lines, beveled or flat edge" + }, + "zellige": { + "appearance": "Handmade Moroccan tile, irregular surface, color variation", + "prompt_tokens": "handmade Zellige tile with irregular surface texture, rich color variation between individual tiles, artisan character" + }, + "large_format_porcelain": { + "appearance": "24x48 or larger, stone-look, thin grout lines", + "prompt_tokens": "large format porcelain tile with stone-look finish, minimal grout lines, seamless continuous surface" + }, + "penny_round": { + "appearance": "Small circular mosaic, often on mesh backing", + "prompt_tokens": "penny round mosaic tile in circular pattern, uniform grout spacing, classic geometric detail" + }, + "herringbone": { + "appearance": "Rectangular tiles laid in V-pattern", + "prompt_tokens": "herringbone pattern tile layout with precise V-angle alignment, dynamic directional visual energy" + } + } +} + +# ────────────────────────────────────────── +# CONSTRUCTION MACRO DATABASE +# ────────────────────────────────────────── + +CONSTRUCTION_MACROS = { + "interior_full_gut": { + "name": "Interior Full Gut Renovation", + "phases": [ + {"name": "Pre-Construction", "tasks": ["Permits", "Material ordering", "Protection installation", "Temporary power"], "days": "1-3"}, + {"name": "Selective Demo", "tasks": ["Remove fixtures", "Remove flooring", "Remove drywall", "Remove cabinets", "Debris haul"], "days": "3-5"}, + {"name": "Structural", "tasks": ["Header installation", "LVL beams", "Temporary shoring", "Subfloor repair"], "days": "2-7"}, + {"name": "Rough MEP", "tasks": ["Electrical rough-in", "Plumbing rough-in", "HVAC modification", "Low voltage"], "days": "5-10"}, + {"name": "Inspection", "tasks": ["Rough inspection", "Corrections", "Approval"], "days": "1-5"}, + {"name": "Close-Up", "tasks": ["Insulation", "Vapor barrier", "Drywall hang", "First mud coat"], "days": "3-7"}, + {"name": "Finish Surfaces", "tasks": ["Mud/sand/prime", "Paint ceilings", "Paint walls", "Flooring install", "Tile work"], "days": "7-14"}, + {"name": "Trim & Millwork", "tasks": ["Base molding", "Crown molding", "Cabinets", "Countertops", "Built-ins"], "days": "5-10"}, + {"name": "Fixture Install", "tasks": ["Lighting", "Plumbing fixtures", "Appliances", "Hardware"], "days": "3-5"}, + {"name": "Final Details", "tasks": ["Touch-up paint", "Caulking", "Construction clean", "Final inspection"], "days": "2-3"}, + {"name": "Staging", "tasks": ["Furniture placement", "Art hanging", "Textile styling", "Photography prep"], "days": "1-2"} + ], + "total_duration_range": "6-12 weeks", + "required_trades": ["General Contractor", "Electrician", "Plumber", "HVAC Tech", "Drywall Crew", "Painter", "Tile Setter", "Floor Installer", "Cabinet Installer", "Countertop Fabricator"], + "ppe_required": ["Hard hat", "Safety glasses", "Dust mask/N95", "Steel-toe boots", "Gloves", "Ear protection"] + }, + "kitchen_remodel": { + "name": "Kitchen Remodel", + "phases": [ + {"name": "Demo", "tasks": ["Remove appliances", "Remove countertops", "Remove cabinets", "Remove flooring"], "days": "2-3"}, + {"name": "Structural", "tasks": ["Open walls", "Install headers", "Modify floor framing"], "days": "2-5"}, + {"name": "Rough-In", "tasks": ["Plumbing relocation", "Electrical circuits", "HVAC for range hood", "Gas line"], "days": "3-7"}, + {"name": "Surfaces", "tasks": ["Drywall repair", "Subfloor prep", "Flooring installation", "Wall paint"], "days": "5-10"}, + {"name": "Cabinets", "tasks": ["Layout lines", "Upper cabinet install", "Base cabinet install", "Leveling and shimming"], "days": "2-4"}, + {"name": "Countertops", "tasks": ["Template", "Fabrication wait", "Installation", "Sealing"], "days": "10-15"}, + {"name": "Backsplash", "tasks": ["Tile layout", "Thinset + tile install", "Grout", "Seal grout"], "days": "2-4"}, + {"name": "Fixtures", "tasks": ["Faucet/sink", "Dishwasher", "Range/cooktop", "Range hood", "Refrigerator", "Lighting", "Hardware"], "days": "2-3"}, + {"name": "Staging", "tasks": ["Counter styling", "Open shelf styling", "Lighting ambiance", "Photography"], "days": "1"} + ], + "total_duration_range": "4-10 weeks" + }, + "bathroom_renovation": { + "name": "Bathroom Renovation", + "phases": [ + {"name": "Demo", "tasks": ["Remove vanity", "Remove toilet", "Remove shower/tub", "Remove tile", "Remove drywall in wet areas"], "days": "1-3"}, + {"name": "Rough-In", "tasks": ["Drain relocation", "Supply line work", "Shower valve rough-in", "Exhaust fan", "Electrical"], "days": "2-5"}, + {"name": "Waterproofing", "tasks": ["Cement board", "Waterproof membrane", "Shower pan", "Flood test 24hr"], "days": "3-5"}, + {"name": "Tile", "tasks": ["Shower floor tile", "Shower wall tile", "Floor tile", "Accent/niche tile", "Grout + seal"], "days": "4-7"}, + {"name": "Vanity + Top", "tasks": ["Vanity cabinet install", "Countertop + sink install", "Faucet", "Drain connection"], "days": "1-2"}, + {"name": "Fixtures", "tasks": ["Toilet", "Shower glass", "Mirror", "Light fixtures", "Accessories"], "days": "1-3"}, + {"name": "Staging", "tasks": ["Rolled towels", "Greenery", "Soap dispensers", "Candle", "Soft lighting"], "days": "1"} + ], + "total_duration_range": "3-6 weeks" + }, + "exterior_facade": { + "name": "Exterior Facade Restoration", + "phases": [ + {"name": "Assessment", "tasks": ["Structural inspection", "Historical review", "Lead/asbestos testing", "Scope documentation"], "days": "3-7"}, + {"name": "Site Prep", "tasks": ["Scaffolding erection", "Ground protection", "Debris nets", "Temporary weatherproofing"], "days": "2-5"}, + {"name": "Demolition", "tasks": ["Remove failing cladding", "Remove rotted trim", "Remove old windows", "Remove old roofing"], "days": "3-7"}, + {"name": "Structural Repair", "tasks": ["Replace rotted framing", "Sister damaged members", "Replace sheathing", "Flash penetrations"], "days": "3-10"}, + {"name": "Weatherproofing", "tasks": ["Weather barrier", "Window flashing", "New window install", "Door installation"], "days": "3-7"}, + {"name": "Cladding", "tasks": ["New siding/stucco/brick", "Trim installation", "Soffit and fascia", "Gutters"], "days": "5-14"}, + {"name": "Finish", "tasks": ["Prime", "Two coats exterior paint", "Caulk joints", "Hardware"], "days": "3-7"}, + {"name": "Landscape", "tasks": ["Remove scaffolding", "Grade restoration", "Planting", "Hardscape repair"], "days": "2-5"}, + {"name": "Hero Staging", "tasks": ["Power wash walkways", "Landscape lighting", "Interior lights through windows", "Golden hour photography"], "days": "1"} + ], + "total_duration_range": "8-16 weeks" + }, + "vehicle_restoration": { + "name": "Vehicle Restoration", + "phases": [ + {"name": "Documentation", "tasks": ["Full photo documentation", "VIN verification", "Parts inventory", "Condition scoring"], "days": "1-2"}, + {"name": "Disassembly", "tasks": ["Remove chrome/trim", "Remove glass", "Remove interior", "Remove drivetrain", "Remove suspension", "Catalog hardware"], "days": "5-10"}, + {"name": "Body Assessment", "tasks": ["Media blast/strip", "Reveal rust/damage", "Cut damaged panels", "Source replacement panels"], "days": "5-14"}, + {"name": "Metal Work", "tasks": ["Weld patch panels", "Body filler", "Metal finish to 120-grit", "Seam sealer"], "days": "14-30"}, + {"name": "Paint Prep", "tasks": ["Epoxy primer", "High-build primer", "Block sand to 600-grit", "Guide coat", "Final prep to 800-grit"], "days": "7-14"}, + {"name": "Paint", "tasks": ["Booth prep", "Base coat 3-4 coats", "Clear coat 2-3 coats", "Bake cycle"], "days": "3-5"}, + {"name": "Assembly", "tasks": ["Wet sand clear", "Buff/polish", "Install glass", "Install chrome", "Reassemble interior", "Install drivetrain"], "days": "14-30"}, + {"name": "Mechanical", "tasks": ["Alignment", "Brake bleed/test", "Fluid fill", "Tune engine", "Road test"], "days": "3-7"}, + {"name": "Detail", "tasks": ["Machine polish", "Ceramic coating", "Interior detail", "Engine bay detail"], "days": "2-3"}, + {"name": "Hero Reveal", "tasks": ["Position on clean surface", "Dramatic lighting", "Reflective floor", "Reveal moment"], "days": "1"} + ], + "total_duration_range": "6-18 months" + }, + "road_reconstruction": { + "name": "Road Reconstruction", + "phases": [ + {"name": "Traffic Control", "tasks": ["Warning signs", "Lane closure", "Flaggers", "Detour routing"], "days": "1"}, + {"name": "Removal", "tasks": ["Cold mill asphalt", "Load millings", "Haul to recycling"], "days": "1-3"}, + {"name": "Base Work", "tasks": ["Inspect base", "Excavate failed areas", "Import aggregate", "Grade", "Compact", "Proof roll"], "days": "2-7"}, + {"name": "Paving Prep", "tasks": ["Tack coat", "Edge milling", "Manhole adjustments"], "days": "1-2"}, + {"name": "Paving", "tasks": ["Asphalt delivery", "Transfer vehicle", "Paver lays mat", "Breakdown roller", "Intermediate roller", "Finish roller"], "days": "1-5"}, + {"name": "Finishing", "tasks": ["Cool-down", "Striping layout", "Thermoplastic marking", "Signs", "Reflectors"], "days": "1-3"}, + {"name": "Restoration", "tasks": ["Shoulder grading", "Seeding", "Remove traffic control", "Final sweep"], "days": "1-2"} + ], + "total_duration_range": "1-4 weeks" + }, + "landscape_transformation": { + "name": "Landscape Transformation", + "phases": [ + {"name": "Survey", "tasks": ["Property survey", "Soil test", "Drainage assessment", "Design plan"], "days": "3-7"}, + {"name": "Clear/Demo", "tasks": ["Remove existing plants", "Remove old hardscape", "Grubbing", "Debris haul"], "days": "2-5"}, + {"name": "Grading", "tasks": ["Rough grade", "Drainage swales", "Soil import", "Fine grade"], "days": "2-5"}, + {"name": "Hardscape", "tasks": ["Foundation/base prep", "Patio/walkway install", "Retaining walls", "Steps"], "days": "5-14"}, + {"name": "Irrigation", "tasks": ["Trench", "Main line", "Lateral lines", "Drip zones", "Controller"], "days": "2-5"}, + {"name": "Planting", "tasks": ["Trees", "Shrubs", "Perennials", "Ground cover", "Sod/seed"], "days": "3-7"}, + {"name": "Finishing", "tasks": ["Mulch", "Decorative rock", "Edging", "Landscape lighting", "Furniture staging"], "days": "2-5"}, + {"name": "Hero Shot", "tasks": ["Wait for golden hour", "All lights on", "Furniture styled", "Aerial + ground photos"], "days": "1"} + ], + "total_duration_range": "4-12 weeks" + }, + "pool_construction": { + "name": "Pool Construction", + "phases": [ + {"name": "Layout", "tasks": ["Survey and stake", "Utility locate", "Access route prep"], "days": "1-2"}, + {"name": "Excavation", "tasks": ["Dig to spec", "Haul spoils", "Hand-trim shelves", "Compact base"], "days": "2-5"}, + {"name": "Steel", "tasks": ["Rebar grid", "Vertical rebar", "Step/bench rebar", "Inspection"], "days": "2-4"}, + {"name": "Plumbing", "tasks": ["Main drain", "Skimmer", "Returns", "Jets", "Pressure test"], "days": "2-3"}, + {"name": "Shell", "tasks": ["Gunite/shotcrete", "Shape and compact", "Cure 7-28 days"], "days": "8-30"}, + {"name": "Tile + Coping", "tasks": ["Waterline tile", "Coping stone", "Expansion joint"], "days": "3-7"}, + {"name": "Decking", "tasks": ["Form and pour", "Texture/stamp", "Expansion joints"], "days": "3-7"}, + {"name": "Interior Finish", "tasks": ["Plaster/pebble/quartz", "Fill pool", "Chemical startup"], "days": "2-5"}, + {"name": "Equipment", "tasks": ["Pump", "Filter", "Heater", "Automation", "LED lighting"], "days": "2-3"}, + {"name": "Landscape + Stage", "tasks": ["Perimeter planting", "Fire features", "Furniture", "Night photography"], "days": "3-7"} + ], + "total_duration_range": "8-16 weeks" + } +} + +# ────────────────────────────────────────── +# LIGHTING PHYSICS DATABASE +# ────────────────────────────────────────── + +LIGHTING_DATABASE = { + "golden_hour": { + "color_temp": "2500-3500K", + "shadow_quality": "Long, warm, directional, soft edges", + "sky_description": "Warm orange-pink gradient near horizon, transitioning to soft blue above", + "window_behavior": "Strong warm light shafts with visible dust particles, deep amber patches on floors and walls", + "reflection_behavior": "Warm golden highlights on all reflective surfaces, brass and gold materials glow intensely", + "prompt_tokens": "golden hour warm directional sunlight streaming through windows, long soft amber shadows, dust particles visible in light beams, color temperature 3000K, cinematic warm natural lighting" + }, + "blue_hour": { + "color_temp": "9000-15000K", + "shadow_quality": "Very soft, almost shadowless, ethereal", + "sky_description": "Deep blue with pink-purple horizon line", + "window_behavior": "Cool ambient glow from outside, interior artificial lights become primary warm sources", + "reflection_behavior": "Cool blue reflections on exterior surfaces, warm interior glow contrasts with cool exterior", + "prompt_tokens": "blue hour twilight lighting, deep blue sky visible through windows, warm interior lights contrasting with cool exterior, intimate atmospheric lighting, color temperature mixed warm interior cool exterior" + }, + "overcast_noon": { + "color_temp": "6500-7500K", + "shadow_quality": "Extremely soft, diffused, minimal shadow definition", + "sky_description": "Uniform gray-white overcast sky", + "window_behavior": "Even, flat light distribution throughout space, no harsh shadows or hot spots", + "reflection_behavior": "Muted, low contrast, even reflections on all surfaces", + "prompt_tokens": "soft overcast natural daylight, even diffused illumination, no harsh shadows, neutral color temperature, flat even lighting from all windows" + }, + "harsh_midday": { + "color_temp": "5500-6000K", + "shadow_quality": "Short, hard, high contrast, directly below objects", + "sky_description": "Bright blue sky with white cumulus clouds", + "window_behavior": "Sharp geometric light patterns on floors and walls, high contrast between lit and shadowed areas", + "reflection_behavior": "Intense specular highlights, high contrast reflections", + "prompt_tokens": "harsh direct midday sunlight, sharp geometric shadow patterns, high contrast between light and shadow, bright white highlights, deep dark shadows" + }, + "night_interior": { + "color_temp": "2700-3000K (warm residential)", + "shadow_quality": "Multiple soft shadow directions from multiple artificial sources", + "sky_description": "Black sky, possibly city glow on horizon", + "window_behavior": "Windows appear as black mirrors reflecting interior", + "reflection_behavior": "Interior light sources reflected in all glass surfaces, warm pools of light from each fixture", + "prompt_tokens": "nighttime interior with warm artificial lighting 2700K, multiple light sources creating layered illumination, windows reflecting interior like mirrors, warm inviting atmospheric residential lighting" + }, + "construction_work_lights": { + "color_temp": "5000-6500K (harsh work lights)", + "shadow_quality": "Hard, multiple directions from temporary lights on tripods", + "sky_description": "N/A — interior work environment", + "window_behavior": "If daytime, combination of natural and artificial", + "reflection_behavior": "Harsh reflections, industrial quality light", + "prompt_tokens": "temporary construction work lights on tripods, harsh directional fluorescent or LED work lighting, multiple shadow directions, industrial unfinished lighting environment, 5000K color temperature" + } +} + +console.print("[bold green]✅ Material, Construction & Lighting databases loaded![/bold green]") +console.print(f" 📦 Materials: {sum(len(v) for v in MATERIAL_DATABASE.values())} types across {len(MATERIAL_DATABASE)} categories") +console.print(f" 🏗️ Construction Macros: {len(CONSTRUCTION_MACROS)} niche workflows") +console.print(f" 💡 Lighting Profiles: {len(LIGHTING_DATABASE)} physics-accurate setups") +# ═══════════════════════════════════════════════════════════════ +# 🔍 THE 47-POINT REALISM CHECKLIST ENGINE +# "The Screenshot Test" — every prompt validated before output +# ═══════════════════════════════════════════════════════════════ + +REALISM_CHECKLIST = { + "gravity_physics": [ + "All objects rest naturally on surfaces with contact shadows", + "Fabric drapes follow gravity accurately", + "Liquid surfaces are flat with correct meniscus", + "Paper/books follow gravity and wind naturally", + "No floating objects or gravity violations" + ], + "scale_accuracy": [ + "Humans proportional to doors (6'8\" standard height)", + "Counter height at 36\" (waist level on average adult)", + "Standard ceiling 8-9' residential, 10-16' commercial", + "Standard table height 30\", chair seat 18\"", + "Furniture at real-world dimensions (sofa depth ~36\")", + "Electrical outlets 12-16\" from floor, switches at 48\"", + "Door proportions standard 6'8\" x 2'8\" to 3'0\"", + "Staircase: 7\" rise, 11\" run, 36\" min width, railing 34-38\"" + ], + "lighting_physics": [ + "Single consistent sun/light source direction across all elements", + "Shadow softness matches distance and size of light source", + "Shadow color complementary to light color (warm light = cool shadows)", + "All shadows originate from identifiable light sources", + "No orphan shadows without corresponding objects", + "Contact shadows present where objects meet surfaces", + "Consistent white balance across all elements in frame" + ], + "material_behavior": [ + "Each material reacts to light correctly for its type", + "Wood grain direction follows lumber milling logic", + "Metal finish correct for type (brushed=directional, polished=mirror)", + "Glass shows correct refraction and slight tint", + "Tile grout consistent width, slightly recessed", + "Concrete shows appropriate aggregate and form marks" + ], + "lens_physics": [ + "Wide-angle barrel distortion present on sub-28mm", + "No distortion on 50mm+ equivalents", + "Depth of field physically possible for stated aperture", + "Slight chromatic aberration at frame edges on wide lenses", + "Subtle vignetting at corners on wider lenses", + "Noise/grain appropriate for implied ISO" + ], + "architectural_accuracy": [ + "Perspective lines converge to correct vanishing points", + "Vertical lines truly vertical (no keystoning unless specified)", + "Horizon line consistent across frame", + "Window mullion correct proportion and shadow", + "HVAC registers in correct locations", + "Baseboard proportion appropriate for style", + "Ceiling texture matches era and quality level" + ], + "environmental_consistency": [ + "Weathering patterns match stated condition", + "Surface moisture consistent throughout", + "Dust logic: more in neglected areas, less in traffic paths", + "Vegetation accurate for climate and growth patterns", + "Time of day consistent across ALL elements" + ], + "human_accuracy": [ + "No anatomically impossible poses", + "Weight distribution realistic over feet", + "Hand positions match tool being used", + "PPE correct for specific trade", + "Clothing appropriate for task and era" + ] +} + +def validate_prompt_realism(prompt_text: str) -> Dict: + """Validates a prompt against the 47-point realism checklist""" + results = { + "total_points": 47, + "checks_applicable": 0, + "potential_issues": [], + "recommendations": [], + "confidence_score": 0.0 + } + + # Check for common AI-smell keywords that should be avoided + ai_smell_words = [ + "magical", "suddenly appears", "floating", "hovering", + "ethereal glow", "perfect in every way", "impossibly", + "dreamlike", "surreal", "fantastical", "otherworldly" + ] + + for word in ai_smell_words: + if word.lower() in prompt_text.lower(): + results["potential_issues"].append( + f"⚠️ AI-smell detected: '{word}' — replace with physically grounded description" + ) + + # Check for specific material mentions (good practice) + generic_materials = [ + "nice wood", "beautiful stone", "fancy tile", + "good flooring", "luxury material", "expensive countertop" + ] + + for generic in generic_materials: + if generic.lower() in prompt_text.lower(): + results["potential_issues"].append( + f"⚠️ Generic material: '{generic}' — specify exact material (e.g., 'honed Calacatta marble with gold veining')" + ) + + # Check for lighting specificity + if "lighting" not in prompt_text.lower() and "light" not in prompt_text.lower(): + results["recommendations"].append( + "💡 Add specific lighting description (time of day, direction, color temperature)" + ) + + # Check for negative prompt presence + if "negative" not in prompt_text.lower() and "NEGATIVE" not in prompt_text: + results["recommendations"].append( + "⛔ Add NEGATIVE section to prevent AI artifacts" + ) + + # Calculate confidence + issue_count = len(results["potential_issues"]) + recommendation_count = len(results["recommendations"]) + results["confidence_score"] = max(0, 100 - (issue_count * 15) - (recommendation_count * 5)) + + return results + +def generate_negative_prompt(stage: str, niche: str) -> str: + """Generates a comprehensive negative prompt based on stage and niche""" + base_negatives = [ + "blurry", "low quality", "oversaturated", "undersaturated", + "watermark", "text overlay", "logo", "signature", + "distorted proportions", "extra limbs", "deformed hands", + "floating objects", "impossible shadows", "duplicate elements", + "AI artifacts", "plastic texture", "waxy skin", "uncanny valley", + "chromatic aberration (excessive)", "lens flare (unless specified)", + "motion blur (unless specified)", "noise (excessive)" + ] + + stage_negatives = { + "STAGE_0": ["clean surfaces", "new materials", "staged furniture", "fresh paint", "modern fixtures"], + "STAGE_1": ["completed renovation", "furniture", "clean floors", "finished walls", "no workers present"], + "STAGE_2": ["finished drywall", "paint", "flooring installed", "fixtures installed", "staging elements"], + "STAGE_3": ["furniture", "decorative items", "staging", "people lounging", "completed look"], + "STAGE_4": ["furniture", "art on walls", "decorative items", "people", "mess", "construction tools"], + "STAGE_5": ["construction debris", "unfinished elements", "workers", "tools", "scaffolding", "dust"] + } + + niche_negatives = { + "interior": ["exterior view as main subject", "outdoor furniture inside"], + "exterior": ["interior as main subject", "indoor furniture outside"], + "vehicle": ["modern car parts on classic vehicle", "wrong era components"], + "road": ["pedestrians in active work zone without PPE"], + "landscape": ["indoor elements", "wrong climate vegetation"] + } + + all_negatives = base_negatives.copy() + + stage_key = stage.upper().replace(" ", "_") + if stage_key in stage_negatives: + all_negatives.extend(stage_negatives[stage_key]) + + niche_key = niche.lower() + for key in niche_negatives: + if key in niche_key: + all_negatives.extend(niche_negatives[key]) + + return ", ".join(all_negatives) + +# Test the checklist +test_result = validate_prompt_realism("A beautiful room with nice wood and magical floating shelves with good lighting") + +console.print("\n[bold yellow]🔍 REALISM CHECKLIST TEST:[/bold yellow]") +console.print(f" Confidence Score: {test_result['confidence_score']}%") +for issue in test_result["potential_issues"]: + console.print(f" {issue}") +for rec in test_result["recommendations"]: + console.print(f" {rec}") + +console.print("\n[bold green]✅ 47-Point Realism Checklist Engine loaded![/bold green]") +# ═══════════════════════════════════════════════════════════════ +# 🏷️ AUTO TITLE & KEYWORD GENERATION ENGINE +# Fires automatically with EVERY output — no asking required +# ═══════════════════════════════════════════════════════════════ + +class TitleKeywordEngine: + """Autonomous title and keyword generation system""" + + EMOTIONAL_TRIGGERS = [ + ("Abandoned", "Stunning"), ("Destroyed", "Dream"), + ("Condemned", "Magazine-Ready"), ("Rusted", "Reborn"), + ("Dead", "Paradise"), ("Forgotten", "Unforgettable"), + ("Crumbling", "Cinematic"), ("Gutted", "Gorgeous"), + ("Neglected", "Luxurious"), ("Wrecked", "Worth a Fortune"), + ("Rotting", "Radiant"), ("Decaying", "Designer"), + ("Flooded", "Flawless"), ("Burned", "Beautiful"), + ("Trashed", "Transformed"), ("Buried", "Breathtaking") + ] + + TRANSFORMATION_SCOPES = [ + "Full Gut Renovation", "Complete Restoration", + "Total Transformation", "Ground-Up Rebuild", + "6-Stage Timelapse", "Every Stage Documented", + "Same Space New Life", "Frame-Off Restoration", + "You Won't Believe It's the Same Place" + ] + + NICHE_TITLE_RULES = { + "interior": {"lead_with": "room type + style", "example": "Mid-Century Kitchen Gut Renovation"}, + "exterior": {"lead_with": "transformation scale", "example": "Entire Facade Rebuilt From Scratch"}, + "vehicle": {"lead_with": "make/model/year", "example": "1972 Bronco Full Restoration"}, + "road": {"lead_with": "infrastructure type", "example": "Highway Repaving — Every Stage Captured"}, + "landscape": {"lead_with": "transformation contrast", "example": "Bare Dirt to Backyard Paradise"}, + "restaurant": {"lead_with": "concept", "example": "Empty Warehouse to Japanese Ramen Bar"}, + "disaster": {"lead_with": "resilience", "example": "After the Fire — A Family's Home Reborn"}, + "real_estate": {"lead_with": "value proposition", "example": "How Staging Doubled This Home's List Price"} + } + + SEASONAL_KEYWORDS = { + 1: ["new year renovation", "fresh start home", "renovation goals"], + 2: ["valentines home", "couples retreat room", "winter renovation"], + 3: ["spring renovation", "tax refund renovation", "curb appeal"], + 4: ["spring cleaning transformation", "outdoor living build", "deck construction"], + 5: ["summer ready home", "outdoor kitchen build", "pool construction"], + 6: ["summer project", "garage transformation", "backyard makeover"], + 7: ["backyard resort", "outdoor living room", "summer renovation"], + 8: ["back to school room", "home office renovation", "fall planning"], + 9: ["fall home transformation", "cozy room makeover", "warm interior"], + 10: ["halloween home", "moody interior", "dark aesthetic room"], + 11: ["thanksgiving hosting", "dining room renovation", "guest room"], + 12: ["holiday home staging", "year in review", "best transformations"] + } + + def __init__(self): + self.current_date = datetime.now() + self.current_month = self.current_date.month + self.current_year = self.current_date.year + + def generate_titles(self, space_type: str, style: str, niche: str, + cost_estimate: str = "", specific_detail: str = "") -> TitleBlock: + """Generate 3 optimized titles""" + + # Select emotional trigger + trigger = random.choice(self.EMOTIONAL_TRIGGERS) + scope = random.choice(self.TRANSFORMATION_SCOPES) + + # PRIMARY TITLE — Viral optimized + if cost_estimate: + primary = f"{trigger[0]} {space_type} → ${cost_estimate} {style} {trigger[1]} in 6 Stages" + else: + primary = f"{trigger[0]} {space_type} → {style} {trigger[1]} — {scope}" + + # Ensure max 80 chars + if len(primary) > 80: + primary = primary[:77] + "..." + + # ALTERNATE TITLE — SEO optimized + alternate = f"{space_type} Renovation Timelapse — {style} Remodel Before and After {self.current_year}" + if len(alternate) > 100: + alternate = alternate[:97] + "..." + + # SHORT TITLE — Punchy + short_options = [ + f"Same {space_type.split()[-1]}. UNRECOGNIZABLE.", + f"{trigger[0]} → {trigger[1]} in 6 Steps", + f"Same Space. New LIFE.", + f"Nobody Believed This Was POSSIBLE.", + f"The Glow-Up is INSANE.", + f"From {trigger[0]} to {trigger[1]}.", + f"Wait for the REVEAL." + ] + short = random.choice(short_options) + if len(short) > 40: + short = short[:37] + "..." + + return TitleBlock(primary=primary, alternate=alternate, short=short) + + def generate_keywords(self, space_type: str, style: str, niche: str, + room_type: str = "", materials: List[str] = None) -> KeywordBlock: + """Generate 5-layer keyword architecture""" + + if materials is None: + materials = [] + + space_lower = space_type.lower() + style_lower = style.lower() + niche_lower = niche.lower() + room_lower = room_type.lower() if room_type else space_lower + + # LAYER 1: Primary SEO (5 keywords) + primary_seo = [ + f"{room_lower} renovation", + f"{room_lower} remodel before after", + f"{room_lower} transformation", + f"{style_lower} {room_lower}", + f"{room_lower} makeover timelapse" + ] + + # LAYER 2: Long-tail (5 keywords) + seasonal = random.choice(self.SEASONAL_KEYWORDS.get(self.current_month, ["home renovation"])) + long_tail = [ + f"{space_lower} renovation before and after {self.current_year}", + f"{style_lower} {room_lower} remodel ideas", + f"how to renovate a {room_lower} step by step", + f"{room_lower} renovation cost breakdown realistic", + f"best {room_lower} renovation timelapse {seasonal}" + ] + + # LAYER 3: Hashtags (20) + niche_hashtags = [ + f"#{room_lower.replace(' ', '')}renovation", + "#beforeandafter", + f"#{room_lower.replace(' ', '')}makeover", + f"#{room_lower.replace(' ', '')}design", + "#renovationtimelapse", + f"#{room_lower.replace(' ', '')}remodel", + "#fixerupper", + "#homerenovation" + ] + style_hashtags = [ + f"#{style_lower.replace(' ', '')}", + f"#{style_lower.replace(' ', '')}design", + "#warmminimalism" if "warm" in style_lower else f"#{style_lower.split()[0] if style_lower else 'modern'}style", + f"#{style_lower.replace(' ', '')}interior" + ] + broad_hashtags = ["#homedesign", "#interiordesign", "#homedecor", "#dreamhome"] + emotional_hashtags = ["#satisfying", "#transformation"] + community_hashtags = ["#renovationjourney", "#homeimprovement"] + + all_hashtags = (niche_hashtags + style_hashtags + broad_hashtags + + emotional_hashtags + community_hashtags) + + # LAYER 4: AI Platform Tags (15) + ai_tags = [ + "architectural photography", "interior design photography", + f"photorealistic {room_lower}", "8k resolution", + "professional interior photography", "magazine quality interior", + "warm natural lighting", f"{style_lower} design", + "cinematic composition", "hyperrealistic render", + "editorial interior", "construction documentation", + "renovation before after", "studio quality", + "luxury residential photography" + ] + + # LAYER 5: Metadata (10) + metadata = [ + f"niche:{niche_lower.replace(' ', '-')}", + f"room:{room_lower.replace(' ', '-')}", + f"style:{style_lower.replace(' ', '-')}", + "stages:6", + "type:transformation-sequence", + "mood:aspirational", + "lighting:golden-hour", + "camera:cinematic-storyteller", + "audience:homeowners-designers", + "season:evergreen" + ] + + return KeywordBlock( + primary_seo=primary_seo[:5], + long_tail=long_tail[:5], + hashtags=all_hashtags[:20], + ai_platform_tags=ai_tags[:15], + metadata=metadata[:10] + ) + + def format_output(self, titles: TitleBlock, keywords: KeywordBlock) -> str: + """Format the complete title + keyword block""" + output = [] + output.append("═" * 60) + output.append("🏷️ TITLE") + output.append("═" * 60) + output.append("") + output.append(f"▸ PRIMARY: {titles.primary}") + output.append(f"▸ ALTERNATE: {titles.alternate}") + output.append(f"▸ SHORT: {titles.short}") + output.append("") + output.append("═" * 60) + output.append("🔑 KEYWORDS") + output.append("═" * 60) + output.append("") + output.append("🔍 PRIMARY SEO:") + output.append(", ".join(keywords.primary_seo)) + output.append("") + output.append("🎯 LONG-TAIL:") + output.append(", ".join(keywords.long_tail)) + output.append("") + output.append("#️⃣ HASHTAGS:") + output.append(" ".join(keywords.hashtags)) + output.append("") + output.append("🤖 AI PLATFORM TAGS:") + output.append(", ".join(keywords.ai_platform_tags)) + output.append("") + output.append("📊 METADATA:") + output.append(" | ".join(keywords.metadata)) + output.append("") + output.append("═" * 60) + + return "\n".join(output) + + +# Initialize +title_engine = TitleKeywordEngine() + +# Test +test_titles = title_engine.generate_titles( + space_type="1970s Galley Kitchen", + style="Modern Farmhouse", + niche="interior", + cost_estimate="65K" +) +test_keywords = title_engine.generate_keywords( + space_type="1970s Galley Kitchen", + style="Modern Farmhouse", + niche="interior", + room_type="kitchen" +) + +console.print("\n[bold yellow]🏷️ TITLE & KEYWORD ENGINE TEST:[/bold yellow]\n") +print(title_engine.format_output(test_titles, test_keywords)) +console.print("[bold green]✅ Auto Title & Keyword Engine loaded![/bold green]") +# ═══════════════════════════════════════════════════════════════ +# 🔥 REALITY SHIFT — PROMPT GENERATION ENGINE +# Generates 6-stage image prompts + 6 video prompts +# with 47-point realism validation on every output +# ═══════════════════════════════════════════════════════════════ + +class RealityShiftEngine: + """The core prompt generation engine""" + + STAGE_CONFIGS = { + Stage.STAGE_0: { + "name": "THE DEATH STATE", + "emotional_target": "Hopelessness with a whisper of potential", + "visual_elements": [ + "visible structural damage or significant decay", + "nature reclaiming elements (weeds through cracks, mold, rust, rot)", + "debris and evidence of long abandonment", + "harsh unflattering lighting (overcast or direct unflattering midday)", + "desaturated color palette leaning toward greens, browns, grays", + "at least one storytelling detail (old newspaper, faded sign, abandoned personal item)", + "dust particles visible in light beams if interior", + "cracked or missing window glass", + "water damage stains on ceiling and walls", + "cobwebs in corners and on fixtures" + ] + }, + Stage.STAGE_1: { + "name": "THE TEARDOWN", + "emotional_target": "Exciting destruction — satisfying teardown energy", + "visual_elements": [ + "workers in correct PPE (hard hats, safety glasses, N95 dust masks, leather gloves, steel-toe boots)", + "dumpster or debris pile visible", + "partially demolished elements (half-removed drywall exposing framing, torn flooring)", + "dust clouds in air catching light", + "tool accuracy: sledgehammer, reciprocating saw, pry bars, utility knives", + "plastic sheeting protecting areas not being demolished", + "extension cords and portable work lights on tripods", + "debris bags and accumulation on floor", + "at least one human actively performing a demolition action", + "exposed original layers (old wallpaper, previous paint colors, original flooring)" + ] + }, + Stage.STAGE_2: { + "name": "THE SKELETON", + "emotional_target": "Respect for the craft — appreciation of hidden complexity", + "visual_elements": [ + "exposed wall framing (2x4 or 2x6 studs at 16\" on-center spacing)", + "electrical boxes mounted on studs, Romex wire pulled but not yet terminated", + "PEX or copper plumbing stubbed out at fixture locations", + "HVAC ductwork partially installed in ceiling/floor cavities", + "subfloor visible (plywood or concrete slab)", + "inspector markings in spray paint on framing for authenticity", + "blue painter's tape marking layout reference lines", + "stacks of drywall sheets leaning against wall ready for next phase", + "work lights on tripods providing construction lighting, not finished fixtures", + "specific tradesperson visible with trade-appropriate tools" + ] + }, + Stage.STAGE_3: { + "name": "THE SKIN", + "emotional_target": "Anticipation — you can see where this is going", + "visual_elements": [ + "fresh drywall with visible mud and tape lines being sanded smooth", + "freshly painted walls with crisp clean edges", + "flooring partially installed showing progression (bare subfloor transitioning to installed material)", + "blue painter's tape protecting trim and window frames", + "paint cans, roller trays, and drop cloths on floor", + "trim pieces and baseboards leaning against walls ready for installation", + "clean but clearly active work zone with organized materials", + "bright work lighting creating slightly harsh even shadows", + "no furniture, no decorations, no staging elements whatsoever", + "visible improvement creating anticipation for final result" + ] + }, + Stage.STAGE_4: { + "name": "THE CLEAN SHELL", + "emotional_target": "Clean satisfaction — the calm before the beautiful storm", + "visual_elements": [ + "all surfaces 100% complete and construction-clean", + "light fixtures installed and turned ON emitting warm 2700-3000K glow", + "all hardware installed (door handles, cabinet pulls, faucets, towel bars)", + "windows cleaned spotless, no tape residue visible anywhere", + "floors spotless with fresh vacuum lines on carpet or clean mop sheen on hard floors", + "countertops bare and gleaming under light", + "ZERO furniture, ZERO art, ZERO plants, ZERO towels, ZERO accessories", + "natural light streaming in through clean windows, golden hour preferred", + "the visual feeling of 'new' and 'fresh' implied through pristine cleanliness", + "empty space highlighting the quality of craftsmanship and material choices" + ] + }, + Stage.STAGE_5: { + "name": "THE PARADISE", + "emotional_target": "DESIRE — viewer must think: I WANT to live there", + "visual_elements": [ + "professional interior staging with curated furniture, art, plants, textiles, books, candles", + "golden hour or blue hour lighting creating warm directional atmosphere", + "depth layering: foreground interest element, midground hero zone, background context", + "strict color story with maximum 3-color palette throughout", + "texture variety: minimum 4 different textures (wood, stone, fabric, metal, glass, plant)", + "life indicators: steam from coffee cup, open book, fresh flowers, lit candle, folded throw", + "intentional composition: perfect symmetry OR deliberate asymmetrical balance", + "reflective surfaces catching and multiplying light (mirrors, glass, polished stone, metal)", + "one dominant scroll-stopping hero element (statement fixture, dramatic view, material showpiece)", + "atmospheric depth: subtle light rays or natural haze for cinematic dimension" + ] + } + } + + def __init__(self): + self.title_engine = TitleKeywordEngine() + self.generated_prompts = [] + self.scene_lock = None + self.landmarks = [] + + def create_scene_lock(self, camera_profile: CameraProfile, + space_description: str) -> str: + """Generate the camera scene lock that stays identical across all 6 stages""" + + camera_configs = { + CameraProfile.DOCUMENTARY_WITNESS: { + "lens": "24mm wide-angle", + "height": "5 feet (chest level)", + "aperture": "f/8 deep focus", + "style": "static documentary tripod, centered composition" + }, + CameraProfile.ARCHITECTURAL_DIGEST: { + "lens": "24mm tilt-shift corrected", + "height": "4 feet (low for dramatic ceiling height)", + "aperture": "f/11 razor-sharp corner to corner", + "style": "editorial one-point or two-point perspective, perfect verticals" + }, + CameraProfile.CINEMATIC_STORYTELLER: { + "lens": "35mm natural perspective", + "height": "4.5 feet (slightly below eye level for intimacy)", + "aperture": "f/4 selective focus with soft background", + "style": "emotional framing emphasizing atmosphere and feeling" + }, + CameraProfile.DRONE_GOD: { + "lens": "24mm equivalent drone camera", + "height": "100-200 feet aerial", + "aperture": "f/4-f/5.6 standard drone", + "style": "45-degree angle overview capturing full property context" + }, + CameraProfile.DETAIL_HUNTER: { + "lens": "85mm portrait/detail lens", + "height": "waist to table level (30-42 inches)", + "aperture": "f/2.8 creamy bokeh isolating details", + "style": "tight composition emphasizing texture and material" + } + } + + config = camera_configs[camera_profile] + + scene_lock = ( + f"SCENE LOCK: Static tripod-mounted camera. " + f"{config['lens']} lens at {config['height']} height. " + f"{config['aperture']}. {config['style']}. " + f"Camera position is IDENTICAL across all 6 stages — " + f"same height, same angle, same lens, same framing. " + f"Shooting {space_description}. " + f"No camera movement, no angle drift, no focal length change." + ) + + self.scene_lock = scene_lock + return scene_lock + + def create_landmarks(self, space_type: str, niche: str) -> List[Landmark]: + """Generate permanent landmarks that anchor continuity across all stages""" + + landmark_library = { + "kitchen": [ + Landmark("Window above sink position", "center-left wall", "Window opening centered above sink location, consistent size and position in every stage"), + Landmark("Ceiling beam or soffit", "running left to right across ceiling", "Structural element that never moves, creating consistent horizontal reference"), + Landmark("Floor drain or transition point", "center floor near island position", "Fixed point in floor visible in all stages from subfloor through final flooring"), + Landmark("Exterior view through window", "visible through primary window", "Same exterior elements (tree, fence, sky) visible through window in every stage"), + Landmark("Entry doorway", "right side of frame", "Door opening position and size remains constant, framing is consistent reference") + ], + "bathroom": [ + Landmark("Window position and size", "exterior wall", "Window opening remains identical, only glass and frame treatment changes"), + Landmark("Plumbing wall location", "typically back wall", "The wall where all plumbing concentrates, marked by fixtures in final stages"), + Landmark("Floor drain position", "center or offset per layout", "Visible drain location from bare subfloor through finished tile"), + Landmark("Ceiling fixture junction box", "center ceiling", "Electrical box position visible through all construction phases"), + Landmark("Door opening", "entry point", "Door frame position and size constant in every stage") + ], + "exterior": [ + Landmark("Roofline silhouette", "top of frame", "Roof angle and ridgeline constant unless roof is part of renovation scope"), + Landmark("Front door position", "center or offset per facade", "Door opening location anchors the composition in every stage"), + Landmark("Window pattern", "facade rhythm", "Window positions and sizes remain constant, only glass and frames change"), + Landmark("Foundation line", "base of structure", "Ground-to-structure transition line constant throughout"), + Landmark("Mature tree or permanent landscape element", "foreground or side", "Existing tree or hardscape element that persists through all stages") + ], + "vehicle": [ + Landmark("Wheel arch proportions", "all four corners", "Wheel well shapes define the vehicle identity in every stage"), + Landmark("Windshield rake angle", "front upper", "Windshield angle and A-pillar position constant"), + Landmark("Hood line", "front top", "Hood height and profile defines front-end character"), + Landmark("Tail light position", "rear", "Tail light openings mark rear identity"), + Landmark("Drip rail or belt line", "side profile", "Character line running the length of the body") + ], + "landscape": [ + Landmark("Property boundary markers", "edges of frame", "Fence, wall, or property line visible throughout"), + Landmark("Existing mature tree", "background or side", "Tree that predates and survives the transformation"), + Landmark("House/structure facade", "background", "Building face that contextualizes the landscape"), + Landmark("Existing hardscape (driveway, sidewalk)", "foreground or edge", "Permanent paved surfaces that anchor the scene"), + Landmark("Utility elements", "background", "Power lines, meters, or other permanent infrastructure") + ], + "road": [ + Landmark("Curb line alignment", "both sides", "Curb positions define the road corridor throughout"), + Landmark("Utility poles", "roadside", "Power poles mark distance and perspective"), + Landmark("Storm drain inlets", "curb line", "Drainage structures visible through all phases"), + Landmark("Intersection or driveway", "background or foreground", "Fixed intersection geometry"), + Landmark("Building facades along road", "background", "Adjacent structures provide context throughout") + ] + } + + # Find best match + space_lower = space_type.lower() + niche_lower = niche.lower() + + for key in landmark_library: + if key in space_lower or key in niche_lower: + self.landmarks = landmark_library[key] + return self.landmarks + + # Default to interior if no match + self.landmarks = landmark_library.get("kitchen", []) + return self.landmarks + + def generate_image_prompt(self, stage: Stage, space_type: str, + style: str, niche: str, + lighting: str = "golden_hour", + materials: Dict = None) -> ImagePrompt: + """Generate a single stage image prompt with full detail""" + + if materials is None: + materials = {} + + stage_config = self.STAGE_CONFIGS[stage] + lighting_config = LIGHTING_DATABASE.get(lighting, LIGHTING_DATABASE["golden_hour"]) + + # Build landmarks string + landmarks_str = "LANDMARKS: " + " | ".join( + [f"{lm.name} ({lm.position})" for lm in self.landmarks[:5]] + ) + + # Build detailed description + visual_elements = stage_config["visual_elements"] + description_parts = [] + + description_parts.append( + f"A photorealistic {stage_config['name'].lower()} view of a {space_type}." + ) + + for element in visual_elements: + description_parts.append(element.capitalize() + ".") + + # Add material specifics for later stages + if stage in [Stage.STAGE_3, Stage.STAGE_4, Stage.STAGE_5]: + if materials: + for category, material_info in materials.items(): + if isinstance(material_info, dict) and "prompt_tokens" in material_info: + description_parts.append(f"{category}: {material_info['prompt_tokens']}.") + + # Add style specifics for final stages + if stage in [Stage.STAGE_4, Stage.STAGE_5]: + description_parts.append( + f"Design style: {style}. Every material and finish choice reflects this aesthetic consistently." + ) + + description = " ".join(description_parts) + + # Build lighting description + lighting_desc = ( + f"LIGHTING: {lighting_config['prompt_tokens']}. " + f"Color temperature: {lighting_config['color_temp']}. " + f"Shadow quality: {lighting_config['shadow_quality']}. " + f"Window behavior: {lighting_config['window_behavior']}." + ) + + # Build mood + mood = f"MOOD: {stage_config['emotional_target']}." + + # Build negative + negative = "NEGATIVE: " + generate_negative_prompt(stage.name, niche) + + # Create prompt object + prompt = ImagePrompt( + stage=stage.name, + stage_name=stage_config["name"], + scene_lock=self.scene_lock or "SCENE LOCK NOT SET — run create_scene_lock first", + landmarks=landmarks_str, + description=description, + lighting=lighting_desc, + mood=mood, + negative=negative + ) + + # Validate against realism checklist + full_text = f"{description} {lighting_desc} {mood}" + validation = validate_prompt_realism(full_text) + + if validation["confidence_score"] < 70: + console.print(f"[bold red]⚠️ Stage {stage.name} prompt scored {validation['confidence_score']}% — review recommended[/bold red]") + for issue in validation["potential_issues"]: + console.print(f" {issue}") + + self.generated_prompts.append(prompt) + return prompt + + def generate_video_prompt(self, video_number: int, + from_stage: Stage, to_stage: Stage, + niche: str, space_type: str) -> VideoPrompt: + """Generate a video transition prompt""" + + transition_configs = { + (Stage.STAGE_0, Stage.STAGE_1): { + "name": "DEMOLITION BEGINS", + "action": f"Timelapse of initial demolition and teardown in the {space_type}. Workers in full PPE enter frame carrying tools. Sledgehammers swing into drywall creating clouds of dust. Debris is carried out in buckets and bags. Old fixtures are disconnected and removed. The space gradually opens up as layers of old materials are stripped away. Dust settles between bursts of activity. Work lights are set up as the original lighting is removed.", + "motion": "Workers enter and exit frame naturally. Dust clouds billow and settle. Debris piles grow near exits. Sunlight shifts as hours pass. Shadow angles rotate indicating time passage.", + "duration": "Represents 2-5 days of real work compressed" + }, + (Stage.STAGE_1, Stage.STAGE_2): { + "name": "ROUGH-IN WORK", + "action": f"Timelapse of mechanical, electrical, and plumbing rough-in work in the {space_type}. Electricians pull Romex wire through framing and mount boxes. Plumbers run PEX or copper supply lines and ABS/PVC drain lines. HVAC technicians install ductwork in ceiling cavities. Each trade works methodically, tools specific to their craft. Wires appear along studs. Pipes emerge through floor plates. Ducts snake through joist spaces.", + "motion": "Trade workers rotate through the space. Wire coils unroll along framing. Pipe sections connect one by one. Duct sections lift into ceiling spaces. Tools flash with purposeful movement. Inspector arrives with clipboard for rough inspection.", + "duration": "Represents 1-3 weeks of trade work compressed" + }, + (Stage.STAGE_2, Stage.STAGE_3): { + "name": "SURFACES EMERGE", + "action": f"Timelapse of drywall hanging, mudding, sanding, painting, and initial finish work in the {space_type}. Drywall sheets lift up and screw into framing. Mud is applied in passes — tape, first coat, second coat, third coat. Sanding creates fine white dust. Primer rolls onto walls in even white strokes. Paint color appears in smooth roller passes. Flooring materials begin installation from one side of the room progressing to the other.", + "motion": "Drywall sheets rise from floor to wall. Mud knives sweep in long smooth passes. Sanding dust drifts down gently. Paint rollers move in steady W-patterns. Floor planks click into place one by one progressing across the room. The space transforms from raw to refined.", + "duration": "Represents 2-4 weeks of finish work compressed" + }, + (Stage.STAGE_3, Stage.STAGE_4): { + "name": "FINAL INSTALL", + "action": f"Timelapse of final fixture installation, hardware mounting, and construction cleanup in the {space_type}. Light fixtures are lifted to ceiling and connected. Cabinet hardware is drilled and mounted piece by piece. Faucets and plumbing trim are installed with careful alignment. Switch plates and outlet covers snap into place. Final touch-up paint applied with small brushes. Construction cleaning crew enters with vacuums, mops, and detail rags. Space transforms from work zone to pristine finished shell.", + "motion": "Fixtures rise to their final positions. Hardware appears along cabinet faces in sequence. Cleaning crew moves systematically through the space. Windows are polished to crystal clarity. Floors receive final clean. The last construction tool exits the frame.", + "duration": "Represents 3-7 days of final work compressed" + }, + (Stage.STAGE_4, Stage.STAGE_5): { + "name": "THE STAGING TRANSFORMATION", + "action": f"Timelapse of professional staging transforming the empty {space_type} into a magazine-cover-worthy space. Delivery workers carry in wrapped furniture pieces and carefully position them. Art is hung on walls with precise leveling. Pillows and throws are placed and fluffed. Plants and greenery are positioned for maximum visual impact. Books are stacked on shelves. Candles are placed. Final styling details are adjusted by hand. Natural light shifts to golden hour as staging completes. The space evolves from empty perfection to lived-in aspiration.", + "motion": "Furniture slides into position on protective felt pads. Art lifts to walls with careful alignment. Textiles unfold and drape naturally. Plants are positioned and adjusted. Small accessories are placed with deliberate precision. The staging team steps back to review, makes micro-adjustments, then exits frame to reveal the final result.", + "duration": "Represents 4-8 hours of professional staging compressed" + } + } + + # Get transition config + key = (from_stage, to_stage) + config = transition_configs.get(key, { + "name": "TRANSITION", + "action": f"Timelapse transition in the {space_type} showing progressive change.", + "motion": "Workers and materials move through the space naturally.", + "duration": "Represents several days compressed" + }) + + camera_statement = ( + "CAMERA: Static tripod. Same position, height, angle, and focal length as all image prompts. " + "ABSOLUTELY no movement, no panning, no tilting, no zooming. " + f"{'Subtle 5% digital push-in crop allowed for final reveal ONLY.' if video_number == 6 else 'Zero camera motion.'}" + ) + + forbidden = ( + "FORBIDDEN: No cuts. No teleporting objects. No objects appearing from nowhere. " + "No camera movement. No morphing artifacts. No flickering. No impossible speed. " + "No objects snapping into place — everything must be carried, installed, or placed by human hands. " + "No time jumps — continuous smooth timelapse flow." + ) + + return VideoPrompt( + video_number=video_number, + transition_name=config["name"], + camera=camera_statement, + action=config["action"], + motion_details=config["motion"], + duration_feel=config["duration"], + forbidden=forbidden + ) + + def format_image_prompt(self, prompt: ImagePrompt) -> str: + """Format a single image prompt for output""" + output = [] + output.append(f"{'─' * 60}") + output.append(f"📸 IMAGE — {prompt.stage} | {prompt.stage_name}") + output.append(f"{'─' * 60}") + output.append("") + output.append(f"🔒 {prompt.scene_lock}") + output.append("") + output.append(f"📍 {prompt.landmarks}") + output.append("") + output.append(f"🎬 STAGE DESCRIPTION:") + output.append(textwrap.fill(prompt.description, width=100)) + output.append("") + output.append(f"💡 {prompt.lighting}") + output.append("") + output.append(f"🎨 {prompt.mood}") + output.append("") + output.append(f"⛔ {prompt.negative}") + output.append("") + return "\n".join(output) + + def format_video_prompt(self, prompt: VideoPrompt) -> str: + """Format a single video prompt for output""" + output = [] + output.append(f"{'─' * 60}") + output.append(f"🎥 VIDEO {prompt.video_number} — {prompt.transition_name}") + output.append(f"{'─' * 60}") + output.append("") + output.append(prompt.camera) + output.append("") + output.append("ACTION:") + output.append(textwrap.fill(prompt.action, width=100)) + output.append("") + output.append("MOTION DETAILS:") + output.append(textwrap.fill(prompt.motion_details, width=100)) + output.append("") + output.append(f"DURATION FEEL: {prompt.duration_feel}") + output.append("") + output.append(prompt.forbidden) + output.append("") + return "\n".join(output) + + def generate_full_sequence(self, space_type: str, style: str, + niche: str, camera: CameraProfile, + lighting: str = "golden_hour", + materials: Dict = None, + cost_estimate: str = "") -> str: + """Generate the COMPLETE output — titles, keywords, 6 images, 5 videos, CTA""" + + if materials is None: + materials = {} + + output_parts = [] + + # ── AUTO TITLE & KEYWORDS ── + titles = self.title_engine.generate_titles( + space_type=space_type, + style=style, + niche=niche, + cost_estimate=cost_estimate + ) + keywords = self.title_engine.generate_keywords( + space_type=space_type, + style=style, + niche=niche, + room_type=space_type + ) + output_parts.append(self.title_engine.format_output(titles, keywords)) + + # ── SCENE LOCK ── + scene_lock = self.create_scene_lock(camera, space_type) + output_parts.append(f"\n🔒 {scene_lock}\n") + + # ── LANDMARKS ── + landmarks = self.create_landmarks(space_type, niche) + output_parts.append("📍 PERMANENT LANDMARKS:") + for i, lm in enumerate(landmarks, 1): + output_parts.append(f" {i}. {lm.name} — {lm.position}: {lm.description}") + output_parts.append("") + + # ── 6 IMAGE PROMPTS ── + output_parts.append("=" * 60) + output_parts.append("📸 IMAGE PROMPTS (6 STAGES)") + output_parts.append("=" * 60) + + stages = [Stage.STAGE_0, Stage.STAGE_1, Stage.STAGE_2, + Stage.STAGE_3, Stage.STAGE_4, Stage.STAGE_5] + + lighting_per_stage = { + Stage.STAGE_0: "overcast_noon", + Stage.STAGE_1: "construction_work_lights", + Stage.STAGE_2: "construction_work_lights", + Stage.STAGE_3: "harsh_midday", + Stage.STAGE_4: lighting, + Stage.STAGE_5: lighting + } + + for stage in stages: + stage_lighting = lighting_per_stage.get(stage, lighting) + prompt = self.generate_image_prompt( + stage=stage, + space_type=space_type, + style=style, + niche=niche, + lighting=stage_lighting, + materials=materials + ) + output_parts.append(self.format_image_prompt(prompt)) + + # ── 5 VIDEO PROMPTS ── + output_parts.append("=" * 60) + output_parts.append("🎥 VIDEO PROMPTS (5 TRANSITIONS)") + output_parts.append("=" * 60) + + transitions = [ + (1, Stage.STAGE_0, Stage.STAGE_1), + (2, Stage.STAGE_1, Stage.STAGE_2), + (3, Stage.STAGE_2, Stage.STAGE_3), + (4, Stage.STAGE_3, Stage.STAGE_4), + (5, Stage.STAGE_4, Stage.STAGE_5) + ] + + for num, from_s, to_s in transitions: + video = self.generate_video_prompt( + video_number=num, + from_stage=from_s, + to_stage=to_s, + niche=niche, + space_type=space_type + ) + output_parts.append(self.format_video_prompt(video)) + + # ── CTA ── + output_parts.append("=" * 60) + output_parts.append("✅ GENERATE YOUR REALITY SHIFT SEQUENCE") + output_parts.append("=" * 60) + output_parts.append("") + output_parts.append("✅ Create IMAGE 1-6 on OpenArt → https://openart.ai/home") + output_parts.append(" Then animate VIDEO 1-5 with frame-to-video!") + output_parts.append("") + output_parts.append("🎬 Want a different style? Rerun with style_swap=True") + output_parts.append("📱 Need platform optimization? Specify platform in the call") + output_parts.append("🔥 Ready to go viral? Pair with MIND BREACH ENGINE for content ideas") + output_parts.append("") + + return "\n".join(output_parts) + + +# Initialize the engine +reality_engine = RealityShiftEngine() +console.print("[bold green]✅ Reality Shift Prompt Generation Engine loaded![/bold green]") +# ═══════════════════════════════════════════════════════════════ +# 🧠 MIND BREACH — IDEA GENERATION ENGINE +# Autonomous agentic viral content idea machine +# ═══════════════════════════════════════════════════════════════ + +class MindBreachEngine: + """Autonomous viral content idea generation system""" + + def __init__(self): + self.generated_ideas = [] + self.idea_counter = 0 + self.current_date = datetime.now() + self.day_of_week = self.current_date.strftime("%A") + + self.DIMENSION_SCHEDULE = { + "Monday": ("🔮 TREND MONDAY", [IdeaDimension.TREND_PREDICTION, IdeaDimension.TREND_PREDICTION, IdeaDimension.TREND_PREDICTION, IdeaDimension.CROSS_NICHE_FUSION, IdeaDimension.FORMAT_INNOVATION]), + "Tuesday": ("💥 CONTRAST TUESDAY", [IdeaDimension.IMPOSSIBLE_CONTRAST, IdeaDimension.IMPOSSIBLE_CONTRAST, IdeaDimension.IMPOSSIBLE_CONTRAST, IdeaDimension.COMPETITION_GAP, IdeaDimension.AUDIENCE_PSYCHOLOGY]), + "Wednesday": ("🎭 FORMAT WEDNESDAY", [IdeaDimension.FORMAT_INNOVATION, IdeaDimension.FORMAT_INNOVATION, IdeaDimension.FORMAT_INNOVATION, IdeaDimension.COLLABORATION, IdeaDimension.CROSS_NICHE_FUSION]), + "Thursday": ("🔥 CONTROVERSY THURSDAY", [IdeaDimension.CONTROVERSY, IdeaDimension.CONTROVERSY, IdeaDimension.CONTROVERSY, IdeaDimension.NOSTALGIA, IdeaDimension.AUDIENCE_PSYCHOLOGY]), + "Friday": ("📺 SERIES FRIDAY", [IdeaDimension.SERIES_ARCHITECTURE, IdeaDimension.SERIES_ARCHITECTURE, IdeaDimension.SEASONAL_EVENT, IdeaDimension.SEASONAL_EVENT, IdeaDimension.COMPETITION_GAP]), + "Saturday": ("🤝 COLLAB SATURDAY", [IdeaDimension.COLLABORATION, IdeaDimension.COLLABORATION, IdeaDimension.COLLABORATION, IdeaDimension.AUDIENCE_PSYCHOLOGY, IdeaDimension.FORMAT_INNOVATION]), + "Sunday": ("🧠 GENIUS SUNDAY", [IdeaDimension.CROSS_NICHE_FUSION, IdeaDimension.IMPOSSIBLE_CONTRAST, IdeaDimension.FORMAT_INNOVATION, IdeaDimension.NOSTALGIA, IdeaDimension.TREND_PREDICTION]) + } + + # ── MASTER IDEA LIBRARY ── + self.IDEA_LIBRARY = { + IdeaDimension.CROSS_NICHE_FUSION: [ + { + "title": "POV: You're a Subway Tile Being Installed in a $60K Kitchen", + "viral_score": 9.2, + "hook": "Camera IS the tile. Viewer sees hands picking them up and pressing them into the wall.", + "concept": "Film an entire kitchen backsplash installation from the PERSPECTIVE of the tile itself. Viewer experiences being picked from the box, thinset spread, pressed into place, grouted, and cleaned to reveal the finished kitchen.", + "why_it_works": "Perspective shift nobody has done + ASMR trigger + satisfying completion + humor. Psychological: NOVELTY + COMPLETION SATISFACTION", + "mode": "⚡ RESURRECT → Detail Hunter camera", + "platform": "TikTok (primary) → YouTube Shorts (secondary)", + "timing": "Evergreen", + "blueprint": ["Mount micro camera at tile perspective", "Generate REALITY SHIFT close-ups from tile-level", "Record real ASMR audio of installation", "Edit with POV text overlays", "Post with sound ON priority"], + "keywords": ["kitchen backsplash installation", "POV renovation", "satisfying tiling", "subway tile install timelapse", "kitchen renovation ASMR"], + "hashtags": ["#POVrenovation", "#subwaytile", "#kitchenbacksplash", "#satisfying", "#tileinstallation", "#kitchenrenovation", "#renovationASMR", "#oddlysatisfying", "#homeimprovement", "#DIYkitchen"], + "series": "YES — 'POV: You're the [Material]' series: hardwood plank, paint, countertop, light fixture", + "engagement": "What material should I be NEXT? 👀", + "unique": "NOBODY in renovation space has done material-perspective POV content. Completely untouched format." + }, + { + "title": "I Designed 4 Rooms to Trigger 4 Different Emotions — Here's What Happened", + "viral_score": 8.8, + "hook": "Science says your room is making you feel THIS way. So I built 4 rooms to prove it.", + "concept": "Using color psychology, spatial psychology, and lighting science, design 4 identical rooms with different treatments — anxiety relief, creativity boost, focus enhancement, romance spark. Show the same empty room transformed 4 ways with scientific reasoning.", + "why_it_works": "Educational + visual + comparison format + self-improvement angle. Psychological: SOCIAL CURRENCY + PRACTICAL VALUE", + "mode": "🏛️ ARCHITECT → Cinematic Storyteller camera", + "platform": "YouTube (primary) → Instagram Carousel (secondary)", + "timing": "Evergreen — wellness content always performs", + "blueprint": ["Research color psychology studies", "Generate 1 empty room STAGE 4", "Generate 4 different STAGE 5 versions", "Create comparison with scientific annotations", "Post with 'Which room do YOU need most?' poll"], + "keywords": ["color psychology room design", "room affects mood", "interior design psychology", "calm room design", "productivity room setup"], + "hashtags": ["#colorpsychology", "#roomdesign", "#interiorpsychology", "#moodroom", "#calmspace", "#productivitysetup", "#homedesignscience", "#emotionaldesign", "#roomtransformation", "#designtips"], + "series": "YES — 'The Science of Rooms' series: ceiling height, restaurant psychology, hotel room secrets", + "engagement": "Which emotion room do you need most? Calm, Creative, Focus, or Romance? 👇", + "unique": "Nobody combines behavioral psychology with design visualization. Bridges two audiences." + }, + { + "title": "I Let a 5-Year-Old Design This Kitchen. Then I Actually Built It.", + "viral_score": 9.5, + "hook": "Show child's crayon drawing. Then cut to the REAL renovation based on their design.", + "concept": "Give a child crayons and ask them to design their dream kitchen. Take their drawing LITERALLY — every color, every element, every wild feature — and translate it into professional renovation visualization. Purple cabinets because they drew them purple.", + "why_it_works": "MASSIVE curiosity gap + family content crosses demographics + contrast between crayon and professional is insane + comment section explodes. Psychological: CURIOSITY GAP + EMOTIONAL RESONANCE + DEBATE", + "mode": "👻 PHANTOM → Architectural Digest camera", + "platform": "TikTok (primary) → YouTube (secondary)", + "timing": "Evergreen, bonus during family holidays", + "blueprint": ["Get child to draw dream kitchen (film the drawing process)", "Analyze drawing for translatable elements", "Generate professional render faithful to child's vision", "Create side-by-side comparison", "Post drawing → render → audience reaction"], + "keywords": ["kid designed kitchen", "child draws dream room", "funny renovation", "unique kitchen design", "family renovation project"], + "hashtags": ["#kiddesigned", "#dreamkitchen", "#funrenovation", "#kitchendesign", "#familyproject", "#childarchitect", "#renovation", "#uniquedesign", "#kidscreativity", "#unexpectedresult"], + "series": "YES — 'Kids Design, I Build' series: bathroom, bedroom, treehouse, playroom", + "engagement": "Should I actually BUILD this? Comment YES if you want to see it happen 👇", + "unique": "Child-to-professional translation is a format that does NOT exist yet. Infinitely repeatable." + }, + { + "title": "Same Kitchen. 5 Countries. 5 Completely Different Cultures.", + "viral_score": 9.0, + "hook": "Same floor plan. Same budget. But designed by 5 different CULTURES.", + "concept": "Take one empty kitchen and design it in 5 different cultural styles: Japanese, Italian, Moroccan, Scandinavian, Mexican. Same exact room, 5 completely different results. Show how culture shapes every design choice.", + "why_it_works": "Cultural exploration + comparison format + design education + representation of diverse aesthetics. Psychological: SOCIAL CURRENCY + IDENTITY SIGNALING", + "mode": "🏛️ ARCHITECT → Architectural Digest camera", + "platform": "YouTube (primary) → Instagram Carousel (secondary)", + "timing": "Evergreen", + "blueprint": ["Generate one STAGE 4 empty kitchen", "Research authentic design elements per culture", "Generate 5 STAGE 5 versions", "Create comparison content with cultural context", "Post with 'Which culture's kitchen would you cook in?' poll"], + "keywords": ["kitchen design styles", "cultural interior design", "Japanese kitchen design", "Mediterranean kitchen", "world kitchen styles"], + "hashtags": ["#kitchendesign", "#culturaldesign", "#japandidesign", "#italiankitchen", "#scandinaviandesign", "#moroccandecor", "#mexicandesign", "#worlddesign", "#interiorinspo", "#designcomparison"], + "series": "YES — 'Country Kitchen' series expanding to bathrooms, living rooms, bedrooms", + "engagement": "Which country's kitchen wins? And which one surprised you? 👇", + "unique": "Same-space cultural comparison hasn't been done systematically in renovation content." + }, + { + "title": "This Room Changes Personality Based on Time of Day — Zero Tech Involved", + "viral_score": 8.7, + "hook": "No smart lights. No switches. Just PHYSICS. Watch this room transform itself.", + "concept": "Design a room that dramatically changes mood throughout the day using ONLY natural light engineering and material choices. Show the same room at dawn, noon, golden hour, and night — how material, color, and window placement create completely different atmospheres without any technology.", + "why_it_works": "Science + magic feeling + practical + mind-blowing when you see the same room look completely different. Psychological: CURIOSITY + SOCIAL CURRENCY", + "mode": "🏛️ ARCHITECT → Cinematic Storyteller camera", + "platform": "Instagram Reels (primary) → TikTok (secondary)", + "timing": "Evergreen", + "blueprint": ["Design room with strategic material and window placement", "Generate 4 versions: dawn, noon, golden hour, night", "Show time-progression with no edits or tech", "Explain the physics behind each transformation", "Post with 'Which time is YOUR favorite?' poll"], + "keywords": ["natural lighting design", "room transformation no tech", "light architecture", "daylight room design", "passive room design"], + "hashtags": ["#naturallight", "#lightdesign", "#roomtransformation", "#notech", "#passivedesign", "#architecturelighting", "#interiormagic", "#designscience", "#daylight", "#roomgoals"], + "series": "YES — 'Physics of Design' series: sound, temperature, airflow", + "engagement": "Would you live in a room that changes mood with the sun? ☀️🌙", + "unique": "Light-as-design-tool content barely exists. This bridges architecture and physics." + } + ], + + IdeaDimension.IMPOSSIBLE_CONTRAST: [ + { + "title": "The WORST Room on the Internet → $100K Dream Space (Same Room)", + "viral_score": 9.4, + "hook": "I found the most disgusting room on the internet. Then I rebuilt it.", + "concept": "Source the most extreme before-state possible — hoarding, water damage, abandoned, decay — and generate the most aspirational STAGE 5 possible. Maximum possible contrast delta between the first and last frame.", + "why_it_works": "Extreme contrast is THE most reliable viral mechanic. The bigger the gap, the bigger the share rate. Psychological: SHOCK + ASPIRATION", + "mode": "👻 PHANTOM → Documentary Witness camera", + "platform": "TikTok (primary) → YouTube Shorts (secondary)", + "timing": "Evergreen", + "blueprint": ["Design STAGE 0 at absolute worst plausible condition", "Generate all 6 stages with maximum contrast curve", "Ensure STAGE 5 is magazine-cover aspirational", "Create split-frame thumbnail", "Post with dramatic reveal pacing"], + "keywords": ["worst room transformation", "extreme renovation", "before after renovation", "room makeover extreme", "unbelievable renovation"], + "hashtags": ["#worstroom", "#extrememakeover", "#beforeandafter", "#renovation", "#transformation", "#unbelievable", "#satisfying", "#roomreveal", "#homerescue", "#dreamhome"], + "series": "YES — 'Worst to First' weekly series", + "engagement": "Scale 1-10, how bad was the BEFORE? And rate the AFTER 👇", + "unique": "Systematically finding and transforming the WORST spaces creates a reliable content machine." + }, + { + "title": "$500 Bathroom Makeover That Looks Like $50,000", + "viral_score": 9.3, + "hook": "Everything in this bathroom cost less than a PlayStation.", + "concept": "Design a bathroom transformation where every single element is budget-friendly but the final result looks ultra-luxury. Reveal the actual costs at the end. The gap between perceived value and actual cost is the viral mechanic.", + "why_it_works": "Budget hacks are the MOST saved content type. Everyone wants luxury on a budget. The reveal of actual costs creates a dopamine hit. Psychological: PRACTICAL VALUE + SURPRISE", + "mode": "👻 PHANTOM → Cinematic Storyteller camera", + "platform": "Instagram Reels (primary) → Pinterest (secondary)", + "timing": "Evergreen, peaks during tax refund season and economic uncertainty", + "blueprint": ["Research genuine budget materials that look expensive", "Generate STAGE 0 (dated, ugly bathroom)", "Generate STAGE 5 (luxury-looking bathroom using only budget materials)", "List actual costs for each element", "Reveal total at end with dramatic text"], + "keywords": ["budget bathroom makeover", "cheap bathroom renovation", "bathroom on a budget", "luxury for less bathroom", "budget renovation ideas"], + "hashtags": ["#budgetmakeover", "#cheaprenovation", "#budgetbathroom", "#luxuryforless", "#renovationonabudget", "#bathroomreveal", "#budgetfriendly", "#savemoney", "#homereno", "#smartrenovation"], + "series": "YES — '$500 Challenge' series for every room type", + "engagement": "How much would YOU have guessed this bathroom cost? Drop your guess 👇", + "unique": "Cost reveal format with genuine budget research creates trust AND saves." + } + ], + + IdeaDimension.TREND_PREDICTION: [ + { + "title": "5 Renovation Trends That Will DOMINATE 2026 — You Heard It Here First", + "viral_score": 8.5, + "hook": "In 6 months, EVERYONE will be doing these. Right now, almost nobody is.", + "concept": "Visualize 5 emerging trends heading toward mainstream: 1) Textured walls replacing flat paint, 2) Collected minimalism replacing empty minimalism, 3) Revenue rooms (Airbnb suites, content studios), 4) Bold artistic wallpaper revival, 5) Climate-controlled outdoor rooms.", + "why_it_works": "Prediction content gets SAVED (highest value action on Instagram). Makes viewer feel AHEAD. Gets reshared when trends materialize. Psychological: SOCIAL CURRENCY + PRACTICAL VALUE", + "mode": "👻 PHANTOM + 🏛️ ARCHITECT → one transformation per trend", + "platform": "YouTube (primary) → Instagram Carousel (secondary)", + "timing": "TIME SENSITIVE — post ASAP for first-mover advantage", + "blueprint": ["Generate before/after for each of 5 trends", "Research the WHY behind each trend", "Film/generate prediction-style authority content", "Post long-form YouTube + carousel Instagram", "Reshare at 3 and 6 month marks"], + "keywords": ["renovation trends 2026", "interior design trends", "home renovation predictions", "upcoming design trends", "trending home design"], + "hashtags": ["#2026trends", "#renovationtrends", "#designtrends", "#interiortrends", "#limewash", "#texturedwalls", "#warmminimalism", "#outdoorroom", "#wallpaperisback", "#trendprediction"], + "series": "YES — Quarterly 'Trend Prediction' series + '6-Month Check: Which Came True?'", + "engagement": "Which trend will be BIGGEST? And which one do you HATE? 👇", + "unique": "Most creators FOLLOW trends. You'll PREDICT them — positioning as thought leader." + } + ], + + IdeaDimension.FORMAT_INNOVATION: [ + { + "title": "I Renovated This Room in REVERSE — Starting from the Reveal", + "viral_score": 8.9, + "hook": "You're seeing the FINISHED room first. Now watch it get DESTROYED.", + "concept": "Show the stunning final result FIRST, then systematically demolish it backward through all stages until the original ruined state is revealed at the END. The shock of seeing beauty destroyed — then realizing it was the BEFORE — hits completely differently than traditional before/after.", + "why_it_works": "Subverts expected pattern. Audience sees beauty first then is horrified by before. Creates stronger emotional bond. High replay value. Psychological: PATTERN DISRUPTION + ENHANCED CONTRAST", + "mode": "👻 PHANTOM → Generate STAGE 5 first, reveal STAGE 0 last", + "platform": "TikTok (primary) → Instagram Reels (secondary)", + "timing": "Evergreen", + "blueprint": ["Generate full 6-stage sequence", "Reverse the order in editing", "Add text: 'This is the AFTER. Now watch.'", "Show destruction progression", "End with 'This is what it looked like BEFORE' on the worst state"], + "keywords": ["reverse renovation reveal", "renovation backwards", "room transformation reverse", "unique renovation format", "renovation content idea"], + "hashtags": ["#reversereveal", "#renovation", "#transformation", "#backwards", "#beforeandafter", "#uniqueformat", "#mindblown", "#roomreveal", "#satisfying", "#contentcreator"], + "series": "YES — 'REVERSE' series applied to different room types", + "engagement": "Did the REVERSE format hit different? Should I do more like this? 👇", + "unique": "Reverse reveal format is virtually untouched in renovation content." + } + ], + + IdeaDimension.COMPETITION_GAP: [ + { + "title": "The Room NOBODY Renovates — And Why It's Your Home's Biggest Missed Opportunity", + "viral_score": 9.0, + "hook": "There's one room you walk through EVERY DAY but have NEVER thought about renovating.", + "concept": "The ENTRYWAY. First thing anyone sees. Most neglected space in renovation content. Full 6-stage transformation of disastrous entryway into stunning functional first-impression space. Shoe storage, coat hooks, key organizer, mirror, lighting, flooring, bench.", + "why_it_works": "Competition gap — almost NO good entryway content. Universal relatability. Low-cost high-impact project. Surprise factor. Psychological: PRACTICAL VALUE + CURIOSITY GAP", + "mode": "👻 PHANTOM → Documentary Witness camera → INTERIOR macro", + "platform": "Instagram Reels (primary) → Pinterest (secondary)", + "timing": "Evergreen, peaks spring and fall", + "blueprint": ["Generate 6-stage entryway transformation", "Include specific storage solutions in STAGE 5", "Calculate $2-5K budget range", "Create split-frame thumbnail", "Post with 'Your entryway is your home's handshake' caption"], + "keywords": ["entryway renovation", "mudroom makeover", "foyer transformation", "small entryway ideas", "entryway organization"], + "hashtags": ["#entrywaymakeover", "#mudroom", "#foyer", "#firstimpression", "#smallspace", "#homeorganization", "#entrywaydesign", "#renovationtip", "#homeimprovement", "#beforeandafter"], + "series": "YES — 'Rooms Nobody Renovates' series: hallway, garage entry, utility room, under stairs", + "engagement": "Show me your entryway RIGHT NOW — no cleaning first. Drop a photo 👇", + "unique": "Entryway has MASSIVE Pinterest search volume but ZERO quality timelapse content." + } + ], + + IdeaDimension.CONTROVERSY: [ + { + "title": "Open Concept is OVERRATED — And Here's the Proof", + "viral_score": 9.1, + "hook": "Everyone's ripping out walls. But what if that's making your house WORSE?", + "concept": "Present the case AGAINST open concept with real evidence: acoustic nightmares, cooking smells everywhere, no privacy, harder to heat/cool, less wall space for art and storage, kids' noise travels. Then show a beautifully designed DEFINED-ROOM layout that proves rooms > open concept.", + "why_it_works": "Challenges the dominant narrative. EVERYONE has an opinion. Comment section EXPLODES. Educational + controversial = sharing gold. Psychological: OUTRAGE/DEBATE + SOCIAL CURRENCY", + "mode": "🏛️ ARCHITECT → Side-by-side comparison generation", + "platform": "YouTube (primary) → TikTok (secondary for clip)", + "timing": "Evergreen", + "blueprint": ["Generate an open concept design STAGE 5", "Generate a defined-room design STAGE 5 (same square footage)", "Present evidence against open concept", "Show the defined-room solution", "End with poll to drive comments"], + "keywords": ["open concept overrated", "rooms vs open concept", "closed floor plan comeback", "renovation mistakes", "design debate"], + "hashtags": ["#openconcept", "#unpopularopinion", "#renovationdebate", "#interiordesign", "#homedesign", "#floorplan", "#designmistakes", "#hottake", "#homerenovation", "#controversial"], + "series": "YES — 'Unpopular Renovation Opinions' weekly series", + "engagement": "Open concept or DEFINED ROOMS? This is about to start a WAR in the comments 👇", + "unique": "The backlash against open concept is growing but nobody's made definitive content about it." + } + ], + + IdeaDimension.NOSTALGIA: [ + { + "title": "I Recreated My EXACT Childhood Kitchen — But With Adult Money", + "viral_score": 9.3, + "hook": "The kitchen where I ate cereal every morning for 15 years. Rebuilt from memory.", + "concept": "Recreate your childhood home's kitchen from MEMORY — the exact layout, the color of the cabinets, the floor tile pattern, the window over the sink. Then show it side-by-side with a modern renovation of the same space. The nostalgia hit + the transformation creates double emotional impact.", + "why_it_works": "Nostalgia is one of the strongest sharing triggers. Everyone has kitchen memories. The contrast between memory and modern creates powerful emotion. Psychological: EMOTIONAL RESONANCE + IDENTITY", + "mode": "👻 PHANTOM → Cinematic Storyteller camera", + "platform": "TikTok (primary) → Instagram (secondary)", + "timing": "Evergreen, bonus during holidays and Mother's/Father's Day", + "blueprint": ["Describe childhood kitchen from memory in detail", "Generate recreation of childhood kitchen", "Generate modern renovation of same layout", "Film emotional narration", "Post with nostalgic audio"], + "keywords": ["childhood kitchen memories", "nostalgic renovation", "recreating childhood home", "kitchen through decades", "memory renovation"], + "hashtags": ["#childhoodmemories", "#nostalgia", "#kitchenmemories", "#growinupin", "#thenandnow", "#childhood", "#renovation", "#kitchendesign", "#memoryLane", "#emotional"], + "series": "YES — 'Memory Lane Renovations' for every room in childhood home", + "engagement": "Describe YOUR childhood kitchen in one sentence. I bet we ALL had that one weird detail 👇", + "unique": "Memory-based recreation content barely exists in renovation space." + } + ], + + IdeaDimension.SERIES_ARCHITECTURE: [ + { + "title": "Same Room. $500 vs $5,000 vs $50,000 vs $500,000 — Which Is Worth It?", + "viral_score": 9.6, + "hook": "4 budget levels. Same room. Only ONE is actually worth the money.", + "concept": "Take one room type and transform it at 4 wildly different budget levels. Show what each budget ACTUALLY gets you. Reveal which budget tier gives the best value per dollar. The comparison creates debate and the cost transparency creates trust.", + "why_it_works": "Budget comparison is THE most engaging format in renovation. Everyone wants to know 'is it worth it?' Creates massive debate. High save rate. Psychological: PRACTICAL VALUE + DEBATE + ASPIRATION", + "mode": "👻 PHANTOM → 4 versions of STAGE 5 at different budget levels", + "platform": "YouTube (primary) → TikTok series (secondary)", + "timing": "Evergreen", + "blueprint": ["Generate one STAGE 0", "Generate 4 STAGE 5 versions at each budget", "List actual costs per element for each tier", "Reveal best value-per-dollar winner", "Create multi-part series across platforms"], + "keywords": ["renovation budget comparison", "kitchen cost breakdown", "renovation cost tiers", "how much renovation costs", "budget vs luxury renovation"], + "hashtags": ["#budgetcomparison", "#renovationcost", "#worthit", "#luxuryvsbudget", "#homevalue", "#renovation", "#costbreakdown", "#realtalk", "#homeimprovement", "#smartspending"], + "series": "YES — THE DOLLAR SERIES for every room type (4-episode arcs)", + "engagement": "Which budget level would YOU choose? And which one shocked you? 👇", + "unique": "True budget-tier comparison with actual cost breakdowns at 4 levels hasn't been done properly." + } + ], + + IdeaDimension.SEASONAL_EVENT: [ + { + "title": "Tax Refund Renovation — Maximum Impact Projects Under $5K", + "viral_score": 8.6, + "hook": "You just got your tax refund. Here's EXACTLY how to spend it on your home.", + "concept": "Rank the top 5 renovation projects that give maximum visual and financial impact for under $5K (average tax refund). Generate before/after for each project. Include actual cost breakdowns and ROI estimates for home value.", + "why_it_works": "Perfectly timed for tax season. Practical + aspirational. Gives people a reason to act NOW. Psychological: PRACTICAL VALUE + URGENCY", + "mode": "👻 PHANTOM → Multiple quick transformations", + "platform": "YouTube (primary) → Instagram Carousel (secondary)", + "timing": "TIME SENSITIVE — post January through April", + "blueprint": ["Identify 5 highest-impact projects under $5K", "Generate before/after for each", "Include real cost breakdowns", "Rank by ROI/impact", "Post with urgency framing"], + "keywords": ["tax refund renovation", "budget home improvement", "best renovation ROI", "home projects under 5000", "tax refund home ideas"], + "hashtags": ["#taxrefund", "#taxseason", "#homeimprovement", "#budgetrenovation", "#ROI", "#homevalue", "#renovation", "#springrenovation", "#invest", "#smartmoney"], + "series": "YES — Annual 'Tax Refund Guide' + seasonal variations", + "engagement": "What would YOU spend your tax refund on? Home or vacation? 👇", + "unique": "Tax-refund-to-renovation pipeline content is underserved despite massive search volume." + } + ], + + IdeaDimension.COLLABORATION: [ + { + "title": "A Chef Designed This Kitchen. A Contractor Built It. You JUDGE It.", + "viral_score": 9.0, + "hook": "What happens when someone who USES a kitchen designs one vs someone who BUILDS them?", + "concept": "Pair a professional chef (who prioritizes function) with a contractor (who prioritizes buildability) to design the same kitchen. Show both versions. Audience decides which is better. The tension between 'looks great' and 'works great' creates massive engagement.", + "why_it_works": "Collaboration crosses audiences. Expert vs expert debate drives comments. Reveals hidden priorities in design. Psychological: DEBATE + SOCIAL CURRENCY + CURIOSITY", + "mode": "🏛️ ARCHITECT → Generate 2 competing STAGE 5 versions", + "platform": "YouTube (primary) → TikTok (clip) (secondary)", + "timing": "Evergreen", + "blueprint": ["Define chef's priorities vs contractor's priorities", "Generate both kitchen designs", "Present expert reasoning for each choice", "Show side-by-side comparison", "Post with 'CHEF or CONTRACTOR — who wins?' poll"], + "keywords": ["chef designed kitchen", "professional kitchen design", "kitchen design battle", "function vs form kitchen", "expert kitchen renovation"], + "hashtags": ["#chefskitchen", "#kitchendesign", "#designbattle", "#functionvsform", "#renovation", "#kitchengoals", "#expertopinion", "#whowinds", "#foodie", "#homedesign"], + "series": "YES — 'Expert vs Expert' series: artist bathroom, athlete home gym, musician studio", + "engagement": "CHEF kitchen or CONTRACTOR kitchen? Pick your side 👇", + "unique": "Cross-professional design battles are an untapped format in renovation content." + } + ], + + IdeaDimension.AUDIENCE_PSYCHOLOGY: [ + { + "title": "Your Brain is LYING to You About White Kitchens — Here's the Science", + "viral_score": 8.7, + "hook": "There's a psychological reason you think you want a white kitchen. And it's not what you think.", + "concept": "Explore why white kitchens dominate Pinterest and renovation shows using actual psychology: social proof bias, loss aversion (safe choice), and the Instagram flat-lay effect. Then show alternatives that are SCIENTIFICALLY proven to make people happier in their homes.", + "why_it_works": "Challenges a sacred cow with SCIENCE. People either agree passionately or defend their white kitchen passionately. Both reactions = engagement. Psychological: CONTROVERSY + EDUCATION + PRACTICAL VALUE", + "mode": "🏛️ ARCHITECT → Generate white kitchen vs alternatives", + "platform": "YouTube (primary) → TikTok (clip) (secondary)", + "timing": "Evergreen", + "blueprint": ["Research psychology studies on color preference", "Generate a standard white kitchen STAGE 5", "Generate 3 alternative kitchens backed by psychology", "Present evidence with visual comparisons", "Post with 'Are white kitchens ACTUALLY what you want?' hook"], + "keywords": ["white kitchen overrated", "kitchen color psychology", "best kitchen colors", "renovation psychology", "design science"], + "hashtags": ["#whitekitchen", "#kitchenpsychology", "#colorscience", "#renovationtruth", "#interiordesign", "#kitchendesign", "#designscience", "#hotake", "#renovation", "#controversial"], + "series": "YES — 'Your Brain is LYING' series about different design choices", + "engagement": "Do you have a white kitchen? Be honest — do you LOVE it or just TOLERATE it? 👇", + "unique": "Psychology-backed design challenges are a completely underexplored content angle." + } + ], + + IdeaDimension.NEWS_JACKING: [ + { + "title": "I Recreated [Celebrity]'s $10M Bathroom Aesthetic for $3,000", + "viral_score": 9.2, + "hook": "When [Celebrity] showed their bathroom, the internet lost it. So I built it for 1/3000th the price.", + "concept": "When a celebrity home goes viral (from a magazine feature, real estate listing, or social post), immediately analyze their most impressive room and generate a look-alike version achievable on a normal budget. Show the cost breakdown proving it's accessible.", + "why_it_works": "Celebrity + affordability = viral gold. Newsjacking gives you THEIR audience. Budget reveal creates saves. Psychological: ASPIRATION + PRACTICAL VALUE + TIMELINESS", + "mode": "👻 PHANTOM → Architectural Digest camera matching celebrity aesthetic", + "platform": "TikTok (primary) → Instagram (secondary)", + "timing": "TIME SENSITIVE — post within 48 hours of celebrity home going viral", + "blueprint": ["Monitor celebrity home reveals", "Analyze viral room design elements", "Generate budget-friendly recreation with real products", "Break down every cost vs celebrity version", "Post FAST with newsjacking hashtags"], + "keywords": ["celebrity bathroom recreation", "luxury for less", "celebrity home budget version", "affordable luxury design", "get the look for less"], + "hashtags": ["#celebrityhome", "#gettheook", "#luxuryforless", "#budgetdesign", "#bathroom", "#interiordesign", "#dupe", "#affordableluxury", "#renovation", "#trending"], + "series": "YES — 'Celebrity Dupes' ongoing series tied to viral moments", + "engagement": "Can you tell which is the $10M version and which is the $3K version? 👀", + "unique": "Speed of execution + genuine cost comparison creates unique value in news cycle." + } + ] + } + + self.OVERSATURATED_WARNING = [ + "Basic before/after with no story or unique angle", + "Generic 'we renovated our kitchen' with stock music", + "Simple room tours with no transformation element", + "All-white everything reveals (audience fatigue)", + "Generic 'satisfying' compilations without theme", + "Unedited raw footage with no pacing or story", + "Renovation reveals with no personality or hook", + "Pinterest recreation without adding original value", + "All-gray everything (trend is dead)", + "Copying exact formats from mega-creators without adaptation" + ] + + def generate_ideas(self, count: int = 5, niche: str = None, + dimension_override: List[IdeaDimension] = None) -> List[ContentIdea]: + """Generate viral content ideas""" + + ideas = [] + + # Determine dimensions based on day of week or override + if dimension_override: + dimensions = dimension_override + else: + day_name = self.day_of_week + if day_name in self.DIMENSION_SCHEDULE: + _, dimensions = self.DIMENSION_SCHEDULE[day_name] + else: + dimensions = [random.choice(list(IdeaDimension)) for _ in range(count)] + + for i in range(min(count, len(dimensions))): + dim = dimensions[i] + dim_ideas = self.IDEA_LIBRARY.get(dim, self.IDEA_LIBRARY[IdeaDimension.CROSS_NICHE_FUSION]) + + # Select a random idea from this dimension + if dim_ideas: + idea_data = random.choice(dim_ideas) + + # Check for duplicates + while idea_data["title"] in [idea.title for idea in self.generated_ideas] and len(dim_ideas) > 1: + idea_data = random.choice(dim_ideas) + + self.idea_counter += 1 + idea = ContentIdea( + idea_number=self.idea_counter, + dimension=dim.value, + title=idea_data["title"], + viral_score=idea_data["viral_score"], + hook=idea_data["hook"], + concept=idea_data["concept"], + why_it_works=idea_data["why_it_works"], + reality_shift_mode=idea_data["mode"], + best_platform=idea_data["platform"], + timing=idea_data["timing"], + execution_blueprint=idea_data["blueprint"], + keywords=idea_data["keywords"], + hashtags=idea_data["hashtags"], + series_potential=idea_data["series"], + engagement_prompt=idea_data["engagement"], + unique_factor=idea_data["unique"] + ) + ideas.append(idea) + self.generated_ideas.append(idea) + + return ideas + + def format_idea(self, idea: ContentIdea) -> str: + """Format a single idea for display""" + output = [] + output.append(f"\n{'═' * 60}") + output.append(f"💡 IDEA #{idea.idea_number} — {idea.dimension}") + output.append(f"{'═' * 60}") + output.append(f"\n🏷️ TITLE: {idea.title}") + output.append(f"\n🔥 VIRAL SCORE: {idea.viral_score}/10") + output.append(f"\n🎯 HOOK: {idea.hook}") + output.append(f"\n📖 CONCEPT:\n{textwrap.fill(idea.concept, width=95)}") + output.append(f"\n🧠 WHY IT WORKS:\n{textwrap.fill(idea.why_it_works, width=95)}") + output.append(f"\n🎬 REALITY SHIFT MODE: {idea.reality_shift_mode}") + output.append(f"\n📱 BEST PLATFORM: {idea.best_platform}") + output.append(f"\n⏱️ TIMING: {idea.timing}") + output.append(f"\n📐 EXECUTION BLUEPRINT:") + for j, step in enumerate(idea.execution_blueprint, 1): + output.append(f" Step {j}: {step}") + output.append(f"\n🏷️ KEYWORDS: {', '.join(idea.keywords)}") + output.append(f"\n#️⃣ HASHTAGS: {' '.join(idea.hashtags)}") + output.append(f"\n📺 SERIES POTENTIAL: {idea.series_potential}") + output.append(f"\n💬 ENGAGEMENT PROMPT: {idea.engagement_prompt}") + output.append(f"\n⚡ UNIQUE FACTOR:\n{textwrap.fill(idea.unique_factor, width=95)}") + output.append("") + return "\n".join(output) + + def format_session_header(self) -> str: + """Format the session opening""" + day_name = self.day_of_week + schedule = self.DIMENSION_SCHEDULE.get(day_name, ("🧠 GENIUS MODE", [])) + theme_name = schedule[0] + month = self.current_date.month + month_name = self.current_date.strftime("%B") + + season_map = {12: "Winter", 1: "Winter", 2: "Winter", + 3: "Spring", 4: "Spring", 5: "Spring", + 6: "Summer", 7: "Summer", 8: "Summer", + 9: "Fall", 10: "Fall", 11: "Fall"} + season = season_map.get(month, "") + + output = [] + output.append(f"{'═' * 60}") + output.append("🧠 MIND BREACH ENGINE — ACTIVATED") + output.append("Your brain has walls. I don't.") + output.append(f"{'═' * 60}") + output.append(f"\n📅 Today: {day_name} → {theme_name}") + output.append(f"🌍 Season: {season} ({month_name})") + output.append(f"\n⚠️ AVOID THESE RIGHT NOW (Oversaturated):") + for item in random.sample(self.OVERSATURATED_WARNING, 5): + output.append(f" • {item}") + output.append("") + return "\n".join(output) + + def generate_content_calendar(self, days: int = 30, ideas_per_day: int = 1) -> str: + """Generate a content calendar""" + output = [] + output.append(f"\n{'═' * 60}") + output.append(f"📅 {days}-DAY CONTENT CALENDAR") + output.append(f"{'═' * 60}\n") + + start_date = self.current_date + all_dimensions = list(IdeaDimension) + + for day in range(days): + current = start_date + timedelta(days=day) + day_name = current.strftime("%A") + date_str = current.strftime("%b %d") + schedule = self.DIMENSION_SCHEDULE.get(day_name, ("🧠 OPEN", [])) + theme = schedule[0] + + dim = random.choice(schedule[1]) if schedule[1] else random.choice(all_dimensions) + dim_ideas = self.IDEA_LIBRARY.get(dim, list(self.IDEA_LIBRARY.values())[0]) + idea_data = random.choice(dim_ideas) + + output.append(f"📌 Day {day+1} | {date_str} ({day_name}) | {theme}") + output.append(f" 💡 {idea_data['title']}") + output.append(f" 📱 Platform: {idea_data['platform']}") + output.append(f" 🔥 Viral Score: {idea_data['viral_score']}/10") + output.append(f" 🎬 Mode: {idea_data['mode']}") + output.append(f" {'─' * 50}") + + return "\n".join(output) + + +# Initialize +mind_engine = MindBreachEngine() +console.print("[bold green]✅ Mind Breach Idea Generation Engine loaded![/bold green]") +console.print(f" 🧠 Idea dimensions: {len(IdeaDimension)} active") +console.print(f" 📅 Daily rotation: 7-day schedule active") +console.print(f" 💡 Idea library: {sum(len(v) for v in mind_engine.IDEA_LIBRARY.values())} unique ideas loaded") +# ═══════════════════════════════════════════════════════════════ +# 🚀 MAIN EXECUTION INTERFACE +# ═══════════════════════════════════════════════════════════════ + +def run_reality_shift(space_type, style, niche, + camera=CameraProfile.CINEMATIC_STORYTELLER, + lighting="golden_hour", + cost_estimate="", + materials=None): + """Generate complete Reality Shift output""" + + if materials is None: + materials = {} + + console.print(Panel.fit( + f"[bold magenta]🔥 REALITY SHIFT ENGINE — GENERATING[/bold magenta]\n" + f"[cyan]Space: {space_type}[/cyan]\n" + f"[yellow]Style: {style}[/yellow]\n" + f"[green]Camera: {camera.value}[/green]\n" + f"[white]Lighting: {lighting}[/white]", + border_style="bright_magenta", + title="⚡ GENERATING", + subtitle="Let's make reality jealous." + )) + + # Generate full sequence + engine = RealityShiftEngine() + output = engine.generate_full_sequence( + space_type=space_type, + style=style, + niche=niche, + camera=camera, + lighting=lighting, + materials=materials, + cost_estimate=cost_estimate + ) + + print(output) + return output + + +def run_mind_breach(count=5, niche=None): + """Generate viral content ideas""" + + console.print(Panel.fit( + "[bold cyan]🧠 MIND BREACH ENGINE — ACTIVATED[/bold cyan]\n" + "[yellow]Your brain has walls. I don't.[/yellow]", + border_style="bright_cyan", + title="⚡ IDEA GENERATION", + subtitle="Ideas you can't think of." + )) + + # Print session header + header = mind_engine.format_session_header() + print(header) + + # Generate ideas + ideas = mind_engine.generate_ideas(count=count, niche=niche) + + for idea in ideas: + print(mind_engine.format_idea(idea)) + + # Print navigation options + print(f"\n{'═' * 60}") + print("🎯 WHAT'S NEXT?") + print(f"{'═' * 60}") + print("💡 Run run_mind_breach(5) → 5 more NEW ideas") + print("🔥 Run run_reality_shift() → Generate prompts for any idea") + print("📅 Run run_calendar(30) → 30-day content calendar") + print("🧠 Run run_genius_mode() → Wildest ideas, no limits") + print(f"{'═' * 60}\n") + + return ideas + + +def run_calendar(days=30): + """Generate content calendar""" + + console.print(Panel.fit( + f"[bold green]📅 CONTENT CALENDAR — {days} DAYS[/bold green]", + border_style="bright_green" + )) + + calendar_output = mind_engine.generate_content_calendar(days=days) + print(calendar_output) + return calendar_output + + +def run_genius_mode(): + """Generate wildest possible ideas with no constraints""" + + console.print(Panel.fit( + "[bold red]🧠 GENIUS MODE — NO LIMITS[/bold red]\n" + "[yellow]The WILDEST ideas. Zero constraints. Pure creativity.[/yellow]", + border_style="bright_red" + )) + + all_dimensions = list(IdeaDimension) + random.shuffle(all_dimensions) + ideas = mind_engine.generate_ideas(count=5, dimension_override=all_dimensions[:5]) + + for idea in ideas: + print(mind_engine.format_idea(idea)) + + return ideas + + +def run_full_pipeline(space_type, style, niche, camera=CameraProfile.CINEMATIC_STORYTELLER): + """Run EVERYTHING — Ideas + Prompts + Calendar""" + + console.print(Panel.fit( + "[bold magenta]🚀 FULL PIPELINE — EVERYTHING AT ONCE[/bold magenta]\n" + "[cyan]Ideas → Prompts → Keywords → Calendar[/cyan]", + border_style="bright_magenta", + title="⚡ FULL PIPELINE", + subtitle="Maximum output. Zero waste." + )) + + print("\n" + "=" * 60) + print("PHASE 1: VIRAL IDEAS") + print("=" * 60) + ideas = run_mind_breach(5, niche) + + print("\n" + "=" * 60) + print("PHASE 2: REALITY SHIFT PROMPTS") + print("=" * 60) + prompts = run_reality_shift(space_type, style, niche, camera) + + print("\n" + "=" * 60) + print("PHASE 3: 30-DAY CONTENT CALENDAR") + print("=" * 60) + calendar = run_calendar(30) + + return {"ideas": ideas, "prompts": prompts, "calendar": calendar} + + +# ────────────────────────────────────────── +# QUICK MENU +# ────────────────────────────────────────── +console.print(Panel.fit( + "[bold green]✅ ALL SYSTEMS LOADED AND READY![/bold green]\n\n" + "[cyan]Available Commands:[/cyan]\n\n" + "[yellow]1. run_mind_breach(5)[/yellow] → Generate 5 viral ideas\n" + "[yellow]2. run_reality_shift(...)[/yellow] → Generate 6-stage prompts\n" + "[yellow]3. run_calendar(30)[/yellow] → 30-day content calendar\n" + "[yellow]4. run_genius_mode()[/yellow] → Wildest ideas, no limits\n" + "[yellow]5. run_full_pipeline(...)[/yellow] → EVERYTHING at once\n\n" + "[white]See CELL 9 below for ready-to-run examples![/white]", + border_style="bright_green", + title="🧠 REALITY SHIFT + MIND BREACH", + subtitle="Ready to make reality jealous." +)) +# ═══════════════════════════════════════════════════════════════ +# 🎯 READY-TO-RUN EXAMPLES +# Inme se koi bhi ek uncomment karke run karo! +# ═══════════════════════════════════════════════════════════════ + +# ────────────────────────────────────────── +# 🧠 OPTION 1: SIRF IDEAS CHAHIYE (5 viral ideas) +# ────────────────────────────────────────── +run_mind_breach(5) + + +# ────────────────────────────────────────── +# 📸 OPTION 2: SIRF PROMPTS CHAHIYE (6 images + 5 videos) +# Neeche apna space type, style, niche change karo +# ────────────────────────────────────────── + +# run_reality_shift( +# space_type="Small 1970s Galley Kitchen", +# style="Modern Farmhouse with Warm Minimalism", +# niche="kitchen", +# camera=CameraProfile.CINEMATIC_STORYTELLER, +# lighting="golden_hour", +# cost_estimate="65K" +# ) + + +# ────────────────────────────────────────── +# 📅 OPTION 3: SIRF CALENDAR CHAHIYE (30-day plan) +# ────────────────────────────────────────── + +# run_calendar(30) + + +# ────────────────────────────────────────── +# 🧠 OPTION 4: GENIUS MODE (Wildest ideas) +# ────────────────────────────────────────── + +# run_genius_mode() + + +# ────────────────────────────────────────── +# 🚀 OPTION 5: SAB KUCH EK SAATH (Full Pipeline) +# ────────────────────────────────────────── + +# run_full_pipeline( +# space_type="Abandoned Victorian Bathroom", +# style="Japandi Spa Retreat", +# niche="bathroom", +# camera=CameraProfile.ARCHITECTURAL_DIGEST +# ) +# ═══════════════════════════════════════════════════════════════ +# ✏️ APNA CUSTOM PROJECT YAHAN DAAL +# Neeche ki values change karo apne project ke according +# ═══════════════════════════════════════════════════════════════ + +# ────────────────────────────────────── +# 👇 YAHAN APNI DETAILS BHARO +# ────────────────────────────────────── + +MY_SPACE = "Small 1990s Master Bathroom" # Kaunsa space hai? +MY_STYLE = "Luxury Japandi Spa" # Kaunsa design style chahiye? +MY_NICHE = "bathroom" # Category kya hai? +MY_BUDGET = "42K" # Budget kitna hai? (optional) +MY_CAMERA = CameraProfile.CINEMATIC_STORYTELLER # Camera style + +# Available Camera Options: +# CameraProfile.DOCUMENTARY_WITNESS → Static wide, raw honest +# CameraProfile.ARCHITECTURAL_DIGEST → Magazine editorial +# CameraProfile.CINEMATIC_STORYTELLER → Emotional, warm, intimate +# CameraProfile.DRONE_GOD → Aerial epic +# CameraProfile.DETAIL_HUNTER → Close-up material shots + +# Available Lighting Options: +# "golden_hour" → Warm, dreamy, cinematic +# "blue_hour" → Moody, twilight, dramatic +# "overcast_noon" → Soft, even, neutral +# "harsh_midday" → High contrast, sharp shadows +# "night_interior" → Warm interior glow +# "construction_work_lights" → Raw construction feel + +MY_LIGHTING = "golden_hour" + +# ────────────────────────────────────── +# 👇 AB RUN KARO (Shift+Enter) +# ────────────────────────────────────── + +print("=" * 60) +print("🧠 PHASE 1: GENERATING VIRAL IDEAS...") +print("=" * 60) +ideas = run_mind_breach(5, MY_NICHE) + +print("\n" + "=" * 60) +print("🔥 PHASE 2: GENERATING REALITY SHIFT PROMPTS...") +print("=" * 60) +prompts = run_reality_shift( + space_type=MY_SPACE, + style=MY_STYLE, + niche=MY_NICHE, + camera=MY_CAMERA, + lighting=MY_LIGHTING, + cost_estimate=MY_BUDGET +) + +print("\n" + "=" * 60) +print("📅 PHASE 3: GENERATING 30-DAY CALENDAR...") +print("=" * 60) +calendar = run_calendar(30) + +print("\n" + "=" * 60) +print("✅ SARI GENERATION COMPLETE!") +print("=" * 60) +print("\nAb OpenArt pe jao aur IMAGE 1-6 generate karo:") +print("👉 https://openart.ai/home") +print("\nPhir VIDEO 1-5 animate karo frame-to-video se!") +!pip install gradio --quiet +import gradio as gr +from IPython.display import display, HTML +print("✅ UI library ready!") +# ═══════════════════════════════════════════════════════════════ +# 🖥️ REALITY SHIFT + MIND BREACH — VISUAL UI +# Run this cell → A beautiful web UI will open below +# ═══════════════════════════════════════════════════════════════ + +# ────────────────────────────────────── +# ENGINE INSTANCES +# ────────────────────────────────────── +rs_engine = RealityShiftEngine() +mb_engine = MindBreachEngine() +tk_engine = TitleKeywordEngine() + +# ────────────────────────────────────── +# CAMERA & LIGHTING MAPS +# ────────────────────────────────────── +CAMERA_MAP = { + "🎥 Cinematic Storyteller (35-50mm, emotional, warm)": CameraProfile.CINEMATIC_STORYTELLER, + "📰 Documentary Witness (24mm, raw, honest, static)": CameraProfile.DOCUMENTARY_WITNESS, + "📸 Architectural Digest (24mm TS, editorial, magazine)": CameraProfile.ARCHITECTURAL_DIGEST, + "🚁 Drone God (24mm aerial, epic scale)": CameraProfile.DRONE_GOD, + "🔍 Detail Hunter (85mm, close-up, tactile)": CameraProfile.DETAIL_HUNTER +} + +LIGHTING_MAP = { + "🌅 Golden Hour (warm, dreamy, cinematic)": "golden_hour", + "🌆 Blue Hour (moody, twilight, dramatic)": "blue_hour", + "☁️ Overcast (soft, even, neutral)": "overcast_noon", + "☀️ Harsh Midday (high contrast, sharp)": "harsh_midday", + "🌙 Night Interior (warm glow, intimate)": "night_interior", + "💡 Construction Lights (raw, industrial)": "construction_work_lights" +} + +NICHE_OPTIONS = [ + "kitchen", "bathroom", "bedroom", "living room", + "exterior", "landscape", "vehicle", "road", + "pool", "restaurant", "garage", "office", + "basement", "attic", "laundry room", "entryway" +] + +PRESET_EXAMPLES = { + "🍳 1970s Kitchen → Modern Farmhouse": ("Small 1970s Galley Kitchen", "Modern Farmhouse with Warm Minimalism", "kitchen", "65K"), + "🛁 90s Bathroom → Japandi Spa": ("Dated 1990s Master Bathroom", "Luxury Japandi Spa Retreat", "bathroom", "42K"), + "🏠 Ranch Exterior → Modern Craftsman": ("1960s Ranch House Facade", "Modern Craftsman Revival", "exterior", "95K"), + "🚗 Barn Find Mustang → Show Car": ("1969 Ford Mustang Barn Find", "Concours Show Quality Restoration", "vehicle", "80K"), + "🌿 Dead Yard → Resort Oasis": ("Empty Dirt Backyard Suburban Home", "Resort-Style Pool and Landscape Oasis", "landscape", "120K"), + "🍜 Empty Space → Ramen Bar": ("Raw Commercial Warehouse Space", "Authentic Japanese Ramen Restaurant", "restaurant", "150K"), + "🏊 Dirt Lot → Luxury Pool": ("Empty Flat Backyard No Features", "Modern Resort Infinity Pool", "pool", "90K"), + "🛣️ Crumbling Road → Fresh Highway": ("Deteriorated 2-Lane County Road", "Smooth 4-Lane Boulevard", "road", ""), + "🧒 Kids Room → Adventure Room": ("Plain Boring 10x12 Bedroom", "Adventure Treehouse Fantasy Room", "bedroom", "15K"), + "💼 Spare Room → Pro Home Office": ("Empty Spare Bedroom", "Executive Luxury Home Office", "office", "25K"), +} + +# ────────────────────────────────────── +# GENERATE FUNCTIONS +# ────────────────────────────────────── + +def generate_prompts(space_type, style, niche, camera_name, lighting_name, budget): + """Generate full 6-stage prompt sequence with titles and keywords""" + + if not space_type or not style or not niche: + return "❌ Please fill in Space Type, Style, and Niche before generating." + + camera = CAMERA_MAP.get(camera_name, CameraProfile.CINEMATIC_STORYTELLER) + lighting = LIGHTING_MAP.get(lighting_name, "golden_hour") + + engine = RealityShiftEngine() + + try: + output = engine.generate_full_sequence( + space_type=space_type, + style=style, + niche=niche, + camera=camera, + lighting=lighting, + materials={}, + cost_estimate=budget if budget else "" + ) + return output + except Exception as e: + return f"❌ Error: {str(e)}\n\nTry checking your inputs and run Cells 1-8 first." + + +def generate_single_stage(space_type, style, niche, camera_name, + lighting_name, stage_name): + """Generate prompt for a single specific stage""" + + if not space_type or not style: + return "❌ Please fill in Space Type and Style." + + camera = CAMERA_MAP.get(camera_name, CameraProfile.CINEMATIC_STORYTELLER) + lighting = LIGHTING_MAP.get(lighting_name, "golden_hour") + + stage_map = { + "STAGE 0 — THE DEATH STATE": Stage.STAGE_0, + "STAGE 1 — THE TEARDOWN": Stage.STAGE_1, + "STAGE 2 — THE SKELETON": Stage.STAGE_2, + "STAGE 3 — THE SKIN": Stage.STAGE_3, + "STAGE 4 — THE CLEAN SHELL": Stage.STAGE_4, + "STAGE 5 — THE PARADISE": Stage.STAGE_5, + } + + stage = stage_map.get(stage_name, Stage.STAGE_5) + + engine = RealityShiftEngine() + engine.create_scene_lock(camera, space_type) + engine.create_landmarks(space_type, niche if niche else "interior") + + prompt = engine.generate_image_prompt( + stage=stage, + space_type=space_type, + style=style, + niche=niche if niche else "interior", + lighting=lighting + ) + + return engine.format_image_prompt(prompt) + + +def generate_ideas(count, niche_filter): + """Generate viral content ideas""" + + engine = MindBreachEngine() + + header = engine.format_session_header() + + try: + count_int = int(count) + except: + count_int = 5 + + ideas = engine.generate_ideas(count=count_int, niche=niche_filter if niche_filter else None) + + output_parts = [header] + for idea in ideas: + output_parts.append(engine.format_idea(idea)) + + output_parts.append(f"\n{'═' * 60}") + output_parts.append("💡 Click 'Generate Ideas' again for 5 completely NEW ideas!") + output_parts.append(f"{'═' * 60}") + + return "\n".join(output_parts) + + +def generate_genius_ideas(): + """Generate wildest possible ideas""" + + engine = MindBreachEngine() + all_dims = list(IdeaDimension) + random.shuffle(all_dims) + + ideas = engine.generate_ideas(count=5, dimension_override=all_dims[:5]) + + output_parts = [] + output_parts.append(f"{'═' * 60}") + output_parts.append("🧠 GENIUS MODE — NO LIMITS — WILDEST IDEAS") + output_parts.append(f"{'═' * 60}\n") + + for idea in ideas: + output_parts.append(engine.format_idea(idea)) + + return "\n".join(output_parts) + + +def generate_calendar(days): + """Generate content calendar""" + + engine = MindBreachEngine() + + try: + days_int = int(days) + except: + days_int = 30 + + return engine.generate_content_calendar(days=days_int) + + +def generate_titles_keywords(space_type, style, niche): + """Generate only titles and keywords""" + + if not space_type or not style: + return "❌ Please fill in Space Type and Style." + + engine = TitleKeywordEngine() + + titles = engine.generate_titles( + space_type=space_type, + style=style, + niche=niche if niche else "interior" + ) + keywords = engine.generate_keywords( + space_type=space_type, + style=style, + niche=niche if niche else "interior", + room_type=space_type + ) + + return engine.format_output(titles, keywords) + + +def load_preset(preset_name): + """Load a preset example""" + + if preset_name in PRESET_EXAMPLES: + data = PRESET_EXAMPLES[preset_name] + return data[0], data[1], data[2], data[3] + return "", "", "", "" + + +def apply_preset(preset_name): + """Apply preset and return all 4 values""" + space, style, niche, budget = load_preset(preset_name) + return space, style, niche, budget + + +# ────────────────────────────────────── +# BUILD THE UI +# ────────────────────────────────────── + +custom_css = """ +.main-title { + text-align: center; + font-size: 2em; + font-weight: bold; + background: linear-gradient(90deg, #ff6b6b, #ffa500, #ff6b6b); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + margin-bottom: 5px; +} +.sub-title { + text-align: center; + font-size: 1.1em; + color: #888; + margin-bottom: 20px; +} +.output-box textarea { + font-family: 'Courier New', monospace !important; + font-size: 13px !important; + line-height: 1.6 !important; +} +""" + +with gr.Blocks( + title="🔥 Reality Shift + Mind Breach Engine", + theme=gr.themes.Soft( + primary_hue="orange", + secondary_hue="blue", + neutral_hue="slate" + ), + css=custom_css +) as app: + + # ── HEADER ── + gr.HTML(""" +
+

+ 🔥 REALITY SHIFT + 🧠 MIND BREACH ENGINE +

+

+ Where AI ends and reality begins — nobody can tell. +

+

+ 6-Stage Prompts • Viral Ideas • Auto Titles & Keywords • Content Calendar +

+
+ """) + + # ═══════════════════════════════════════ + # TAB 1: PROMPT GENERATOR + # ═══════════════════════════════════════ + with gr.Tab("📸 Prompt Generator", id="prompts"): + + gr.Markdown("### ⚡ Generate 6-Stage Transformation Prompts + Video Prompts") + gr.Markdown("Fill in your project details or pick a preset below, then click Generate.") + + # Presets + with gr.Row(): + preset_dropdown = gr.Dropdown( + choices=list(PRESET_EXAMPLES.keys()), + label="⚡ Quick Presets (pick one to auto-fill)", + interactive=True + ) + preset_btn = gr.Button("📋 Load Preset", variant="secondary") + + # Input Fields + with gr.Row(): + with gr.Column(): + space_input = gr.Textbox( + label="🏠 Space Type", + placeholder="e.g., Small 1970s Galley Kitchen", + lines=1 + ) + style_input = gr.Textbox( + label="🎨 Design Style", + placeholder="e.g., Modern Farmhouse with Warm Minimalism", + lines=1 + ) + with gr.Column(): + niche_input = gr.Dropdown( + choices=NICHE_OPTIONS, + label="📂 Niche / Category", + value="kitchen", + interactive=True + ) + budget_input = gr.Textbox( + label="💰 Budget (optional)", + placeholder="e.g., 65K", + lines=1 + ) + + with gr.Row(): + camera_input = gr.Dropdown( + choices=list(CAMERA_MAP.keys()), + label="📷 Camera Profile", + value="🎥 Cinematic Storyteller (35-50mm, emotional, warm)", + interactive=True + ) + lighting_input = gr.Dropdown( + choices=list(LIGHTING_MAP.keys()), + label="💡 Lighting", + value="🌅 Golden Hour (warm, dreamy, cinematic)", + interactive=True + ) + + generate_btn = gr.Button("🔥 GENERATE FULL 6-STAGE SEQUENCE", variant="primary", size="lg") + + prompt_output = gr.Textbox( + label="📸 Generated Prompts (Titles + Keywords + 6 Images + 5 Videos + CTA)", + lines=40, + show_copy_button=True, + interactive=False + ) + + # Preset loader + preset_btn.click( + fn=apply_preset, + inputs=[preset_dropdown], + outputs=[space_input, style_input, niche_input, budget_input] + ) + + # Main generate + generate_btn.click( + fn=generate_prompts, + inputs=[space_input, style_input, niche_input, camera_input, lighting_input, budget_input], + outputs=[prompt_output] + ) + + # ═══════════════════════════════════════ + # TAB 2: SINGLE STAGE GENERATOR + # ═══════════════════════════════════════ + with gr.Tab("🎯 Single Stage", id="single"): + + gr.Markdown("### 🎯 Generate Prompt For One Specific Stage") + gr.Markdown("Need just one stage? Pick it below.") + + with gr.Row(): + ss_space = gr.Textbox(label="🏠 Space Type", placeholder="e.g., Master Bathroom", lines=1) + ss_style = gr.Textbox(label="🎨 Style", placeholder="e.g., Japandi Spa", lines=1) + ss_niche = gr.Dropdown(choices=NICHE_OPTIONS, label="📂 Niche", value="bathroom") + + with gr.Row(): + ss_camera = gr.Dropdown( + choices=list(CAMERA_MAP.keys()), + label="📷 Camera", + value="🎥 Cinematic Storyteller (35-50mm, emotional, warm)" + ) + ss_lighting = gr.Dropdown( + choices=list(LIGHTING_MAP.keys()), + label="💡 Lighting", + value="🌅 Golden Hour (warm, dreamy, cinematic)" + ) + ss_stage = gr.Dropdown( + choices=[ + "STAGE 0 — THE DEATH STATE", + "STAGE 1 — THE TEARDOWN", + "STAGE 2 — THE SKELETON", + "STAGE 3 — THE SKIN", + "STAGE 4 — THE CLEAN SHELL", + "STAGE 5 — THE PARADISE" + ], + label="🎬 Stage", + value="STAGE 5 — THE PARADISE" + ) + + ss_btn = gr.Button("🎯 Generate Single Stage Prompt", variant="primary") + + ss_output = gr.Textbox( + label="📸 Single Stage Prompt", + lines=20, + show_copy_button=True, + interactive=False + ) + + ss_btn.click( + fn=generate_single_stage, + inputs=[ss_space, ss_style, ss_niche, ss_camera, ss_lighting, ss_stage], + outputs=[ss_output] + ) + + # ═══════════════════════════════════════ + # TAB 3: VIRAL IDEAS + # ═══════════════════════════════════════ + with gr.Tab("💡 Viral Ideas", id="ideas"): + + gr.Markdown("### 🧠 Mind Breach — Viral Content Idea Generator") + gr.Markdown("Click any button. New ideas every time. Never repeats.") + + with gr.Row(): + idea_count = gr.Slider( + minimum=1, maximum=10, value=5, step=1, + label="How many ideas?" + ) + idea_niche = gr.Dropdown( + choices=[""] + NICHE_OPTIONS, + label="Filter by niche (optional)", + value="" + ) + + with gr.Row(): + idea_btn = gr.Button("💡 Generate Viral Ideas", variant="primary", size="lg") + genius_btn = gr.Button("🧠 GENIUS MODE (No Limits)", variant="secondary", size="lg") + + idea_output = gr.Textbox( + label="💡 Your Viral Ideas (with Execution Blueprints)", + lines=40, + show_copy_button=True, + interactive=False + ) + + idea_btn.click( + fn=generate_ideas, + inputs=[idea_count, idea_niche], + outputs=[idea_output] + ) + + genius_btn.click( + fn=generate_genius_ideas, + inputs=[], + outputs=[idea_output] + ) + + # ═══════════════════════════════════════ + # TAB 4: TITLES & KEYWORDS + # ═══════════════════════════════════════ + with gr.Tab("🏷️ Titles & Keywords", id="titles"): + + gr.Markdown("### 🏷️ Auto Title & Keyword Generator") + gr.Markdown("3 Titles + 55 Keywords across 5 layers. Instant SEO.") + + with gr.Row(): + tk_space = gr.Textbox(label="🏠 Space Type", placeholder="e.g., Kitchen", lines=1) + tk_style = gr.Textbox(label="🎨 Style", placeholder="e.g., Modern Farmhouse", lines=1) + tk_niche = gr.Dropdown(choices=NICHE_OPTIONS, label="📂 Niche", value="kitchen") + + tk_btn = gr.Button("🏷️ Generate Titles & Keywords", variant="primary") + + tk_output = gr.Textbox( + label="🏷️ Titles + Keywords (5 Layers)", + lines=25, + show_copy_button=True, + interactive=False + ) + + tk_btn.click( + fn=generate_titles_keywords, + inputs=[tk_space, tk_style, tk_niche], + outputs=[tk_output] + ) + + # ═══════════════════════════════════════ + # TAB 5: CONTENT CALENDAR + # ═══════════════════════════════════════ + with gr.Tab("📅 Content Calendar", id="calendar"): + + gr.Markdown("### 📅 Auto Content Calendar Generator") + gr.Markdown("Pick how many days. Get a full plan with ideas for every single day.") + + cal_days = gr.Slider( + minimum=7, maximum=90, value=30, step=1, + label="How many days?" + ) + + cal_btn = gr.Button("📅 Generate Content Calendar", variant="primary", size="lg") + + cal_output = gr.Textbox( + label="📅 Your Content Calendar", + lines=40, + show_copy_button=True, + interactive=False + ) + + cal_btn.click( + fn=generate_calendar, + inputs=[cal_days], + outputs=[cal_output] + ) + + # ═══════════════════════════════════════ + # TAB 6: HOW TO USE + # ═══════════════════════════════════════ + with gr.Tab("❓ How To Use", id="help"): + + gr.Markdown(""" +### 🚀 How To Use This Tool + +#### 📸 Tab 1: Prompt Generator +1. Fill in your **Space Type** (e.g., "Small 1970s Galley Kitchen") +2. Fill in your **Design Style** (e.g., "Modern Farmhouse") +3. Pick your **Niche**, **Camera**, and **Lighting** +4. Click **🔥 GENERATE** +5. Copy the output → Paste into **OpenArt** (https://openart.ai/home) +6. Generate IMAGE 1-6, then animate VIDEO 1-5 + +#### 🎯 Tab 2: Single Stage +- Need just one stage? Pick the specific stage and generate only that prompt. + +#### 💡 Tab 3: Viral Ideas +- Click **Generate** → Get 5 unique viral content ideas +- Click **GENIUS MODE** → Get the wildest ideas with no limits +- Every idea comes with: Title, Hook, Concept, Execution Blueprint, Keywords, Hashtags + +#### 🏷️ Tab 4: Titles & Keywords +- Generate 3 titles (viral + SEO + short) and 55+ keywords across 5 layers +- Copy directly into your YouTube/Instagram/TikTok posts + +#### 📅 Tab 5: Content Calendar +- Pick 7 to 90 days → Get a complete posting plan with ideas for every day + +--- + +### 🎯 Quick Presets Available (Tab 1) +| Preset | Space | Style | +|--------|-------|-------| +| 🍳 Kitchen | 1970s Galley Kitchen | Modern Farmhouse | +| 🛁 Bathroom | 1990s Master Bathroom | Japandi Spa | +| 🏠 Exterior | 1960s Ranch House | Modern Craftsman | +| 🚗 Vehicle | 1969 Ford Mustang | Show Quality | +| 🌿 Landscape | Empty Dirt Backyard | Resort Oasis | +| 🍜 Restaurant | Warehouse Space | Japanese Ramen Bar | +| 🏊 Pool | Empty Flat Backyard | Resort Infinity Pool | +| 🛣️ Road | Crumbling 2-Lane | Fresh Boulevard | +| 🧒 Bedroom | Plain 10x12 Room | Adventure Treehouse | +| 💼 Office | Empty Spare Room | Executive Home Office | + +--- + +### ⚡ Pro Tips +- **Click Generate multiple times** — you get DIFFERENT outputs every time +- **Use the Copy button** (📋) to copy output directly +- **Mix cameras** — try Documentary Witness for raw feels, Architectural Digest for magazine look +- **Try different lighting** — Golden Hour for warm, Blue Hour for moody, Night for dramatic +- **Presets** save time — pick one, modify the details, generate! + """) + + # ── FOOTER ── + gr.HTML(""" +
+

+ 🔥 REALITY SHIFT ENGINE (APEX 5.0) + 🧠 MIND BREACH ENGINE (OMEGA 1.0)
+ Generate images on OpenArt → + Animate videos with frame-to-video → Post and go viral
+ Let's make reality jealous. +

+
+ """) + +# ────────────────────────────────────── +# 🚀 LAUNCH THE UI +# ────────────────────────────────────── +app.launch( + share=True, + debug=False, + show_error=True, + quiet=False +)