diff --git src/wp-admin/includes/image.php src/wp-admin/includes/image.php
index 98689672b3..486530c4c9 100644
--- src/wp-admin/includes/image.php
+++ src/wp-admin/includes/image.php
@@ -660,6 +660,19 @@ function _wp_filter_image_sizes_additional_mime_type_support( $sizes, $attachmen
 		'post-thumbnail' => true,
 	);
 
+	// Include any sizes that were added with `add_image_size`.
+	$additional_image_sizes = wp_get_additional_image_sizes();
+	$additional_image_sizes = array_filter(
+		$additional_image_sizes,
+		function( $size ) {
+			return isset( $size['additional_mimes'] ) && $size['additional_mimes'];
+		}
+	);
+
+	foreach ( array_keys( $additional_image_sizes ) as $size_name ) {
+		$enabled_sizes[ $size_name ] = true;
+	}
+
 	/**
 	 * Filter the sizes that support secondary mime type output. Developers can use this
 	 * to control the output of additional mime type sub-sized images.
diff --git src/wp-content/themes/twentyeleven/functions.php src/wp-content/themes/twentyeleven/functions.php
index 12593aaddf..ee95afd96b 100644
--- src/wp-content/themes/twentyeleven/functions.php
+++ src/wp-content/themes/twentyeleven/functions.php
@@ -227,9 +227,9 @@ if ( ! function_exists( 'twentyeleven_setup' ) ) :
 		 * Add Twenty Eleven's custom image sizes.
 		 * Used for large feature (header) images.
 		 */
-		add_image_size( 'large-feature', $custom_header_support['width'], $custom_header_support['height'], true );
+		add_image_size( 'large-feature', $custom_header_support['width'], $custom_header_support['height'], true, true );
 		// Used for featured posts if a large-feature doesn't exist.
