Profile
Back to NewsBack
GitHub Trending 28 min
Reader Mode
mirabarukaso/character_select_stand_alone_app: Character Select Stand Alone App with AI prompt and ComfyUI/WebUI API support for waiIllustriousSDXL, waiANIMA and others model

mirabarukaso/character_select_stand_alone_app: Character Select Stand Alone App with AI prompt and ComfyUI/WebUI API support for waiIllustriousSDXL, waiANIMA and others model

13 hours ago

Character Select SAA

A Stand Alone App with AI prompt, Semi-auto Tag Complete and ComfyUI/Forge Neo(WebUI) API support.
[!NOTE]
If you find a character that isn't show on the list but can be generated correctly, please don't hesitate to raise an issue to let me know.
> The default thumbList is based on waiIllustriousSDXL_v160. There are two alternative thumbList: waiANIMA_v10Base10 and waiNSFWIllustrious_v120. Will download automatically from HuggingFace once you have selected it.
Create your own thumbList with SAA Thumb Generator
[!TIP]
FP16 Compute, Sage Attention, and Override VAE are for Turing/Pascal GPUs. Newer cards can leave them off. See Turing FP16.

| Verified | ComfyUI | Forge Neo | | --- | --- | --- | | Release | 0.44.0 | 2.31.0 | | Refiner (SDXL) | Yes | Yes | | Image Color Transfer (ALL) | Yes | No | | Regional Condition / Couple (SDXL/Anima) | Yes | Yes | | ControlNet/IPA (SDXL) | Yes | Yes | | ADetailer (ALL) | Yes | Yes | | API authentication| No | Yes | | MiraITU | Yes | No |

[!IMPORTANT]
Regional Condition / Couple and ADetailer on Forge Neo supports SDXL and Anima
on ComfyUI should support all SAA supports diffusion models need to verify
> ComfyUI Desktop not support SAA
Removed A1111 from support list due to a lack of maintenance, A1111 still working with SAA, but will not test on it
Online Character Select Hugging Face Space
> For browser based SAAC, check README_SAAC.md
SAAC is read-only by default. It can generate, load host settings, switch layout mode, and save only to saac_settings.json. Dragged layout is not written, and a missing thumbList is not downloaded. The host SAAC read-only switch stays with the live host when switching settings. Turn it off in host Settings if a client should write this PC.
For Python based CLI tool for OpenClaw SAA Agent and ClawHub

thumbList manually download guide

If you experienced a slow or failed download in SAA, check the manual solution here.

Navigate to my HF dataset, download the following files to the data folder and rename them as follows:

waiIllustriousSDXL_v160

waiIllustriousSDXL_v160_thumbs.json

waiIllustriousSDXL_v160_characters.csv

waiIllustriousSDXL_v160_tag_assist.json

waiIllustriousSDXL_v120

waiNSFWIllustrious_v120_thumbs.json

waiNSFWIllustrious_v120_characters.csv

waiNSFWIllustrious_v120_tag_assist.json

waiANIMA_v10Base10

waiANIMA_v10Base10_thumbs.json

waiANIMA_v10Base10_characters.csv

waiANIMA_v10Base10_tag_assist.json

Install and run

[!TIP]
Setup your Image API Interface before you start SAA.
For ComfyUI, you need latest ComfyUI_Mira for SAA.
> One-Click package v2.11.1
The full package embeded_env_for_SAA

Clone this repo into your local folder

git clone https://github.com/mirabarukaso/character_select_stand_alone_app.git
cd character_select_stand_alone_app
npm install
npm start

Update

[!IMPORTANT]
Updating version from github will not update the dataset files.
Manually delete danbooru_e621_merged.csv, _thumbs.json, _characters.csv, *_tag_assist.json in data folder. Restart the app to automatically download the latest thumbnail database from HF.

The One-Click package may not the latest version. If you need to update, please use the GitHub clone version with following command instead.

git fetch
git pull
npm install
------

Highlights

Gallery A|B Compare

Compare two gallery images (or up to two from Image Info) with a slider wipe (left/right or top/bottom via ↔ / ↕), same-spot A/B toggle, shared pan/zoom, and optional in-app fullscreen. Pin with the side +A / +B button, right-click, or Image Info; exit with ✕A|B. <> switches slider wipe vs toggle while comparing. While comparing, Hires Fix stays off and new generations still join the queue without jumping the view.

AI Prompt

