| Age | Commit message (Collapse) | Author |
|
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>
|
|
- Add --narrate flag (default false); narration is now opt-in to save TTS quota
- Add VARIETY MANDATE to story page prompts: each panel must differ in camera
angle, pose, location, lighting, and foreground — prevents repeated compositions
- Wire NarrateEnabled through RunnerConfig and main.go
- Update README: --narrate flag, updated output file table, narrator voice examples
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Add a new subsection under the --story CLI section explaining the
interactive Veo video-generation prompt that runs after comic creation,
including the model name (veo-2.0-generate-001), MP4 output paths, the
billing/cost note, and the --video=false skip flag.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Ultra-realistic mode now picks from a dedicated realisticStyles pool
(DSLR photography, cinematic stills, hyper-realistic) instead of the
comicStyles pool. This prevents "comic strip" language from dominating
the model's output when photorealistic rendering is requested.
README updated: 12-page comic count (5 gallery pages), rendering mode
description clarified to show both pools and the 50/50 random default.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
README
- Random 50/50 rendering mode per run (ultra-realistic or standard comic style)
- --no-ultra-realistic flag forces standard comic style when set
- renderingRequirement const centralised and applied to all image prompts via DRY renderReq() method
- Log rendering mode chosen at generation time
- Update README: correct page count (10), output filenames, all --story flags documented
- Bump version to 0.13.0
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- Generates a ~500-word Bulgarian vocabulary story from a batch file
- Produces 3 comic pages via NanoBanana (90% ultra-realistic style)
- Art style chosen randomly per run; override with --story-style
- Cinematic Gemini TTS narration saved as story_narration.mp3
- Random voice from curated pool (Charon, Fenrir, Enceladus, Algieba, Aoede, Schedar)
- Override narrator voice with --narrator-voice
- Falls back to story_tts_todo.txt if narration fails
- No new API key required — reuses existing GOOGLE_API_KEY
- Bump version to 0.9.4
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
|
|
|
|
|
|
|
|
- Update README.md with complete batch file format documentation
- Expanded from 3 to 5 supported formats
- Added Format 4: Bulgarian-Bulgarian (monolingual) using double equals
- Clarified Format 2 as English→Bulgarian with single equals
- Noted that bg-bg cards generate two separate audio files
- Update CLI help text to show batch file format examples
- Added example of double equals syntax
- Clarified single equals creates English→Bulgarian cards
This closes the documentation gap for the Bulgarian-Bulgarian flashcard feature
that was already implemented in the codebase.
|
|
|
|
- Move totalrecall.desktop, install-icon.sh, and config.yaml.example to assets/ directory
- Update all references in README.md and install-icon.sh
- Add file organization guidelines to AGENTS.md
- Clean up root directory structure
🤖 Generated with [opencode](https://opencode.ai)
Co-Authored-By: opencode <noreply@opencode.ai>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Fix batch mode to store cards in ~/.local/state/totalrecall/cards/ matching GUI behavior
- Add --no-auto-play flag to disable automatic audio playback (enabled by default)
- Simplify phonetic fetching in CLI to match GUI (IPA only, no detailed explanations)
- Remove redundant --gui flag as GUI is already the default mode
- Align image generation settings: both modes now use DALL-E 2 with 512x512 resolution
🤖 Generated with [opencode](https://opencode.ai)
Co-Authored-By: opencode <noreply@opencode.ai>
|
|
|
|
- Add custom export directory selection in GUI export dialog
- Change default export directory from ~/.local/state/totalrecall to ~/Downloads
- Remove broken voice configuration from config file (voice is always random)
- Fix discrepancies between code defaults and example config
- Remove unimplemented image cache settings from example config
The voice configuration was not working due to a bug where it only read from config if
the command-line flag was set to "nova" (but default was empty string). Since voices
are randomly selected anyway, this configuration option has been removed.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
- Add custom app icon with memory/brain theme
- Icon now displays in GNOME app menu, window title bar, and process list
- Change default output directory to ~/.local/state/totalrecall/
- Make output directory configurable via CLI flag, config file, or env var
- Add desktop entry file for GNOME integration
- Add install script for easy icon installation
- Update README with icon display and default directory information
- Bump version to 0.5.1
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
- Add random voice speed between 0.90-1.00 for more natural audio
- Display voice and speed info in GUI audio player
- Implement automatic retry loading for missing files (checks every 2 seconds)
- Fix voice/speed info persistence during audio playback
- Remove image caching functionality for cleaner codebase
- Rename prompt.txt to image_prompt.txt for clarity
- Fix GUI to recognize newly added cards during runtime (rescan on navigation)
- Update README to reflect removed image cache
These changes improve the user experience by making the audio more natural,
providing better feedback about audio generation parameters, and ensuring
the GUI stays synchronized with externally added cards.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
- Added documentation for 'bulgarian = english' batch file format
- Included examples of all three supported formats
- Added note about API quota savings when providing translations
- Updated Quick Start section with example batch file
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
Major Features:
- Added native .apkg (Anki package) export format with embedded media
- Reorganized file structure to use subdirectories per word
- Enhanced GUI export dialog with format selection (APKG/CSV)
APKG Export Implementation:
- Created apkg_generator.go with full SQLite-based Anki package generation
- Includes custom card templates with professional CSS styling
- Front side: Image + English word
- Back side: Image + Bulgarian word + Audio + Notes
- All media files automatically embedded in package
- Custom deck names supported via --deck-name flag
Directory Structure Changes:
- Each word now gets its own subdirectory (e.g., anki_cards/ябълка/)
- All related files (audio, images, translations, prompts) stored together
- Cleaner organization and easier management
- Prevents file naming conflicts
GUI Updates:
- Export dialog no longer shows file browser, exports directly to anki_cards
- Format selection between APKG (recommended) and CSV (legacy)
- Fixed navigation to properly load image prompts from subdirectories
- Delete function now moves entire word directory to trash
CLI Updates:
- --anki flag now generates APKG by default
- --anki-csv flag for legacy CSV format
- All file generation uses subdirectory structure
Bug Fixes:
- Fixed handling of multi-word entries (e.g., "картоф картофи")
- Fixed GenerateFromDirectory to properly handle words with underscores
- Fixed phonetic files being treated as separate cards
- Fixed image prompt preservation during navigation
Breaking Changes:
- File structure changed from flat to subdirectory-based
- Existing files need to be reorganized into subdirectories
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
|
|
- Add comprehensive GUI mode documentation
- Document keyboard shortcuts and interactive features
- Clarify which features are CLI vs GUI specific
- Update repository URL to Codeberg
- Add scene generation feature mention
- Reorganize features into Core and GUI sections
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
- Delete Pixabay and Unsplash implementation files
- Remove API key configuration for both services
- Update CLI and GUI to only support OpenAI DALL-E
- Update documentation to reflect OpenAI as sole image provider
- Fix tests to handle nil client in OpenAI implementation
- Simplify configuration examples
The application now exclusively uses OpenAI DALL-E for image generation,
providing AI-generated educational images with creative art styles.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
- Automatic Bulgarian to English translation for all words
- Save translations to separate _translation.txt files
- Include translations in Anki CSV export
- Add detailed attribution files for audio and images:
- Audio: model, voice, speed, instructions, processed text
- Image: model, size, quality, style, full prompt used
- Expand image styles to 42 different options (including superhero comic, yoga, etc.)
- Improve image prompts to strongly avoid text generation
- Fix image overwrite issue - now overwrites existing files instead of failing
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
- Removed espeak audio provider completely, now only uses OpenAI TTS
- Audio now uses random voice selection by default (can override with --openai-voice)
- Added --all-voices flag to generate audio in all 11 OpenAI voices
- Images now use random art styles (13 different styles including superhero, yoga, cat-themed)
- Fixed TTS to remove punctuation marks before speaking
- Updated Bulgarian pronunciation instructions to explicitly avoid Russian accent
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
- Add support for OpenAI's new gpt-4o-mini-tts model with customizable voice instructions
- Add OpenAIInstruction field to audio configuration for natural language voice control
- Update CLI with --openai-instruction flag for runtime voice customization
- Enhanced cache key generation to include voice instructions
- Update default model to gpt-4o-mini-tts with Bulgarian-optimized instructions
- Add support for new voices: ash, ballad, coral, sage, verse
- Improve error handling for models requiring special API access
- Update documentation with examples and model information
- Create .totalrecall.yaml.example with comprehensive configuration options
Note: The gpt-4o-mini-tts model requires special API access and may not be available to all accounts yet.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
|
|
- Implement OpenAI DALL-E provider for generating educational flashcard images
- Add support for DALL-E 2 and DALL-E 3 with configurable size, quality, and style
- Implement intelligent caching to minimize API costs
- Make OpenAI the default provider for both audio (TTS) and images (DALL-E)
- Add automatic fallback to free alternatives (espeak/pixabay) when OpenAI unavailable
- Fix bug where cached images couldn't be copied to output directory
- Update documentation with OpenAI setup instructions and examples
- Add comprehensive unit tests for OpenAI image provider
- Bump version to 0.1.0
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
|
|
|