strict digraph artifactmap {
 subgraph cluster_deliverables {
  subgraph cluster_inputs {
   images
   audio
   subtitles
   composition_information [label = "Composition information";]
   graph [label = "Inputs: we will need a separate set of these \
for each video.\nIt is acceptable to have some composition information \
embedded, like providing a .srt file for subtitles.";]
  }
  ->
  subgraph cluster_transformers {
   compositor [shape = "invtriangle";]
   graph [label     = "Transformers";
          labeljust = "r";
	  labelloc  = "b"
          penwidth  = 0;]
  }
  graph [label = "Deliverables";]
 }
 subgraph cluster_generated_outputs {
  video_with_audio_and_subtitles [label = "Video with audio and subtitles";]
  graph [label = "Generated outputs: these need not to be delivered";]
 }
 compositor -> video_with_audio_and_subtitles
 graph [label = "Atrifact map";]
}