Write or polish a prompt in the AI Prompt panel, then put the result into a prompt box yourself. Image generation does not call the language model.

More about AI Prompt

Template chooses how the reply is written. Source chooses which text is sent. Picking a template also sets that template's source and character slot. Change either one afterwards and it is stored on the template.

Three templates are included:

  • Tag scene reads Brief and answers with one line of English comma-separated tags, about 8 to 16 tags. Gender words are left out.
  • Natural scene reads Brief and answers with one English paragraph for diffusion models. Width and height stay with the app, so the paragraph does not contain an aspect ratio.
  • Character natural reads character slot 4. It polishes the text it actually received. The usual reply is one English paragraph. If that text explicitly asks for tags, the reply is one line of tags. A place, time, light, weather, background, prop, or extra person is added only when the source text already has it.
Sources are Brief, Common, Positive, Right positive, Negative, Character, and Full prompt. Character uses one fixed slot from 1 to 4. A random slot is not sent. Full prompt skips a random character slot. LoRA lines are not sent. Wildcards stay as written.

Generate runs the request. After a short pause the button becomes Cancel and can stop the request. The reply stays in Result until you choose where it goes. Overwrite replaces Common, Positive, Right positive, or Negative. Append adds the reply to the end of that box. Character files are left unchanged.

Each template keeps its own system prompt, model, timeout, temperature, max tokens, source, and character slot. Model settings and the system prompt start folded. The save icon asks for a name. The same name updates the current template. A new name saves a copy and selects it. Delete asks first. Deleting the last template restores the three original templates. Restore defaults, under Backend, adds a missing original template and replaces an edited original with the stored one. Templates you added yourself stay.

Backend is shared by every template.

  • Remote expects an OpenAI-compatible base URL and an API key. A base such as https://nano-gpt.com/api/v1 is called at /chat/completions. A URL that already ends with /chat/completions is used as it is.
  • Local expects a llama.cpp server address, for example http://127.0.0.1:8080/chat/completions. Build llama.cpp or take a release, then start it with your GGUF model: llama-server.exe -c 16384 --port 8080 -m "".
Built-in templates ship in data/ai_prompt_templates.json. The app copies them into settings/ai/templates.json on first run, and later saves stay in that file. The selected template and source are stored with the current settings file. Inherit settings starts off. Turn it on before loading another settings file to keep the current interface, addresses, key, template, source, and brief. The switch turns itself off after that load. Save the settings file to store the kept configuration in the file you just opened.

Bounding Box for Moss Image

Draw rectangles on a canvas that follows the current Width and Height, then submit the merged positive prompt as one JSON payload. Turn on the header switch to enable it. Regional Condition keeps this switch off.

More about Bounding Box The canvas uses the current generation size, including landscape swap, and fits the panel. It stays at or below 1:1, so a smaller generation size is shown at its native pixel size.

Drag on empty space to create a box. When the canvas is crowded, Add inserts a default centered rectangle (with a small nudge if that spot is already taken). Drag inside a box to move it, and drag an edge to resize it. A selected box is solid; the others stay semi-transparent. Boxes are numbered from 01, up to 128. Deleting one renumbers the rest from 01 in list order, and a new box is appended at the end.

Click selects the smallest box under the pointer. The area outside that box still selects the larger one. After the canvas has focus, Tab walks outward through the nested boxes under the pointer, and Shift+Tab walks back. If the pointer is not over two or more boxes, Tab uses the boxes around the selected box, then the full list in number order. Enter or a double-click edits the description. Inside the editor, Enter saves, Shift+Enter adds a line, and Esc cancels. Delete removes the selection.

Each box is object or text. object is the default. For Moss, object generates the description as an item inside the box, and text generates the description as annotation text inside the box.

  • An empty object sends its number as caption and has no text field.
  • An object with a description sends that item text as caption and has no text field. In the example below, burger and price list are generated as items.
  • A text box keeps the number as caption and sends the description in text, so Moss generates that description as annotation text.
The background grid follows the grid-size slider. Snap is optional and uses that same size. Pick a color from 16 swatches or the color picker. Color is only drawn on the canvas and is left out of the payload. The preview under the canvas shows the positive prompt that will be sent.

A long description wraps to the box width. Lines that do not fit stay hidden. The editor opened by Enter or a double-click grows with the text and stays inside the canvas.

