🤖 AI Text Summarizer
Summarize long texts instantly using AI that runs in your browser. 100% private — your text never leaves your device. Free AI summarizer — no signup.
What AI Text Summarizer Does
This tool does not read your article and decide what matters. It runs Xenova/distilbart-cnn-6-6, a distilled BART model fine-tuned on the CNN/DailyMail news dataset, entirely inside your browser tab, and generates a new summary word by word — a technique called abstractive summarization. That is a different thing from extraction, which is what most "summarizer" tools online actually do: pull out three sentences that already existed in the text. This model writes sentences that do not appear anywhere in your original text, in a style shaped by the news articles it was trained on. That is why summaries sometimes read fluently but subtly restate a fact more strongly, or more vaguely, than the source did — the model is generating plausible continuation text, not quoting.
BART itself is a sequence-to-sequence transformer: an encoder reads the whole input and builds a representation of it, and a decoder generates the output one token at a time, at each step attending back to that representation and to what it has written so far. DistilBART is a smaller, faster version of the original bart-large-cnn checkpoint, built by removing half the decoder layers (Sshleifer's distillation recipe) and shrinking further so the ONNX-converted weights this page downloads total roughly 100 MB — small enough to fetch once and run on ordinary hardware via WebAssembly, no server involved.
The one hard number that governs everything the tool does is the model's own config: max_position_embeddings is 1024. That is a token limit, not a word or character limit, and it applies to the input the encoder can see, not the output. At roughly 1.3 English BPE tokens per word, 1024 tokens is about 750-800 words. Anything past that is invisible to the model — the tokenizer this pipeline calls truncates silently by design (truncation: true is set internally by the @huggingface/transformers library), so a 3,000-word article that gets summarized will be summarized from its first 750 words only, with everything after that discarded before generation even starts. This page now enforces and states that limit itself rather than letting it happen invisibly.
How to Use AI Text Summarizer
- Paste or type the text you want to summarize
- Click "Summarize with AI" (first use downloads the AI model)
- Wait for the AI to process your text
- View and copy the generated summary
Formula Used by AI Text Summarizer
Converting the input word count to an approximate token count
tokens ≈ words × 1.3
- words
- the number of whitespace-separated words in the pasted text
- 1.3
- the rough BPE tokens-per-word ratio for ordinary English prose with this tokenizer; technical text with long or unusual words tokenizes higher
Worked example
A pasted article of 900 words.
- 900 × 1.3 ≈ 1,170 tokens
- The model's limit is 1,024 tokens (max_position_embeddings, from the model's own config.json)
- 1,170 > 1,024, so roughly the final 11-13% of the article — about the last 100-150 words — is truncated before the model ever reads it
Result: A 900-word article is summarized from its first ~780 words. If the conclusion or a key caveat sits in the last two paragraphs, it will not appear in the summary and the summary will not say it was left out unless the tool tells you, which is why this page now caps input at 750 words with a visible notice rather than truncating quietly.
What determines the output length
The old version of this page passed a fixed max_length: 150, min_length: 30 to every input regardless of size. A fixed minimum forces the model to keep generating past the point where the source has anything left to compress, which is a known way these models produce repeated or padded text on short inputs.
| Input length | min_length used | max_length used | Why |
|---|---|---|---|
| Under 12 words | Rejected before running | n/a | There is nothing to compress; a 30-token floor would force invented content |
| 12-60 words | 8-9 tokens | 15-40 tokens | Scaled to roughly 15% / 50% of the input word count so the output cannot outgrow the source |
| 200 words | 30 tokens (capped) | 100 tokens | Mid-length input; the scaled formula reaches the tool's own ceiling |
| 750+ words (the cap) | 30 tokens (capped) | 150 tokens | Maximum output length regardless of input size |
How to Read Your Result
A fluent summary is not necessarily an accurate one
Abstractive models are graded in research on ROUGE overlap with a reference summary, not on factual accuracy, and it is well documented in the summarization literature that seq2seq models can state something with more certainty than the source did, or attribute a claim to the wrong subject, while still reading smoothly. Treat the output as a fast first pass to orient yourself in a long document, then verify any specific number, date, or attribution against the original text before repeating it.
The cutoff is at the model, not at your article
If your source runs past 750 words, the summary reflects only the part the model saw. This matters most for documents where the conclusion, a caveat, or a reversal comes late — a news article whose final paragraph adds important context, a report whose recommendations are at the end. The word counter and notice on this page exist so you know when that has happened, but no summarizer of this kind can be told to "read the whole thing" past its architecture's limit; the fix is to summarize the document in sections.
The model was trained on news writing
CNN/DailyMail is professionally edited news prose with a fairly consistent structure (lead paragraph, supporting detail, quotes). Feed it something structurally different — a legal contract, a scientific abstract, a casual chat log, poetry — and the output will still be fluent, because generation does not require the input to resemble training data, but the summary is more likely to miss the passage's actual point or emphasize the wrong sentence, because the model has not learned what "important" looks like in that genre.
Limitations & Accuracy Notes
- Reads at most about 750-800 words (1,024 tokens) of input. Longer text is truncated before the model sees it; this page now enforces that limit and tells you, rather than silently summarizing only the opening section.
- Abstractive, not extractive — it writes new sentences rather than selecting from yours. It can therefore rephrase a fact with different certainty or emphasis than the source stated, and it will never produce a direct quote unless one happens to reappear in generation.
- Trained on English news writing (CNN/DailyMail). It has no grounding in legal, medical, scientific, or conversational register, and its sense of "what matters" reflects news structure, not your document's structure.
- English only. It will generate output for other languages, and that output should not be trusted.
- Not fact-checked against your source. It can misstate a number, date, or name that appeared correctly in your text; always verify anything specific before repeating it.
- Very short input (under about 12 words) is refused outright, because forcing a 30-token minimum output from a handful of words produces padded or repeated text rather than a real compression.
- About 100 MB is downloaded the first time the tool runs. It is cached by the browser afterward, but the first run needs a working connection to the model host.
Frequently Asked Questions
How does the AI summarizer work?
Is my text private?
Which browsers support this?
References & Further Reading
- Xenova/distilbart-cnn-6-6 model card — The exact model this page loads, including its config.json — max_position_embeddings: 1024 is the source of the 750-800 word input limit stated above
- sshleifer/distilbart-cnn-6-6 (original PyTorch checkpoint) — The source checkpoint the browser version was converted from; _name_or_path in the Xenova config points here
- BART paper (arXiv:1910.13461) — The encoder-decoder architecture and pretraining approach the model is built on
- Transformers.js documentation — The library that runs the model in-browser via WebAssembly/ONNX, including the tokenizer truncation behavior this page now accounts for