2026年11月14日

餐飲社群:素材庫、版型與發文節奏

社群餐飲

常見需求:餐廳需要有人拍攝餐點與現場,並定期經營 Instagram、Threads 這類社群,有時也會用 Canva 做簡單的圖像。這類工作的關鍵不是單張精美照片,而是素材能不能重複使用、文案會不會每次重寫。

這次測試到哪裡

caption_calendar.py 已在本機依示範菜單產出七天貼文草稿,並計算字數、附上過敏原提示。沒有登入 Instagram 或 Threads,也沒有在 Canva 實際排版。平台的圖片尺寸與字數上限請以各平台當下介面為準。

三層怎麼分工

層做什麼
拍攝與建庫為每道常賣的餐點留下可重用的實拍:成品、細節、現場。
版型與文案固定字級、顏色與一段話的結構;用腳本先產出草稿再人工改。
發布依日曆發文,並核對當日是否供應、價格與過敏原是否正確。

素材庫先於單張美圖

建議每道餐點至少三張實拍:整道菜、特寫、現場或手部動作。檔名用餐點名稱,不要用 IMG_3829。不要用未授權的圖庫,也不要在沒有標示的情況下,把生成的餐點圖當成店裡真的出餐。

Canva 可用來做固定版型。官方定價頁目前列出免費版、Pro、商業版與大型企業等方案,另有教育與非營利相關說明;各方案功能與價格會調整,請以 Canva 台灣定價頁 為準。本篇不引用可能過期的金額。使用範本與素材時,請確認該元素的授權是否允許你的商業用途。

用菜單產出一週草稿

menu.csv
item,feature,allergen
番茄牛肉麵,湯頭熬過八小時,麩質
季節沙拉,當日現切蔬菜,堅果
檸檬紅茶,不另外加糖,
caption_calendar.py
#!/usr/bin/env python3
"""依菜單產出一週貼文草稿,並計算字數。平台字數上限請以各平台當日規則為準。"""

from __future__ import annotations

import argparse
import csv
import json
import sys
from pathlib import Path

DAYS = ["週一", "週二", "週三", "週四", "週五", "週六", "週日"]


def main() -> int:
    parser = argparse.ArgumentParser(description="餐飲貼文草稿")
    parser.add_argument("input", type=Path)
    parser.add_argument("-o", "--output", type=Path, required=True)
    args = parser.parse_args()
    with args.input.open(encoding="utf-8-sig", newline="") as handle:
        items = list(csv.DictReader(handle))
    if not items:
        print("菜單是空的。", file=sys.stderr)
        return 1
    posts = []
    for i, day in enumerate(DAYS):
        item = items[i % len(items)]
        allergen = item.get("allergen") or "無特別標示"
        caption = (
            f"{item['item']}。{item['feature']}。"
            f"過敏原資訊:{allergen}。實際供應與價格以店內當日為準。"
        )
        posts.append(
            {
                "day": day,
                "item": item["item"],
                "caption": caption,
                "characters": len(caption),
                "photo_note": "建議用同一餐點的實拍,不要用未授權的圖庫或未標示的生成圖。",
            }
        )
        print(f"{day} {item['item']}({len(caption)} 字)")
    args.output.parent.mkdir(parents=True, exist_ok=True)
    args.output.write_text(json.dumps(posts, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
    return 0


if __name__ == "__main__":
    sys.exit(main())

執行

python caption_calendar.py menu.csv -o week.json

草稿會提醒「實際供應與價格以店內當日為準」。發文前記得再對一次。若涉及他人肖像(客人、員工),需有同意。音樂與後製素材的權利也要自行確認。

常見錯誤

下載