v2.0.0
This major release introduces a two-pass subtitle generation workflow to significantly improve subtitle quality, accuracy, and refinement.
New Features & Improvements:
- Two-Pass Subtitle Generation: The core subtitle generation process has been re-architected into a two-pass system:
- Pass 1 (Draft Generation): The first pass generates an initial draft of the subtitles. This is handled by the new
SubtitlePass1JobRunnerand configured withai.pass1_modelandthread.subtitles1. - Pass 2 (QA & Refinement): The second pass takes the JSON output from Pass 1 as a draft and performs quality assurance, correction, and refinement using a separate, specialized prompt. This is handled by the new
SubtitlePass2JobRunnerand configured withai.pass2_modelandthread.subtitles2.
- Pass 1 (Draft Generation): The first pass generates an initial draft of the subtitles. This is handled by the new
- Improved Modularity: This new architecture allows for using different AI models for each pass (e.g., a faster model for the initial draft and a more powerful model for refinement).
Breaking Changes & Refactoring:
- Configuration (
config.py):- The
ai.modelsetting has been replaced byai.pass1_modelandai.pass2_model. An optionalai.modelshorthand is available to set both to the same value. - The
thread.subtitlessetting has been split intothread.subtitles1andthread.subtitles2to configure concurrency for each pass independently.
- The
- Main Pipeline (
main.py):- The main application logic has been significantly updated to orchestrate the new two-pass workflow, managing separate job queues and runners for each pass.
- Job resumption logic now checks for the state of both passes to correctly resume interrupted sessions.
- Data Models (
data_models.py):SubtitleJobhas been renamed toSubtitlePass1Job.- A new
SubtitlePass2Jobhas been introduced to manage the state and data for the refinement pass.
- Agent Wrapper (
agent_wrapper.py):- The
RateLimitedAgentWrapperis now initialized with a specific model name, enabling the use of different models for each generation pass.
- The