Bundles the known-working ROCm torch, triton-rocm, and torchvision wheels
locally so install no longer depends on the PyTorch nightly index being
available. Also fixes model name mismatches between docs and code, and
adds missing dependencies.
What:
• wheels/ — bundled torch 2.11.0+rocm7.2, triton-rocm 3.6.0, and
torchvision 0.26.0+rocm7.2 (wheels/ is in .gitignore; they are
downloaded once and reused)
• README install section — replaced 'pip install torch --index-url ...'
with 'pip install wheels/*.whl' for all three ROCm wheels; added
download instructions for the initial fetch
• README Current State — marked self-contained torch wheel as done,
removed from Future Improvements
• Fixed model name defaults across README examples and session.py
docstring — they used shortened filenames (novaAnimeXL.safetensors,
qwen_image_edit.safetensors) that don't match the actual symlinks
created by the Models section
• pyproject.toml — added torchvision and realesrgan (previously
undeclared; upscale.py imported torchvision.transforms at module
level without the dependency being declared)
Why:
The ROCm nightly index is volatile — versions rotate frequently and the
index itself may not be reachable. Bundling the three ROCm-only wheels
(torch, triton-rocm, torchvision) makes the install reproducible. All
other dependencies resolve from standard PyPI.
Verified by creating a clean Python 3.12 venv, installing all three
wheels from the local files, running 'pip install -e .', and confirming
'vnasset --help' and GPU tensor allocation work without any remote
ROCm index access.
rembg with ONNX Runtime on CPU was chosen over BiRefNet: the latter
requires deform_conv2d which crashes on ROCm bfloat16 and runs at 40s
in float32. rembg delivers 0.23s per 1024x1024 image, no GPU deps,
and isnet-anime is trained specifically on anime images — exactly the
target domain.
CLI and session API both support single-image and batch (plural-first)
modes, reusing one model session across files.
- Support (word:weight), [word], ((nested)) syntax
- Support BREAK for conditioning chunking (.and() translation)
- Use CompelForSDXL (modern API, avoids deprecation)
- Add --raw flag to bypass weighting and fall back to plain encoding
- Update README with Prompt Syntax section and examples
- Add docs/comfyui-prompt-style.md with design doc