Plate loads the image currently shown in the gallery. Image Info can also send its loaded picture with To Bounding, under the tagger row. In the split view that is the large image. In grid view it is the opened image, or the newest image when none is opened. Click Plate again to clear it. A matching aspect ratio scales to the canvas. A different ratio scales by the short side and stays centered, and the canvas clips the overflow. Opacity runs from 0 to 100 and stays disabled until a plate is loaded. The opacity is saved with settings. The image itself lasts for the current session. While a plate is loaded, box fills follow that slider and thin out as the image gets stronger, so the picture, the region edge, and the description stay visible together.

Lock keeps the selected box from being moved or resized. A locked box can still be selected, recolored, and edited, and Delete still removes it. Add sits next to Clear. Clear asks first. It removes unlocked boxes and leaves locked ones. When every remaining box is locked, Clear removes those too.

Coordinates use the full generation pixels. The origin is the canvas center, x points right, y points down, and each box is [y_min, x_min, y_max, x_max]. On a 1024×1360 canvas the packed prompt looks like this:

{
  "summary": {
    "caption": "japanese anime style, solo anthro, aged down, fluffy,\nrestaurant, huge burger,two-tone fur, (grey fur:1.1), white cheek fur, white paws, grey wolf ears, grey wolf tail, blonde hair, grey eyes, wolf girl, hair between eyes, long sidelocks, short hair, (fluffy, chest fluff:1.4), cheek fluff, furry, petite, fangs, ear fluff, claws, sitting,"
  },
  "items": [
    { "label": "object", "caption": "furry", "bbox": [-680, -96, 680, 512] },
    { "label": "object", "caption": "burger", "bbox": [-238, -173, 101, 182] },
    { "label": "object", "caption": "price list", "bbox": [-619, -480, -234, -224] },
    { "label": "object", "caption": "table", "bbox": [124, -512, 363, 224] },
    { "label": "object", "caption": "soda drink", "bbox": [-69, -313, 168, -221] },
    { "label": "object", "caption": "Seasoning", "bbox": [98, -484, 166, -320] },
    { "label": "object", "caption": "Dinner Plate", "bbox": [204, -277, 273, 179] }
  ],
  "bbox_coord_space": "abs_centralized",
  "bbox_format": "yxyx"
}

summary.caption is the merged positive prompt after replacement and AI. The JSON is written onto the positive prompt that is actually submitted.

UI Layout

Drag panels between the left and right columns. The icon next to Save Settings chooses a shared layout, a layout stored with this settings file, or the original default.

How to drag panels and how the layout icon works

Drag a panel by its collapse dot (the small circle on the header) to reorder it up/down, or drop it on the other column to swap left/right. Click the collapse dot to fold/unfold as before. To move a panel, hover the drag area for about 1 second until the border turns green, then drag. A quick pass or click will not start a layout move.

The generate bars (width/CFG and seed/run buttons) and the prompt box have no collapse dot. Hover empty space (especially the padding at the top) for about 1 second until the border turns green, then drag. Don't drag sliders, dropdowns, buttons, or prompt text — those keep their normal behavior.

The layout icon next to Save Settings cycles how the layout is stored:

  • Default color - Shared UI layout for all settings files
  • Green - Independent UI layout for the current settings file only
  • Orange - Restore the original default layout. Drag any panel afterwards to save it as an Independent layout (Green)

Diffusion Models (UNET/CLIP/VAE) for ComfyUI and Forge Neo

[!NOTE]
Test and Verified: Moss / Anima / Qwen Image / Z Image / Flux / Krea2
Supports ComfyUI and Forge neo, NOT support original A1111.

Details about Diffusion Models

For ComfyUI, check Comfy-Org@HF GGUF model requires custom node gguf the small-case one.

|---models
|   |---checkpoints
|   |---diffusion_models
|   |---text_encoders
|   |---vae

For Forge Neo, check Download Models@Haoming02 Forge also supports the GGUF model, but the Diffusion models use the same Checkpoint folder. Therefore, manage those models with correct folder yourself.

|---models
|   |---Stable-diffusion
|   |---text_encoder
|   |---VAE

Mira Image Tiled Upscaler

[!NOTE]
MiraITU: A content-aware image super-resolution ComfyUI custom node based on vision models.
Simply drag and drop ANY image into SAA/SAAC to upscale it.

| Before | 6x After (SDXL) | Before | 3x After (Flux.2) | | --- | --- | --- | --- | | | | | |

Details about MiraITU

