---
title: "Banners, thumbnails and charts"
url: https://phatdev.net/en/docs/media-studio/banner-thumbnail
lang: en
updated: 2026-10-20
alternate:
  vi: https://phatdev.net/docs/media-studio/banner-thumbnail
markdown: https://phatdev.net/en/docs/media-studio/banner-thumbnail.md
---

# Banners, thumbnails and charts

Part of the doc set: [Media Studio](https://phatdev.net/en/docs/media-studio.md)

> Layered banners, Featured images with an OCR text check, and benchmark charts.

Since v1.11.0 every banner is **built in separate layers** instead of letting the AI draw the whole image. The result: the laptop is always the real machine, Vietnamese text never loses its diacritics, and images are sharp at 2560px.


<div style="margin:1.6em 0"><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/ui-banner-vi-light-3840.webp" target="_blank" rel="noopener" class="pd-th-light" style="display:block;border:0" aria-label="Banners: 10+ types, styles, fonts, gradients (4K)"><img src="https://phatdev.net/uploads/p/media-studio/ui-banner-vi-light-1920.webp" srcset="/uploads/p/media-studio/ui-banner-vi-light-960.webp 960w, /uploads/p/media-studio/ui-banner-vi-light-1920.webp 1920w, /uploads/p/media-studio/ui-banner-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 760px" width="3840" height="2160" alt="Banners: 10+ types, styles, fonts, gradients" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><a href="https://phatdev.net/uploads/p/media-studio/ui-banner-vi-dark-3840.webp" target="_blank" rel="noopener" class="pd-th-dark" style="display:block;border:0" aria-label="Banners: 10+ types, styles, fonts, gradients (4K)"><img src="https://phatdev.net/uploads/p/media-studio/ui-banner-vi-dark-1920.webp" srcset="/uploads/p/media-studio/ui-banner-vi-dark-960.webp 960w, /uploads/p/media-studio/ui-banner-vi-dark-1920.webp 1920w, /uploads/p/media-studio/ui-banner-vi-dark-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 760px" width="3840" height="2160" alt="Banners: 10+ types, styles, fonts, gradients" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Banners: 10+ types, styles, fonts, gradients</figcaption></figure></div>

## Layered rendering

| Layer | Source | Notes |
|---|---|---|
| **1. Background** | AI paints the background / illustrative objects, **no text, no laptop** | Backgrounds are cached per style, so a series stays consistent and the next run uses 0 quota |
| **2. Laptop** | The manufacturer's **original photo**, background removed | Cached per image; automatically avoids the text area and picks a direction for the largest laptop |
| **3. Text and modules** | HTML with embedded fonts, captured by Chrome | Text auto-scales to fit the frame, with color emphasis from `*word*` or `highlight` |

## Featured images (article covers)

- The AI draws the **full background, the title text and topic-appropriate objects** (SSD, charger, RJ45 plug and so on); only the original laptop is composited afterwards, so the text blends into the image.
- Standard style: **a light white-blue background with extra-bold two-color text** (black/navy plus a blue gradient), matching the Hưng Phát web covers. Three layouts: `topline`, `left2`, `right2`.
- **OCR text check**: the text the AI drew is read back; numbers and model names (`45W`, `RJ45`) must match exactly, and a wrong diacritic means rejection. On failure it regenerates up to 2 times, and if it is still wrong it falls back to HTML text. Send `textBy: "html"` to force HTML text.
- The 8 CSS templates (Atelier, Photon, Premiere, Boost...) are still available with `design: "<name>"` - no quota cost, about 2 seconds per banner.

## Banner types

Review cover, two-laptop comparison, spec comparison, **component comparison** (CPU/GPU/RAM/SSD/display, in Laptop or PC form), **infographic** with 17 topics, thumbnail, knowledge cover, "A or B", tip cover, and the **product feature banner** (`feature`). Color presets favor the channel's signature blue tones.

## Benchmark charts

`POST /api/v1/chart` draws charts from your data (column, horizontal, comparison) with the blue palettes `navy` / `sky` / `indigo`; axis labels always stay horizontal and wrap when long. CPU, GPU and game FPS data comes from the NotebookCheck database.

## Stability

Rendering uses Chrome **headless-shell** (it works even when the Mac screen is off). Each render has a 75-second limit - if it hangs, Chrome is restarted and the render is retried once, so no request hangs indefinitely any more.

## Screenshots

<div style="display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px 16px;margin-top:1em"><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/featured-gaming-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="&quot;Thin and light gaming&quot; (4K)"><img src="https://phatdev.net/uploads/p/media-studio/featured-gaming-vi-light-1920.webp" srcset="/uploads/p/media-studio/featured-gaming-vi-light-960.webp 960w, /uploads/p/media-studio/featured-gaming-vi-light-1920.webp 1920w, /uploads/p/media-studio/featured-gaming-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2400" alt="&quot;Thin and light gaming&quot;" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">&quot;Thin and light gaming&quot;</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/featured-hoc-sinh-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="&quot;Laptops for high school students&quot; (4K)"><img src="https://phatdev.net/uploads/p/media-studio/featured-hoc-sinh-vi-light-1920.webp" srcset="/uploads/p/media-studio/featured-hoc-sinh-vi-light-960.webp 960w, /uploads/p/media-studio/featured-hoc-sinh-vi-light-1920.webp 1920w, /uploads/p/media-studio/featured-hoc-sinh-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2400" alt="&quot;Laptops for high school students&quot;" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">&quot;Laptops for high school students&quot;</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/featured-25-trieu-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="&quot;Laptops around 25 million VND&quot; (4K)"><img src="https://phatdev.net/uploads/p/media-studio/featured-25-trieu-vi-light-1920.webp" srcset="/uploads/p/media-studio/featured-25-trieu-vi-light-960.webp 960w, /uploads/p/media-studio/featured-25-trieu-vi-light-1920.webp 1920w, /uploads/p/media-studio/featured-25-trieu-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2400" alt="&quot;Laptops around 25 million VND&quot;" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">&quot;Laptops around 25 million VND&quot;</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/featured-gia-lap-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="&quot;Emulators&quot; (4K)"><img src="https://phatdev.net/uploads/p/media-studio/featured-gia-lap-vi-light-1920.webp" srcset="/uploads/p/media-studio/featured-gia-lap-vi-light-960.webp 960w, /uploads/p/media-studio/featured-gia-lap-vi-light-1920.webp 1920w, /uploads/p/media-studio/featured-gia-lap-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2400" alt="&quot;Emulators&quot;" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">&quot;Emulators&quot;</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/featured-pin-80-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Tip cover: &quot;Keep the battery at 80%&quot; (4K)"><img src="https://phatdev.net/uploads/p/media-studio/featured-pin-80-vi-light-1920.webp" srcset="/uploads/p/media-studio/featured-pin-80-vi-light-960.webp 960w, /uploads/p/media-studio/featured-pin-80-vi-light-1920.webp 1920w, /uploads/p/media-studio/featured-pin-80-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2400" alt="Tip cover: &quot;Keep the battery at 80%&quot;" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Tip cover: &quot;Keep the battery at 80%&quot;</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/review-helios-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Review cover: Helios Neo 14 AI (4K)"><img src="https://phatdev.net/uploads/p/media-studio/review-helios-vi-light-1920.webp" srcset="/uploads/p/media-studio/review-helios-vi-light-960.webp 960w, /uploads/p/media-studio/review-helios-vi-light-1920.webp 1920w, /uploads/p/media-studio/review-helios-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2400" alt="Review cover: Helios Neo 14 AI" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Review cover: Helios Neo 14 AI</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/review-legion-pro7-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Review cover: Legion Pro 7 RTX 5090 (4K)"><img src="https://phatdev.net/uploads/p/media-studio/review-legion-pro7-vi-light-1920.webp" srcset="/uploads/p/media-studio/review-legion-pro7-vi-light-960.webp 960w, /uploads/p/media-studio/review-legion-pro7-vi-light-1920.webp 1920w, /uploads/p/media-studio/review-legion-pro7-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2400" alt="Review cover: Legion Pro 7 RTX 5090" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Review cover: Legion Pro 7 RTX 5090</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/feature-rtx5070-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Feature banner: RTX 5070 115W (4K)"><img src="https://phatdev.net/uploads/p/media-studio/feature-rtx5070-vi-light-1920.webp" srcset="/uploads/p/media-studio/feature-rtx5070-vi-light-960.webp 960w, /uploads/p/media-studio/feature-rtx5070-vi-light-1920.webp 1920w, /uploads/p/media-studio/feature-rtx5070-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2400" alt="Feature banner: RTX 5070 115W" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Feature banner: RTX 5070 115W</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/compare-legion5-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Two-laptop comparison: Legion 5 Gen 11 vs Gen 10 (4K)"><img src="https://phatdev.net/uploads/p/media-studio/compare-legion5-vi-light-1920.webp" srcset="/uploads/p/media-studio/compare-legion5-vi-light-960.webp 960w, /uploads/p/media-studio/compare-legion5-vi-light-1920.webp 1920w, /uploads/p/media-studio/compare-legion5-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2400" alt="Two-laptop comparison: Legion 5 Gen 11 vs Gen 10" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Two-laptop comparison: Legion 5 Gen 11 vs Gen 10</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/compare-ideapad-omnibook-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Comparison: IdeaPad Slim 3 vs OmniBook 5 (4K)"><img src="https://phatdev.net/uploads/p/media-studio/compare-ideapad-omnibook-vi-light-1920.webp" srcset="/uploads/p/media-studio/compare-ideapad-omnibook-vi-light-960.webp 960w, /uploads/p/media-studio/compare-ideapad-omnibook-vi-light-1920.webp 1920w, /uploads/p/media-studio/compare-ideapad-omnibook-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2400" alt="Comparison: IdeaPad Slim 3 vs OmniBook 5" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Comparison: IdeaPad Slim 3 vs OmniBook 5</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/compare-core-ultra-ryzen-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Component comparison: Core Ultra vs Ryzen AI (4K)"><img src="https://phatdev.net/uploads/p/media-studio/compare-core-ultra-ryzen-vi-light-1920.webp" srcset="/uploads/p/media-studio/compare-core-ultra-ryzen-vi-light-960.webp 960w, /uploads/p/media-studio/compare-core-ultra-ryzen-vi-light-1920.webp 1920w, /uploads/p/media-studio/compare-core-ultra-ryzen-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2400" alt="Component comparison: Core Ultra vs Ryzen AI" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Component comparison: Core Ultra vs Ryzen AI</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/ahay-ddr4-ddr5-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="A or B: DDR4 or DDR5 (4K)"><img src="https://phatdev.net/uploads/p/media-studio/ahay-ddr4-ddr5-vi-light-1920.webp" srcset="/uploads/p/media-studio/ahay-ddr4-ddr5-vi-light-960.webp 960w, /uploads/p/media-studio/ahay-ddr4-ddr5-vi-light-1920.webp 1920w, /uploads/p/media-studio/ahay-ddr4-ddr5-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2400" alt="A or B: DDR4 or DDR5" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">A or B: DDR4 or DDR5</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/ahay-npu-ram-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="A or B: 45 TOPS NPU or 32GB RAM (4K)"><img src="https://phatdev.net/uploads/p/media-studio/ahay-npu-ram-vi-light-1920.webp" srcset="/uploads/p/media-studio/ahay-npu-ram-vi-light-960.webp 960w, /uploads/p/media-studio/ahay-npu-ram-vi-light-1920.webp 1920w, /uploads/p/media-studio/ahay-npu-ram-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2400" alt="A or B: 45 TOPS NPU or 32GB RAM" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">A or B: 45 TOPS NPU or 32GB RAM</figcaption></figure><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/infographic-rog-scar16-vi-light-3840.webp" target="_blank" rel="noopener" class="" style="display:block;border:0" aria-label="Spec infographic: ROG Strix Scar 16 (4K)"><img src="https://phatdev.net/uploads/p/media-studio/infographic-rog-scar16-vi-light-1920.webp" srcset="/uploads/p/media-studio/infographic-rog-scar16-vi-light-960.webp 960w, /uploads/p/media-studio/infographic-rog-scar16-vi-light-1920.webp 1920w, /uploads/p/media-studio/infographic-rog-scar16-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 380px" width="3840" height="2162" alt="Spec infographic: ROG Strix Scar 16" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Spec infographic: ROG Strix Scar 16</figcaption></figure></div>
