summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-04 12:30:07 +0300
committerPaul Buetow <paul@buetow.org>2026-04-04 12:30:07 +0300
commitd3e7e4831a23fe44939737af70fbf51409ddfb95 (patch)
tree3a13aec3620a6fb4336f7a228a653683f899a641 /internal
parent7327dd269f1361d31ac97184a9e66881cbf1b1ce (diff)
fix: gender-neutral gallery/cover prompts, support multiple main charactersv0.15.0
- Replace all "heroine/her" references in gallery poses with gender-neutral "main character/them" - Explicitly instruct model to preserve character gender, not invent new characters - Support multiple main characters in gallery page instruction - Fix cover and back cover orientation: remove "portrait orientation" (canvas is 16:9 landscape) - Bump version to 0.15.0 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'internal')
-rw-r--r--internal/story/artist.go16
-rw-r--r--internal/version.go2
2 files changed, 9 insertions, 9 deletions
diff --git a/internal/story/artist.go b/internal/story/artist.go
index 4d88126..072adb2 100644
--- a/internal/story/artist.go
+++ b/internal/story/artist.go
@@ -432,7 +432,7 @@ func buildCoverPrompt(storyText, style, bible, renderReq string) string {
"Cyrillic script. The masthead title must also be rendered in a striking comic-book font.\n\n"+
"Art style: %s.%s\n"+
renderReq+
- "TRADITIONAL COMIC BOOK FRONT COVER — portrait orientation, single full-bleed illustration.\n"+
+ "TRADITIONAL COMIC BOOK FRONT COVER — single full-bleed illustration, landscape 16:9 format.\n"+
"NO panel grid. NO speech bubbles.\n"+
"MANDATORY MASTHEAD — the most important visual element on this cover:\n"+
" • Invent a DRAMATIC, STORY-SPECIFIC comic book title that fits the characters and "+
@@ -565,7 +565,7 @@ func buildBackCoverPrompt(storyText, style, bible, blurb, renderReq string) stri
"English text anywhere on the back cover is STRICTLY FORBIDDEN.\n\n"+
"Art style: %s.%s\n"+
renderReq+
- "TRADITIONAL COMIC BOOK BACK COVER — portrait orientation, single full-bleed illustration.\n"+
+ "TRADITIONAL COMIC BOOK BACK COVER — single full-bleed illustration, landscape 16:9 format.\n"+
"NO panel grid. NO speech bubbles.\n"+
"Layout rules (must follow exactly):\n"+
" • MAIN ART: a calm, warm, resolved scene filling the upper 60%% of the cover — "+
@@ -588,10 +588,10 @@ func buildBackCoverPrompt(storyText, style, bible, blurb, renderReq string) stri
// Each is a distinct dramatic framing so the pages feel like variant cover art.
var galleryPoses = []string{
"extreme close-up portrait: face and shoulders filling the entire frame, dramatic three-quarter lighting, intense gaze directly at the viewer, fine detail on eyes and expression",
- "dynamic action pose: full body, low-angle shot looking up at the heroine against the sky or setting backdrop, confident stance, hair and clothing caught in motion",
- "atmospheric mid-shot: waist-up, the heroine silhouetted or lit by the ambient environment (bioluminescence, sunset, neon glow), looking off into the distance with a sense of wonder or resolve",
+ "dynamic action pose: full body, low-angle shot looking up at the main character against the sky or setting backdrop, confident stance, hair and clothing caught in motion",
+ "atmospheric mid-shot: waist-up, the main character silhouetted or lit by the ambient environment (bioluminescence, sunset, neon glow), looking off into the distance with a sense of wonder or resolve",
"profile close-up: side view of face and upper body, soft rim lighting tracing the jawline and hair, contemplative expression, rich background bokeh",
- "power stance full-body: the heroine seen from the front at eye level, arms relaxed but ready, environment filling the frame behind her, golden-hour or dramatic storm light",
+ "power stance full-body: the main character seen from the front at eye level, arms relaxed but ready, environment filling the frame behind them, golden-hour or dramatic storm light",
}
// buildGalleryPagePrompt constructs a text-free close-up character art page prompt.
@@ -608,9 +608,9 @@ func buildGalleryPagePrompt(style, bible string, galleryNum int, renderReq strin
"NO text of any kind. NO title. NO labels. NO speech bubbles. NO panel borders. NO UI elements.\n"+
"This is a text-free character gallery page. Pure art only.\n\n"+
"Composition: %s\n\n"+
- "The subject MUST be EXACTLY the main heroine described in the reference above — "+
- "same face, same age, same clothing, same companion animal if naturally present. "+
- "Do NOT invent new characters. Do NOT add any text overlays.\n"+
+ "The subject MUST be EXACTLY the main character(s) described in the reference above — "+
+ "same faces, same genders, same ages, same clothing. Include the companion animal if naturally present. "+
+ "Do NOT invent new characters or change any character's gender. Do NOT add any text overlays.\n"+
"Background: the story's setting rendered with full cinematic atmosphere and colour mood.",
style, bibleBlock, pose,
)
diff --git a/internal/version.go b/internal/version.go
index b7f717a..99bca67 100644
--- a/internal/version.go
+++ b/internal/version.go
@@ -1,3 +1,3 @@
package internal
-const Version = "0.14.0"
+const Version = "0.15.0"