diff --git a/modules/islandora_image/config/schema/islandora_image.schema.yml b/modules/islandora_image/config/schema/islandora_image.schema.yml
index 687e7c11..e5910870 100644
--- a/modules/islandora_image/config/schema/islandora_image.schema.yml
+++ b/modules/islandora_image/config/schema/islandora_image.schema.yml
@@ -23,6 +23,9 @@ action.configuration.generate_image_derivative:
     args:
       type: text
       label: 'Convert Arguments'
+    inputargs:
+      type: text
+      label: 'Input arguments for convert'
     scheme:
       type: text
       label: 'Flysystem scheme'
diff --git a/modules/islandora_image/src/Plugin/Action/GenerateImageDerivative.php b/modules/islandora_image/src/Plugin/Action/GenerateImageDerivative.php
index e81f157b..dec55659 100644
--- a/modules/islandora_image/src/Plugin/Action/GenerateImageDerivative.php
+++ b/modules/islandora_image/src/Plugin/Action/GenerateImageDerivative.php
@@ -23,7 +23,8 @@ class GenerateImageDerivative extends AbstractGenerateDerivative {
     $config = parent::defaultConfiguration();
     $config['mimetype'] = 'image/jpeg';
     $config['path'] = '[date:custom:Y]-[date:custom:m]/[node:nid].jpg';
-    $config['destination_media_type'] = 'image';
+    $config['destination_media_type'] = 'image';  
+    $config['inputargs'] = '';
     return $config;
   }
 
@@ -33,7 +34,21 @@ class GenerateImageDerivative extends AbstractGenerateDerivative {
   public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
     $form = parent::buildConfigurationForm($form, $form_state);
     $form['mimetype']['#description'] = $this->t('Mimetype to convert to (e.g. image/jpeg, image/png, etc...)');
-    $form['args']['#description'] = $this->t('Additional command line arguments for ImageMagick convert (e.g. -resize 50%');
+
+    // adjust args title and description for better clarity
+    $form['args']['#title'] = $this->t('Additional output arguments');
+    $form['args']['#description'] = $this->t('Additional output options for ImageMagick convert (e.g. -resize 50% -unsharp 0x.5).<br>See <a target="_blank" href="https://imagemagick.org/script/convert.php">documentation</a> for available options.');
+
+    $new = [
+      'inputargs' => [
+        '#type' => 'textfield',
+        '#title' => $this->t('Additional input arguments'),
+        '#default_value' => $this->configuration['inputargs'],
+        '#rows' => '8',
+        '#description' => $this->t('Additional input options for ImageMagick convert (e.g. -density 144).<br>Check the <a target="_blank" href="https://manpages.ubuntu.com/manpages/trusty/man1/convert.im6.1.html">man page</a> to see which options are input options.'),
+      ]
+    ];
+    $form = $this->utils->array_insert_after($form, 'mimetype', $new);
     return $form;
   }
 
@@ -53,4 +68,11 @@ class GenerateImageDerivative extends AbstractGenerateDerivative {
     }
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
+    parent::submitConfigurationForm($form, $form_state);
+    $this->configuration['inputargs'] = $form_state->getValue('inputargs');
+  }
 }
diff --git a/modules/islandora_image/src/Plugin/Action/GenerateImageDerivativeFile.php b/modules/islandora_image/src/Plugin/Action/GenerateImageDerivativeFile.php
index d6f99b58..a18f076e 100644
--- a/modules/islandora_image/src/Plugin/Action/GenerateImageDerivativeFile.php
+++ b/modules/islandora_image/src/Plugin/Action/GenerateImageDerivativeFile.php
@@ -26,6 +26,7 @@ class GenerateImageDerivativeFile extends AbstractGenerateDerivativeMediaFile {
     $config['queue'] = 'islandora-connector-houdini';
     $config['destination_media_type'] = 'file';
     $config['scheme'] = $this->config->get('default_scheme');
+    $config['inputargs'] = '';
     return $config;
   }
 
