選一張照片、挑你要的情緒、Gemini AI 自動生成專屬 LINE 貼圖,Tinder 滑卡逐一製作,一鍵存入相簿。 v3.9.0 起支援 Pro 自訂模式:輸入任意風格描述與情緒描述,生成完全屬於你的一款貼圖。
| 功能 | 說明 |
|---|---|
| 📷 選取照片 | 從相簿選取或直接拍攝任意人物/寵物/物件照片 |
| 🎨 12 種貼圖風格 | Q版卡通、Pop Art、像素風、素描、水彩、寫實照片、ゆるい塗鴉、昭和漫畫、黏土捏塑 等共 12 種 |
| ✍️ Pro 自訂風格 | 輸入任意文字描述(如「賽博龐克霓虹」),AI 依此生成專屬風格 |
| 😄 24 種情緒選擇 | 從 24 種情緒中選 1–12 種,自由搭配你想要的貼圖套組 |
| 💬 Pro 自訂情緒 | 輸入任意情緒描述(如「被截止日期追殺的崩潰感」),AI 生成 1 款專屬貼圖 |
| 🌟 全客製模式 | 同時使用自訂風格+自訂情緒,確認 1 點費用後直接生成 1 張獨一無二的貼圖 |
| 🤖 延遲 AI 分析 | 進入編輯畫面即顯示佔位卡片,右滑時才觸發 Gemini 分析(首次免費),無須等待預載 |
| 🃏 Tinder 滑卡挑選 | 右滑生成 ❤️(耗 1 點)左滑跳過 ✕,逐張確認後才花點數 |
| ✏️ 即時編輯 | 點圖進入編輯器:文字、字型、字體大小、文字位置、配色、背景色(9 種含透明) |
| 💾 一鍵儲存 | 存入相簿,符合 LINE Creators Market 規格(370×320 px PNG) |
| 📜 生成紀錄 | 自動保存所有生成過的貼圖(最多 200 筆),方便回顧與再下載 |
1. 📷 選照片(相簿或相機)
↓
2. 🎨 選外框形狀(圓形 / 方形)+ 選風格(12 種)
↓
3. 😄 選情緒(1–12 種,預設 8 種)
↓
4. 🃏 進入編輯畫面(立即顯示,無需等待):
右滑 → AI 分析(首次免費)→ 花 1 點生成這張貼圖 → 自動儲存相簿
左滑 → 跳過這種情緒
↓
5. ✅ 全部滑完 → 貼圖套組完成!
1. 📷 選照片
↓
2. 🎨 選風格(或輸入自訂風格描述)
↓
3. 💬 輸入自訂情緒描述 → 確認描述,開始 AI
↓
4. 🃏 編輯畫面只顯示 1 張卡片:
右滑 → 花 1 點生成 1 款專屬貼圖
1. 📷 選照片
↓
2. ✍️ 輸入自訂風格描述
↓
3. 💬 輸入自訂情緒描述
↓
4. 📋 確認頁:預覽風格+情緒描述,確認消耗 1 點
↓
5. ✨ 直接生成 1 張完全客製的貼圖
| 動作 | 點數消耗 |
|---|---|
| 分析照片+生成文案概念(首次觸發) | 免費 |
| 生成一張貼圖圖片(標準 / 自訂情緒) | 1 點 |
| 全客製模式生成(自訂風格+情緒) | 1 點 |
| 生成失敗(API 錯誤) | 自動退還 |
取得點數:
- 每日看廣告(每日上限 3 次)
- 登入獎勵
- 購買點數包:嘗鮮包 8 點 NT$30 / 創作者包 24 點 NT$79 / 達人包 80 點 NT$199
- Pro 自訂單次包:NT$49(一次性購買,可無限次使用全客製模式)
- Flutter 3.19+
- Dart 3.3+
- Android 8.0+ (
minSdkVersion 26) / iOS 15.0+
# 安裝依賴
flutter pub get
# Debug 模式(使用 Firebase Cloud Functions,金鑰由 Secret Manager 管理)
flutter run
# Release APK
flutter build apk --release
# Release AAB(上架 Google Play)
flutter build appbundle --release- 在 Firebase Console 建立或連接專案
- 下載
google-services.json放至android/app/ - 下載
GoogleService-Info.plist放至ios/Runner/ - 部署 Cloud Functions:
cd functions && firebase deploy --only functions
Flutter (Dart)
├── 狀態管理:Riverpod (NotifierProvider / FutureProvider)
├── 路由:go_router
├── AI 生成:Gemini 2.5 Flash(透過 Firebase Cloud Functions 代理,不在 App 內存金鑰)
├── 圖片儲存:gal
├── 字型:google_fonts
├── 廣告:Google Mobile Ads
├── 付款:in_app_purchase
├── Loading 動畫:GIF(cat-research-loading.gif / cat-drawing-loading.gif)
│ + ProCustomLoadingWidget(全客製金色漸層動畫)
└── 監控:Firebase Crashlytics + Analytics
- Gemini API Key 存於 Cloud Functions Secret Manager,App 端完全不持有金鑰
- Cloud Functions 以 Firebase Auth 驗證用戶身份,防止未登入呼叫
- Firebase App Check(Android: Play Integrity)保護所有 Cloud Functions 與 Firestore 存取
- Firestore 以 Security Rules 確保使用者只能讀寫自己的資料
選圖 → Resize ≤ 768px (Flutter 端,Gemini 1-tile 邊界)
→ 進入 Editor(立即顯示 N 張佔位卡片)
[標準 / 自訂情緒模式]
→ 使用者右滑觸發生成:
┌─ 若尚未分析(首次):
│ → generateStickerSpecs (Cloud Function, 免費)
│ └─ 驗證 App Check + Auth → Gemini 2.5 Flash Text → N 組規格(快取)
└─ generateStickerImage (Cloud Function, 扣 1 點)
└─ 驗證 App Check + Auth → Transaction 原子扣點 → Gemini 2.5 Flash Image → PNG
[全客製模式 — isDirectGenerateMode]
→ 直接進入確認頁(預覽風格+情緒描述、告知消耗 1 點)
→ 使用者確認 → generateStickerSpecs (sublist to 1) → generateStickerImage (扣 1 點)
→ 跳過 Tinder 滑卡,直接進入完成頁
→ RepaintBoundary 合成最終貼圖 → Gal 儲存相簿
| 自訂風格 | 自訂情緒 | 模式 | Tinder 滑卡 | 生成張數 |
|---|---|---|---|---|
| ✗ | ✗ | 標準模式 | ✅ 顯示全部 | 1–12 張 |
| ✅ | ✗ | 自訂風格模式 | ✅ 顯示全部 | 1–12 張 |
| ✗ | ✅ | 自訂情緒模式 | ✅ 只顯示 1 張 | 1 張 |
| ✅ | ✅ | 全客製模式 | ✗ 跳過,確認頁 | 1 張 |
| 項目 | 規格 |
|---|---|
| 尺寸 | 370×320 px |
| 格式 | PNG(透明背景) |
| 單檔上限 | 1 MB |
| 最少數量 | 8 張(本 App 每次最少可產 1 張) |
儲存後可直接至 LINE Creators Market 上架。
詳見 PRD.md
詳見 CLAUDE.md(AI 開發規範)
MIT