diff --git a/.agents/knowledge/topics/fix_patterns.md b/.agents/knowledge/topics/fix_patterns.md
index bcfab0d2..e6780c29 100644
--- a/.agents/knowledge/topics/fix_patterns.md
+++ b/.agents/knowledge/topics/fix_patterns.md
@@ -797,6 +797,18 @@ Based on the fix type, write the fix entry to the appropriate document:
dropping a supported Python version.
- **Related Constraint**: N/A
+### Versioned model rows require independent size verification
+- **Date**: 2026-09-21
+- **Symptom**: The supported-model table listed Qwen-Image 2.1 as 20B even though its official
+ model card identifies the visual generation component as 7B.
+- **Root Cause**: The new version inherited the parameter count of earlier Qwen-Image entries
+ without independently verifying the changed architecture.
+- **Fix**: Correct the README row to 7B, add an exact-row documentation regression, and align
+ existing documentation tests with the newly added model row and pinned Diffusers installation.
+- **Lesson**: A versioned model name does not imply architectural continuity; verify parameter
+ counts against the official model card and lock the specific table row rather than a global count.
+- **Related Constraint**: N/A
+
## Cross-refs
- UP: [Hard Constraints](../constraints.md), [Architecture](../architecture.md)
diff --git a/README.md b/README.md
index 65f927f0..411b97b5 100644
--- a/README.md
+++ b/README.md
@@ -82,7 +82,7 @@ This experimental feature leverages `diffusers`'s `transformer.set_attention_bac
| BAGEL-7B-MoT | 14B | bagel |
| SenseNova-U1 1.0 | 16B | sensenova |
| SenseNova-U1 1.5 | 16B | sensenova |
- | Qwen-Image 2.1 | 20B | qwen-image-2.1 |
+ | Qwen-Image 2.1 | 7B | qwen-image-2.1 |
| Text-to-Video | Wan2.1-T2V-1.3B | 1.3B | wan2_t2v |
| Wan2.1-T2V-14B | 14B | wan2_t2v |
diff --git a/tests/docs/test_minimax_h3_docs.py b/tests/docs/test_minimax_h3_docs.py
index 6620d343..a8c5c1d8 100644
--- a/tests/docs/test_minimax_h3_docs.py
+++ b/tests/docs/test_minimax_h3_docs.py
@@ -141,13 +141,16 @@ def test_gpu_validation_matrix_declares_scope_and_completed_result() -> None:
assert "| Wan first/last | `Wan2.2-I2V-A14B-Diffusers` |" in text
-def test_install_docs_use_the_released_diffusers_runtime() -> None:
+def test_install_docs_distinguish_released_and_pinned_diffusers_runtimes() -> None:
readme = _text("README.md")
dockerfile = _text("docker/docker-cuda/Dockerfile")
docker_readme = _text("docker/README.md")
+ qwen_news = readme[readme.index("* **[2026-09-20]**") : readme.index("* **[2026-08-21]**")]
+ h3_news = readme[readme.index("* **[2026-08-21]**") : readme.index("* **[2026-04-25]**")]
assert "diffusers>=0.40.0" in readme
- assert "pip install -e ./diffusers" not in readme
+ assert "pip install -e ./diffusers" in qwen_news
+ assert "pip install -e ./diffusers" not in h3_news
assert "pip install -e ./diffusers" not in dockerfile
assert "submodule (required)" not in docker_readme
diff --git a/tests/docs/test_qwen_image_21_docs.py b/tests/docs/test_qwen_image_21_docs.py
new file mode 100644
index 00000000..8643e3dc
--- /dev/null
+++ b/tests/docs/test_qwen_image_21_docs.py
@@ -0,0 +1,28 @@
+# Copyright 2026 Jayce-Ping
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from pathlib import Path
+
+ROOT = Path(__file__).resolve().parents[2]
+
+
+def test_readme_lists_qwen_image_21_as_7b() -> None:
+ readme = (ROOT / "README.md").read_text(encoding="utf-8")
+ model_link = 'Qwen-Image 2.1'
+ row_start = readme.index(model_link)
+ model_row = readme[row_start : readme.index("", row_start)]
+
+ assert "7B | " in model_row
+ assert "20B | " not in model_row
+ assert "qwen-image-2.1 | " in model_row
diff --git a/tests/docs/test_sensenova_docs.py b/tests/docs/test_sensenova_docs.py
index 4e1bbc2b..abedc4a1 100644
--- a/tests/docs/test_sensenova_docs.py
+++ b/tests/docs/test_sensenova_docs.py
@@ -24,7 +24,7 @@ def _text(path: str) -> str:
def test_main_readme_lists_sensenova_as_t2i_and_multi_reference_i2i() -> None:
readme = _text("README.md")
t2i_start = readme.index('| Text-to-Image | ')
- combined_start = readme.index('
| Text-to-Image & Image(s)-to-Image | ')
+ combined_start = readme.index('
| Text-to-Image & Image(s)-to-Image | ')
video_start = readme.index('
| Text-to-Video | ')
t2i_only_rows = readme[t2i_start:combined_start]