Spaces:
Paused
Paused
Update app.py
Browse filesvariations of prompt
app.py
CHANGED
@@ -7,7 +7,7 @@ import torch
|
|
7 |
import numpy as np
|
8 |
import cv2
|
9 |
from diffusers import StableDiffusionControlNetImg2ImgPipeline, ControlNetModel
|
10 |
-
from utils.planner import extract_scene_plan # 🧠 Brain Layer
|
11 |
|
12 |
# ----------------------------
|
13 |
# 🔧 Device Setup
|
@@ -44,35 +44,6 @@ def generate_canny_map(image: Image.Image) -> Image.Image:
|
|
44 |
return canny_image
|
45 |
|
46 |
|
47 |
-
# ----------------------------
|
48 |
-
# 🧠 Generate Prompt Variations from Scene Plan
|
49 |
-
# ----------------------------
|
50 |
-
def generate_prompt_variations(base_prompt: str, scene_plan: dict, num_variations: int) -> list:
|
51 |
-
variations = []
|
52 |
-
scene = scene_plan.get("scene", {})
|
53 |
-
subject = scene_plan.get("subject", {})
|
54 |
-
layout = scene_plan.get("layout", {})
|
55 |
-
|
56 |
-
for i in range(num_variations):
|
57 |
-
enriched = f"{base_prompt}, in a {scene.get('environment', '')} setting with {scene.get('setting', '')}, featuring {subject.get('main_actor', '')}, layout includes"
|
58 |
-
|
59 |
-
# Foreground
|
60 |
-
fg = layout.get("foreground", {}).get("elements", [])
|
61 |
-
fg_text = ", ".join([f"{el['type']} at {el['position']}" for el in fg if 'type' in el and 'position' in el])
|
62 |
-
enriched += f" {fg_text} in foreground,"
|
63 |
-
|
64 |
-
# Background
|
65 |
-
bg = layout.get("background", {}).get("elements", [])
|
66 |
-
bg_text = ", ".join([f"{el['type']} at {el['position']}" for el in bg if 'type' in el and 'position' in el])
|
67 |
-
enriched += f" {bg_text} in background"
|
68 |
-
|
69 |
-
enriched += f", style variation {i+1}"
|
70 |
-
variations.append(enriched.strip())
|
71 |
-
|
72 |
-
return variations
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
# ----------------------------
|
77 |
# 🎨 Image Generation Function
|
78 |
# ----------------------------
|
@@ -87,7 +58,7 @@ def process_image(prompt, image, num_variations):
|
|
87 |
print("🧠 Scene plan extracted:", scene_plan)
|
88 |
|
89 |
# Step 2: Generate Prompt Variations
|
90 |
-
prompt_list =
|
91 |
print("🧠 Enriched Prompts:")
|
92 |
for i, p in enumerate(prompt_list):
|
93 |
print(f" {i+1}: {p}")
|
|
|
7 |
import numpy as np
|
8 |
import cv2
|
9 |
from diffusers import StableDiffusionControlNetImg2ImgPipeline, ControlNetModel
|
10 |
+
from utils.planner import extract_scene_plan, generate_prompt_variations_from_scene # 🧠 Brain Layer
|
11 |
|
12 |
# ----------------------------
|
13 |
# 🔧 Device Setup
|
|
|
44 |
return canny_image
|
45 |
|
46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
# ----------------------------
|
48 |
# 🎨 Image Generation Function
|
49 |
# ----------------------------
|
|
|
58 |
print("🧠 Scene plan extracted:", scene_plan)
|
59 |
|
60 |
# Step 2: Generate Prompt Variations
|
61 |
+
prompt_list = generate_prompt_variations_from_scene(scene_plan, prompt, num_variations)
|
62 |
print("🧠 Enriched Prompts:")
|
63 |
for i, p in enumerate(prompt_list):
|
64 |
print(f" {i+1}: {p}")
|