summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/story/artist.go6
-rw-r--r--internal/story/generator.go15
-rw-r--r--internal/version.go2
3 files changed, 16 insertions, 7 deletions
diff --git a/internal/story/artist.go b/internal/story/artist.go
index 3c66978..4ae0a6f 100644
--- a/internal/story/artist.go
+++ b/internal/story/artist.go
@@ -551,6 +551,12 @@ func buildStoryPagePrompt(section string, pageNum, totalPages int, style, bible
"Each panel is separated by a thin black gutter line. "+
"All 4 panels must be clearly distinct scenes — NOT one continuous image. "+
"The full image area must be covered by the 4 panels with no empty space.\n"+
+ "MANDATORY SPEECH BUBBLES — this is a comic book; characters MUST speak:\n"+
+ " • At least 3 of the 4 panels MUST contain a speech bubble or thought bubble.\n"+
+ " • If the panel description includes quoted dialogue, render it EXACTLY inside a speech bubble.\n"+
+ " • Speech bubbles have a white background, black outline, and a tail pointing to the speaker.\n"+
+ " • Thought bubbles use a cloud shape with small circles leading to the thinker.\n"+
+ " • ALL bubble text is in Bulgarian Cyrillic — never Roman letters.\n"+
"VARIETY MANDATE — every panel MUST differ from the others in at least 3 of these dimensions: "+
"camera angle (close-up, medium shot, wide shot, bird's-eye, low angle), "+
"character pose or action, location or background detail, lighting or time-of-day, "+
diff --git a/internal/story/generator.go b/internal/story/generator.go
index a272893..5c4c671 100644
--- a/internal/story/generator.go
+++ b/internal/story/generator.go
@@ -359,16 +359,19 @@ func buildPanelScriptPrompt() string {
"one per line, in strict chronological story order.\n" +
"Format each line exactly as: P{page}-{panel}: {description}\n" +
"where page is 1–5 and panel is A (top-left), B (top-right), C (bottom-left), D (bottom-right).\n" +
- "Each description is 1–2 sentences: WHO is in the panel, WHAT they are doing, " +
- "WHERE they are, and their expression or body language. Be vivid and specific.\n" +
+ "Each description is 1–2 sentences covering: WHO is in the panel, WHAT they are doing, " +
+ "WHERE they are, their expression or body language, and — REQUIRED for most panels — " +
+ "the exact Bulgarian dialogue or thought text the character says/thinks, written in quotes.\n" +
+ "At least 3 of the 4 panels on every page MUST include Bulgarian dialogue in a speech bubble " +
+ "or thought bubble. The dialogue must come directly from the story and be in Bulgarian Cyrillic.\n" +
"The 20 panels must retell the story from beginning to end — " +
"each page covers one story beat, each panel advances the action.\n" +
"Do NOT repeat the same scene or camera angle on consecutive panels.\n" +
"Example format (replace with actual story content):\n" +
- "P1-A: Maria walks out her front door into morning sunlight, laptop bag on shoulder, looking relieved.\n" +
- "P1-B: She strides down a busy city street past parked cars, headphones in, smiling.\n" +
- "P1-C: Close-up of her hand gripping a large steaming coffee cup with both hands.\n" +
- "P1-D: Maria pauses at a park entrance, gazing at the green trees ahead with anticipation.\n"
+ "P1-A: Maria walks out her front door into morning sunlight, laptop bag on shoulder, saying \"Най-накрая!\" in a speech bubble.\n" +
+ "P1-B: She strides down a busy city street past parked cars, headphones in, thinking \"Толкова хубав ден.\" in a thought bubble.\n" +
+ "P1-C: Close-up of her hand gripping a large steaming coffee cup, the barista handing it over saying \"Заповядайте!\" in a speech bubble.\n" +
+ "P1-D: Maria pauses at a park entrance, gazing at green trees ahead, saying \"Точно това ми трябваше.\" in a speech bubble.\n"
}
// slugify converts a comic title into a safe directory/file name component.
diff --git a/internal/version.go b/internal/version.go
index 03f6bf6..1344ddf 100644
--- a/internal/version.go
+++ b/internal/version.go
@@ -1,3 +1,3 @@
package internal
-const Version = "0.25.0"
+const Version = "0.26.0"