Supports magnification scales from 1.5x to 8x. By adjusting different tile sizes, it can optimize VRAM usage to the maximum, enabling 8GB graphics cards to achieve image upscaling at 1.5x to 3x (or higher) scales, while also unleashing the full potential of high-end graphics cards with 24GB or more VRAM to accomplish 4x to 8x image upscaling.

Requires ComfyUI_Mira 0.5.6.0 or above Requires MiraSubPack latest

And Image Tagger for Mira

| Settings | Drag and Drop | Flux.2 | | --- | --- | --- | | | | |

The generated results will be affected by different models. The SDXL model requires a tagger to provide more precise content descriptions, and using an upscale model is recommended. Models such as Flux2, which allow a reference latent to connected, can skip the upscale model and stretch the original image directly. Then, simply use the Positive Prompt to configure all tiles consistently.

| Upscale Ratio 1024x1360(1536) | Tile Size | VAE 8G | VAE 24G~ | | --- | --- | --- | --- | | x1.5 | 768 | Full | Full | | x2 | 1280 | Full/Tiled | Full | | x3 | 1536 | Tiled | Full | | x4 | 2048 | Tiled | Full | | x6 | 2048/2560 | Tiled | Full | | x8 | 2560/3072 | Tiled | Full/Tiled |

Note: Due to limitations of the SDXL model, exceeding 8x magnification will result in overly fragmented visual slices. For higher magnification requirements, it is recommended to use a dedicated ComfyUI workflow instead. Comfyui Workflow MiraITU

Image Tagger

Supports WD@SmilingWolf, CL@cella110n and Camie@Camais03 models in ONNX format.

Details about Image Tagger

Download models with tags from HF, manually rename them according to the following rules, then copy them into models/tagger folder: - cl_tagger_v2.onnx + cl_tagger_v2_tag_mapping.json - wd-eva02-large-tagger-v3.onnx + wd-eva02-large-tagger-v3_selected_tags.csv - wd-v1-4-convnext-tagger.onnx + wd-v1-4-convnext-tagger_selected_tags.csv

SAA
|---models
|   |---tagger
|       |---cl_tagger_1_02.onnx
|       |---cl_tagger_1_02_tag_mapping.json
|       |---wd-eva02-large-tagger-v3.onnx
|       |---wd-eva02-large-tagger-v3_selected_tags.csv
|       |---wd-vit-large-tagger-v3.onnx
|       |---wd-vit-large-tagger-v3_selected_tags.csv
|       |---camie-tagger-v2.onnx
|       |---camie-tagger-v2-metadata.json

Options: Model Name >>> General Threshold(CL/WD/Camie) >>> Character Threshold(CL/WD) >>> Categories(CL/Camie) or mCut(WD)

The Image Tagger runs on Node.JS with onnxruntime-node. It DOES NOT require any backend support. Idle: prefers DirectML / CUDA for the currently selected tagger only (one GPU-resident model). Falls back to CPU if GPU init fails; promoting a model to GPU drops its CPU copy. Generating: prefers CPU so diffusion keeps VRAM. Closing Image Info, or starting Generate / ControlNet, releases any GPU tagger session into the CPU cache when possible. GPU-resident models unused for ~2 minutes are released (into CPU cache when possible) even without Generate. CPU keeps up to the last 3 used ONNX models; unused CPU entries expire after ~5 minutes.

DirectML is still slower than Python onnxruntime-gpu (CUDA), but steady GPU runs are much closer to usable speed than the old per-request CPU path.

In other words with my i9-9960x with Titan RTX The good news is, you can run Image tagger during generate (uses CPU while generating, then can return to GPU when idle)

| Device | Avg Tagging Time | Model | Platform | Resolution | Recommend Value | | --- | --- | --- | --- | --- | --- | | onnxruntime | 1.053s | cl_tagger_1_02 | Python | 448 | 0.55/0.60 | | onnxruntime-gpu | 0.297s | cl_tagger_1_02 | Python | 448 | 0.55/0.60 | | onnxruntime-node | ~0.12s (steady) | cl_tagger_1_02 | Electron(NodeJS@DirectML) | 448 | 0.55/0.60 | | onnxruntime-node | ~1.0s (steady) | cl_tagger_1_02 | Electron(NodeJS@CPU) | 448 | 0.55/0.60 | | onnxruntime-node | (first load slower) | wd / camie | Electron(NodeJS@DirectML) | 448 / 512 | 0.35/0.85 / 0.50 |

