Facebook Page photos: 320x320 profile, 16:9 and 2.4:1 cover
Facebook recommends a 320 x 320 Page profile picture cropped to a circle and a cover that shows 16:9 on computer, 2.4:1 on mobile. Make one safe-zone cover.

Facebook recommends a Page profile picture of 320 x 320 pixels, shown at 176 x 176 on computer and 196 x 196 on smartphones and cropped to a circle. The cover photo shows at 16:9 on computer and 2.4:1 on mobile, at least 400 x 150 pixels. So make one 16:9 cover with the important content in the centre band that survives both crops. Sume's Image API gives you the 16:9 frame directly.
The figures are from Facebook's help page, read on 2026-10-02.
What are Facebook's numbers?
The page splits profile and cover rules.
| Item | What the page says |
|---|---|
| Profile picture recommended | 320 x 320 px |
| Profile display | 176 x 176 on computer, 196 x 196 on smartphone, cropped to a circle |
| Cover photo shape | 16:9 on computer, 2.4:1 on mobile |
| Cover minimum | 400 px wide and 150 px tall |
| Fastest-loading cover | sRGB JPG, 851 x 315 px, under 100 KB |
| Logos or text | Use PNG |
How do I design for two crops?
A 16:9 image is taller than a 2.4:1 one, so the mobile crop removes the top and bottom. Keep the logo, face or product in the middle third vertically and let the edges carry background only.
Request a 16:9 cover from Sume
Use aspect_ratio 16:9 and ask for open space at the top and bottom. For the profile picture use your real logo as a 1:1 PNG, because a logo should not be regenerated.
import os, requests
r = requests.post(
"https://api.sume.com/v1/images",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
json={
"model": "sume/auto",
"prompt": "Wide cover image of this shop interior, the counter centred, empty space above and below, no text in the image",
"input_references": [
{"type": "image_url", "image_url": {"url": "https://example.com/shop/interior.jpg"}}
],
"aspect_ratio": "16:9",
},
timeout=60,
)
body = r.json()
if r.status_code == 200:
print(body["data"][0]["url"])
else: # 202: poll the job
print(body["data"]["status_url"])
Sources
Related posts
More in Use cases
- FCC: AI voices in calls are artificial under the TCPA. A checklist
The FCC's February 2024 ruling treats AI-generated voices in calls as artificial under the TCPA, so consent is needed. What to check before a TTS-driven call.
- Flow's 50 daily credits don't roll over: plan a production week
Flow refreshes 50 free credits a day after first use and drops what you skip. How to plan a week of clips, and how a Sume USD balance behaves instead.
- Flow monthly credits by Google AI plan: how many clips fit
Flow gives 200, 1,000, 10,000 or 25,000 bonus credits a month by plan. What that buys in Veo 3.1 and Gemini Omni Flash clips, and how a Sume balance differs.
- FTC Disclosures 101: why 'sp' fails and what to burn into a video
The FTC calls 'sp' and 'spon' unclear and wants video disclosures in audio and visuals. Plain wording to burn into an avatar clip with Sume caption cues.
Written by Sume