オフライン動作の AI 画像編集デスクトップアプリ (Windows, .NET 10 / WPF) — 背景削除・AI消しゴム・超解像・AI選択・マルチレイヤー・縦書きテキスト。推論は ONNX Runtime (DirectML/CPU)、完全オフライン。
C#
1
23 commits
updated Jul 26, 2026
オフライン動作の AI 画像編集デスクトップアプリ (Windows 10/11, .NET 10 / WPF)。
背景削除・超解像・AI 消しゴム・修復・色調補正・テキストレイヤー(縦書き対応)など主要な画像編集機能を インターネット接続不要 で実行できます。AI モデルとフォントはすべてアプリに同梱され、推論は ONNX Runtime (DirectML 自動 / CPU フォールバック)、テキスト描画は SkiaSharp で動作します。
| 機能 | 内容 | 使用技術 |
|---|---|---|
| AI 選択 (NEW) | クリック 1 回で被写体を自動選択 (Shift+ で追加 / Ctrl+ で除外)。選択範囲は ① 新規レイヤーに切り抜き / ② 選択を消去 (LaMa) / ③ 選択で背景削除 / ④ 選択をモザイク(顔・ID 匿名化)の 4 操作に渡せます | MobileSAM (encoder + decoder) ONNX |
| 背景削除 (AI) | 被写体を自動で抜き出し透過 PNG 化 | ISNet (DIS general-use) ONNX |
| 背景削除 (GrabCut) | モデル不要のフォールバック | OpenCV GrabCut |
| AI 消しゴム | 不要物をブラシで囲むと AI が周囲から自然に補完 | LaMa (Large Mask Inpainting) ONNX |
| 超解像 (AI) | 2× / 4× アップスケール、圧縮ノイズ除去オプション、マルチレイヤー対応 | Nomos2 OTF / General-x4v3 ONNX |
| 機能 | 内容 |
|---|---|
| マルチレイヤー | 追加 / 複製 / 並べ替え (ドラッグ可) / 結合 (Merge Down) / 統合 (Flatten) / 削除 |
| キャンバス上で直接操作 | 移動 / 4 隅リサイズ (Shift で自由変形) / 上中央回転 (Shift で 15° スナップ)。クリックで最上位の可視レイヤーを Auto-Select |
| ブレンドモード | 標準 / 乗算 / スクリーン / オーバーレイ / 比較 (暗) / 比較 (明) |
| 不透明度 | レイヤーごとに 0-100% スライダー |
| D&D で追加 | 画像をウィンドウへドロップすると新規レイヤーとして自動追加 (複数ファイル順次対応) |
| 機能 | 内容 |
|---|---|
| インライン編集 | ツールバー「T テキスト」で配置 → IME でその場入力。ダブルクリックで再編集、Esc / 確定で commit |
| 書体・字格 | フォントピッカー (同梱 Noto を先頭に固定 + システム列挙) / サイズ / 太字・斜体 / 揃え (L/C/R) / 枠幅 / 文字色 |
| 縁取り・影 | 「詳細 ▾」から縁取り (幅 + 色) と Gaussian ぼかしドロップシャドウ (X/Y オフセット + ぼかし量 + 色+α) |
| 縦書き (NEW) | トグル ON で右→左に流れる日本語縦書き。括弧/カギ/…等は CJK Compatibility Forms に置換、Latin/数字/ー は 90° 回転 |
| ラスタライズ | 通常の画像レイヤーに確定変換 → AI 消しゴム/超解像など TextData 非対応の処理に渡せる (Ctrl+Z で復元) |
| 配布のしやすさ | フォントは名前のみ .tnd に保存 (実体は埋め込まない) → 共有先で見つからなければ同梱 Noto に自動フォールバック |
| 機能 | 内容 |
|---|---|
| クイック補正 | ノイズ除去・WB・CLAHE・シャープを一括適用 |
| 明度・彩度・色調補正 | HSV / トーン / カラーバランスを 8 スライダで調整 (リアルタイムプレビュー) |
| 色置換 | スポイトで色拾い → 色相シフト or 単色塗り |
| 修復ブラシ | 小さな汚れ・キズを Telea / Navier-Stokes 法で補完 |
| トリミング | ドラッグで範囲選択 → 切り抜き (回転中レイヤーも対応) |
| キャンバスサイズ | 9 anchor (TopLeft / Center / BottomRight など) でキャンバス寸法変更 |
| 回転・反転 | 90°/180° 回転、左右/上下反転 |
| ズーム / D&D | Ctrl+ホイールズーム、画像のドラッグ&ドロップで開く |
| 機能 | 内容 |
|---|---|
| PNG / JPEG 保存 | キャンバス境界でクリップしたフラット画像を出力 |
| プロジェクト .tnd (NEW) | レイヤー構造・transform・不透明度・ブレンドモードを保持して保存 / 再読込。ZIP コンテナ + manifest.json + 各レイヤー PNG |
| Undo / Redo | 最大 30 段、レイヤー枚数で動的に縮小 |
ImageEditor.sln
├─ ImageEditor.App WPF / MVVM (CommunityToolkit) / 各 Dialog / 同梱フォント登録
├─ ImageEditor.Core Document・Undo/Redo・Command 群 (テキストレイヤー含む)
├─ ImageEditor.Imaging OpenCvSharp + SkiaSharp ラッパ (ToneAdjust / Rotation / ColorReplacer / Inpainting / MaskFill / MatOps / TextRasterizer + TextLayerData)
└─ ImageEditor.Inference ONNX Runtime ラッパ (OnnxSession, ModelCatalog, IsnetRunner, RealEsrganRunner, LamaRunner, SamRunner)
App → {Core, Imaging, Inference}、Inference → {Core, Imaging}、Core → ImagingOnnxSessionFactory)。実行時に DirectML エラーが出た場合も RunInferenceWithFallback で CPU 再試行AppContext.BaseDirectory + "models" を一次参照 → %LocalAppData%\TNDesign\models (上書き用) → 最後に Url ダウンロードgit clone https://github.com/HTanoda/TNDesign.git
cd TNDesign
dotnet build
dotnet run --project ImageEditor.App
AI モデルの入手が必要です。 ONNX モデル (計 ~485MB) は GitHub の 1 ファイル 100MB 制限を超えるためリポジトリには含まれていません。 Releases の
models.zipをダウンロードし、リポジトリ直下にmodels/として展開してください。 各モデルの配布元と SHA256 は 同梱 AI モデル一覧 を参照。モデルが無い場合、AI 機能以外 (レイヤー編集・テキスト・色調補正・GrabCut 背景削除など) はそのまま動作します。ビルドせずに使うだけであれば、Releases のインストーラ (
TNDesign-Setup-x.y.z.exe) にモデルとランタイムが同梱されています。
dotnet publish ImageEditor.App -c Release -r win-x64 --self-contained -p:PublishSingleFile=false -o publish
publish 出力には .NET ランタイム + 全 ONNX モデル (models/*.onnx) が含まれ、対象 PC に .NET 未インストールでも動作します。
cd installer
powershell -ExecutionPolicy Bypass -File build-installer.ps1
出力: installer\Output\TNDesign-Setup-1.1.0.exe
事前準備: Inno Setup 6 を既定パスにインストール。
リポジトリには含まれていません (GitHub のファイルサイズ制限のため)。Releases の models.zip、または下表の配布元から個別に入手し、models/ に配置してください。ファイル名は下表の通りである必要があります (ModelCatalog.cs が名前と SHA256 で検証します)。
| ファイル名 | 用途 | サイズ | ライセンス | 配布元 |
|---|---|---|---|---|
isnet-general-use.onnx | 背景削除 | 170MB | Apache-2.0 | rembg releases |
mobile_sam.encoder.onnx | AI 選択 (画像エンコード) | 27MB | Apache-2.0 | dhkim2810/MobileSAM |
mobile_sam.decoder.onnx | AI 選択 (マスク生成) | 16MB | Apache-2.0 | dhkim2810/MobileSAM |
lama_fp32.onnx | AI 消しゴム | 198MB | Apache-2.0 | Carve/LaMa-ONNX |
4x-nomos2-otf-esrgan.onnx | 超解像 (高品質) | 69MB | BSD-3-Clause | ComfyUI-Upscaler-Onnx |
realesr-general-x4v3.onnx | 超解像 (高速) | 5MB | BSD-3-Clause | Real-ESRGAN |
合計 ~485MB。csproj の <Content Include="..\models\**\*.onnx" CopyToOutputDirectory="PreserveNewest" /> ルールが publish 出力へ自動コピーします。SHA256 は ImageEditor.Inference/ModelCatalog.cs に記載。
配布元によってはファイル名が異なります (例: LaMa は
lama.onnx、Nomos2 は4xNomos2_otf_esrgan.onnx)。上表の名前にリネームしてください。
テキストレイヤー機能用に OFL ライセンスのフォントを 4 ファイル同梱しています(fonts/)。.tnd プロジェクトファイルにはフォント名のみ記録し、フォント実体は埋め込みません — 共有先の PC に該当フォントが無い場合は同梱 Noto に自動フォールバックします(多くの商用フォントの EULA は埋め込みを許可していないため、この方針で安全側に倒しています)。
| フォント | ウェイト | サイズ | ライセンス |
|---|---|---|---|
| Noto Sans JP | Regular, Bold | ~9MB | SIL Open Font License 1.1 |
| Noto Serif JP | Regular, Bold | ~13MB | SIL Open Font License 1.1 |
合計 ~22MB。OFL.txt も同フォルダに同梱(OFL §3 準拠)。Reserved Font Names: 'Noto', 'Source'。
MIT License — Copyright (c) 2026 HIROKI TANODA (TND)
詳細は installer/LICENSE.txt を参照。同梱ライブラリはそれぞれの個別ライセンスに従います。
TNDesign/
├─ Plan.md 設計プランと実装履歴
├─ README.md このファイル
├─ ImageEditor.sln ソリューション
├─ ImageEditor.App/ WPF アプリ
├─ ImageEditor.Core/ ドメインロジック
├─ ImageEditor.Imaging/ 画像処理
├─ ImageEditor.Inference/ ONNX 推論
├─ models/ ONNX モデル (git 管理外 — Releases から入手)
├─ fonts/ 同梱 OFL フォント (Noto Sans/Serif JP) + OFL.txt
├─ tools/OnnxProbe/ モデル形状確認用ツール
├─ installer/ Inno Setup スクリプト
├─ TNDesign.ico, TNDesign_.ico
└─ .gitignore, .gitattributes
全体監査 (Claude + Codex の多系統コードレビュー) の指摘に基づく安定性・UX 改善リリース。
データ喪失防止
.tnd とも一時ファイル経由の安全な書き込みに変更し、保存失敗時に既存ファイルが壊れないようにした安定性
.tnd 読み込みにサイズ・整合性検証を追加 (破損 / 異常ファイルを日本語メッセージで安全に拒否)使い勝手
--manual 起動引数に対応)初回リリース。AI 選択 (MobileSAM) / 背景削除 (ISNet・GrabCut) / AI 消しゴム (LaMa) / 超解像 / マルチレイヤー編集 / テキストレイヤー (縦書き対応) / .tnd プロジェクト形式。
オフライン動作の AI 画像編集デスクトップアプリ (Windows, .NET 10 / WPF) — 背景削除・AI消しゴム・超解像・AI選択・マルチレイヤー・縦書きテキスト。推論は ONNX Runtime (DirectML/CPU)、完全オフライン。
C#
1
23 commits
updated Jul 26, 2026
オフライン動作の AI 画像編集デスクトップアプリ (Windows 10/11, .NET 10 / WPF)。
背景削除・超解像・AI 消しゴム・修復・色調補正・テキストレイヤー(縦書き対応)など主要な画像編集機能を インターネット接続不要 で実行できます。AI モデルとフォントはすべてアプリに同梱され、推論は ONNX Runtime (DirectML 自動 / CPU フォールバック)、テキスト描画は SkiaSharp で動作します。
| 機能 | 内容 | 使用技術 |
|---|---|---|
| AI 選択 (NEW) | クリック 1 回で被写体を自動選択 (Shift+ で追加 / Ctrl+ で除外)。選択範囲は ① 新規レイヤーに切り抜き / ② 選択を消去 (LaMa) / ③ 選択で背景削除 / ④ 選択をモザイク(顔・ID 匿名化)の 4 操作に渡せます | MobileSAM (encoder + decoder) ONNX |
| 背景削除 (AI) | 被写体を自動で抜き出し透過 PNG 化 | ISNet (DIS general-use) ONNX |
| 背景削除 (GrabCut) | モデル不要のフォールバック | OpenCV GrabCut |
| AI 消しゴム | 不要物をブラシで囲むと AI が周囲から自然に補完 | LaMa (Large Mask Inpainting) ONNX |
| 超解像 (AI) | 2× / 4× アップスケール、圧縮ノイズ除去オプション、マルチレイヤー対応 | Nomos2 OTF / General-x4v3 ONNX |
| 機能 | 内容 |
|---|---|
| マルチレイヤー | 追加 / 複製 / 並べ替え (ドラッグ可) / 結合 (Merge Down) / 統合 (Flatten) / 削除 |
| キャンバス上で直接操作 | 移動 / 4 隅リサイズ (Shift で自由変形) / 上中央回転 (Shift で 15° スナップ)。クリックで最上位の可視レイヤーを Auto-Select |
| ブレンドモード | 標準 / 乗算 / スクリーン / オーバーレイ / 比較 (暗) / 比較 (明) |
| 不透明度 | レイヤーごとに 0-100% スライダー |
| D&D で追加 | 画像をウィンドウへドロップすると新規レイヤーとして自動追加 (複数ファイル順次対応) |
| 機能 | 内容 |
|---|---|
| インライン編集 | ツールバー「T テキスト」で配置 → IME でその場入力。ダブルクリックで再編集、Esc / 確定で commit |
| 書体・字格 | フォントピッカー (同梱 Noto を先頭に固定 + システム列挙) / サイズ / 太字・斜体 / 揃え (L/C/R) / 枠幅 / 文字色 |
| 縁取り・影 | 「詳細 ▾」から縁取り (幅 + 色) と Gaussian ぼかしドロップシャドウ (X/Y オフセット + ぼかし量 + 色+α) |
| 縦書き (NEW) | トグル ON で右→左に流れる日本語縦書き。括弧/カギ/…等は CJK Compatibility Forms に置換、Latin/数字/ー は 90° 回転 |
| ラスタライズ | 通常の画像レイヤーに確定変換 → AI 消しゴム/超解像など TextData 非対応の処理に渡せる (Ctrl+Z で復元) |
| 配布のしやすさ | フォントは名前のみ .tnd に保存 (実体は埋め込まない) → 共有先で見つからなければ同梱 Noto に自動フォールバック |
| 機能 | 内容 |
|---|---|
| クイック補正 | ノイズ除去・WB・CLAHE・シャープを一括適用 |
| 明度・彩度・色調補正 | HSV / トーン / カラーバランスを 8 スライダで調整 (リアルタイムプレビュー) |
| 色置換 | スポイトで色拾い → 色相シフト or 単色塗り |
| 修復ブラシ | 小さな汚れ・キズを Telea / Navier-Stokes 法で補完 |
| トリミング | ドラッグで範囲選択 → 切り抜き (回転中レイヤーも対応) |
| キャンバスサイズ | 9 anchor (TopLeft / Center / BottomRight など) でキャンバス寸法変更 |
| 回転・反転 | 90°/180° 回転、左右/上下反転 |
| ズーム / D&D | Ctrl+ホイールズーム、画像のドラッグ&ドロップで開く |
| 機能 | 内容 |
|---|---|
| PNG / JPEG 保存 | キャンバス境界でクリップしたフラット画像を出力 |
| プロジェクト .tnd (NEW) | レイヤー構造・transform・不透明度・ブレンドモードを保持して保存 / 再読込。ZIP コンテナ + manifest.json + 各レイヤー PNG |
| Undo / Redo | 最大 30 段、レイヤー枚数で動的に縮小 |
ImageEditor.sln
├─ ImageEditor.App WPF / MVVM (CommunityToolkit) / 各 Dialog / 同梱フォント登録
├─ ImageEditor.Core Document・Undo/Redo・Command 群 (テキストレイヤー含む)
├─ ImageEditor.Imaging OpenCvSharp + SkiaSharp ラッパ (ToneAdjust / Rotation / ColorReplacer / Inpainting / MaskFill / MatOps / TextRasterizer + TextLayerData)
└─ ImageEditor.Inference ONNX Runtime ラッパ (OnnxSession, ModelCatalog, IsnetRunner, RealEsrganRunner, LamaRunner, SamRunner)
App → {Core, Imaging, Inference}、Inference → {Core, Imaging}、Core → ImagingOnnxSessionFactory)。実行時に DirectML エラーが出た場合も RunInferenceWithFallback で CPU 再試行AppContext.BaseDirectory + "models" を一次参照 → %LocalAppData%\TNDesign\models (上書き用) → 最後に Url ダウンロードgit clone https://github.com/HTanoda/TNDesign.git
cd TNDesign
dotnet build
dotnet run --project ImageEditor.App
AI モデルの入手が必要です。 ONNX モデル (計 ~485MB) は GitHub の 1 ファイル 100MB 制限を超えるためリポジトリには含まれていません。 Releases の
models.zipをダウンロードし、リポジトリ直下にmodels/として展開してください。 各モデルの配布元と SHA256 は 同梱 AI モデル一覧 を参照。モデルが無い場合、AI 機能以外 (レイヤー編集・テキスト・色調補正・GrabCut 背景削除など) はそのまま動作します。ビルドせずに使うだけであれば、Releases のインストーラ (
TNDesign-Setup-x.y.z.exe) にモデルとランタイムが同梱されています。
dotnet publish ImageEditor.App -c Release -r win-x64 --self-contained -p:PublishSingleFile=false -o publish
publish 出力には .NET ランタイム + 全 ONNX モデル (models/*.onnx) が含まれ、対象 PC に .NET 未インストールでも動作します。
cd installer
powershell -ExecutionPolicy Bypass -File build-installer.ps1
出力: installer\Output\TNDesign-Setup-1.1.0.exe
事前準備: Inno Setup 6 を既定パスにインストール。
リポジトリには含まれていません (GitHub のファイルサイズ制限のため)。Releases の models.zip、または下表の配布元から個別に入手し、models/ に配置してください。ファイル名は下表の通りである必要があります (ModelCatalog.cs が名前と SHA256 で検証します)。
| ファイル名 | 用途 | サイズ | ライセンス | 配布元 |
|---|---|---|---|---|
isnet-general-use.onnx | 背景削除 | 170MB | Apache-2.0 | rembg releases |
mobile_sam.encoder.onnx | AI 選択 (画像エンコード) | 27MB | Apache-2.0 | dhkim2810/MobileSAM |
mobile_sam.decoder.onnx | AI 選択 (マスク生成) | 16MB | Apache-2.0 | dhkim2810/MobileSAM |
lama_fp32.onnx | AI 消しゴム | 198MB | Apache-2.0 | Carve/LaMa-ONNX |
4x-nomos2-otf-esrgan.onnx | 超解像 (高品質) | 69MB | BSD-3-Clause | ComfyUI-Upscaler-Onnx |
realesr-general-x4v3.onnx | 超解像 (高速) | 5MB | BSD-3-Clause | Real-ESRGAN |
合計 ~485MB。csproj の <Content Include="..\models\**\*.onnx" CopyToOutputDirectory="PreserveNewest" /> ルールが publish 出力へ自動コピーします。SHA256 は ImageEditor.Inference/ModelCatalog.cs に記載。
配布元によってはファイル名が異なります (例: LaMa は
lama.onnx、Nomos2 は4xNomos2_otf_esrgan.onnx)。上表の名前にリネームしてください。
テキストレイヤー機能用に OFL ライセンスのフォントを 4 ファイル同梱しています(fonts/)。.tnd プロジェクトファイルにはフォント名のみ記録し、フォント実体は埋め込みません — 共有先の PC に該当フォントが無い場合は同梱 Noto に自動フォールバックします(多くの商用フォントの EULA は埋め込みを許可していないため、この方針で安全側に倒しています)。
| フォント | ウェイト | サイズ | ライセンス |
|---|---|---|---|
| Noto Sans JP | Regular, Bold | ~9MB | SIL Open Font License 1.1 |
| Noto Serif JP | Regular, Bold | ~13MB | SIL Open Font License 1.1 |
合計 ~22MB。OFL.txt も同フォルダに同梱(OFL §3 準拠)。Reserved Font Names: 'Noto', 'Source'。
MIT License — Copyright (c) 2026 HIROKI TANODA (TND)
詳細は installer/LICENSE.txt を参照。同梱ライブラリはそれぞれの個別ライセンスに従います。
TNDesign/
├─ Plan.md 設計プランと実装履歴
├─ README.md このファイル
├─ ImageEditor.sln ソリューション
├─ ImageEditor.App/ WPF アプリ
├─ ImageEditor.Core/ ドメインロジック
├─ ImageEditor.Imaging/ 画像処理
├─ ImageEditor.Inference/ ONNX 推論
├─ models/ ONNX モデル (git 管理外 — Releases から入手)
├─ fonts/ 同梱 OFL フォント (Noto Sans/Serif JP) + OFL.txt
├─ tools/OnnxProbe/ モデル形状確認用ツール
├─ installer/ Inno Setup スクリプト
├─ TNDesign.ico, TNDesign_.ico
└─ .gitignore, .gitattributes
全体監査 (Claude + Codex の多系統コードレビュー) の指摘に基づく安定性・UX 改善リリース。
データ喪失防止
.tnd とも一時ファイル経由の安全な書き込みに変更し、保存失敗時に既存ファイルが壊れないようにした安定性
.tnd 読み込みにサイズ・整合性検証を追加 (破損 / 異常ファイルを日本語メッセージで安全に拒否)使い勝手
--manual 起動引数に対応)初回リリース。AI 選択 (MobileSAM) / 背景削除 (ISNet・GrabCut) / AI 消しゴム (LaMa) / 超解像 / マルチレイヤー編集 / テキストレイヤー (縦書き対応) / .tnd プロジェクト形式。