短い答え: LM Studioを選ぶとAI処理はユーザーのMac上またはユーザーが指定したローカルAPIで行われます。Cloudflare Workers AIを選ぶと、AI解析に必要なプレビュー画像、ファイル名、解析テキスト、検索文などがCloudflareへ送信されます。Cloudflare送信前にはアプリ内で明示確認します。
AI解析でできること
AI解析は、大量の動画・画像を見て整理するときの補助機能です。メディアの内容を説明する短いキャプション、カテゴリ、被写体、色、雰囲気、整理先の候補、圧縮候補、要確認フラグ、ファイル名候補などを作ります。結果は検索、絞り込み、移動先候補、変換候補の判断材料として使います。
AIの判定は最終判断ではありません。削除、移動、変換、ゴミ箱への移動はユーザー操作で行います。
接続先の種類
LM Studio / ローカル
ユーザーが自分のMacで起動したLM StudioなどのOpenAI互換APIへ接続します。FrameSweepの開発者サーバーへメディアを送信しません。API URLを変更した場合は、指定した接続先の管理責任はユーザー側にあります。
Cloudflare Workers AI
FrameSweepのCloudflare Workerを通じてCloudflare Workers AIへ解析を依頼します。外部AIに送信されるため、初回送信前に確認を表示します。Pro購入確認にはApp Storeの取引情報を使います。
検索の方法
通常検索
ファイル名、フォルダ名、AIが作成したキャプション、カテゴリ、タグ、整理先候補などをローカルで検索します。これはMac上のメモリとローカルSQLiteインデックスで動きます。
SQLite全文検索
解析済みのAIテキストはローカルSQLiteデータベースにも保存され、FTS全文検索で高速に探せます。1万件規模でも、全件を毎回JSONで読み込まずに検索できるようにしています。
意味検索 / Embedding検索
Embeddingモデルを設定した場合、検索文と解析済みテキストをベクトル化し、意味が近いメディアを探します。LM Studio設定ではローカルAPIへ送信します。Cloudflare設定では、検索文と解析済みテキストがCloudflare Workerへ送信されます。同意前の自動検索ではCloudflare Embeddingを使わず、ローカルSQLite検索のみ使います。
Mac上に保存するデータ
- AI解析結果: キャプション、カテゴリ、タグ、整理先候補、要確認フラグ、ファイル名候補など。
- 検索用テキストとSQLite全文検索インデックス。
- Embeddingを使う場合のローカルEmbedding値、モデル名、テキストハッシュ。
- AI設定: 有効/無効、接続先、モデル名、Worker URL、Cloudflare送信同意の日時と対象URL。
- サムネイル、コンタクトシート、アプリ設定、macOSフォルダ権限情報。
これらはユーザーのMac上のアプリデータとして保存されます。元の動画・画像ファイルそのものをAIインデックスへ複製して保存する設計ではありません。
Cloudflareへ送信されるデータ
Cloudflare Workers AIを選び、同意してAI解析または意味検索を実行した場合、次のデータが送信されることがあります。
- AI解析に必要な静止画プレビュー、コンタクトシート、または縮小された画像データ。
- ファイル名、メディア種別、解析プロファイル、ユーザーが設定したカテゴリ候補。
- AIに渡すプロンプト、AIが返した解析結果。
- 意味検索で使う検索文、解析済みテキスト、Embeddingモデル名。
- Pro購入確認のためのApp Store取引IDなど、権利確認に必要な情報。
ライブラリ全体を自動でアップロードする機能ではありません。AI解析や意味検索の対象になった項目だけが送信対象です。
Cloudflare側で保持するデータ
FrameSweepのWorkerは、乱用防止、Pro権利確認、障害調査、使用量把握のためにD1データベースへ最小限のメタデータを保存します。
- AI request logs
- 時刻、モデル名、処理種別、HTTPステータス、処理時間、概算入力/出力サイズ、エラー種別など。通常、メディア本文は保存しません。
- Pro entitlements
- App Store取引に基づくPro権利の確認結果、製品ID、元取引ID、環境、期限、更新日時など。
- AI sessions
- 短期間のAIセッションキーのハッシュ、有効期限、関連する権利キー。セッションキー本文は保存しません。
- R2 archive
- 本番運用では解析リクエスト本文保存を無効にします。有効化した場合だけ、調査用にリクエスト/レスポンス本文が保存される可能性があります。
保持期間の考え方
- Mac上のAI解析結果、SQLiteインデックス、Embedding値、キャッシュは、ユーザーがアプリ内で削除するまで保持されます。
- CloudflareのAIセッションは短期間の認証用で、通常は約7日で期限切れになります。
- Cloudflare側のPro権利確認データは、Pro利用資格の確認と不正利用防止に必要な間保持します。
- Cloudflare側のAIリクエストメタデータは、障害調査、乱用防止、使用量把握に必要な間保持します。削除依頼はメールで受け付けます。
- R2への解析リクエスト本文保存は本番では無効です。有効化した場合は調査目的に限定し、不要になった時点で削除します。
削除方法
- 現在のフォルダのAI解析結果は、アプリ内のAI解析結果削除から削除できます。
- すべての保存済みAI解析結果もアプリ内から削除できます。
- サムネイルやコンタクトシートなどのキャッシュは設定画面から削除できます。
- アプリ設定、権利情報、ローカルSQLiteインデックスを含めて消す場合は、FrameSweepのアプリコンテナデータをmacOSから削除してください。
- Cloudflare側のPro権利確認データやAIリクエストメタデータについて削除依頼が必要な場合は、[email protected] へ連絡してください。
不安な場合のおすすめ設定
個人的、機密性の高い、公開前の素材を扱う場合は、CloudflareではなくLM Studio / ローカル接続を選ぶか、AI解析を無効のまま使ってください。AIを使わなくても、プレビュー、仕分け、変換、重複候補確認、ゴミ箱移動などの基本機能は利用できます。
Short version: LM Studio keeps AI processing on your Mac or on the local API endpoint you configure. Cloudflare Workers AI sends the media preview, file name, analysis text, search query, and related request data needed for AI processing to Cloudflare. FrameSweep shows an explicit confirmation before Cloudflare AI data is sent.
What AI analysis does
AI analysis helps you review large video and image folders. It can create captions, categories, object tags, color and mood tags, destination suggestions, compression hints, sensitive-review flags, and file-name suggestions. FrameSweep uses those results for search, filtering, suggested moves, and cleanup decisions.
AI output is advisory. Moving, converting, deleting, or sending files to Trash remains a user action.
Provider options
LM Studio / local
FrameSweep connects to an OpenAI-compatible API such as LM Studio running on your Mac. Media is not sent to a developer server. If you change the API URL, the destination you choose is under your control.
Cloudflare Workers AI
FrameSweep can use a Cloudflare Worker to request analysis from Cloudflare Workers AI. Because this is an external AI service, FrameSweep asks for confirmation before sending data. Pro entitlement verification uses App Store transaction information.
How search works
Normal search
FrameSweep searches file names, folder names, AI captions, categories, tags, and destination suggestions locally on your Mac.
SQLite full-text search
AI text is indexed in a local SQLite database using full-text search, so large analyzed folders can be searched without loading a large JSON file every time.
Semantic / embedding search
If an embedding model is configured, FrameSweep can compare the meaning of your search query with AI-generated text. With LM Studio, this goes to your local API. With Cloudflare, the query and analyzed text are sent through the Worker to Cloudflare. Before consent, automatic search uses local SQLite search only.
Data stored on your Mac
- AI analysis results such as captions, categories, tags, suggestions, and review flags.
- Search text and a local SQLite full-text index.
- Local embedding vectors, model name, and text hash when embedding search is used.
- AI settings, including provider, model names, Worker URL, and Cloudflare consent timestamp and endpoint.
- Thumbnails, contact sheets, app preferences, and macOS folder permission data.
Data sent to Cloudflare
When you choose Cloudflare Workers AI and confirm use, FrameSweep may send:
- Still-image previews, contact sheets, or downscaled image data needed for AI analysis.
- File name, media type, analysis profile, and configured destination categories.
- The AI prompt and AI response.
- Search query, analyzed text, and embedding model name for semantic search.
- App Store transaction identifiers needed for Pro entitlement verification.
FrameSweep does not automatically upload your whole library. Only items you analyze or search with Cloudflare AI are sent.
Data retained by the Cloudflare Worker
- AI request logs
- Timestamp, model, route, HTTP status, duration, approximate input/output size, and error category. Media bodies are not normally stored.
- Pro entitlements
- Pro purchase verification state based on App Store transactions, including product ID, original transaction ID, environment, expiration, and update time.
- AI sessions
- Hash of the short-lived AI session key, expiration, and linked entitlement key. The session key itself is not stored.
- R2 archive
- Production operation keeps request-body archiving disabled. If enabled for debugging, request/response bodies could be stored for investigation.
Retention
- AI analysis results, the SQLite index, embedding values, and caches on your Mac are kept until you delete them in the app or remove the app container data.
- Cloudflare AI sessions are short-lived authentication records and normally expire after about 7 days.
- Cloudflare-side Pro entitlement records are retained while needed to verify Pro access and protect the service.
- Cloudflare-side AI request metadata is retained while needed for troubleshooting, service protection, and usage accounting. Deletion requests can be sent by email.
- R2 request-body archiving is disabled in production. If enabled for investigation, request-body archives are limited to debugging and removed when no longer needed.
Deletion
- You can delete AI analysis results for the current folder from inside the app.
- You can delete all saved AI analysis results from inside the app.
- You can clear thumbnail and contact sheet caches in Settings.
- To remove app settings, entitlement records, and the local SQLite index, delete FrameSweep's macOS app container data.
- For deletion requests related to Cloudflare-side Pro entitlement records or AI request metadata, contact [email protected].
If you are concerned
For private, sensitive, or unreleased media, use LM Studio / local AI or leave AI analysis disabled. FrameSweep's core preview, sorting, conversion, duplicate review, and cleanup workflows work without AI.