Fungus offers a data-driven approach to conversations. The character and portrait (facing direction, movement onto and off the stage, and so on) can be defined through text in a simple format by using the Say command's Narrative | Conversation option. This recipe's conversation with portrait images can be declared with just two lines of text in a Conversation:
Sherlock confident: Watson, have you seen my violin?
John annoyed: No, why don't you find it yourself using your amazing powers of deduction...
You can learn more about the Fungus conversation system by reading their documentation pages: https://github.com/snozbot/fungus/wiki/conversation_system.