Previously, dependency cycles that were created during node expansion
would cause the application to quit (due to an uncaught exception). Now,
we'll throw a proper error to the UI. We also make an attempt to 'blame'
the most relevant node in the UI.
* Make input/widget conversion sub-menus optional
* Improve input/widget conversion sub-menu text
- Fix incorrect text for conversion from widget to input, previously it
effectively said "convert input to input"
- Use "input" instead of "🔘". The former is clearer and consistent
with the rest of the application.
- Use title case (consistent with the rest of the menu entries).
- Strip the trailing periods. There is already a visual indicator for
sub-menus, and no other sub-menus use trailing periods.
* A1111 import: Set VAE name
This patch sets the VAE name for the `VAELoader` when present in the png
metadata.
* A1111 import: Skip all hashes
When importing from A1111 the parsing assumes that values of a key will
never contain a ":", which is not correct.
There are 2 cases where we can have ":" in the value:
- Inside a string. E.g.:
Lora hashes: "xl_more_art-full_v1: fe3b4816be83, add-detail-xl: 9c783c8ce46c"
- When the value is a json dictionary. E.g.:
Hashes: {"vae": "63aeecb90f", "embed:negativeXL_D": "fff5d51ab6"}
This patch changes how we parse the metadata to take those 2 cases into
account and also skips the following additional keys that are present in
some Forge images:
- Version
- VAE hash
- TI hashes
- Lora hashes
- Hashes
* A1111 import: Parse Hires steps
This patch parses the `Hires steps` parameter that is part of the High
Resolution Upscale configuration when it is present, and fallbacks to
the one from the `samplerNode` (like the code currently does) if it's
not present.