@@ -37,7 +38,30 @@ class GenerateImageDerivativeFile extends AbstractGenerateDerivativeMediaFile {
     $form['mimetype']['#description'] = $this->t('Mimetype to convert to (e.g. application/xml, etc...)');
     $form['mimetype']['#value'] = 'image/jpeg';
     $form['mimetype']['#type'] = 'hidden';
+
+    // adjust args title and description for better clarity
+    $form['args']['#title'] = $this->t('Additional output arguments');
+    $form['args']['#description'] = $this->t('Additional output options for ImageMagick convert (e.g. -resize 50% -unsharp 0x.5).<br>See <a target="_blank" href="https://imagemagick.org/script/convert.php">documentation</a> for available options.');
+
+    $new = [
+      'inputargs' => [
+        '#type' => 'textfield',
+        '#title' => $this->t('Additional input arguments'),
+        '#default_value' => $this->configuration['inputargs'],
+        '#rows' => '8',
+        '#description' => $this->t('Additional input options for ImageMagick convert (e.g. -density 144).<br>Check the <a target="_blank" href="https://manpages.ubuntu.com/manpages/trusty/man1/convert.im6.1.html">man page</a> to see which options are input options.'),
+      ]
+    ];
+    $form = $this->utils->array_insert_after($form, 'mimetype', $new);
+
     return $form;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
+    parent::submitConfigurationForm($form, $form_state);
+    $this->configuration['inputargs'] = $form_state->getValue('inputargs');
+  }
 }
diff --git a/src/IslandoraUtils.php b/src/IslandoraUtils.php
index f81cb747..43f2fb78 100644
--- a/src/IslandoraUtils.php
+++ b/src/IslandoraUtils.php
@@ -751,4 +751,26 @@ class IslandoraUtils {
     return $parents;
   }
 
+  /**
+    * Insert a value or key/value pair after a specific key in an array.  If key doesn't exist, value is appended
+    * to the end of the array.
+    *
+    * This is not islandora specific, but a useful function that neither PHP nor Drupal provide.
+    * (is there still hope after 16 years?  https://www.drupal.org/project/drupal/issues/66183 )
+    *
+    * @param array $array
+    * @param string $key
+    * @param array $new
+    *
+    * @return array
+    *
+    * Credit: https://gist.github.com/wpscholar/0deadce1bbfa4adb4e4c
+    */
+  function array_insert_after( array $array, $key, array $new ) {
+	$keys = array_keys( $array );
+	$index = array_search( $key, $keys );
+	$pos = false === $index ? count( $array ) : $index + 1;
+	return array_merge( array_slice( $array, 0, $pos ), $new, array_slice( $array, $pos ) );
+  }
+
 }
diff --git a/src/Plugin/Action/AbstractGenerateDerivativeMediaFile.php b/src/Plugin/Action/AbstractGenerateDerivativeMediaFile.php
index be9eca80..15776591 100644
--- a/src/Plugin/Action/AbstractGenerateDerivativeMediaFile.php
+++ b/src/Plugin/Action/AbstractGenerateDerivativeMediaFile.php
@@ -27,6 +27,7 @@ class AbstractGenerateDerivativeMediaFile extends AbstractGenerateDerivativeBase
       'event' => 'Generate Derivative',
       'source_term_uri' => $uri,
       'mimetype' => '',
+      'inputargs' => '',
       'args' => '',
       'path' => '[date:custom:Y]-[date:custom:m]/[media:mid].bin',
       'source_field_name' => 'field_media_file',
@@ -69,6 +70,7 @@ class AbstractGenerateDerivativeMediaFile extends AbstractGenerateDerivativeBase
     $allowed = [
       'queue',
       'event',
+      'inputargs',
       'args',
       'source_uri',
       'destination_uri',
@@ -109,12 +111,20 @@ class AbstractGenerateDerivativeMediaFile extends AbstractGenerateDerivativeBase
       '#description' => $this->t('File field on Media Type to hold derivative.  Cannot be the same as source'),
     ];
 
+    $form['inputargs'] = [
+      '#type' => 'textfield',
+      '#title' => $this->t('Additional input arguments'),
+      '#default_value' => $this->configuration['inputargs'],
+      '#rows' => '8',
+      '#description' => $this->t('Additional command line options related to the source file'),
+    ];
+
     $form['args'] = [
       '#type' => 'textfield',
-      '#title' => $this->t('Additional arguments'),
+      '#title' => $this->t('Additional output arguments'),
       '#default_value' => $this->configuration['args'],
       '#rows' => '8',
-      '#description' => $this->t('Additional command line arguments'),
+      '#description' => $this->t('Additional command line options related to the output file (derivative)'),
     ];
 
     $form['mimetype'] = [
@@ -170,6 +180,7 @@ class AbstractGenerateDerivativeMediaFile extends AbstractGenerateDerivativeBase
   public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
     parent::submitConfigurationForm($form, $form_state);
     $this->configuration['mimetype'] = $form_state->getValue('mimetype');
+    $this->configuration['inputargs'] = $form_state->getValue('inputargs');
     $this->configuration['args'] = $form_state->getValue('args');
     $this->configuration['scheme'] = $form_state->getValue('scheme');
     $this->configuration['path'] = trim($form_state->getValue('path'), '\\/');