summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-06 16:29:21 +0300
committerPaul Buetow <paul@buetow.org>2026-04-06 16:29:21 +0300
commit4721d82036bf572b927c36b1df5f3202236d4471 (patch)
tree259fa8025b14b7bb9ca0b55ec6211273cbde9cc0
parentdf87a6af7bf1beea8dcc8bbeb5f299025cb2e8f4 (diff)
feat: add --ultra-realistic flag to force photorealistic rendering, v0.24.0v0.24.0
Previously only --no-ultra-realistic existed (to force standard comic style). --ultra-realistic now forces photorealistic panels instead of the random 50/50 pick. storyUltraRealistic() updated to handle three states: forced-on, forced-off, random. README updated with --ultra-realistic example. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
-rw-r--r--README.md5
-rw-r--r--internal/cli/command.go1
-rw-r--r--internal/cli/flags.go1
-rw-r--r--internal/version.go2
4 files changed, 7 insertions, 2 deletions
diff --git a/README.md b/README.md
index 304a5d3..7fb5f1d 100644
--- a/README.md
+++ b/README.md
@@ -40,7 +40,7 @@ It has mainly been vibe coded using Claude Code CLI.
- All human characters are adults; story genre/setting driven by `--story-theme`
- Produces **12 pages** per comic: cover + 5 story pages (2×2 panel grid) + 5 gallery pages (close-up character art) + back cover
- All output saved under `comics/<title-slug>/` with files named `<slug>_*.png`
- - **Rendering mode** chosen randomly 50/50 each run; force standard with `--no-ultra-realistic`:
+ - **Rendering mode** chosen randomly 50/50 each run; force with `--ultra-realistic` or `--no-ultra-realistic`:
- *Ultra-realistic*: photography-language style prompt (DSLR, cinematic stills, hyper-realistic) + mandatory photorealistic rendering requirement — produces near-photographic panels
- *Standard comic*: comic art style pool (90% "ultra realistic comic strip", 10% manga / watercolor / noir / pop-art etc.)
- Art style override: `--story-style` replaces the random pick for both modes
@@ -204,6 +204,9 @@ Key features:
totalrecall --story words.txt --story-style "Japanese manga with clean linework and speed lines"
totalrecall --story words.txt --story-style "retro 1960s pop art in the style of Roy Lichtenstein"
+ # Force ultra-realistic photorealistic mode
+ totalrecall --story words.txt --ultra-realistic
+
# Force standard comic style (default is random 50/50 between ultra-realistic and standard)
totalrecall --story words.txt --no-ultra-realistic
diff --git a/internal/cli/command.go b/internal/cli/command.go
index ad62272..8402481 100644
--- a/internal/cli/command.go
+++ b/internal/cli/command.go
@@ -69,6 +69,7 @@ func setupFlags(cmd *cobra.Command, flags *Flags) {
cmd.Flags().StringVar(&flags.StoryStyle, "story-style", "", "Art style for comic pages (default: random). E.g. \"ultra realistic comic strip with photographic detail and dramatic lighting\"")
cmd.Flags().StringVar(&flags.StoryTheme, "story-theme", "", "Genre/theme for the story (default: random). E.g. \"a thrilling space adventure with aliens and spaceships\"")
cmd.Flags().BoolVar(&flags.StoryNoUltraRealistic, "no-ultra-realistic", false, "Disable photorealistic rendering requirement; produces standard comic-book style output")
+ cmd.Flags().BoolVar(&flags.StoryUltraRealistic, "ultra-realistic", false, "Force photorealistic rendering for all pages (overrides the default random 50/50 pick)")
cmd.Flags().StringVar(&flags.StorySlug, "story-slug", "",
"Force the output directory slug for --story (e.g. \"ai-jungle-quest\"). "+
"Use this to repair a partial run: existing pages are skipped, missing ones are generated.")
diff --git a/internal/cli/flags.go b/internal/cli/flags.go
index 7e1cdbc..a343767 100644
--- a/internal/cli/flags.go
+++ b/internal/cli/flags.go
@@ -24,6 +24,7 @@ type Flags struct {
StoryStyle string // --story-style: override the random art style (empty = random)
StoryTheme string // --story-theme: override the random genre pick (empty = random)
StoryNoUltraRealistic bool // --no-ultra-realistic: disable photorealistic rendering requirement
+ StoryUltraRealistic bool // --ultra-realistic: force photorealistic rendering (overrides random 50/50)
StorySlug string // --story-slug: force a specific output slug/directory (empty = auto from title)
NarratorVoice string // --narrator-voice: Gemini voice for cinematic narration (empty = random)
NarrateEnabled bool // --narrate: generate cinematic MP3 narration after --story (default false)
diff --git a/internal/version.go b/internal/version.go
index 51e50c3..a9f1a2e 100644
--- a/internal/version.go
+++ b/internal/version.go
@@ -1,3 +1,3 @@
package internal
-const Version = "0.23.0"
+const Version = "0.24.0"