Djangoで複数のファイルアップロード処理を行うにあたり、カスタムバリデーションメソッドを共通化したいのですが、方法が分かりません

from django import forms
from django.contrib.staticfiles.templatetags.staticfiles import static
from django.contrib.admin import widgets
from django.core.exceptions import ValidationError
import os

class ContactForm(forms.Form):
    profile_image = forms.Field(
        label='プロフィール画像のアップロード',
        required=False,
        widget = forms.FileInput())
    header_image = forms.Field(
        label='ヘッダー画像のアップロード',
        required=False,
        widget = forms.FileInput())

    def clean_profile_image(self):
        profile_image = self.cleaned_data.get('profile_image', False)
        if profile_image:
            valid_extensions = ['.png','.jpg','.gif']
            ext = os.path.splitext(profile_image.name)[1]
            if profile_image._size > 2411724:
                raise ValidationError("ファイルサイズが大きすぎます(最大2.3MB)")
            elif not ext in valid_extensions:
                raise ValidationError("許可されていないファイルタイプです")

    def clean_header_image(self):
        header_image = self.cleaned_data.get('header_image', False)
        if header_image:
            valid_extensions = ['.png','.jpg','.gif']
            ext = os.path.splitext(header_image.name)[1]
            if header_image._size > 2411724:
                raise ValidationError("ファイルサイズが大きすぎます(最大2.3MB)")
            elif not ext in valid_extensions:
                raise ValidationError("許可されていないファイルタイプです")

上記の通りカスタムバリデーションであるclean_profile_imageとclean_header_imageの処理内容は同一です。こちらを一つにまとめる方法がありましたら、ご教授いただきたく...
なお、profile_image/header_imageともにrequired=Falseです