Repository navigation
Edit Track Titles
Some works ship their audio as 01.mp3, #2.wav, Track03.opus, you might want to rename
these to meaningful track titles, or if you have a translated version of a work but you want to see it in a nother language. you can achieve this through the Edit Metadata -> Edit Track Titles button.
This does not rename your local files, it is stored in the database only.
You need to be logged in as admin (or have auth disabled).
- Open a work → Edit metadata
- Edit track titles
- Type into any track, then Save
Expand Fill from a track list, paste one title per line, pick which folders to apply it to, and press Fill.
The list is applied by position — line 1 goes onto the folder's first track, line 2 onto its second, and so on. Blank lines are ignored, so a double-spaced paste works fine.
Apply to folders selection default to all selected, which is sometimes not you want: Unselect a folder the list doesn't describe, like a bonus folder.
Press Save when you are done.
If you point the server at an LLM, an Extract from description button appears next to Fill. It sends the description to the LLM endpoint you specified (see Connecting a model) and returns a list of track titles.
Requirements:
- The work must have a scraped description. If it doesn't, refresh its metadata first.
- DLsite works only. The Fanza scraper is not implemented..
Supply the following environment variables for your Kikoenai process.
| Variable | Required | Notes |
|---|---|---|
KIKO_LLM_BASE_URL |
yes | OpenAI-compatible base, including /v1
|
KIKO_LLM_MODEL |
yes | e.g. qwen3:8b
|
KIKO_LLM_API_KEY |
no | Omit for a local server |
KIKO_LLM_EXTRA_BODY |
no | JSON merged into the request body |
KIKO_LLM_TIMEOUT_MS |
no | Default 600000 (10 minutes) |
environment:
- KIKO_LLM_BASE_URL=http://host.containers.internal:11434/v1
- KIKO_LLM_MODEL=qwen3:8b
- KIKO_LLM_EXTRA_BODY={"think":false,"options":{"num_ctx":16384}}llama-server -m unsloth/Qwen3-4B-Instruct-2507-GGUF:Q4_K_M --host 0.0.0.0 --port 8080 -c 16384 --jinjaKIKO_LLM_BASE_URL=http://host.containers.internal:8080/v1
KIKO_LLM_MODEL=qwen3
KIKO_LLM_EXTRA_BODY={"chat_template_kwargs":{"enable_thinking":false}}
Warning
KIKO_LLM_MODEL must be non-empty, although it is ignored by the server.
16384 should be enough. A long description plus a long file list runs to roughly 9–10k tokens on the biggest works; 8192 covers the large majority if memory is tight.
Reasoning output is stripped before parsing, so a thinking model still works — it's just slower for no benefit. The switch is provider-specific:
| Server | KIKO_LLM_EXTRA_BODY |
|---|---|
| Ollama | {"think":false} |
llama.cpp (with --jinja) |
{"chat_template_kwargs":{"enable_thinking":false}} |
| vLLM / SGLang | {"chat_template_kwargs":{"enable_thinking":false}} |
| OpenRouter | {"reasoning":{"exclude":true}} |
Note
Remote provider may reject the request because of NSFW content in the description.