ControlNet / IP Adapter

Details about ControlNet / IP Adapter

For ComfyUI

Upgrade your ComfyUI_Mira to 0.5.6.0 or above

ControlNet requires comfyui_controlnet_aux 1.1.5 latest Put your ControlNet models in ComfyUI\\models\\controlnet

IP Adapter requires comfyui-art-venture 1.1.7 latest and ComfyUI_IPAdapter_plus 2.0.0 latest Put your Clip Vision models in ComfyUI\\models\\clip_vision Put your IP Adapter models in ComfyUI\\models\\ipadapter I didn't test too much on IPA, but for SDXL/ilXL/NoobXL recommends CLIP-ViT-bigG-14-laion2B-39B-b160k.safetensors with ipa_styleIpadapterFor_NoobAI-XL_v10.safetensors. You may also need CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors Only the first IP Adapter slot will accept by ComfyUI, others set to On will ignore.

For Forge Neo

For ComfyUI, Post directly feed the processed image to controlnet model without requiring Processor Model preprocessing. They accepts none(null) as preProcessModel. But Forge based controlnet DOES NOT support none(null) as preProcessModel, it accepts None(String). Forge Neo: Put your ControlNet and IP Adapter models in models\\ControlNet. Use None and always On

Usage

  1. Drag and drop (or click Add then Paste) your Image(or openPose image) to SAA/SAAC Image Info, select Pre-processor, Resolution, Post-processor and then click Add ControlNet. After it says Added the previre image will swap to your Pre-processed image, close Image info window, check ControlNet tab for more settings. Hover your mouse over a dropdown/text item to view its feature.
  2. In ControlNet tab, you can change Pre-processor by select the a one and click Refresh to generate it and update preview. (Or set Method to On but SAA preview will not update).
  3. Because images are too big to save in settings file, so ControlNet settings will not save when SAA close, but also select another settings will not override current ControlNet settings.
  4. ControlNet works on normal and regional conditon.
  5. If you are new to ControlNet, try Canny or OpenPose first.
  6. ComfyUI D-O-E-S N-O-T like submitting the same data, you may receive an Empty response error when submit same data.
  7. ComfyUI comfyui-art-venture requires a square image, you may get warnings with NOT square image input.
  8. In case of your IPA image is too big, the Resolution selection for IP Adapter will resize your input image to target size, 1024 is enough for most case.
  9. The Info button is not working when Pre-Process Model select to IP Adapter
All Pre-processor models are managed by comfyui_controlnet_aux(ComfyUI), most models will download from Hugging Face. All Post-processor models, aka the Apply ControlNet Model you need download by yourself from ComfyUI Model Manager or Hugging Face.

LoRA Slot

Forge Neo(WebUI) supports it's default LoRA prompt style . ComfyUI supports more detailed configuration of LoRA, for more information please refer to LoRA from Text. Also support check LoRA info by click the 'i' button in LoRA Slot. And, if there's a same named PNG file with LoRA, the image will show in LoRA info page.

To use LoRA in ComfyUI API, you need update your ComfyUI_Mira node to 0.5.6.0 or above

ADetailer

[!TIP]
If the settings are too confusing, just remember to adjust the gold parameter in the bottom-right corner (Denoise).

For ComfyUI

[!CAUTION]
Check before you download any .pt file from unknown/untrusted site!
https://github.com/ltdrdata/ComfyUI-Impact-Pack/issues/843

ADetailer requires Impact Pack 8.28.3 latest and Impact Subpack latest Put your ADetailer models in ComfyUI\\models\\ultralytics\\bbox Put your SAM models in ComfyUI\\models\\sams

For Forge Neo ADetailer requires ADetailer Neo latest Upscaler, Control Processor, ADetailer lists have to be read from the API. The default ADetailer model list will be updated after the first generation. Simply start generating an image as normal. Put your ADetailer models in sd-webui-forge-neo\\models\\adetailer or stable-diffusion-webui\\models\\adetailer

Queue Manager

The queue management system enables you to submit multiple generation tasks, each with their own distinct parameters. Once submitted, the queue automatically begins processing them and removes completed tasks. If an error occurs, or if you manually unchecked Enable Generation, the queue will pause after the current task has finished and will remain preserved. You can delete or view details of tasks within the queue. Deleting the first task in the queue cancels the current generation process. Recommended that the length of the queue should not exceed 10,000.

