Skip to content

seasu/Magic-Sticker

Repository files navigation

Magic Sticker — AI 一鍵產 LINE 貼圖

選一張照片、挑你要的情緒、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. ✅ 全部滑完 → 貼圖套組完成!

Pro 自訂情緒模式

1. 📷 選照片
        ↓
2. 🎨 選風格(或輸入自訂風格描述)
        ↓
3. 💬 輸入自訂情緒描述 → 確認描述,開始 AI
        ↓
4. 🃏 編輯畫面只顯示 1 張卡片:
     右滑 → 花 1 點生成 1 款專屬貼圖

Pro 全客製模式(自訂風格 + 自訂情緒)

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 設定

  1. Firebase Console 建立或連接專案
  2. 下載 google-services.json 放至 android/app/
  3. 下載 GoogleService-Info.plist 放至 ios/Runner/
  4. 部署 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 儲存相簿

Pro 自訂模式路由矩陣

自訂風格 自訂情緒 模式 Tinder 滑卡 生成張數
標準模式 ✅ 顯示全部 1–12 張
自訂風格模式 ✅ 顯示全部 1–12 張
自訂情緒模式 ✅ 只顯示 1 張 1 張
全客製模式 ✗ 跳過,確認頁 1 張

LINE Creators Market 貼圖規格

項目 規格
尺寸 370×320 px
格式 PNG(透明背景)
單檔上限 1 MB
最少數量 8 張(本 App 每次最少可產 1 張)

儲存後可直接至 LINE Creators Market 上架。


版本歷史

詳見 PRD.md


開發指令集

詳見 CLAUDE.md(AI 開發規範)


License

MIT

About

選一張照片,AI 自動生成 LINE 貼圖 — 12 種風格 × 24 種情緒,Tinder 滑卡挑選,一鍵存相簿

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors