How to change Display modes per node (view modes)?
That's a task for hook_entity_view_mode_alter.


  Change the view mode of an entity that is being displayed.


See the following working sample that automatically lets node 123 be rendered in the teaser view mode when accessed as full page. You could simply add your own logic (type, user, datetime etc.) as well.

/**
 * Implements hook_entity_view_mode_alter().
 */
function MYMODULE_entity_view_mode_alter(&amp;$view_mode, Drupal\Core\Entity\EntityInterface $entity, $context) {

  // Change the view mode to teaser on full page view for node ID 123.
  if ($entity-&gt;getEntityTypeId() == 'node' &amp;&amp; $entity-&gt;id() == '123' &amp;&amp; $view_mode == 'full') {
    $view_mode = 'teaser';
  }
}




As you can maybe imagine, from $entity you can get any field value of a node. So you could add some select list field or taxonomy reference to your content type and then adjust that value node-wise. Finally you can use above code snippet to switch the view mode depending on these values. Mission accomplished.