,

Which Model for What: a Hugging Face Model Map for Text, Vision, Audio and Video (Hugging Face Series, Part 17)

A task-to-model map for Hugging Face: which model family to use for chat, search, transcription, speech, captioning, image and video, with sizes, licenses, the right library, and the GPU it needs.

12 minutes

Read Time

Hugging Face Series · Part 17 of 17
TL;DR: Pick by task and modality first, then size, then check the license and the hardware it needs. This is a map from what you want to do (chat, search, transcribe, speak, caption, generate an image or a video) to the model families on the Hub, the library that runs them, and a rough GPU bill. The win for a platform team is a short shortlist, so you are not provisioning for forty different models and twelve different licenses.
Who this is for: The infra or platform engineer handed a request like make this transcribe our calls or put a chatbot on our docs, who needs to know which model to even reach for. No model-training background assumed.
Tested on: Python 3.11+, transformers 5.x, diffusers and sentence-transformers, on a single NVIDIA GPU (CUDA 12) for the runnable parts. Model availability and licenses on the Hub move fast, especially for audio and video, so confirm on each model page before you commit.

Nobody files a ticket asking for a transformer. They ask you to transcribe a pile of support calls, put a chat box on the internal docs, turn product copy into a thumbnail, or caption ten thousand images. Every one of those is a different kind of model, a different library, and a very different GPU bill. The Hub has well over a million models. The skill is not knowing all of them. It is knowing the dozen families that cover almost every request, and picking a size that fits the hardware you already have.

How many kinds of model are there?

Fewer than the million-model count suggests. Almost every request maps to one of eight buckets, split by what goes in and what comes out. Get the bucket right and you have narrowed a million models to a handful of families.

Eight buckets that cover almost every requestText (LLM)chat, summarize, RAGEmbeddingssearch, retrievalSpeech to texttranscriptionText to speechvoice, narrationVision-languagecaption, OCR, doc Q&AImage generationtext to imageVideo generationtext or image to videoVision (classic)detect, classifyPick the bucket, and a million models become a dozen families.
The eight modality buckets. Most real requests are one of these, occasionally two chained together.

Pick by task, not by model name

The fastest way to the wrong answer is to start from a model everyone is talking about and look for a use. Start from the request instead. What is the input, what is the output, and does it need to run offline or commercially? Those three questions land you on a family before you ever open a model page.

From request to familyWhat is the output?textLLM, or embeddings + LLM for RAGaudioWhisper in, a TTS model outimageVLM in, diffusion model outvideovideo diffusion (diffusers)Then ask:commercial use? gated? offline?that decides license and size
Output first, then the compliance and sizing questions. The second box is where a platform team earns its keep.

The model map

One table to keep near your desk. Families are examples, not the only option, and sizes are the ranges you will actually meet on the Hub. Treat the hardware column as a starting point, not a guarantee; quantization (see Part 13) moves these numbers down.

TaskModalityFamilies on the HubSize rangeHF libraryRough hardware
Chat, summarize, RAGText (LLM)Llama, Qwen, Mistral0.5B to 235B (MoE)transformers, TGI1x24GB for ~8B; multi-GPU for 70B+
Search, retrievalEmbeddingsBGE, E5, all-MiniLM22M to 560Msentence-transformersCPU or any small GPU
TranscriptionSpeech to textWhisper, distil-whisper39M to 1.55Btransformerssmall GPU, CPU for tiny
Voice, narrationText to speechKokoro, Parler-TTS, XTTS, F5-TTS82M and uptransformers, model repossmall to mid GPU
Caption, OCR, doc Q&AVision-languageQwen-VL, InternVL, Llama 42B to 235B (MoE)transformers1x24GB for ~7B
Image generationText to imageSDXL, SD 3.5, FLUX.12.5B to 12Bdiffusers1×12 to 24GB
Video generationText or image to videoWan, HunyuanVideo, LTX, CogVideoX, Mochilargediffusershigh VRAM, often multi-GPU
Detect, classify, segmentVision (classic)DETR, RT-DETR, ViTsmalltransformersCPU or small GPU
The model map. Scroll sideways on mobile. Sizes and hardware are starting points; confirm on each model page.

Text and retrieval: the two you will use most

