A frontend tool for the NovelAI API, offering a clean, high-efficiency interface along with a suite of practical client-side features.
C#
73
227 commits
updated Oct 7, 2026
Language: English | 简体中文
NAI Utility Tool is a Windows desktop client for NovelAI image workflows. It is built with .NET 9, WinUI 3, Windows App SDK, Win2D, SkiaSharp, and ONNX Runtime. It is not intended to replace the official NovelAI website; instead, it brings day-to-day local workflows into one tool: generation, image-to-image editing, mask editing, prompt management, reference-image workflows, batch automation, post-processing, upscaling, metadata inspection, and local reverse tagging.
The current project version is 1.3.0. The project is still evolving quickly, and this document follows the current main branch source layout.
assets/tagsheet/.__name__ syntax by default with configurable behavior in settings.models/upscaler/.selected_tags.csv.output/ or generation history.Generation models:
nai-diffusion-5-fullnai-diffusion-5-curatednai-diffusion-4-5-fullnai-diffusion-4-5-curatednai-diffusion-4-fullnai-diffusion-4-curated-previewnai-diffusion-3nai-diffusion-furry-3Inpainting models:
nai-diffusion-5-full-inpaintingnai-diffusion-4-5-full-inpaintingnai-diffusion-4-5-curated-inpaintingnai-diffusion-4-full-inpaintingnai-diffusion-4-curated-inpaintingnai-diffusion-3-inpaintingnai-diffusion-furry-3-inpaintingnai-diffusion-5-curated-inpainting is intentionally not listed because the
model is not currently available for generation.
Samplers:
k_euler_ancestralk_eulerk_dpmpp_2mk_dpmpp_sdek_dpmpp_2s_ancestralk_dpm_2k_dpm_fastk_dpmpp_2m_sdeddimddim_v3Schedulers:
nativekarrasexponentialpolyexponential9.0.301 or a compatible newer feature-band SDK when building from source..onnx model and selected_tags.csv.Check the local SDK:
dotnet --info
NAITool/
|-- NAITool.sln
|-- src/
| |-- NAITool/ Main WinUI 3 desktop application
| `-- NAIToolLauncher/ Outer launcher executable
|-- assets/
| |-- fxpresets/ Default post-processing presets
| |-- i18n/ Multilingual UI resources
| |-- icon/ Application icon
| |-- img/ Bundled app images
| |-- splash/ Splash screen assets
| |-- svg/ SVG resources used by the UI
| |-- tagsheet/ Tag completion and style data
| `-- wildcards/ Bundled wildcard resources
|-- models/
| `-- upscaler/ Bundled local upscaler models
|-- publish.ps1 Local publish script
|-- Directory.Build.props Shared build output layout
|-- global.json .NET SDK version policy
|-- CONTRIBUTING.md
|-- SECURITY.md
`-- LICENSE
For development builds, use Debug | x64:
dotnet build .\NAITool.sln -c Debug -p:Platform=x64
A successful build creates the development runtime layout:
build/Debug/
|-- NAI Utility Tool.exe Launcher entry point
|-- bin/ Main application and dependencies
|-- assets/ Junction to repository assets
|-- models/ Junction to repository models
|-- user/
|-- output/
`-- logs/
To build only the main application:
dotnet build .\src\NAITool\NAITool.csproj -c Debug -p:Platform=x64
After a full build, run the launcher from the repository root:
.\build\Debug\NAI Utility Tool.exe
You can also open NAITool.sln in Visual Studio or Rider and run src/NAITool/NAITool.csproj for debugging.
On first launch, the quick tour can configure language, NovelAI API token, asset-protection mode, and the optional reverse tagger model directory.
Use the included script to create a local publish package:
.\publish.ps1
By default, it publishes Release, win-x64 to:
publish/NAI Utility Tool/
|-- NAI Utility Tool.exe Launcher entry point
|-- bin/ Main application and dependencies
|-- assets/ Runtime assets
|-- models/ Bundled upscaler models
|-- user/ Default user data directories and presets
|-- output/
`-- logs/
You can specify configuration and runtime:
.\publish.ps1 -Configuration Release -Runtime win-x64
Declared project runtimes include:
win-x64win-x86win-arm64The app writes runtime data beside the executable so development and published layouts behave consistently. The following directories and files are local data, generated output, or sensitive configuration and should not be committed:
user/config/settings.jsonuser/config/apiconfig.jsonuser/fxpresets/user/userprompts/user/wildcards/user/automation/user/vibe/output/logs/build/publish/user/config/apiconfig.json stores API tokens and cached account information. The current version encrypts tokens with Windows DPAPI, but the file is still sensitive and should not be uploaded, screenshotted publicly, or attached to issue logs.
Privacy-related options:
output/ and are not added to history.The repository includes small local upscaler models under models/upscaler/ for the built-in upscale workflow.
Local reverse tagger models are not part of the repository. The recommended default is to place user-downloaded reverse tagger models under models/tagger/ or another local directory, then select that directory in settings. The model directory must contain a .onnx model and selected_tags.csv; the app reads the CSV column layout to support common WD14, SmilingWolf, and PixAI Tagger tag tables. This directory is excluded by .gitignore because models can be large and may have separate license terms.
The tagsheet, wildcards, presets, and other resources under assets/ may come from third-party or derived data. If you redistribute this application, package it into another project, or use it commercially, review the original source licenses and redistribution terms for those resources and any additional models.
When opening issues, please include:
Before submitting PRs, please confirm:
publish.ps1 is rechecked when the change affects the publish layout.Do not commit:
user/output/logs/build/publish/See CONTRIBUTING.md and SECURITY.md for more details.
This project is licensed under GPL-3.0. See LICENSE for the full license text. If you use this project's source code or design as a reference, please provide attribution and link back to this repository.
A frontend tool for the NovelAI API, offering a clean, high-efficiency interface along with a suite of practical client-side features.
C#
73
227 commits
updated Oct 7, 2026
Language: English | 简体中文
NAI Utility Tool is a Windows desktop client for NovelAI image workflows. It is built with .NET 9, WinUI 3, Windows App SDK, Win2D, SkiaSharp, and ONNX Runtime. It is not intended to replace the official NovelAI website; instead, it brings day-to-day local workflows into one tool: generation, image-to-image editing, mask editing, prompt management, reference-image workflows, batch automation, post-processing, upscaling, metadata inspection, and local reverse tagging.
The current project version is 1.3.0. The project is still evolving quickly, and this document follows the current main branch source layout.
assets/tagsheet/.__name__ syntax by default with configurable behavior in settings.models/upscaler/.selected_tags.csv.output/ or generation history.Generation models:
nai-diffusion-5-fullnai-diffusion-5-curatednai-diffusion-4-5-fullnai-diffusion-4-5-curatednai-diffusion-4-fullnai-diffusion-4-curated-previewnai-diffusion-3nai-diffusion-furry-3Inpainting models:
nai-diffusion-5-full-inpaintingnai-diffusion-4-5-full-inpaintingnai-diffusion-4-5-curated-inpaintingnai-diffusion-4-full-inpaintingnai-diffusion-4-curated-inpaintingnai-diffusion-3-inpaintingnai-diffusion-furry-3-inpaintingnai-diffusion-5-curated-inpainting is intentionally not listed because the
model is not currently available for generation.
Samplers:
k_euler_ancestralk_eulerk_dpmpp_2mk_dpmpp_sdek_dpmpp_2s_ancestralk_dpm_2k_dpm_fastk_dpmpp_2m_sdeddimddim_v3Schedulers:
nativekarrasexponentialpolyexponential9.0.301 or a compatible newer feature-band SDK when building from source..onnx model and selected_tags.csv.Check the local SDK:
dotnet --info
NAITool/
|-- NAITool.sln
|-- src/
| |-- NAITool/ Main WinUI 3 desktop application
| `-- NAIToolLauncher/ Outer launcher executable
|-- assets/
| |-- fxpresets/ Default post-processing presets
| |-- i18n/ Multilingual UI resources
| |-- icon/ Application icon
| |-- img/ Bundled app images
| |-- splash/ Splash screen assets
| |-- svg/ SVG resources used by the UI
| |-- tagsheet/ Tag completion and style data
| `-- wildcards/ Bundled wildcard resources
|-- models/
| `-- upscaler/ Bundled local upscaler models
|-- publish.ps1 Local publish script
|-- Directory.Build.props Shared build output layout
|-- global.json .NET SDK version policy
|-- CONTRIBUTING.md
|-- SECURITY.md
`-- LICENSE
For development builds, use Debug | x64:
dotnet build .\NAITool.sln -c Debug -p:Platform=x64
A successful build creates the development runtime layout:
build/Debug/
|-- NAI Utility Tool.exe Launcher entry point
|-- bin/ Main application and dependencies
|-- assets/ Junction to repository assets
|-- models/ Junction to repository models
|-- user/
|-- output/
`-- logs/
To build only the main application:
dotnet build .\src\NAITool\NAITool.csproj -c Debug -p:Platform=x64
After a full build, run the launcher from the repository root:
.\build\Debug\NAI Utility Tool.exe
You can also open NAITool.sln in Visual Studio or Rider and run src/NAITool/NAITool.csproj for debugging.
On first launch, the quick tour can configure language, NovelAI API token, asset-protection mode, and the optional reverse tagger model directory.
Use the included script to create a local publish package:
.\publish.ps1
By default, it publishes Release, win-x64 to:
publish/NAI Utility Tool/
|-- NAI Utility Tool.exe Launcher entry point
|-- bin/ Main application and dependencies
|-- assets/ Runtime assets
|-- models/ Bundled upscaler models
|-- user/ Default user data directories and presets
|-- output/
`-- logs/
You can specify configuration and runtime:
.\publish.ps1 -Configuration Release -Runtime win-x64
Declared project runtimes include:
win-x64win-x86win-arm64The app writes runtime data beside the executable so development and published layouts behave consistently. The following directories and files are local data, generated output, or sensitive configuration and should not be committed:
user/config/settings.jsonuser/config/apiconfig.jsonuser/fxpresets/user/userprompts/user/wildcards/user/automation/user/vibe/output/logs/build/publish/user/config/apiconfig.json stores API tokens and cached account information. The current version encrypts tokens with Windows DPAPI, but the file is still sensitive and should not be uploaded, screenshotted publicly, or attached to issue logs.
Privacy-related options:
output/ and are not added to history.The repository includes small local upscaler models under models/upscaler/ for the built-in upscale workflow.
Local reverse tagger models are not part of the repository. The recommended default is to place user-downloaded reverse tagger models under models/tagger/ or another local directory, then select that directory in settings. The model directory must contain a .onnx model and selected_tags.csv; the app reads the CSV column layout to support common WD14, SmilingWolf, and PixAI Tagger tag tables. This directory is excluded by .gitignore because models can be large and may have separate license terms.
The tagsheet, wildcards, presets, and other resources under assets/ may come from third-party or derived data. If you redistribute this application, package it into another project, or use it commercially, review the original source licenses and redistribution terms for those resources and any additional models.
When opening issues, please include:
Before submitting PRs, please confirm:
publish.ps1 is rechecked when the change affects the publish layout.Do not commit:
user/output/logs/build/publish/See CONTRIBUTING.md and SECURITY.md for more details.
This project is licensed under GPL-3.0. See LICENSE for the full license text. If you use this project's source code or design as a reference, please provide attribution and link back to this repository.