-		add_image_size( 'small-feature', 500, 300 );
+		add_image_size( 'small-feature', 500, 300, false, true );
 
 		// Default custom headers packaged with the theme. %s is a placeholder for the theme template directory URI.
 		register_default_headers(
diff --git src/wp-content/themes/twentyfourteen/functions.php src/wp-content/themes/twentyfourteen/functions.php
index 0695bcce6d..0896f84410 100644
--- src/wp-content/themes/twentyfourteen/functions.php
+++ src/wp-content/themes/twentyfourteen/functions.php
@@ -122,7 +122,7 @@ if ( ! function_exists( 'twentyfourteen_setup' ) ) :
 		// Enable support for Post Thumbnails, and declare two sizes.
 		add_theme_support( 'post-thumbnails' );
 		set_post_thumbnail_size( 672, 372, true );
-		add_image_size( 'twentyfourteen-full-width', 1038, 576, true );
+		add_image_size( 'twentyfourteen-full-width', 1038, 576, true, true );
 
 		// This theme uses wp_nav_menu() in two locations.
 		register_nav_menus(
diff --git src/wp-content/themes/twentyseventeen/functions.php src/wp-content/themes/twentyseventeen/functions.php
index 3d933989c2..d8b95b8568 100644
--- src/wp-content/themes/twentyseventeen/functions.php
+++ src/wp-content/themes/twentyseventeen/functions.php
@@ -56,9 +56,9 @@ function twentyseventeen_setup() {
 	 */
 	add_theme_support( 'post-thumbnails' );
 
-	add_image_size( 'twentyseventeen-featured-image', 2000, 1200, true );
+	add_image_size( 'twentyseventeen-featured-image', 2000, 1200, true, true );
 
-	add_image_size( 'twentyseventeen-thumbnail-avatar', 100, 100, true );
+	add_image_size( 'twentyseventeen-thumbnail-avatar', 100, 100, true, true );
 
 	// Set the default content width.
 	$GLOBALS['content_width'] = 525;
diff --git src/wp-content/themes/twentytwenty/functions.php src/wp-content/themes/twentytwenty/functions.php
index c8944e03c1..21a561fdaf 100644
--- src/wp-content/themes/twentytwenty/functions.php
+++ src/wp-content/themes/twentytwenty/functions.php
@@ -63,7 +63,7 @@ function twentytwenty_theme_support() {
 	set_post_thumbnail_size( 1200, 9999 );
 
 	// Add custom image size used in Cover Template.
-	add_image_size( 'twentytwenty-fullscreen', 1980, 9999 );
+	add_image_size( 'twentytwenty-fullscreen', 1980, 9999, false, true );
 
 	// Custom logo.
 	$logo_width  = 120;
diff --git src/wp-includes/media.php src/wp-includes/media.php
index 51c49f83d2..b944575b92 100644
--- src/wp-includes/media.php
+++ src/wp-includes/media.php
@@ -275,26 +275,29 @@ function image_downsize( $id, $size = 'medium' ) {
  * Register a new image size.
  *
  * @since 2.9.0
+ * @since 6.1.0 Add the $output_mimes parameter.
  *
  * @global array $_wp_additional_image_sizes Associative array of additional image sizes.
  *
- * @param string     $name   Image size identifier.
- * @param int        $width  Optional. Image width in pixels. Default 0.
- * @param int        $height Optional. Image height in pixels. Default 0.
- * @param bool|array $crop   Optional. Image cropping behavior. If false, the image will be scaled (default),
- *                           If true, image will be cropped to the specified dimensions using center positions.
- *                           If an array, the image will be cropped using the array to specify the crop location.
- *                           Array values must be in the format: array( x_crop_position, y_crop_position ) where:
- *                               - x_crop_position accepts: 'left', 'center', or 'right'.
- *                               - y_crop_position accepts: 'top', 'center', or 'bottom'.
+ * @param string     $name             Image size identifier.
+ * @param int        $width            Optional. Image width in pixels. Default 0.
+ * @param int        $height           Optional. Image height in pixels. Default 0.
+ * @param bool|array $crop             Optional. Image cropping behavior. If false, the image will be scaled (default),
+ *                                     If true, image will be cropped to the specified dimensions using center positions.
+ *                                     If an array, the image will be cropped using the array to specify the crop location.
+ *                                     Array values must be in the format: array( x_crop_position, y_crop_position ) where:
+ *                                         - x_crop_position accepts: 'left', 'center', or 'right'.
+ *                                         - y_crop_position accepts: 'top', 'center', or 'bottom'.
+ * @param bool       $additional_mimes Optional. Whether to output secondary mimes for this image size. Default is false.
  */
-function add_image_size( $name, $width = 0, $height = 0, $crop = false ) {
+function add_image_size( $name, $width = 0, $height = 0, $crop = false, $additional_mimes = false ) {
 	global $_wp_additional_image_sizes;
 
 	$_wp_additional_image_sizes[ $name ] = array(
-		'width'  => absint( $width ),
-		'height' => absint( $height ),
-		'crop'   => $crop,
+		'width'            => absint( $width ),
+		'height'           => absint( $height ),
+		'crop'             => $crop,
+		'additional_mimes' => $additional_mimes,
 	);
 }
 
@@ -345,7 +348,7 @@ function remove_image_size( $name ) {
  *                           An array can specify positioning of the crop area. Default false.
  */
 function set_post_thumbnail_size( $width = 0, $height = 0, $crop = false ) {
-	add_image_size( 'post-thumbnail', $width, $height, $crop );
+	add_image_size( 'post-thumbnail', $width, $height, $crop, true );
 }
 
 /**
@@ -5317,9 +5320,9 @@ function wp_media_personal_data_exporter( $email_address, $page = 1 ) {
  */
 function _wp_add_additional_image_sizes() {
 	// 2x medium_large size.
-	add_image_size( '1536x1536', 1536, 1536 );
+	add_image_size( '1536x1536', 1536, 1536, false, true );
 	// 2x large size.
-	add_image_size( '2048x2048', 2048, 2048 );
+	add_image_size( '2048x2048', 2048, 2048, false, true );
 }
 
 /**
diff --git tests/phpunit/tests/media.php tests/phpunit/tests/media.php
index 592b19e328..f2e6b525b3 100644
--- tests/phpunit/tests/media.php
+++ tests/phpunit/tests/media.php
@@ -1155,6 +1155,42 @@ VIDEO;
 		$this->assertSame( 600, $sizes['test-size']['height'] );
 	}
 
+	/**
+	 * @ticket 56288
+	 */
+	public function test_add_image_size_additional_mimes() {
+		add_image_size( 'test-size-with-additional-mimes', 200, 600, false, true );
+		add_image_size( 'test-size-without-additional-mimes', 200, 600, false, false );
+
+		$sizes = wp_get_additional_image_sizes();
+
+		remove_image_size( 'test-size-with-additional-mimes' );
+		remove_image_size( 'test-size-without-additional-mimes' );
+
+		$this->assertArrayHasKey( 'test-size-with-additional-mimes', $sizes );
+		$this->assertArrayHasKey( 'test-size-without-additional-mimes', $sizes );
+		$this->assertTrue( $sizes['test-size-with-additional-mimes']['additional_mimes'] );
+		$this->assertFalse( $sizes['test-size-without-additional-mimes']['additional_mimes'] );
+	}
+
+	/**
+	 * @ticket 56288
+	 */
+	public function test__wp_filter_image_sizes_additional_mime_type_support_with_add_image_size() {
+		add_image_size( 'test-size-with-additional-mimes', 200, 600, false, true );
+		add_image_size( 'test-size-without-additional-mimes', 200, 600, false, false );
+
+		$all_sizes      = wp_get_additional_image_sizes();
+		$filtered_sizes = _wp_filter_image_sizes_additional_mime_type_support( $all_sizes, $this->large_id );
+
+		remove_image_size( 'test-size-with-additional-mimes' );
+		remove_image_size( 'test-size-without-additional-mimes' );
+
+		$this->assertArrayHasKey( 'test-size-with-additional-mimes', $filtered_sizes );
+		$this->assertArrayNotHasKey( 'test-size-without-additional-mimes', $filtered_sizes );
+
+	}
+
 	/**
 	 * @ticket 26768
 	 */
