The per-block sliders were not targeting the blocks they named. ComfyUI's key_map maps a LoRA key name to the model state-dict key string the patch targets (or a (key, offset) tuple for fused FLUX qkv/linear1 weights), but _invert_key_map treated those values as nn.Module objects and indexed [0] on them -- on a string that is its first character. Every patch then resolved through one arbitrary lookup, so all weights were bucketed together. Classify patches directly on the canonical target key instead, which also makes the mapping dialect-proof. Fused (key, offset) patches are unpacked correctly. Also fixes SDXL patches that matched no stage being silently discarded, FLUX pushing every group into both the model and CLIP patchers, dead double_blocks 19-28 ranges, and bare torch.load on non-safetensors LoRAs. Adds LoRA file caching, an "info" output with a per-block report, optional clip input, tooltips, a "Detail & Texture" preset, and unit tests with CI. Bumps version to 1.1.0.
26 lines
614 B
YAML
26 lines
614 B
YAML
name: Tests
|
|
|
|
on:
|
|
push:
|
|
branches: ["**"]
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
unittest:
|
|
name: Block classification tests
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python-version: ["3.9", "3.12"]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
# bobs_blocks.py has no ComfyUI or torch dependency, so the mapping logic
|
|
# is testable on a bare interpreter.
|
|
- name: Run unit tests
|
|
run: python -m unittest discover -s tests -v
|