diff --git a/Tests/test_file_tiff.py b/Tests/test_file_tiff.py
index 90582dadc..11ecb757d 100644
--- a/Tests/test_file_tiff.py
+++ b/Tests/test_file_tiff.py
@@ -118,8 +118,6 @@ class TestFileTiff:
             assert_image_equal_tofile(im, "Tests/images/hopper.tif")
 
         with Image.open("Tests/images/hopper_bigtiff.tif") as im:
-            assert isinstance(im, TiffImagePlugin.TiffImageFile)
-
             outfile = tmp_path / "temp.tif"
             assert isinstance(im, TiffImagePlugin.TiffImageFile)
             im.save(outfile, save_all=True, append_images=[im], tiffinfo=im.tag_v2)
diff --git a/src/PIL/GifImagePlugin.py b/src/PIL/GifImagePlugin.py
index 0c22b413d..a83f0fad7 100644
--- a/src/PIL/GifImagePlugin.py
+++ b/src/PIL/GifImagePlugin.py
@@ -31,7 +31,7 @@ import os
 import subprocess
 from enum import IntEnum
 from functools import cached_property
-from typing import IO, TYPE_CHECKING, Any, Literal, NamedTuple, Union, cast
+from typing import IO, Any, Literal, NamedTuple, Union, cast
 
 from . import (
     Image,
@@ -47,6 +47,7 @@ from ._binary import o8
 from ._binary import o16le as o16
 from ._util import DeferredError
 
+TYPE_CHECKING = False
 if TYPE_CHECKING:
     from . import _imaging
     from ._typing import Buffer
diff --git a/src/PIL/Image.py b/src/PIL/Image.py
index 4177c973e..b06ab1499 100644
--- a/src/PIL/Image.py
+++ b/src/PIL/Image.py
@@ -41,14 +41,7 @@ import warnings
 from collections.abc import Callable, Iterator, MutableMapping, Sequence
 from enum import IntEnum
 from types import ModuleType
-from typing import (
-    IO,
-    TYPE_CHECKING,
-    Any,
-    Literal,
-    Protocol,
-    cast,
-)
+from typing import IO, Any, Literal, Protocol, cast
 
 # VERSION was removed in Pillow 6.0.0.
 # PILLOW_VERSION was removed in Pillow 9.0.0.
@@ -218,6 +211,7 @@ if hasattr(core, "DEFAULT_STRATEGY"):
 # --------------------------------------------------------------------
 # Registries
 
+TYPE_CHECKING = False
 if TYPE_CHECKING:
     import mmap
     from xml.etree.ElementTree import Element
diff --git a/src/PIL/ImageDraw.py b/src/PIL/ImageDraw.py
index c2ed9034d..e6c7b0298 100644
--- a/src/PIL/ImageDraw.py
+++ b/src/PIL/ImageDraw.py
@@ -35,7 +35,7 @@ import math
 import struct
 from collections.abc import Sequence
 from types import ModuleType
-from typing import TYPE_CHECKING, Any, AnyStr, Callable, Union, cast
+from typing import Any, AnyStr, Callable, Union, cast
 
 from . import Image, ImageColor
 from ._deprecate import deprecate
@@ -44,6 +44,7 @@ from ._typing import Coords
 # experimental access to the outline API
 Outline: Callable[[], Image.core._Outline] = Image.core.outline
 
+TYPE_CHECKING = False
 if TYPE_CHECKING:
     from . import ImageDraw2, ImageFont
 
diff --git a/src/PIL/ImageFile.py b/src/PIL/ImageFile.py
index 4ea2e0b97..27125632d 100644
--- a/src/PIL/ImageFile.py
+++ b/src/PIL/ImageFile.py
@@ -34,12 +34,13 @@ import itertools
 import logging
 import os
 import struct
-from typing import IO, TYPE_CHECKING, Any, NamedTuple, cast
+from typing import IO, Any, NamedTuple, cast
 
 from . import ExifTags, Image
 from ._deprecate import deprecate
 from ._util import DeferredError, is_path
 
+TYPE_CHECKING = False
 if TYPE_CHECKING:
     from ._typing import StrOrBytesPath
 
diff --git a/src/PIL/ImageFilter.py b/src/PIL/ImageFilter.py
index 05829d0c6..b9ed54ab2 100644
--- a/src/PIL/ImageFilter.py
+++ b/src/PIL/ImageFilter.py
@@ -20,8 +20,9 @@ import abc
 import functools
 from collections.abc import Sequence
 from types import ModuleType
-from typing import TYPE_CHECKING, Any, Callable, cast
+from typing import Any, Callable, cast
 
+TYPE_CHECKING = False
 if TYPE_CHECKING:
     from . import _imaging
     from ._typing import NumpyArray
diff --git a/src/PIL/ImageFont.py b/src/PIL/ImageFont.py
index c8f05fbb7..ebe510ba9 100644
--- a/src/PIL/ImageFont.py
+++ b/src/PIL/ImageFont.py
@@ -34,12 +34,13 @@ import warnings
 from enum import IntEnum
 from io import BytesIO
 from types import ModuleType
-from typing import IO, TYPE_CHECKING, Any, BinaryIO, TypedDict, cast
+from typing import IO, Any, BinaryIO, TypedDict, cast
 
 from . import Image, features
 from ._typing import StrOrBytesPath
 from ._util import DeferredError, is_path
 
+TYPE_CHECKING = False
 if TYPE_CHECKING:
     from . import ImageFile
     from ._imaging import ImagingFont
diff --git a/src/PIL/ImagePalette.py b/src/PIL/ImagePalette.py
index 183f85526..103697117 100644
--- a/src/PIL/ImagePalette.py
+++ b/src/PIL/ImagePalette.py
@@ -19,10 +19,11 @@ from __future__ import annotations
 
 import array
 from collections.abc import Sequence
-from typing import IO, TYPE_CHECKING
+from typing import IO
 
 from . import GimpGradientFile, GimpPaletteFile, ImageColor, PaletteFile
 
+TYPE_CHECKING = False
 if TYPE_CHECKING:
     from . import Image
 
diff --git a/src/PIL/ImageQt.py b/src/PIL/ImageQt.py
index 2cc40f855..df7a57b65 100644
--- a/src/PIL/ImageQt.py
+++ b/src/PIL/ImageQt.py
@@ -19,11 +19,12 @@ from __future__ import annotations
 
 import sys
 from io import BytesIO
-from typing import TYPE_CHECKING, Any, Callable, Union
+from typing import Any, Callable, Union
 
 from . import Image
 from ._util import is_path
 
+TYPE_CHECKING = False
 if TYPE_CHECKING:
     import PyQt6
     import PySide6
diff --git a/src/PIL/ImageTk.py b/src/PIL/ImageTk.py
index e6a9d8eea..3a4cb81e9 100644
--- a/src/PIL/ImageTk.py
+++ b/src/PIL/ImageTk.py
@@ -28,10 +28,11 @@ from __future__ import annotations
 
 import tkinter
 from io import BytesIO
-from typing import TYPE_CHECKING, Any
+from typing import Any
 
 from . import Image, ImageFile
 
+TYPE_CHECKING = False
 if TYPE_CHECKING:
     from ._typing import CapsuleType
 
diff --git a/src/PIL/JpegImagePlugin.py b/src/PIL/JpegImagePlugin.py
index 449480a73..a2ee03eb5 100644
--- a/src/PIL/JpegImagePlugin.py
+++ b/src/PIL/JpegImagePlugin.py
@@ -42,7 +42,7 @@ import subprocess
 import sys
 import tempfile
 import warnings
-from typing import IO, TYPE_CHECKING, Any
+from typing import IO, Any
 
 from . import Image, ImageFile
 from ._binary import i16be as i16
@@ -52,6 +52,7 @@ from ._binary import o16be as o16
 from ._deprecate import deprecate
 from .JpegPresets import presets
 
+TYPE_CHECKING = False
 if TYPE_CHECKING:
     from .MpoImagePlugin import MpoImageFile
 
diff --git a/src/PIL/PSDraw.py b/src/PIL/PSDraw.py
index 02939d26b..7fd4c5c94 100644
--- a/src/PIL/PSDraw.py
+++ b/src/PIL/PSDraw.py
@@ -17,10 +17,13 @@
 from __future__ import annotations
 
 import sys
-from typing import IO, TYPE_CHECKING
+from typing import IO
 
 from . import EpsImagePlugin
 
+TYPE_CHECKING = False
+
+
 ##
 # Simple PostScript graphics interface.
 
diff --git a/src/PIL/PdfParser.py b/src/PIL/PdfParser.py
index 41b38ebbf..73d8c21c0 100644
--- a/src/PIL/PdfParser.py
+++ b/src/PIL/PdfParser.py
@@ -8,7 +8,7 @@ import os
 import re
 import time
 import zlib
-from typing import IO, TYPE_CHECKING, Any, NamedTuple, Union
+from typing import IO, Any, NamedTuple, Union
 
 
 # see 7.9.2.2 Text String Type on page 86 and D.3 PDFDocEncoding Character Set
@@ -251,6 +251,7 @@ class PdfArray(list[Any]):
         return b"[ " + b" ".join(pdf_repr(x) for x in self) + b" ]"
 
 
+TYPE_CHECKING = False
 if TYPE_CHECKING:
     _DictBase = collections.UserDict[Union[str, bytes], Any]
 else:
diff --git a/src/PIL/PngImagePlugin.py b/src/PIL/PngImagePlugin.py
index 8b245ae0a..ecc93627b 100644
--- a/src/PIL/PngImagePlugin.py
+++ b/src/PIL/PngImagePlugin.py
@@ -40,7 +40,7 @@ import warnings
 import zlib
 from collections.abc import Callable
 from enum import IntEnum
-from typing import IO, TYPE_CHECKING, Any, NamedTuple, NoReturn, cast
+from typing import IO, Any, NamedTuple, NoReturn, cast
 
 from . import Image, ImageChops, ImageFile, ImagePalette, ImageSequence
 from ._binary import i16be as i16
@@ -50,6 +50,7 @@ from ._binary import o16be as o16
 from ._binary import o32be as o32
 from ._util import DeferredError
 
+TYPE_CHECKING = False
 if TYPE_CHECKING:
     from . import _imaging
 
diff --git a/src/PIL/SpiderImagePlugin.py b/src/PIL/SpiderImagePlugin.py
index 5288f922f..62c834745 100644
--- a/src/PIL/SpiderImagePlugin.py
+++ b/src/PIL/SpiderImagePlugin.py
@@ -37,11 +37,13 @@ from __future__ import annotations
 import os
 import struct
 import sys
-from typing import IO, TYPE_CHECKING, Any, cast
+from typing import IO, Any, cast
 
 from . import Image, ImageFile
 from ._util import DeferredError
 
+TYPE_CHECKING = False
+
 
 def isInt(f: Any) -> int:
     try:
diff --git a/src/PIL/TiffImagePlugin.py b/src/PIL/TiffImagePlugin.py
index 1cdf835b4..20b77c563 100644
--- a/src/PIL/TiffImagePlugin.py
+++ b/src/PIL/TiffImagePlugin.py
@@ -50,7 +50,7 @@ import warnings
 from collections.abc import Iterator, MutableMapping
 from fractions import Fraction
 from numbers import Number, Rational
-from typing import IO, TYPE_CHECKING, Any, Callable, NoReturn, cast
+from typing import IO, Any, Callable, NoReturn, cast
 
 from . import ExifTags, Image, ImageFile, ImageOps, ImagePalette, TiffTags
 from ._binary import i16be as i16
@@ -61,6 +61,7 @@ from ._typing import StrOrBytesPath
 from ._util import DeferredError, is_path
 from .TiffTags import TYPES
 
+TYPE_CHECKING = False
 if TYPE_CHECKING:
     from ._typing import Buffer, IntegralLike
 
diff --git a/src/PIL/_typing.py b/src/PIL/_typing.py
index 34a9a81e1..373938e71 100644
--- a/src/PIL/_typing.py
+++ b/src/PIL/_typing.py
@@ -3,8 +3,9 @@ from __future__ import annotations
 import os
 import sys
 from collections.abc import Sequence
-from typing import TYPE_CHECKING, Any, Protocol, TypeVar, Union
+from typing import Any, Protocol, TypeVar, Union
 
+TYPE_CHECKING = False
 if TYPE_CHECKING:
     from numbers import _IntegralLike as IntegralLike