invoke-ai / invoke-ai/launcher

feat: Metadata Based YAML Settings

Open
#70 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
48
Forks
23
Avg merge
1m
Merged PRs (30d)
1

Description

This FR follows up on #31 and takes advantage of the recent [commit](https://github.com/invoke-ai/launcher/commit/7d887b4d3c70504cf0e8ddcddd80061178c2cd85) adding support for downloading [metadata](https://github.com/invoke-ai/InvokeAI/blob/8294e2cdea27520bf465c39b52ad57fbc7f092d9/pins.json) from the main Invoke repository.

It would be helpful to expose certain YAML file options in the settings area of the Launcher, using a control JSON file in the repository as a reference. This would allow for invalid settings to be wiped from the YAML file prior to launch.

The control file would probably look something like:

```json
{
"enable_partial_loading": {
"type": "bool",
"default": "false",
"description": "Low VRAM Mode",
"min_version": "5.6.0",
"max_version": "",
},
"hashing_algorithm": {
"type": "list",
"values": {
"blake3_single": "Single Threaded (default)",
"blake3_multi": "Parallelized (SSDs only)",
"random": "Disabled",
},
"default": "blake3_single",
"description": "Model Hashing",
"min_version": "5.0.0",
"max_version": "",
},
}
```

This would allow new settings to be introduced by commit to the main repository, and also allow old settings to be forcibly wiped from the YAML file unless the user opts out.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing follow-up issue #31 and commit 7d887b4d3c70504cf0e8ddcddd80061178c2cd85, including the linked pins.json metadata. Then trace how the Launcher exposes settings and reads YAML. Done means repository metadata can drive settings controls and invalid or obsolete YAML options are removed unless the user opts out.

Written by the indexing model from the issue text.

Assessment

Tech stack
json, typescript, yaml
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.