あなたの顔の災害レベルは?
ワンパンマン世界観の怪人協会風アーキビストAIが、あなたの顔を測って怪人の指名手配ポスターを発行する iOS アプリ。
App Store · 公式サイト · プライバシーポリシー
「怪人メーター」は iPhone のカメラとオンデバイス AI だけを使って動く、半分ジョーク・半分マジな顔測定アプリです。
- 顔を一枚撮ると、Vision フレームワークが顔のパーツ比率を解析
- 比率から 5段階の災害レベル(狼 / 虎 / 鬼 / 竜 / 神)を判定
- Apple Intelligence(Foundation Models) がワンパンマン世界観風の 怪人コードネーム + 2行紹介文 を生成
- レトロ VHS テイストの 指名手配ポスター(1080×1920px) にまとめて、SNS にそのままシェア可能
データはすべて端末内で完結。LLM もオンデバイス。サーバー送信ゼロ。
上のバナーは実機スクリーンショットを左から並べた1ループです。
| # | 画面 | 内容 |
|---|---|---|
| ① | 怪人図鑑 | 起動直後に開ける、災害レベル 5段階のリファレンス。狼級から神級までのイラスト+短い解説で、自分の判定結果を読み解く下地に。 |
| ② | 顔の測定 | フロントカメラに顔をかざすと、Vision がランドマークを検出し、目/鼻/口/顔長の比率を即時オーバーレイ。比率からスコアが計算され、シャッターで確定。 |
| ③ | 怪人協会 分析中 | シャッター後の小休止。Apple Intelligence が裏でコードネームと図鑑文を生成し、フォールバック分岐も同時に評価。 |
| ④ | WANTED ポスター | コミック効果+ハーフトーン化された顔写真の上に、生成コードネーム・図鑑文・等級スタンプ・賞金額を組み版。タップひとつでシェア可能。 |
| 🎯 顔の比率測定 | Vision のランドマーク検出で目/鼻/口/顔長の比率を取得 |
| 🤖 AI 怪人ネーミング | Apple Intelligence で ko / ja / en のいずれかでコードネームと紹介文を即時生成 |
| 🛟 オフラインフォールバック | LLM 未対応端末や失敗時のために、言語ごとに 100 件の手書き怪人カタログを内蔵 |
| 🎨 VHS ポスターレンダリング | デバイス非依存の固定キャンバスで、どの端末でも同じ仕上がり |
| 🌐 3言語対応 | 韓国語 / 日本語 / 英語 — UI もポスターも完全多言語化 |
| 🔒 プライバシー最優先 | カメラ画像も AI 生成結果もすべてオンデバイス処理。アカウント不要 |
iPhone で QR をスキャン、もしくは App Store リンク から。
iOS 26.0+ / Xcode 26 / Swift 6 / Tuist 4.155
Xcode プロジェクトは Tuist で生成します。
brew install tuist mise
mise install
tuist install
tuist generate
open FaceReader.xcworkspaceProject.swift または Tuist.swift を変更したら、再度 tuist generate を実行してください。
FaceReader
├── App/ @main エントリポイント
├── Core/ ロジック層
│ ├── FaceMeasureSession Vision ラッパー & 比率計算
│ ├── MonsterDescriber Apple Intelligence(@Generable)
│ └── FallbackMonsterLibrary JSON ロード式オフラインカタログ
├── Features/ TCA features(Root, FaceMeter, Settings…)
├── UI/ 共有 SwiftUI スタイル(テーマ/フォント/ポスター)
└── Global/Resource/ Assets / Fonts / FallbackMonsters JSON
- 状態管理: The Composable Architecture (TCA)
- AI 層:
FoundationModels(オンデバイス) - 画像処理: AVFoundation + Vision + CoreImage(
CIComicEffect) - モジュール構成:
FaceReaderCore/FaceReaderUI/FaceReaderFeaturesの3つの静的フレームワーク
オンデバイス LLM の出力ブレを抑えるため、以下を採用:
- 英語メタ指示 + ターゲット言語出力 — 非英語(特に韓国語)でも構造化出力が安定
@Generable構造体 — コードネームと説明を別フィールドで受け取り- 5秒タイムアウト + フォールバック — 失敗・空応答・未対応端末はすべて JSON カタログ抽選
- 身体描写の抑制 — 顔比率は
Vibeヒント1個だけ・直接記述禁止指示
詳細は FaceReader/Core/MonsterDescriber.swift を参照。
main ブランチへの push または v* タグ push で、GitHub Actions が macOS ランナーで archive → IPA → TestFlight アップロードを自動実行します。
git push origin main # 即デプロイ
# あるいは
git tag v3.0.1 && git push origin v3.0.1ワークフロー: .github/workflows/deploy.yml / Fastfile: fastlane/Fastfile
ヘッドレス CI で安定動作させるための調整:
-skipPackagePluginValidation/-skipMacroValidation— Swift マクロの "Trust" GUI プロンプト回避- 静的フレームワークに
CODE_SIGNING_ALLOWED=NO— 自動プロビジョニングが全 78 ターゲットへ伝播するのを防止 - App アイコンは RGB(α なし) — actool の検証エラー回避
| 名前 | 経路 |
|---|---|
| swift-composable-architecture | SPM |
| swift-dependencies | SPM |
| swift-case-paths | SPM |
FaceReaderLocalization |
ローカル Packages/ |
バンドル同梱フォント:
- Jua-Regular (韓国語ポップ体)
- Yusei Magic (日本語マンガ体)
- Kosugi Maru (日本語フォールバック)
- SangSangAnt (韓国語フォールバック)
- カメラ画像は 端末内 で処理し、サーバーに送信しません
- AI 生成(Apple Intelligence)もすべて オンデバイス で完結
- アカウント登録・トラッキング・サードパーティ SDK は使用していません
完全版 → プライバシーポリシー
| Coby (김도영) |
|---|
![]() |
問い合わせ: coby5502@gmail.com

