Move images from a image field to another field Some months ago I developed a D8 based website for a customer with an image field with multiple values, displayed as a Bootstrap Basic Image Gallery.
Now, my customer has changed his mind so now he wants to set the possibility to insert either an image or a video, so I decided to use Paragraphs to let him choose if he wants an Image or an embed Video.
The problem is that the customer has over 1000 nodes with an average of 3-4 images per node, so if I change the field to a Paragraph one, the images previously saved in the Image field are not moving to the Paragraph field.
Is there a way to &quot;migrate&quot; the images from an Image field to a Paragraph referenced Image field?
P.S: As you may understand, re-uploading the images again might be, if I can say, a PITA
Welcome to SO, MineDoodler!
A little bit ago I found the same problem, so I developed this piece of code. (Note that I started a little bit ago with developing, it is possible to achieve this easier).
Read the comments to understand the code.

use \Drupal\node\Entity\Node;
use \Drupal\paragraphs\Entity\Paragraph;
use \Drupal\file\Entity\File;


function migrateImages() {
  // Get all products
  $query = \Drupal::entityQuery('node');
  $query-&gt;condition('status', 1);
  $query-&gt;condition('type', 'productos');
  $nids = $query-&gt;execute();

  $allNids = [];

  // In my case, i had a keyed array (First element was [213] =&gt; &quot;157&quot;) so I turned into ([0] =&gt; &quot;157&quot;)
  foreach ($nids as $nid) {
    $allNids[] = $nid;
  }

  // Go through every node
  for ($i = 0; $i &lt; count($nids); $i++) {
    $nodeID = $allNids[$i];

    // Load node.
    $node = Node::load($nodeID);

    // Get current paragraphs (if already has any).
    $current = $node-&gt;get('field_prod_media')-&gt;getValue();

    // Go through every image this node has.
    foreach ($node-&gt;field_prod_img as $item) {
      // Create new paragraph
      $paragraph = Paragraph::create(['type' =&gt; 'YOUR_PARAGRAPH_TYPE']);

      // Load image
      $file = File::load($item-&gt;target_id);

      // Save image
      $paragraph-&gt;set('IMAGE_FIELD_IN_PARAGRAPH', $file);

      // Force the new &quot;alt&quot;. I've done this because it wasn't saving the alt.
      $paragraph-&gt;field_img-&gt;alt = $item-&gt;alt;
      
      // Check if it's new and save it.
      $paragraph-&gt;isNew();
      $paragraph-&gt;save();
      
      // Add to the current paragraphs the new one.
      $current[] = array(
        'target_id' =&gt; $paragraph-&gt;id(),
        'target_revision_id' =&gt; $paragraph-&gt;getRevisionId(),
      );
    }
    
    // Set again all paragraphs, with the new ones.
    $node-&gt;set('field_prod_media', $current);
    $node-&gt;save();
    dpm(&quot;node &quot;.$node-&gt;label().&quot; has been saved!&quot;);
  }
}

Took the idea from #7 in this post and developed by my knowledge.
I forgot to mention that this code was executed in the Devel PHP, in the Devel module.