diff --git a/modules/normalized_image_styles_webp_landscape_16x9/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_16x9.yml b/modules/normalized_image_styles_webp_landscape_16x9/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_16x9.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0fc72126c681c80ed1feb66f64409d4bd13e8a2a
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_16x9/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_16x9.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_landscape_16x9
+label: NIS WebP Landscape 16:9 (1.77778:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    l20:
+      label: NIS WebP Landscape 16:9
+      aspect_ratio: 16:9
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_landscape_16x9/normalized_image_styles_webp_landscape_16x9.info.yml b/modules/normalized_image_styles_webp_landscape_16x9/normalized_image_styles_webp_landscape_16x9.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9e77c9692c719ac7218f7488efaed78b4b874b93
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_16x9/normalized_image_styles_webp_landscape_16x9.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Landscape 16:9"
+type: module
+description: "Normalized landscape 16:9 (1.77778:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_landscape_21x9/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_21x9.yml b/modules/normalized_image_styles_webp_landscape_21x9/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_21x9.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5e11d4e4d000091ff72c1a572224109258962bd6
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_21x9/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_21x9.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_landscape_21x9
+label: NIS WebP Landscape 21:9 (2.37037:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    l16:
+      label: NIS WebP Landscape 21:9
+      aspect_ratio: 64:27
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_landscape_21x9/normalized_image_styles_webp_landscape_21x9.info.yml b/modules/normalized_image_styles_webp_landscape_21x9/normalized_image_styles_webp_landscape_21x9.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6c89074ef132408b522cba39c22f835d7ecee898
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_21x9/normalized_image_styles_webp_landscape_21x9.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Landscape 21:9"
+type: module
+description: "Normalized landscape 21:9 (2.37037:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_landscape_2x1/config/install/migrate_plus.migration. normalized_image_styles_webp_landscape_2x1.yml b/modules/normalized_image_styles_webp_landscape_2x1/config/install/migrate_plus.migration. normalized_image_styles_webp_landscape_2x1.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d9437b607636de18f3ebb0dbd5324dfe60727859
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_2x1/config/install/migrate_plus.migration. normalized_image_styles_webp_landscape_2x1.yml	
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_landscape_2x1
+label: NIS WebP Landscape 2:1
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    l17:
+      label: NIS WebP Landscape 2:1
+      aspect_ratio: 2:1
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_landscape_2x1/normalized_image_styles_webp_landscape_2x1.info.yml b/modules/normalized_image_styles_webp_landscape_2x1/normalized_image_styles_webp_landscape_2x1.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..873e39d8cd7ddaeec97fdbf6e81ae6fbafc8f44e
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_2x1/normalized_image_styles_webp_landscape_2x1.info.yml
@@ -0,0 +1,7 @@
+name: "NIS Landscape 2:1"
+type: module
+description: "Normalized landscape 2:1 image styles"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_landscape_32x9/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_32x9.yml b/modules/normalized_image_styles_webp_landscape_32x9/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_32x9.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6b5525fe54ad05f216f5c4f22a6270769670bc42
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_32x9/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_32x9.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_landscape_32x9
+label: NIS WebP Landscape 32:9 (3.55556:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    l13:
+      label: NIS WebP Landscape 32:9
+      aspect_ratio: 32:9
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_landscape_32x9/normalized_image_styles_webp_landscape_32x9.info.yml b/modules/normalized_image_styles_webp_landscape_32x9/normalized_image_styles_webp_landscape_32x9.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0663d81081f7d213dfe5c3afbd53d2366c9e9889
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_32x9/normalized_image_styles_webp_landscape_32x9.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Landscape 32:9"
+type: module
+description: "Normalized landscape 32:9 (3.55556:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_landscape_3x1/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_3x1.yml b/modules/normalized_image_styles_webp_landscape_3x1/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_3x1.yml
new file mode 100644
index 0000000000000000000000000000000000000000..588774ae0007da0ae6972d083356d21be91f25f1
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_3x1/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_3x1.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_landscape_3x1
+label: NIS WebP Landscape 3:1
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    l14:
+      label: NIS WebP Landscape 3:1
+      aspect_ratio: 3:1
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_landscape_3x1/normalized_image_styles_webp_landscape_3x1.info.yml b/modules/normalized_image_styles_webp_landscape_3x1/normalized_image_styles_webp_landscape_3x1.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..177a52d1674af7792fdff6df94c55ae1a269669c
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_3x1/normalized_image_styles_webp_landscape_3x1.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Landscape 3:1"
+type: module
+description: "Normalized landscape 3:1 image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_landscape_3x2/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_3x2.yml b/modules/normalized_image_styles_webp_landscape_3x2/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_3x2.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9f5cf95b87d6f984f7005668c9fc5bf15c085db7
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_3x2/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_3x2.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_landscape_3x2
+label: NIS WebP Landscape 3:2 (1.5:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    l22:
+      label: NIS WebP Landscape 3:2
+      aspect_ratio: 3:2
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_landscape_3x2/normalized_image_styles_webp_landscape_3x2.info.yml b/modules/normalized_image_styles_webp_landscape_3x2/normalized_image_styles_webp_landscape_3x2.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3a4afab061ddc6db6efd95b5a9369efa817f1125
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_3x2/normalized_image_styles_webp_landscape_3x2.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Landscape 3:2"
+type: module
+description: "Normalized landscape 3:2 (1.5:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_landscape_4x3/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_4x3.yml b/modules/normalized_image_styles_webp_landscape_4x3/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_4x3.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e403f0087d25d7c9b0eb38ebe62eed399da6ceec
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_4x3/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_4x3.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_landscape_4x3
+label: NIS WebP Landscape 4:3 (1.33333:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    l23:
+      label: NIS WebP Landscape 4:3
+      aspect_ratio: 4:3
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_landscape_4x3/normalized_image_styles_webp_landscape_4x3.info.yml b/modules/normalized_image_styles_webp_landscape_4x3/normalized_image_styles_webp_landscape_4x3.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..58856e0c3f371178975303b5573cca4f5a24c3bb
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_4x3/normalized_image_styles_webp_landscape_4x3.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Landscape 4:3"
+type: module
+description: "Normalized landscape 4:3 (1.33333:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_landscape_5x4/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_5x4.yml b/modules/normalized_image_styles_webp_landscape_5x4/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_5x4.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5f72b6432142f39a7e43487ca97491dccdfb6aca
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_5x4/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_5x4.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_landscape_5x4
+label: NIS WebP Landscape 5:4 (1.25:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    l24:
+      label: NIS WebP Landscape 5:4
+      aspect_ratio: 5:4
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_landscape_5x4/normalized_image_styles_webp_landscape_5x4.info.yml b/modules/normalized_image_styles_webp_landscape_5x4/normalized_image_styles_webp_landscape_5x4.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bfc8bba2294d082a7d60124a028cdd963a1febb6
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_5x4/normalized_image_styles_webp_landscape_5x4.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Landscape 5:4"
+type: module
+description: "Normalized landscape 5:4 (1.25:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_landscape_anamorphic/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_anamorphic.yml b/modules/normalized_image_styles_webp_landscape_anamorphic/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_anamorphic.yml
new file mode 100644
index 0000000000000000000000000000000000000000..72bb33991fba60942605fd4ca9f0dbc8d4597bef
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_anamorphic/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_anamorphic.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_landscape_anamorphic
+label: NIS WebP Landscape Anamorphic (2.38694:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    l15:
+      label: NIS WebP Landscape Anamorphic
+      aspect_ratio: 1024:429
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_landscape_anamorphic/normalized_image_styles_webp_landscape_anamorphic.info.yml b/modules/normalized_image_styles_webp_landscape_anamorphic/normalized_image_styles_webp_landscape_anamorphic.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4d56a4050e9ac13221b80dc640c843b05cf0b2f7
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_anamorphic/normalized_image_styles_webp_landscape_anamorphic.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Landscape Anamorphic"
+type: module
+description: "Normalized landscape Anamorphic (2.38694:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_landscape_dci/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_dci.yml b/modules/normalized_image_styles_webp_landscape_dci/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_dci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4e88c86f97496c6448acfa95b8aa77e5bb2830cc
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_dci/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_dci.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_landscape_dci
+label: NIS WebP Landscape DCI (1.89629:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    l18:
+      label: NIS WebP Landscape DCI
+      aspect_ratio: 256:135
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_landscape_dci/normalized_image_styles_webp_landscape_dci.info.yml b/modules/normalized_image_styles_webp_landscape_dci/normalized_image_styles_webp_landscape_dci.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9d1ad030ef63f41a6f2998621ab20e79f04ad479
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_dci/normalized_image_styles_webp_landscape_dci.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Landscape DCI"
+type: module
+description: "Normalized landscape DCI (1.89629:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_landscape_golden/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_golden.yml b/modules/normalized_image_styles_webp_landscape_golden/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_golden.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3f766d6e3a06fea01c631a5f79143f5de7c2e08d
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_golden/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_golden.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_landscape_golden
+label: NIS WebP Landscape Golden Ratio (1.61803:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    l21:
+      label: NIS WebP Landscape Golden Ratio
+      aspect_ratio: 1618033988749:1000000000000
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_landscape_golden/normalized_image_styles_webp_landscape_golden.info.yml b/modules/normalized_image_styles_webp_landscape_golden/normalized_image_styles_webp_landscape_golden.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..92e96dd60442e82b2b135ea95cdcf1fe3f90d51e
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_golden/normalized_image_styles_webp_landscape_golden.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Landscape Golden Ratio"
+type: module
+description: "Normalized landscape Golden Ratio (1.61803:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_landscape_widescreen/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_widescreen.yml b/modules/normalized_image_styles_webp_landscape_widescreen/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_widescreen.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6f16f3ccd8429086137d435089349dbfeef93eb1
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_widescreen/config/install/migrate_plus.migration.normalized_image_styles_webp_landscape_widescreen.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_landscape_widescreen
+label: NIS WebP Landscape Widescreen (1.85:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    l19:
+      label: NIS WebP Landscape Widescreen
+      aspect_ratio: 37:20
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_landscape_widescreen/normalized_image_styles_webp_landscape_widescreen.info.yml b/modules/normalized_image_styles_webp_landscape_widescreen/normalized_image_styles_webp_landscape_widescreen.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..905699322b76723941524b88f8e8d3feaca6efa1
--- /dev/null
+++ b/modules/normalized_image_styles_webp_landscape_widescreen/normalized_image_styles_webp_landscape_widescreen.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Landscape Widescreen"
+type: module
+description: "Normalized landscape Widescreen (1.85:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_portrait_1x2/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_1x2.yml b/modules/normalized_image_styles_webp_portrait_1x2/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_1x2.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a397f8e72d4625e2f83ffa1e28e7e7fc662126e1
--- /dev/null
+++ b/modules/normalized_image_styles_webp_portrait_1x2/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_1x2.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_portrait_1x2
+label: NIS WebP Portrait 1:2 (0.5:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    p12:
+      label: NIS WebP Portrait 1:2
+      aspect_ratio: 1:2
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_portrait_1x2/normalized_image_styles_webp_portrait_1x2.info.yml b/modules/normalized_image_styles_webp_portrait_1x2/normalized_image_styles_webp_portrait_1x2.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..65ce7182f0284154a8edc9ece05707f72b54d8a0
--- /dev/null
+++ b/modules/normalized_image_styles_webp_portrait_1x2/normalized_image_styles_webp_portrait_1x2.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Portrait 1:2"
+type: module
+description: "Normalized portrait 1:2 (0.5:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_portrait_2x3/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_2x3.yml b/modules/normalized_image_styles_webp_portrait_2x3/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_2x3.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ae2c27edd6dd4b1843e735f7b651eda310a7f680
--- /dev/null
+++ b/modules/normalized_image_styles_webp_portrait_2x3/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_2x3.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_portrait_2x3
+label: NIS WebP Portrait 2:3 (0.66667:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    p09:
+      label: NIS WebP Portrait 2:3
+      aspect_ratio: 2:3
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_portrait_2x3/normalized_image_styles_webp_portrait_2x3.info.yml b/modules/normalized_image_styles_webp_portrait_2x3/normalized_image_styles_webp_portrait_2x3.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0ee9f1ae2cddfad2dcd9117605a854779107d0c8
--- /dev/null
+++ b/modules/normalized_image_styles_webp_portrait_2x3/normalized_image_styles_webp_portrait_2x3.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Portrait 2:3"
+type: module
+description: "Normalized portrait 2:3 (0.66667:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_portrait_3x4/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_3x4.yml b/modules/normalized_image_styles_webp_portrait_3x4/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_3x4.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f7ab758d3bfbf43fca50f47de7a3a53cd1f745de
--- /dev/null
+++ b/modules/normalized_image_styles_webp_portrait_3x4/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_3x4.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_portrait_3x4
+label: NIS WebP Portrait 3:4 (0.75:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    p08:
+      label: NIS WebP Portrait 3:4
+      aspect_ratio: 3:4
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_portrait_3x4/normalized_image_styles_webp_portrait_3x4.info.yml b/modules/normalized_image_styles_webp_portrait_3x4/normalized_image_styles_webp_portrait_3x4.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..76c707be020b57e5c9fcd014689abc3d13b14b4d
--- /dev/null
+++ b/modules/normalized_image_styles_webp_portrait_3x4/normalized_image_styles_webp_portrait_3x4.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Portrait 3:4"
+type: module
+description: "Normalized portrait 3:4 (0.75:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_portrait_4x5/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_4x5.yml b/modules/normalized_image_styles_webp_portrait_4x5/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_4x5.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0411f180df57a823480fa19b9d40858ca01c29e0
--- /dev/null
+++ b/modules/normalized_image_styles_webp_portrait_4x5/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_4x5.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_portrait_4x5
+label: NIS WebP Portrait 4:5 (0.8:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    p07:
+      label: NIS WebP Portrait 4:5
+      aspect_ratio: 4:5
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_portrait_4x5/normalized_image_styles_webp_portrait_4x5.info.yml b/modules/normalized_image_styles_webp_portrait_4x5/normalized_image_styles_webp_portrait_4x5.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6657607e06071d5ac3806e058715c8b212805576
--- /dev/null
+++ b/modules/normalized_image_styles_webp_portrait_4x5/normalized_image_styles_webp_portrait_4x5.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Portrait 4:5"
+type: module
+description: "Normalized portrait 4:5 (0.8:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_portrait_9x16/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_9x16.yml b/modules/normalized_image_styles_webp_portrait_9x16/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_9x16.yml
new file mode 100644
index 0000000000000000000000000000000000000000..59fff14316c1b0e4f8a1c059c5ff2cb873037a90
--- /dev/null
+++ b/modules/normalized_image_styles_webp_portrait_9x16/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_9x16.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_portrait_9x16
+label: NIS WebP Portrait 9:16 (0.5625:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    p11:
+      label: NIS WebP Portrait 9:16
+      aspect_ratio: 9:16
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_portrait_9x16/normalized_image_styles_webp_portrait_9x16.info.yml b/modules/normalized_image_styles_webp_portrait_9x16/normalized_image_styles_webp_portrait_9x16.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..afbac54160f489bdadcdb22c0e9042dff8ac646b
--- /dev/null
+++ b/modules/normalized_image_styles_webp_portrait_9x16/normalized_image_styles_webp_portrait_9x16.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Portrait 9:16"
+type: module
+description: "Normalized portrait 9:16 (0.5625:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_portrait_golden/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_golden.yml b/modules/normalized_image_styles_webp_portrait_golden/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_golden.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b7a89535d97f5d6eb78a08f618f5c6369e6f3dc1
--- /dev/null
+++ b/modules/normalized_image_styles_webp_portrait_golden/config/install/migrate_plus.migration.normalized_image_styles_webp_portrait_golden.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_portrait_golden
+label: NIS WebP Portrait Golden Ratio (0.61803:1)
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    p10:
+      label: NIS WebP Portrait Golden Ratio
+      aspect_ratio: 1000000000000:1618033988749
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_portrait_golden/normalized_image_styles_webp_portrait_golden.info.yml b/modules/normalized_image_styles_webp_portrait_golden/normalized_image_styles_webp_portrait_golden.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..76504d7ad554ed631db047414844f25b315816e5
--- /dev/null
+++ b/modules/normalized_image_styles_webp_portrait_golden/normalized_image_styles_webp_portrait_golden.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Portrait Golden Ratio"
+type: module
+description: "Normalized portrait Golden Ratio (0.61803:1) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_scaled_max/config/install/migrate_plus.migration.normalized_image_styles_webp_scaled_max.yml b/modules/normalized_image_styles_webp_scaled_max/config/install/migrate_plus.migration.normalized_image_styles_webp_scaled_max.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b5065f62c59838702199d2c5039f31bf50344470
--- /dev/null
+++ b/modules/normalized_image_styles_webp_scaled_max/config/install/migrate_plus.migration.normalized_image_styles_webp_scaled_max.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_scaled_max
+label: NIS WebP Scaled Max
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      image_scale:
+        width: "{{width}}"
+        height: "{{height}}"
+        upscale: true
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    scw:
+      label: NIS WebP Scaled Max
+      aspect_ratio: 1:1
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_scaled_max/normalized_image_styles_webp_scaled_max.info.yml b/modules/normalized_image_styles_webp_scaled_max/normalized_image_styles_webp_scaled_max.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a5fc3b169ed592acbb9ac4353a5192de8169452e
--- /dev/null
+++ b/modules/normalized_image_styles_webp_scaled_max/normalized_image_styles_webp_scaled_max.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Scaled Max"
+type: module
+description: "Normalized scaled (Max) image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles
diff --git a/modules/normalized_image_styles_webp_square_1x1/config/install/migrate_plus.migration.normalized_image_styles_webp_square_1x1.yml b/modules/normalized_image_styles_webp_square_1x1/config/install/migrate_plus.migration.normalized_image_styles_webp_square_1x1.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2ccb9f9e91c5e3b577d52236501d0e91a1568dab
--- /dev/null
+++ b/modules/normalized_image_styles_webp_square_1x1/config/install/migrate_plus.migration.normalized_image_styles_webp_square_1x1.yml
@@ -0,0 +1,82 @@
+id: normalized_image_styles_webp_square_1x1
+label: NIS WebP Square 1:1
+migration_group: normalized_image_styles
+migration_tags:
+  - normalized
+
+source:
+  plugin: image_style_generate
+
+  defaults:
+    size_multiplier: 16
+    id_pattern: "{{group_id}}_{{size_padded}}_{{width}}x{{height}}_webp"
+    label_pattern: "{{group_label}} - size {{base_size}} ({{width}}x{{height}})"
+
+    effects:
+      focal_point_scale_and_crop:
+        width: "{{width}}"
+        height: "{{height}}"
+        crop_type: focal_point
+      image_style_quality:
+        quality: 85
+      image_convert:
+        extension: webp
+
+    size_scales:
+      "100": {}
+
+    base_sizes:
+      "8": null
+      "16": null
+      "24": null
+      "32": null
+      "40": null
+      "48": null
+      "56": null
+      "64": null
+      "72": null
+      "88": null
+      "104": null
+      "120":
+        effects:
+          image_style_quality:
+            quality: 50
+      "136":
+        effects:
+          image_style_quality:
+            quality: 45
+      "160":
+        effects:
+          image_style_quality:
+            quality: 40
+      "184":
+        effects:
+          image_style_quality:
+            quality: 35
+      "208":
+        effects:
+          image_style_quality:
+            quality: 30
+      "240":
+        effects:
+          image_style_quality:
+            quality: 25
+
+  style_groups:
+    sqw:
+      label: NIS WebP Square 1:1
+      aspect_ratio: 1:1
+
+  ids:
+    name:
+      type: string
+
+process:
+  name: name
+  label: label
+  effects: effects
+
+destination:
+  plugin: entity:image_style
+
+migration_dependencies: {}
diff --git a/modules/normalized_image_styles_webp_square_1x1/normalized_image_styles_webp_square_1x1.info.yml b/modules/normalized_image_styles_webp_square_1x1/normalized_image_styles_webp_square_1x1.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..09f8b9a215ff6de7b003adcdd006789b34f6a3c9
--- /dev/null
+++ b/modules/normalized_image_styles_webp_square_1x1/normalized_image_styles_webp_square_1x1.info.yml
@@ -0,0 +1,7 @@
+name: "NIS WebP Square 1:1"
+type: module
+description: "Normalized square 1:1 image styles - WebP"
+package: Normalized Image Styles
+core_version_requirement: ^10 || ^11
+dependencies:
+  - normalized_image_styles:normalized_image_styles