graph TD
start[Start Flow] --> checkInputs[Check Input Variables]
checkInputs --> scriptGen[Generate Script]
scriptGen --> voiceGen[Generate Voice Over]
voiceGen --> avatarGen[Generate Avatar Image]
avatarGen --> videoAssembly[Assemble Video]
videoAssembly --> lipSync[Apply Lip Sync]
lipSync --> finalOutput[Return MP4]
subgraph ScriptGenAgent
scriptGen --> validateScript[Validate Script Length]
validateScript --> formatScript[Format Script]
end
subgraph VoiceOverAgent
voiceGen --> convertToMp3[Convert to MP3]
convertToMp3 --> checkAudio[Verify Audio Quality]
end
subgraph AvatarImageGen
avatarGen --> createPNG[Create PNG Image]
createPNG --> validateImage[Verify Image Size]
end
subgraph TalkingHeadAssembler
videoAssembly --> getTranscript[Get Transcription]
getTranscript --> syncVideo[Sync Audio and Video]
syncVideo --> renderMP4[Render Final MP4]
end