JSON/CSV List

JSON/CSV list will NOT save into your settings file Support .json and .csv files, just drag and drop (or click Add then Paste) those file info Image Info window. File format please refer to wai_characters.csv and wai_tag_assist.json, try drag them into SAA. __Random__, randomly selects an item from the list without a seed bound, works for Single and Batch (Random) generate mode. __Enumerate__, enumerates every item one by one and only works in Batch (Random) mode, in Single it downgrade to __Random__

Wildcards

Supports *.txt wildcard files, copy your wildcards into resources\app\data\wildcards By default, wildcards are randomly selected using the current seed. If wildcard random seed is Checked, a new random seed will be generated for every selection every time. Subfolder is not supported

Wildcard tag requires DOUBLE(2) underline __ on both head and tail

__YourWildCardName__

In case you didn't like wildcards file or json/csv wildcard, try the following in your prompts:

{ standing | sitting | on stomach | on back }
{ red | green | blue | blonde } { {long | short} hair | eyes}

Regional Condition / Couple

[!TIP]
Now supports Anima model

Try SAA Regional Condition with only 3 steps:

  1. Click the Regional Condition Checkbox
  2. Choose listed character or your OC
  3. Start common prompt with duo, masterpiece, best quality, amazing quality(Don't forget quality words like me), have fun!
For Forge Neo Regional Condition requires SD Forge Attention Couple latest

Semi-Auto Tag Complete

Tags credits from DraconicDragon/dbr-e621-lists-archive/danbooru_e621_merged_2026-04-01_pt20-ia-dd-ed-spc.csv

Details about Semi-Auto Tag Complete Entering the first few characters will automatically search for matching tags, starting with will search for tags with a specific ending, and tag* will search for tags that match in the middle. Use mouse to select the prompt word, but you can also use the keyboard up and down with Enter or Tab to select, press Esc to close the prompt box. ctrl + up and ctrl + down arrow to adjust the weight of the current tag, or adjust multiple tags by selecting a fragment, the usage is similar to comfyui and webui, but some details of the logic may be different.

Supports English and Chinese(translate file required) tag search. Special thanks to Kiratian(天痕) for helping to translate the tags into Chinese version.

Artist Search for Anima and others Activate it using the @ symbol. The result will be filtered by groups 1 and 8. To apply the Artist tag in Anima Model, you need to add an @ symbol at the start of the tag. E.g. mira -> @mira

| Mark | ID | Category | Group | | --- | --- | --- | --- | | [G] | 0 | General | Danbooru | | [A] | 1 | Artist | Danbooru | | [©] | 3 | Copyright | Danbooru | | [C] | 4 | Character | Danbooru | | [M] | 5 | Meta | Danbooru | | | 7 | General | E621 | | | 8 | Artist | E621 | | <©> | 10 | Copyright | E621 | | | 11 | Character | E621 | | | 12 | Species | E621 | | | 14 | Meta | E621 | | | 15 | Lore | E621 | | Wildcards | 255 | Wildcards | SAA |

Image info

Drag and drop your image into SAA window, supports Png/Jpeg/Webp. Works WebUI(Forge Neo and A1111) and ComfyUI(with image save node from ComfyUI_Mira). Double click the image to close. The Send button will override Common Prompt, Negative Prompt, Width & Height, CFG, Setp and Seed. LoRA in Common Prompt also works if you have the same one. If you don't like LoRA in prompts, try Send LoRA to Slot.

Character List

Favorite Character List

SAVE your settings after you add/remove favorite list

Add: Select a character in Character1 or OC, press Alt + D (default) Remove: Select a character in Character3 or OC, press Alt + Q (default) Search: Use @ in ANY character list to load your Favorite Character List Hotkeys: Change add/remove shortcuts in Settings

Merge/Overwrite/Replace: So, when you switch settings files, you might find that the favourite lists aren't the same. An options dialogue box will pop up and ask you what you want to do next. It's a little annoying, but it will get better once you have merged all.

Preview and Search

The Character List supports keywords search in both Chinese and English.

Top buttons and Right Click Menu

Top buttons from Left to right: Save Settings, Reload Model List, Refresh page, Right to Left, Theme Switch.

I just noticed that the electron app doesn't have a right-click menu, so I made one. Spell Check (English) Right-click on a word that has a spell check error (a wavy line drawn at the bottom) to see a hint for the corresponding word.

Copy Image/Metadata Right click on Gallery to copy current image or copy the metadata to clipboard. ComfyUI with Image Saver node will output an a1111-like format metadata. Copy image based on convert base64 data back to png, but metadata trimed by chromium core, it's impossible to put them back with chromium API, a C based lib could solve that problem, but it's not worth to do. If you do need the original image, check from the relevant (ComfyUI/WebUI) output folder. For SAAC: Drag and drop image from browser to local folder or save as from browser right click.

Send LoRA to Slot Right click on Common and Positive to send text form LoRA to LoRA Slot.

Turing FP16 (RTX 20 series)

Turing cards (RTX 20 series) cannot run bf16. FP16 Compute / Sage Attention keep that generation on fp16. Newer cards can leave them off and use bf16 or fp8. Override VAE is separate and only needed on ComfyUI when Flux2 VAEDecode crashes on Turing/Pascal.

FP16 Compute casts the loaded UNet compute to fp16. Weight storage stays as it is. Sage Attention casts attention q/k/v to fp16 and casts them back. It does not turn compute fp16 on by itself. SageAttention 1.0.6 or 2.2 still has to be installed for that path. Override VAE (ComfyUI, under FP16 switches) swaps stock VAEEncode/VAEDecode for MiraSubPack so the fused Flux2 VAE path is avoided. Turn it on for Moss / Flux2 Klein (or other Flux2-VAE models) that die at VAEDecode with CUTLASS / CUDA 719. SDXL / Anima / Qwen Image usually do not need it.

The FP16 Compute / Sage Attention switches are independent. Turning either one on keeps UNet storage at Automatic.

ComfyUI inserts the FP16 switch with ComfyUI_MiraSubPack. Override VAE also needs that pack. Forge Neo sends forge_compute_fp16 and forge_sage_fp16_cast with forge-turing-fp16. Before the next txt2img, SAA unloads the resident UNet, text encoder, and VAE when either switch turns off, or when the checkpoint or additional modules change. That frees the previous weights. A later float32 load can still offload part of a large UNet.

------

Image API Interface

For ComfyUI
[!IMPORTANT]
If you encounter issues with workflows failing to load correctly, try using 2025-05-03-022732_1775747588.json instead.

  1. Enable DEV mode in ComfyUI Settings, and load examples\2025-05-03-022732_1775747588.png into your ComfyUI, make sure you have install ComfyUI_Mira v0.5.6.0 or above.
1.1. You might need install opencv-python by ComfyUI->Manager->Install PIP packages-> opencv-python
  1. Select Image API Interface to ComfyUI
  2. Make sure Image Interface IP Address:Port same as your ComfyUI page
  3. Have fun
In case you have preview issue in SAA, try add --preview-method latent2rgb into your startup BAT file My setup:
py ComfyUI\main.py --fast --use-sage-attention --cuda-malloc --windows-standalone-build --listen 0.0.0.0 --port 58188 --preview-method latent2rgb

For Forge Neo(WebUI)

  1. Enable API mode by add --api in COMMANDLINE_ARGS (webui-user.bat)
  2. Start WebUI
  3. Select Image API Interface to WebUI
  4. Make sure Image Interface IP Address:Port same as your WerUI page
  5. Have fun

Custom path for some 3rd party mixed backend

[!WARNING]
Enable custom path will override your model path settings.
Not recommend for official WebUI(Forge Neo/A1111) and ComfyUI.
To enable a custom path, modify the file data/custom_path.yaml.
  1. Set use_custom_path to true
  2. Set enable to false to disable whole category
  3. Comment out to disable any single custom path you don't need to override
  4. Supports both single string and multi-line string for path lists
  5. Supports absolute and relative paths (relative to base_path)
#92 Setup custom patch when using ComfyUI with Stability Matrix

Folder path issue for Remote usage

SAA needs to search your ComfyUI/WebUI checkpoints folder to retrieve models, LoRAs and other items. If you use a remote back-end address instead of 127.0.0.1, the folder search will fail and SAA will run in Default mode. In this mode, you cannot change the models or set the LoRAs by LoRA slot. There are two ways to solve this problem:
  1. Mirror folder - copy your remote models folder to local, then setup SAA with the local folder. This is simple, but you need more space to mirror the entire models folder to local folder.
  2. Symbolic link or Shared folder - Create a Symbolic link or simply setup your remote models folder as shared folder (read-only recommended), then setup SAA with that folder.

Advanced security settings (API authentication)

[!WARNING]
DO NOT forward any UNSECURED local port to public internet
WebUI(Forge Neo) ONLY, DO NOT forward Comfyui API to public internet until they create a proper and secured way

Check more WebUI(Forge Neo) command args at Command-Line-Arguments-and-Settings

Copy your webui-user.bat to webui-user-api.bat then edit it with following args. Replace user:pass to your Username:Password --api --api-auth Enable API and API authentication. --nowebui means you don't need the WebUI browser interface. --port 58189 API Call port to 58189

set COMMANDLINE_ARGS= --xformers --no-half-vae --api --api-auth user:pass --nowebui --port 58189
Start your Forge Neo with new webui-user-api.bat Copy and paste your Username:Password to SAA->Settings->WebUI API Auth, then set Enable to ON

------

Hires Fix and Image Color Transfer

Please refer to Image Color Transfer for more details about Image Color Transfer. Due to lack of generate rule and missing openCV, Color transfer no longer support in WebUI

Makesure all upscaler models located in upscale_models folder.

Notes for ComfyUI: Comfyui needs to download upscale models by yourself. Select Manager->Model Manager and filter with upscale, then download them.

Upscaler notes for WebUI(Forge Neo/A1111): WebUI uses a name-based upscaler model list. The static upscaler list should work, and will update to API list after the first generate.

Forge uses a file-based upscaler model list. But it's messy! IMPORTANT: If the upscale_models folder is NOT exist, SAA will use static upscaler list If you're confused about how to do it, don't panic—just run generate once, and HiFix model list will update properly. The solution: 1. Create a folder called upscale_models inside the models folder and put all your upscaler models in it. 2. Create a symbolic link named after the upscaler model folder, e.g. ESRGAN, which points to upscale_models. 3. Restart your Forge. The Hires Fix model should now work and will update to API list after the first generate.

------

Chinese Translate and Character Verification

Many thanks to the following people for their selfless contributions, who gave up their valuable time to provide Chinese translation and character data verification. They are listed in no particular order. Silence, 燦夜, 镜流の粉丝, 樱小路朝日, 满开之萤, and two more who wish to remain anonymous.

Character List Special thanks

lanner0403 WAI-NSFW-illustrious-character-select Cell1310 Illustrious XL (v0.1) Recognized Characters List mobedoor #23 UdinXProgrammer #62 Nurimtod #75 #83 atmogenic #84 #85 funnygeeker #87 ------

FAQ

Double clicked saa.exe but nothing happen?
  1. It might caused by files download issue or missing files.
  2. Try run it in console, by input cmd in your Explorer's address bar to open a console.
  3. Type saa then enter in console, check backend logs for more information.
I messed up with setup wizard...
  1. Close the App
  2. Delete settings.json in resources/app/settings
  3. Try it again
ERR_CONNECTION_REFUSED
  1. In most cases, it's the wrong address for the (ComfyUI/WebUI) back-end API.
A Browser based SAA?
  1. YES
  2. Check Advanced security settings (API authentication) for more information.
Error HTTP 400 ...... Cannot execute because node StepAndCfg does not exist ......
  1. Install ComfyUI_Mira
  2. Restart your ComfyUI
Upscale Model list is None (ComfyUI)
  1. Have you modified the default directory configuration?
  2. A non-official version?
  3. Check #58

ComfyUI/WebUI is busy, cannot run new generation, please try again later. Refer to 5, 6 in README_SAAC.md

VAEDecode crashes on Moss / Flux2 Klein (CUTLASS Mma<16,8,16> / CUDA 719)

  1. Turing (RTX 20) / Pascal (GTX 10) only. Newer cards are fine.
  2. ComfyUI 0.43+ fused Flux2 VAE path is the trigger. SDXL / Anima / Qwen Image 2.1 are usually unaffected.
  3. Enable Override VAE under the FP16 switches in the Model panel (needs latest ComfyUI_MiraSubPack).
  4. See Turing FP16.

NeshDevTech

NeshDevTech is a professional technology firm passionate about creating innovative, high-performance web and mobile solutions.

Core Services
  • Custom Laravel Apps
  • SPA (React & Vue.js)
  • Flutter Mobile Apps
  • SEO & Performance Opt
Get in Touch
Available for Projects

Need a high-performing system? Let's discuss your project.


© 2026 NeshDevTech. All rights reserved.

Built with

Chat with me