text: # Copyright (c) OpenMMLab. All rights reserved.
  runner = dict(
      name='FaceSwap',
      camera_id=0,
      camera_fps=20,
      synchronous=False,
      nodes=[
          dict(
              type='DetectorNode',
              name='Detector',
              model_config='demo/mmdetection_cfg/'
              'ssdlite_mobilenetv2_scratch_600e_coco.py',
              model_checkpoint='https://download.openmmlab.com'
              '/mmdetection/v2.0/ssd/'
              'ssdlite_mobilenetv2_scratch_600e_coco/ssdlite_mobilenetv2_'
              'scratch_600e_coco_20210629_110627-974d9307.pth',
              device='cpu',
              input_buffer='_input_',  # `_input_` is a runner-reserved buffer
              output_buffer='det_result'),
          dict(
              type='TopDownPoseEstimatorNode',
              name='TopDown Pose Estimator',
              model_config='configs/wholebody/2d_kpt_sview_rgb_img/'
              'topdown_heatmap/coco-wholebody/'
              'vipnas_res50_coco_wholebody_256x192_dark.py',
              model_checkpoint='https://openmmlab-share.oss-cn-hangzhou'
              '.aliyuncs.com/mmpose/top_down/vipnas/'
              'vipnas_res50_wholebody_256x192_dark-67c0ce35_20211112.pth',
              device='cpu',
              cls_names=['person'],
              input_buffer='det_result',
              output_buffer='pose_result'),
          dict(
              type='ModelResultBindingNode',
              name='ResultBinder',
              frame_buffer='_frame_',  # `_frame_` is a runner-reserved buffer
              result_buffer='pose_result',
              output_buffer='frame'),
          dict(
              type='FaceSwapNode',
              name='FaceSwapper',
              mode_key='s',
              frame_buffer='frame',
              output_buffer='face_swap'),
          dict(
              type='PoseVisualizerNode',
              name='Visualizer',
              enable_key='v',
              frame_buffer='face_swap',
              output_buffer='vis_pose'),
          dict(
              type='NoticeBoardNode',
              name='Help Information',
              enable_key='h',
              content_lines=[
                  'Swap your faces! ',
                  'Hot-keys:',
                  '"v": Toggle the pose visualization on/off.',
                  '"s": Switch between modes: Shuffle, Clone and None',
                  '"h": Show help information',
                  '"m": Show diagnostic information',
                  '"q": Exit',
              ],
              frame_buffer='vis_pose',
              output_buffer='vis_notice'),
          dict(
              type='MonitorNode',
              name='Monitor',
              enable_key='m',
              enable=False,
              frame_buffer='vis_notice',
              output_buffer='display'),
          dict(
              type='RecorderNode',
              name='Recorder',
              out_video_file='faceswap_output.mp4',
              frame_buffer='display',
              output_buffer='_display_')
      ])
  