is_valid_version() previously only matched strict 3-part semver (X.Y.Z),
causing a false ERROR log on startup whenever requirements.txt contained a
2-part constraint such as SQLAlchemy>=2.0.
Steps to reproduce (before fix):
ComfyUI currently logs at ERROR level on every startup:
[2026-04-21 16:06:11.527] Invalid version format in requirements.txt: 2.0
The offending entry is SQLAlchemy>=2.0 (merged in #13316).
Root cause:
The regex r'^(\d+)\.(\d+)\.(\d+)$' requires exactly three numeric parts.
PEP 440 treats 2.0 and 2.0.0 as equivalent release identifiers, so the
constraint is valid but the validator rejected it.
Fix:
Replace the regex with r'^\d+(\.\d+)*$' which accepts 1-, 2-, and 3-part
(and longer) all-numeric release identifiers: 2, 2.0, 2.0.0, 1.25.3.
Also downgrade the log level from ERROR to WARNING, since an unparseable
entry is skipped gracefully and does not break the install.
Previously issue #12813 was worked around by changing simpleeval>=1.0 to
simpleeval>=1.0.0 in requirements.txt. This commit fixes the underlying
parser so the same workaround is not needed for future entries.
The /view endpoint returns text/plain for .svg files on some platforms
because Python's mimetypes module does not always include SVG by default.
Explicitly register image/svg+xml so <img> tags can render SVGs correctly.
Amp-Thread-ID: https://ampcode.com/threads/T-019d2da7-6a64-726a-af91-bd9c44e7f43c
* add 'is_default' to model paths config
including impl and doc in example file
* update weirdly overspecific test expectations
* oh there's two
* sigh
* Expand user path.
* Add test.
* Add unit test for expanding base path.
* Simplify unit test.
* Remove comment.
* Remove comment.
* Checkpoints.
* Refactor.