Most internal requests are text. For chat, summarization, and the generation half of a RAG system, the open workhorses are Llama, Qwen, and Mistral. Qwen and Mistral ship under Apache-2.0, so commercial use is clean; Llama is gated and carries its own community license you must accept. For a first deployment, an 8B-class model at 4-bit on a single 24GB card covers a surprising amount of ground. Reach for 70B and up only when a smaller model visibly fails your quality bar, because the hardware cost is not linear.

The other half of RAG is retrieval, and that is embeddings, not an LLM. A small embedding model like BGE or all-MiniLM turns text into vectors for search; it runs on CPU or a tiny GPU and costs almost nothing to host. People routinely reach for a giant LLM when the actual job, find the relevant passages, belongs to a 100MB embedding model. For the concept behind this split, see the GenAI series; for running the model itself, Part 4.

Speech: transcription is easy, the voice side has license traps

Speech to text is the friendliest corner of the Hub. Whisper is MIT-licensed, runs from a tiny 39M checkpoint up to large-v3, and the distilled variants cut latency hard. One pipeline call and you are transcribing.

pip install transformers torch

from transformers import pipeline
asr = pipeline('automatic-speech-recognition', model='openai/whisper-large-v3')
print(asr('call.mp3')['text'])
# -> the transcribed text
# Fails with a CUDA out-of-memory error? Drop to model='openai/whisper-small'.

The voice side, text to speech, is where licenses bite. The quality leaders for cloning, XTTS-v2 and F5-TTS, are non-commercial (CPML and CC-BY-NC). If you ship them in a product, that is a compliance problem, not a footnote. For commercial English at scale, Kokoro is tiny (around 82M) and Apache-2.0; Parler-TTS, from Hugging Face itself, is also Apache-2.0. Decide the license before anyone falls for a demo voice.

Gotcha: the best-sounding open TTS and several video models are non-commercial or revenue-capped. A model can be free to download and still illegal to ship. Read the license file, not the headline.

Vision: understanding versus generation

Two very different jobs share the word vision. Understanding an image, captioning, OCR, document question answering, is a vision-language model. Qwen-VL and InternVL lead the open field, run from small 2B sizes up to large MoE variants, and most ship under Apache-2.0, which keeps commercial use simple. A 7B VLM at 4-bit fits a single 24GB card and handles bulk captioning offline.

Generating an image is a diffusion model through the diffusers library, a different stack entirely. SDXL is the broad, well-supported default. SD 3.5 improves quality and is free under a revenue threshold. FLUX.1 splits cleanly: the schnell variant is Apache-2.0 and fine to ship, the dev variant is non-commercial and gated. For an infra reader the takeaway is that an image model is its own deployment, not an add-on to your LLM service.

Video: the most expensive box on the map

Video generation is the fastest-moving and hungriest corner. As of 2026 the open options through diffusers include Wan, HunyuanVideo, LTX, CogVideoX, and Mochi. Wan and Mochi are Apache-2.0; HunyuanVideo is commercial up to 100 million monthly users, then needs a separate license; LTX requires a commercial agreement with Lightricks for commercial use. Whatever you pick, expect high VRAM and often multiple GPUs, and expect the leader to change within a quarter. If video is a real requirement, validate the current model the week you build, not from a list like this one.

What this means if you run the platform: modality is a capacity decision. An embedding service fits on a CPU box; a video model can saturate a multi-GPU node and a license review at once. If you let every team pick its own model, you are sizing for the worst case of all of them. Publish a short approved list per modality, with the license already cleared, and make exceptions go through you.

Same task, three sizes

Within a modality, size is the lever that sets your bill. For text, the three rungs look like this.

Cheaper and faster  →  slower and pricier, but smarter1B to 3B1×8 to 12GBedge, cheap, weaker7B to 8B1×16 to 24GBthe workhorse70B and upmulti-GPU or heavy quantbest quality, costlyStart at the smallest rung that clears your quality bar, then size the GPU to it.
The size spectrum for text. The same shape holds for VLMs and image models: bigger is better and far more expensive.

Licenses at a glance

