genmodelfit 0.3.0__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/CHANGELOG.md +78 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/CONTRIBUTING.md +74 -37
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/PKG-INFO +51 -5
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/README.md +50 -4
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/docs/accuracy.md +58 -1
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/docs/license_requests.md +1 -1
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/docs/release.md +100 -2
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/docs/schema.md +177 -9
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/docs/sources.md +14 -5
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/__init__.py +3 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/_version.py +1 -1
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/calibrate.py +97 -4
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/cli.py +638 -1
- genmodelfit-0.4.0/src/genmodelfit/contrib.py +1357 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/data/calibration.json +51 -1
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/data/db.json +2079 -1729
- genmodelfit-0.4.0/src/genmodelfit/data/measurements_community.json +8 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/db.py +8 -1
- genmodelfit-0.4.0/src/genmodelfit/diff.py +277 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/estimate.py +123 -10
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/models.py +21 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/recommend.py +9 -1
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/safety.py +8 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/update.py +65 -11
- genmodelfit-0.4.0/src/genmodelfit/weekly.py +587 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/clihelp.py +7 -0
- genmodelfit-0.4.0/tests/fixtures/contrib/rtx-3070/2026-10-20-5bedb2da.json +37 -0
- genmodelfit-0.4.0/tests/fixtures/contrib/rtx-3070/2026-10-20-78740c83.json +37 -0
- genmodelfit-0.4.0/tests/fixtures/contrib/rtx-3070/2026-10-20-ccef2c3e.json +37 -0
- genmodelfit-0.4.0/tests/fixtures/contrib/rtx-4060/2026-10-21-e361ba52.json +37 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf_search/direction_-1_filter_not-for-all-audiences_limit_100_pipeline_tag_text-to-image_sort_downloads.json +23 -1
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf_search/direction_-1_limit_100_pipeline_tag_text-to-speech_sort_trendingScore.json +19 -4
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_cli_casual.py +25 -5
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_cli_json.py +15 -4
- genmodelfit-0.4.0/tests/test_contrib.py +1036 -0
- genmodelfit-0.4.0/tests/test_diff.py +219 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_groups.py +1 -1
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_license_sources.py +18 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_release.py +1 -1
- genmodelfit-0.4.0/tests/test_safety_dataset.py +31 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_status.py +25 -10
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_update.py +36 -2
- genmodelfit-0.4.0/tests/test_weekly.py +364 -0
- genmodelfit-0.4.0/tests/test_workflows.py +125 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/.gitignore +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/LICENSE +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/THIRD_PARTY_NOTICES +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/docs/gate.md +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/docs/hardware.md +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/pyproject.toml +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/__main__.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/bench.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/data/__init__.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/data/measurements.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/data/signing_keys/2026-10.pub +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/downloader.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/families.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/fetch.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/gate.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/groups.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/hardware.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/headers.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/hf.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/license_sources.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/py.typed +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/remote.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/repo_precision.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/signing.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/status.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/table.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/tasks.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/src/genmodelfit/workflow.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/conftest.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/3d_hunyuan3d_image_to_model.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/audio_ace_step_1_5_checkpoint.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/lspci_amd_nvidia.txt +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/nvsmi_garbage.txt +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/nvsmi_multi.csv +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/nvsmi_na.csv +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/nvsmi_no_devices.txt +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/nvsmi_no_driver.txt +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/nvsmi_old_error.txt +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/nvsmi_old_kepler.csv +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/nvsmi_old_maxwell.csv +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/nvsmi_rtx3070_win.csv +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/registry_amd_stale.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/registry_this_pc.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/wmi_amd_single.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/wmi_basic_nvidia.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/wmi_intel_nvidia.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/hardware/wmi_this_pc.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/image_sdxl_simple.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/image_z_image_turbo_int8.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/object_info_subset.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/text_to_video_wan.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/ACE-Step__Ace-Step1.5.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/AtomicChat__Qwen-Image-2.1-Turbo-Uncensored-GGUF.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Comfy-Org__Wan_2.1_ComfyUI_repackaged.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Comfy-Org__ace_step_1.5_ComfyUI_files.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Comfy-Org__hunyuan3D_2.0_repackaged.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Comfy-Org__stable-audio-open-1.0_repackaged.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Comfy-Org__z_image_turbo.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/ComfyUI-Wiki__t5-base.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/MeiGen-AI__InfiniteTalk.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Noctaluna__Noct-Q-Uncensored-Qwen-Image-2.1.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Qwen__Qwen-Image-2.1.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Qwen__Qwen3-VL-8B-Instruct.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Tongyi-MAI__Z-Image-Turbo.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Wan-AI__Wan2.1-FLF2V-14B-720P.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Wan-AI__Wan2.1-I2V-14B-480P.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Wan-AI__Wan2.1-I2V-14B-720P.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Wan-AI__Wan2.1-T2V-1.3B.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Wan-AI__Wan2.1-T2V-14B.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Wan-AI__Wan2.1-VACE-1.3B.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/Wan-AI__Wan2.1-VACE-14B.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/alibaba-pai__Wan2.1-Fun-V1.1-1.3B-Control-Camera.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/alibaba-pai__Wan2.1-Fun-V1.1-1.3B-Control.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/alibaba-pai__Wan2.1-Fun-V1.1-1.3B-InP.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/alibaba-pai__Wan2.1-Fun-V1.1-14B-Control-Camera.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/example-org__plain-nsfw-xl.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/hexgrad__Kokoro-82M.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/htdong__Wan-Alpha.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/stabilityai__stable-audio-open-1.0.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/tencent__Hunyuan3D-2.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/tencent__Hunyuan3D-2mv.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf/yl4579__StyleTTS2-LJSpeech.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf_readme/AtomicChat__Qwen-Image-2.1-Turbo-Uncensored-GGUF.md +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf_readme/Noctaluna__Noct-Q-Uncensored-Qwen-Image-2.1.md +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf_readme/example-org__plain-nsfw-xl.md +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf_readme/hexgrad__Kokoro-82M.md +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf_search/direction_-1_limit_100_pipeline_tag_text-to-image_search_uncensored_sort_downloads.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/hf_search/direction_-1_limit_100_pipeline_tag_text-to-speech_sort_downloads.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/templates/3d_hunyuan3d_image_to_model.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/templates/audio_ace_step_1_5_checkpoint.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/templates/audio_stable_audio_example.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/templates/image_z_image_turbo.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/templates/image_z_image_turbo_int8.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/templates/index.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/update/templates/templates-wan2_1_infinitetalk_music.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/fixtures/video_wan2_2_14B_i2v.json +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_bench.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_bench_rtx3070.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_core.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_download.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_embedding.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_estimate.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_families.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_gate.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_gate_real.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_hardware.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_invariants.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_issue_28.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_issue_30.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_licenses.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_privacy.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_privacy_pc.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_review_14.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_review_fixes.py +0 -0
- {genmodelfit-0.3.0 → genmodelfit-0.4.0}/tests/test_table.py +0 -0
|
@@ -7,6 +7,84 @@ All notable changes to this project are documented here. The format is based on
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.4.0] - 2026-10-21
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- `genmodelfit diff OLD NEW [--json]` and `gmf.diff_db(old, new)` (Issue #19): what changed between two lists —
|
|
15
|
+
added / removed models, license changes (changes toward the permissive side are marked), auto-recommendation
|
|
16
|
+
changes under one policy for both lists (HEAD age ignored), size / precision changes beyond a threshold, newly
|
|
17
|
+
uncensored models, failed HEAD checks, 401 repos and changed `sources` numbers. JSON: docs/schema.md "diff".
|
|
18
|
+
2 つの一覧の違いをまとめる `diff` を足した。
|
|
19
|
+
- Weekly data refresh (Issue #19): `.github/workflows/weekly-data.yml` rebuilds the list every Monday with
|
|
20
|
+
`python -m genmodelfit.weekly` (caches kept between runs), checks it (auto count, the HEAD expiry must be more than
|
|
21
|
+
7 days away, ruff and pytest with the new list) and opens a pull request `automated/weekly-data` whose body is the
|
|
22
|
+
diff. It is never merged automatically; publishing stays in data.yml after the owner merges. A partial rebuild
|
|
23
|
+
fails unless run by hand with `allow_partial` and only HF repos failed transiently. docs/release.md.
|
|
24
|
+
毎週、作り直した一覧を PR にする(自動ではマージしない。配るのはマージした一覧だけ)。
|
|
25
|
+
|
|
26
|
+
- Measurement submissions from users (Issue #34). `genmodelfit bench … --submission PATH` and
|
|
27
|
+
`genmodelfit contrib make --from <bench result>` write a submission file (`contrib_schema` 1:
|
|
28
|
+
`data/contrib/<gpu>/<date>-<sha8>.json`) with the GPU name / VRAM / generation / compute capability / driver, the ComfyUI
|
|
29
|
+
version, the OS family, RAM rounded to GiB and the results — never host / user names, paths, GPU UUID, PCI address,
|
|
30
|
+
IP, CPU name or exact times (the note is scrubbed). genmodelfit sends nothing; users open the pull request themselves.
|
|
31
|
+
`contrib show` prints exactly what will be shared with a privacy checklist; `contrib validate` checks schema, value
|
|
32
|
+
ranges, privacy patterns, GPU name / generation consistency, file name and duplicates (exit 0 / 1 / 2);
|
|
33
|
+
`.github/workflows/contrib.yml` runs it on pull requests touching `data/contrib/**` (read-only, the tool installed
|
|
34
|
+
from the base commit, results in the job summary). `contrib aggregate` groups submissions by model, settings and GPU
|
|
35
|
+
with median / MAD outlier removal into the new bundled `measurements_community.json` (empty for now), and
|
|
36
|
+
`--report` re-runs the calibration and flags errors above a threshold (default 25%, exit 3 with `--fail-on-breach`)
|
|
37
|
+
for the weekly job of #19.
|
|
38
|
+
- `Estimate.basis_detail` (`measured` > `measured_community` > `calibrated` > `estimated`); `basis` stays
|
|
39
|
+
`measured` / `estimated`. Community measurements are used only when at least two consistent submissions agree (and
|
|
40
|
+
no OOM), rank after the maintainer's measurements at the same settings, and can only raise the needs (never lower
|
|
41
|
+
VRAM / RAM, never improve a level, never raise the score: `basis` points 0 like estimates). `validate` marks
|
|
42
|
+
implausible values (more than 40% from the formula, below the weights with `offload: none`), values that would raise
|
|
43
|
+
the estimate by more than 15% or change a level at common VRAM / RAM sizes, unknown models and unknown GPUs as
|
|
44
|
+
review-required; approval is per submission (`--allow-review <sha8>` or the maintainers' `data/contrib/REVIEWED`).
|
|
45
|
+
Unapproved community rows raise needs by at most 15% and are ignored where they would change the level.
|
|
46
|
+
`aggregate --report` lists the level changes caused by community data.
|
|
47
|
+
- `torch_reserved` measurements (bench; without the CUDA context) are now lower bounds: below the formula they no
|
|
48
|
+
longer lower the estimate (the bundled RTX 3070 rows for BiRefNet and MoGe now use the formula value).
|
|
49
|
+
`Measurement.origin` / `n_submissions` / `consistent` (optional fields).
|
|
50
|
+
- `python -m genmodelfit.calibrate` also writes the check rows (measurements in another `vram_metric`, such as the
|
|
51
|
+
RTX 3070 runs) to `calibration.json` (`check`) and the accuracy table; LOO rows carry `gpu_name` and `origin`.
|
|
52
|
+
Coefficients are unchanged.
|
|
53
|
+
利用者の実測の提出(作る・見る・検査・まとめ・毎週の精度の点検)と、根拠の段階 `basis_detail` を足した。
|
|
54
|
+
|
|
55
|
+
### Changed
|
|
56
|
+
|
|
57
|
+
- Hugging Face selection (Issue #19): the 1,000 all-time floor for models found only by the trending / likes30d
|
|
58
|
+
searches now needs a trendingScore of at least 0.5 and at least 100 downloads in the last 30 days (otherwise
|
|
59
|
+
10,000 applies); repo names containing `merge` / `mergekit` are skipped like the tag; quantized / format copies
|
|
60
|
+
are recognized by name (`-GGUF`, `-Q8_0`, `_K_M`, `-fp8`, `-nf4`, `-int8`, `_diffusers`, `-Quantized`, …) and
|
|
61
|
+
only the most downloaded is kept; uncensored models also need 100 downloads in the last 30 days.
|
|
62
|
+
HF の選び方を締めた(伸びている条件・名前の merge・量子化の写し・無検閲は直近 30 日も使われているもの)。
|
|
63
|
+
- The bundled list was rebuilt with these rules (326 entries: HF 48, uncensored 26; auto 99 unchanged).
|
|
64
|
+
Added: 6 uncensored HF models that meet the rules and the new official template `video_fasth3_ominiref_r2v`;
|
|
65
|
+
removed: `hf:0xSojalSec/Qwen-Image-2.1-Uncensored-GGUF` (a quantized copy of
|
|
66
|
+
`hf:abenzerps/Qwen-Image-2.1-Uncensored-Quantized`) and `hf:TheImposterImposters/lustifySDXLNSFW_v20-inpainting`
|
|
67
|
+
(the same weights, by sha256, as the more downloaded `hf:andro-flock/LUSTIFY-SDXL-NSFW-checkpoint-v2-0-INPAINTING`).
|
|
68
|
+
同梱の一覧を新しい規則で作り直した。
|
|
69
|
+
- Weekly PR body: every upstream string is HTML-escaped and Markdown-neutralized (`weekly.md`), mentions are
|
|
70
|
+
broken, truncation keeps `<details>` balanced; a scheduled run fails when more than 5 entries become uncensored
|
|
71
|
+
or when HF / template / uncensored / auto counts fall below half.
|
|
72
|
+
|
|
73
|
+
### Fixed
|
|
74
|
+
|
|
75
|
+
- Exclusion (safety): uncensored models whose ID, name, tags or card mention a dataset known to include a category
|
|
76
|
+
of sexual content involving minors (`DATASET_TERMS`: e621) are excluded, even when that is not their purpose
|
|
77
|
+
(owner decision, 2026-10-21; `hf:hearmeneigh/sd21-e621-rising-v2` and `hf:Laxhar/noobai-XL-1.1` — its card says it was trained on the full Danbooru and e621 datasets — removed from the bundled list).
|
|
78
|
+
学習データに未成年の性的表現の分類を含む画像の集まり(e621)を使う無検閲のモデルは外す(安全側)。
|
|
79
|
+
|
|
80
|
+
- When a Hugging Face repo was renamed, `update` applied the license-source table with the new name from the API
|
|
81
|
+
while re-applying it uses the name in the file URL, so the two disagreed (`license_path`). Both now use the URL's
|
|
82
|
+
name. Found by the first weekly rebuild (Comfy-Org/flux2-klein-9B → vae-text-encorder-for-flux-klein-9b).
|
|
83
|
+
リポジトリの名前が変わったとき、出どころの表をファイルの URL の名前で当てるようにした。
|
|
84
|
+
- Tests no longer pin numbers of the bundled list (uncensored count, HEAD check date) so that the weekly rebuild
|
|
85
|
+
can pass them.
|
|
86
|
+
|
|
87
|
+
|
|
10
88
|
## [0.3.0] - 2026-10-21
|
|
11
89
|
|
|
12
90
|
### Added
|
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
genmodelfit の見積もりは、実際の PC で測った値(実測)があるとそれを優先します。いろいろな GPU の実測が
|
|
4
4
|
集まるほど、見積もりが正確になります。`genmodelfit bench` で測った結果を Pull Request で送ってください。
|
|
5
5
|
|
|
6
|
-
**English summary:** Run `genmodelfit bench <template> --url http://127.0.0.1:<port
|
|
7
|
-
|
|
8
|
-
`
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
**English summary:** Run `genmodelfit bench <template> --url http://127.0.0.1:<port> --submission data/contrib/`
|
|
7
|
+
against your own ComfyUI (in a clone of your fork). It writes a submission file
|
|
8
|
+
`data/contrib/<gpu>/<date>-<sha8>.json` (`contrib_schema` 1: GPU name / VRAM / generation / driver, ComfyUI version,
|
|
9
|
+
OS family, RAM rounded to GiB, the model, settings and results). Check exactly what will be shared with
|
|
10
|
+
`genmodelfit contrib show <file>` (it also runs a privacy checklist), then open a pull request that adds only that file.
|
|
11
|
+
**genmodelfit itself never sends anything**; sharing happens only through the pull request you open. The file never
|
|
12
|
+
contains your host name, user name, paths, GPU UUID, PCI address, IP, CPU name or exact time. CI runs
|
|
13
|
+
`genmodelfit contrib validate` on the pull request. Out-of-memory runs are welcome too (`outcome: "oom"`).
|
|
14
|
+
Already have a saved bench result? `genmodelfit contrib make --from <file>` converts it.
|
|
13
15
|
|
|
14
16
|
**License of contributions:** genmodelfit (code and bundled data) is under MPL-2.0. By opening a pull request you
|
|
15
17
|
agree that your contribution (code, measurements or other data) is licensed under MPL-2.0 like the rest of the
|
|
@@ -77,44 +79,79 @@ genmodelfit bench 3d_hunyuan3d_image_to_model --url http://127.0.0.1:8188 --step
|
|
|
77
79
|
`--output パス` を付けます。「標準でない」結果も同じで、`--save-nonstandard` か `--output` で保存できます。
|
|
78
80
|
見積もりは `outcome` が `ok` で `standard` が `true` の実測だけを使います。
|
|
79
81
|
|
|
80
|
-
## 2.
|
|
82
|
+
## 2. 提出用の JSON を作る
|
|
81
83
|
|
|
82
|
-
bench
|
|
83
|
-
保存先を表示します(`--output` で場所を変えられます)。キャッシュに置いた実測は、その PC の `genmodelfit` の見積もりにすぐ使われます。
|
|
84
|
+
自分のフォーク(GitHub の Fork)を手元に clone し、そのフォルダで bench に `--submission` を付けて測ります。
|
|
84
85
|
|
|
85
|
-
|
|
86
|
+
```powershell
|
|
87
|
+
git clone https://github.com/<あなたの名前>/genmodelfit
|
|
88
|
+
cd genmodelfit
|
|
89
|
+
genmodelfit bench image_sdxl_simple --url http://127.0.0.1:8188 --resolution 832x832 --submission data/contrib/
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
- `--submission` にフォルダを渡すと、`data/contrib/<GPU>/<日付>-<sha8>.json` という名前で書きます
|
|
93
|
+
(例 `data/contrib/rtx-3070/2026-10-21-1a2b3c4d.json`。`sha8` は中身の sha256 の先頭 8 桁)。ファイル名を渡せばその名前で書きます
|
|
94
|
+
- 前に測って保存した結果(`<キャッシュ>/measurements/….json` や `--output` のファイル)からも作れます:
|
|
95
|
+
`genmodelfit contrib make --from <bench の結果> --output data/contrib/`
|
|
96
|
+
(ComfyUI が別の PC だったときは `--no-pc-info` を付けると、この PC の OS・メモリ・GPU の世代を入れません)
|
|
97
|
+
- 失敗(OOM)の結果も、そのまま出してください。標準でない条件の結果は記録として受け付けますが、まとめには使いません
|
|
98
|
+
|
|
99
|
+
### 入るもの・入らないもの
|
|
100
|
+
|
|
101
|
+
| 入るもの | 例 |
|
|
102
|
+
|---|---|
|
|
103
|
+
| GPU の名前・VRAM の総量・世代・compute capability・ドライバの版 | `NVIDIA GeForce RTX 3070`, `8.0`, `ampere`, `8.6`, `566.03` |
|
|
104
|
+
| ComfyUI の版、OS の種類(版・ビルドは入れない)、メインメモリ(GiB の整数に丸める) | `0.40.0`, `windows`, `32` |
|
|
105
|
+
| モデル ID・設定・結果・最大 VRAM / メモリ・時間・載せ方・測り方 | `image_sdxl_simple`, `832x832`, `ok`, `6.9` … |
|
|
106
|
+
| 日付(UTC の日付だけ) | `2026-10-21` |
|
|
107
|
+
| メモ(note。bench が書いた測り方の説明) | パス・URL・PC 名・ユーザ名・メール・UUID・IP・時刻らしい文字を含む文は、文ごと消す |
|
|
108
|
+
|
|
109
|
+
**入らないもの**: PC の名前、ユーザー名、フォルダのパス、GPU の UUID、PCI の差し場所、シリアル番号、IP / MAC アドレス、
|
|
110
|
+
CPU の名前、時刻、bench の `--source` に書いた文、プロンプト。決まった項目以外は CI の検査で断ります。
|
|
111
|
+
ただし自動の点検は文字の形を見るだけで、note に普通の言葉で書いた名前(「山田太郎の PC で測った」など)や、base64 などで
|
|
112
|
+
書き換えたパスは見分けられません(下の 3 で自分で読んでください)。
|
|
113
|
+
|
|
114
|
+
## 3. 中身を確かめる(送る前に必ず)
|
|
115
|
+
|
|
116
|
+
```powershell
|
|
117
|
+
genmodelfit contrib show data/contrib/rtx-3070/2026-10-21-1a2b3c4d.json
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
ファイルの中身をすべて読める形で出し、個人の情報の点検(パス・PC 名・ユーザ名・UUID・PCI・IP・URL・メール・時刻・
|
|
121
|
+
知らない項目が無いか。この PC の名前・ユーザ名が入っていないかも見ます)の結果を `[ok]` / `[NG]` で出します。
|
|
122
|
+
|
|
123
|
+
- `[NG]` があれば、直してから出してください(手で書き換えたら、名前の `sha8` が変わるので `contrib validate` が
|
|
124
|
+
正しい名前を教えます)
|
|
125
|
+
- **note(メモ)は自分で読んでください**。自動の点検は文の意味までは分かりません。気になる文は消して構いません
|
|
126
|
+
- `genmodelfit contrib validate data/contrib` で、CI と同じ検査を手元で動かせます
|
|
127
|
+
- 「要確認」(review)は、式の見積もりから 40% より外れた値・全部 GPU に載せたのに重みより小さい値・見積もりを 15% より
|
|
128
|
+
上げる値・よくある VRAM で段階を変える値・一覧に無いモデル・知らない GPU です。誤りではありませんが、PR を見る人が
|
|
129
|
+
確かめるまで受け付けません(測り直すか、PR の説明に事情を書いてください)。確かめた提出は、作者が
|
|
130
|
+
`data/contrib/REVIEWED` に sha8 と理由を書きます(提出の PR ではこのファイルを変えないでください。CI が失敗にします)
|
|
131
|
+
|
|
132
|
+
## 4. 送る(Pull Request)
|
|
86
133
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
134
|
+
1. 足すのは `data/contrib/<GPU>/<日付>-<sha8>.json` のファイルだけにします(ほかのファイルは変えない。コードの変更は別の PR に)
|
|
135
|
+
2. コミットして自分のフォークに push し、Pull Request を作ります。説明に、ComfyUI の起動オプション
|
|
136
|
+
(`--lowvram` など、変えたものだけ)を書いてもらえると助かります。個人名やメールアドレスは不要です
|
|
137
|
+
3. CI(`Contrib` のワークフロー)が `genmodelfit contrib validate` で形・値の範囲・個人の情報・重複・ファイル名を検査し、
|
|
138
|
+
結果をジョブのまとめ(Summary)に出します。検査は、PR の向き先(main)の genmodelfit で動きます
|
|
91
139
|
|
|
92
|
-
|
|
140
|
+
**genmodelfit は何も送りません**。共有されるのは、あなたが自分の GitHub で出した Pull Request の中身だけです
|
|
141
|
+
(自動で PR を作る機能はありません)。マージされると、提出は MPL-2.0 で公開されます(下の「ライセンス」)。
|
|
93
142
|
|
|
94
|
-
|
|
95
|
-
2. 保存された JSON の `measurements` の中身を、`src/genmodelfit/data/measurements.json` の `measurements` の
|
|
96
|
-
最後に足します(書き方は既存の行にそろえてください)
|
|
97
|
-
3. `source` に、測った環境が分かる短い説明を書きます(例: `"genmodelfit bench, RTX 4060 8GB, ComfyUI portable"`)。
|
|
98
|
-
個人名やメールアドレスは不要です
|
|
99
|
-
4. `pytest -q` が通ることを確かめて、Pull Request を作ります。説明に、PC の構成(GPU・メモリ・OS)と、
|
|
100
|
-
ComfyUI の起動オプション(`--lowvram` など、変えたものだけ)を書いてください
|
|
143
|
+
### 受け付けたあと
|
|
101
144
|
|
|
102
|
-
|
|
145
|
+
- 作者が `genmodelfit contrib aggregate --output src/genmodelfit/data/measurements_community.json` で、同じモデル・設定・GPU の
|
|
146
|
+
提出をまとめます(中央値と MAD で外れ値を除く)。同じ構成の提出が **2 件以上そろい、OOM が無いと**、その構成の見積もりの
|
|
147
|
+
根拠が `measured_community`(ほかの利用者の実測)になります。1 件だけの提出は、もう 1 件そろうまで見積もりには使いません。
|
|
148
|
+
ほかの利用者の実測は、必要量を**上げる向きにだけ**使います(見積もりより小さい値では、段階も点数も変わりません)
|
|
149
|
+
- 毎週の点検(`contrib aggregate --report`)が、校正の誤差の表を作り直します(docs/accuracy.md)
|
|
103
150
|
|
|
104
|
-
|
|
105
|
-
|---|---|---|
|
|
106
|
-
| `model_id` | ○ | `image_z_image_turbo_int8`(一覧の ID) |
|
|
107
|
-
| `gpu_name`, `gpu_vram_gb` | ○ | `NVIDIA GeForce RTX 3070`, `8.0` |
|
|
108
|
-
| `peak_vram_gb` | ○ | `5.43` |
|
|
109
|
-
| `settings` | ○ | `{"width": 768, "height": 768, "steps": 6}` |
|
|
110
|
-
| `seconds` | ○ | `41.2` |
|
|
111
|
-
| `driver`, `comfyui_version` | ○ | `566.03`, `0.40.0` |
|
|
112
|
-
| `offload` | ○ | `dynamic` |
|
|
113
|
-
| `outcome`, `standard` | ○ | `ok`, `true`(OOM なら `oom` のまま送る) |
|
|
114
|
-
| `source`, `date` | ○ | 上の例、`2026-10-20` |
|
|
115
|
-
| `peak_ram_gb`, `note` | | bench が書いたものをそのまま |
|
|
151
|
+
### 作者の実測(measurements.json)
|
|
116
152
|
|
|
117
|
-
|
|
153
|
+
同梱の `src/genmodelfit/data/measurements.json` は作者が測った実測です。項目は docs/schema.md の「Measurement」、
|
|
154
|
+
提出の形は「contrib」にあります。利用者の実測は data/contrib に出してください(measurements.json は直接変えない)。
|
|
118
155
|
|
|
119
156
|
## そのほかの変更
|
|
120
157
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: genmodelfit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Right-size image / video / audio / 3D generation models to your PC (inspired by llmfit).
|
|
5
5
|
Project-URL: Homepage, https://github.com/laxshmate/genmodelfit
|
|
6
6
|
Project-URL: Issues, https://github.com/laxshmate/genmodelfit/issues
|
|
@@ -395,7 +395,8 @@ Measured values win. Models whose download size is unknown are not judged (shown
|
|
|
395
395
|
|
|
396
396
|
## Data sources / データ源
|
|
397
397
|
|
|
398
|
-
The bundled list has
|
|
398
|
+
The bundled list has 326 entries (image 163, video 115, TTS 20, music 15, 3D 10, SFX 3) that make 207 models
|
|
399
|
+
(2026-10-21; refreshed weekly, see "Maintenance").
|
|
399
400
|
Like llmfit, Hugging Face models are included only with at least 10,000 all-time downloads (1,000 for trending
|
|
400
401
|
ones), and merges and test stubs are skipped ([docs/sources.md](https://github.com/laxshmate/genmodelfit/blob/main/docs/sources.md)).
|
|
401
402
|
llmfit と同じく、Hugging Face のモデルは全期間のダウンロード数が 10,000 以上のもの(伸びているものは 1,000 以上)だけを入れます。
|
|
@@ -435,12 +436,55 @@ upstream, not the uploader's label) is on a commercial-use allowlist (apache-2.0
|
|
|
435
436
|
replaceable), nothing is gated, an official ComfyUI workflow without custom nodes, the ComfyUI version is
|
|
436
437
|
supported, every download URL answered an anonymous HEAD within the last 30 days, sha256 is known, the size is
|
|
437
438
|
known, and the content is `sfw`. Otherwise it is held with machine-readable reasons (`held_reasons` in JSON, e.g. `license`; the table's Auto column shows the first one).
|
|
438
|
-
In the bundled list
|
|
439
|
+
In the bundled list 99 of 326 entries are auto (2026-10-21). When a license cannot be verified it is treated as unknown
|
|
439
440
|
and held. See [docs/gate.md](https://github.com/laxshmate/genmodelfit/blob/main/docs/gate.md).
|
|
440
441
|
|
|
441
442
|
すべての条件を満たすものだけを自動でおすすめに出し、残りは理由付きで保留にします。ライセンスが確かめられない
|
|
442
443
|
ものは「不明」として保留にします。アプリは使う ComfyUI の版を `--comfyui-version` で渡してください。
|
|
443
444
|
|
|
445
|
+
## Maintenance / 一覧の保守
|
|
446
|
+
|
|
447
|
+
Like llmfit, the list is rebuilt every week and published only after a person has reviewed it:
|
|
448
|
+
|
|
449
|
+
1. Every Monday (03:00 UTC) `.github/workflows/weekly-data.yml` rebuilds the list from upstream
|
|
450
|
+
(`python -m genmodelfit.weekly`: templates, Hugging Face, HEAD checks, file headers; caches are kept between
|
|
451
|
+
runs), checks it (schema, auto count, the 30-day HEAD expiry must be more than 7 days away), runs ruff and
|
|
452
|
+
pytest with the new list, and opens or updates the pull request `automated/weekly-data` (labels `automated`,
|
|
453
|
+
`data-update`). The body is made by `genmodelfit diff` (added / removed models, license changes — the
|
|
454
|
+
ones toward the permissive side are marked —, auto-recommendation changes, failed HEAD checks).
|
|
455
|
+
It is never merged automatically.
|
|
456
|
+
2. The owner reviews and merges it.
|
|
457
|
+
3. On merge, `.github/workflows/data.yml` signs main's `db.json` and replaces the `data-latest` release.
|
|
458
|
+
4. Apps take it with `genmodelfit update --from-release` (signature checked).
|
|
459
|
+
|
|
460
|
+
```powershell
|
|
461
|
+
genmodelfit diff old_db.json new_db.json # what changed between two lists (--json for tools)
|
|
462
|
+
python -m genmodelfit.weekly --dry-run --out weekly-out # the same pipeline locally (writes only weekly-out)
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
毎週、上流から作り直した一覧を自動で PR にし(自動ではマージしない)、作者が見てマージしたものだけを
|
|
466
|
+
署名して配ります。PR で確かめることは [docs/release.md](https://github.com/laxshmate/genmodelfit/blob/main/docs/release.md)
|
|
467
|
+
「毎週の一覧の更新」。
|
|
468
|
+
|
|
469
|
+
## Contributing measurements / 実測を送る
|
|
470
|
+
|
|
471
|
+
Measured runs on more GPUs make the estimates better. In a clone of your fork:
|
|
472
|
+
|
|
473
|
+
```powershell
|
|
474
|
+
genmodelfit bench image_sdxl_simple --url http://127.0.0.1:8188 --resolution 832x832 --submission data/contrib/
|
|
475
|
+
genmodelfit contrib show data/contrib/rtx-3070/2026-10-21-1a2b3c4d.json # exactly what will be shared + privacy checklist
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
Then open a pull request that adds only that file. **genmodelfit sends nothing**; the file holds the GPU name / VRAM /
|
|
479
|
+
generation / driver, ComfyUI version, OS family, RAM rounded to GiB and the results — never host or user names, paths,
|
|
480
|
+
GPU UUID, PCI address, IP or exact times (the checks are pattern based, so read the note yourself). CI checks it with
|
|
481
|
+
`genmodelfit contrib validate`. Once two or more consistent submissions exist for the same model, settings and GPU,
|
|
482
|
+
estimates for that setup become `basis_detail: "measured_community"`; community values can only raise the estimated
|
|
483
|
+
needs, never lower them. Steps: [CONTRIBUTING.md](https://github.com/laxshmate/genmodelfit/blob/main/CONTRIBUTING.md).
|
|
484
|
+
|
|
485
|
+
自分のフォークで `bench --submission data/contrib/` を付けて測り、`contrib show` で中身を確かめてから、そのファイルだけを
|
|
486
|
+
Pull Request で出してください。genmodelfit は何も送りません(PC の名前・ユーザー名・パス・GPU の UUID などは入りません)。
|
|
487
|
+
|
|
444
488
|
## Privacy / 送るもの・送らないもの
|
|
445
489
|
|
|
446
490
|
- `recommend`, `fit`, `search`, `info`, `system`, `types`, `gate` and the Python API (`gmf.recommend()`,
|
|
@@ -457,7 +501,8 @@ and held. See [docs/gate.md](https://github.com/laxshmate/genmodelfit/blob/main/
|
|
|
457
501
|
- Hardware information (GPU name, VRAM, RAM, CPU, disk) is read locally with `nvidia-smi` and psutil and is
|
|
458
502
|
**never sent**. Measurements from `bench` are saved only on your PC; they are shared only if you open a pull
|
|
459
503
|
request yourself ([CONTRIBUTING.md](https://github.com/laxshmate/genmodelfit/blob/main/CONTRIBUTING.md)).
|
|
460
|
-
Saved measurements hold no host name, user name, paths or GPU UUID.
|
|
504
|
+
Saved measurements hold no host name, user name, paths or GPU UUID. Submission files (`bench --submission`,
|
|
505
|
+
`contrib make`) are written locally only; `genmodelfit contrib` never touches the network.
|
|
461
506
|
- No telemetry. No hardware information, measurements, prompts or other user content is ever sent anywhere.
|
|
462
507
|
Tests replace the PC's details with marker strings and check that no request URL, header or body of `update`,
|
|
463
508
|
`update --from-release`, `bench` or `download` contains them.
|
|
@@ -474,7 +519,8 @@ and held. See [docs/gate.md](https://github.com/laxshmate/genmodelfit/blob/main/
|
|
|
474
519
|
`--list` と `gmf.plan_download()` は通信しません。
|
|
475
520
|
- PC の情報(GPU の名前・VRAM・メモリ・CPU・空き)は `nvidia-smi` と psutil で手元で読むだけで、**送りません**。
|
|
476
521
|
`bench` の実測は手元に保存するだけで、利用者が自分で Pull Request を出したときだけ共有されます
|
|
477
|
-
(保存する実測に PC の名前・ユーザー名・パス・GPU の UUID は入りません)
|
|
522
|
+
(保存する実測に PC の名前・ユーザー名・パス・GPU の UUID は入りません)。提出用の JSON(`bench --submission`・`contrib make`)も
|
|
523
|
+
手元に書くだけで、`genmodelfit contrib` は通信しません。
|
|
478
524
|
- 利用状況の送信(テレメトリ)はありません。PC の情報・実測・プロンプトなどを送ることはありません。User-Agent は
|
|
479
525
|
`genmodelfit/<版>` で、`~/.netrc` の資格情報は付けません(プロキシ・証明書の設定は使います)。
|
|
480
526
|
|
|
@@ -355,7 +355,8 @@ Measured values win. Models whose download size is unknown are not judged (shown
|
|
|
355
355
|
|
|
356
356
|
## Data sources / データ源
|
|
357
357
|
|
|
358
|
-
The bundled list has
|
|
358
|
+
The bundled list has 326 entries (image 163, video 115, TTS 20, music 15, 3D 10, SFX 3) that make 207 models
|
|
359
|
+
(2026-10-21; refreshed weekly, see "Maintenance").
|
|
359
360
|
Like llmfit, Hugging Face models are included only with at least 10,000 all-time downloads (1,000 for trending
|
|
360
361
|
ones), and merges and test stubs are skipped ([docs/sources.md](https://github.com/laxshmate/genmodelfit/blob/main/docs/sources.md)).
|
|
361
362
|
llmfit と同じく、Hugging Face のモデルは全期間のダウンロード数が 10,000 以上のもの(伸びているものは 1,000 以上)だけを入れます。
|
|
@@ -395,12 +396,55 @@ upstream, not the uploader's label) is on a commercial-use allowlist (apache-2.0
|
|
|
395
396
|
replaceable), nothing is gated, an official ComfyUI workflow without custom nodes, the ComfyUI version is
|
|
396
397
|
supported, every download URL answered an anonymous HEAD within the last 30 days, sha256 is known, the size is
|
|
397
398
|
known, and the content is `sfw`. Otherwise it is held with machine-readable reasons (`held_reasons` in JSON, e.g. `license`; the table's Auto column shows the first one).
|
|
398
|
-
In the bundled list
|
|
399
|
+
In the bundled list 99 of 326 entries are auto (2026-10-21). When a license cannot be verified it is treated as unknown
|
|
399
400
|
and held. See [docs/gate.md](https://github.com/laxshmate/genmodelfit/blob/main/docs/gate.md).
|
|
400
401
|
|
|
401
402
|
すべての条件を満たすものだけを自動でおすすめに出し、残りは理由付きで保留にします。ライセンスが確かめられない
|
|
402
403
|
ものは「不明」として保留にします。アプリは使う ComfyUI の版を `--comfyui-version` で渡してください。
|
|
403
404
|
|
|
405
|
+
## Maintenance / 一覧の保守
|
|
406
|
+
|
|
407
|
+
Like llmfit, the list is rebuilt every week and published only after a person has reviewed it:
|
|
408
|
+
|
|
409
|
+
1. Every Monday (03:00 UTC) `.github/workflows/weekly-data.yml` rebuilds the list from upstream
|
|
410
|
+
(`python -m genmodelfit.weekly`: templates, Hugging Face, HEAD checks, file headers; caches are kept between
|
|
411
|
+
runs), checks it (schema, auto count, the 30-day HEAD expiry must be more than 7 days away), runs ruff and
|
|
412
|
+
pytest with the new list, and opens or updates the pull request `automated/weekly-data` (labels `automated`,
|
|
413
|
+
`data-update`). The body is made by `genmodelfit diff` (added / removed models, license changes — the
|
|
414
|
+
ones toward the permissive side are marked —, auto-recommendation changes, failed HEAD checks).
|
|
415
|
+
It is never merged automatically.
|
|
416
|
+
2. The owner reviews and merges it.
|
|
417
|
+
3. On merge, `.github/workflows/data.yml` signs main's `db.json` and replaces the `data-latest` release.
|
|
418
|
+
4. Apps take it with `genmodelfit update --from-release` (signature checked).
|
|
419
|
+
|
|
420
|
+
```powershell
|
|
421
|
+
genmodelfit diff old_db.json new_db.json # what changed between two lists (--json for tools)
|
|
422
|
+
python -m genmodelfit.weekly --dry-run --out weekly-out # the same pipeline locally (writes only weekly-out)
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
毎週、上流から作り直した一覧を自動で PR にし(自動ではマージしない)、作者が見てマージしたものだけを
|
|
426
|
+
署名して配ります。PR で確かめることは [docs/release.md](https://github.com/laxshmate/genmodelfit/blob/main/docs/release.md)
|
|
427
|
+
「毎週の一覧の更新」。
|
|
428
|
+
|
|
429
|
+
## Contributing measurements / 実測を送る
|
|
430
|
+
|
|
431
|
+
Measured runs on more GPUs make the estimates better. In a clone of your fork:
|
|
432
|
+
|
|
433
|
+
```powershell
|
|
434
|
+
genmodelfit bench image_sdxl_simple --url http://127.0.0.1:8188 --resolution 832x832 --submission data/contrib/
|
|
435
|
+
genmodelfit contrib show data/contrib/rtx-3070/2026-10-21-1a2b3c4d.json # exactly what will be shared + privacy checklist
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
Then open a pull request that adds only that file. **genmodelfit sends nothing**; the file holds the GPU name / VRAM /
|
|
439
|
+
generation / driver, ComfyUI version, OS family, RAM rounded to GiB and the results — never host or user names, paths,
|
|
440
|
+
GPU UUID, PCI address, IP or exact times (the checks are pattern based, so read the note yourself). CI checks it with
|
|
441
|
+
`genmodelfit contrib validate`. Once two or more consistent submissions exist for the same model, settings and GPU,
|
|
442
|
+
estimates for that setup become `basis_detail: "measured_community"`; community values can only raise the estimated
|
|
443
|
+
needs, never lower them. Steps: [CONTRIBUTING.md](https://github.com/laxshmate/genmodelfit/blob/main/CONTRIBUTING.md).
|
|
444
|
+
|
|
445
|
+
自分のフォークで `bench --submission data/contrib/` を付けて測り、`contrib show` で中身を確かめてから、そのファイルだけを
|
|
446
|
+
Pull Request で出してください。genmodelfit は何も送りません(PC の名前・ユーザー名・パス・GPU の UUID などは入りません)。
|
|
447
|
+
|
|
404
448
|
## Privacy / 送るもの・送らないもの
|
|
405
449
|
|
|
406
450
|
- `recommend`, `fit`, `search`, `info`, `system`, `types`, `gate` and the Python API (`gmf.recommend()`,
|
|
@@ -417,7 +461,8 @@ and held. See [docs/gate.md](https://github.com/laxshmate/genmodelfit/blob/main/
|
|
|
417
461
|
- Hardware information (GPU name, VRAM, RAM, CPU, disk) is read locally with `nvidia-smi` and psutil and is
|
|
418
462
|
**never sent**. Measurements from `bench` are saved only on your PC; they are shared only if you open a pull
|
|
419
463
|
request yourself ([CONTRIBUTING.md](https://github.com/laxshmate/genmodelfit/blob/main/CONTRIBUTING.md)).
|
|
420
|
-
Saved measurements hold no host name, user name, paths or GPU UUID.
|
|
464
|
+
Saved measurements hold no host name, user name, paths or GPU UUID. Submission files (`bench --submission`,
|
|
465
|
+
`contrib make`) are written locally only; `genmodelfit contrib` never touches the network.
|
|
421
466
|
- No telemetry. No hardware information, measurements, prompts or other user content is ever sent anywhere.
|
|
422
467
|
Tests replace the PC's details with marker strings and check that no request URL, header or body of `update`,
|
|
423
468
|
`update --from-release`, `bench` or `download` contains them.
|
|
@@ -434,7 +479,8 @@ and held. See [docs/gate.md](https://github.com/laxshmate/genmodelfit/blob/main/
|
|
|
434
479
|
`--list` と `gmf.plan_download()` は通信しません。
|
|
435
480
|
- PC の情報(GPU の名前・VRAM・メモリ・CPU・空き)は `nvidia-smi` と psutil で手元で読むだけで、**送りません**。
|
|
436
481
|
`bench` の実測は手元に保存するだけで、利用者が自分で Pull Request を出したときだけ共有されます
|
|
437
|
-
(保存する実測に PC の名前・ユーザー名・パス・GPU の UUID は入りません)
|
|
482
|
+
(保存する実測に PC の名前・ユーザー名・パス・GPU の UUID は入りません)。提出用の JSON(`bench --submission`・`contrib make`)も
|
|
483
|
+
手元に書くだけで、`genmodelfit contrib` は通信しません。
|
|
438
484
|
- 利用状況の送信(テレメトリ)はありません。PC の情報・実測・プロンプトなどを送ることはありません。User-Agent は
|
|
439
485
|
`genmodelfit/<版>` で、`~/.netrc` の資格情報は付けません(プロキシ・証明書の設定は使います)。
|
|
440
486
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 見積もりの精度 / Accuracy
|
|
2
2
|
|
|
3
|
-
2026-10-20
|
|
3
|
+
2026-10-20 時点(ほかの利用者の実測の扱いは 2026-10-21)。係数は `src/genmodelfit/data/calibration.json`、作り直しは `python -m genmodelfit.calibrate`
|
|
4
4
|
(`--dry-run` で書き出さずに表だけ出す)。下の表はそのコマンドの出力をそのまま貼ったもの。
|
|
5
5
|
**単位はすべて GiB(2^30 バイト)**。表や CLI の「GB」も GiB を指す。
|
|
6
6
|
|
|
@@ -180,6 +180,13 @@ RTX 5080 の実測は ComfyUI の動的 VRAM で測ったもので、**空きが
|
|
|
180
180
|
music・video は張り付いていない実測が 1 件以下のため評価できない(target_met は null)。
|
|
181
181
|
張り付いた 3 件のうち 3 件は重みだけで実測を超え、情報を持たない。 参考: 張り付いていない全 6 件の LOO 平均絶対誤差 6.5%、最大 17.2%(重みだけなら平均 22.8%)
|
|
182
182
|
|
|
183
|
+
照合(測り方が違うので係数の合わせには使わない。全件で合わせた係数で当てた値):
|
|
184
|
+
|
|
185
|
+
| モデル | GPU | 出どころ | 設定 | 実測 GiB | 推定 GiB(全部載せ) | 誤差 |
|
|
186
|
+
|---|---|---|---|---:|---:|---:|
|
|
187
|
+
| utility_birefnet_remove_background | NVIDIA GeForce RTX 3070 | 作者 | - | 1.25 | 2.13 | +70% |
|
|
188
|
+
| 3d_moge_perspective_to_mesh | NVIDIA GeForce RTX 3070 | 作者 | - | 0.72 | 2.87 | +299% |
|
|
189
|
+
|
|
183
190
|
読み方:
|
|
184
191
|
|
|
185
192
|
- 「知らないモデルを当てる力」を測れているのは、画像の 2 件と 3D の 2 件だけ。それぞれ同じ種類のもう 1 件だけで
|
|
@@ -213,11 +220,61 @@ music・video は張り付いていない実測が 1 件以下のため評価で
|
|
|
213
220
|
- **役割の推定**: 置き場所もフォルダも無いファイルは、知っている名前の一覧で役割を決める。一覧に無いテキストエンコーダは
|
|
214
221
|
本体として数える(全部載せの値は変わらないが、順に載せ替え・逃がすの値は大きめに出る)
|
|
215
222
|
|
|
223
|
+
## ほかの利用者の実測(#34、2026-10-21)
|
|
224
|
+
|
|
225
|
+
利用者が `genmodelfit bench --submission` で作った提出用の JSON を、Pull Request で `data/contrib/<GPU>/<日付>-<sha8>.json`
|
|
226
|
+
に足してもらう(手順は CONTRIBUTING.md、形は docs/schema.md「contrib」)。**2026-10-21 時点で受け付けた提出は 0 件**で、
|
|
227
|
+
同梱の `src/genmodelfit/data/measurements_community.json` は空。下の決まりは、提出が来たときの扱い。
|
|
228
|
+
|
|
229
|
+
- **まとめ方**(`genmodelfit contrib aggregate`): 同じモデル・GPU 名・測り方(`vram_metric`)・設定(解像度・コマ数・長さ・
|
|
230
|
+
ステップ数・精度・枚数)ごとにまとめる。標準でない提出(`standard: false`)は使わない。最後まで動いた(ok)ものの最大 VRAM で、
|
|
231
|
+
3 件以上あれば |x − 中央値| / (1.4826 × MAD) > 3.5 を外れ値として除き(MAD の下限は中央値の 2%。そろいすぎた値で
|
|
232
|
+
小さな差を外れ値にしない)、残りの中央値を値にする。2 件以下では外れ値を見分けない。OOM だけの組は `outcome: oom` の 1 行
|
|
233
|
+
- **使う条件**: 使った件数が 2 件以上で、残りの幅(最大 − 最小)が中央値の 15% 以内で、OOM が 1 件も無いとき
|
|
234
|
+
`consistent: true`。人が確かめる項目(式から 40% より外れた値・重み + 固定分より小さい全部載せの値・一覧に無いモデル・
|
|
235
|
+
知らない GPU)のある提出は、`--allow-review` で確かめたと言わない限りまとめに使わない。
|
|
236
|
+
**1 件だけ・ばらつきの大きい組は、見積もりにも校正にも使わない**(測り違い・書き換えを 1 件では見分けられないため。
|
|
237
|
+
表には出す)。llmfit の measured_community に当たる
|
|
238
|
+
- **根拠の段階**(`Estimate.basis_detail`。`basis` は後方互換のため measured / estimated の 2 値のまま):
|
|
239
|
+
|
|
240
|
+
| 段階 | basis | 意味 |
|
|
241
|
+
|---|---|---|
|
|
242
|
+
| `measured` | measured | 同梱の作者の実測か、この PC で bench が保存した実測で、設定が同じ |
|
|
243
|
+
| `measured_community` | measured(下の「必要量を下げない」で使わなかったときは estimated) | そろったほかの利用者の実測で、設定が同じ。点数の basis は推定と同じ 0 |
|
|
244
|
+
| `calibrated` | estimated | 設定の違う実測(作者・ほかの利用者)でずらした推定 |
|
|
245
|
+
| `estimated` | estimated | 式だけの推定(実測が無い・精度を変えた・GPU が無い) |
|
|
246
|
+
|
|
247
|
+
- **必要量を下げない**(2026-10-21、オーナーの方針。レビューで、書き換えた 2 件の提出で 282 モデルの必要量が最大 76% 下がり、
|
|
248
|
+
段階が 180 か所上がる攻撃が見つかったため): ほかの利用者の実測は、それが無いときの見積もりより**必要量を上げる向きにだけ**使う
|
|
249
|
+
(VRAM・メモリを下げない・段階を上げない・点数を上げない)。判定する既定の設定も決めない。`torch_reserved` の実測
|
|
250
|
+
(CUDA の文脈を含まない)も「これ以上」としてだけ使い、式より小さければ式の値にする(作者の RTX 3070 の 2 件もこれで
|
|
251
|
+
式の値になった。以前は実測で 0.9〜2 GiB 下げていた)。tests/test_contrib.py が全モデル × 8 / 12 / 16 / 24 GB で確かめる
|
|
252
|
+
- **上げすぎない**(2026-10-21、オーナーの方針。検査の閾値 40% の内側の +39% の提出 2 件で、314 モデル × 4 つの VRAM で
|
|
253
|
+
段階が 639 か所下がる攻撃が見つかったため): 人が確かめていないほかの利用者の実測は、それが無いときの見積もりの
|
|
254
|
+
**+15% まで**しか必要量を上げず、その PC で段階・動かし方が変わるなら使わない。validate は、+15% を超えて上げる提出と、
|
|
255
|
+
よくある VRAM(4〜48 GB)× メモリ(16 / 32 / 64 GB)で段階を変える提出を「要確認」にする。確かめた提出は sha8 ごとに
|
|
256
|
+
data/contrib/REVIEWED(作者だけが書く)に理由と一緒に書き、そのときだけ +15% を超えられる。
|
|
257
|
+
`contrib aggregate --report` は、ほかの利用者の実測で変わる段階の一覧を出す
|
|
258
|
+
実測の選び方(`estimate.pick_measurement`)は、設定が同じもの → 作者・この PC の実測(ほかの利用者より先)→
|
|
259
|
+
張り付いていないもの → 大きい GPU → 大きい値。同じ設定のほかの利用者の実測は、設定の違う作者の実測より先に使う。
|
|
260
|
+
「この PC の実測」(キャッシュの bench の結果)は v0 では作者の実測と同じ段階に数える(分けていない)
|
|
261
|
+
- **校正への取り込み**(`python -m genmodelfit.calibrate`): そろったほかの利用者の実測も、測り方が係数の合わせと同じ
|
|
262
|
+
(`calibrate.CALIBRATION_METRIC`。今は記録の無い RTX 5080 の 9 件の測り方)なら、係数の合わせと leave-one-out に入る。
|
|
263
|
+
bench の提出は `torch_reserved` なので、今は**照合**(上の表。全件で合わせた係数で当てた誤差)にだけ入る。
|
|
264
|
+
`torch_reserved` の実測が種類ごとに数件そろったら、測り方ごとに固定分を分けて合わせ直す(それまで混ぜない)
|
|
265
|
+
- **毎週の点検**(`genmodelfit contrib aggregate --report`。#19 の毎週の自動 PR が呼ぶ): その時点の data/contrib をまとめ直し、
|
|
266
|
+
校正をやり直して種類ごとの LOO 誤差と照合の誤差を表にする。閾値(既定 25%、`--threshold`)を超えたら警告を出す
|
|
267
|
+
(`--fail-on-breach` で終了コード 3)。判定に入れるのは、評価できる種類(張り付いていない実測が 2 件以上)の LOO 誤差と、
|
|
268
|
+
ほかの利用者の実測の照合の誤差。作者の照合の行(下の RTX 3070 の 2 件)は既知の外れなので、表には出すが判定には入れない
|
|
269
|
+
- 同じ人が同じ構成で何度も出すと、件数が水増しされる(提出に個人を見分ける情報を入れないので見分けられない)。
|
|
270
|
+
同じ内容(hash)は重複として断るが、測り直した別の値は断れない。PR を見る人が、同じ PR に同じ構成が並んでいないかを見る
|
|
271
|
+
|
|
216
272
|
## RTX 3070 8GB の実測との照合(bench、2026-10-19 UTC、係数の合わせには使っていない)
|
|
217
273
|
|
|
218
274
|
`genmodelfit bench` で、この PC(RTX 3070 8GB、AI生成キットのエンジン ComfyUI 0.40.0)で 2 件を測りました。
|
|
219
275
|
測り方が RTX 5080 の 9 件と違う(`vram_metric: torch_reserved` = ComfyUI のプロセスの torch の確保量の最大で、CUDA の文脈などは含まない。
|
|
220
276
|
RTX 5080 の 9 件は何を記録したかが残っていない)ので、係数の合わせには使わず、照合だけに使います(`calibrate.CALIBRATION_METRIC`)。
|
|
277
|
+
この照合は `python -m genmodelfit.calibrate` が上の「結果」の表の下に作る(calibration.json の `check`。#34 から)。
|
|
221
278
|
|
|
222
279
|
| モデル | GPU | 実測 GiB(torch_reserved) | 推定 GiB(全部載せ) | 誤差 | 推定での段階(8 GiB) |
|
|
223
280
|
|---|---|---:|---:|---:|---|
|
|
@@ -200,6 +200,6 @@
|
|
|
200
200
|
Civitai は v0.1 では読まない(docs/sources.md「Civitai」)ので、一覧の側で決められない。依頼の前に扱いを決める
|
|
201
201
|
- **無検閲のモデルだけに効くもの**(既定の sfw では出ないので後回し): ChrisColeTech/LTX-2.3-uncensored-v1.4-FP8・
|
|
202
202
|
LTX-2.5-uncensored-v1.1-FP8・qwen-image-edit-uncensored-GGUF、Heartsync/NSFW-Uncensored、Meina/MeinaHentai、
|
|
203
|
-
SulphurAI/Sulphur-2-base、TenStrip/LTX2.3-10Eros、
|
|
203
|
+
SulphurAI/Sulphur-2-base、TenStrip/LTX2.3-10Eros、andro-flock/LUSTIFY-SDXL-NSFW-checkpoint-v2-0-INPAINTING(2026-10-21 から同じ重みの写しのこちらを載せる)、
|
|
204
204
|
kkkkk26/lustify_v9、sinkinai/hassaku-hentai(記載が無い)、AtomicChat/Qwen-Image-2.1-Turbo-Uncensored-GGUF・
|
|
205
205
|
kpsss34/FHDR_Uncensored(元の規約より寛容)。出すなら A・B の文を使える
|