"""
HuggingFace Popular Models Whitelist

This module contains a whitelist of the top 540 most downloaded models
from HuggingFace. These models are widely used and trusted by the community,
so security findings for these models are downgraded to INFO severity.

Generated: 2025-10-23T10:29:28.645376Z
Source: https://huggingface.co/models-json?sort=downloads
Total models: 540

This whitelist is used by ModelAudit to reduce false positives when scanning
popular, well-established models. Users can disable this behavior via the
'use_hf_whitelist' configuration option.
"""

# Set of model IDs (author/model-name format)
POPULAR_MODELS: set[str] = {
    "1-800-BAD-CODE/xlm-roberta_punctuation_fullstop_truecase",
    "Alibaba-NLP/gte-large-en-v1.5",
    "Alibaba-NLP/gte-multilingual-base",
    "Alibaba-NLP/gte-reranker-modernbert-base",
    "BAAI/bge-base-en-v1.5",
    "BAAI/bge-large-en-v1.5",
    "BAAI/bge-large-zh-v1.5",
    "BAAI/bge-m3",
    "BAAI/bge-multilingual-gemma2",
    "BAAI/bge-reranker-base",
    "BAAI/bge-reranker-large",
    "BAAI/bge-reranker-v2-m3",
    "BAAI/bge-small-en-v1.5",
    "Bingsu/adetailer",
    "Bingsu/yolo-world-mirror",
    "CAMeL-Lab/bert-base-arabic-camelbert-mix-sentiment",
    "CIDAS/clipseg-rd64-refined",
    "Comfy-Org/Qwen-Image-Edit_ComfyUI",
    "Comfy-Org/Qwen-Image_ComfyUI",
    "Comfy-Org/Wan_2.1_ComfyUI_repackaged",
    "Comfy-Org/Wan_2.2_ComfyUI_Repackaged",
    "Comfy-Org/stable-diffusion-v1-5-archive",
    "CompVis/stable-diffusion-safety-checker",
    "CompVis/stable-diffusion-v1-4",
    "Copycats/koelectra-base-v3-generalized-sentiment-analysis",
    "DOEJGI/GenomeOcean-4B",
    "Datadog/Toto-Open-Base-1.0",
    "DeepChem/ChemBERTa-77M-MTR",
    "E-MIMIC/inclusively-reformulation-it5",
    "FacebookAI/roberta-base",
    "FacebookAI/roberta-large",
    "FacebookAI/roberta-large-mnli",
    "FacebookAI/xlm-roberta-base",
    "FacebookAI/xlm-roberta-large",
    "Falconsai/nsfw_image_detection",
    "Felix92/doctr-torch-parseq-multilingual-v1",
    "Freepik/nsfw_image_detector",
    "Gensyn/Qwen2.5-0.5B-Instruct",
    "HamdanXI/wav2vec2-base-myst-new",
    "Helsinki-NLP/opus-mt-en-de",
    "Helsinki-NLP/opus-mt-en-fr",
    "Helsinki-NLP/opus-mt-fr-en",
    "Helsinki-NLP/opus-mt-nl-en",
    "Helsinki-NLP/opus-mt-zh-en",
    "HuggingFaceTB/SmolLM-135M",
    "HuggingFaceTB/SmolLM2-135M",
    "IDEA-Research/grounding-dino-base",
    "IDEA-Research/grounding-dino-tiny",
    "IlyaGusev/saiga_llama3_8b",
    "Intel/dpt-hybrid-midas",
    "Intel/zoedepth-nyu",
    "Intel/zoedepth-nyu-kitti",
    "Isotonic/distilbert_finetuned_ai4privacy_v2",
    "Jean-Baptiste/camembert-ner",
    "Junyi42/MonST3R_PO-TA-S-W_ViTLarge_BaseDecoder_512_dpt",
    "Kijai/WanVideo_comfy",
    "Kijai/WanVideo_comfy_fp8_scaled",
    "KomeijiForce/bart-large-emojilm",
    "LiheYoung/depth-anything-large-hf",
    "LiquidAI/LFM2-1.2B",
    "M-CLIP/XLM-Roberta-Large-Vit-B-32",
    "MIT/ast-finetuned-audioset-10-10-0.4593",
    "MahmoodLab/TITAN",
    "MahmoudAshraf/mms-300m-1130-forced-aligner",
    "Marqo/marqo-fashionSigLIP",
    "MoritzLaurer/DeBERTa-v3-base-mnli-fever-anli",
    "NX-AI/TiRex",
    "NovaSearch/stella_en_400M_v5",
    "OpenGVLab/InternVL2-1B",
    "OpenGVLab/InternVL2-2B",
    "OpenGVLab/InternVL3-14B",
    "OpenGVLab/InternVL3-8B",
    "OpenGVLab/InternVL3_5-241B-A28B-Instruct",
    "OpenGVLab/InternVL3_5-GPT-OSS-20B-A4B-Preview-HF",
    "OpenMed/OpenMed-NER-PharmaDetect-SuperClinical-434M",
    "PaddlePaddle/PP-LCNet_x1_0_doc_ori",
    "PaddlePaddle/UVDoc",
    "ProsusAI/finbert",
    "Qwen/Qwen2-0.5B",
    "Qwen/Qwen2-VL-2B-Instruct",
    "Qwen/Qwen2-VL-7B-Instruct",
    "Qwen/Qwen2.5-0.5B",
    "Qwen/Qwen2.5-0.5B-Instruct",
    "Qwen/Qwen2.5-1.5B-Instruct",
    "Qwen/Qwen2.5-14B-Instruct",
    "Qwen/Qwen2.5-32B-Instruct",
    "Qwen/Qwen2.5-32B-Instruct-AWQ",
    "Qwen/Qwen2.5-3B-Instruct",
    "Qwen/Qwen2.5-7B",
    "Qwen/Qwen2.5-7B-Instruct",
    "Qwen/Qwen2.5-7B-Instruct-AWQ",
    "Qwen/Qwen2.5-Coder-1.5B",
    "Qwen/Qwen2.5-Coder-7B-Instruct-AWQ",
    "Qwen/Qwen2.5-VL-32B-Instruct",
    "Qwen/Qwen2.5-VL-3B-Instruct",
    "Qwen/Qwen2.5-VL-72B-Instruct",
    "Qwen/Qwen2.5-VL-7B-Instruct",
    "Qwen/Qwen3-0.6B",
    "Qwen/Qwen3-1.7B",
    "Qwen/Qwen3-14B",
    "Qwen/Qwen3-14B-Base",
    "Qwen/Qwen3-30B-A3B",
    "Qwen/Qwen3-30B-A3B-Instruct-2507",
    "Qwen/Qwen3-32B",
    "Qwen/Qwen3-32B-AWQ",
    "Qwen/Qwen3-4B",
    "Qwen/Qwen3-4B-Instruct-2507",
    "Qwen/Qwen3-8B",
    "Qwen/Qwen3-8B-Base",
    "Qwen/Qwen3-Coder-30B-A3B-Instruct",
    "Qwen/Qwen3-Embedding-0.6B",
    "Qwen/Qwen3-Embedding-4B",
    "Qwen/Qwen3-Embedding-8B",
    "Qwen/Qwen3-Next-80B-A3B-Instruct",
    "Qwen/Qwen3-Next-80B-A3B-Thinking",
    "Qwen/Qwen3-Omni-30B-A3B-Instruct",
    "Qwen/Qwen3-Reranker-0.6B",
    "Qwen/Qwen3-VL-30B-A3B-Instruct",
    "RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",
    "ResembleAI/chatterbox",
    "Rostlab/prot_t5_xl_half_uniref50-enc",
    "Rostlab/prot_t5_xl_uniref50",
    "SG161222/Realistic_Vision_V5.1_noVAE",
    "SWivid/F5-TTS",
    "Salesforce/blip-image-captioning-base",
    "Salesforce/blip-image-captioning-large",
    "Salesforce/blip2-opt-2.7b",
    "Salesforce/blip2-opt-2.7b-coco",
    "Salesforce/moirai-2.0-R-small",
    "SamLowe/roberta-base-go_emotions",
    "Shushant/nepaliBERT",
    "SmilingWolf/wd-vit-large-tagger-v3",
    "Snowflake/snowflake-arctic-embed-m",
    "SpanBERT/spanbert-large-cased",
    "Systran/faster-whisper-large-v3",
    "TinyLlama/TinyLlama-1.1B-Chat-v1.0",
    "WhereIsAI/UAE-Large-V1",
    "Xenova/all-MiniLM-L6-v2",
    "Xenova/bge-base-en-v1.5",
    "Xenova/segformer-b0-finetuned-ade-512-512",
    "Xenova/speecht5_tts",
    "Xenova/t5-small",
    "Xenova/whisper-medium",
    "Xuhui/ToxDect-roberta-large",
    "YituTech/conv-bert-base",
    "YxZhang/evf-sam2",
    "ZhengPeng7/BiRefNet",
    "adibvafa/CodonTransformer",
    "ahotrod/electra_large_discriminator_squad2_512",
    "albert/albert-base-v2",
    "allenai/OLMo-2-0425-1B",
    "allenai/longformer-base-4096",
    "almanach/camembert-base",
    "amazon/chronos-bolt-base",
    "amazon/chronos-bolt-small",
    "amazon/chronos-bolt-tiny",
    "amazon/chronos-t5-base",
    "amazon/chronos-t5-small",
    "amazon/chronos-t5-tiny",
    "amunchet/rorshark-vit-base",
    "answerdotai/ModernBERT-base",
    "answerdotai/answerai-colbert-small-v1",
    "apple/mobilevit-small",
    "argmaxinc/whisperkit-coreml",
    "aubmindlab/bert-base-arabertv02",
    "autogluon/chronos-bolt-base",
    "autogluon/chronos-bolt-small",
    "autogluon/chronos-bolt-tiny",
    "autogluon/mitra-regressor",
    "bigscience/bloomz-560m",
    "black-forest-labs/FLUX.1-dev",
    "black-forest-labs/FLUX.1-schnell",
    "blanchefort/rubert-base-cased-sentiment-rusentiment",
    "bosonai/higgs-audio-v2-generation-3B-base",
    "cambridgeltl/SapBERT-from-PubMedBERT-fulltext",
    "cambridgeltl/SapBERT-from-PubMedBERT-fulltext-mean-token",
    "cardiffnlp/twitter-roberta-base-sentiment",
    "cardiffnlp/twitter-roberta-base-sentiment-latest",
    "cardiffnlp/twitter-xlm-roberta-base-sentiment",
    "charactr/vocos-mel-24khz",
    "circulus/gemma-3-4b-it-gptq",
    "cl-nagoya/ruri-base",
    "codellama/CodeLlama-34b-hf",
    "cointegrated/rubert-tiny2",
    "colbert-ir/colbertv2.0",
    "context-labs/meta-llama-Llama-3.2-3B-Instruct-FP16",
    "coqui/XTTS-v2",
    "cross-encoder/ms-marco-MiniLM-L12-v2",
    "cross-encoder/ms-marco-MiniLM-L2-v2",
    "cross-encoder/ms-marco-MiniLM-L4-v2",
    "cross-encoder/ms-marco-MiniLM-L6-v2",
    "cross-encoder/ms-marco-TinyBERT-L2-v2",
    "crynux-network/sdxl-turbo",
    "csebuetnlp/banglat5_banglaparaphrase",
    "dandelin/vilt-b32-finetuned-coco",
    "dandelin/vilt-b32-mlm",
    "datasocietyco/bge-base-en-v1.5-course-recommender-v5",
    "dbmdz/bert-large-cased-finetuned-conll03-english",
    "dccuchile/bert-base-spanish-wwm-uncased",
    "deepseek-ai/DeepSeek-R1",
    "deepseek-ai/DeepSeek-R1-0528",
    "deepseek-ai/DeepSeek-R1-Distill-Llama-8B",
    "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
    "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B",
    "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B",
    "deepseek-ai/DeepSeek-V3.1",
    "deepseek-ai/deepseek-coder-1.3b-instruct",
    "deepset/gelectra-large",
    "deepset/roberta-base-squad2",
    "depth-anything/Depth-Anything-V2-Base-hf",
    "depth-anything/Depth-Anything-V2-Large",
    "depth-anything/Depth-Anything-V2-Small-hf",
    "diff-interpretation-tuning/loras",
    "diffusers/stable-diffusion-xl-1.0-inpainting-0.1",
    "dima806/fairface_age_image_detection",
    "distil-whisper/distil-large-v3",
    "distilbert/distilbert-base-multilingual-cased",
    "distilbert/distilbert-base-uncased",
    "distilbert/distilbert-base-uncased-finetuned-sst-2-english",
    "distilbert/distilgpt2",
    "distilbert/distilroberta-base",
    "dmis-lab/biobert-base-cased-v1.1",
    "dmis-lab/biobert-v1.1",
    "dphn/dolphin-2.9.1-yi-1.5-34b",
    "dragonkue/BGE-m3-ko",
    "ds4sd/docling-models",
    "dslim/bert-base-NER",
    "dunzhang/stella-mrl-large-zh-v3.5-1792d",
    "emilyalsentzer/Bio_ClinicalBERT",
    "facebook/bart-base",
    "facebook/bart-large-cnn",
    "facebook/bart-large-mnli",
    "facebook/contriever",
    "facebook/detr-resnet-50",
    "facebook/dino-vits16",
    "facebook/dino-vits8",
    "facebook/dinov2-base",
    "facebook/dinov2-small",
    "facebook/dinov3-vitb16-pretrain-lvd1689m",
    "facebook/dinov3-vitl16-pretrain-lvd1689m",
    "facebook/encodec_24khz",
    "facebook/esm2_t30_150M_UR50D",
    "facebook/esm2_t33_650M_UR50D",
    "facebook/esm2_t36_3B_UR50D",
    "facebook/esm2_t6_8M_UR50D",
    "facebook/esmfold_v1",
    "facebook/flava-full",
    "facebook/m2m100_418M",
    "facebook/map-anything-apache",
    "facebook/musicgen-medium",
    "facebook/opt-125m",
    "facebook/roberta-hate-speech-dynabench-r4-target",
    "facebook/w2v-bert-2.0",
    "facebook/wav2vec2-base",
    "facebook/wav2vec2-base-960h",
    "facebook/wav2vec2-xlsr-53-espeak-cv-ft",
    "finiteautomata/bertweet-base-sentiment-analysis",
    "flair/ner-english-fast",
    "flowaicom/Flow-Judge-v0.1-AWQ",
    "gaunernst/bert-tiny-uncased",
    "ggml-org/models-moved",
    "google-bert/bert-base-cased",
    "google-bert/bert-base-chinese",
    "google-bert/bert-base-german-cased",
    "google-bert/bert-base-multilingual-cased",
    "google-bert/bert-base-multilingual-uncased",
    "google-bert/bert-base-uncased",
    "google-bert/bert-large-uncased",
    "google-t5/t5-3b",
    "google-t5/t5-base",
    "google-t5/t5-small",
    "google/electra-base-discriminator",
    "google/embeddinggemma-300m",
    "google/flan-t5-base",
    "google/flan-t5-large",
    "google/flan-t5-small",
    "google/fnet-base",
    "google/gemma-2-2b-it",
    "google/gemma-3-12b-it",
    "google/gemma-3-1b-it",
    "google/gemma-3-27b-it",
    "google/gemma-3-4b-it",
    "google/madlad400-3b-mt",
    "google/owlv2-base-patch16-ensemble",
    "google/paligemma-3b-mix-224",
    "google/paligemma2-3b-pt-224",
    "google/siglip-base-patch16-224",
    "google/siglip-so400m-patch14-384",
    "google/siglip2-base-patch16-224",
    "google/siglip2-so400m-patch14-384",
    "google/siglip2-so400m-patch16-naflex",
    "google/t5-v1_1-xxl",
    "google/vit-base-patch16-224",
    "google/vit-base-patch16-224-in21k",
    "hexgrad/Kokoro-82M",
    "hubertsiuzdak/snac_24khz",
    "hugging-quants/Meta-Llama-3.1-70B-Instruct-AWQ-INT4",
    "hustvl/vitmatte-small-composition-1k",
    "hustvl/yolos-small",
    "iSEE-Laboratory/llmdet_base",
    "inference-net/Schematron-3B",
    "intfloat/e5-base-v2",
    "intfloat/e5-large-v2",
    "intfloat/multilingual-e5-base",
    "intfloat/multilingual-e5-large",
    "intfloat/multilingual-e5-large-instruct",
    "intfloat/multilingual-e5-small",
    "j-hartmann/emotion-english-distilroberta-base",
    "jinaai/jina-bert-flash-implementation",
    "jinaai/jina-clip-v2",
    "jinaai/jina-embeddings-v3",
    "jinaai/jina-reranker-v2-base-multilingual",
    "jonatasgrosman/wav2vec2-large-xlsr-53-chinese-zh-cn",
    "jonatasgrosman/wav2vec2-large-xlsr-53-dutch",
    "jonatasgrosman/wav2vec2-large-xlsr-53-english",
    "jonatasgrosman/wav2vec2-large-xlsr-53-japanese",
    "jonatasgrosman/wav2vec2-large-xlsr-53-polish",
    "jonatasgrosman/wav2vec2-large-xlsr-53-portuguese",
    "jonatasgrosman/wav2vec2-large-xlsr-53-russian",
    "kaitchup/Phi-3-mini-4k-instruct-gptq-4bit",
    "klue/bert-base",
    "kosbu/Llama-3.3-70B-Instruct-AWQ",
    "kredor/punctuate-all",
    "kresnik/wav2vec2-large-xlsr-korean",
    "kyutai/mimi",
    "kyutai/moshiko-pytorch-bf16",
    "laion/CLIP-ViT-B-32-laion2B-s34B-b79K",
    "laion/CLIP-ViT-H-14-laion2B-s32B-b79K",
    "laion/CLIP-convnext_base_w-laion2B-s13B-b82K-augreg",
    "laion/clap-htsat-fused",
    "laion/larger_clap_general",
    "lengyue233/content-vec-best",
    "lightx2v/Qwen-Image-Lightning",
    "llava-hf/llava-1.5-7b-hf",
    "lmstudio-community/Magistral-Small-2509-MLX-4bit",
    "lmstudio-community/Magistral-Small-2509-MLX-5bit",
    "lmstudio-community/Magistral-Small-2509-MLX-6bit",
    "lmstudio-community/Magistral-Small-2509-MLX-8bit",
    "lmstudio-community/Qwen3-4B-Thinking-2507-MLX-4bit",
    "lmstudio-community/Qwen3-4B-Thinking-2507-MLX-6bit",
    "lmstudio-community/Qwen3-4B-Thinking-2507-MLX-8bit",
    "lpiccinelli/unidepth-v2-vitl14",
    "lucadiliello/BLEURT-20-D12",
    "lxyuan/distilbert-base-multilingual-cased-sentiments-student",
    "martin-ha/toxic-comment-model",
    "medicalai/ClinicalBERT",
    "meta-llama/Llama-2-7b-chat-hf",
    "meta-llama/Llama-2-7b-hf",
    "meta-llama/Llama-3.1-70B-Instruct",
    "meta-llama/Llama-3.1-8B",
    "meta-llama/Llama-3.1-8B-Instruct",
    "meta-llama/Llama-3.2-11B-Vision-Instruct",
    "meta-llama/Llama-3.2-1B",
    "meta-llama/Llama-3.2-1B-Instruct",
    "meta-llama/Llama-3.2-3B",
    "meta-llama/Llama-3.2-3B-Instruct",
    "meta-llama/Llama-3.3-70B-Instruct",
    "meta-llama/Llama-Guard-3-1B",
    "meta-llama/Llama-Guard-3-8B",
    "meta-llama/Meta-Llama-3-70B-Instruct",
    "meta-llama/Meta-Llama-3-8B",
    "meta-llama/Meta-Llama-3-8B-Instruct",
    "michellejieli/emotion_text_classifier",
    "microsoft/BiomedCLIP-PubMedBERT_256-vit_base_patch16_224",
    "microsoft/BiomedNLP-BiomedBERT-base-uncased-abstract",
    "microsoft/DialoGPT-medium",
    "microsoft/DialoGPT-small",
    "microsoft/Florence-2-large",
    "microsoft/Phi-3-mini-4k-instruct",
    "microsoft/Phi-3.5-vision-instruct",
    "microsoft/Phi-4-multimodal-instruct",
    "microsoft/TRELLIS-image-large",
    "microsoft/beit-base-patch16-224-pt22k-ft22k",
    "microsoft/codebert-base",
    "microsoft/deberta-base",
    "microsoft/deberta-large-mnli",
    "microsoft/deberta-v3-base",
    "microsoft/deberta-v3-large",
    "microsoft/deberta-xlarge-mnli",
    "microsoft/layoutlmv2-base-uncased",
    "microsoft/layoutlmv3-base",
    "microsoft/mdeberta-v3-base",
    "microsoft/phi-2",
    "microsoft/phi-4",
    "microsoft/swinv2-tiny-patch4-window16-256",
    "microsoft/table-transformer-detection",
    "microsoft/table-transformer-structure-recognition",
    "microsoft/tapex-base-finetuned-wikisql",
    "mistralai/Mistral-7B-Instruct-v0.2",
    "mistralai/Mistral-7B-Instruct-v0.3",
    "mistralai/Mistral-7B-v0.1",
    "mistralai/Mistral-Small-24B-Instruct-2501",
    "mistralai/Mixtral-8x7B-Instruct-v0.1",
    "mixedbread-ai/mxbai-embed-large-v1",
    "mixedbread-ai/mxbai-rerank-xsmall-v1",
    "mlx-community/gpt-oss-20b-MXFP4-Q8",
    "mlx-community/parakeet-tdt-0.6b-v2",
    "mlx-community/parakeet-tdt-0.6b-v3",
    "mobiuslabsgmbh/faster-whisper-large-v3-turbo",
    "mradermacher/deepsex-34b-GGUF",
    "mrm8488/distilroberta-finetuned-financial-news-sentiment-analysis",
    "nateraw/vit-age-classifier",
    "naver-clova-ix/donut-base",
    "naver/splade-cocondenser-ensembledistil",
    "neulab/codebert-python",
    "neuralmind/bert-large-portuguese-cased",
    "nlpaueb/legal-bert-base-uncased",
    "nlpaueb/legal-bert-small-uncased",
    "nlpconnect/vit-gpt2-image-captioning",
    "nlptown/bert-base-multilingual-uncased-sentiment",
    "nomic-ai/nomic-embed-text-v1",
    "nomic-ai/nomic-embed-text-v1.5",
    "nreimers/TinyBERT_L-4_H-312_v2",
    "nvidia/Cosmos-Predict2.5-2B",
    "nvidia/Cosmos-Reason1-7B",
    "nvidia/Llama-3.1-Nemotron-Nano-VL-8B-V1",
    "nvidia/bigvgan_v2_22khz_80band_256x",
    "nvidia/bigvgan_v2_44khz_128band_512x",
    "nvidia/parakeet-tdt-0.6b-v2",
    "nvidia/segformer-b4-finetuned-cityscapes-1024-1024",
    "nvidia/speakerverification_en_titanet_large",
    "obi/deid_roberta_i2b2",
    "oliverguhr/fullstop-punctuation-multilang-large",
    "omni-research/Tarsier2-Recap-7b",
    "openai-community/gpt2",
    "openai-community/gpt2-large",
    "openai/clip-vit-base-patch16",
    "openai/clip-vit-base-patch32",
    "openai/clip-vit-large-patch14",
    "openai/clip-vit-large-patch14-336",
    "openai/gpt-oss-120b",
    "openai/gpt-oss-20b",
    "openai/whisper-large-v3",
    "openai/whisper-large-v3-turbo",
    "openai/whisper-medium",
    "openai/whisper-small",
    "openai/whisper-tiny",
    "opensearch-project/opensearch-neural-sparse-encoding-doc-v2-distill",
    "openvla/openvla-7b",
    "papluca/xlm-roberta-base-language-detection",
    "patrickjohncyh/fashion-clip",
    "petals-team/StableBeluga2",
    "prajjwal1/bert-tiny",
    "pyannote/embedding",
    "pyannote/segmentation",
    "pyannote/segmentation-3.0",
    "pyannote/speaker-diarization",
    "pyannote/speaker-diarization-3.0",
    "pyannote/speaker-diarization-3.1",
    "pyannote/voice-activity-detection",
    "pyannote/wespeaker-voxceleb-resnet34-LM",
    "pysentimiento/robertuito-sentiment-analysis",
    "qandos0/SentimentArEng",
    "rafaelstankiewicz/setfit-article-classifier",
    "rednote-hilab/dots.ocr",
    "rhasspy/faster-whisper-tiny-int8",
    "rinna/japanese-cloob-vit-b-16",
    "rizvandwiki/gender-classification",
    "rizvandwiki/gender-classification-2",
    "roadz/qwen3-1.7b-oxxroad",
    "sentence-transformers/LaBSE",
    "sentence-transformers/all-MiniLM-L12-v2",
    "sentence-transformers/all-MiniLM-L6-v2",
    "sentence-transformers/all-mpnet-base-v2",
    "sentence-transformers/all-roberta-large-v1",
    "sentence-transformers/bert-base-nli-mean-tokens",
    "sentence-transformers/distiluse-base-multilingual-cased-v1",
    "sentence-transformers/distiluse-base-multilingual-cased-v2",
    "sentence-transformers/msmarco-distilbert-base-tas-b",
    "sentence-transformers/multi-qa-MiniLM-L6-cos-v1",
    "sentence-transformers/multi-qa-mpnet-base-dot-v1",
    "sentence-transformers/paraphrase-MiniLM-L3-v2",
    "sentence-transformers/paraphrase-MiniLM-L6-v2",
    "sentence-transformers/paraphrase-mpnet-base-v2",
    "sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2",
    "sentence-transformers/paraphrase-multilingual-mpnet-base-v2",
    "sentence-transformers/stsb-xlm-r-multilingual",
    "shibing624/text2vec-base-chinese",
    "sileod/deberta-v3-base-tasksource-nli",
    "speechbrain/emotion-recognition-wav2vec2-IEMOCAP",
    "speechbrain/spkrec-ecapa-voxceleb",
    "sshleifer/distilbart-cnn-12-6",
    "stabilityai/sd-turbo",
    "stabilityai/sdxl-turbo",
    "stabilityai/sdxl-vae",
    "stabilityai/stable-diffusion-2-1",
    "stabilityai/stable-diffusion-3-medium-diffusers",
    "stabilityai/stable-diffusion-xl-base-1.0",
    "stabilityai/stable-diffusion-xl-refiner-1.0",
    "stable-diffusion-v1-5/stable-diffusion-inpainting",
    "stable-diffusion-v1-5/stable-diffusion-v1-5",
    "t-tech/T-one",
    "tabularisai/multilingual-sentiment-analysis",
    "tech4humans/yolov8s-signature-detector",
    "thenlper/gte-large",
    "thenlper/gte-small",
    "thomas-sounack/BioClinical-ModernBERT-large",
    "thuml/sundial-base-128m",
    "timm/ViT-B-16-SigLIP2-512",
    "timm/convnextv2_nano.fcmae_ft_in22k_in1k",
    "timm/edgenext_small.usi_in1k",
    "timm/efficientnet_b0.ra_in1k",
    "timm/mobilenetv3_large_100.ra_in1k",
    "timm/mobilenetv3_small_100.lamb_in1k",
    "timm/resnet18.a1_in1k",
    "timm/resnet34.a1_in1k",
    "timm/resnet50.a1_in1k",
    "timm/vit_base_patch16_224.augreg2_in21k_ft_in1k",
    "timm/vit_base_patch16_plus_clip_240.laion400m_e31",
    "timm/vit_small_patch16_224.augreg_in21k_ft_in1k",
    "tomh/toxigen_hatebert",
    "trl-internal-testing/tiny-Qwen2ForCausalLM-2.5",
    "trl-internal-testing/tiny-Qwen2ForSequenceClassification-2.5",
    "trl-internal-testing/tiny-random-LlamaForCausalLM",
    "trpakov/vit-face-expression",
    "tsmatz/xlm-roberta-ner-japanese",
    "unitary/toxic-bert",
    "unsloth/Meta-Llama-3.1-8B-Instruct",
    "unsloth/Meta-Llama-3.1-8B-Instruct-bnb-4bit",
    "unsloth/Qwen3-30B-A3B-GGUF",
    "unsloth/Qwen3-8B-bnb-4bit",
    "unsloth/gpt-oss-20b-BF16",
    "unsloth/mistral-7b-v0.3-bnb-4bit",
    "unslothai/1",
    "unslothai/other",
    "unslothai/repeat",
    "unslothai/vram-16",
    "unslothai/vram-24",
    "upskyy/bge-m3-korean",
    "usyd-community/vitpose-plus-base",
    "vikhyatk/moondream2",
    "vinai/phobert-base",
    "w11wo/indonesian-roberta-base-posp-tagger",
    "yiyanghkust/finbert-tone",
    "yuvalkirstain/PickScore_v1",
    "zai-org/GLM-4.5-Air",
    "zai-org/GLM-4.5V-FP8",
    "zai-org/GLM-4.6-FP8",
    "zai-org/chatglm2-6b",
    "zhihan1996/DNABERT-S",
}


def is_popular_model(model_id: str | None) -> bool:
    """
    Check if a model ID is in the popular models whitelist.

    Args:
        model_id: HuggingFace model ID (e.g., "bert-base-uncased" or "openai/whisper-large")

    Returns:
        True if the model is in the whitelist, False otherwise
    """
    if not model_id:
        return False

    # Normalize the model ID (remove any revision/branch info)
    # e.g., "author/model@main" -> "author/model"
    normalized_id = model_id.split("@")[0].strip()

    return normalized_id in POPULAR_MODELS