ModelLicenseShip it commercially?
Qwen3, Qwen-VL, Mistral, MixtralApache-2.0Yes
Llama 4Llama Community LicenseYes, with conditions, gated
Whisper, BGE, all-MiniLMMIT / Apache-2.0Yes
SD 3.5Stability Community LicenseFree under $1M revenue
FLUX.1 schnell / devApache-2.0 / non-commercialschnell yes, dev no
Kokoro, Parler-TTSApache-2.0Yes
XTTS-v2, F5-TTSCPML / CC-BY-NCNo, non-commercial
Wan, MochiApache-2.0Yes
HunyuanVideoTencent Community LicenseYes, up to 100M users
LTX-VideoLightricks licenseSeparate agreement
Licenses change; verify on the model page. The pattern holds: the most capable open model in a category is often the one with strings attached. Ties to Part 15.

Code, and models built for one job

If the task is writing or completing code, the general LLMs already handle a lot, but code-specialized models live on the Hub and often punch above their size for that one job. Qwen and others ship dedicated code variants, and they run on the same transformers and TGI path as any text model, so nothing changes for you operationally. The rule of thumb: pick a code-tuned model when the workload is mostly code, and a general model when it is mixed, because a code model can be weaker at ordinary prose. The same logic repeats across the map, a model tuned for one narrow job usually beats a generalist at that job and loses everywhere else, which is exactly why the task-first approach pays off.

When one model covers several jobs

Splitting by task is the default, not a law. A capable vision-language model reads an image and answers questions about it, so a single VLM can cover captioning, OCR, and document Q&A at once rather than three services. A modern LLM handles chat, summarization, and extraction from one deployment. The trade is real: a multi-purpose model is bigger and pricier to run than a narrow one, and it ties several workloads to one upgrade cycle and one license. Consolidate when the jobs are close and the volume is modest; keep them separate when one job is heavy enough to deserve its own sizing and its own scaling. That call is yours to make, because you own the capacity.

Trust your data over the leaderboard

Public leaderboards are a starting filter, not a verdict. They rank on tasks that may not match yours, and the top of an open leaderboard moves month to month, especially in image, audio, and video. Shortlist two or three candidates from a table like the one above, then run them against a sample of your real inputs at your real batch size. The model that wins on your data, at your latency, under a license you can ship, is the one that matters, not the one leading a benchmark the week you happened to look. Write the result down so the next person inherits a decision, not a search.

How to choose, in order

Why pick task-first: it collapses a million models to a family in one question and stops you sizing hardware for a model you do not need. When not to: if one team needs several jobs at once, a single capable VLM can sometimes cover image plus text and save you running two services, so do not force a split that the workload does not want. What to validate first, every time: that the license fits your use, that the model fits your VRAM with headroom at your real batch size, and that any gated model has an access token wired into your pull pipeline before launch day.

Worked example

Request: caption 50,000 product images, runs internally, must be commercial-safe. Map it: image in, text out, so a vision-language model. Pick a 7B Qwen-VL at 4-bit; it fits a single 24GB card, runs offline, and is Apache-2.0, so no license review. Provision one GPU, batch the images, and if throughput is short, scale out with a second replica the way Part 12 handles serving. No 70B model, no multi-GPU node, no legal ticket.

Where I would start

Pick the smallest model that clears your quality bar, confirm the license allows your use, and size the GPU to that model rather than the other way round. Keep a one-page approved list per modality so the next request is a lookup, not a research project. Start from the table above, open the two or three model pages it points to, and read the license and the model card (that habit is Part 2) before anything downloads.

Hugging Face Series · Part 17 of 17
« Previous: Part 16  |  Hugging Face Guide  |  Series complete

References

About The Author


Discover more from Journal of Intelligent Infrastructure – By Dr Pranay Jha

Subscribe to get the latest posts sent to your email.

Architect’s Toolkit

About the Author

Dr. Pranay Jha is a Cloud and AI Consultant with 18+ years of experience in hybrid cloud, virtualization, and enterprise infrastructure transformation. He specializes in VMware technologies, multi-cloud strategy, and Generative AI solutions. He holds a PhD in Computer Applications with research focused on Cloud and AI, has published multiple research papers, and has been a VMware vExpert since 2016 and a VMUG Community Leader.

Discover more from Journal of Intelligent Infrastructure - By Dr Pranay Jha

Subscribe now to keep reading and get access to the full archive.

Continue reading