diff --git a/.gitattributes b/.gitattributes index 08e6e88a768ef0133105ba7c659eaad7cc5b233d..524a91671ca3a598455be667df29b8fba123a43a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -66,3 +66,50 @@ evaluation/young_woman/bf16/young_chinese_woman-s42.png filter=lfs diff=lfs merg evaluation/young_woman/int8/young_chinese_woman-s123.png filter=lfs diff=lfs merge=lfs -text evaluation/young_woman/int8/young_chinese_woman-s42.png filter=lfs diff=lfs merge=lfs -text processor/tokenizer.json filter=lfs diff=lfs merge=lfs -text +evaluation/audit/bf16-native-tiled/edit_native.png filter=lfs diff=lfs merge=lfs -text +evaluation/audit/input.png filter=lfs diff=lfs merge=lfs -text +evaluation/audit/int8-1024-tiled/edit_fresh.png filter=lfs diff=lfs merge=lfs -text +evaluation/audit/int8-fixed/edit_fresh.png filter=lfs diff=lfs merge=lfs -text +evaluation/audit/int8-fixed/edit_no_cache.png filter=lfs diff=lfs merge=lfs -text +evaluation/audit/int8-fixed/edit_repeat.png filter=lfs diff=lfs merge=lfs -text +evaluation/audit/int8-fixed/edit_rgb.png filter=lfs diff=lfs merge=lfs -text +evaluation/audit/int8-fixed/portrait.png filter=lfs diff=lfs merge=lfs -text +evaluation/audit/int8-fixed/vae_roundtrip.png filter=lfs diff=lfs merge=lfs -text +evaluation/audit/int8-native-tiled/edit_native.png filter=lfs diff=lfs merge=lfs -text +evaluation/audit/int8-original/edit_fresh.png filter=lfs diff=lfs merge=lfs -text +evaluation/audit/int8-original/edit_no_cache.png filter=lfs diff=lfs merge=lfs -text +evaluation/audit/int8-original/edit_repeat.png filter=lfs diff=lfs merge=lfs -text +evaluation/audit/int8-original/edit_rgb.png filter=lfs diff=lfs merge=lfs -text +evaluation/audit/int8-original/portrait.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/bf16/chinese_text-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/bf16/chinese_text-s42.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/bf16/composition-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/bf16/composition-s42.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/bf16/edit-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/bf16/edit-s42.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/bf16/english_text-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/bf16/english_text-s42.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/bf16/portrait-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/bf16/portrait-s42.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/bf16/rgba-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/bf16/rgba-s42.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/bf16/texture-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/bf16/texture-s42.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/int8/chinese_text-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/int8/chinese_text-s42.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/int8/composition-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/int8/composition-s42.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/int8/edit-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/int8/edit-s42.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/int8/english_text-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/int8/english_text-s42.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/int8/portrait-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/int8/portrait-s42.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/int8/rgba-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/int8/rgba-s42.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/int8/texture-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/int8/texture-s42.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/young_woman/bf16/young_chinese_woman-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/young_woman/bf16/young_chinese_woman-s42.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/young_woman/int8/young_chinese_woman-s123.png filter=lfs diff=lfs merge=lfs -text +evaluation/initial/young_woman/int8/young_chinese_woman-s42.png filter=lfs diff=lfs merge=lfs -text diff --git a/CHANGES.md b/CHANGES.md index 1d4540be55af4d50562de12ccad71ac59dd42540..fec5d95d697af170ba8fce1e83a9590407d21d5f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,9 +1,16 @@ -# Modifications - -Modified by ixim / iximbox: eligible linear weights converted from Qwen-Image-2.1 to bitsandbytes LLM.int8 INT8. Built with Qwen. Non-commercial research/evaluation under the accompanying Qwen Research License. - -- Converted eligible transformer and text encoder linear layers to LLM.int8, threshold 6.0. -- Retained sensitive projections, normalization, embeddings, vision model and VAE in floating point. -- Re-serialized component weights, shard indexes and configs; no fine-tuning. -- Weight-file headers and modified JSON files contain modification notices. -- Exact quantized module names and dtype counts are in the component reports. +# Modifications + +Modified by ixim / iximbox: eligible linear weights converted from Qwen-Image-2.1 to bitsandbytes LLM.int8 INT8. Built with Qwen. Non-commercial research/evaluation under the accompanying Qwen Research License. + +- Converted eligible transformer and text encoder linear layers to LLM.int8, threshold 6.0. +- Retained sensitive projections, normalization, embeddings, vision model and VAE in floating point. +- Re-serialized component weights, shard indexes and configs; no fine-tuning. +- Weight-file headers and modified JSON files contain modification notices. +- Exact quantized module names and dtype counts are in the component reports. + +## Runtime and evaluation correction, 2026-09-21 + +- Added an instance-local bitsandbytes auxiliary-tensor offload workaround and sequential component loading in scripts/runtime.py. +- Re-ran the paired evaluation in isolated processes with startup, loading and per-image memory records. +- Preserved the initial evaluation and failed 1024px editing outputs; added controlled editing diagnostics and a paired 2048px retest with VAE tiling. +- Model weights, quantization configuration and inference-file fingerprints are unchanged. diff --git a/MANIFEST.json b/MANIFEST.json index 6235b9a743a2c8f0d1af45a36bb0206f6243f419..26ee30272cb4db22baaacfdd8bed8552561aff19 100644 --- a/MANIFEST.json +++ b/MANIFEST.json @@ -1,58 +1,243 @@ [ + { + "path": "benchmarks/cases.json", + "size": 1919, + "sha256": "2663ee3d489e1eb136e02b083963b8622146fc65ac301d6acc5a6aab21e63356" + }, + { + "path": "benchmarks/young_woman.json", + "size": 516, + "sha256": "0d1d27b403e6c6685d652ef5553978fc9ac8af9b1d13c5c662449d0a8be74847" + }, + { + "path": "cards/huggingface.md", + "size": 5074, + "sha256": "3f98474e54093f82edab7766ccb8c9ce0cffc52acd7099ec6a3e198bbf905b3e" + }, + { + "path": "cards/modelscope.md", + "size": 4703, + "sha256": "a2d56f76961cbe918e2f7b7a23a0831e7d85fb7971d1dbd8a1d848a676109ba5" + }, { "path": "CHANGES.md", - "size": 663, - "sha256": "c5e50b15f690fce48eaf9a837be7033b5ee8fdae89048b3cd3fef20df412e775" + "size": 1183, + "sha256": "0d34b4b5dc5ad12aea57e382e9b210cbfe68d103672e2e88037065b8fee87223" }, { - "path": "LICENSE", - "size": 7831, - "sha256": "8dc973f024ff95966bea25866efa443fd16776dcb1001e681e3d467ea572b28d" + "path": "conversion.json", + "size": 1425, + "sha256": "85900407b59658abab04a37e830089939ca20346435dea3ae3a09cb1e5f6887f" }, { - "path": "Notice", - "size": 530, - "sha256": "9b12c699d8e464d0eda682b18535568981893eaf66e462a0467f2c16b387970a" + "path": "evaluation/audit/bf16-native-tiled/edit_native.png", + "size": 6918553, + "sha256": "c551ac809ccb48146d1ad842d75975c0e9663d388a368010d2bfccb7883eeeec" }, { - "path": "PUBLISHING.md", - "size": 2118, - "sha256": "ed220160bb06dd4774f6e413eb6b077f8316033ae76dbf85c146e9c65cbac4e8" + "path": "evaluation/audit/bf16-native-tiled/environment.json", + "size": 483, + "sha256": "cf1517995b3c333f6975a9c610d4e1f536a559236a16e78b848b2488fbb582f6" }, { - "path": "README.md", - "size": 25079, - "sha256": "6250a13203f365d078fab9b8a338904dc81f2ca4100412c60b723b33c154f704" + "path": "evaluation/audit/bf16-native-tiled/gpu-before.txt", + "size": 3345, + "sha256": "defcac72adb35e7ae2617b238bc01ba17260eb0ce243e5e830834a5f83f844c3" }, { - "path": "REPRODUCE.md", - "size": 5400, - "sha256": "a5e66fe633b1d8e920c7192f7563dbdc72619d9e61c1ed5172b96ac49d790ffc" + "path": "evaluation/audit/bf16-native-tiled/memory.jsonl", + "size": 4252, + "sha256": "a064c603dedaeb79468192a55718feb8ae27a0813c4ca4b9e4abe62e3afaaafc" }, { - "path": "benchmarks/cases.json", - "size": 1919, - "sha256": "2663ee3d489e1eb136e02b083963b8622146fc65ac301d6acc5a6aab21e63356" + "path": "evaluation/audit/bf16-native-tiled/records.jsonl", + "size": 391, + "sha256": "53633cb3daf3bee9b3d88a879a4c82645cdad57baa8c22f8597785d05c7f58a8" }, { - "path": "benchmarks/young_woman.json", - "size": 516, - "sha256": "0d1d27b403e6c6685d652ef5553978fc9ac8af9b1d13c5c662449d0a8be74847" + "path": "evaluation/audit/gpu-regression-after.txt", + "size": 74, + "sha256": "1b8d460f782c3d68ed132549e3a38cb2b9fafdfadd73063c3ef1a77bb7fd552f" }, { - "path": "cards/huggingface.md", - "size": 4370, - "sha256": "aef950ac712df59df5d679177aafebd9f8f0e7b772f2b2b6077b7aa8ce3a5fef" + "path": "evaluation/audit/gpu-regression-before.txt", + "size": 549, + "sha256": "fdc8c78ffdd5afa475e0d67dd64863d0fb350f914720f3b2a7195cfda0991c35" }, { - "path": "cards/modelscope.md", - "size": 4139, - "sha256": "b4f5c38e7d2cbc2c3aeee9884f4136591b1083a1c8e4846f5b71a772cc119487" + "path": "evaluation/audit/input.png", + "size": 1868618, + "sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa" }, { - "path": "conversion.json", - "size": 1425, - "sha256": "85900407b59658abab04a37e830089939ca20346435dea3ae3a09cb1e5f6887f" + "path": "evaluation/audit/int8-1024-tiled/edit_fresh.png", + "size": 2175608, + "sha256": "e1118dfd5286837adcf75553ab6bc3f9c5d5da36270d7b1fc0a9958e4ca51ca9" + }, + { + "path": "evaluation/audit/int8-1024-tiled/environment.json", + "size": 483, + "sha256": "cf1517995b3c333f6975a9c610d4e1f536a559236a16e78b848b2488fbb582f6" + }, + { + "path": "evaluation/audit/int8-1024-tiled/gpu-before.txt", + "size": 3345, + "sha256": "eb405f1449241088c7821e9b1a815addf62b35a1699abc097fd8f5134c2bd118" + }, + { + "path": "evaluation/audit/int8-1024-tiled/memory.jsonl", + "size": 7297, + "sha256": "2164381f35b691a9a20726b84f6b4d1ac084ee99022a1b573d92d4199be72dd1" + }, + { + "path": "evaluation/audit/int8-1024-tiled/records.jsonl", + "size": 391, + "sha256": "d096213e0edc12d6186220c35ab937b470a198dd2a4715bfb12f74fbf5a7424e" + }, + { + "path": "evaluation/audit/int8-fixed/edit_fresh.png", + "size": 2275894, + "sha256": "79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33" + }, + { + "path": "evaluation/audit/int8-fixed/edit_no_cache.png", + "size": 2276140, + "sha256": "044657096db189dc8b8741ac96c59a3758944525e914ee338c32c2e8b3345f2b" + }, + { + "path": "evaluation/audit/int8-fixed/edit_repeat.png", + "size": 2275894, + "sha256": "79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33" + }, + { + "path": "evaluation/audit/int8-fixed/edit_rgb.png", + "size": 2275437, + "sha256": "d960f2abe6352c66f07735f408e3dfbd7519a895343f9fd520d90bdefd23262b" + }, + { + "path": "evaluation/audit/int8-fixed/environment.json", + "size": 483, + "sha256": "cf1517995b3c333f6975a9c610d4e1f536a559236a16e78b848b2488fbb582f6" + }, + { + "path": "evaluation/audit/int8-fixed/gpu-before.txt", + "size": 3253, + "sha256": "112a6d627ff47b5dadc8fead82e987b65125bc0944a147d31577dd5cce31ba80" + }, + { + "path": "evaluation/audit/int8-fixed/memory.jsonl", + "size": 29724, + "sha256": "79c31a4f3ea6252aa45c7775b5a6b37a3f6e7283cbc9dfd264f4b793d9ced101" + }, + { + "path": "evaluation/audit/int8-fixed/portrait.png", + "size": 1865119, + "sha256": "e37187a2530d0f45378f17ca8fff47a7e174f1ce0c19ff89b9df8f4db1845acd" + }, + { + "path": "evaluation/audit/int8-fixed/records.jsonl", + "size": 1788, + "sha256": "8f3cf49207e8904c039297f5fbe6b02191ea65446a963fa4b91cdab9ae7fa0cf" + }, + { + "path": "evaluation/audit/int8-fixed/vae-roundtrip.json", + "size": 310, + "sha256": "1c840c25b4d2a7bdb7f0ad3e6e1633baf473addd09204aa6bfdbdf8265dbcea7" + }, + { + "path": "evaluation/audit/int8-fixed/vae_roundtrip.png", + "size": 1803783, + "sha256": "c0c4090e0a95407811b24fe2067941f801ade6bfcb193580f44dafd4e63fa198" + }, + { + "path": "evaluation/audit/int8-native/environment.json", + "size": 483, + "sha256": "cf1517995b3c333f6975a9c610d4e1f536a559236a16e78b848b2488fbb582f6" + }, + { + "path": "evaluation/audit/int8-native/gpu-before.txt", + "size": 3253, + "sha256": "dd5c4340621057b12b717bdc90ad57236c76600a4348ece7a15901f23f48336f" + }, + { + "path": "evaluation/audit/int8-native/memory.jsonl", + "size": 5299, + "sha256": "8b3d1fb65157d9b2955f779cffd752d143d25a915c911be6f7354d3b65e7a0fb" + }, + { + "path": "evaluation/audit/int8-native-tiled/edit_native.png", + "size": 6895510, + "sha256": "b6af18d8688bb2669632adf0cfae962bc34431e30e935014997010cde5c2ca59" + }, + { + "path": "evaluation/audit/int8-native-tiled/environment.json", + "size": 483, + "sha256": "cf1517995b3c333f6975a9c610d4e1f536a559236a16e78b848b2488fbb582f6" + }, + { + "path": "evaluation/audit/int8-native-tiled/gpu-before.txt", + "size": 3345, + "sha256": "f289e8bcd694b2bde538036bbc4cbe07127befb163d384c6b43cc1c6d6f22c65" + }, + { + "path": "evaluation/audit/int8-native-tiled/memory.jsonl", + "size": 7301, + "sha256": "743a4c72fa44b72bd053b7634132066889c68ee14af452de9fa7e3ea866ca783" + }, + { + "path": "evaluation/audit/int8-native-tiled/records.jsonl", + "size": 392, + "sha256": "6e7c3abde2db894026089fcd59fb0f7e40050c3a88ecb0215333bb4551cb342b" + }, + { + "path": "evaluation/audit/int8-original/edit_fresh.png", + "size": 2275894, + "sha256": "79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33" + }, + { + "path": "evaluation/audit/int8-original/edit_no_cache.png", + "size": 2276140, + "sha256": "044657096db189dc8b8741ac96c59a3758944525e914ee338c32c2e8b3345f2b" + }, + { + "path": "evaluation/audit/int8-original/edit_repeat.png", + "size": 2275894, + "sha256": "79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33" + }, + { + "path": "evaluation/audit/int8-original/edit_rgb.png", + "size": 2275437, + "sha256": "d960f2abe6352c66f07735f408e3dfbd7519a895343f9fd520d90bdefd23262b" + }, + { + "path": "evaluation/audit/int8-original/environment.json", + "size": 483, + "sha256": "cf1517995b3c333f6975a9c610d4e1f536a559236a16e78b848b2488fbb582f6" + }, + { + "path": "evaluation/audit/int8-original/gpu-before.txt", + "size": 3253, + "sha256": "17d32e2a7b475f4ea72584b5efb271e21f2d858adcdbfd0cdb3d288a4b3cc5e8" + }, + { + "path": "evaluation/audit/int8-original/memory.jsonl", + "size": 27684, + "sha256": "5bbf03b7740124fe85d8f0de8b3c83627248cf65d2945619deed15d73cc686b2" + }, + { + "path": "evaluation/audit/int8-original/portrait.png", + "size": 1865119, + "sha256": "e37187a2530d0f45378f17ca8fff47a7e174f1ce0c19ff89b9df8f4db1845acd" + }, + { + "path": "evaluation/audit/int8-original/records.jsonl", + "size": 1507, + "sha256": "fc6b4ac7193ec71ad4f444283a6204247a2bd48aab6bca4af1a9e59ea92eee50" + }, + { + "path": "evaluation/audit/summary.json", + "size": 6656, + "sha256": "5625684a8ce0c302c2fea3356d6eaa26c37668c0ad008327df6b9759ae35bab8" }, { "path": "evaluation/bf16/chinese_text-s123.png", @@ -96,8 +281,8 @@ }, { "path": "evaluation/bf16/environment.json", - "size": 5659, - "sha256": "9fe2336fb834a19c56b3280ad01d22bb3a716ddead12633398c8561eb6ffc981" + "size": 7900, + "sha256": "a6ec915a39a596055d389f07aac119e59c03f1630c446eeadce15c30b50845c2" }, { "path": "evaluation/bf16/portrait-s123.png", @@ -111,8 +296,8 @@ }, { "path": "evaluation/bf16/records.jsonl", - "size": 11284, - "sha256": "4167b569c5970648ef04a7f903c12ba6bf658f0b6fb3931e79efdf98bbfddabb" + "size": 15209, + "sha256": "0fba5d3c93f1596a9e3dc310b6cb78e790601ef009b0d7e81646779bb2f55cc6" }, { "path": "evaluation/bf16/rgba-s123.png", @@ -136,18 +321,273 @@ }, { "path": "evaluation/comparison.csv", - "size": 2510, - "sha256": "e441773cf19d5e6e7f8320f9da5e4ec2e2d84a991589c105424b240d1f7e34bb" + "size": 2490, + "sha256": "33cad3969ff1d11e5bab1944f26c75b13644c92b681d0d79e10a4c1a9028de41" }, { "path": "evaluation/comparison.html", - "size": 5966, - "sha256": "83bbd685fe09c581d1e675b5324681c9bc6944ef47687894095573576473b8db" + "size": 6884, + "sha256": "9f520ff7339cb692d7c68301f22e40e4ca7f827f0f64b367505147f2728cd264" }, { "path": "evaluation/hardware.json", - "size": 349, - "sha256": "3f18698ee838a786f10a3fdbcc31621995811797a30d7c803be8fc4ee8e5a6db" + "size": 340, + "sha256": "4a73d03c8dea0f97ea9abbc599142df993c00412584577b44ed4e96dc7576abe" + }, + { + "path": "evaluation/initial/bf16/chinese_text-s123.png", + "size": 1194079, + "sha256": "eae74256d7ed1b3519d39c7d58961cf7a937224d19a3c3239ca7eba4178edf49" + }, + { + "path": "evaluation/initial/bf16/chinese_text-s42.png", + "size": 1303893, + "sha256": "7082cb71d99705bc42e27e2c206b13e3beb9e62cfd6304cfabe203b82641692c" + }, + { + "path": "evaluation/initial/bf16/composition-s123.png", + "size": 1220815, + "sha256": "bc11612f260acd8af0d834f3b28c752cefd0437d24c9a01dae0d46647bdf29ae" + }, + { + "path": "evaluation/initial/bf16/composition-s42.png", + "size": 1194343, + "sha256": "91e967685fbbd79ba13daece22a0f72c863cb518db88d5d2a6f9aecfc5f292b1" + }, + { + "path": "evaluation/initial/bf16/edit-s123.png", + "size": 1801031, + "sha256": "7d00c5bb7a2b31f05ea3fcf3f4a79dd93335770fe1b2d0ad772d5df954c9f91c" + }, + { + "path": "evaluation/initial/bf16/edit-s42.png", + "size": 2269130, + "sha256": "8713f6ef2ec0191d88225f2515671d6f51be43aa293bb1ca6e25b07a1b67deb9" + }, + { + "path": "evaluation/initial/bf16/english_text-s123.png", + "size": 905011, + "sha256": "cf5e76dee9f0e403ebdf24a64e1fcd604ee2b6c8e645a032fba2807acc34adf2" + }, + { + "path": "evaluation/initial/bf16/english_text-s42.png", + "size": 969130, + "sha256": "ba31b0c8a312e96408096566013c667b3a32bd7720749ca47120960b17b41ca6" + }, + { + "path": "evaluation/initial/bf16/environment.json", + "size": 5505, + "sha256": "3309783a060414b438679e1a02da0f42258ad2191717143878480851204dd481" + }, + { + "path": "evaluation/initial/bf16/portrait-s123.png", + "size": 1930022, + "sha256": "cff376e50c41c4aee2b9e4aabc502f4791774f6ad285d8a7673a61ebb1fa650d" + }, + { + "path": "evaluation/initial/bf16/portrait-s42.png", + "size": 1868618, + "sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa" + }, + { + "path": "evaluation/initial/bf16/records.jsonl", + "size": 11270, + "sha256": "7aedee2d158585154d1df991ae25e1ad22ed6cacb564925858e6e33563033693" + }, + { + "path": "evaluation/initial/bf16/rgba-s123.png", + "size": 926957, + "sha256": "6f1abbb1a64ac553fc576a0250d370ab5bb7e6d5e6372f42f67045a5bb0951a6" + }, + { + "path": "evaluation/initial/bf16/rgba-s42.png", + "size": 850131, + "sha256": "6f5dfea6ba02e41cbf20617b6e863e1adfa139d79fad2ca5c64dfc815f591d82" + }, + { + "path": "evaluation/initial/bf16/texture-s123.png", + "size": 1760350, + "sha256": "18c4403f388d0e03447473c03497141169f333fddeaeb40227163dc3b9d68d3e" + }, + { + "path": "evaluation/initial/bf16/texture-s42.png", + "size": 1797822, + "sha256": "40a0f73bb407a394fa9e8a3f6922455df716b9725ad07437fa10c1daca2c2095" + }, + { + "path": "evaluation/initial/comparison.csv", + "size": 2495, + "sha256": "b0950a972fb8a63237b215e2ff3ba2b5b2dd7b80a9c73911423800177c07c368" + }, + { + "path": "evaluation/initial/comparison.html", + "size": 5949, + "sha256": "9ab68a63f5124b6eaf2a0b8bc125664adf7d196601a0117e174b5f3daddce741" + }, + { + "path": "evaluation/initial/hardware.json", + "size": 340, + "sha256": "4a73d03c8dea0f97ea9abbc599142df993c00412584577b44ed4e96dc7576abe" + }, + { + "path": "evaluation/initial/int8/chinese_text-s123.png", + "size": 1201749, + "sha256": "7ff8508a9454650920591c0aad34d1793501f609e853f2f8584c15eee5127479" + }, + { + "path": "evaluation/initial/int8/chinese_text-s42.png", + "size": 1315329, + "sha256": "dce2de1e3b8b3836c7584854c7cf340cf05bcb141fa8e3988264c62e1b20238c" + }, + { + "path": "evaluation/initial/int8/composition-s123.png", + "size": 1211968, + "sha256": "c030c007a9c3962533ffeb256d9dac619cc082a20a21ff6f9eb0c0ab7b7cadae" + }, + { + "path": "evaluation/initial/int8/composition-s42.png", + "size": 1222325, + "sha256": "5704252c99e7f9dbe9e512eb82bf4fd93650e26c1d6479412679e7868637bcdd" + }, + { + "path": "evaluation/initial/int8/edit-s123.png", + "size": 1799329, + "sha256": "d8023e34ba10a22b36f63d050c50d44f149cebc7fc8f7f612a47f27f2a4cb70b" + }, + { + "path": "evaluation/initial/int8/edit-s42.png", + "size": 2275894, + "sha256": "79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33" + }, + { + "path": "evaluation/initial/int8/english_text-s123.png", + "size": 922494, + "sha256": "b55551e7c17975ee90ad895e449379355886c3422d6dcdee9b0c3a4ce1c4632f" + }, + { + "path": "evaluation/initial/int8/english_text-s42.png", + "size": 960968, + "sha256": "98ea66acd842498e192bc69503e32f5f61a4e5e56887d0f86e9c936b0b0d976f" + }, + { + "path": "evaluation/initial/int8/environment.json", + "size": 5142, + "sha256": "f384a38b4353e1a40bca191cc91ec5a8894f5aa093ba352c370738fe9605eb0d" + }, + { + "path": "evaluation/initial/int8/portrait-s123.png", + "size": 1930928, + "sha256": "09391672b7aa15abc92a49184c94cd7dc09b570b2134c95f0a1524701630323c" + }, + { + "path": "evaluation/initial/int8/portrait-s42.png", + "size": 1865119, + "sha256": "e37187a2530d0f45378f17ca8fff47a7e174f1ce0c19ff89b9df8f4db1845acd" + }, + { + "path": "evaluation/initial/int8/records.jsonl", + "size": 11267, + "sha256": "706220f4e5b37ad49e4f4a694ae8ebebb058dfe66e1877a4aaa80ce832418adf" + }, + { + "path": "evaluation/initial/int8/rgba-s123.png", + "size": 1032567, + "sha256": "4871aab8f9d404a479385053bdb4c18de7f4119884bb0e30997d7be721a69b45" + }, + { + "path": "evaluation/initial/int8/rgba-s42.png", + "size": 918813, + "sha256": "8624d495fe40f602a492b3366ccb0354d5684e4e084281503fdb435d0f4e265e" + }, + { + "path": "evaluation/initial/int8/texture-s123.png", + "size": 1758127, + "sha256": "82fc88d5ab3cd4201634c54567b327f200231321dd0207990ff4c893e78496c7" + }, + { + "path": "evaluation/initial/int8/texture-s42.png", + "size": 1784440, + "sha256": "37042d1659147a142e0562aa27623cb1d159d9d12e46af59395029f0293fd9c8" + }, + { + "path": "evaluation/initial/qualitative.md", + "size": 2365, + "sha256": "f5e112ed3eb9f64574e269489b0176a6d389b1e983e3b9d97c802d329bca7b4d" + }, + { + "path": "evaluation/initial/report.md", + "size": 2144, + "sha256": "e22892b8cc8e97394d3f0d3860961d031964efe57177a7c78a9fe28105f10161" + }, + { + "path": "evaluation/initial/summary.json", + "size": 352, + "sha256": "f9d9fcaee946aedef904f8621eedb2ae6e5b5ab9d2ec80b617a67165763d7f0f" + }, + { + "path": "evaluation/initial/young_woman/bf16/environment.json", + "size": 5327, + "sha256": "2cc0802f51aa4de4b885fb1feda58f1883ac7bdd40b47b9ff539a9217f10315a" + }, + { + "path": "evaluation/initial/young_woman/bf16/records.jsonl", + "size": 2065, + "sha256": "8069e03e741671941f7405aa147b9f892816d477359dff63ec2d6b79022dffdf" + }, + { + "path": "evaluation/initial/young_woman/bf16/young_chinese_woman-s123.png", + "size": 1555909, + "sha256": "a2f28b40c897335595e496d23e490278c53b2f916597a4ef0fbb95a9f2700096" + }, + { + "path": "evaluation/initial/young_woman/bf16/young_chinese_woman-s42.png", + "size": 1568091, + "sha256": "00716ad4721f585be4b0bf0daf2413f4ab92b795f1eb4d08b4f1ecc604b075b8" + }, + { + "path": "evaluation/initial/young_woman/comparison.csv", + "size": 510, + "sha256": "9d4b3d5860c1d51f617f8ba279709d73f6e61b07662076048fa54f5f59d57212" + }, + { + "path": "evaluation/initial/young_woman/comparison.html", + "size": 1722, + "sha256": "149d6e89621a4989e1924f97dd35e99e54f9a1928fc2f89703faae9000f99101" + }, + { + "path": "evaluation/initial/young_woman/int8/environment.json", + "size": 5141, + "sha256": "30cdde43f9ae0337fac191563337420e8420ca2fcda81a8ca53d083e9434ea66" + }, + { + "path": "evaluation/initial/young_woman/int8/records.jsonl", + "size": 2062, + "sha256": "cb18958857492487b031aad65690c673d7fe6bafce70876b1585c980afd951bd" + }, + { + "path": "evaluation/initial/young_woman/int8/young_chinese_woman-s123.png", + "size": 1560080, + "sha256": "350e800c857e0c6e0836cd7fb222cd9b60c10a34f29f15b1f8ffa71e9f986f64" + }, + { + "path": "evaluation/initial/young_woman/int8/young_chinese_woman-s42.png", + "size": 1563866, + "sha256": "5ffeb0f35bf0115ba2dd7ea9a98def2a97f280c67c27a24c9d1110e6501256a6" + }, + { + "path": "evaluation/initial/young_woman/qualitative.md", + "size": 2185, + "sha256": "98ad6ce5f287a201d375ebfcf0c6fd8b3a4c254d44ae9f565446b661f6eb324a" + }, + { + "path": "evaluation/initial/young_woman/report.md", + "size": 1274, + "sha256": "641d065ba1007292ccc1d8b9c51eddc0253be640e93bda636cdf337837bd8a99" + }, + { + "path": "evaluation/initial/young_woman/summary.json", + "size": 352, + "sha256": "07f2aa005945a2c8a27bc0b14539abcb04cbcf550c92b242d88f8ec9f828cbf7" }, { "path": "evaluation/int8/chinese_text-s123.png", @@ -191,8 +631,8 @@ }, { "path": "evaluation/int8/environment.json", - "size": 5290, - "sha256": "44625db8d61251f534c3abf6e0a4cd3d00955f57986420d8673f3962d41a6d27" + "size": 7665, + "sha256": "e6ff6ec88c040cc643ecd26d78d66c293868263df95174ef536fa36e5e63ee87" }, { "path": "evaluation/int8/portrait-s123.png", @@ -206,8 +646,8 @@ }, { "path": "evaluation/int8/records.jsonl", - "size": 11281, - "sha256": "c24ceada57729199c64f5d89ceae27f9b403b93fe777179d9b635428131033cd" + "size": 15203, + "sha256": "d7cb1c5c50eb81789340ad282d5fef2e4bcc89f4c87c3bf305ae236fe5c03c48" }, { "path": "evaluation/int8/rgba-s123.png", @@ -229,6 +669,11 @@ "size": 1784440, "sha256": "37042d1659147a142e0562aa27623cb1d159d9d12e46af59395029f0293fd9c8" }, + { + "path": "evaluation/process-isolation.jsonl", + "size": 27649, + "sha256": "b7a0fb466a1ddb29a31732f05a264a4aea85e31dd163b5e55397066470be2736" + }, { "path": "evaluation/qualitative.md", "size": 2365, @@ -236,23 +681,23 @@ }, { "path": "evaluation/report.md", - "size": 2184, - "sha256": "84c4e4348c035e3852155ccb4a768441811c6c08ec8358b8f28c21ca190af5e8" + "size": 2023, + "sha256": "7f843096974808bbd1f9b9da028104c79373bb5aa96d45aefd552deb00c723bc" }, { "path": "evaluation/summary.json", - "size": 365, - "sha256": "ab07b54644317bfc2caa1c0ad1b4d960e414752a37ad7e842d41685dcf523e38" + "size": 351, + "sha256": "392882d44ebfec98132db980fbdca900425fd46dd526cb1aa95431dadcc71d67" }, { "path": "evaluation/young_woman/bf16/environment.json", - "size": 5480, - "sha256": "f22b1f0a4e9eb98d6e402e0d08b93afc595f6391378071c59a827c172b131c84" + "size": 7850, + "sha256": "469d86b6f3af1a2601ca83ec26a361577dce64aefd26208bdf441031b9f4e9fc" }, { "path": "evaluation/young_woman/bf16/records.jsonl", - "size": 2067, - "sha256": "881dd5592fc198ede61416a9f7a6dcf9dc697ae5e678ffb166e04a52192f831c" + "size": 2627, + "sha256": "d4ea5f67a94558ff66113cf98a1f9d6df1ba3d654fc6e785012aef1b5c903c1c" }, { "path": "evaluation/young_woman/bf16/young_chinese_woman-s123.png", @@ -266,23 +711,23 @@ }, { "path": "evaluation/young_woman/comparison.csv", - "size": 513, - "sha256": "c38eef422e781fb0b3cddeee017027140c62eaa2abfa2e6948a32e184a933944" + "size": 510, + "sha256": "4b9c508af376db01cd0ef6c97ab349ec124b27a3b99ced3c776850073fbe7090" }, { "path": "evaluation/young_woman/comparison.html", - "size": 1726, - "sha256": "3586888ee7622d2226661184cfdf5493200c3853c65e7c0890f4365fccf6fc26" + "size": 1912, + "sha256": "115caecc515bc3b469d4ac2dff19cfa190e34583d602696b1263accc9582193c" }, { "path": "evaluation/young_woman/int8/environment.json", - "size": 5289, - "sha256": "703186d40488bba0c1a058bf0134b2436ebba1b0929679e1b71cb78c4c292722" + "size": 7664, + "sha256": "1b24ae99b72e0ba4520f583045994a10812204a031c0c3a80c35032499838617" }, { "path": "evaluation/young_woman/int8/records.jsonl", - "size": 2064, - "sha256": "b3bf88a2f62ac9262c94730e92fb2d3816f4a13bab1c9c6716c4b991f0bff3b7" + "size": 2626, + "sha256": "a90c33658e08df669c32a0f1e7ba3ec51f852774c35fe656f388e9ffdd8193e4" }, { "path": "evaluation/young_woman/int8/young_chinese_woman-s123.png", @@ -301,19 +746,29 @@ }, { "path": "evaluation/young_woman/report.md", - "size": 1300, - "sha256": "b647a04ecf6af54fc6cdcfe1ca34383f34b513be01f5b2c3048db6daa2142bde" + "size": 1272, + "sha256": "7182a9dff2539048140980eac7c52780a6789022bfdddb108595e8bafd9950ed" }, { "path": "evaluation/young_woman/summary.json", - "size": 365, - "sha256": "f915a59019a6ebdfe8761dc7f9bc30e7348ecf1ef1e83e899f808b9d6af7e7ed" + "size": 350, + "sha256": "af13709d3480a3199ff24cee5b1e2b4985a00632b8a3240bca38779dc54aafa9" + }, + { + "path": "LICENSE", + "size": 7831, + "sha256": "8dc973f024ff95966bea25866efa443fd16776dcb1001e681e3d467ea572b28d" }, { "path": "model_index.json", "size": 447, "sha256": "cf1ecd104ea090855d60d8cec0895c1e9d6ee41b2f87e231b678beecd1cf7809" }, + { + "path": "Notice", + "size": 530, + "sha256": "9b12c699d8e464d0eda682b18535568981893eaf66e462a0467f2c16b387970a" + }, { "path": "processor/added_tokens.json", "size": 707, @@ -359,6 +814,21 @@ "size": 2776833, "sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910" }, + { + "path": "PUBLISHING.md", + "size": 2118, + "sha256": "ed220160bb06dd4774f6e413eb6b077f8316033ae76dbf85c146e9c65cbac4e8" + }, + { + "path": "README.md", + "size": 32442, + "sha256": "91d1b390de44e8b1458689b89eaa4ecd99c40e2dbe858013077a558f4fce7b29" + }, + { + "path": "REPRODUCE.md", + "size": 6454, + "sha256": "f334d615441aa5de41767f7c31b7e2cb2d4b6976d7e121a07fb89d8c33f0b589" + }, { "path": "requirements.txt", "size": 358, @@ -374,10 +844,20 @@ "size": 364, "sha256": "bf9f0329f310b94e93f498ffb6e921604dba02340d7b77168f5da0d8384f5762" }, + { + "path": "scripts/audit_report.py", + "size": 9736, + "sha256": "16da01bb5128beecf6ca51ae8d83f39fb0487f5bd501e002265332974795bd8a" + }, + { + "path": "scripts/audit_runtime.py", + "size": 6430, + "sha256": "c6cd24aba8c9872066a4ed0b162f1ef09bfab05f92cfac212edec62c724d80cb" + }, { "path": "scripts/benchmark.py", - "size": 5726, - "sha256": "4e1bc7bef15e04b436fd5b32a21c33954319ae670de32c5eca33ede742c8dd01" + "size": 7492, + "sha256": "39544666c2e94a0d56de5057c7ab1e88df90dd5ba4d2cba2428c11f9d7c4d9fb" }, { "path": "scripts/download.py", @@ -386,8 +866,8 @@ }, { "path": "scripts/infer.py", - "size": 1829, - "sha256": "1f73851dd4c8bed57d0444ea195ef5008f3827f5f6974cae0c65fe710a3e2984" + "size": 2009, + "sha256": "07cdfdc9da65a403b8ca13ed748cfb657f4142c3731e6a06ce4001178de73c0a" }, { "path": "scripts/integrity.py", @@ -396,8 +876,8 @@ }, { "path": "scripts/model_card.py", - "size": 14003, - "sha256": "38d818796d56681c84f28281cc2f1cd699746d5fd410e1aa312f9ae2e445c41d" + "size": 14034, + "sha256": "a55b869ea85f6332b9dd3f4f9bbbb80c2e0b6bb8cab4e14ece0c6daf3807e2a4" }, { "path": "scripts/provenance.py", @@ -406,29 +886,44 @@ }, { "path": "scripts/quantize.py", - "size": 4301, - "sha256": "1d12d3acd9c8e4f41cdd83f4be54b56228e1721ddf45bcee2732ff68e9259488" + "size": 4212, + "sha256": "c61f7471d090b4db32f31143b21d14fbf14f6e9276ed308b528d3b03b576284c" }, { "path": "scripts/release.py", - "size": 12517, - "sha256": "5dbd00f5d29be7f74c171352fedde6a4c2d807b359277b2b3bff401c0f5ddf0f" + "size": 12886, + "sha256": "720259a824d85fdaa65116452d47814899842cc0e36b36c2edaddac1482a9e58" }, { "path": "scripts/report.py", - "size": 8179, - "sha256": "f33f8352a0b6561b8089b04d280f4082feb55de0c89250a0b02fc35639c94243" + "size": 8501, + "sha256": "b3fe8657cc76a3d8e77b6df6733729f9352d8a84d347b5f69fc7724eb8cedce7" + }, + { + "path": "scripts/rerun_evaluation.py", + "size": 1827, + "sha256": "5c7c9b036f3af82a6036bdb8a666e08837c1b254d7886fde6aee28a2464d5b46" + }, + { + "path": "scripts/runtime.py", + "size": 2979, + "sha256": "26db92afa7d5c72324080480abe52c8e677b899844b369d99ac895e9bb1fb71c" }, { "path": "scripts/upload.py", - "size": 3674, - "sha256": "b46f2c8595e7aff91e1565a1f068ab9c32c85f9daab8cb5383f9e5ba3024fc4a" + "size": 3598, + "sha256": "7eb6574d2f7fb5e6d4e8bbd60f11e738696b6a93f8f7aac0f851e0fb0018f164" }, { "path": "tests/__init__.py", "size": 0, "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, + { + "path": "tests/gpu_offload.py", + "size": 1637, + "sha256": "7f96a8b197c83c9e7ee3ab8d7fc4fbf67efa1f32572eb70759983ec966976d6d" + }, { "path": "tests/gpu_roundtrip.py", "size": 1055, @@ -454,11 +949,6 @@ "size": 858, "sha256": "722994cc6aab6673498266d6414650a88837c331b261693f2c0eb98499cb3552" }, - { - "path": "text_encoder-quantization.json", - "size": 19004, - "sha256": "602398ec933e151e3e71b5f3208500b376855b40d072f73340490e2a6e64f32b" - }, { "path": "text_encoder/config.json", "size": 2487, @@ -490,9 +980,9 @@ "sha256": "d3fc335d23047182f40d458efec86a4b187a766e0d1639426b6a9b7ab5b1ab8a" }, { - "path": "transformer-quantization.json", - "size": 9853, - "sha256": "d735fe2c5f2546f20d943cc0789a5f57950d945343871a8cade62ea9234996a7" + "path": "text_encoder-quantization.json", + "size": 19004, + "sha256": "602398ec933e151e3e71b5f3208500b376855b40d072f73340490e2a6e64f32b" }, { "path": "transformer/config.json", @@ -514,6 +1004,11 @@ "size": 77984, "sha256": "96963ae89098cbfdb83fb09bfe0b91e34d8dfe812c65da5e1fbe452878a79ebe" }, + { + "path": "transformer-quantization.json", + "size": 9853, + "sha256": "d735fe2c5f2546f20d943cc0789a5f57950d945343871a8cade62ea9234996a7" + }, { "path": "upstream-verification.json", "size": 1439, diff --git a/README.md b/README.md index 537566c6541f2b5c31123494e1815fab50797f9b..a88a82a471ee6b809b043297a380429d9c51a739 100644 --- a/README.md +++ b/README.md @@ -48,12 +48,13 @@ pip install -r requirements.txt ```python import torch -from diffusers import QwenImage21Pipeline +import sys +from huggingface_hub import snapshot_download -pipe = QwenImage21Pipeline.from_pretrained( - "ixim/Image21-INT8", dtype=torch.bfloat16, -) -pipe.enable_model_cpu_offload() +model_dir = snapshot_download("ixim/Image21-INT8") +sys.path.insert(0, model_dir) # bundled, inspectable scripts/runtime.py +from scripts.runtime import load_int8_pipeline +pipe = load_int8_pipeline(model_dir, local_files_only=True) image = pipe( prompt='A neon sign reading "CREATE WITH LIGHT", rainy night', width=1024, height=1024, num_inference_steps=40, @@ -64,9 +65,15 @@ image.save("output.png") ``` The saved quantization configuration is detected automatically. Do not re-quantize -these weights at load time. For editing, pass `image=PIL.Image.open("input.png")`. +these weights at load time. For editing, use the 2048px retest recipe below, setting +`width`, `height` and `output_resolution` together and enabling VAE tiling. For transparency, use the upstream RGBA prompt format and save PNG files. +Use the bundled loader on the pinned runtime: it loads/offloads the two INT8 +components sequentially and moves their auxiliary tensors during model offload. +Calling only `enable_model_cpu_offload()` leaves INT8 CUDA tensors resident in +this tested stack. The helper does not change the checkpoint or quantization. + ## Local evaluation 14 paired outputs across 7 cases at 1024×1024 on an RTX 5090. @@ -74,16 +81,81 @@ For transparency, use the upstream RGBA prompt format and save PNG files. | Metric | BF16 | INT8 | |---|---:|---:| | Weight files (decimal GB) | 33.116 | 18.632 | -| Mean call latency (s) | 26.79 | 20.29 | -| Maximum CUDA allocated memory (GiB) | 19.08 | 23.08 | +| Mean call latency (s) | 26.44 | 20.21 | +| Maximum CUDA allocated memory (GiB) | 19.08 | 12.09 | + +The table reports the complete rerun using the corrected offload helper. The +initial result (19.08 GiB BF16 / 23.08 GiB INT8) exposed an offload compatibility +bug, diagnosed below. Original measurements and failure samples are retained. + +### Memory audit and editing retest + +The initial benchmark called model CPU offload but did not verify auxiliary-tensor residency. With this pinned PyTorch/bitsandbytes stack, a parent module device move bypasses the child `Linear8bitLt.to()` method. The parameter moves to CPU while CB/SCB auxiliary references can remain on CUDA. About 13.51 GiB remained after apparent offload. `empty_cache()` cannot release live tensors. + +The bundled instance-local helper synchronizes auxiliary tensors during recursive device moves and loads the INT8 components sequentially. It changes neither weights nor generation settings. A nested-layer GPU regression fails without the helper and passes three exact-output round trips with it. All five full-model diagnostic outputs are byte-identical before/after the offload fix. All 32 newly generated formal-evaluation PNGs also match the initial run by SHA256. + +Each rerun precision/suite uses a fresh subprocess; the orchestrator waits for exit before starting the next. PID, board/process listings, zero-allocation startup and per-image baselines are recorded. The initial run did not capture a board-memory baseline, so historical external occupancy cannot be reconstructed. Its PyTorch allocated-memory metric is process-local; the fresh-process reproduction locates the excess inside the INT8 process. + +| Memory measurement (GiB) | BF16 | INT8 | +|---|---:|---:| +| Initial inference maximum | 19.081 | 23.080 | +| Corrected rerun inference maximum | 19.081 | 12.087 | +| Corrected rerun loading maximum | 0.000 | 9.335 | + +Loading and inference peaks are reported separately; these are allocated-memory measurements, not minimum supported GPU sizes. Desktop usage, CUDA context and allocator reservations require additional headroom. Only the RTX 5090 was tested. + +**Editing retest:** the fresh-process and repeated 1024px edits reproduce the original INT8 failure exactly. RGB input and disabling KV cache do not visibly fix the excessive contrast. A VAE-only round trip preserves the soft lighting. These controls narrow the problem but do not establish a root cause in the editing model/pipeline. + +At 1024px, enabling VAE tiling alone still produces excessive sharpening. At 2048px with the same tiling configuration, both BF16 and INT8 produce a red sweater while substantially preserving the soft lighting and natural skin texture. This controlled comparison supports resolution sensitivity in this editing case (including reference-image preprocessing). It does not identify a deeper model/pipeline cause or establish universal editing reliability. + +Diagnostic runs include instrumentation/cold starts and are not pooled into the latency averages. + +| Diagnostic image | Output (click to enlarge) | +|---|---| +| Shared input | [![Shared input](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/input.png)](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/input.png) | +| Fresh-process INT8, 1024px (failure reproduced) | [![Fresh-process INT8, 1024px (failure reproduced)](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/int8-original/edit_fresh.png)](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/int8-original/edit_fresh.png) | +| 1024px RGB input (not improved) | [![1024px RGB input (not improved)](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/int8-original/edit_rgb.png)](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/int8-original/edit_rgb.png) | +| 1024px KV cache off (not improved) | [![1024px KV cache off (not improved)](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/int8-original/edit_no_cache.png)](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/int8-original/edit_no_cache.png) | +| VAE-only round trip (no diffusion editing) | [![VAE-only round trip (no diffusion editing)](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/int8-fixed/vae_roundtrip.png)](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/int8-fixed/vae_roundtrip.png) | +| 1024px with VAE tiling (not improved) | [![1024px with VAE tiling (not improved)](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/int8-1024-tiled/edit_fresh.png)](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/int8-1024-tiled/edit_fresh.png) | + +**2048px paired editing retest, seed 42; default VAE tiling in both.** + +| BF16 | INT8 | +|---|---| +| [![BF16 2048](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/bf16-native-tiled/edit_native.png)](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/bf16-native-tiled/edit_native.png) | [![INT8 2048](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/int8-native-tiled/edit_native.png)](https://huggingface.co/ixim/Image21-INT8/resolve/main/evaluation/audit/int8-native-tiled/edit_native.png) | + +| 2048px diagnostic metric | BF16 | INT8 | +|---|---:|---:| +| CUDA allocated peak (GiB) | 26.513 | 21.647 | +| Cold, instrumented call (s) | 233.80 | 213.56 | + +Both use the original 1024px reference, resized internally at `output_resolution=2048`. The prompt, seed, 40 steps, CFG=1 and KV cache match the failed case. This is one editing example, not evidence that all editing requests succeed. Fine details still drift. + +```python +from PIL import Image +pipe.vae.enable_tiling() +image = pipe( + prompt="Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.", + image=Image.open("input.png"), + width=2048, height=2048, output_resolution=2048, + num_inference_steps=40, true_cfg_scale=1.0, use_kv_cache=True, + generator=torch.Generator("cpu").manual_seed(42), +).images[0] +image.save("edit.png") +``` + +The initial untiled 2048px diagnostic was stopped after denoising because decoding saturated the desktop GPU memory and stalled; it is not a completed quality/timing result. + +Evidence: [audit/summary.json](evaluation/audit/summary.json), [process-isolation.jsonl](evaluation/process-isolation.jsonl), [initial evaluation](evaluation/initial/report.md), [runtime helper](scripts/runtime.py), [GPU regression](tests/gpu_offload.py). + +Implementation references: [bitsandbytes 0.50.2 Linear8bitLt](https://github.com/bitsandbytes-foundation/bitsandbytes/blob/0.50.2/bitsandbytes/nn/modules.py), [pinned Diffusers offload implementation](https://github.com/huggingface/diffusers/blob/80c7ed262aeffbeb43ef13ae04baeb9b84515a69/src/diffusers/pipelines/pipeline_utils.py), [official model usage and native resolution](https://github.com/QwenLM/Qwen-Image-2.1). -**Observed trade-off:** weights are smaller and average latency is lower in this -run, but peak allocated GPU memory is **higher** with the tested INT8/offload stack. -Do not use this checkpoint as evidence of lower-VRAM operation. -**Editing limitation:** both BF16 and INT8 sweater-edit examples show substantial +**1024px editing limitation:** both BF16 and INT8 sweater-edit examples show substantial oversharpening and contrast changes. Faithful preservation of the original image -is not established. Both precisions also add unwanted footer text in the inspected +is not achieved in those outputs; the separate 2048px retest above improves this case. +Both precisions also add unwanted footer text in the inspected Chinese poster. See [qualitative observations](evaluation/qualitative.md). The comparison uses identical prompts, CPU random generators, seeds, resolutions, @@ -92,17 +164,18 @@ Peak allocated/reserved memory are PyTorch CUDA statistics, not total board memo Timing includes prompt encoding, denoising, decoding and CPU transfers; it excludes model loading and image-file writing. Paired pixel differences measure drift, not semantic quality. This small suite is not a standardized quality ranking. -BF16 was run first, followed by INT8 on the same Windows desktop GPU; repeated -timing trials and confidence intervals were not collected. +BF16 was run first, followed by INT8 on the same Windows desktop GPU. Each case/seed +has one timed call after warmup in this rerun; no confidence interval is estimated. See [evaluation/report.md](evaluation/report.md), raw JSONL records, environment records and paired PNG outputs. The edit pair uses the exact same source image. -Higher resolutions, extensive multi-reference editing, other GPUs, other attention -backends, and ComfyUI compatibility are not established by this evaluation. +The 2048px single-image editing diagnostic below is separate from the 1024px suite. +Extensive multi-reference editing, other GPUs, other attention backends, and +ComfyUI compatibility are not established by this evaluation. ### Evaluation scope and runtime -The original suite has 14 pairs; the separate portrait supplement has 2 pairs. All 16 pairs / 32 original PNG images are shown below. Supplementary measurements are kept separate from the original summary average. +The main suite has 14 pairs; the separate portrait supplement has 2 pairs. All 16 pairs / 32 original PNG images from these suites are shown below. Supplementary measurements are kept separate from the main summary average. All previews link to their full-resolution original PNG. Click an image to open it; no crop, retouching or regenerated substitute is used. @@ -137,29 +210,29 @@ All previews link to their full-resolution original PNG. Click an image to open | Metric | BF16 | INT8 | |---|---:|---:| -| Mean call latency (s) | 28.51 | 20.16 | -| Maximum CUDA allocated (GiB) | 16.44 | 22.86 | +| Mean call latency (s) | 27.61 | 19.51 | +| Maximum CUDA allocated (GiB) | 16.44 | 9.53 | ### Per-image timing and memory | Case | Seed | BF16 s | INT8 s | BF16 allocated GiB | INT8 allocated GiB | |---|---:|---:|---:|---:|---:| -| Older adult portrait | 42 | 29.77 | 19.65 | 16.40 | 22.86 | -| Older adult portrait | 123 | 26.55 | 19.61 | 16.40 | 22.86 | -| English lettering | 42 | 25.95 | 19.42 | 16.41 | 22.86 | -| English lettering | 123 | 25.88 | 19.40 | 16.41 | 22.86 | -| Chinese lettering | 42 | 25.47 | 19.54 | 16.41 | 22.86 | -| Chinese lettering | 123 | 25.85 | 19.86 | 16.41 | 22.86 | -| Counting and spatial arrangement | 42 | 25.38 | 19.13 | 16.41 | 22.86 | -| Counting and spatial arrangement | 123 | 25.35 | 19.30 | 16.41 | 22.86 | -| Feather and branch texture | 42 | 25.85 | 19.22 | 16.40 | 22.86 | -| Feather and branch texture | 123 | 25.76 | 19.57 | 16.40 | 22.86 | -| RGBA transparency | 42 | 26.04 | 19.39 | 16.40 | 22.86 | -| RGBA transparency | 123 | 25.07 | 19.29 | 16.40 | 22.86 | -| Image editing: sweater recoloring | 42 | 31.16 | 25.40 | 19.08 | 23.08 | -| Image editing: sweater recoloring | 123 | 31.03 | 25.24 | 19.08 | 23.08 | -| Young Chinese adult woman portrait (supplement) | 42 | 29.50 | 20.30 | 16.44 | 22.86 | -| Young Chinese adult woman portrait (supplement) | 123 | 27.53 | 20.03 | 16.44 | 22.86 | +| Older adult portrait | 42 | 28.59 | 19.62 | 16.40 | 9.49 | +| Older adult portrait | 123 | 26.07 | 19.48 | 16.40 | 9.49 | +| English lettering | 42 | 25.42 | 19.54 | 16.41 | 9.50 | +| English lettering | 123 | 25.66 | 19.68 | 16.41 | 9.50 | +| Chinese lettering | 42 | 25.62 | 19.61 | 16.41 | 9.50 | +| Chinese lettering | 123 | 25.46 | 19.61 | 16.41 | 9.50 | +| Counting and spatial arrangement | 42 | 25.39 | 19.32 | 16.41 | 9.49 | +| Counting and spatial arrangement | 123 | 25.48 | 19.15 | 16.41 | 9.49 | +| Feather and branch texture | 42 | 25.32 | 19.42 | 16.40 | 9.49 | +| Feather and branch texture | 123 | 25.18 | 19.16 | 16.40 | 9.49 | +| RGBA transparency | 42 | 25.22 | 19.22 | 16.40 | 9.48 | +| RGBA transparency | 123 | 25.54 | 19.22 | 16.40 | 9.48 | +| Image editing: sweater recoloring | 42 | 30.79 | 25.07 | 19.08 | 12.09 | +| Image editing: sweater recoloring | 123 | 30.46 | 24.81 | 19.08 | 12.09 | +| Young Chinese adult woman portrait (supplement) | 42 | 28.58 | 19.58 | 16.44 | 9.53 | +| Young Chinese adult woman portrait (supplement) | 123 | 26.63 | 19.44 | 16.44 | 9.53 | ### Pixel drift (not a semantic quality score) @@ -190,22 +263,22 @@ Reserved memory is the PyTorch CUDA allocator peak. CPU RSS is the process snaps | Case | Seed | BF16 reserved GiB | INT8 reserved GiB | BF16 RSS GiB | INT8 RSS GiB | |---|---:|---:|---:|---:|---:| -| Older adult portrait | 42 | 16.58 | 22.91 | 39.33 | 23.17 | -| Older adult portrait | 123 | 16.58 | 22.91 | 42.59 | 24.06 | -| English lettering | 42 | 16.58 | 22.91 | 43.68 | 24.25 | -| English lettering | 123 | 16.58 | 22.91 | 44.81 | 24.37 | -| Chinese lettering | 42 | 16.59 | 22.91 | 45.28 | 24.50 | -| Chinese lettering | 123 | 16.59 | 22.91 | 45.83 | 24.48 | -| Counting and spatial arrangement | 42 | 16.59 | 22.91 | 45.99 | 24.46 | -| Counting and spatial arrangement | 123 | 16.59 | 22.91 | 46.37 | 25.91 | -| Feather and branch texture | 42 | 16.58 | 22.91 | 46.50 | 26.13 | -| Feather and branch texture | 123 | 16.58 | 22.91 | 46.85 | 26.12 | -| RGBA transparency | 42 | 16.58 | 22.91 | 47.62 | 26.14 | -| RGBA transparency | 123 | 16.58 | 22.91 | 47.48 | 26.15 | -| Image editing: sweater recoloring | 42 | 20.03 | 24.62 | 48.08 | 27.16 | -| Image editing: sweater recoloring | 123 | 20.03 | 24.62 | 48.49 | 27.13 | -| Young Chinese adult woman portrait (supplement) | 42 | 16.62 | 22.93 | 39.59 | 23.32 | -| Young Chinese adult woman portrait (supplement) | 123 | 16.62 | 22.93 | 42.12 | 23.91 | +| Older adult portrait | 42 | 16.58 | 9.60 | 39.60 | 21.22 | +| Older adult portrait | 123 | 16.58 | 9.60 | 42.25 | 21.47 | +| English lettering | 42 | 16.58 | 9.61 | 43.36 | 21.51 | +| English lettering | 123 | 16.58 | 9.61 | 44.45 | 21.46 | +| Chinese lettering | 42 | 16.59 | 9.60 | 45.35 | 21.52 | +| Chinese lettering | 123 | 16.59 | 9.60 | 46.35 | 21.52 | +| Counting and spatial arrangement | 42 | 16.59 | 9.60 | 46.49 | 21.56 | +| Counting and spatial arrangement | 123 | 16.59 | 9.60 | 47.10 | 21.55 | +| Feather and branch texture | 42 | 16.58 | 9.60 | 46.94 | 21.55 | +| Feather and branch texture | 123 | 16.58 | 9.60 | 46.99 | 21.54 | +| RGBA transparency | 42 | 16.58 | 9.55 | 46.95 | 21.54 | +| RGBA transparency | 123 | 16.58 | 9.55 | 47.66 | 21.53 | +| Image editing: sweater recoloring | 42 | 20.03 | 12.97 | 48.55 | 22.22 | +| Image editing: sweater recoloring | 123 | 20.03 | 12.97 | 48.55 | 22.20 | +| Young Chinese adult woman portrait (supplement) | 42 | 16.62 | 9.66 | 39.34 | 21.21 | +| Young Chinese adult woman portrait (supplement) | 123 | 16.62 | 9.66 | 42.60 | 21.44 | ### All paired samples, prompts and observations diff --git a/REPRODUCE.md b/REPRODUCE.md index 5e77edbc572e36e3d2441e3e456231fcf84cf924..b64fba09fec6ed1d10a761e14d2d705f3e666181 100644 --- a/REPRODUCE.md +++ b/REPRODUCE.md @@ -1,113 +1,130 @@ -# Image21-INT8 发布工作区 - -目标:为 Qwen-Image-2.1 制作可重新加载的 Diffusers INT8 衍生模型,比较 BF16 与 -INT8 实际效果,并准备 Hugging Face(ixim)英文、ModelScope(iximbox)中文发布包。 - -本地下载、量化和原有 28 张正式评测输出已完成;另增加四张中国年轻成年女性肖像 -补测输出。两平台目标名称统一为 Image21-INT8。Hugging Face 登录账号已核验为 ixim。 -最新上传状态及 ModelScope 本地登录方法见 [PUBLISHING.md](PUBLISHING.md)。 - -工作区内的 `cards/` 是模板, -`release/` 中通过验证的目录才是上传来源;没有实测记录时不能宣称发布完成。 - -主名称使用 **Image21-INT8**,模型说明中描述其 Qwen-Image-2.1 来源。 -原模型采用 Qwen Research License,仅限非商业研究与评测。 - -## 环境 - -Windows PowerShell,新机器建议创建不继承全局软件包的虚拟环境: - -```powershell -python -m venv .venv -.venv/Scripts/python.exe -m pip install torch==2.10.0 torchvision==0.25.0 --index-url https://download.pytorch.org/whl/cu128 -.venv/Scripts/python.exe -m pip install -r requirements.txt -``` - -本次工作区为复用已有 CUDA PyTorch,使用了 `--system-site-packages`;更新仅安装 -在 `.venv` 内。脚本将 Numba 和 Hugging Face 缓存定向到项目 `.cache`。 -RTX 5090 可通过模型 CPU 卸载运行;精确显存需求以实测报告为准。 - -## 下载、量化、测评 - -在工作区根目录执行: - -```powershell -.venv/Scripts/python.exe -m scripts.download --source modelscope -.venv/Scripts/python.exe -m scripts.integrity -.venv/Scripts/python.exe -m scripts.quantize -.venv/Scripts/python.exe -m scripts.benchmark --model models/bf16 --output artifacts/eval/bf16 -.venv/Scripts/python.exe -m scripts.benchmark --model models/int8 --output artifacts/eval/int8 -``` - -下载固定版本配置,ModelScope 权重按固定 HF 版本 SHA256 核验。下载不使用第三方镜像。 -量化保留敏感层和 VAE 浮点精度,具体模块记录在 `*-quantization.json`。 - -日常本地生成: - -```powershell -.venv/Scripts/python.exe -m scripts.infer --model models/int8 --prompt '一只坐在窗边的橘猫,暖色摄影' --output outputs/cat.png -``` - -编辑时增加 `--input input.png`;多图可在该参数后继续添加文件名。 -默认 1024×1024、40 步、CPU 卸载,PNG 保留 RGBA 通道。 - -输出目录非空时量化拒绝覆盖;测评结果目录已有记录时拒绝覆盖。 -编辑用例输入取自 BF16 的 portrait-s42,因此必须先完成 BF16 测评。 -默认 1024×1024、40 步、种子 42/123、相同卸载方式,另做一次不计入的完整预热。 - -肖像补测单独运行、单独统计,同样先完成 BF16 再运行 INT8: - -```powershell -.venv/Scripts/python.exe -m scripts.benchmark --model models/bf16 --output artifacts/eval/young_woman/bf16 --cases benchmarks/young_woman.json -.venv/Scripts/python.exe -m scripts.benchmark --model models/int8 --output artifacts/eval/young_woman/int8 --cases benchmarks/young_woman.json -.venv/Scripts/python.exe -m scripts.report --baseline artifacts/eval/young_woman/bf16 --quantized artifacts/eval/young_woman/int8 --output artifacts/eval/young_woman -``` - -快速端到端检查(不能作为质量评测): - -```powershell -.venv/Scripts/python.exe -m scripts.benchmark --model models/bf16 --output artifacts/smoke/bf16 --case portrait --seeds 42 --width 512 --height 512 --steps 2 --no-warmup -``` - -## 校验 - -```powershell -.venv/Scripts/python.exe -m unittest discover -s tests -v -$env:NUMBA_CACHE_DIR = "$PWD/.cache/numba" -.venv/Scripts/python.exe -m tests.gpu_roundtrip -``` - -保留 `artifacts/upstream` 官方清单及许可证、下载校验记录、评测原始记录和图片。 -不要将 `.cache`、`.venv`、账户 Token 或 BF16 源模型目录上传到 INT8 仓库。 - -## 生成发布文件与上传 - -```powershell -.venv/Scripts/python.exe -m scripts.release annotate -.venv/Scripts/python.exe -m scripts.report -.venv/Scripts/python.exe -m scripts.release stage --platform huggingface --output release/huggingface -.venv/Scripts/python.exe -m scripts.release stage --platform modelscope --output release/modelscope -.venv/Scripts/python.exe -m scripts.upload huggingface --dry-run -.venv/Scripts/python.exe -m scripts.upload modelscope --dry-run -``` - -`annotate` 在量化文件中写入许可证要求的修改声明;建议在 INT8 实测前执行。 -`stage` 要求完整正式评测,生成平台 README、许可证、归属、脚本、评测图片及逐文件清单。 -上传前会再次核验全部文件,不上传清单外内容。最终效果可打开 -`artifacts/eval/comparison.html` 逐图检查。 - -Hugging Face 在本机交互登录(Token 不要粘贴到聊天): - -```powershell -$env:HF_HOME = "$PWD/.cache/huggingface" -.venv/Scripts/hf.exe auth login -.venv/Scripts/python.exe -m scripts.upload huggingface -``` - -ModelScope 使用已登录账号。需要登录时,以下交互式 Python 输入不回显, -也不会把 Token 放入命令历史: - -```powershell -.venv/Scripts/python.exe -c "from getpass import getpass; from modelscope.hub.api import HubApi; HubApi().login(getpass('ModelScope token: '))" -.venv/Scripts/python.exe -m scripts.upload modelscope -``` +# Image21-INT8 发布工作区 + +目标:为 Qwen-Image-2.1 制作可重新加载的 Diffusers INT8 衍生模型,比较 BF16 与 +INT8 实际效果,并准备 Hugging Face(ixim)英文、ModelScope(iximbox)中文发布包。 + +本地下载、量化和原有 28 张正式评测输出已完成;另增加四张中国年轻成年女性肖像 +补测输出。两平台目标名称统一为 Image21-INT8。Hugging Face 登录账号已核验为 ixim。 +最新上传状态及 ModelScope 本地登录方法见 [PUBLISHING.md](PUBLISHING.md)。 + +工作区内的 `cards/` 是模板, +`release/` 中通过验证的目录才是上传来源;没有实测记录时不能宣称发布完成。 + +主名称使用 **Image21-INT8**,模型说明中描述其 Qwen-Image-2.1 来源。 +原模型采用 Qwen Research License,仅限非商业研究与评测。 + +## 环境 + +Windows PowerShell,新机器建议创建不继承全局软件包的虚拟环境: + +```powershell +python -m venv .venv +.venv/Scripts/python.exe -m pip install torch==2.10.0 torchvision==0.25.0 --index-url https://download.pytorch.org/whl/cu128 +.venv/Scripts/python.exe -m pip install -r requirements.txt +``` + +本次工作区为复用已有 CUDA PyTorch,使用了 `--system-site-packages`;更新仅安装 +在 `.venv` 内。脚本将 Numba 和 Hugging Face 缓存定向到项目 `.cache`。 +RTX 5090 可通过模型 CPU 卸载运行;精确显存需求以实测报告为准。 + +显存排查发现固定版本的 bitsandbytes 辅助张量未随父模块卸载。当前 `scripts/runtime.py` +修复了设备移动,INT8 组件按顺序加载以降低加载峰值;`infer`、`benchmark` 默认启用。 +`benchmark --legacy-offload` 仅用于复现旧问题。权重未修改,旧评测在发布包 +`evaluation/initial/` 保留。改图失败样例仍保留,并附单独诊断复测。 + +完整重测使用 `python -m scripts.rerun_evaluation`,输出到新的 +`artifacts/eval-corrected/`,串行启动四个独立进程并记录退出状态和显存基线。 + +## 下载、量化、测评 + +在工作区根目录执行: + +```powershell +.venv/Scripts/python.exe -m scripts.download --source modelscope +.venv/Scripts/python.exe -m scripts.integrity +.venv/Scripts/python.exe -m scripts.quantize +.venv/Scripts/python.exe -m scripts.benchmark --model models/bf16 --output artifacts/eval/bf16 +.venv/Scripts/python.exe -m scripts.benchmark --model models/int8 --output artifacts/eval/int8 +``` + +下载固定版本配置,ModelScope 权重按固定 HF 版本 SHA256 核验。下载不使用第三方镜像。 +量化保留敏感层和 VAE 浮点精度,具体模块记录在 `*-quantization.json`。 + +日常本地生成: + +```powershell +.venv/Scripts/python.exe -m scripts.infer --model models/int8 --prompt '一只坐在窗边的橘猫,暖色摄影' --output outputs/cat.png +``` + +编辑时增加 `--input input.png`;多图可在该参数后继续添加文件名。 +默认 1024×1024、40 步、CPU 卸载,PNG 保留 RGBA 通道。 + +毛衣改色用例在 1024px 明显过度锐化,BF16 与 INT8 均如此。固定种子复测显示 +2048px 加 VAE 分块明显改善此例,1024px 仅加分块未改善。编辑可按此设置尝试: + +```powershell +.venv/Scripts/python.exe -m scripts.infer --model models/int8 --input input.png --prompt 'Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.' --width 2048 --height 2048 --vae-tiling --output outputs/edit.png +``` + +这不是对所有编辑任务的保证,2048px 的显存需求也明显高于 1024px。 + +输出目录非空时量化拒绝覆盖;测评结果目录已有记录时拒绝覆盖。 +编辑用例输入取自 BF16 的 portrait-s42,因此必须先完成 BF16 测评。 +默认 1024×1024、40 步、种子 42/123、相同卸载方式,另做一次不计入的完整预热。 + +肖像补测单独运行、单独统计,同样先完成 BF16 再运行 INT8: + +```powershell +.venv/Scripts/python.exe -m scripts.benchmark --model models/bf16 --output artifacts/eval/young_woman/bf16 --cases benchmarks/young_woman.json +.venv/Scripts/python.exe -m scripts.benchmark --model models/int8 --output artifacts/eval/young_woman/int8 --cases benchmarks/young_woman.json +.venv/Scripts/python.exe -m scripts.report --baseline artifacts/eval/young_woman/bf16 --quantized artifacts/eval/young_woman/int8 --output artifacts/eval/young_woman +``` + +快速端到端检查(不能作为质量评测): + +```powershell +.venv/Scripts/python.exe -m scripts.benchmark --model models/bf16 --output artifacts/smoke/bf16 --case portrait --seeds 42 --width 512 --height 512 --steps 2 --no-warmup +``` + +## 校验 + +```powershell +.venv/Scripts/python.exe -m unittest discover -s tests -v +$env:NUMBA_CACHE_DIR = "$PWD/.cache/numba" +.venv/Scripts/python.exe -m tests.gpu_roundtrip +``` + +保留 `artifacts/upstream` 官方清单及许可证、下载校验记录、评测原始记录和图片。 +不要将 `.cache`、`.venv`、账户 Token 或 BF16 源模型目录上传到 INT8 仓库。 + +## 生成发布文件与上传 + +```powershell +.venv/Scripts/python.exe -m scripts.release annotate +.venv/Scripts/python.exe -m scripts.report +.venv/Scripts/python.exe -m scripts.release stage --platform huggingface --output release/huggingface +.venv/Scripts/python.exe -m scripts.release stage --platform modelscope --output release/modelscope +.venv/Scripts/python.exe -m scripts.upload huggingface --dry-run +.venv/Scripts/python.exe -m scripts.upload modelscope --dry-run +``` + +`annotate` 在量化文件中写入许可证要求的修改声明;建议在 INT8 实测前执行。 +`stage` 要求完整正式评测,生成平台 README、许可证、归属、脚本、评测图片及逐文件清单。 +上传前会再次核验全部文件,不上传清单外内容。最终效果可打开 +`artifacts/eval/comparison.html` 逐图检查。 + +Hugging Face 在本机交互登录(Token 不要粘贴到聊天): + +```powershell +$env:HF_HOME = "$PWD/.cache/huggingface" +.venv/Scripts/hf.exe auth login +.venv/Scripts/python.exe -m scripts.upload huggingface +``` + +ModelScope 使用已登录账号。需要登录时,以下交互式 Python 输入不回显, +也不会把 Token 放入命令历史: + +```powershell +.venv/Scripts/python.exe -c "from getpass import getpass; from modelscope.hub.api import HubApi; HubApi().login(getpass('ModelScope token: '))" +.venv/Scripts/python.exe -m scripts.upload modelscope +``` diff --git a/cards/huggingface.md b/cards/huggingface.md index 44033178ebbf3c09aa28f8b36a77a2e91c49e7e1..b64035427c78bad06b7a77d4776899a4f511740c 100644 --- a/cards/huggingface.md +++ b/cards/huggingface.md @@ -48,12 +48,13 @@ pip install -r requirements.txt ```python import torch -from diffusers import QwenImage21Pipeline +import sys +from huggingface_hub import snapshot_download -pipe = QwenImage21Pipeline.from_pretrained( - "ixim/Image21-INT8", dtype=torch.bfloat16, -) -pipe.enable_model_cpu_offload() +model_dir = snapshot_download("ixim/Image21-INT8") +sys.path.insert(0, model_dir) # bundled, inspectable scripts/runtime.py +from scripts.runtime import load_int8_pipeline +pipe = load_int8_pipeline(model_dir, local_files_only=True) image = pipe( prompt='A neon sign reading "CREATE WITH LIGHT", rainy night', width=1024, height=1024, num_inference_steps=40, @@ -64,20 +65,29 @@ image.save("output.png") ``` The saved quantization configuration is detected automatically. Do not re-quantize -these weights at load time. For editing, pass `image=PIL.Image.open("input.png")`. +these weights at load time. For editing, use the 2048px retest recipe below, setting +`width`, `height` and `output_resolution` together and enabling VAE tiling. For transparency, use the upstream RGBA prompt format and save PNG files. +Use the bundled loader on the pinned runtime: it loads/offloads the two INT8 +components sequentially and moves their auxiliary tensors during model offload. +Calling only `enable_model_cpu_offload()` leaves INT8 CUDA tensors resident in +this tested stack. The helper does not change the checkpoint or quantization. + ## Local evaluation {{EVALUATION_EN}} -**Observed trade-off:** weights are smaller and average latency is lower in this -run, but peak allocated GPU memory is **higher** with the tested INT8/offload stack. -Do not use this checkpoint as evidence of lower-VRAM operation. +The table reports the complete rerun using the corrected offload helper. The +initial result (19.08 GiB BF16 / 23.08 GiB INT8) exposed an offload compatibility +bug, diagnosed below. Original measurements and failure samples are retained. + +{{AUDIT_EN}} -**Editing limitation:** both BF16 and INT8 sweater-edit examples show substantial +**1024px editing limitation:** both BF16 and INT8 sweater-edit examples show substantial oversharpening and contrast changes. Faithful preservation of the original image -is not established. Both precisions also add unwanted footer text in the inspected +is not achieved in those outputs; the separate 2048px retest above improves this case. +Both precisions also add unwanted footer text in the inspected Chinese poster. See [qualitative observations](evaluation/qualitative.md). The comparison uses identical prompts, CPU random generators, seeds, resolutions, @@ -86,13 +96,14 @@ Peak allocated/reserved memory are PyTorch CUDA statistics, not total board memo Timing includes prompt encoding, denoising, decoding and CPU transfers; it excludes model loading and image-file writing. Paired pixel differences measure drift, not semantic quality. This small suite is not a standardized quality ranking. -BF16 was run first, followed by INT8 on the same Windows desktop GPU; repeated -timing trials and confidence intervals were not collected. +BF16 was run first, followed by INT8 on the same Windows desktop GPU. Each case/seed +has one timed call after warmup in this rerun; no confidence interval is estimated. See [evaluation/report.md](evaluation/report.md), raw JSONL records, environment records and paired PNG outputs. The edit pair uses the exact same source image. -Higher resolutions, extensive multi-reference editing, other GPUs, other attention -backends, and ComfyUI compatibility are not established by this evaluation. +The 2048px single-image editing diagnostic below is separate from the 1024px suite. +Extensive multi-reference editing, other GPUs, other attention backends, and +ComfyUI compatibility are not established by this evaluation. {{EVALUATION_DETAILS_EN}} diff --git a/cards/modelscope.md b/cards/modelscope.md index 23da13d0f5b342c6c52f6bb36c2cbddd2cdfbc4c..addd8fb5943ddbb4159f32f39868803decd69322 100644 --- a/cards/modelscope.md +++ b/cards/modelscope.md @@ -48,12 +48,13 @@ pip install -r requirements.txt ```python import torch +import sys from modelscope import snapshot_download -from diffusers import QwenImage21Pipeline model_dir = snapshot_download("iximbox/Image21-INT8") -pipe = QwenImage21Pipeline.from_pretrained(model_dir, dtype=torch.bfloat16) -pipe.enable_model_cpu_offload() +sys.path.insert(0, model_dir) # 仓库附带、可查看的 scripts/runtime.py +from scripts.runtime import load_int8_pipeline +pipe = load_int8_pipeline(model_dir, local_files_only=True) image = pipe( prompt='一张咖啡馆海报,清晰写着“慢下来,喝杯咖啡”,暖色摄影', width=1024, height=1024, num_inference_steps=40, @@ -64,29 +65,38 @@ image.save("output.png") ``` 加载时会自动读取已保存的量化配置,无需再次指定量化参数。 -图像编辑可增加 `image=PIL.Image.open("input.png")`。 +图像编辑请使用下文 2048px 复测代码,同时设置 `width`、`height`、 +`output_resolution`,并开启 VAE 分块。 透明图生成使用官方 RGBA 提示词格式,并保存为 PNG 以保留透明通道。 +在固定版本环境下请使用仓库附带的加载函数:它依次加载并卸载两个 INT8 组件, +同时在 CPU 卸载时移动量化层的辅助张量。仅调用 `enable_model_cpu_offload()` +会在本次测试的软件组合中留下 INT8 CUDA 张量。此修复不修改权重或量化方式。 + ## 实测对比 {{EVALUATION_ZH}} -**实际取舍:** 本次测试中权重更小、平均耗时更低,但 INT8 搭配当前卸载方案的 -已分配显存峰值**更高**。不能据此宣称本版本适用于更低显存设备。 +上表为修复卸载后的完整重测结果。初次评测的 19.08 GiB(BF16)/23.08 GiB(INT8) +暴露了卸载兼容性问题,排查过程见下文。原始测量及失败样图均保留。 + +{{AUDIT_ZH}} -**编辑限制:** BF16 与 INT8 的毛衣改色样例都出现明显过度锐化及对比度变化, -未证明能够忠实保持原图质感。所检查的中文海报在两种精度中也均出现了多余页脚文字。 +**1024px 编辑限制:** BF16 与 INT8 的毛衣改色样例都出现明显过度锐化及对比度变化, +未忠实保持原图质感;上文单独的 2048px 复测改善了这一用例。 +所检查的中文海报在两种精度中也均出现了多余页脚文字。 详见 [定性检查](evaluation/qualitative.md)。 两组使用相同提示词、CPU 随机数生成器、种子、分辨率、40 步、CFG=1、KV 缓存 及按模型 CPU 卸载。预热不计入结果。显存数值为 PyTorch CUDA 分配/保留峰值, 不代表显卡总占用。耗时包含编码、去噪、解码及 CPU 传输,不包含加载和图片写盘。 像素差异用于观察量化偏移,不能等同于语义质量评分;小样本不能代表标准榜单成绩。 -测试在同一 Windows 桌面显卡上先运行 BF16,再运行 INT8,未做多轮独立计时或置信区间估计。 +重测在同一 Windows 桌面显卡上先运行 BF16,再运行 INT8;每个用例/种子在预热后 +计时一次,没有估计置信区间。 详见 [评测报告](evaluation/report.md)、原始 JSONL、环境记录与成对 PNG。 -编辑测试使用同一份输入图像。更高分辨率、大量多图参考、其他显卡、其他注意力 -后端及 ComfyUI 兼容性未由本次评测证明。 +编辑测试使用同一份输入图像。2048px 单图编辑诊断与 1024px 主评测分开报告; +大量多图参考、其他显卡、其他注意力后端及 ComfyUI 兼容性未由本次评测证明。 {{EVALUATION_DETAILS_ZH}} diff --git a/evaluation/audit/bf16-native-tiled/edit_native.png b/evaluation/audit/bf16-native-tiled/edit_native.png new file mode 100644 index 0000000000000000000000000000000000000000..2621c387940cef09c2a025c119352668e219dd92 --- /dev/null +++ b/evaluation/audit/bf16-native-tiled/edit_native.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c551ac809ccb48146d1ad842d75975c0e9663d388a368010d2bfccb7883eeeec +size 6918553 diff --git a/evaluation/audit/bf16-native-tiled/environment.json b/evaluation/audit/bf16-native-tiled/environment.json new file mode 100644 index 0000000000000000000000000000000000000000..3f0275322eaca6f0cee98afd39fc261f5ea1df8a --- /dev/null +++ b/evaluation/audit/bf16-native-tiled/environment.json @@ -0,0 +1,20 @@ +{ + "python": "3.13.5", + "platform": "Windows-11-10.0.26200-SP0", + "gpu": "NVIDIA GeForce RTX 5090", + "cuda": "12.8", + "packages": { + "torch": "2.10.0+cu128", + "torchvision": "0.25.0+cu128", + "diffusers": "0.41.0.dev0", + "transformers": "5.17.0", + "accelerate": "1.15.0", + "bitsandbytes": "0.50.2", + "safetensors": "0.8.0", + "huggingface-hub": "1.32.0", + "tokenizers": "0.23.2", + "numpy": "2.2.6", + "pillow": "12.2.0", + "psutil": "7.0.0" + } +} \ No newline at end of file diff --git a/evaluation/audit/bf16-native-tiled/gpu-before.txt b/evaluation/audit/bf16-native-tiled/gpu-before.txt new file mode 100644 index 0000000000000000000000000000000000000000..79c091f8fa7f7af93a6d41d2220859b325efe2d4 --- /dev/null +++ b/evaluation/audit/bf16-native-tiled/gpu-before.txt @@ -0,0 +1,38 @@ +Mon Sep 21 01:48:29 2026 ++-----------------------------------------------------------------------------------------+ +| NVIDIA-SMI 616.92 KMD Version: 616.92 CUDA UMD Version: 13.4 | ++-----------------------------------------+------------------------+----------------------+ +| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC | +| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | +| | | MIG M. | +|=========================================+========================+======================| +| 0 NVIDIA GeForce RTX 5090 WDDM | 00000000:02:00.0 On | N/A | +| 30% 49C P3 67W / 575W | 1940MiB / 32607MiB | 5% Default | +| | | N/A | ++-----------------------------------------+------------------------+----------------------+ + ++-----------------------------------------------------------------------------------------+ +| Processes: | +| GPU GI CI PID Type Process name GPU Memory | +| ID ID Usage | +|=========================================================================================| +| 0 N/A N/A 3636 C+G ...t\Edge\Application\msedge.exe N/A | +| 0 N/A N/A 3952 C+G ...yb3d8bbwe\WindowsTerminal.exe N/A | +| 0 N/A N/A 13492 C+G C:\Windows\explorer.exe N/A | +| 0 N/A N/A 14084 C+G ...IA App\CEF\NVIDIA Overlay.exe N/A | +| 0 N/A N/A 15152 C+G ...2txyewy\CrossDeviceResume.exe N/A | +| 0 N/A N/A 16996 C+G ..._cw5n1h2txyewy\SearchHost.exe N/A | +| 0 N/A N/A 17024 C+G ...y\StartMenuExperienceHost.exe N/A | +| 0 N/A N/A 17796 C+G ...yb3d8bbwe\Notepad\Notepad.exe N/A | +| 0 N/A N/A 20120 C+G ...lus\logioptionsplus_agent.exe N/A | +| 0 N/A N/A 20456 C+G ...are\IntelGraphicsSoftware.exe N/A | +| 0 N/A N/A 20468 C+G ...ntrolPanel\SystemSettings.exe N/A | +| 0 N/A N/A 21128 C+G ...IA App\CEF\NVIDIA Overlay.exe N/A | +| 0 N/A N/A 23160 C+G ...MiniMark\MiniMark.Windows.exe N/A | +| 0 N/A N/A 24684 C+G ...5n1h2txyewy\TextInputHost.exe N/A | +| 0 N/A N/A 25424 C+G ...8bbwe\PhoneExperienceHost.exe N/A | +| 0 N/A N/A 26464 C+G ...yApp\MicrosoftSecurityApp.exe N/A | +| 0 N/A N/A 30740 C+G ...xyewy\ShellExperienceHost.exe N/A | +| 0 N/A N/A 34284 C+G C:\Windows\System32\Mystify.scr N/A | +| 0 N/A N/A 35676 C+G ...indows\System32\ShellHost.exe N/A | ++-----------------------------------------------------------------------------------------+ diff --git a/evaluation/audit/bf16-native-tiled/memory.jsonl b/evaluation/audit/bf16-native-tiled/memory.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..82d250ace9c2f400b5db9c64cf74c28086a7e1b2 --- /dev/null +++ b/evaluation/audit/bf16-native-tiled/memory.jsonl @@ -0,0 +1,11 @@ +{"label": "before_load", "pid": 6708, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256]} +{"label": "after_load_and_offload", "pid": 6708, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 17534247392}, "bnb_state": {}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 14230249472}, "bnb_state": {}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_native_start", "pid": 6708, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 17534247392}, "bnb_state": {}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 14230249472}, "bnb_state": {}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_encode_prompt", "pid": 6708, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 17534247392}, "bnb_state": {}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 14230249472}, "bnb_state": {}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_encode_prompt", "pid": 6708, "allocated": 17591357440, "reserved": 26449281024, "peak": 26117673472, "free_total": [4181049344, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 17534247392}, "bnb_state": {}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 14230249472}, "bnb_state": {}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_prepare_latents", "pid": 6708, "allocated": 17591357440, "reserved": 26449281024, "peak": 26117673472, "free_total": [4181049344, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 17534247392}, "bnb_state": {}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 14230249472}, "bnb_state": {}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_prepare_latents", "pid": 6708, "allocated": 18274804736, "reserved": 26472349696, "peak": 26117673472, "free_total": [4203085824, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 17534247392}, "bnb_state": {}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 14230249472}, "bnb_state": {}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_decode", "pid": 6708, "allocated": 23580760576, "reserved": 29381099520, "peak": 28467959296, "free_total": [1474904064, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 17534247392}, "bnb_state": {}}, "transformer": {"parameters": {"cuda:0/torch.bfloat16": 14230249472}, "bnb_state": {}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_decode", "pid": 6708, "allocated": 9384048640, "reserved": 11697913856, "peak": 28467959296, "free_total": [20645412864, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 17534247392}, "bnb_state": {}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 14230249472}, "bnb_state": {}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_native_end", "pid": 6708, "allocated": 14288384, "reserved": 10995367936, "peak": 28467959296, "free_total": [21347958784, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 17534247392}, "bnb_state": {}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 14230249472}, "bnb_state": {}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_process_exit", "pid": 6708, "allocated": 14288384, "reserved": 10995367936, "peak": 28467959296, "free_total": [21347958784, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 17534247392}, "bnb_state": {}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 14230249472}, "bnb_state": {}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} diff --git a/evaluation/audit/bf16-native-tiled/records.jsonl b/evaluation/audit/bf16-native-tiled/records.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..87ab253258a78a5dfb9e603c808c6f4e5f4e1033 --- /dev/null +++ b/evaluation/audit/bf16-native-tiled/records.jsonl @@ -0,0 +1 @@ +{"name": "edit_native", "seed": 42, "input_mode": "original", "kv_cache": true, "width": 2048, "height": 2048, "steps": 40, "cfg": 1.0, "vae_tiling": true, "seconds": 233.8040861999998, "peak_allocated_bytes": 28467959296, "image_sha256": "c551ac809ccb48146d1ad842d75975c0e9663d388a368010d2bfccb7883eeeec", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa"} diff --git a/evaluation/audit/gpu-regression-after.txt b/evaluation/audit/gpu-regression-after.txt new file mode 100644 index 0000000000000000000000000000000000000000..515ee1f0a788d7eca8fa7738db8df88f8a614051 --- /dev/null +++ b/evaluation/audit/gpu-regression-after.txt @@ -0,0 +1 @@ +PASS: auxiliary tensors offloaded; three exact-output CPU/GPU round trips diff --git a/evaluation/audit/gpu-regression-before.txt b/evaluation/audit/gpu-regression-before.txt new file mode 100644 index 0000000000000000000000000000000000000000..21ac27aa2481ea322dc27b0aa5ffb464e644402e --- /dev/null +++ b/evaluation/audit/gpu-regression-before.txt @@ -0,0 +1,10 @@ +Traceback (most recent call last): + File "", line 198, in _run_module_as_main + File "", line 88, in _run_code + File "D:\Git\Qwen-Image-2.1\tests\gpu_offload.py", line 41, in + main() + ~~~~^^ + File "D:\Git\Qwen-Image-2.1\tests\gpu_offload.py", line 25, in main + assert all(t is None or t.device.type == 'cpu' for t in tensors), 'CUDA tensors retained after parent.to(cpu)' + ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: CUDA tensors retained after parent.to(cpu) diff --git a/evaluation/audit/input.png b/evaluation/audit/input.png new file mode 100644 index 0000000000000000000000000000000000000000..f82907dece7451550fa3f19459a74bc9a6439b12 --- /dev/null +++ b/evaluation/audit/input.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa +size 1868618 diff --git a/evaluation/audit/int8-1024-tiled/edit_fresh.png b/evaluation/audit/int8-1024-tiled/edit_fresh.png new file mode 100644 index 0000000000000000000000000000000000000000..db38d1f1cd66d4287895ef91d636b7e60d828cd0 --- /dev/null +++ b/evaluation/audit/int8-1024-tiled/edit_fresh.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1118dfd5286837adcf75553ab6bc3f9c5d5da36270d7b1fc0a9958e4ca51ca9 +size 2175608 diff --git a/evaluation/audit/int8-1024-tiled/environment.json b/evaluation/audit/int8-1024-tiled/environment.json new file mode 100644 index 0000000000000000000000000000000000000000..3f0275322eaca6f0cee98afd39fc261f5ea1df8a --- /dev/null +++ b/evaluation/audit/int8-1024-tiled/environment.json @@ -0,0 +1,20 @@ +{ + "python": "3.13.5", + "platform": "Windows-11-10.0.26200-SP0", + "gpu": "NVIDIA GeForce RTX 5090", + "cuda": "12.8", + "packages": { + "torch": "2.10.0+cu128", + "torchvision": "0.25.0+cu128", + "diffusers": "0.41.0.dev0", + "transformers": "5.17.0", + "accelerate": "1.15.0", + "bitsandbytes": "0.50.2", + "safetensors": "0.8.0", + "huggingface-hub": "1.32.0", + "tokenizers": "0.23.2", + "numpy": "2.2.6", + "pillow": "12.2.0", + "psutil": "7.0.0" + } +} \ No newline at end of file diff --git a/evaluation/audit/int8-1024-tiled/gpu-before.txt b/evaluation/audit/int8-1024-tiled/gpu-before.txt new file mode 100644 index 0000000000000000000000000000000000000000..2f70ff6c3eaf57c7f30bc9531d21a7090a20bffa --- /dev/null +++ b/evaluation/audit/int8-1024-tiled/gpu-before.txt @@ -0,0 +1,38 @@ +Mon Sep 21 01:53:13 2026 ++-----------------------------------------------------------------------------------------+ +| NVIDIA-SMI 616.92 KMD Version: 616.92 CUDA UMD Version: 13.4 | ++-----------------------------------------+------------------------+----------------------+ +| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC | +| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | +| | | MIG M. | +|=========================================+========================+======================| +| 0 NVIDIA GeForce RTX 5090 WDDM | 00000000:02:00.0 On | N/A | +| 33% 52C P3 69W / 575W | 1946MiB / 32607MiB | 5% Default | +| | | N/A | ++-----------------------------------------+------------------------+----------------------+ + ++-----------------------------------------------------------------------------------------+ +| Processes: | +| GPU GI CI PID Type Process name GPU Memory | +| ID ID Usage | +|=========================================================================================| +| 0 N/A N/A 3636 C+G ...t\Edge\Application\msedge.exe N/A | +| 0 N/A N/A 3952 C+G ...yb3d8bbwe\WindowsTerminal.exe N/A | +| 0 N/A N/A 13492 C+G C:\Windows\explorer.exe N/A | +| 0 N/A N/A 14084 C+G ...IA App\CEF\NVIDIA Overlay.exe N/A | +| 0 N/A N/A 15152 C+G ...2txyewy\CrossDeviceResume.exe N/A | +| 0 N/A N/A 16996 C+G ..._cw5n1h2txyewy\SearchHost.exe N/A | +| 0 N/A N/A 17024 C+G ...y\StartMenuExperienceHost.exe N/A | +| 0 N/A N/A 17796 C+G ...yb3d8bbwe\Notepad\Notepad.exe N/A | +| 0 N/A N/A 20120 C+G ...lus\logioptionsplus_agent.exe N/A | +| 0 N/A N/A 20456 C+G ...are\IntelGraphicsSoftware.exe N/A | +| 0 N/A N/A 20468 C+G ...ntrolPanel\SystemSettings.exe N/A | +| 0 N/A N/A 21128 C+G ...IA App\CEF\NVIDIA Overlay.exe N/A | +| 0 N/A N/A 23160 C+G ...MiniMark\MiniMark.Windows.exe N/A | +| 0 N/A N/A 24684 C+G ...5n1h2txyewy\TextInputHost.exe N/A | +| 0 N/A N/A 25424 C+G ...8bbwe\PhoneExperienceHost.exe N/A | +| 0 N/A N/A 26464 C+G ...yApp\MicrosoftSecurityApp.exe N/A | +| 0 N/A N/A 30740 C+G ...xyewy\ShellExperienceHost.exe N/A | +| 0 N/A N/A 34284 C+G C:\Windows\System32\Mystify.scr N/A | +| 0 N/A N/A 35676 C+G ...indows\System32\ShellHost.exe N/A | ++-----------------------------------------------------------------------------------------+ diff --git a/evaluation/audit/int8-1024-tiled/memory.jsonl b/evaluation/audit/int8-1024-tiled/memory.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..103b18bfcb47618e66c65975a43fd8654e2ce475 --- /dev/null +++ b/evaluation/audit/int8-1024-tiled/memory.jsonl @@ -0,0 +1,12 @@ +{"label": "before_load", "pid": 31976, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256]} +{"label": "after_load_and_offload", "pid": 31976, "allocated": 14509193728, "reserved": 17249075200, "peak": 17281157120, "free_total": [15247343616, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cuda:0/torch.int8": 7517270016, "weight.SCB/cuda:0/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cuda:0/torch.int8": 6979321856, "weight.SCB/cuda:0/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_fix", "pid": 31976, "allocated": 0, "reserved": 0, "peak": 17281157120, "free_total": [32496418816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cpu/torch.int8": 7517270016, "weight.SCB/cpu/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_fresh_start", "pid": 31976, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cpu/torch.int8": 7517270016, "weight.SCB/cpu/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_encode_prompt", "pid": 31976, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cpu/torch.int8": 7517270016, "weight.SCB/cpu/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_encode_prompt", "pid": 31976, "allocated": 10057543168, "reserved": 11704205312, "peak": 11308157952, "free_total": [20630732800, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_prepare_latents", "pid": 31976, "allocated": 10057543168, "reserved": 11704205312, "peak": 11308157952, "free_total": [20630732800, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_prepare_latents", "pid": 31976, "allocated": 10740374016, "reserved": 11720982528, "peak": 11308157952, "free_total": [20613955584, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_decode", "pid": 31976, "allocated": 10135270912, "reserved": 12308185088, "peak": 11800422912, "free_total": [20024655872, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cuda:0/torch.bfloat16": 271605760, "cuda:0/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 314520}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_decode", "pid": 31976, "allocated": 2886173184, "reserved": 3768582144, "peak": 11800422912, "free_total": [28564258816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 314520}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_fresh_end", "pid": 31976, "allocated": 14247424, "reserved": 2816475136, "peak": 11800422912, "free_total": [29516365824, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 314520}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_process_exit", "pid": 31976, "allocated": 14247424, "reserved": 2816475136, "peak": 11800422912, "free_total": [29516365824, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 314520}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} diff --git a/evaluation/audit/int8-1024-tiled/records.jsonl b/evaluation/audit/int8-1024-tiled/records.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..477fd0fd1ad0afdf64a2d3f82e21c8999e8937b3 --- /dev/null +++ b/evaluation/audit/int8-1024-tiled/records.jsonl @@ -0,0 +1 @@ +{"name": "edit_fresh", "seed": 42, "input_mode": "original", "kv_cache": true, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "vae_tiling": true, "seconds": 44.791631599999164, "peak_allocated_bytes": 11800422912, "image_sha256": "e1118dfd5286837adcf75553ab6bc3f9c5d5da36270d7b1fc0a9958e4ca51ca9", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa"} diff --git a/evaluation/audit/int8-fixed/edit_fresh.png b/evaluation/audit/int8-fixed/edit_fresh.png new file mode 100644 index 0000000000000000000000000000000000000000..c9dcaad35087cfed56fd091ea0c136173035cf2d --- /dev/null +++ b/evaluation/audit/int8-fixed/edit_fresh.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33 +size 2275894 diff --git a/evaluation/audit/int8-fixed/edit_no_cache.png b/evaluation/audit/int8-fixed/edit_no_cache.png new file mode 100644 index 0000000000000000000000000000000000000000..082fd8de603dcf624c46db6fe2544ad63d2a1b68 --- /dev/null +++ b/evaluation/audit/int8-fixed/edit_no_cache.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:044657096db189dc8b8741ac96c59a3758944525e914ee338c32c2e8b3345f2b +size 2276140 diff --git a/evaluation/audit/int8-fixed/edit_repeat.png b/evaluation/audit/int8-fixed/edit_repeat.png new file mode 100644 index 0000000000000000000000000000000000000000..c9dcaad35087cfed56fd091ea0c136173035cf2d --- /dev/null +++ b/evaluation/audit/int8-fixed/edit_repeat.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33 +size 2275894 diff --git a/evaluation/audit/int8-fixed/edit_rgb.png b/evaluation/audit/int8-fixed/edit_rgb.png new file mode 100644 index 0000000000000000000000000000000000000000..f13ed0fd354e1ab04ef7520aa5a459b191f6c623 --- /dev/null +++ b/evaluation/audit/int8-fixed/edit_rgb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d960f2abe6352c66f07735f408e3dfbd7519a895343f9fd520d90bdefd23262b +size 2275437 diff --git a/evaluation/audit/int8-fixed/environment.json b/evaluation/audit/int8-fixed/environment.json new file mode 100644 index 0000000000000000000000000000000000000000..3f0275322eaca6f0cee98afd39fc261f5ea1df8a --- /dev/null +++ b/evaluation/audit/int8-fixed/environment.json @@ -0,0 +1,20 @@ +{ + "python": "3.13.5", + "platform": "Windows-11-10.0.26200-SP0", + "gpu": "NVIDIA GeForce RTX 5090", + "cuda": "12.8", + "packages": { + "torch": "2.10.0+cu128", + "torchvision": "0.25.0+cu128", + "diffusers": "0.41.0.dev0", + "transformers": "5.17.0", + "accelerate": "1.15.0", + "bitsandbytes": "0.50.2", + "safetensors": "0.8.0", + "huggingface-hub": "1.32.0", + "tokenizers": "0.23.2", + "numpy": "2.2.6", + "pillow": "12.2.0", + "psutil": "7.0.0" + } +} \ No newline at end of file diff --git a/evaluation/audit/int8-fixed/gpu-before.txt b/evaluation/audit/int8-fixed/gpu-before.txt new file mode 100644 index 0000000000000000000000000000000000000000..0881d05a8da0a18835c4f4f498ce4707994a87b4 --- /dev/null +++ b/evaluation/audit/int8-fixed/gpu-before.txt @@ -0,0 +1,37 @@ +Mon Sep 21 01:33:16 2026 ++-----------------------------------------------------------------------------------------+ +| NVIDIA-SMI 616.92 KMD Version: 616.92 CUDA UMD Version: 13.4 | ++-----------------------------------------+------------------------+----------------------+ +| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC | +| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | +| | | MIG M. | +|=========================================+========================+======================| +| 0 NVIDIA GeForce RTX 5090 WDDM | 00000000:02:00.0 On | N/A | +| 30% 43C P8 56W / 575W | 3242MiB / 32607MiB | 1% Default | +| | | N/A | ++-----------------------------------------+------------------------+----------------------+ + ++-----------------------------------------------------------------------------------------+ +| Processes: | +| GPU GI CI PID Type Process name GPU Memory | +| ID ID Usage | +|=========================================================================================| +| 0 N/A N/A 3636 C+G ...t\Edge\Application\msedge.exe N/A | +| 0 N/A N/A 3952 C+G ...yb3d8bbwe\WindowsTerminal.exe N/A | +| 0 N/A N/A 13492 C+G C:\Windows\explorer.exe N/A | +| 0 N/A N/A 14084 C+G ...IA App\CEF\NVIDIA Overlay.exe N/A | +| 0 N/A N/A 15152 C+G ...2txyewy\CrossDeviceResume.exe N/A | +| 0 N/A N/A 16996 C+G ..._cw5n1h2txyewy\SearchHost.exe N/A | +| 0 N/A N/A 17024 C+G ...y\StartMenuExperienceHost.exe N/A | +| 0 N/A N/A 17796 C+G ...yb3d8bbwe\Notepad\Notepad.exe N/A | +| 0 N/A N/A 20120 C+G ...lus\logioptionsplus_agent.exe N/A | +| 0 N/A N/A 20456 C+G ...are\IntelGraphicsSoftware.exe N/A | +| 0 N/A N/A 20468 C+G ...ntrolPanel\SystemSettings.exe N/A | +| 0 N/A N/A 21128 C+G ...IA App\CEF\NVIDIA Overlay.exe N/A | +| 0 N/A N/A 23160 C+G ...MiniMark\MiniMark.Windows.exe N/A | +| 0 N/A N/A 24684 C+G ...5n1h2txyewy\TextInputHost.exe N/A | +| 0 N/A N/A 25424 C+G ...8bbwe\PhoneExperienceHost.exe N/A | +| 0 N/A N/A 26464 C+G ...yApp\MicrosoftSecurityApp.exe N/A | +| 0 N/A N/A 30740 C+G ...xyewy\ShellExperienceHost.exe N/A | +| 0 N/A N/A 35676 C+G ...indows\System32\ShellHost.exe N/A | ++-----------------------------------------------------------------------------------------+ diff --git a/evaluation/audit/int8-fixed/memory.jsonl b/evaluation/audit/int8-fixed/memory.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..40863c40394ad4d53de890848f57bfeda90d8ed9 --- /dev/null +++ b/evaluation/audit/int8-fixed/memory.jsonl @@ -0,0 +1,46 @@ +{"label": "before_load", "pid": 33364, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256]} +{"label": "after_load_and_offload", "pid": 33364, "allocated": 14509193728, "reserved": 17251172352, "peak": 17281157120, "free_total": [15245246464, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cuda:0/torch.int8": 7517270016, "weight.SCB/cuda:0/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cuda:0/torch.int8": 6979321856, "weight.SCB/cuda:0/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_fix", "pid": 33364, "allocated": 0, "reserved": 0, "peak": 17281157120, "free_total": [32496418816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cpu/torch.int8": 7517270016, "weight.SCB/cpu/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_fresh_start", "pid": 33364, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cpu/torch.int8": 7517270016, "weight.SCB/cpu/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_encode_prompt", "pid": 33364, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cpu/torch.int8": 7517270016, "weight.SCB/cpu/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_encode_prompt", "pid": 33364, "allocated": 10057543168, "reserved": 11704205312, "peak": 11308157952, "free_total": [20630732800, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_prepare_latents", "pid": 33364, "allocated": 10057543168, "reserved": 11704205312, "peak": 11308157952, "free_total": [20630732800, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_prepare_latents", "pid": 33364, "allocated": 10740374016, "reserved": 13927186432, "peak": 12974889472, "free_total": [18407751680, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_decode", "pid": 33364, "allocated": 10135255552, "reserved": 12308185088, "peak": 12974889472, "free_total": [20026753024, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cuda:0/torch.bfloat16": 271605760, "cuda:0/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_decode", "pid": 33364, "allocated": 2886173184, "reserved": 11739856896, "peak": 12974889472, "free_total": [20592984064, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 297408}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_fresh_end", "pid": 33364, "allocated": 14247424, "reserved": 2818572288, "peak": 12974889472, "free_total": [29514268672, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "portrait_start", "pid": 33364, "allocated": 14247424, "reserved": 85983232, "peak": 14247424, "free_total": [32246857728, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_encode_prompt", "pid": 33364, "allocated": 14247424, "reserved": 85983232, "peak": 14247424, "free_total": [32246857728, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_encode_prompt", "pid": 33364, "allocated": 10055000064, "reserved": 10301210624, "peak": 10192543744, "free_total": [22031630336, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 372336}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_prepare_latents", "pid": 33364, "allocated": 10055000064, "reserved": 10301210624, "peak": 10192543744, "free_total": [22031630336, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 372336}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_prepare_latents", "pid": 33364, "allocated": 10055524352, "reserved": 10301210624, "peak": 10192543744, "free_total": [22031630336, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 372336}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_decode", "pid": 33364, "allocated": 7299867136, "reserved": 8342470656, "peak": 10192543744, "free_total": [23990370304, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 372336}}, "transformer": {"parameters": {"cuda:0/torch.bfloat16": 271605760, "cuda:0/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 119264}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_decode", "pid": 33364, "allocated": 737099264, "reserved": 9380560896, "peak": 10192543744, "free_total": [22952280064, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 372336}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 119264}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "portrait_end", "pid": 33364, "allocated": 14247424, "reserved": 117440512, "peak": 10192543744, "free_total": [32215400448, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 372336}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 119264}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_repeat_start", "pid": 33364, "allocated": 14247424, "reserved": 88080384, "peak": 14247424, "free_total": [32244760576, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 372336}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 119264}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_encode_prompt", "pid": 33364, "allocated": 14247424, "reserved": 88080384, "peak": 14247424, "free_total": [32244760576, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 372336}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 119264}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_encode_prompt", "pid": 33364, "allocated": 10062754304, "reserved": 11704205312, "peak": 11311206912, "free_total": [20628635648, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 119264}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_prepare_latents", "pid": 33364, "allocated": 10062754304, "reserved": 11704205312, "peak": 11311206912, "free_total": [20628635648, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 119264}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_prepare_latents", "pid": 33364, "allocated": 10745445888, "reserved": 13927186432, "peak": 12979961344, "free_total": [18405654528, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 119264}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_decode", "pid": 33364, "allocated": 10134292992, "reserved": 12333350912, "peak": 12979961344, "free_total": [19999490048, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cuda:0/torch.bfloat16": 271605760, "cuda:0/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_decode", "pid": 33364, "allocated": 2885669376, "reserved": 11781799936, "peak": 12979961344, "free_total": [20551041024, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 297408}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_repeat_end", "pid": 33364, "allocated": 14247424, "reserved": 2826960896, "peak": 12979961344, "free_total": [29505880064, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_rgb_start", "pid": 33364, "allocated": 14247424, "reserved": 85983232, "peak": 14247424, "free_total": [32246857728, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_encode_prompt", "pid": 33364, "allocated": 14247424, "reserved": 85983232, "peak": 14247424, "free_total": [32246857728, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_encode_prompt", "pid": 33364, "allocated": 10062753280, "reserved": 11704205312, "peak": 11311235072, "free_total": [20628635648, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 716984}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_prepare_latents", "pid": 33364, "allocated": 10062753280, "reserved": 11704205312, "peak": 11311235072, "free_total": [20628635648, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 716984}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_prepare_latents", "pid": 33364, "allocated": 10745444864, "reserved": 13927186432, "peak": 12979960320, "free_total": [18405654528, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 716984}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 297408}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_decode", "pid": 33364, "allocated": 10134292992, "reserved": 12333350912, "peak": 12979960320, "free_total": [19999490048, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 716984}}, "transformer": {"parameters": {"cuda:0/torch.bfloat16": 271605760, "cuda:0/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 299352}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_decode", "pid": 33364, "allocated": 2885669376, "reserved": 11783897088, "peak": 12979960320, "free_total": [20548943872, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 716984}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 299352}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_rgb_end", "pid": 33364, "allocated": 14247424, "reserved": 2829058048, "peak": 12979960320, "free_total": [29503782912, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 716984}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 299352}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_no_cache_start", "pid": 33364, "allocated": 14247424, "reserved": 83886080, "peak": 14247424, "free_total": [32248954880, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 716984}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 299352}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_encode_prompt", "pid": 33364, "allocated": 14247424, "reserved": 83886080, "peak": 14247424, "free_total": [32248954880, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 716984}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 299352}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_encode_prompt", "pid": 33364, "allocated": 10062754304, "reserved": 11704205312, "peak": 11311235072, "free_total": [20628635648, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 299352}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_prepare_latents", "pid": 33364, "allocated": 10062754304, "reserved": 11704205312, "peak": 11311235072, "free_total": [20628635648, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 299352}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_prepare_latents", "pid": 33364, "allocated": 10745445888, "reserved": 13927186432, "peak": 12979961344, "free_total": [18405654528, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 299352}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_decode", "pid": 33364, "allocated": 7965142016, "reserved": 10435428352, "peak": 12979961344, "free_total": [21897412608, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cuda:0/torch.bfloat16": 271605760, "cuda:0/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 535200}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_decode", "pid": 33364, "allocated": 716272128, "reserved": 9521070080, "peak": 12979961344, "free_total": [22811770880, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 535200}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_no_cache_end", "pid": 33364, "allocated": 14247424, "reserved": 138412032, "peak": 12979961344, "free_total": [32194428928, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 535200}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_decode", "pid": 33364, "allocated": 698923520, "reserved": 3187671040, "peak": 12979961344, "free_total": [29145169920, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 535200}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_decode", "pid": 33364, "allocated": 708360704, "reserved": 9395240960, "peak": 12979961344, "free_total": [22937600000, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 535200}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_delete", "pid": 33364, "allocated": 708360704, "reserved": 954204160, "peak": 12979961344, "free_total": [31378636800, 34162016256]} diff --git a/evaluation/audit/int8-fixed/portrait.png b/evaluation/audit/int8-fixed/portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..d0295c48b686e215e8abaeb211da3217b4e1853d --- /dev/null +++ b/evaluation/audit/int8-fixed/portrait.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e37187a2530d0f45378f17ca8fff47a7e174f1ce0c19ff89b9df8f4db1845acd +size 1865119 diff --git a/evaluation/audit/int8-fixed/records.jsonl b/evaluation/audit/int8-fixed/records.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..7112f34e8c0fb53dd2f0a5d0d3f0621cea664b16 --- /dev/null +++ b/evaluation/audit/int8-fixed/records.jsonl @@ -0,0 +1,5 @@ +{"name": "edit_fresh", "seed": 42, "input_mode": "original", "kv_cache": true, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "seconds": 43.479736799999955, "peak_allocated_bytes": 12974889472, "image_sha256": "79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa"} +{"name": "portrait", "seed": 42, "input_mode": "original", "kv_cache": true, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "seconds": 20.44445749999977, "peak_allocated_bytes": 10192543744, "image_sha256": "e37187a2530d0f45378f17ca8fff47a7e174f1ce0c19ff89b9df8f4db1845acd", "input_sha256": null} +{"name": "edit_repeat", "seed": 42, "input_mode": "original", "kv_cache": true, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "seconds": 25.656203200000164, "peak_allocated_bytes": 12979961344, "image_sha256": "79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa"} +{"name": "edit_rgb", "seed": 42, "input_mode": "RGB", "kv_cache": true, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "seconds": 25.305789000000004, "peak_allocated_bytes": 12979960320, "image_sha256": "d960f2abe6352c66f07735f408e3dfbd7519a895343f9fd520d90bdefd23262b", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa"} +{"name": "edit_no_cache", "seed": 42, "input_mode": "original", "kv_cache": false, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "seconds": 43.785136300000886, "peak_allocated_bytes": 12979961344, "image_sha256": "044657096db189dc8b8741ac96c59a3758944525e914ee338c32c2e8b3345f2b", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa"} diff --git a/evaluation/audit/int8-fixed/vae-roundtrip.json b/evaluation/audit/int8-fixed/vae-roundtrip.json new file mode 100644 index 0000000000000000000000000000000000000000..57be4a626958358a3a157d616348b79d9a3413f0 --- /dev/null +++ b/evaluation/audit/int8-fixed/vae-roundtrip.json @@ -0,0 +1,7 @@ +{ + "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", + "output_sha256": "c0c4090e0a95407811b24fe2067941f801ade6bfcb193580f44dafd4e63fa198", + "method": "preprocess RGBA, encode latent_dist.mode(), decode, postprocess; no denoising", + "dtype": "bfloat16", + "tiling": false +} \ No newline at end of file diff --git a/evaluation/audit/int8-fixed/vae_roundtrip.png b/evaluation/audit/int8-fixed/vae_roundtrip.png new file mode 100644 index 0000000000000000000000000000000000000000..c32ab5c7c18437081039ac23f5c6901a8aa0a979 --- /dev/null +++ b/evaluation/audit/int8-fixed/vae_roundtrip.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0c4090e0a95407811b24fe2067941f801ade6bfcb193580f44dafd4e63fa198 +size 1803783 diff --git a/evaluation/audit/int8-native-tiled/edit_native.png b/evaluation/audit/int8-native-tiled/edit_native.png new file mode 100644 index 0000000000000000000000000000000000000000..f3bc742dcdb16539165e05f56bc1aeab32c97f7e --- /dev/null +++ b/evaluation/audit/int8-native-tiled/edit_native.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6af18d8688bb2669632adf0cfae962bc34431e30e935014997010cde5c2ca59 +size 6895510 diff --git a/evaluation/audit/int8-native-tiled/environment.json b/evaluation/audit/int8-native-tiled/environment.json new file mode 100644 index 0000000000000000000000000000000000000000..3f0275322eaca6f0cee98afd39fc261f5ea1df8a --- /dev/null +++ b/evaluation/audit/int8-native-tiled/environment.json @@ -0,0 +1,20 @@ +{ + "python": "3.13.5", + "platform": "Windows-11-10.0.26200-SP0", + "gpu": "NVIDIA GeForce RTX 5090", + "cuda": "12.8", + "packages": { + "torch": "2.10.0+cu128", + "torchvision": "0.25.0+cu128", + "diffusers": "0.41.0.dev0", + "transformers": "5.17.0", + "accelerate": "1.15.0", + "bitsandbytes": "0.50.2", + "safetensors": "0.8.0", + "huggingface-hub": "1.32.0", + "tokenizers": "0.23.2", + "numpy": "2.2.6", + "pillow": "12.2.0", + "psutil": "7.0.0" + } +} \ No newline at end of file diff --git a/evaluation/audit/int8-native-tiled/gpu-before.txt b/evaluation/audit/int8-native-tiled/gpu-before.txt new file mode 100644 index 0000000000000000000000000000000000000000..db500f52b63bbe34e45b56bc8a64c60716eaccf7 --- /dev/null +++ b/evaluation/audit/int8-native-tiled/gpu-before.txt @@ -0,0 +1,38 @@ +Mon Sep 21 01:43:25 2026 ++-----------------------------------------------------------------------------------------+ +| NVIDIA-SMI 616.92 KMD Version: 616.92 CUDA UMD Version: 13.4 | ++-----------------------------------------+------------------------+----------------------+ +| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC | +| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | +| | | MIG M. | +|=========================================+========================+======================| +| 0 NVIDIA GeForce RTX 5090 WDDM | 00000000:02:00.0 On | N/A | +| 30% 50C P0 101W / 575W | 1891MiB / 32607MiB | 20% Default | +| | | N/A | ++-----------------------------------------+------------------------+----------------------+ + ++-----------------------------------------------------------------------------------------+ +| Processes: | +| GPU GI CI PID Type Process name GPU Memory | +| ID ID Usage | +|=========================================================================================| +| 0 N/A N/A 3636 C+G ...t\Edge\Application\msedge.exe N/A | +| 0 N/A N/A 3952 C+G ...yb3d8bbwe\WindowsTerminal.exe N/A | +| 0 N/A N/A 13492 C+G C:\Windows\explorer.exe N/A | +| 0 N/A N/A 14084 C+G ...IA App\CEF\NVIDIA Overlay.exe N/A | +| 0 N/A N/A 15152 C+G ...2txyewy\CrossDeviceResume.exe N/A | +| 0 N/A N/A 16996 C+G ..._cw5n1h2txyewy\SearchHost.exe N/A | +| 0 N/A N/A 17024 C+G ...y\StartMenuExperienceHost.exe N/A | +| 0 N/A N/A 17796 C+G ...yb3d8bbwe\Notepad\Notepad.exe N/A | +| 0 N/A N/A 20120 C+G ...lus\logioptionsplus_agent.exe N/A | +| 0 N/A N/A 20456 C+G ...are\IntelGraphicsSoftware.exe N/A | +| 0 N/A N/A 20468 C+G ...ntrolPanel\SystemSettings.exe N/A | +| 0 N/A N/A 21128 C+G ...IA App\CEF\NVIDIA Overlay.exe N/A | +| 0 N/A N/A 23160 C+G ...MiniMark\MiniMark.Windows.exe N/A | +| 0 N/A N/A 24684 C+G ...5n1h2txyewy\TextInputHost.exe N/A | +| 0 N/A N/A 25424 C+G ...8bbwe\PhoneExperienceHost.exe N/A | +| 0 N/A N/A 26464 C+G ...yApp\MicrosoftSecurityApp.exe N/A | +| 0 N/A N/A 30740 C+G ...xyewy\ShellExperienceHost.exe N/A | +| 0 N/A N/A 34284 C+G C:\Windows\System32\Mystify.scr N/A | +| 0 N/A N/A 35676 C+G ...indows\System32\ShellHost.exe N/A | ++-----------------------------------------------------------------------------------------+ diff --git a/evaluation/audit/int8-native-tiled/memory.jsonl b/evaluation/audit/int8-native-tiled/memory.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..1ef90086ac9a967ae03f577215b47781efd93b35 --- /dev/null +++ b/evaluation/audit/int8-native-tiled/memory.jsonl @@ -0,0 +1,12 @@ +{"label": "before_load", "pid": 33964, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256]} +{"label": "after_load_and_offload", "pid": 33964, "allocated": 14509193728, "reserved": 17251172352, "peak": 17281157120, "free_total": [15245246464, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cuda:0/torch.int8": 7517270016, "weight.SCB/cuda:0/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cuda:0/torch.int8": 6979321856, "weight.SCB/cuda:0/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_fix", "pid": 33964, "allocated": 0, "reserved": 0, "peak": 17281157120, "free_total": [32496418816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cpu/torch.int8": 7517270016, "weight.SCB/cpu/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_native_start", "pid": 33964, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cpu/torch.int8": 7517270016, "weight.SCB/cpu/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_encode_prompt", "pid": 33964, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cpu/torch.int8": 7517270016, "weight.SCB/cpu/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_encode_prompt", "pid": 33964, "allocated": 10082785280, "reserved": 19004391424, "peak": 18609594368, "free_total": [13330546688, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 910360}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_prepare_latents", "pid": 33964, "allocated": 10082785280, "reserved": 19004391424, "peak": 18609594368, "free_total": [13330546688, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 910360}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_prepare_latents", "pid": 33964, "allocated": 10768888832, "reserved": 19025362944, "peak": 18609594368, "free_total": [13309575168, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 910360}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_decode", "pid": 33964, "allocated": 16609594368, "reserved": 24412946432, "peak": 23243435008, "free_total": [6195294208, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 910360}}, "transformer": {"parameters": {"cuda:0/torch.bfloat16": 271605760, "cuda:0/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 164056}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_decode", "pid": 33964, "allocated": 9386084864, "reserved": 12127830016, "peak": 23243435008, "free_total": [20205010944, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 910360}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 164056}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_native_end", "pid": 33964, "allocated": 13239808, "reserved": 11343495168, "peak": 23243435008, "free_total": [20989345792, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 910360}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 164056}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_process_exit", "pid": 33964, "allocated": 13239808, "reserved": 11343495168, "peak": 23243435008, "free_total": [20989345792, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 910360}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cpu/torch.int8": 6979321856, "SCB/cpu/torch.float32": 5767168, "idx/cpu/torch.int64": 164056}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} diff --git a/evaluation/audit/int8-native-tiled/records.jsonl b/evaluation/audit/int8-native-tiled/records.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..da5d505276d0eed132e3a5711227b681fdaf3b03 --- /dev/null +++ b/evaluation/audit/int8-native-tiled/records.jsonl @@ -0,0 +1 @@ +{"name": "edit_native", "seed": 42, "input_mode": "original", "kv_cache": true, "width": 2048, "height": 2048, "steps": 40, "cfg": 1.0, "vae_tiling": true, "seconds": 213.56440760000078, "peak_allocated_bytes": 23243435008, "image_sha256": "b6af18d8688bb2669632adf0cfae962bc34431e30e935014997010cde5c2ca59", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa"} diff --git a/evaluation/audit/int8-native/environment.json b/evaluation/audit/int8-native/environment.json new file mode 100644 index 0000000000000000000000000000000000000000..3f0275322eaca6f0cee98afd39fc261f5ea1df8a --- /dev/null +++ b/evaluation/audit/int8-native/environment.json @@ -0,0 +1,20 @@ +{ + "python": "3.13.5", + "platform": "Windows-11-10.0.26200-SP0", + "gpu": "NVIDIA GeForce RTX 5090", + "cuda": "12.8", + "packages": { + "torch": "2.10.0+cu128", + "torchvision": "0.25.0+cu128", + "diffusers": "0.41.0.dev0", + "transformers": "5.17.0", + "accelerate": "1.15.0", + "bitsandbytes": "0.50.2", + "safetensors": "0.8.0", + "huggingface-hub": "1.32.0", + "tokenizers": "0.23.2", + "numpy": "2.2.6", + "pillow": "12.2.0", + "psutil": "7.0.0" + } +} \ No newline at end of file diff --git a/evaluation/audit/int8-native/gpu-before.txt b/evaluation/audit/int8-native/gpu-before.txt new file mode 100644 index 0000000000000000000000000000000000000000..9fde4c5c1428e40e430ed60b4bc27ae74ea8351a --- /dev/null +++ b/evaluation/audit/int8-native/gpu-before.txt @@ -0,0 +1,37 @@ +Mon Sep 21 01:37:01 2026 ++-----------------------------------------------------------------------------------------+ +| NVIDIA-SMI 616.92 KMD Version: 616.92 CUDA UMD Version: 13.4 | ++-----------------------------------------+------------------------+----------------------+ +| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC | +| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | +| | | MIG M. | +|=========================================+========================+======================| +| 0 NVIDIA GeForce RTX 5090 WDDM | 00000000:02:00.0 On | N/A | +| 30% 50C P8 58W / 575W | 2932MiB / 32607MiB | 2% Default | +| | | N/A | ++-----------------------------------------+------------------------+----------------------+ + ++-----------------------------------------------------------------------------------------+ +| Processes: | +| GPU GI CI PID Type Process name GPU Memory | +| ID ID Usage | +|=========================================================================================| +| 0 N/A N/A 3636 C+G ...t\Edge\Application\msedge.exe N/A | +| 0 N/A N/A 3952 C+G ...yb3d8bbwe\WindowsTerminal.exe N/A | +| 0 N/A N/A 13492 C+G C:\Windows\explorer.exe N/A | +| 0 N/A N/A 14084 C+G ...IA App\CEF\NVIDIA Overlay.exe N/A | +| 0 N/A N/A 15152 C+G ...2txyewy\CrossDeviceResume.exe N/A | +| 0 N/A N/A 16996 C+G ..._cw5n1h2txyewy\SearchHost.exe N/A | +| 0 N/A N/A 17024 C+G ...y\StartMenuExperienceHost.exe N/A | +| 0 N/A N/A 17796 C+G ...yb3d8bbwe\Notepad\Notepad.exe N/A | +| 0 N/A N/A 20120 C+G ...lus\logioptionsplus_agent.exe N/A | +| 0 N/A N/A 20456 C+G ...are\IntelGraphicsSoftware.exe N/A | +| 0 N/A N/A 20468 C+G ...ntrolPanel\SystemSettings.exe N/A | +| 0 N/A N/A 21128 C+G ...IA App\CEF\NVIDIA Overlay.exe N/A | +| 0 N/A N/A 23160 C+G ...MiniMark\MiniMark.Windows.exe N/A | +| 0 N/A N/A 24684 C+G ...5n1h2txyewy\TextInputHost.exe N/A | +| 0 N/A N/A 25424 C+G ...8bbwe\PhoneExperienceHost.exe N/A | +| 0 N/A N/A 26464 C+G ...yApp\MicrosoftSecurityApp.exe N/A | +| 0 N/A N/A 30740 C+G ...xyewy\ShellExperienceHost.exe N/A | +| 0 N/A N/A 35676 C+G ...indows\System32\ShellHost.exe N/A | ++-----------------------------------------------------------------------------------------+ diff --git a/evaluation/audit/int8-native/memory.jsonl b/evaluation/audit/int8-native/memory.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..44118d5cc8ccf63ba145ddd6c4b7306732614ab0 --- /dev/null +++ b/evaluation/audit/int8-native/memory.jsonl @@ -0,0 +1,9 @@ +{"label": "before_load", "pid": 18516, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256]} +{"label": "after_load_and_offload", "pid": 18516, "allocated": 14509193728, "reserved": 17251172352, "peak": 17281157120, "free_total": [15245246464, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cuda:0/torch.int8": 7517270016, "weight.SCB/cuda:0/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cuda:0/torch.int8": 6979321856, "weight.SCB/cuda:0/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_fix", "pid": 18516, "allocated": 0, "reserved": 0, "peak": 17281157120, "free_total": [32496418816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cpu/torch.int8": 7517270016, "weight.SCB/cpu/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_native_start", "pid": 18516, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cpu/torch.int8": 7517270016, "weight.SCB/cpu/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_encode_prompt", "pid": 18516, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"weight.CB/cpu/torch.int8": 7517270016, "weight.SCB/cpu/torch.float32": 6829504}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_encode_prompt", "pid": 18516, "allocated": 10082785280, "reserved": 19004391424, "peak": 18609594368, "free_total": [13330546688, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 910360}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_prepare_latents", "pid": 18516, "allocated": 10082785280, "reserved": 19004391424, "peak": 18609594368, "free_total": [13330546688, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 910360}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_prepare_latents", "pid": 18516, "allocated": 10768888832, "reserved": 25453133824, "peak": 19706950656, "free_total": [5216784384, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 910360}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"weight.CB/cpu/torch.int8": 6979321856, "weight.SCB/cpu/torch.float32": 5767168}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_decode", "pid": 18516, "allocated": 16609620480, "reserved": 24412946432, "peak": 23243426304, "free_total": [6256705536, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cpu/torch.int8": 7517270016, "SCB/cpu/torch.float32": 6829504, "idx/cpu/torch.int64": 910360}}, "transformer": {"parameters": {"cuda:0/torch.bfloat16": 271605760, "cuda:0/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 191896}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} diff --git a/evaluation/audit/int8-original/edit_fresh.png b/evaluation/audit/int8-original/edit_fresh.png new file mode 100644 index 0000000000000000000000000000000000000000..c9dcaad35087cfed56fd091ea0c136173035cf2d --- /dev/null +++ b/evaluation/audit/int8-original/edit_fresh.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33 +size 2275894 diff --git a/evaluation/audit/int8-original/edit_no_cache.png b/evaluation/audit/int8-original/edit_no_cache.png new file mode 100644 index 0000000000000000000000000000000000000000..082fd8de603dcf624c46db6fe2544ad63d2a1b68 --- /dev/null +++ b/evaluation/audit/int8-original/edit_no_cache.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:044657096db189dc8b8741ac96c59a3758944525e914ee338c32c2e8b3345f2b +size 2276140 diff --git a/evaluation/audit/int8-original/edit_repeat.png b/evaluation/audit/int8-original/edit_repeat.png new file mode 100644 index 0000000000000000000000000000000000000000..c9dcaad35087cfed56fd091ea0c136173035cf2d --- /dev/null +++ b/evaluation/audit/int8-original/edit_repeat.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33 +size 2275894 diff --git a/evaluation/audit/int8-original/edit_rgb.png b/evaluation/audit/int8-original/edit_rgb.png new file mode 100644 index 0000000000000000000000000000000000000000..f13ed0fd354e1ab04ef7520aa5a459b191f6c623 --- /dev/null +++ b/evaluation/audit/int8-original/edit_rgb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d960f2abe6352c66f07735f408e3dfbd7519a895343f9fd520d90bdefd23262b +size 2275437 diff --git a/evaluation/audit/int8-original/environment.json b/evaluation/audit/int8-original/environment.json new file mode 100644 index 0000000000000000000000000000000000000000..3f0275322eaca6f0cee98afd39fc261f5ea1df8a --- /dev/null +++ b/evaluation/audit/int8-original/environment.json @@ -0,0 +1,20 @@ +{ + "python": "3.13.5", + "platform": "Windows-11-10.0.26200-SP0", + "gpu": "NVIDIA GeForce RTX 5090", + "cuda": "12.8", + "packages": { + "torch": "2.10.0+cu128", + "torchvision": "0.25.0+cu128", + "diffusers": "0.41.0.dev0", + "transformers": "5.17.0", + "accelerate": "1.15.0", + "bitsandbytes": "0.50.2", + "safetensors": "0.8.0", + "huggingface-hub": "1.32.0", + "tokenizers": "0.23.2", + "numpy": "2.2.6", + "pillow": "12.2.0", + "psutil": "7.0.0" + } +} \ No newline at end of file diff --git a/evaluation/audit/int8-original/gpu-before.txt b/evaluation/audit/int8-original/gpu-before.txt new file mode 100644 index 0000000000000000000000000000000000000000..b35e2824e02c870f0613913d3d8da20ecc0084d8 --- /dev/null +++ b/evaluation/audit/int8-original/gpu-before.txt @@ -0,0 +1,37 @@ +Mon Sep 21 01:28:00 2026 ++-----------------------------------------------------------------------------------------+ +| NVIDIA-SMI 616.92 KMD Version: 616.92 CUDA UMD Version: 13.4 | ++-----------------------------------------+------------------------+----------------------+ +| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC | +| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | +| | | MIG M. | +|=========================================+========================+======================| +| 0 NVIDIA GeForce RTX 5090 WDDM | 00000000:02:00.0 On | N/A | +| 0% 53C P8 52W / 575W | 3209MiB / 32607MiB | 1% Default | +| | | N/A | ++-----------------------------------------+------------------------+----------------------+ + ++-----------------------------------------------------------------------------------------+ +| Processes: | +| GPU GI CI PID Type Process name GPU Memory | +| ID ID Usage | +|=========================================================================================| +| 0 N/A N/A 3636 C+G ...t\Edge\Application\msedge.exe N/A | +| 0 N/A N/A 3952 C+G ...yb3d8bbwe\WindowsTerminal.exe N/A | +| 0 N/A N/A 13492 C+G C:\Windows\explorer.exe N/A | +| 0 N/A N/A 14084 C+G ...IA App\CEF\NVIDIA Overlay.exe N/A | +| 0 N/A N/A 15152 C+G ...2txyewy\CrossDeviceResume.exe N/A | +| 0 N/A N/A 16996 C+G ..._cw5n1h2txyewy\SearchHost.exe N/A | +| 0 N/A N/A 17024 C+G ...y\StartMenuExperienceHost.exe N/A | +| 0 N/A N/A 17796 C+G ...yb3d8bbwe\Notepad\Notepad.exe N/A | +| 0 N/A N/A 20120 C+G ...lus\logioptionsplus_agent.exe N/A | +| 0 N/A N/A 20456 C+G ...are\IntelGraphicsSoftware.exe N/A | +| 0 N/A N/A 20468 C+G ...ntrolPanel\SystemSettings.exe N/A | +| 0 N/A N/A 21128 C+G ...IA App\CEF\NVIDIA Overlay.exe N/A | +| 0 N/A N/A 23160 C+G ...MiniMark\MiniMark.Windows.exe N/A | +| 0 N/A N/A 24684 C+G ...5n1h2txyewy\TextInputHost.exe N/A | +| 0 N/A N/A 25424 C+G ...8bbwe\PhoneExperienceHost.exe N/A | +| 0 N/A N/A 26464 C+G ...yApp\MicrosoftSecurityApp.exe N/A | +| 0 N/A N/A 30740 C+G ...xyewy\ShellExperienceHost.exe N/A | +| 0 N/A N/A 35676 C+G ...indows\System32\ShellHost.exe N/A | ++-----------------------------------------------------------------------------------------+ diff --git a/evaluation/audit/int8-original/memory.jsonl b/evaluation/audit/int8-original/memory.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..351fc359cceb9a50a08dd05799b28f75b7f3c240 --- /dev/null +++ b/evaluation/audit/int8-original/memory.jsonl @@ -0,0 +1,43 @@ +{"label": "before_load", "pid": 27240, "allocated": 0, "reserved": 0, "peak": 0, "free_total": [32496418816, 34162016256]} +{"label": "after_load_and_offload", "pid": 27240, "allocated": 14509193728, "reserved": 17249075200, "peak": 17281157120, "free_total": [15247343616, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_fresh_start", "pid": 27240, "allocated": 14509193728, "reserved": 17249075200, "peak": 14509193728, "free_total": [15247343616, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_encode_prompt", "pid": 27240, "allocated": 14509193728, "reserved": 17249075200, "peak": 14509193728, "free_total": [15247343616, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_encode_prompt", "pid": 27240, "allocated": 17029537280, "reserved": 24872222720, "peak": 24777861120, "free_total": [5743558656, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_prepare_latents", "pid": 27240, "allocated": 17029537280, "reserved": 24872222720, "peak": 24777861120, "free_total": [5744873472, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_prepare_latents", "pid": 27240, "allocated": 17711069696, "reserved": 26086473728, "peak": 24777861120, "free_total": [4529307648, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_decode", "pid": 27240, "allocated": 17656636416, "reserved": 24601690112, "peak": 24777861120, "free_total": [5859803136, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cuda:0/torch.bfloat16": 271605760, "cuda:0/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_decode", "pid": 27240, "allocated": 17393402368, "reserved": 26455572480, "peak": 24777861120, "free_total": [4083388416, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_fresh_end", "pid": 27240, "allocated": 14524560896, "reserved": 20566769664, "peak": 24777861120, "free_total": [11766071296, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "portrait_start", "pid": 27240, "allocated": 14524560896, "reserved": 17295212544, "peak": 14524560896, "free_total": [15037628416, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_encode_prompt", "pid": 27240, "allocated": 14524560896, "reserved": 17295212544, "peak": 14524560896, "free_total": [15037628416, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_encode_prompt", "pid": 27240, "allocated": 17598418432, "reserved": 24591204352, "peak": 24547670016, "free_total": [5895929856, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 372336}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_prepare_latents", "pid": 27240, "allocated": 17598418432, "reserved": 24591204352, "peak": 24547670016, "free_total": [5895929856, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 372336}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_prepare_latents", "pid": 27240, "allocated": 17598942720, "reserved": 24591204352, "peak": 24547670016, "free_total": [5895929856, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 372336}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_decode", "pid": 27240, "allocated": 14824390144, "reserved": 22823305216, "peak": 24547670016, "free_total": [9509535744, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 372336}}, "transformer": {"parameters": {"cuda:0/torch.bfloat16": 271605760, "cuda:0/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 119264}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_decode", "pid": 27240, "allocated": 15240476672, "reserved": 23374856192, "peak": 24547670016, "free_total": [7208685568, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 372336}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 119264}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "portrait_end", "pid": 27240, "allocated": 14524035072, "reserved": 17320378368, "peak": 24547670016, "free_total": [15012462592, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 372336}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 119264}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_repeat_start", "pid": 27240, "allocated": 14524035072, "reserved": 17295212544, "peak": 14524035072, "free_total": [15037628416, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 372336}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 119264}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_encode_prompt", "pid": 27240, "allocated": 14524035072, "reserved": 17295212544, "peak": 14524035072, "free_total": [15037628416, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 372336}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 119264}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_encode_prompt", "pid": 27240, "allocated": 17034465280, "reserved": 24874319872, "peak": 24781505024, "free_total": [5574537216, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 119264}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_prepare_latents", "pid": 27240, "allocated": 17034465280, "reserved": 24874319872, "peak": 24781505024, "free_total": [5565591552, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 119264}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_prepare_latents", "pid": 27240, "allocated": 17716919296, "reserved": 26086473728, "peak": 24781505024, "free_total": [4305371136, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 119264}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_decode", "pid": 27240, "allocated": 17657558016, "reserved": 24599592960, "peak": 24781505024, "free_total": [5939826688, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cuda:0/torch.bfloat16": 271605760, "cuda:0/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_decode", "pid": 27240, "allocated": 17394323968, "reserved": 26455572480, "peak": 24781505024, "free_total": [4087877632, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_repeat_end", "pid": 27240, "allocated": 14524560896, "reserved": 20573061120, "peak": 24781505024, "free_total": [11759779840, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_rgb_start", "pid": 27240, "allocated": 14524560896, "reserved": 17291018240, "peak": 14524560896, "free_total": [15041822720, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_encode_prompt", "pid": 27240, "allocated": 14524560896, "reserved": 17291018240, "peak": 14524560896, "free_total": [15041822720, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_encode_prompt", "pid": 27240, "allocated": 17034642432, "reserved": 24870125568, "peak": 24782030848, "free_total": [5713547264, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 716984}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_prepare_latents", "pid": 27240, "allocated": 17034642432, "reserved": 24870125568, "peak": 24782030848, "free_total": [5713547264, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 716984}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_prepare_latents", "pid": 27240, "allocated": 17717096448, "reserved": 26086473728, "peak": 24782030848, "free_total": [4497199104, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 716984}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 297408}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_decode", "pid": 27240, "allocated": 17657556992, "reserved": 24601690112, "peak": 24782030848, "free_total": [5894291456, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 716984}}, "transformer": {"parameters": {"cuda:0/torch.bfloat16": 271605760, "cuda:0/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 299352}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_decode", "pid": 27240, "allocated": 17394322944, "reserved": 26455572480, "peak": 24782030848, "free_total": [4071391232, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 716984}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 299352}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_rgb_end", "pid": 27240, "allocated": 14524559872, "reserved": 20560478208, "peak": 24782030848, "free_total": [11772362752, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 716984}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 299352}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_no_cache_start", "pid": 27240, "allocated": 14524559872, "reserved": 17291018240, "peak": 14524559872, "free_total": [15041822720, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 716984}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 299352}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_encode_prompt", "pid": 27240, "allocated": 14524559872, "reserved": 17291018240, "peak": 14524559872, "free_total": [15041822720, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 716984}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 299352}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_encode_prompt", "pid": 27240, "allocated": 17034643456, "reserved": 24872222720, "peak": 24782029824, "free_total": [5710135296, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 299352}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_prepare_latents", "pid": 27240, "allocated": 17034643456, "reserved": 24872222720, "peak": 24782029824, "free_total": [5710135296, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 299352}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_prepare_latents", "pid": 27240, "allocated": 17717097472, "reserved": 26086473728, "peak": 24782029824, "free_total": [4497199104, 34162016256], "components": {"text_encoder": {"parameters": {"cuda:0/torch.bfloat16": 2499707360, "cuda:0/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 299352}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "before_decode", "pid": 27240, "allocated": 15489691136, "reserved": 24530386944, "peak": 24782029824, "free_total": [5996576768, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cuda:0/torch.bfloat16": 271605760, "cuda:0/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 535200}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_decode", "pid": 27240, "allocated": 15226883072, "reserved": 23490199552, "peak": 24782029824, "free_total": [7093473280, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 535200}}, "vae": {"parameters": {"cuda:0/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "edit_no_cache_end", "pid": 27240, "allocated": 14524807168, "reserved": 17360224256, "peak": 24782029824, "free_total": [14972616704, 34162016256], "components": {"text_encoder": {"parameters": {"cpu/torch.bfloat16": 2499707360, "cpu/torch.int8": 7517270016}, "bnb_state": {"CB/cuda:0/torch.int8": 7517270016, "SCB/cuda:0/torch.float32": 6829504, "idx/cuda:0/torch.int64": 718328}}, "transformer": {"parameters": {"cpu/torch.bfloat16": 271605760, "cpu/torch.int8": 6979321856}, "bnb_state": {"CB/cuda:0/torch.int8": 6979321856, "SCB/cuda:0/torch.float32": 5767168, "idx/cuda:0/torch.int64": 535200}}, "vae": {"parameters": {"cpu/torch.bfloat16": 675480808}, "bnb_state": {}}}} +{"label": "after_delete", "pid": 27240, "allocated": 14524807168, "reserved": 17293115392, "peak": 24782029824, "free_total": [15039725568, 34162016256]} diff --git a/evaluation/audit/int8-original/portrait.png b/evaluation/audit/int8-original/portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..d0295c48b686e215e8abaeb211da3217b4e1853d --- /dev/null +++ b/evaluation/audit/int8-original/portrait.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e37187a2530d0f45378f17ca8fff47a7e174f1ce0c19ff89b9df8f4db1845acd +size 1865119 diff --git a/evaluation/audit/int8-original/records.jsonl b/evaluation/audit/int8-original/records.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..70daea590545e9af60f6ff63f8cd7004e091c64e --- /dev/null +++ b/evaluation/audit/int8-original/records.jsonl @@ -0,0 +1,5 @@ +{"name": "edit_fresh", "seed": 42, "input_mode": "original", "kv_cache": true, "seconds": 44.307946700000684, "peak_allocated_bytes": 24777861120, "image_sha256": "79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa"} +{"name": "portrait", "seed": 42, "input_mode": "original", "kv_cache": true, "seconds": 20.410379099999773, "peak_allocated_bytes": 24547670016, "image_sha256": "e37187a2530d0f45378f17ca8fff47a7e174f1ce0c19ff89b9df8f4db1845acd", "input_sha256": null} +{"name": "edit_repeat", "seed": 42, "input_mode": "original", "kv_cache": true, "seconds": 25.465576599999622, "peak_allocated_bytes": 24781505024, "image_sha256": "79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa"} +{"name": "edit_rgb", "seed": 42, "input_mode": "RGB", "kv_cache": true, "seconds": 24.87206530000003, "peak_allocated_bytes": 24782030848, "image_sha256": "d960f2abe6352c66f07735f408e3dfbd7519a895343f9fd520d90bdefd23262b", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa"} +{"name": "edit_no_cache", "seed": 42, "input_mode": "original", "kv_cache": false, "seconds": 43.12784350000038, "peak_allocated_bytes": 24782029824, "image_sha256": "044657096db189dc8b8741ac96c59a3758944525e914ee338c32c2e8b3345f2b", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa"} diff --git a/evaluation/audit/summary.json b/evaluation/audit/summary.json new file mode 100644 index 0000000000000000000000000000000000000000..401f624f7e009e114996c1d8b766dc0842f32561 --- /dev/null +++ b/evaluation/audit/summary.json @@ -0,0 +1,317 @@ +{ + "process_isolation": [ + { + "name": "bf16", + "launcher_pid": 7376, + "inference_pid": 25920, + "exit_code": 0, + "start_allocated_bytes": 0, + "inference_pid_absent_from_gpu_after_exit": true + }, + { + "name": "int8", + "launcher_pid": 35376, + "inference_pid": 29636, + "exit_code": 0, + "start_allocated_bytes": 0, + "inference_pid_absent_from_gpu_after_exit": true + }, + { + "name": "young_bf16", + "launcher_pid": 31516, + "inference_pid": 35212, + "exit_code": 0, + "start_allocated_bytes": 0, + "inference_pid_absent_from_gpu_after_exit": true + }, + { + "name": "young_int8", + "launcher_pid": 5400, + "inference_pid": 11368, + "exit_code": 0, + "start_allocated_bytes": 0, + "inference_pid_absent_from_gpu_after_exit": true + } + ], + "original_and_corrected_identical_images": [ + [ + "", + "bf16", + "portrait", + 42 + ], + [ + "", + "bf16", + "portrait", + 123 + ], + [ + "", + "bf16", + "english_text", + 42 + ], + [ + "", + "bf16", + "english_text", + 123 + ], + [ + "", + "bf16", + "chinese_text", + 42 + ], + [ + "", + "bf16", + "chinese_text", + 123 + ], + [ + "", + "bf16", + "composition", + 42 + ], + [ + "", + "bf16", + "composition", + 123 + ], + [ + "", + "bf16", + "texture", + 42 + ], + [ + "", + "bf16", + "texture", + 123 + ], + [ + "", + "bf16", + "rgba", + 42 + ], + [ + "", + "bf16", + "rgba", + 123 + ], + [ + "", + "bf16", + "edit", + 42 + ], + [ + "", + "bf16", + "edit", + 123 + ], + [ + "", + "int8", + "portrait", + 42 + ], + [ + "", + "int8", + "portrait", + 123 + ], + [ + "", + "int8", + "english_text", + 42 + ], + [ + "", + "int8", + "english_text", + 123 + ], + [ + "", + "int8", + "chinese_text", + 42 + ], + [ + "", + "int8", + "chinese_text", + 123 + ], + [ + "", + "int8", + "composition", + 42 + ], + [ + "", + "int8", + "composition", + 123 + ], + [ + "", + "int8", + "texture", + 42 + ], + [ + "", + "int8", + "texture", + 123 + ], + [ + "", + "int8", + "rgba", + 42 + ], + [ + "", + "int8", + "rgba", + 123 + ], + [ + "", + "int8", + "edit", + 42 + ], + [ + "", + "int8", + "edit", + 123 + ], + [ + "young_woman", + "bf16", + "young_chinese_woman", + 42 + ], + [ + "young_woman", + "bf16", + "young_chinese_woman", + 123 + ], + [ + "young_woman", + "int8", + "young_chinese_woman", + 42 + ], + [ + "young_woman", + "int8", + "young_chinese_woman", + 123 + ] + ], + "diagnostic_identical_images": [ + "edit_fresh", + "portrait", + "edit_repeat", + "edit_rgb", + "edit_no_cache" + ], + "initial_peak": { + "bf16": 19.081242561340332, + "int8": 23.080156326293945 + }, + "corrected_peak": { + "bf16": 19.081242561340332, + "int8": 12.087220668792725 + }, + "load_peak": { + "bf16": 0.0, + "int8": 9.335469722747803 + }, + "native": { + "bf16": { + "name": "edit_native", + "seed": 42, + "input_mode": "original", + "kv_cache": true, + "width": 2048, + "height": 2048, + "steps": 40, + "cfg": 1.0, + "vae_tiling": true, + "seconds": 233.8040861999998, + "peak_allocated_bytes": 28467959296, + "image_sha256": "c551ac809ccb48146d1ad842d75975c0e9663d388a368010d2bfccb7883eeeec", + "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa" + }, + "int8": { + "name": "edit_native", + "seed": 42, + "input_mode": "original", + "kv_cache": true, + "width": 2048, + "height": 2048, + "steps": 40, + "cfg": 1.0, + "vae_tiling": true, + "seconds": 213.56440760000078, + "peak_allocated_bytes": 23243435008, + "image_sha256": "b6af18d8688bb2669632adf0cfae962bc34431e30e935014997010cde5c2ca59", + "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa" + } + }, + "editing_conclusion_en": "At 1024px, enabling VAE tiling alone still produces excessive sharpening. At 2048px with the same tiling configuration, both BF16 and INT8 produce a red sweater while substantially preserving the soft lighting and natural skin texture. This controlled comparison supports resolution sensitivity in this editing case (including reference-image preprocessing). It does not identify a deeper model/pipeline cause or establish universal editing reliability.", + "editing_conclusion_zh": "1024px 下仅开启 VAE 分块仍过度锐化;2048px 配合同样的分块设置时,BF16 和 INT8 均生成红色毛衣,并较好保持柔和光线与自然皮肤质感。这一受控对照支持该编辑用例对分辨率敏感(包括参考图预处理分辨率),但尚未确定更深层的模型/流水线原因,也不能证明所有编辑任务均可靠。", + "images": [ + { + "path": "input.png", + "en": "Shared input", + "zh": "两种精度共同输入" + }, + { + "path": "int8-original/edit_fresh.png", + "en": "Fresh-process INT8, 1024px (failure reproduced)", + "zh": "新进程 INT8,1024px(复现失败)" + }, + { + "path": "int8-original/edit_rgb.png", + "en": "1024px RGB input (not improved)", + "zh": "1024px RGB 输入(未改善)" + }, + { + "path": "int8-original/edit_no_cache.png", + "en": "1024px KV cache off (not improved)", + "zh": "1024px 关闭 KV 缓存(未改善)" + }, + { + "path": "int8-fixed/vae_roundtrip.png", + "en": "VAE-only round trip (no diffusion editing)", + "zh": "仅 VAE 编解码(未进行扩散编辑)" + }, + { + "path": "int8-1024-tiled/edit_fresh.png", + "en": "1024px with VAE tiling (not improved)", + "zh": "1024px 加 VAE 分块(未改善)" + } + ], + "aborted_native_untiled": "Stopped owned diagnostic process during prolonged VAE decoding after board memory saturated; no completed output or timing.", + "profiler_note": "The early after_delete event retained bound-method references and is not evidence of process-exit cleanup. All process isolation claims use fresh startups and explicit subprocess exits." +} \ No newline at end of file diff --git a/evaluation/bf16/environment.json b/evaluation/bf16/environment.json index 1ffd118410185dd48bfcc8cfb4cf740dc44dd7ae..dd887cac2ecae9b3f5750ea3601f243b35e2992f 100644 --- a/evaluation/bf16/environment.json +++ b/evaluation/bf16/environment.json @@ -1,155 +1,172 @@ -{ - "python": "3.13.5", - "platform": "Windows-11-10.0.26200-SP0", - "gpu": "NVIDIA GeForce RTX 5090", - "cuda": "12.8", - "packages": { - "torch": "2.10.0+cu128", - "torchvision": "0.25.0+cu128", - "diffusers": "0.41.0.dev0", - "transformers": "5.17.0", - "accelerate": "1.15.0", - "bitsandbytes": "0.50.2", - "safetensors": "0.8.0", - "huggingface-hub": "1.32.0", - "tokenizers": "0.23.2", - "numpy": "2.2.6", - "pillow": "12.2.0", - "psutil": "7.0.0" - }, - "model": "D:\\Git\\Qwen-Image-2.1\\models\\bf16", - "load_seconds": 10.8723844000001, - "load_peak_allocated_bytes": 0, - "offload": "model", - "warmup": true, - "generator_device": "cpu", - "cases_sha256": "2663ee3d489e1eb136e02b083963b8622146fc65ac301d6acc5a6aab21e63356", - "model_identity": { - "kind": "bf16", - "base_revision": "b3179ad355be050328e483a9dfdd9e60cd62adfa", - "files": [ - { - "path": "model_index.json", - "sha256": "cf1ecd104ea090855d60d8cec0895c1e9d6ee41b2f87e231b678beecd1cf7809", - "size": 447 - }, - { - "path": "processor/added_tokens.json", - "sha256": "c0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680", - "size": 707 - }, - { - "path": "processor/chat_template.jinja", - "sha256": "3636d0f0bd6bef02654cdffdc447b79cb2cef8ab02cc75267345946291a489e4", - "size": 5292 - }, - { - "path": "processor/merges.txt", - "sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5", - "size": 1671853 - }, - { - "path": "processor/preprocessor_config.json", - "sha256": "93585062a80db5e8ca038efc7726a3e6411d9db948472d81d63c6303993be8c5", - "size": 782 - }, - { - "path": "processor/special_tokens_map.json", - "sha256": "76862e765266b85aa9459767e33cbaf13970f327a0e88d1c65846c2ddd3a1ecd", - "size": 613 - }, - { - "path": "processor/tokenizer.json", - "sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4", - "size": 11422654 - }, - { - "path": "processor/tokenizer_config.json", - "sha256": "81ec7bb9530159b326c0bef1d0b6c33d392090524014ea3f0123a3c1eb9c2af5", - "size": 5445 - }, - { - "path": "processor/video_preprocessor_config.json", - "sha256": "59c5c9eb52182eb14c06ffb10ca9effd29adce5f238a95de23ca14a38dbd2cb1", - "size": 817 - }, - { - "path": "processor/vocab.json", - "sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910", - "size": 2776833 - }, - { - "path": "scheduler/scheduler_config.json", - "sha256": "5895f3a167c14a967fe9ac70c64924ae5acc79799e0679fd12907e594a713cd1", - "size": 485 - }, - { - "path": "text_encoder/config.json", - "sha256": "6001331949f7f86ab6d791a80b12246d4f8da5159fa08c3e62368a39f36d63a9", - "size": 1517 - }, - { - "path": "text_encoder/generation_config.json", - "sha256": "4d9818c3d27895c0058828a5f68bc7a4de80c3ae1bcdac90936ce24178063f59", - "size": 213 - }, - { - "path": "text_encoder/model-00001-of-00004.safetensors", - "size": 4998056552, - "sha256": "dde00291b5f7fb92013895310a3da0ddba78674df9f10d505d375243dc01fc6f" - }, - { - "path": "text_encoder/model-00002-of-00004.safetensors", - "size": 4915962464, - "sha256": "9047faccc0a6d98496a52d55f27be1c94a9c259d1e283fbea0128d054a948d42" - }, - { - "path": "text_encoder/model-00003-of-00004.safetensors", - "size": 4915962496, - "sha256": "8c54187654c0176b73ae73785bf791dc9a14c9df7fb4310083a09d42048cb57e" - }, - { - "path": "text_encoder/model-00004-of-00004.safetensors", - "size": 2704357976, - "sha256": "5311532aaaeae3259eb6a7b2c600636be1159adf7ded35f53579f7d0e7d43cdd" - }, - { - "path": "text_encoder/model.safetensors.index.json", - "sha256": "859146bff8db1d617fca8b457a5223edff963bb70076b3645f2189fe0540a147", - "size": 67795 - }, - { - "path": "transformer/config.json", - "sha256": "56ae3281c4e6c2d1aa3658252d187488071815fd79bef15808bb0205fc1a2241", - "size": 370 - }, - { - "path": "transformer/diffusion_pytorch_model-00001-of-00002.safetensors", - "size": 9968332504, - "sha256": "9e6bc2d641e67bf277895ea8777141044a38f3edb7101bc469b2961dd7c36b4b" - }, - { - "path": "transformer/diffusion_pytorch_model-00002-of-00002.safetensors", - "size": 4261951904, - "sha256": "3aaf234dcbe128530479735854a346b5e3e66283b7c11db56f836bbd1c13ebaa" - }, - { - "path": "transformer/diffusion_pytorch_model.safetensors.index.json", - "sha256": "17987f6623b1c814d0ef55a137d99142b7b3b040eb1bf241b5575dd35af803a2", - "size": 30283 - }, - { - "path": "vae/config.json", - "sha256": "9785d527b278cb8b210e9f48a8028d92a4190968ce7e24c8fc85d9d1b82f6ba2", - "size": 2079 - }, - { - "path": "vae/diffusion_pytorch_model.safetensors", - "size": 1350989512, - "sha256": "a07a1b7c4ee2966a1b3bdc37de9b4f983d56937e46619f709a80b6e490675417" - } - ], - "fingerprint": "74c96a68092fdb1f3eed2063bcfba8fd99380ada6234e405e646681f35fb6984" - }, - "model_identity_origin": "Bound during run to official weight and config manifests independently verified before model loading; file hashes will be rechecked after evaluation." +{ + "python": "3.13.5", + "platform": "Windows-11-10.0.26200-SP0", + "gpu": "NVIDIA GeForce RTX 5090", + "cuda": "12.8", + "packages": { + "torch": "2.10.0+cu128", + "torchvision": "0.25.0+cu128", + "diffusers": "0.41.0.dev0", + "transformers": "5.17.0", + "accelerate": "1.15.0", + "bitsandbytes": "0.50.2", + "safetensors": "0.8.0", + "huggingface-hub": "1.32.0", + "tokenizers": "0.23.2", + "numpy": "2.2.6", + "pillow": "12.2.0", + "psutil": "7.0.0" + }, + "pid": 25920, + "before_load_memory": { + "allocated_bytes": 0, + "reserved_bytes": 0, + "cuda_free_bytes": 32496418816, + "cuda_total_bytes": 34162016256 + }, + "offload_aux_fix": true, + "benchmark_sha256": "39544666c2e94a0d56de5057c7ab1e88df90dd5ba4d2cba2428c11f9d7c4d9fb", + "runtime_helper_sha256": "26db92afa7d5c72324080480abe52c8e677b899844b369d99ac895e9bb1fb71c", + "gpu_before": "name, driver_version, memory.used [MiB], memory.free [MiB]\nNVIDIA GeForce RTX 5090, 616.92, 2365 MiB, 29823 MiB\n", + "gpu_processes_before": "pid, process_name, used_gpu_memory [MiB]\n15152, C:\\Windows\\SystemApps\\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\\CrossDeviceResume.exe, [N/A]\n13492, C:\\Windows\\explorer.exe, [N/A]\n17024, C:\\Windows\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\StartMenuExperienceHost.exe, [N/A]\n16996, C:\\Windows\\SystemApps\\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\\SearchHost.exe, [N/A]\n21128, C:\\Program Files\\NVIDIA Corporation\\NVIDIA App\\CEF\\NVIDIA Overlay.exe, [N/A]\n14084, C:\\Program Files\\NVIDIA Corporation\\NVIDIA App\\CEF\\NVIDIA Overlay.exe, [N/A]\n20120, C:\\Program Files\\LogiOptionsPlus\\logioptionsplus_agent.exe, [N/A]\n24684, C:\\Windows\\SystemApps\\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\\TextInputHost.exe, [N/A]\n25424, C:\\Program Files\\WindowsApps\\Microsoft.YourPhone_1.26072.255.0_x64__8wekyb3d8bbwe\\PhoneExperienceHost.exe, [N/A]\n26464, C:\\Program Files\\WindowsApps\\Microsoft.6365217CE6EB4_102.2504.16004.0_x64__8wekyb3d8bbwe\\MicrosoftSecurityApp\\MicrosoftSecurityApp.exe, [N/A]\n20456, C:\\Program Files\\Intel\\Intel Graphics Software\\IntelGraphicsSoftware.exe, [N/A]\n20468, C:\\Windows\\ImmersiveControlPanel\\SystemSettings.exe, [N/A]\n30740, C:\\Windows\\SystemApps\\ShellExperienceHost_cw5n1h2txyewy\\ShellExperienceHost.exe, [N/A]\n23160, C:\\Users\\Admin\\AppData\\Local\\Programs\\MiniMark\\MiniMark.Windows.exe, [N/A]\n17796, C:\\Program Files\\WindowsApps\\Microsoft.WindowsNotepad_11.2607.14.0_x64__8wekyb3d8bbwe\\Notepad\\Notepad.exe, [N/A]\n3952, C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_1.24.11911.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe, [N/A]\n3636, C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe, [N/A]\n35676, C:\\Windows\\System32\\ShellHost.exe, [N/A]\n34284, C:\\Windows\\System32\\Mystify.scr, [N/A]\n25920, C:\\Python313\\python.exe, [N/A]\n", + "model_identity": { + "kind": "bf16", + "base_revision": "b3179ad355be050328e483a9dfdd9e60cd62adfa", + "files": [ + { + "path": "model_index.json", + "size": 447, + "sha256": "cf1ecd104ea090855d60d8cec0895c1e9d6ee41b2f87e231b678beecd1cf7809" + }, + { + "path": "processor/added_tokens.json", + "size": 707, + "sha256": "c0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680" + }, + { + "path": "processor/chat_template.jinja", + "size": 5292, + "sha256": "3636d0f0bd6bef02654cdffdc447b79cb2cef8ab02cc75267345946291a489e4" + }, + { + "path": "processor/merges.txt", + "size": 1671853, + "sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5" + }, + { + "path": "processor/preprocessor_config.json", + "size": 782, + "sha256": "93585062a80db5e8ca038efc7726a3e6411d9db948472d81d63c6303993be8c5" + }, + { + "path": "processor/special_tokens_map.json", + "size": 613, + "sha256": "76862e765266b85aa9459767e33cbaf13970f327a0e88d1c65846c2ddd3a1ecd" + }, + { + "path": "processor/tokenizer.json", + "size": 11422654, + "sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4" + }, + { + "path": "processor/tokenizer_config.json", + "size": 5445, + "sha256": "81ec7bb9530159b326c0bef1d0b6c33d392090524014ea3f0123a3c1eb9c2af5" + }, + { + "path": "processor/video_preprocessor_config.json", + "size": 817, + "sha256": "59c5c9eb52182eb14c06ffb10ca9effd29adce5f238a95de23ca14a38dbd2cb1" + }, + { + "path": "processor/vocab.json", + "size": 2776833, + "sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910" + }, + { + "path": "scheduler/scheduler_config.json", + "size": 485, + "sha256": "5895f3a167c14a967fe9ac70c64924ae5acc79799e0679fd12907e594a713cd1" + }, + { + "path": "text_encoder/config.json", + "size": 1517, + "sha256": "6001331949f7f86ab6d791a80b12246d4f8da5159fa08c3e62368a39f36d63a9" + }, + { + "path": "text_encoder/generation_config.json", + "size": 213, + "sha256": "4d9818c3d27895c0058828a5f68bc7a4de80c3ae1bcdac90936ce24178063f59" + }, + { + "path": "text_encoder/model-00001-of-00004.safetensors", + "size": 4998056552, + "sha256": "dde00291b5f7fb92013895310a3da0ddba78674df9f10d505d375243dc01fc6f" + }, + { + "path": "text_encoder/model-00002-of-00004.safetensors", + "size": 4915962464, + "sha256": "9047faccc0a6d98496a52d55f27be1c94a9c259d1e283fbea0128d054a948d42" + }, + { + "path": "text_encoder/model-00003-of-00004.safetensors", + "size": 4915962496, + "sha256": "8c54187654c0176b73ae73785bf791dc9a14c9df7fb4310083a09d42048cb57e" + }, + { + "path": "text_encoder/model-00004-of-00004.safetensors", + "size": 2704357976, + "sha256": "5311532aaaeae3259eb6a7b2c600636be1159adf7ded35f53579f7d0e7d43cdd" + }, + { + "path": "text_encoder/model.safetensors.index.json", + "size": 67795, + "sha256": "859146bff8db1d617fca8b457a5223edff963bb70076b3645f2189fe0540a147" + }, + { + "path": "transformer/config.json", + "size": 370, + "sha256": "56ae3281c4e6c2d1aa3658252d187488071815fd79bef15808bb0205fc1a2241" + }, + { + "path": "transformer/diffusion_pytorch_model-00001-of-00002.safetensors", + "size": 9968332504, + "sha256": "9e6bc2d641e67bf277895ea8777141044a38f3edb7101bc469b2961dd7c36b4b" + }, + { + "path": "transformer/diffusion_pytorch_model-00002-of-00002.safetensors", + "size": 4261951904, + "sha256": "3aaf234dcbe128530479735854a346b5e3e66283b7c11db56f836bbd1c13ebaa" + }, + { + "path": "transformer/diffusion_pytorch_model.safetensors.index.json", + "size": 30283, + "sha256": "17987f6623b1c814d0ef55a137d99142b7b3b040eb1bf241b5575dd35af803a2" + }, + { + "path": "vae/config.json", + "size": 2079, + "sha256": "9785d527b278cb8b210e9f48a8028d92a4190968ce7e24c8fc85d9d1b82f6ba2" + }, + { + "path": "vae/diffusion_pytorch_model.safetensors", + "size": 1350989512, + "sha256": "a07a1b7c4ee2966a1b3bdc37de9b4f983d56937e46619f709a80b6e490675417" + } + ], + "fingerprint": "74c96a68092fdb1f3eed2063bcfba8fd99380ada6234e405e646681f35fb6984" + }, + "model": "D:\\Git\\Qwen-Image-2.1\\models\\bf16", + "load_seconds": 10.593167200000607, + "load_peak_allocated_bytes": 0, + "offload": "model", + "warmup": true, + "after_load_memory": { + "allocated_bytes": 0, + "reserved_bytes": 0, + "cuda_free_bytes": 32496418816, + "cuda_total_bytes": 34162016256 + }, + "generator_device": "cpu", + "cases_sha256": "2663ee3d489e1eb136e02b083963b8622146fc65ac301d6acc5a6aab21e63356" } \ No newline at end of file diff --git a/evaluation/bf16/records.jsonl b/evaluation/bf16/records.jsonl index 638c2bf80073f45a27279de5cfccd369322ec416..bdb18a773c2423244b83d7e77eccf4e4bbb7e2c2 100644 --- a/evaluation/bf16/records.jsonl +++ b/evaluation/bf16/records.jsonl @@ -1,14 +1,14 @@ -{"case_id": "portrait", "category": "portrait", "prompt": "A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 29.766559700000016, "peak_allocated_bytes": 17611056128, "peak_reserved_bytes": 17800626176, "process_rss_after_bytes": 42226987008, "image": "portrait-s42.png", "image_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 239, "alpha_max": 255, "alpha_nonopaque_fraction": 0.015043258666992188} -{"case_id": "portrait", "category": "portrait", "prompt": "A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 26.54884089999996, "peak_allocated_bytes": 17611056128, "peak_reserved_bytes": 17800626176, "process_rss_after_bytes": 45726285824, "image": "portrait-s123.png", "image_sha256": "cff376e50c41c4aee2b9e4aabc502f4791774f6ad285d8a7673a61ebb1fa650d", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.07719135284423828} -{"case_id": "english_text", "category": "typography_en", "prompt": "A clean editorial poster with a deep blue background. Large exact headline at the top: \"CREATE WITH LIGHT\". Smaller exact subtitle: \"September 2026\". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.952576900000167, "peak_allocated_bytes": 17619124224, "peak_reserved_bytes": 17806917632, "process_rss_after_bytes": 46901248000, "image": "english_text-s42.png", "image_sha256": "ba31b0c8a312e96408096566013c667b3a32bd7720749ca47120960b17b41ca6", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 250, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0008878707885742188} -{"case_id": "english_text", "category": "typography_en", "prompt": "A clean editorial poster with a deep blue background. Large exact headline at the top: \"CREATE WITH LIGHT\". Smaller exact subtitle: \"September 2026\". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.878974200000357, "peak_allocated_bytes": 17619124224, "peak_reserved_bytes": 17806917632, "process_rss_after_bytes": 48110997504, "image": "english_text-s123.png", "image_sha256": "cf5e76dee9f0e403ebdf24a64e1fcd604ee2b6c8e645a032fba2807acc34adf2", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 221, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0014019012451171875} -{"case_id": "chinese_text", "category": "typography_zh", "prompt": "设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.469736900000044, "peak_allocated_bytes": 17623597568, "peak_reserved_bytes": 17813209088, "process_rss_after_bytes": 48624263168, "image": "chinese_text-s42.png", "image_sha256": "7082cb71d99705bc42e27e2c206b13e3beb9e62cfd6304cfabe203b82641692c", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 245, "alpha_max": 255, "alpha_nonopaque_fraction": 0.017661094665527344} -{"case_id": "chinese_text", "category": "typography_zh", "prompt": "设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.84774830000015, "peak_allocated_bytes": 17623597568, "peak_reserved_bytes": 17813209088, "process_rss_after_bytes": 49212678144, "image": "chinese_text-s123.png", "image_sha256": "eae74256d7ed1b3519d39c7d58961cf7a937224d19a3c3239ca7eba4178edf49", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 248, "alpha_max": 255, "alpha_nonopaque_fraction": 0.013823509216308594} -{"case_id": "composition", "category": "spatial_counting", "prompt": "A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.38054239999974, "peak_allocated_bytes": 17621962752, "peak_reserved_bytes": 17813209088, "process_rss_after_bytes": 49377714176, "image": "composition-s42.png", "image_sha256": "91e967685fbbd79ba13daece22a0f72c863cb518db88d5d2a6f9aecfc5f292b1", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.005370140075683594} -{"case_id": "composition", "category": "spatial_counting", "prompt": "A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.351097499999923, "peak_allocated_bytes": 17621962752, "peak_reserved_bytes": 17813209088, "process_rss_after_bytes": 49788104704, "image": "composition-s123.png", "image_sha256": "bc11612f260acd8af0d834f3b28c752cefd0437d24c9a01dae0d46647bdf29ae", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.009993553161621094} -{"case_id": "texture", "category": "texture", "prompt": "Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.850519100000383, "peak_allocated_bytes": 17607326208, "peak_reserved_bytes": 17798529024, "process_rss_after_bytes": 49929191424, "image": "texture-s42.png", "image_sha256": "40a0f73bb407a394fa9e8a3f6922455df716b9725ad07437fa10c1daca2c2095", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 251, "alpha_max": 255, "alpha_nonopaque_fraction": 0.03330421447753906} -{"case_id": "texture", "category": "texture", "prompt": "Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.7564997999998, "peak_allocated_bytes": 17607326208, "peak_reserved_bytes": 17798529024, "process_rss_after_bytes": 50300633088, "image": "texture-s123.png", "image_sha256": "18c4403f388d0e03447473c03497141169f333fddeaeb40227163dc3b9d68d3e", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 251, "alpha_max": 255, "alpha_nonopaque_fraction": 0.016788482666015625} -{"case_id": "rgba", "category": "transparency", "prompt": "This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 26.040632799999912, "peak_allocated_bytes": 17604822528, "peak_reserved_bytes": 17798529024, "process_rss_after_bytes": 51127226368, "image": "rgba-s42.png", "image_sha256": "6f5dfea6ba02e41cbf20617b6e863e1adfa139d79fad2ca5c64dfc815f591d82", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 0, "alpha_max": 255, "alpha_nonopaque_fraction": 0.766596794128418} -{"case_id": "rgba", "category": "transparency", "prompt": "This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.074647800000093, "peak_allocated_bytes": 17604822528, "peak_reserved_bytes": 17798529024, "process_rss_after_bytes": 50980712448, "image": "rgba-s123.png", "image_sha256": "6f1abbb1a64ac553fc576a0250d370ab5bb7e6d5e6372f42f67045a5bb0951a6", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 0, "alpha_max": 255, "alpha_nonopaque_fraction": 0.6571817398071289} -{"case_id": "edit", "category": "image_editing", "prompt": "Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", "seconds": 31.15521630000012, "peak_allocated_bytes": 20488328192, "peak_reserved_bytes": 21506293760, "process_rss_after_bytes": 51628781568, "image": "edit-s42.png", "image_sha256": "8713f6ef2ec0191d88225f2515671d6f51be43aa293bb1ca6e25b07a1b67deb9", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 228, "alpha_max": 255, "alpha_nonopaque_fraction": 0.11233901977539062} -{"case_id": "edit", "category": "image_editing", "prompt": "Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", "seconds": 31.030128800000057, "peak_allocated_bytes": 20488328192, "peak_reserved_bytes": 21506293760, "process_rss_after_bytes": 52064702464, "image": "edit-s123.png", "image_sha256": "7d00c5bb7a2b31f05ea3fcf3f4a79dd93335770fe1b2d0ad772d5df954c9f91c", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 253, "alpha_max": 255, "alpha_nonopaque_fraction": 0.010979652404785156} +{"case_id": "portrait", "category": "portrait", "prompt": "A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 23068672, "cuda_free_bytes": 32322355200, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 54525952, "cuda_free_bytes": 32290897920, "cuda_total_bytes": 34162016256}, "seconds": 28.585568599999533, "peak_allocated_bytes": 17611056128, "peak_reserved_bytes": 17800626176, "process_rss_after_bytes": 42516393984, "image": "portrait-s42.png", "image_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 239, "alpha_max": 255, "alpha_nonopaque_fraction": 0.015043258666992188} +{"case_id": "portrait", "category": "portrait", "prompt": "A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 23068672, "cuda_free_bytes": 32322355200, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 54525952, "cuda_free_bytes": 32290897920, "cuda_total_bytes": 34162016256}, "seconds": 26.070829300000696, "peak_allocated_bytes": 17611056128, "peak_reserved_bytes": 17800626176, "process_rss_after_bytes": 45369405440, "image": "portrait-s123.png", "image_sha256": "cff376e50c41c4aee2b9e4aabc502f4791774f6ad285d8a7673a61ebb1fa650d", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.07719135284423828} +{"case_id": "english_text", "category": "typography_en", "prompt": "A clean editorial poster with a deep blue background. Large exact headline at the top: \"CREATE WITH LIGHT\". Smaller exact subtitle: \"September 2026\". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 23068672, "cuda_free_bytes": 32322355200, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 62914560, "cuda_free_bytes": 32282509312, "cuda_total_bytes": 34162016256}, "seconds": 25.41653260000021, "peak_allocated_bytes": 17619124224, "peak_reserved_bytes": 17806917632, "process_rss_after_bytes": 46559137792, "image": "english_text-s42.png", "image_sha256": "ba31b0c8a312e96408096566013c667b3a32bd7720749ca47120960b17b41ca6", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 250, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0008878707885742188} +{"case_id": "english_text", "category": "typography_en", "prompt": "A clean editorial poster with a deep blue background. Large exact headline at the top: \"CREATE WITH LIGHT\". Smaller exact subtitle: \"September 2026\". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 23068672, "cuda_free_bytes": 32322355200, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 62914560, "cuda_free_bytes": 32282509312, "cuda_total_bytes": 34162016256}, "seconds": 25.66373449999992, "peak_allocated_bytes": 17619124224, "peak_reserved_bytes": 17806917632, "process_rss_after_bytes": 47725486080, "image": "english_text-s123.png", "image_sha256": "cf5e76dee9f0e403ebdf24a64e1fcd604ee2b6c8e645a032fba2807acc34adf2", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 221, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0014019012451171875} +{"case_id": "chinese_text", "category": "typography_zh", "prompt": "设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 23068672, "cuda_free_bytes": 32322355200, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 73400320, "cuda_free_bytes": 32272023552, "cuda_total_bytes": 34162016256}, "seconds": 25.618986999999834, "peak_allocated_bytes": 17623597568, "peak_reserved_bytes": 17813209088, "process_rss_after_bytes": 48696680448, "image": "chinese_text-s42.png", "image_sha256": "7082cb71d99705bc42e27e2c206b13e3beb9e62cfd6304cfabe203b82641692c", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 245, "alpha_max": 255, "alpha_nonopaque_fraction": 0.017661094665527344} +{"case_id": "chinese_text", "category": "typography_zh", "prompt": "设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 23068672, "cuda_free_bytes": 32322355200, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 73400320, "cuda_free_bytes": 32272023552, "cuda_total_bytes": 34162016256}, "seconds": 25.45504400000027, "peak_allocated_bytes": 17623597568, "peak_reserved_bytes": 17813209088, "process_rss_after_bytes": 49769967616, "image": "chinese_text-s123.png", "image_sha256": "eae74256d7ed1b3519d39c7d58961cf7a937224d19a3c3239ca7eba4178edf49", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 248, "alpha_max": 255, "alpha_nonopaque_fraction": 0.013823509216308594} +{"case_id": "composition", "category": "spatial_counting", "prompt": "A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 23068672, "cuda_free_bytes": 32322355200, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 73400320, "cuda_free_bytes": 32272023552, "cuda_total_bytes": 34162016256}, "seconds": 25.39061010000114, "peak_allocated_bytes": 17621962752, "peak_reserved_bytes": 17813209088, "process_rss_after_bytes": 49918038016, "image": "composition-s42.png", "image_sha256": "91e967685fbbd79ba13daece22a0f72c863cb518db88d5d2a6f9aecfc5f292b1", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.005370140075683594} +{"case_id": "composition", "category": "spatial_counting", "prompt": "A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 23068672, "cuda_free_bytes": 32322355200, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 73400320, "cuda_free_bytes": 32272023552, "cuda_total_bytes": 34162016256}, "seconds": 25.480030999999144, "peak_allocated_bytes": 17621962752, "peak_reserved_bytes": 17813209088, "process_rss_after_bytes": 50571776000, "image": "composition-s123.png", "image_sha256": "bc11612f260acd8af0d834f3b28c752cefd0437d24c9a01dae0d46647bdf29ae", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.009993553161621094} +{"case_id": "texture", "category": "texture", "prompt": "Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 23068672, "cuda_free_bytes": 32322355200, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 54525952, "cuda_free_bytes": 32290897920, "cuda_total_bytes": 34162016256}, "seconds": 25.31820230000085, "peak_allocated_bytes": 17607326208, "peak_reserved_bytes": 17798529024, "process_rss_after_bytes": 50406559744, "image": "texture-s42.png", "image_sha256": "40a0f73bb407a394fa9e8a3f6922455df716b9725ad07437fa10c1daca2c2095", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 251, "alpha_max": 255, "alpha_nonopaque_fraction": 0.03330421447753906} +{"case_id": "texture", "category": "texture", "prompt": "Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 25165824, "cuda_free_bytes": 32320258048, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 54525952, "cuda_free_bytes": 32290897920, "cuda_total_bytes": 34162016256}, "seconds": 25.184098900001118, "peak_allocated_bytes": 17607326208, "peak_reserved_bytes": 17798529024, "process_rss_after_bytes": 50453712896, "image": "texture-s123.png", "image_sha256": "18c4403f388d0e03447473c03497141169f333fddeaeb40227163dc3b9d68d3e", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 251, "alpha_max": 255, "alpha_nonopaque_fraction": 0.016788482666015625} +{"case_id": "rgba", "category": "transparency", "prompt": "This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 25165824, "cuda_free_bytes": 32320258048, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 54525952, "cuda_free_bytes": 32290897920, "cuda_total_bytes": 34162016256}, "seconds": 25.218287199999395, "peak_allocated_bytes": 17604822528, "peak_reserved_bytes": 17798529024, "process_rss_after_bytes": 50408771584, "image": "rgba-s42.png", "image_sha256": "6f5dfea6ba02e41cbf20617b6e863e1adfa139d79fad2ca5c64dfc815f591d82", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 0, "alpha_max": 255, "alpha_nonopaque_fraction": 0.766596794128418} +{"case_id": "rgba", "category": "transparency", "prompt": "This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 25165824, "cuda_free_bytes": 32320258048, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 54525952, "cuda_free_bytes": 32290897920, "cuda_total_bytes": 34162016256}, "seconds": 25.541228100000808, "peak_allocated_bytes": 17604822528, "peak_reserved_bytes": 17798529024, "process_rss_after_bytes": 51176099840, "image": "rgba-s123.png", "image_sha256": "6f1abbb1a64ac553fc576a0250d370ab5bb7e6d5e6372f42f67045a5bb0951a6", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 0, "alpha_max": 255, "alpha_nonopaque_fraction": 0.6571817398071289} +{"case_id": "edit", "category": "image_editing", "prompt": "Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 25165824, "cuda_free_bytes": 32320258048, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 14288384, "reserved_bytes": 2701131776, "cuda_free_bytes": 29642194944, "cuda_total_bytes": 34162016256}, "seconds": 30.789263599999686, "peak_allocated_bytes": 20488328192, "peak_reserved_bytes": 21506293760, "process_rss_after_bytes": 52132249600, "image": "edit-s42.png", "image_sha256": "8713f6ef2ec0191d88225f2515671d6f51be43aa293bb1ca6e25b07a1b67deb9", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 228, "alpha_max": 255, "alpha_nonopaque_fraction": 0.11233901977539062} +{"case_id": "edit", "category": "image_editing", "prompt": "Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", "before_memory": {"allocated_bytes": 14288384, "reserved_bytes": 27262976, "cuda_free_bytes": 32316063744, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 14288384, "reserved_bytes": 2701131776, "cuda_free_bytes": 29642194944, "cuda_total_bytes": 34162016256}, "seconds": 30.458208000000013, "peak_allocated_bytes": 20488328192, "peak_reserved_bytes": 21506293760, "process_rss_after_bytes": 52135145472, "image": "edit-s123.png", "image_sha256": "7d00c5bb7a2b31f05ea3fcf3f4a79dd93335770fe1b2d0ad772d5df954c9f91c", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 253, "alpha_max": 255, "alpha_nonopaque_fraction": 0.010979652404785156} diff --git a/evaluation/comparison.csv b/evaluation/comparison.csv index 5faea5d39cd43285df94939b1bf525452a0b253e..35eea21f6a2f23682f51f5e1dd29d40f3424f7bc 100644 --- a/evaluation/comparison.csv +++ b/evaluation/comparison.csv @@ -1,15 +1,15 @@ -case_id,seed,bf16_seconds,int8_seconds,speed_ratio_bf16_over_int8,bf16_peak_allocated_gib,int8_peak_allocated_gib,rgb_mae_white,rgb_psnr_white_db,alpha_mae -portrait,42,29.766559700000016,19.65371929999992,1.5145509735656058,16.40157413482666,22.8613600730896,0.013405879028141499,31.702880072340637,4.5881097321398556e-05 -portrait,123,26.54884089999996,19.614630900000066,1.3535223290895506,16.40157413482666,22.86135959625244,0.0162954181432724,30.546014578484698,0.0001803267077775672 -english_text,42,25.952576900000167,19.416275399999904,1.3366403373120828,16.409088134765625,22.861863613128662,0.026258574798703194,19.447587010373717,8.03704188001575e-06 -english_text,123,25.878974200000357,19.404967399999805,1.3336262652005597,16.409088134765625,22.86188554763794,0.011798395775258541,25.825570953357694,1.0239845323667396e-05 -chinese_text,42,25.469736900000044,19.544581299999663,1.303161040344235,16.413254261016846,22.862136363983154,0.05972025915980339,15.60138057172976,0.0001082326634787023 -chinese_text,123,25.84774830000015,19.86057179999989,1.3014604292511,16.413254261016846,22.86215353012085,0.024602750316262245,20.44133777040833,6.83055113768205e-05 -composition,42,25.38054239999974,19.130140400000073,1.326730586880567,16.411731719970703,22.862086296081543,0.02268194407224655,23.666249907034246,2.1964429834042676e-05 -composition,123,25.351097499999923,19.303240899999764,1.3133078342300661,16.411731719970703,22.86205244064331,0.01959226094186306,22.865933886645216,3.4590328141348436e-05 -texture,42,25.850519100000383,19.223099399999683,1.3447633267713743,16.39810037612915,22.86104154586792,0.06978315860033035,18.01562989780135,0.00019098912889603525 -texture,123,25.7564997999998,19.567528400000356,1.3162878455308302,16.39810037612915,22.861046314239502,0.01683949865400791,27.92905075564026,5.856681673321873e-05 -rgba,42,26.040632799999912,19.388802900000428,1.3430758430165555,16.395768642425537,22.860955238342285,0.018291756510734558,20.893335328149618,0.01108772773295641 -rgba,123,25.074647800000093,19.288307799999984,1.2999921019510128,16.395768642425537,22.86095952987671,0.04646634683012962,17.051910336330792,0.029543064534664154 -edit,42,31.15521630000012,25.399254500000097,1.2266193206576201,19.081242561340332,23.079509735107422,0.009711389429867268,36.48036013354599,0.00011113862274214625 -edit,123,31.030128800000057,25.24017350000031,1.2293944334415798,19.081242561340332,23.080156326293945,0.003908749669790268,43.267885143031855,2.616058372950647e-05 +case_id,seed,bf16_seconds,int8_seconds,speed_ratio_bf16_over_int8,bf16_peak_allocated_gib,int8_peak_allocated_gib,rgb_mae_white,rgb_psnr_white_db,alpha_mae +portrait,42,28.585568599999533,19.621747900000628,1.4568308973125996,16.40157413482666,9.490443229675293,0.013405879028141499,31.702880072340637,4.5881097321398556e-05 +portrait,123,26.070829300000696,19.478468499999508,1.3384434869713373,16.40157413482666,9.490443229675293,0.0162954181432724,30.546014578484698,0.0001803267077775672 +english_text,42,25.41653260000021,19.543290399999023,1.300524736612494,16.409088134765625,9.499232769012451,0.026258574798703194,19.447587010373717,8.03704188001575e-06 +english_text,123,25.66373449999992,19.677271200000177,1.3042323927516783,16.409088134765625,9.499234199523926,0.011798395775258541,25.825570953357694,1.0239845323667396e-05 +chinese_text,42,25.618986999999834,19.60913740000069,1.30648209951341,16.413254261016846,9.495181560516357,0.05972025915980339,15.60138057172976,0.0001082326634787023 +chinese_text,123,25.45504400000027,19.6146719999997,1.2977552721758825,16.413254261016846,9.495178699493408,0.024602750316262245,20.44133777040833,6.83055113768205e-05 +composition,42,25.39061010000114,19.315522199998668,1.3145184394757337,16.411731719970703,9.494652271270752,0.02268194407224655,23.666249907034246,2.1964429834042676e-05 +composition,123,25.480030999999144,19.14716750000116,1.3307467540563167,16.411731719970703,9.494656562805176,0.01959226094186306,22.865933886645216,3.4590328141348436e-05 +texture,42,25.31820230000085,19.42428639999889,1.3034302408145246,16.39810037612915,9.48720407485962,0.06978315860033035,18.01562989780135,0.00019098912889603525 +texture,123,25.184098900001118,19.159069299999828,1.314474023015374,16.39810037612915,9.487202167510986,0.01683949865400791,27.92905075564026,5.856681673321873e-05 +rgba,42,25.218287199999395,19.219452700001057,1.3121230658143563,16.395768642425537,9.477011680603027,0.018291756510734558,20.893335328149618,0.01108772773295641 +rgba,123,25.541228100000808,19.219784199998685,1.3289029592747745,16.395768642425537,9.477009296417236,0.04646634683012962,17.051910336330792,0.029543064534664154 +edit,42,30.789263599999686,25.072887500000434,1.2279903381690342,19.081242561340332,12.087220668792725,0.009711389429867268,36.48036013354599,0.00011113862274214625 +edit,123,30.458208000000013,24.810640600000625,1.2276268271766932,19.081242561340332,12.087220668792725,0.003908749669790268,43.267885143031855,2.616058372950647e-05 diff --git a/evaluation/comparison.html b/evaluation/comparison.html index 79648fa5fd1aed1b2a4230b52187e41b4b1ab98c..815d1278f0c2041a07008c59d1053c2cfded40a5 100644 --- a/evaluation/comparison.html +++ b/evaluation/comparison.html @@ -1,18 +1,17 @@ -BF16 / INT8 comparison - -

BF16 / INT8 comparison

Left: BF16. Right: saved INT8. Identical settings and seeds. Alpha displayed over checkerboard.

-

Additional adult Chinese woman portrait pairs

-

portrait — seed 42

A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.
BF16INT8
-

portrait — seed 123

A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.
BF16INT8
-

english_text — seed 42

A clean editorial poster with a deep blue background. Large exact headline at the top: "CREATE WITH LIGHT". Smaller exact subtitle: "September 2026". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.
BF16INT8
-

english_text — seed 123

A clean editorial poster with a deep blue background. Large exact headline at the top: "CREATE WITH LIGHT". Smaller exact subtitle: "September 2026". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.
BF16INT8
-

chinese_text — seed 42

设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。
BF16INT8
-

chinese_text — seed 123

设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。
BF16INT8
-

composition — seed 42

A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.
BF16INT8
-

composition — seed 123

A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.
BF16INT8
-

texture — seed 42

Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.
BF16INT8
-

texture — seed 123

Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.
BF16INT8
-

rgba — seed 42

This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.
BF16INT8
-

rgba — seed 123

This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.
BF16INT8
-

edit — seed 42

Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.
BF16INT8
-

edit — seed 123

Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.
BF16INT8
\ No newline at end of file +BF16 / INT8 comparison + +

BF16 / INT8 comparison

Left: BF16. Right: saved INT8. Identical settings and seeds. Alpha displayed over checkerboard.

+

portrait — seed 42

A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.
BF16INT8
+

portrait — seed 123

A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.
BF16INT8
+

english_text — seed 42

A clean editorial poster with a deep blue background. Large exact headline at the top: "CREATE WITH LIGHT". Smaller exact subtitle: "September 2026". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.
BF16INT8
+

english_text — seed 123

A clean editorial poster with a deep blue background. Large exact headline at the top: "CREATE WITH LIGHT". Smaller exact subtitle: "September 2026". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.
BF16INT8
+

chinese_text — seed 42

设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。
BF16INT8
+

chinese_text — seed 123

设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。
BF16INT8
+

composition — seed 42

A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.
BF16INT8
+

composition — seed 123

A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.
BF16INT8
+

texture — seed 42

Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.
BF16INT8
+

texture — seed 123

Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.
BF16INT8
+

rgba — seed 42

This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.
BF16INT8
+

rgba — seed 123

This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.
BF16INT8
+

edit — seed 42

Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.
BF16INT8
+

edit — seed 123

Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.
BF16INT8
\ No newline at end of file diff --git a/evaluation/hardware.json b/evaluation/hardware.json index bcb9b43888494da83c5adbbee6cf07dbbc76c99b..c91bf30236e1fbd0e6839ed085bf3be5dc81c11a 100644 --- a/evaluation/hardware.json +++ b/evaluation/hardware.json @@ -1,10 +1,10 @@ -{ - "gpu_driver_memory": "NVIDIA GeForce RTX 5090, 616.92, 32607", - "system_ram_bytes": 274298757120, - "platform": "Windows-11-10.0.26200-SP0", - "benchmark_order": [ - "bf16", - "int8" - ], - "notes": "Windows WDDM desktop GPU; one sequential suite per precision, two seeds per case; no multi-run statistical confidence intervals." +{ + "gpu_driver_memory": "NVIDIA GeForce RTX 5090, 616.92, 32607", + "system_ram_bytes": 274298757120, + "platform": "Windows-11-10.0.26200-SP0", + "benchmark_order": [ + "bf16", + "int8" + ], + "notes": "Windows WDDM desktop GPU; one sequential suite per precision, two seeds per case; no multi-run statistical confidence intervals." } \ No newline at end of file diff --git a/evaluation/initial/bf16/chinese_text-s123.png b/evaluation/initial/bf16/chinese_text-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..d4874f470909f0f00ac18c0463a36cddc5aceca9 --- /dev/null +++ b/evaluation/initial/bf16/chinese_text-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eae74256d7ed1b3519d39c7d58961cf7a937224d19a3c3239ca7eba4178edf49 +size 1194079 diff --git a/evaluation/initial/bf16/chinese_text-s42.png b/evaluation/initial/bf16/chinese_text-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..5d7441df592a354df22b556cc7e8f2837468038b --- /dev/null +++ b/evaluation/initial/bf16/chinese_text-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7082cb71d99705bc42e27e2c206b13e3beb9e62cfd6304cfabe203b82641692c +size 1303893 diff --git a/evaluation/initial/bf16/composition-s123.png b/evaluation/initial/bf16/composition-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..0919e8c9f806ce0114ccf259c25a78356ee9737d --- /dev/null +++ b/evaluation/initial/bf16/composition-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc11612f260acd8af0d834f3b28c752cefd0437d24c9a01dae0d46647bdf29ae +size 1220815 diff --git a/evaluation/initial/bf16/composition-s42.png b/evaluation/initial/bf16/composition-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..7cd7d67f4838b05369014e2180639acfb5d8e886 --- /dev/null +++ b/evaluation/initial/bf16/composition-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91e967685fbbd79ba13daece22a0f72c863cb518db88d5d2a6f9aecfc5f292b1 +size 1194343 diff --git a/evaluation/initial/bf16/edit-s123.png b/evaluation/initial/bf16/edit-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..3d4007adb6075b4b404bb19f70c593e14a51321e --- /dev/null +++ b/evaluation/initial/bf16/edit-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d00c5bb7a2b31f05ea3fcf3f4a79dd93335770fe1b2d0ad772d5df954c9f91c +size 1801031 diff --git a/evaluation/initial/bf16/edit-s42.png b/evaluation/initial/bf16/edit-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..970eead4f93edad150bb7d9261fd8df1c75ad592 --- /dev/null +++ b/evaluation/initial/bf16/edit-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8713f6ef2ec0191d88225f2515671d6f51be43aa293bb1ca6e25b07a1b67deb9 +size 2269130 diff --git a/evaluation/initial/bf16/english_text-s123.png b/evaluation/initial/bf16/english_text-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..9b264c78849def5fe82a5e91750d6f9cef1865fe --- /dev/null +++ b/evaluation/initial/bf16/english_text-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf5e76dee9f0e403ebdf24a64e1fcd604ee2b6c8e645a032fba2807acc34adf2 +size 905011 diff --git a/evaluation/initial/bf16/english_text-s42.png b/evaluation/initial/bf16/english_text-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..6d764a3322a3e9cfa10fe972808cea9ce556aca1 --- /dev/null +++ b/evaluation/initial/bf16/english_text-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba31b0c8a312e96408096566013c667b3a32bd7720749ca47120960b17b41ca6 +size 969130 diff --git a/evaluation/initial/bf16/environment.json b/evaluation/initial/bf16/environment.json new file mode 100644 index 0000000000000000000000000000000000000000..7eaaf6eb0592d286d82b38608e1d3a4b40d1b5c7 --- /dev/null +++ b/evaluation/initial/bf16/environment.json @@ -0,0 +1,155 @@ +{ + "python": "3.13.5", + "platform": "Windows-11-10.0.26200-SP0", + "gpu": "NVIDIA GeForce RTX 5090", + "cuda": "12.8", + "packages": { + "torch": "2.10.0+cu128", + "torchvision": "0.25.0+cu128", + "diffusers": "0.41.0.dev0", + "transformers": "5.17.0", + "accelerate": "1.15.0", + "bitsandbytes": "0.50.2", + "safetensors": "0.8.0", + "huggingface-hub": "1.32.0", + "tokenizers": "0.23.2", + "numpy": "2.2.6", + "pillow": "12.2.0", + "psutil": "7.0.0" + }, + "model": "D:\\Git\\Qwen-Image-2.1\\models\\bf16", + "load_seconds": 10.8723844000001, + "load_peak_allocated_bytes": 0, + "offload": "model", + "warmup": true, + "generator_device": "cpu", + "cases_sha256": "2663ee3d489e1eb136e02b083963b8622146fc65ac301d6acc5a6aab21e63356", + "model_identity": { + "kind": "bf16", + "base_revision": "b3179ad355be050328e483a9dfdd9e60cd62adfa", + "files": [ + { + "path": "model_index.json", + "sha256": "cf1ecd104ea090855d60d8cec0895c1e9d6ee41b2f87e231b678beecd1cf7809", + "size": 447 + }, + { + "path": "processor/added_tokens.json", + "sha256": "c0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680", + "size": 707 + }, + { + "path": "processor/chat_template.jinja", + "sha256": "3636d0f0bd6bef02654cdffdc447b79cb2cef8ab02cc75267345946291a489e4", + "size": 5292 + }, + { + "path": "processor/merges.txt", + "sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5", + "size": 1671853 + }, + { + "path": "processor/preprocessor_config.json", + "sha256": "93585062a80db5e8ca038efc7726a3e6411d9db948472d81d63c6303993be8c5", + "size": 782 + }, + { + "path": "processor/special_tokens_map.json", + "sha256": "76862e765266b85aa9459767e33cbaf13970f327a0e88d1c65846c2ddd3a1ecd", + "size": 613 + }, + { + "path": "processor/tokenizer.json", + "sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4", + "size": 11422654 + }, + { + "path": "processor/tokenizer_config.json", + "sha256": "81ec7bb9530159b326c0bef1d0b6c33d392090524014ea3f0123a3c1eb9c2af5", + "size": 5445 + }, + { + "path": "processor/video_preprocessor_config.json", + "sha256": "59c5c9eb52182eb14c06ffb10ca9effd29adce5f238a95de23ca14a38dbd2cb1", + "size": 817 + }, + { + "path": "processor/vocab.json", + "sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910", + "size": 2776833 + }, + { + "path": "scheduler/scheduler_config.json", + "sha256": "5895f3a167c14a967fe9ac70c64924ae5acc79799e0679fd12907e594a713cd1", + "size": 485 + }, + { + "path": "text_encoder/config.json", + "sha256": "6001331949f7f86ab6d791a80b12246d4f8da5159fa08c3e62368a39f36d63a9", + "size": 1517 + }, + { + "path": "text_encoder/generation_config.json", + "sha256": "4d9818c3d27895c0058828a5f68bc7a4de80c3ae1bcdac90936ce24178063f59", + "size": 213 + }, + { + "path": "text_encoder/model-00001-of-00004.safetensors", + "size": 4998056552, + "sha256": "dde00291b5f7fb92013895310a3da0ddba78674df9f10d505d375243dc01fc6f" + }, + { + "path": "text_encoder/model-00002-of-00004.safetensors", + "size": 4915962464, + "sha256": "9047faccc0a6d98496a52d55f27be1c94a9c259d1e283fbea0128d054a948d42" + }, + { + "path": "text_encoder/model-00003-of-00004.safetensors", + "size": 4915962496, + "sha256": "8c54187654c0176b73ae73785bf791dc9a14c9df7fb4310083a09d42048cb57e" + }, + { + "path": "text_encoder/model-00004-of-00004.safetensors", + "size": 2704357976, + "sha256": "5311532aaaeae3259eb6a7b2c600636be1159adf7ded35f53579f7d0e7d43cdd" + }, + { + "path": "text_encoder/model.safetensors.index.json", + "sha256": "859146bff8db1d617fca8b457a5223edff963bb70076b3645f2189fe0540a147", + "size": 67795 + }, + { + "path": "transformer/config.json", + "sha256": "56ae3281c4e6c2d1aa3658252d187488071815fd79bef15808bb0205fc1a2241", + "size": 370 + }, + { + "path": "transformer/diffusion_pytorch_model-00001-of-00002.safetensors", + "size": 9968332504, + "sha256": "9e6bc2d641e67bf277895ea8777141044a38f3edb7101bc469b2961dd7c36b4b" + }, + { + "path": "transformer/diffusion_pytorch_model-00002-of-00002.safetensors", + "size": 4261951904, + "sha256": "3aaf234dcbe128530479735854a346b5e3e66283b7c11db56f836bbd1c13ebaa" + }, + { + "path": "transformer/diffusion_pytorch_model.safetensors.index.json", + "sha256": "17987f6623b1c814d0ef55a137d99142b7b3b040eb1bf241b5575dd35af803a2", + "size": 30283 + }, + { + "path": "vae/config.json", + "sha256": "9785d527b278cb8b210e9f48a8028d92a4190968ce7e24c8fc85d9d1b82f6ba2", + "size": 2079 + }, + { + "path": "vae/diffusion_pytorch_model.safetensors", + "size": 1350989512, + "sha256": "a07a1b7c4ee2966a1b3bdc37de9b4f983d56937e46619f709a80b6e490675417" + } + ], + "fingerprint": "74c96a68092fdb1f3eed2063bcfba8fd99380ada6234e405e646681f35fb6984" + }, + "model_identity_origin": "Bound during run to official weight and config manifests independently verified before model loading; file hashes will be rechecked after evaluation." +} \ No newline at end of file diff --git a/evaluation/initial/bf16/portrait-s123.png b/evaluation/initial/bf16/portrait-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..c38581ae0baca4d3b46ef8dc6635bde5a1c1b98a --- /dev/null +++ b/evaluation/initial/bf16/portrait-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cff376e50c41c4aee2b9e4aabc502f4791774f6ad285d8a7673a61ebb1fa650d +size 1930022 diff --git a/evaluation/initial/bf16/portrait-s42.png b/evaluation/initial/bf16/portrait-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..f82907dece7451550fa3f19459a74bc9a6439b12 --- /dev/null +++ b/evaluation/initial/bf16/portrait-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa +size 1868618 diff --git a/evaluation/initial/bf16/records.jsonl b/evaluation/initial/bf16/records.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..18d5a752dca0f482f050c6560db7e29a944c38d9 --- /dev/null +++ b/evaluation/initial/bf16/records.jsonl @@ -0,0 +1,14 @@ +{"case_id": "portrait", "category": "portrait", "prompt": "A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 29.766559700000016, "peak_allocated_bytes": 17611056128, "peak_reserved_bytes": 17800626176, "process_rss_after_bytes": 42226987008, "image": "portrait-s42.png", "image_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 239, "alpha_max": 255, "alpha_nonopaque_fraction": 0.015043258666992188} +{"case_id": "portrait", "category": "portrait", "prompt": "A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 26.54884089999996, "peak_allocated_bytes": 17611056128, "peak_reserved_bytes": 17800626176, "process_rss_after_bytes": 45726285824, "image": "portrait-s123.png", "image_sha256": "cff376e50c41c4aee2b9e4aabc502f4791774f6ad285d8a7673a61ebb1fa650d", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.07719135284423828} +{"case_id": "english_text", "category": "typography_en", "prompt": "A clean editorial poster with a deep blue background. Large exact headline at the top: \"CREATE WITH LIGHT\". Smaller exact subtitle: \"September 2026\". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.952576900000167, "peak_allocated_bytes": 17619124224, "peak_reserved_bytes": 17806917632, "process_rss_after_bytes": 46901248000, "image": "english_text-s42.png", "image_sha256": "ba31b0c8a312e96408096566013c667b3a32bd7720749ca47120960b17b41ca6", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 250, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0008878707885742188} +{"case_id": "english_text", "category": "typography_en", "prompt": "A clean editorial poster with a deep blue background. Large exact headline at the top: \"CREATE WITH LIGHT\". Smaller exact subtitle: \"September 2026\". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.878974200000357, "peak_allocated_bytes": 17619124224, "peak_reserved_bytes": 17806917632, "process_rss_after_bytes": 48110997504, "image": "english_text-s123.png", "image_sha256": "cf5e76dee9f0e403ebdf24a64e1fcd604ee2b6c8e645a032fba2807acc34adf2", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 221, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0014019012451171875} +{"case_id": "chinese_text", "category": "typography_zh", "prompt": "设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.469736900000044, "peak_allocated_bytes": 17623597568, "peak_reserved_bytes": 17813209088, "process_rss_after_bytes": 48624263168, "image": "chinese_text-s42.png", "image_sha256": "7082cb71d99705bc42e27e2c206b13e3beb9e62cfd6304cfabe203b82641692c", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 245, "alpha_max": 255, "alpha_nonopaque_fraction": 0.017661094665527344} +{"case_id": "chinese_text", "category": "typography_zh", "prompt": "设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.84774830000015, "peak_allocated_bytes": 17623597568, "peak_reserved_bytes": 17813209088, "process_rss_after_bytes": 49212678144, "image": "chinese_text-s123.png", "image_sha256": "eae74256d7ed1b3519d39c7d58961cf7a937224d19a3c3239ca7eba4178edf49", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 248, "alpha_max": 255, "alpha_nonopaque_fraction": 0.013823509216308594} +{"case_id": "composition", "category": "spatial_counting", "prompt": "A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.38054239999974, "peak_allocated_bytes": 17621962752, "peak_reserved_bytes": 17813209088, "process_rss_after_bytes": 49377714176, "image": "composition-s42.png", "image_sha256": "91e967685fbbd79ba13daece22a0f72c863cb518db88d5d2a6f9aecfc5f292b1", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.005370140075683594} +{"case_id": "composition", "category": "spatial_counting", "prompt": "A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.351097499999923, "peak_allocated_bytes": 17621962752, "peak_reserved_bytes": 17813209088, "process_rss_after_bytes": 49788104704, "image": "composition-s123.png", "image_sha256": "bc11612f260acd8af0d834f3b28c752cefd0437d24c9a01dae0d46647bdf29ae", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.009993553161621094} +{"case_id": "texture", "category": "texture", "prompt": "Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.850519100000383, "peak_allocated_bytes": 17607326208, "peak_reserved_bytes": 17798529024, "process_rss_after_bytes": 49929191424, "image": "texture-s42.png", "image_sha256": "40a0f73bb407a394fa9e8a3f6922455df716b9725ad07437fa10c1daca2c2095", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 251, "alpha_max": 255, "alpha_nonopaque_fraction": 0.03330421447753906} +{"case_id": "texture", "category": "texture", "prompt": "Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.7564997999998, "peak_allocated_bytes": 17607326208, "peak_reserved_bytes": 17798529024, "process_rss_after_bytes": 50300633088, "image": "texture-s123.png", "image_sha256": "18c4403f388d0e03447473c03497141169f333fddeaeb40227163dc3b9d68d3e", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 251, "alpha_max": 255, "alpha_nonopaque_fraction": 0.016788482666015625} +{"case_id": "rgba", "category": "transparency", "prompt": "This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 26.040632799999912, "peak_allocated_bytes": 17604822528, "peak_reserved_bytes": 17798529024, "process_rss_after_bytes": 51127226368, "image": "rgba-s42.png", "image_sha256": "6f5dfea6ba02e41cbf20617b6e863e1adfa139d79fad2ca5c64dfc815f591d82", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 0, "alpha_max": 255, "alpha_nonopaque_fraction": 0.766596794128418} +{"case_id": "rgba", "category": "transparency", "prompt": "This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 25.074647800000093, "peak_allocated_bytes": 17604822528, "peak_reserved_bytes": 17798529024, "process_rss_after_bytes": 50980712448, "image": "rgba-s123.png", "image_sha256": "6f1abbb1a64ac553fc576a0250d370ab5bb7e6d5e6372f42f67045a5bb0951a6", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 0, "alpha_max": 255, "alpha_nonopaque_fraction": 0.6571817398071289} +{"case_id": "edit", "category": "image_editing", "prompt": "Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", "seconds": 31.15521630000012, "peak_allocated_bytes": 20488328192, "peak_reserved_bytes": 21506293760, "process_rss_after_bytes": 51628781568, "image": "edit-s42.png", "image_sha256": "8713f6ef2ec0191d88225f2515671d6f51be43aa293bb1ca6e25b07a1b67deb9", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 228, "alpha_max": 255, "alpha_nonopaque_fraction": 0.11233901977539062} +{"case_id": "edit", "category": "image_editing", "prompt": "Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", "seconds": 31.030128800000057, "peak_allocated_bytes": 20488328192, "peak_reserved_bytes": 21506293760, "process_rss_after_bytes": 52064702464, "image": "edit-s123.png", "image_sha256": "7d00c5bb7a2b31f05ea3fcf3f4a79dd93335770fe1b2d0ad772d5df954c9f91c", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 253, "alpha_max": 255, "alpha_nonopaque_fraction": 0.010979652404785156} diff --git a/evaluation/initial/bf16/rgba-s123.png b/evaluation/initial/bf16/rgba-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3c321ec8b601670f8fe560321fa80c023f3cd5 --- /dev/null +++ b/evaluation/initial/bf16/rgba-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f1abbb1a64ac553fc576a0250d370ab5bb7e6d5e6372f42f67045a5bb0951a6 +size 926957 diff --git a/evaluation/initial/bf16/rgba-s42.png b/evaluation/initial/bf16/rgba-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..3dde4a83d638056613032c47a10bd0390a3a43da --- /dev/null +++ b/evaluation/initial/bf16/rgba-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f5dfea6ba02e41cbf20617b6e863e1adfa139d79fad2ca5c64dfc815f591d82 +size 850131 diff --git a/evaluation/initial/bf16/texture-s123.png b/evaluation/initial/bf16/texture-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..beb5008d9db696d77508d002b5b0da3ff8a45735 --- /dev/null +++ b/evaluation/initial/bf16/texture-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18c4403f388d0e03447473c03497141169f333fddeaeb40227163dc3b9d68d3e +size 1760350 diff --git a/evaluation/initial/bf16/texture-s42.png b/evaluation/initial/bf16/texture-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..f91423fb37654cd33b452becfee53bdea556c548 --- /dev/null +++ b/evaluation/initial/bf16/texture-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40a0f73bb407a394fa9e8a3f6922455df716b9725ad07437fa10c1daca2c2095 +size 1797822 diff --git a/evaluation/initial/comparison.csv b/evaluation/initial/comparison.csv new file mode 100644 index 0000000000000000000000000000000000000000..2c2f4b04a941efff301bc41a673b0068f63b592e --- /dev/null +++ b/evaluation/initial/comparison.csv @@ -0,0 +1,15 @@ +case_id,seed,bf16_seconds,int8_seconds,speed_ratio_bf16_over_int8,bf16_peak_allocated_gib,int8_peak_allocated_gib,rgb_mae_white,rgb_psnr_white_db,alpha_mae +portrait,42,29.766559700000016,19.65371929999992,1.5145509735656058,16.40157413482666,22.8613600730896,0.013405879028141499,31.702880072340637,4.5881097321398556e-05 +portrait,123,26.54884089999996,19.614630900000066,1.3535223290895506,16.40157413482666,22.86135959625244,0.0162954181432724,30.546014578484698,0.0001803267077775672 +english_text,42,25.952576900000167,19.416275399999904,1.3366403373120828,16.409088134765625,22.861863613128662,0.026258574798703194,19.447587010373717,8.03704188001575e-06 +english_text,123,25.878974200000357,19.404967399999805,1.3336262652005597,16.409088134765625,22.86188554763794,0.011798395775258541,25.825570953357694,1.0239845323667396e-05 +chinese_text,42,25.469736900000044,19.544581299999663,1.303161040344235,16.413254261016846,22.862136363983154,0.05972025915980339,15.60138057172976,0.0001082326634787023 +chinese_text,123,25.84774830000015,19.86057179999989,1.3014604292511,16.413254261016846,22.86215353012085,0.024602750316262245,20.44133777040833,6.83055113768205e-05 +composition,42,25.38054239999974,19.130140400000073,1.326730586880567,16.411731719970703,22.862086296081543,0.02268194407224655,23.666249907034246,2.1964429834042676e-05 +composition,123,25.351097499999923,19.303240899999764,1.3133078342300661,16.411731719970703,22.86205244064331,0.01959226094186306,22.865933886645216,3.4590328141348436e-05 +texture,42,25.850519100000383,19.223099399999683,1.3447633267713743,16.39810037612915,22.86104154586792,0.06978315860033035,18.01562989780135,0.00019098912889603525 +texture,123,25.7564997999998,19.567528400000356,1.3162878455308302,16.39810037612915,22.861046314239502,0.01683949865400791,27.92905075564026,5.856681673321873e-05 +rgba,42,26.040632799999912,19.388802900000428,1.3430758430165555,16.395768642425537,22.860955238342285,0.018291756510734558,20.893335328149618,0.01108772773295641 +rgba,123,25.074647800000093,19.288307799999984,1.2999921019510128,16.395768642425537,22.86095952987671,0.04646634683012962,17.051910336330792,0.029543064534664154 +edit,42,31.15521630000012,25.399254500000097,1.2266193206576201,19.081242561340332,23.079509735107422,0.009711389429867268,36.48036013354599,0.00011113862274214625 +edit,123,31.030128800000057,25.24017350000031,1.2293944334415798,19.081242561340332,23.080156326293945,0.003908749669790268,43.267885143031855,2.616058372950647e-05 diff --git a/evaluation/initial/comparison.html b/evaluation/initial/comparison.html new file mode 100644 index 0000000000000000000000000000000000000000..316ac9c375f38cbec1d10a48e03e7143ed12d21e --- /dev/null +++ b/evaluation/initial/comparison.html @@ -0,0 +1,18 @@ +BF16 / INT8 comparison + +

BF16 / INT8 comparison

Left: BF16. Right: saved INT8. Identical settings and seeds. Alpha displayed over checkerboard.

+

Additional adult Chinese woman portrait pairs

+

portrait — seed 42

A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.
BF16INT8
+

portrait — seed 123

A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.
BF16INT8
+

english_text — seed 42

A clean editorial poster with a deep blue background. Large exact headline at the top: "CREATE WITH LIGHT". Smaller exact subtitle: "September 2026". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.
BF16INT8
+

english_text — seed 123

A clean editorial poster with a deep blue background. Large exact headline at the top: "CREATE WITH LIGHT". Smaller exact subtitle: "September 2026". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.
BF16INT8
+

chinese_text — seed 42

设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。
BF16INT8
+

chinese_text — seed 123

设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。
BF16INT8
+

composition — seed 42

A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.
BF16INT8
+

composition — seed 123

A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.
BF16INT8
+

texture — seed 42

Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.
BF16INT8
+

texture — seed 123

Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.
BF16INT8
+

rgba — seed 42

This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.
BF16INT8
+

rgba — seed 123

This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.
BF16INT8
+

edit — seed 42

Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.
BF16INT8
+

edit — seed 123

Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.
BF16INT8
\ No newline at end of file diff --git a/evaluation/initial/hardware.json b/evaluation/initial/hardware.json new file mode 100644 index 0000000000000000000000000000000000000000..c91bf30236e1fbd0e6839ed085bf3be5dc81c11a --- /dev/null +++ b/evaluation/initial/hardware.json @@ -0,0 +1,10 @@ +{ + "gpu_driver_memory": "NVIDIA GeForce RTX 5090, 616.92, 32607", + "system_ram_bytes": 274298757120, + "platform": "Windows-11-10.0.26200-SP0", + "benchmark_order": [ + "bf16", + "int8" + ], + "notes": "Windows WDDM desktop GPU; one sequential suite per precision, two seeds per case; no multi-run statistical confidence intervals." +} \ No newline at end of file diff --git a/evaluation/initial/int8/chinese_text-s123.png b/evaluation/initial/int8/chinese_text-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..a412c14d926aa45bd3047bc83bab3951263e4084 --- /dev/null +++ b/evaluation/initial/int8/chinese_text-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ff8508a9454650920591c0aad34d1793501f609e853f2f8584c15eee5127479 +size 1201749 diff --git a/evaluation/initial/int8/chinese_text-s42.png b/evaluation/initial/int8/chinese_text-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..476ba2f5ae16914235e9513f93e77cb206084c28 --- /dev/null +++ b/evaluation/initial/int8/chinese_text-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dce2de1e3b8b3836c7584854c7cf340cf05bcb141fa8e3988264c62e1b20238c +size 1315329 diff --git a/evaluation/initial/int8/composition-s123.png b/evaluation/initial/int8/composition-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..af1b4ce9758e907bdf2c57092b93b27c5f8bfaba --- /dev/null +++ b/evaluation/initial/int8/composition-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c030c007a9c3962533ffeb256d9dac619cc082a20a21ff6f9eb0c0ab7b7cadae +size 1211968 diff --git a/evaluation/initial/int8/composition-s42.png b/evaluation/initial/int8/composition-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..3d34c10f24d53adbef8bdd60f8e806082ec00487 --- /dev/null +++ b/evaluation/initial/int8/composition-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5704252c99e7f9dbe9e512eb82bf4fd93650e26c1d6479412679e7868637bcdd +size 1222325 diff --git a/evaluation/initial/int8/edit-s123.png b/evaluation/initial/int8/edit-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..a7bdb357242f87f40d7544d1907ae8ad4f789824 --- /dev/null +++ b/evaluation/initial/int8/edit-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8023e34ba10a22b36f63d050c50d44f149cebc7fc8f7f612a47f27f2a4cb70b +size 1799329 diff --git a/evaluation/initial/int8/edit-s42.png b/evaluation/initial/int8/edit-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..c9dcaad35087cfed56fd091ea0c136173035cf2d --- /dev/null +++ b/evaluation/initial/int8/edit-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33 +size 2275894 diff --git a/evaluation/initial/int8/english_text-s123.png b/evaluation/initial/int8/english_text-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..cdab521374d8eef5eed211852c540c857f9d08cf --- /dev/null +++ b/evaluation/initial/int8/english_text-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b55551e7c17975ee90ad895e449379355886c3422d6dcdee9b0c3a4ce1c4632f +size 922494 diff --git a/evaluation/initial/int8/english_text-s42.png b/evaluation/initial/int8/english_text-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..79cae741921cdccfebfe8b06d61bb6aa7fbcd7ac --- /dev/null +++ b/evaluation/initial/int8/english_text-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98ea66acd842498e192bc69503e32f5f61a4e5e56887d0f86e9c936b0b0d976f +size 960968 diff --git a/evaluation/initial/int8/environment.json b/evaluation/initial/int8/environment.json new file mode 100644 index 0000000000000000000000000000000000000000..1bdadaf46d4155a551babdd5bea117e3da5e4e8c --- /dev/null +++ b/evaluation/initial/int8/environment.json @@ -0,0 +1,149 @@ +{ + "python": "3.13.5", + "platform": "Windows-11-10.0.26200-SP0", + "gpu": "NVIDIA GeForce RTX 5090", + "cuda": "12.8", + "packages": { + "torch": "2.10.0+cu128", + "torchvision": "0.25.0+cu128", + "diffusers": "0.41.0.dev0", + "transformers": "5.17.0", + "accelerate": "1.15.0", + "bitsandbytes": "0.50.2", + "safetensors": "0.8.0", + "huggingface-hub": "1.32.0", + "tokenizers": "0.23.2", + "numpy": "2.2.6", + "pillow": "12.2.0", + "psutil": "7.0.0" + }, + "model_identity": { + "kind": "int8", + "base_revision": "b3179ad355be050328e483a9dfdd9e60cd62adfa", + "files": [ + { + "path": "model_index.json", + "size": 447, + "sha256": "cf1ecd104ea090855d60d8cec0895c1e9d6ee41b2f87e231b678beecd1cf7809" + }, + { + "path": "processor/added_tokens.json", + "size": 707, + "sha256": "c0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680" + }, + { + "path": "processor/chat_template.jinja", + "size": 5292, + "sha256": "3636d0f0bd6bef02654cdffdc447b79cb2cef8ab02cc75267345946291a489e4" + }, + { + "path": "processor/merges.txt", + "size": 1671853, + "sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5" + }, + { + "path": "processor/preprocessor_config.json", + "size": 782, + "sha256": "93585062a80db5e8ca038efc7726a3e6411d9db948472d81d63c6303993be8c5" + }, + { + "path": "processor/special_tokens_map.json", + "size": 613, + "sha256": "76862e765266b85aa9459767e33cbaf13970f327a0e88d1c65846c2ddd3a1ecd" + }, + { + "path": "processor/tokenizer.json", + "size": 11422654, + "sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4" + }, + { + "path": "processor/tokenizer_config.json", + "size": 5445, + "sha256": "81ec7bb9530159b326c0bef1d0b6c33d392090524014ea3f0123a3c1eb9c2af5" + }, + { + "path": "processor/video_preprocessor_config.json", + "size": 817, + "sha256": "59c5c9eb52182eb14c06ffb10ca9effd29adce5f238a95de23ca14a38dbd2cb1" + }, + { + "path": "processor/vocab.json", + "size": 2776833, + "sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910" + }, + { + "path": "scheduler/scheduler_config.json", + "size": 485, + "sha256": "5895f3a167c14a967fe9ac70c64924ae5acc79799e0679fd12907e594a713cd1" + }, + { + "path": "text_encoder/config.json", + "size": 2487, + "sha256": "da4f7a17ffbcaef0d09f9c31cab01d77e2c25905676818279254b5a8bb371150" + }, + { + "path": "text_encoder/generation_config.json", + "size": 467, + "sha256": "7dc6dd5e325f76cd2f75d428d41049e1f8ac0c4775d0800c0885b88bfe3f4c7f" + }, + { + "path": "text_encoder/model-00001-of-00003.safetensors", + "size": 4999822155, + "sha256": "9b8ae3bd2a1e4884abc48c659212427bbbae06fb1bc17e7173583704fc0f6bdd" + }, + { + "path": "text_encoder/model-00002-of-00003.safetensors", + "size": 4996432636, + "sha256": "d28d1a8b3994a43582acc5e2da15ff38b632fae1466f41bc7710d27ec170aa9e" + }, + { + "path": "text_encoder/model-00003-of-00003.safetensors", + "size": 27729689, + "sha256": "5896ffa9e2b2a52f9d496755fde050306f21c449bd66c2526b40979033c6e244" + }, + { + "path": "text_encoder/model.safetensors.index.json", + "size": 139297, + "sha256": "d3fc335d23047182f40d458efec86a4b187a766e0d1639426b6a9b7ab5b1ab8a" + }, + { + "path": "transformer/config.json", + "size": 1297, + "sha256": "1a941b5389b5985cd16314641d708a1333a65748bcd3f74b1b8b1cd74b828202" + }, + { + "path": "transformer/diffusion_pytorch_model-00001-of-00002.safetensors", + "size": 4989447305, + "sha256": "0d77daaa3129860f026567e0178fec4ed776f3cf2463da76a0823b9c381c3468" + }, + { + "path": "transformer/diffusion_pytorch_model-00002-of-00002.safetensors", + "size": 2267331623, + "sha256": "5e1b8ee3917833687adb662830438dc612ace2cf4bff7b8898515184a888fde1" + }, + { + "path": "transformer/diffusion_pytorch_model.safetensors.index.json", + "size": 77984, + "sha256": "96963ae89098cbfdb83fb09bfe0b91e34d8dfe812c65da5e1fbe452878a79ebe" + }, + { + "path": "vae/config.json", + "size": 2079, + "sha256": "9785d527b278cb8b210e9f48a8028d92a4190968ce7e24c8fc85d9d1b82f6ba2" + }, + { + "path": "vae/diffusion_pytorch_model.safetensors", + "size": 1350989512, + "sha256": "a07a1b7c4ee2966a1b3bdc37de9b4f983d56937e46619f709a80b6e490675417" + } + ], + "fingerprint": "df2eb85e5f936d6b172d71605502055db9be34cb8590447488ce60f7e9d8dc22" + }, + "model": "D:\\Git\\Qwen-Image-2.1\\models\\int8", + "load_seconds": 15.678335699999934, + "load_peak_allocated_bytes": 17281157120, + "offload": "model", + "warmup": true, + "generator_device": "cpu", + "cases_sha256": "2663ee3d489e1eb136e02b083963b8622146fc65ac301d6acc5a6aab21e63356" +} \ No newline at end of file diff --git a/evaluation/initial/int8/portrait-s123.png b/evaluation/initial/int8/portrait-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..215c6b78a1d7c8f72587a88df945b1d866ed34e5 --- /dev/null +++ b/evaluation/initial/int8/portrait-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09391672b7aa15abc92a49184c94cd7dc09b570b2134c95f0a1524701630323c +size 1930928 diff --git a/evaluation/initial/int8/portrait-s42.png b/evaluation/initial/int8/portrait-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..d0295c48b686e215e8abaeb211da3217b4e1853d --- /dev/null +++ b/evaluation/initial/int8/portrait-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e37187a2530d0f45378f17ca8fff47a7e174f1ce0c19ff89b9df8f4db1845acd +size 1865119 diff --git a/evaluation/initial/int8/records.jsonl b/evaluation/initial/int8/records.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..df4438cacb38c64555b14f1cab870c108483c75c --- /dev/null +++ b/evaluation/initial/int8/records.jsonl @@ -0,0 +1,14 @@ +{"case_id": "portrait", "category": "portrait", "prompt": "A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.65371929999992, "peak_allocated_bytes": 24547198464, "peak_reserved_bytes": 24595398656, "process_rss_after_bytes": 24881610752, "image": "portrait-s42.png", "image_sha256": "e37187a2530d0f45378f17ca8fff47a7e174f1ce0c19ff89b9df8f4db1845acd", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 249, "alpha_max": 255, "alpha_nonopaque_fraction": 0.015732765197753906} +{"case_id": "portrait", "category": "portrait", "prompt": "A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.614630900000066, "peak_allocated_bytes": 24547197952, "peak_reserved_bytes": 24595398656, "process_rss_after_bytes": 25830686720, "image": "portrait-s123.png", "image_sha256": "09391672b7aa15abc92a49184c94cd7dc09b570b2134c95f0a1524701630323c", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.08091926574707031} +{"case_id": "english_text", "category": "typography_en", "prompt": "A clean editorial poster with a deep blue background. Large exact headline at the top: \"CREATE WITH LIGHT\". Smaller exact subtitle: \"September 2026\". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.416275399999904, "peak_allocated_bytes": 24547739136, "peak_reserved_bytes": 24601690112, "process_rss_after_bytes": 26035294208, "image": "english_text-s42.png", "image_sha256": "98ea66acd842498e192bc69503e32f5f61a4e5e56887d0f86e9c936b0b0d976f", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 250, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0012531280517578125} +{"case_id": "english_text", "category": "typography_en", "prompt": "A clean editorial poster with a deep blue background. Large exact headline at the top: \"CREATE WITH LIGHT\". Smaller exact subtitle: \"September 2026\". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.404967399999805, "peak_allocated_bytes": 24547762688, "peak_reserved_bytes": 24601690112, "process_rss_after_bytes": 26170896384, "image": "english_text-s123.png", "image_sha256": "b55551e7c17975ee90ad895e449379355886c3422d6dcdee9b0c3a4ce1c4632f", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 213, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0015974044799804688} +{"case_id": "chinese_text", "category": "typography_zh", "prompt": "设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.544581299999663, "peak_allocated_bytes": 24548032000, "peak_reserved_bytes": 24603787264, "process_rss_after_bytes": 26308521984, "image": "chinese_text-s42.png", "image_sha256": "dce2de1e3b8b3836c7584854c7cf340cf05bcb141fa8e3988264c62e1b20238c", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 247, "alpha_max": 255, "alpha_nonopaque_fraction": 0.01668834686279297} +{"case_id": "chinese_text", "category": "typography_zh", "prompt": "设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.86057179999989, "peak_allocated_bytes": 24548050432, "peak_reserved_bytes": 24603787264, "process_rss_after_bytes": 26289606656, "image": "chinese_text-s123.png", "image_sha256": "7ff8508a9454650920591c0aad34d1793501f609e853f2f8584c15eee5127479", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 245, "alpha_max": 255, "alpha_nonopaque_fraction": 0.012395858764648438} +{"case_id": "composition", "category": "spatial_counting", "prompt": "A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.130140400000073, "peak_allocated_bytes": 24547978240, "peak_reserved_bytes": 24603787264, "process_rss_after_bytes": 26264928256, "image": "composition-s42.png", "image_sha256": "5704252c99e7f9dbe9e512eb82bf4fd93650e26c1d6479412679e7868637bcdd", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0036773681640625} +{"case_id": "composition", "category": "spatial_counting", "prompt": "A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.303240899999764, "peak_allocated_bytes": 24547941888, "peak_reserved_bytes": 24603787264, "process_rss_after_bytes": 27820789760, "image": "composition-s123.png", "image_sha256": "c030c007a9c3962533ffeb256d9dac619cc082a20a21ff6f9eb0c0ab7b7cadae", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 253, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0106048583984375} +{"case_id": "texture", "category": "texture", "prompt": "Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.223099399999683, "peak_allocated_bytes": 24546856448, "peak_reserved_bytes": 24597495808, "process_rss_after_bytes": 28058947584, "image": "texture-s42.png", "image_sha256": "37042d1659147a142e0562aa27623cb1d159d9d12e46af59395029f0293fd9c8", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 251, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0345611572265625} +{"case_id": "texture", "category": "texture", "prompt": "Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.567528400000356, "peak_allocated_bytes": 24546861568, "peak_reserved_bytes": 24597495808, "process_rss_after_bytes": 28048392192, "image": "texture-s123.png", "image_sha256": "82fc88d5ab3cd4201634c54567b327f200231321dd0207990ff4c893e78496c7", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 251, "alpha_max": 255, "alpha_nonopaque_fraction": 0.01710224151611328} +{"case_id": "rgba", "category": "transparency", "prompt": "This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.388802900000428, "peak_allocated_bytes": 24546763776, "peak_reserved_bytes": 24595398656, "process_rss_after_bytes": 28067987456, "image": "rgba-s42.png", "image_sha256": "8624d495fe40f602a492b3366ccb0354d5684e4e084281503fdb435d0f4e265e", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 0, "alpha_max": 255, "alpha_nonopaque_fraction": 0.7706136703491211} +{"case_id": "rgba", "category": "transparency", "prompt": "This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.288307799999984, "peak_allocated_bytes": 24546768384, "peak_reserved_bytes": 24595398656, "process_rss_after_bytes": 28076621824, "image": "rgba-s123.png", "image_sha256": "4871aab8f9d404a479385053bdb4c18de7f4119884bb0e30997d7be721a69b45", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 0, "alpha_max": 255, "alpha_nonopaque_fraction": 0.6456260681152344} +{"case_id": "edit", "category": "image_editing", "prompt": "Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", "seconds": 25.399254500000097, "peak_allocated_bytes": 24781434880, "peak_reserved_bytes": 26440892416, "process_rss_after_bytes": 29161738240, "image": "edit-s42.png", "image_sha256": "79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 241, "alpha_max": 255, "alpha_nonopaque_fraction": 0.11248302459716797} +{"case_id": "edit", "category": "image_editing", "prompt": "Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", "seconds": 25.24017350000031, "peak_allocated_bytes": 24782129152, "peak_reserved_bytes": 26440892416, "process_rss_after_bytes": 29135400960, "image": "edit-s123.png", "image_sha256": "d8023e34ba10a22b36f63d050c50d44f149cebc7fc8f7f612a47f27f2a4cb70b", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 253, "alpha_max": 255, "alpha_nonopaque_fraction": 0.011339187622070312} diff --git a/evaluation/initial/int8/rgba-s123.png b/evaluation/initial/int8/rgba-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..955c1e5a7346eae19444cb72462fe8419793962c --- /dev/null +++ b/evaluation/initial/int8/rgba-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4871aab8f9d404a479385053bdb4c18de7f4119884bb0e30997d7be721a69b45 +size 1032567 diff --git a/evaluation/initial/int8/rgba-s42.png b/evaluation/initial/int8/rgba-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..cbbe9d0a57e224a8b84abeee800847d7cbaa7296 --- /dev/null +++ b/evaluation/initial/int8/rgba-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8624d495fe40f602a492b3366ccb0354d5684e4e084281503fdb435d0f4e265e +size 918813 diff --git a/evaluation/initial/int8/texture-s123.png b/evaluation/initial/int8/texture-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..cb1cbfabc90b3a81e89de4a449173a70a74c8923 --- /dev/null +++ b/evaluation/initial/int8/texture-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82fc88d5ab3cd4201634c54567b327f200231321dd0207990ff4c893e78496c7 +size 1758127 diff --git a/evaluation/initial/int8/texture-s42.png b/evaluation/initial/int8/texture-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..049b984a81d43628ddf84aa340314b8b1545397d --- /dev/null +++ b/evaluation/initial/int8/texture-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37042d1659147a142e0562aa27623cb1d159d9d12e46af59395029f0293fd9c8 +size 1784440 diff --git a/evaluation/initial/qualitative.md b/evaluation/initial/qualitative.md new file mode 100644 index 0000000000000000000000000000000000000000..bdfa84c7908c83e21d41b36c4536c86cce27c858 --- /dev/null +++ b/evaluation/initial/qualitative.md @@ -0,0 +1,24 @@ +# Qualitative inspection / 定性检查 + +Agent visual inspection of the seed-42 pairs; not a blinded human preference study, +OCR benchmark, or quantitative semantic score. All seed-123 outputs remain available +in the gallery for independent review. + +| Case | Observed BF16 / INT8 behavior | +|---|---| +| Portrait | Both preserve the requested older woman, blue sweater and window composition. Face shape, wrinkles, framing and fabric details shift slightly. Neither is pixel-identical. | +| English lettering | Both visibly render “CREATE WITH LIGHT” and “September 2026”. Layout and desk objects differ. | +| Chinese lettering | Both visibly render the requested main title and subtitle. Both also add unwanted, partly nonsensical footer text despite the instruction to add no other text. | +| Counting / arrangement | Both show three cups in red/blue/yellow order with one green apple in front of the blue cup. Object scales and spacing differ. | +| Texture | Both depict a plausible blue/orange kingfisher. Head angle, branch orientation and feather texture differ noticeably. Low pixel similarity here is not by itself evidence of poor semantic quality. | +| RGBA | Both produce a green/orange dragon sticker and a real varying alpha channel. Sampled background pixels have alpha 0–1/255; the subject is opaque. Invisible RGB background colors should not be mistaken for an opaque background. Both have a white sticker outline. | +| Editing | Both recolor the sweater toward a red/burgundy tone, but produce conspicuous oversharpening and contrast/texture changes across the portrait and background. Faithful preservation of lighting and skin texture is not achieved in this test. | + +**Editing limitation:** The artifact is reproducible in both precisions under this +specific pinned runtime and test setup. This comparison does not identify its root +cause and does not attribute it specifically to INT8. Do not treat successful pipeline +execution as validation of editing fidelity. + +中文要点:文生图整体语义在所检查样例中保留,但画面细节会变化。中英文主标题可读; +中文海报的多余页脚在两种精度中均存在。编辑任务在两组都出现明显过度锐化及对比度变化, +不能宣称“编辑无损”或“质量完全一致”。这些观察只针对所列样例,不代表通用榜单结论。 diff --git a/evaluation/initial/report.md b/evaluation/initial/report.md new file mode 100644 index 0000000000000000000000000000000000000000..a1d688fcf6a9dd537948a4636b1c18538202b0d0 --- /dev/null +++ b/evaluation/initial/report.md @@ -0,0 +1,40 @@ +# BF16 / INT8 comparison + +Additional adult Chinese woman portrait pairs are reported separately: [supplement](young_woman/report.md). + +14 paired outputs on NVIDIA GeForce RTX 5090; 1024×1024, 40 steps, offload=model, CFG=1, KV cache enabled. + +Warmup excluded. Pixel metrics measure drift, not semantic quality. The same BF16 portrait is used as input for every editing pair. The suite is small and does not establish a general quality ranking. + +| Case | Seed | BF16 s | INT8 s | BF16 peak GiB | INT8 peak GiB | RGB MAE (white) | +|---|---:|---:|---:|---:|---:|---:| +| portrait | 42 | 29.77 | 19.65 | 16.40 | 22.86 | 0.0134 | +| portrait | 123 | 26.55 | 19.61 | 16.40 | 22.86 | 0.0163 | +| english_text | 42 | 25.95 | 19.42 | 16.41 | 22.86 | 0.0263 | +| english_text | 123 | 25.88 | 19.40 | 16.41 | 22.86 | 0.0118 | +| chinese_text | 42 | 25.47 | 19.54 | 16.41 | 22.86 | 0.0597 | +| chinese_text | 123 | 25.85 | 19.86 | 16.41 | 22.86 | 0.0246 | +| composition | 42 | 25.38 | 19.13 | 16.41 | 22.86 | 0.0227 | +| composition | 123 | 25.35 | 19.30 | 16.41 | 22.86 | 0.0196 | +| texture | 42 | 25.85 | 19.22 | 16.40 | 22.86 | 0.0698 | +| texture | 123 | 25.76 | 19.57 | 16.40 | 22.86 | 0.0168 | +| rgba | 42 | 26.04 | 19.39 | 16.40 | 22.86 | 0.0183 | +| rgba | 123 | 25.07 | 19.29 | 16.40 | 22.86 | 0.0465 | +| edit | 42 | 31.16 | 25.40 | 19.08 | 23.08 | 0.0097 | +| edit | 123 | 31.03 | 25.24 | 19.08 | 23.08 | 0.0039 | + +## Summary + +Mean latency: BF16 26.79s; INT8 20.29s. + +[Interactive-sized side-by-side gallery](comparison.html). Raw data: comparison.csv, bf16/records.jsonl, int8/records.jsonl. Environment records include package versions and loading overhead. + +[Qualitative observations](qualitative.md). + +## Interpretation limits + +- No CLIP, OCR, human preference, FID or benchmark leaderboard score is claimed. +- Peak CUDA allocated/reserved memory excludes other processes and display usage. +- Measured call latency includes transfers; disk writing and model loading are excluded. +- Paired images may diverge with quantization even when both remain plausible. +- Editing and transparency should be inspected in the gallery, including preserved details. diff --git a/evaluation/initial/summary.json b/evaluation/initial/summary.json new file mode 100644 index 0000000000000000000000000000000000000000..b415ae8c45c33939487ecd131184fb8a4abd364e --- /dev/null +++ b/evaluation/initial/summary.json @@ -0,0 +1,14 @@ +{ + "pairs": 14, + "cases": 7, + "bf16_mean_seconds": 26.79312295714291, + "int8_mean_seconds": 20.288235278571424, + "bf16_max_allocated_gib": 19.081242561340332, + "int8_max_allocated_gib": 23.080156326293945, + "width": 1024, + "height": 1024, + "steps": 40, + "warmup": true, + "bf16_weight_bytes": 33115613408, + "int8_weight_bytes": 18631752920 +} \ No newline at end of file diff --git a/evaluation/initial/young_woman/bf16/environment.json b/evaluation/initial/young_woman/bf16/environment.json new file mode 100644 index 0000000000000000000000000000000000000000..54a9b4e8ba65a3f5b05f64c9eef338b897ce632c --- /dev/null +++ b/evaluation/initial/young_woman/bf16/environment.json @@ -0,0 +1,154 @@ +{ + "python": "3.13.5", + "platform": "Windows-11-10.0.26200-SP0", + "gpu": "NVIDIA GeForce RTX 5090", + "cuda": "12.8", + "packages": { + "torch": "2.10.0+cu128", + "torchvision": "0.25.0+cu128", + "diffusers": "0.41.0.dev0", + "transformers": "5.17.0", + "accelerate": "1.15.0", + "bitsandbytes": "0.50.2", + "safetensors": "0.8.0", + "huggingface-hub": "1.32.0", + "tokenizers": "0.23.2", + "numpy": "2.2.6", + "pillow": "12.2.0", + "psutil": "7.0.0" + }, + "model_identity": { + "kind": "bf16", + "base_revision": "b3179ad355be050328e483a9dfdd9e60cd62adfa", + "files": [ + { + "path": "model_index.json", + "size": 447, + "sha256": "cf1ecd104ea090855d60d8cec0895c1e9d6ee41b2f87e231b678beecd1cf7809" + }, + { + "path": "processor/added_tokens.json", + "size": 707, + "sha256": "c0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680" + }, + { + "path": "processor/chat_template.jinja", + "size": 5292, + "sha256": "3636d0f0bd6bef02654cdffdc447b79cb2cef8ab02cc75267345946291a489e4" + }, + { + "path": "processor/merges.txt", + "size": 1671853, + "sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5" + }, + { + "path": "processor/preprocessor_config.json", + "size": 782, + "sha256": "93585062a80db5e8ca038efc7726a3e6411d9db948472d81d63c6303993be8c5" + }, + { + "path": "processor/special_tokens_map.json", + "size": 613, + "sha256": "76862e765266b85aa9459767e33cbaf13970f327a0e88d1c65846c2ddd3a1ecd" + }, + { + "path": "processor/tokenizer.json", + "size": 11422654, + "sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4" + }, + { + "path": "processor/tokenizer_config.json", + "size": 5445, + "sha256": "81ec7bb9530159b326c0bef1d0b6c33d392090524014ea3f0123a3c1eb9c2af5" + }, + { + "path": "processor/video_preprocessor_config.json", + "size": 817, + "sha256": "59c5c9eb52182eb14c06ffb10ca9effd29adce5f238a95de23ca14a38dbd2cb1" + }, + { + "path": "processor/vocab.json", + "size": 2776833, + "sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910" + }, + { + "path": "scheduler/scheduler_config.json", + "size": 485, + "sha256": "5895f3a167c14a967fe9ac70c64924ae5acc79799e0679fd12907e594a713cd1" + }, + { + "path": "text_encoder/config.json", + "size": 1517, + "sha256": "6001331949f7f86ab6d791a80b12246d4f8da5159fa08c3e62368a39f36d63a9" + }, + { + "path": "text_encoder/generation_config.json", + "size": 213, + "sha256": "4d9818c3d27895c0058828a5f68bc7a4de80c3ae1bcdac90936ce24178063f59" + }, + { + "path": "text_encoder/model-00001-of-00004.safetensors", + "size": 4998056552, + "sha256": "dde00291b5f7fb92013895310a3da0ddba78674df9f10d505d375243dc01fc6f" + }, + { + "path": "text_encoder/model-00002-of-00004.safetensors", + "size": 4915962464, + "sha256": "9047faccc0a6d98496a52d55f27be1c94a9c259d1e283fbea0128d054a948d42" + }, + { + "path": "text_encoder/model-00003-of-00004.safetensors", + "size": 4915962496, + "sha256": "8c54187654c0176b73ae73785bf791dc9a14c9df7fb4310083a09d42048cb57e" + }, + { + "path": "text_encoder/model-00004-of-00004.safetensors", + "size": 2704357976, + "sha256": "5311532aaaeae3259eb6a7b2c600636be1159adf7ded35f53579f7d0e7d43cdd" + }, + { + "path": "text_encoder/model.safetensors.index.json", + "size": 67795, + "sha256": "859146bff8db1d617fca8b457a5223edff963bb70076b3645f2189fe0540a147" + }, + { + "path": "transformer/config.json", + "size": 370, + "sha256": "56ae3281c4e6c2d1aa3658252d187488071815fd79bef15808bb0205fc1a2241" + }, + { + "path": "transformer/diffusion_pytorch_model-00001-of-00002.safetensors", + "size": 9968332504, + "sha256": "9e6bc2d641e67bf277895ea8777141044a38f3edb7101bc469b2961dd7c36b4b" + }, + { + "path": "transformer/diffusion_pytorch_model-00002-of-00002.safetensors", + "size": 4261951904, + "sha256": "3aaf234dcbe128530479735854a346b5e3e66283b7c11db56f836bbd1c13ebaa" + }, + { + "path": "transformer/diffusion_pytorch_model.safetensors.index.json", + "size": 30283, + "sha256": "17987f6623b1c814d0ef55a137d99142b7b3b040eb1bf241b5575dd35af803a2" + }, + { + "path": "vae/config.json", + "size": 2079, + "sha256": "9785d527b278cb8b210e9f48a8028d92a4190968ce7e24c8fc85d9d1b82f6ba2" + }, + { + "path": "vae/diffusion_pytorch_model.safetensors", + "size": 1350989512, + "sha256": "a07a1b7c4ee2966a1b3bdc37de9b4f983d56937e46619f709a80b6e490675417" + } + ], + "fingerprint": "74c96a68092fdb1f3eed2063bcfba8fd99380ada6234e405e646681f35fb6984" + }, + "model": "D:\\Git\\Qwen-Image-2.1\\models\\bf16", + "load_seconds": 10.878222299999834, + "load_peak_allocated_bytes": 0, + "offload": "model", + "warmup": true, + "generator_device": "cpu", + "cases_sha256": "0d1d27b403e6c6685d652ef5553978fc9ac8af9b1d13c5c662449d0a8be74847" +} \ No newline at end of file diff --git a/evaluation/initial/young_woman/bf16/records.jsonl b/evaluation/initial/young_woman/bf16/records.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..69b3a4387ed43367a5a4badbb1a039f11f987298 --- /dev/null +++ b/evaluation/initial/young_woman/bf16/records.jsonl @@ -0,0 +1,2 @@ +{"case_id": "young_chinese_woman", "category": "adult_portrait", "prompt": "一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 29.499574199999188, "peak_allocated_bytes": 17657086464, "peak_reserved_bytes": 17846763520, "process_rss_after_bytes": 42507694080, "image": "young_chinese_woman-s42.png", "image_sha256": "00716ad4721f585be4b0bf0daf2413f4ab92b795f1eb4d08b4f1ecc604b075b8", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.04165172576904297} +{"case_id": "young_chinese_woman", "category": "adult_portrait", "prompt": "一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 27.529608899999403, "peak_allocated_bytes": 17657086464, "peak_reserved_bytes": 17846763520, "process_rss_after_bytes": 45226713088, "image": "young_chinese_woman-s123.png", "image_sha256": "a2f28b40c897335595e496d23e490278c53b2f916597a4ef0fbb95a9f2700096", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 253, "alpha_max": 255, "alpha_nonopaque_fraction": 0.030264854431152344} diff --git a/evaluation/initial/young_woman/bf16/young_chinese_woman-s123.png b/evaluation/initial/young_woman/bf16/young_chinese_woman-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..51340bcc2889207f06c79a0403aea449f6a6e214 --- /dev/null +++ b/evaluation/initial/young_woman/bf16/young_chinese_woman-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2f28b40c897335595e496d23e490278c53b2f916597a4ef0fbb95a9f2700096 +size 1555909 diff --git a/evaluation/initial/young_woman/bf16/young_chinese_woman-s42.png b/evaluation/initial/young_woman/bf16/young_chinese_woman-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..65db55b99ec759848b6cc710c4744ba0838833c3 --- /dev/null +++ b/evaluation/initial/young_woman/bf16/young_chinese_woman-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00716ad4721f585be4b0bf0daf2413f4ab92b795f1eb4d08b4f1ecc604b075b8 +size 1568091 diff --git a/evaluation/initial/young_woman/comparison.csv b/evaluation/initial/young_woman/comparison.csv new file mode 100644 index 0000000000000000000000000000000000000000..dbdb5b407e83c36c5f16fc920760828e6164f515 --- /dev/null +++ b/evaluation/initial/young_woman/comparison.csv @@ -0,0 +1,3 @@ +case_id,seed,bf16_seconds,int8_seconds,speed_ratio_bf16_over_int8,bf16_peak_allocated_gib,int8_peak_allocated_gib,rgb_mae_white,rgb_psnr_white_db,alpha_mae +young_chinese_woman,42,29.499574199999188,20.297709499999655,1.4533449796391897,16.444443225860596,22.86260986328125,0.010024778544902802,31.41698381919181,0.00012096697173547 +young_chinese_woman,123,27.529608899999403,20.03102880000006,1.3743482261879292,16.444443225860596,22.862611770629883,0.00630606384947896,35.93723710368233,9.255874465452507e-05 diff --git a/evaluation/initial/young_woman/comparison.html b/evaluation/initial/young_woman/comparison.html new file mode 100644 index 0000000000000000000000000000000000000000..6daf32b4892fd5a2588a569ecf6b54c3715a15fe --- /dev/null +++ b/evaluation/initial/young_woman/comparison.html @@ -0,0 +1,5 @@ +BF16 / INT8 comparison + +

BF16 / INT8 comparison

Left: BF16. Right: saved INT8. Identical settings and seeds. Alpha displayed over checkerboard.

+

young_chinese_woman — seed 42

一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。
BF16INT8
+

young_chinese_woman — seed 123

一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。
BF16INT8
\ No newline at end of file diff --git a/evaluation/initial/young_woman/int8/environment.json b/evaluation/initial/young_woman/int8/environment.json new file mode 100644 index 0000000000000000000000000000000000000000..a69101c86983d799806d3338d4ed76ef6afa5e8e --- /dev/null +++ b/evaluation/initial/young_woman/int8/environment.json @@ -0,0 +1,149 @@ +{ + "python": "3.13.5", + "platform": "Windows-11-10.0.26200-SP0", + "gpu": "NVIDIA GeForce RTX 5090", + "cuda": "12.8", + "packages": { + "torch": "2.10.0+cu128", + "torchvision": "0.25.0+cu128", + "diffusers": "0.41.0.dev0", + "transformers": "5.17.0", + "accelerate": "1.15.0", + "bitsandbytes": "0.50.2", + "safetensors": "0.8.0", + "huggingface-hub": "1.32.0", + "tokenizers": "0.23.2", + "numpy": "2.2.6", + "pillow": "12.2.0", + "psutil": "7.0.0" + }, + "model_identity": { + "kind": "int8", + "base_revision": "b3179ad355be050328e483a9dfdd9e60cd62adfa", + "files": [ + { + "path": "model_index.json", + "size": 447, + "sha256": "cf1ecd104ea090855d60d8cec0895c1e9d6ee41b2f87e231b678beecd1cf7809" + }, + { + "path": "processor/added_tokens.json", + "size": 707, + "sha256": "c0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680" + }, + { + "path": "processor/chat_template.jinja", + "size": 5292, + "sha256": "3636d0f0bd6bef02654cdffdc447b79cb2cef8ab02cc75267345946291a489e4" + }, + { + "path": "processor/merges.txt", + "size": 1671853, + "sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5" + }, + { + "path": "processor/preprocessor_config.json", + "size": 782, + "sha256": "93585062a80db5e8ca038efc7726a3e6411d9db948472d81d63c6303993be8c5" + }, + { + "path": "processor/special_tokens_map.json", + "size": 613, + "sha256": "76862e765266b85aa9459767e33cbaf13970f327a0e88d1c65846c2ddd3a1ecd" + }, + { + "path": "processor/tokenizer.json", + "size": 11422654, + "sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4" + }, + { + "path": "processor/tokenizer_config.json", + "size": 5445, + "sha256": "81ec7bb9530159b326c0bef1d0b6c33d392090524014ea3f0123a3c1eb9c2af5" + }, + { + "path": "processor/video_preprocessor_config.json", + "size": 817, + "sha256": "59c5c9eb52182eb14c06ffb10ca9effd29adce5f238a95de23ca14a38dbd2cb1" + }, + { + "path": "processor/vocab.json", + "size": 2776833, + "sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910" + }, + { + "path": "scheduler/scheduler_config.json", + "size": 485, + "sha256": "5895f3a167c14a967fe9ac70c64924ae5acc79799e0679fd12907e594a713cd1" + }, + { + "path": "text_encoder/config.json", + "size": 2487, + "sha256": "da4f7a17ffbcaef0d09f9c31cab01d77e2c25905676818279254b5a8bb371150" + }, + { + "path": "text_encoder/generation_config.json", + "size": 467, + "sha256": "7dc6dd5e325f76cd2f75d428d41049e1f8ac0c4775d0800c0885b88bfe3f4c7f" + }, + { + "path": "text_encoder/model-00001-of-00003.safetensors", + "size": 4999822155, + "sha256": "9b8ae3bd2a1e4884abc48c659212427bbbae06fb1bc17e7173583704fc0f6bdd" + }, + { + "path": "text_encoder/model-00002-of-00003.safetensors", + "size": 4996432636, + "sha256": "d28d1a8b3994a43582acc5e2da15ff38b632fae1466f41bc7710d27ec170aa9e" + }, + { + "path": "text_encoder/model-00003-of-00003.safetensors", + "size": 27729689, + "sha256": "5896ffa9e2b2a52f9d496755fde050306f21c449bd66c2526b40979033c6e244" + }, + { + "path": "text_encoder/model.safetensors.index.json", + "size": 139297, + "sha256": "d3fc335d23047182f40d458efec86a4b187a766e0d1639426b6a9b7ab5b1ab8a" + }, + { + "path": "transformer/config.json", + "size": 1297, + "sha256": "1a941b5389b5985cd16314641d708a1333a65748bcd3f74b1b8b1cd74b828202" + }, + { + "path": "transformer/diffusion_pytorch_model-00001-of-00002.safetensors", + "size": 4989447305, + "sha256": "0d77daaa3129860f026567e0178fec4ed776f3cf2463da76a0823b9c381c3468" + }, + { + "path": "transformer/diffusion_pytorch_model-00002-of-00002.safetensors", + "size": 2267331623, + "sha256": "5e1b8ee3917833687adb662830438dc612ace2cf4bff7b8898515184a888fde1" + }, + { + "path": "transformer/diffusion_pytorch_model.safetensors.index.json", + "size": 77984, + "sha256": "96963ae89098cbfdb83fb09bfe0b91e34d8dfe812c65da5e1fbe452878a79ebe" + }, + { + "path": "vae/config.json", + "size": 2079, + "sha256": "9785d527b278cb8b210e9f48a8028d92a4190968ce7e24c8fc85d9d1b82f6ba2" + }, + { + "path": "vae/diffusion_pytorch_model.safetensors", + "size": 1350989512, + "sha256": "a07a1b7c4ee2966a1b3bdc37de9b4f983d56937e46619f709a80b6e490675417" + } + ], + "fingerprint": "df2eb85e5f936d6b172d71605502055db9be34cb8590447488ce60f7e9d8dc22" + }, + "model": "D:\\Git\\Qwen-Image-2.1\\models\\int8", + "load_seconds": 15.62595229999988, + "load_peak_allocated_bytes": 17281157120, + "offload": "model", + "warmup": true, + "generator_device": "cpu", + "cases_sha256": "0d1d27b403e6c6685d652ef5553978fc9ac8af9b1d13c5c662449d0a8be74847" +} \ No newline at end of file diff --git a/evaluation/initial/young_woman/int8/records.jsonl b/evaluation/initial/young_woman/int8/records.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..8e3563d949a245f60289a85a4990da73a47b0f78 --- /dev/null +++ b/evaluation/initial/young_woman/int8/records.jsonl @@ -0,0 +1,2 @@ +{"case_id": "young_chinese_woman", "category": "adult_portrait", "prompt": "一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 20.297709499999655, "peak_allocated_bytes": 24548540416, "peak_reserved_bytes": 24622661632, "process_rss_after_bytes": 25040289792, "image": "young_chinese_woman-s42.png", "image_sha256": "5ffeb0f35bf0115ba2dd7ea9a98def2a97f280c67c27a24c9d1110e6501256a6", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.041473388671875} +{"case_id": "young_chinese_woman", "category": "adult_portrait", "prompt": "一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 20.03102880000006, "peak_allocated_bytes": 24548542464, "peak_reserved_bytes": 24622661632, "process_rss_after_bytes": 25673326592, "image": "young_chinese_woman-s123.png", "image_sha256": "350e800c857e0c6e0836cd7fb222cd9b60c10a34f29f15b1f8ffa71e9f986f64", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 253, "alpha_max": 255, "alpha_nonopaque_fraction": 0.031103134155273438} diff --git a/evaluation/initial/young_woman/int8/young_chinese_woman-s123.png b/evaluation/initial/young_woman/int8/young_chinese_woman-s123.png new file mode 100644 index 0000000000000000000000000000000000000000..f4e7679ac986205c55a7262e6c9c4234d5069fb1 --- /dev/null +++ b/evaluation/initial/young_woman/int8/young_chinese_woman-s123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:350e800c857e0c6e0836cd7fb222cd9b60c10a34f29f15b1f8ffa71e9f986f64 +size 1560080 diff --git a/evaluation/initial/young_woman/int8/young_chinese_woman-s42.png b/evaluation/initial/young_woman/int8/young_chinese_woman-s42.png new file mode 100644 index 0000000000000000000000000000000000000000..72b2d817c24c8d568467832ec56e43bb353ecda2 --- /dev/null +++ b/evaluation/initial/young_woman/int8/young_chinese_woman-s42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ffeb0f35bf0115ba2dd7ea9a98def2a97f280c67c27a24c9d1110e6501256a6 +size 1563866 diff --git a/evaluation/initial/young_woman/qualitative.md b/evaluation/initial/young_woman/qualitative.md new file mode 100644 index 0000000000000000000000000000000000000000..b3042ef9ddf3a061390678361200f626a35b3911 --- /dev/null +++ b/evaluation/initial/young_woman/qualitative.md @@ -0,0 +1,35 @@ +# Supplement: young Chinese adult woman portrait + +This is a separate supplementary run, not part of the original seven-case timing +average. The prompt explicitly describes a 25-year-old Chinese adult woman; all +images are synthetic. See `benchmarks/young_woman.json` in the repository root for +the exact Chinese prompt, and the paired records for the settings and image hashes. + +Both saved model variants were loaded in separate processes. BF16 ran first, then +INT8. Each had one full-settings warmup excluded from measurements, followed by +seeds 42 and 123 at 1024×1024, 40 steps, CFG=1, KV cache enabled and model CPU offload. + +Visual inspection of all four full-size PNG files: + +- Seed 42: both render a coherent front-facing portrait, off-white knit top, dark + shoulder-length hair and soft window lighting. INT8 changes the mouth/expression, + eye and eyebrow details, skin texture and fine hair placement. +- Seed 123: both retain the tilted head, framing, light direction and clothing. + Fine facial contours, individual hair strands and skin/knit textures differ. +- No obvious large facial distortion or unexpected text was seen in these four + images. This is a limited visual inspection, not a face-identity preservation + score or proof of equivalent perceptual quality. + +Mean call time: BF16 28.51 seconds, INT8 20.16 seconds. Maximum CUDA allocated +memory: BF16 16.44 GiB, INT8 22.86 GiB. This supplementary result again does **not** +establish lower GPU memory use. There were no repeated timing trials or confidence +intervals, and only two seeds were sampled. + +## 中文说明 + +本次补测使用明确描述“25 岁中国年轻成年女性”的中文提示词;图片均为模型生成。 +共两个种子、两种精度、四张图,单独预热及计时,不计入原有七类用例均值。 +两个种子的主体构图、衣着与窗边光线大体一致;嘴角表情、眉眼、发丝、皮肤及针织 +纹理仍有变化。检查的四张图未发现明显面部结构畸变或多余文字,但不能据此宣称 +身份一致或画质无损。平均耗时为 BF16 28.51 秒、INT8 20.16 秒;最高已分配显存 +为 16.44 / 22.86 GiB,INT8 仍更高。 diff --git a/evaluation/initial/young_woman/report.md b/evaluation/initial/young_woman/report.md new file mode 100644 index 0000000000000000000000000000000000000000..58a669f6ddc0759bc1c1f2ef33e1e7a6445792aa --- /dev/null +++ b/evaluation/initial/young_woman/report.md @@ -0,0 +1,26 @@ +# BF16 / INT8 comparison + +2 paired outputs on NVIDIA GeForce RTX 5090; 1024×1024, 40 steps, offload=model, CFG=1, KV cache enabled. + +Warmup excluded. Pixel metrics measure drift, not semantic quality. The suite is small and does not establish a general quality ranking. + +| Case | Seed | BF16 s | INT8 s | BF16 peak GiB | INT8 peak GiB | RGB MAE (white) | +|---|---:|---:|---:|---:|---:|---:| +| young_chinese_woman | 42 | 29.50 | 20.30 | 16.44 | 22.86 | 0.0100 | +| young_chinese_woman | 123 | 27.53 | 20.03 | 16.44 | 22.86 | 0.0063 | + +## Summary + +Mean latency: BF16 28.51s; INT8 20.16s. + +[Interactive-sized side-by-side gallery](comparison.html). Raw data: comparison.csv, bf16/records.jsonl, int8/records.jsonl. Environment records include package versions and loading overhead. + +[Qualitative observations](qualitative.md). + +## Interpretation limits + +- No CLIP, OCR, human preference, FID or benchmark leaderboard score is claimed. +- Peak CUDA allocated/reserved memory excludes other processes and display usage. +- Measured call latency includes transfers; disk writing and model loading are excluded. +- Paired images may diverge with quantization even when both remain plausible. +- Editing and transparency should be inspected in the gallery, including preserved details. diff --git a/evaluation/initial/young_woman/summary.json b/evaluation/initial/young_woman/summary.json new file mode 100644 index 0000000000000000000000000000000000000000..a053fcaf61c5a771c46ba5b90ac0b857ed0130b1 --- /dev/null +++ b/evaluation/initial/young_woman/summary.json @@ -0,0 +1,14 @@ +{ + "pairs": 2, + "cases": 1, + "bf16_mean_seconds": 28.514591549999295, + "int8_mean_seconds": 20.164369149999857, + "bf16_max_allocated_gib": 16.444443225860596, + "int8_max_allocated_gib": 22.862611770629883, + "width": 1024, + "height": 1024, + "steps": 40, + "warmup": true, + "bf16_weight_bytes": 33115613408, + "int8_weight_bytes": 18631752920 +} \ No newline at end of file diff --git a/evaluation/int8/environment.json b/evaluation/int8/environment.json index 9bc634327853242e46252878572d07e667421fd6..f1b6b3423c7de577b0f01591afcb622a9b4d8c07 100644 --- a/evaluation/int8/environment.json +++ b/evaluation/int8/environment.json @@ -1,149 +1,167 @@ -{ - "python": "3.13.5", - "platform": "Windows-11-10.0.26200-SP0", - "gpu": "NVIDIA GeForce RTX 5090", - "cuda": "12.8", - "packages": { - "torch": "2.10.0+cu128", - "torchvision": "0.25.0+cu128", - "diffusers": "0.41.0.dev0", - "transformers": "5.17.0", - "accelerate": "1.15.0", - "bitsandbytes": "0.50.2", - "safetensors": "0.8.0", - "huggingface-hub": "1.32.0", - "tokenizers": "0.23.2", - "numpy": "2.2.6", - "pillow": "12.2.0", - "psutil": "7.0.0" - }, - "model_identity": { - "kind": "int8", - "base_revision": "b3179ad355be050328e483a9dfdd9e60cd62adfa", - "files": [ - { - "path": "model_index.json", - "size": 447, - "sha256": "cf1ecd104ea090855d60d8cec0895c1e9d6ee41b2f87e231b678beecd1cf7809" - }, - { - "path": "processor/added_tokens.json", - "size": 707, - "sha256": "c0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680" - }, - { - "path": "processor/chat_template.jinja", - "size": 5292, - "sha256": "3636d0f0bd6bef02654cdffdc447b79cb2cef8ab02cc75267345946291a489e4" - }, - { - "path": "processor/merges.txt", - "size": 1671853, - "sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5" - }, - { - "path": "processor/preprocessor_config.json", - "size": 782, - "sha256": "93585062a80db5e8ca038efc7726a3e6411d9db948472d81d63c6303993be8c5" - }, - { - "path": "processor/special_tokens_map.json", - "size": 613, - "sha256": "76862e765266b85aa9459767e33cbaf13970f327a0e88d1c65846c2ddd3a1ecd" - }, - { - "path": "processor/tokenizer.json", - "size": 11422654, - "sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4" - }, - { - "path": "processor/tokenizer_config.json", - "size": 5445, - "sha256": "81ec7bb9530159b326c0bef1d0b6c33d392090524014ea3f0123a3c1eb9c2af5" - }, - { - "path": "processor/video_preprocessor_config.json", - "size": 817, - "sha256": "59c5c9eb52182eb14c06ffb10ca9effd29adce5f238a95de23ca14a38dbd2cb1" - }, - { - "path": "processor/vocab.json", - "size": 2776833, - "sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910" - }, - { - "path": "scheduler/scheduler_config.json", - "size": 485, - "sha256": "5895f3a167c14a967fe9ac70c64924ae5acc79799e0679fd12907e594a713cd1" - }, - { - "path": "text_encoder/config.json", - "size": 2487, - "sha256": "da4f7a17ffbcaef0d09f9c31cab01d77e2c25905676818279254b5a8bb371150" - }, - { - "path": "text_encoder/generation_config.json", - "size": 467, - "sha256": "7dc6dd5e325f76cd2f75d428d41049e1f8ac0c4775d0800c0885b88bfe3f4c7f" - }, - { - "path": "text_encoder/model-00001-of-00003.safetensors", - "size": 4999822155, - "sha256": "9b8ae3bd2a1e4884abc48c659212427bbbae06fb1bc17e7173583704fc0f6bdd" - }, - { - "path": "text_encoder/model-00002-of-00003.safetensors", - "size": 4996432636, - "sha256": "d28d1a8b3994a43582acc5e2da15ff38b632fae1466f41bc7710d27ec170aa9e" - }, - { - "path": "text_encoder/model-00003-of-00003.safetensors", - "size": 27729689, - "sha256": "5896ffa9e2b2a52f9d496755fde050306f21c449bd66c2526b40979033c6e244" - }, - { - "path": "text_encoder/model.safetensors.index.json", - "size": 139297, - "sha256": "d3fc335d23047182f40d458efec86a4b187a766e0d1639426b6a9b7ab5b1ab8a" - }, - { - "path": "transformer/config.json", - "size": 1297, - "sha256": "1a941b5389b5985cd16314641d708a1333a65748bcd3f74b1b8b1cd74b828202" - }, - { - "path": "transformer/diffusion_pytorch_model-00001-of-00002.safetensors", - "size": 4989447305, - "sha256": "0d77daaa3129860f026567e0178fec4ed776f3cf2463da76a0823b9c381c3468" - }, - { - "path": "transformer/diffusion_pytorch_model-00002-of-00002.safetensors", - "size": 2267331623, - "sha256": "5e1b8ee3917833687adb662830438dc612ace2cf4bff7b8898515184a888fde1" - }, - { - "path": "transformer/diffusion_pytorch_model.safetensors.index.json", - "size": 77984, - "sha256": "96963ae89098cbfdb83fb09bfe0b91e34d8dfe812c65da5e1fbe452878a79ebe" - }, - { - "path": "vae/config.json", - "size": 2079, - "sha256": "9785d527b278cb8b210e9f48a8028d92a4190968ce7e24c8fc85d9d1b82f6ba2" - }, - { - "path": "vae/diffusion_pytorch_model.safetensors", - "size": 1350989512, - "sha256": "a07a1b7c4ee2966a1b3bdc37de9b4f983d56937e46619f709a80b6e490675417" - } - ], - "fingerprint": "df2eb85e5f936d6b172d71605502055db9be34cb8590447488ce60f7e9d8dc22" - }, - "model": "D:\\Git\\Qwen-Image-2.1\\models\\int8", - "load_seconds": 15.678335699999934, - "load_peak_allocated_bytes": 17281157120, - "offload": "model", - "warmup": true, - "generator_device": "cpu", - "cases_sha256": "2663ee3d489e1eb136e02b083963b8622146fc65ac301d6acc5a6aab21e63356" +{ + "python": "3.13.5", + "platform": "Windows-11-10.0.26200-SP0", + "gpu": "NVIDIA GeForce RTX 5090", + "cuda": "12.8", + "packages": { + "torch": "2.10.0+cu128", + "torchvision": "0.25.0+cu128", + "diffusers": "0.41.0.dev0", + "transformers": "5.17.0", + "accelerate": "1.15.0", + "bitsandbytes": "0.50.2", + "safetensors": "0.8.0", + "huggingface-hub": "1.32.0", + "tokenizers": "0.23.2", + "numpy": "2.2.6", + "pillow": "12.2.0", + "psutil": "7.0.0" + }, + "pid": 29636, + "before_load_memory": { + "allocated_bytes": 0, + "reserved_bytes": 0, + "cuda_free_bytes": 32496418816, + "cuda_total_bytes": 34162016256 + }, + "offload_aux_fix": true, + "benchmark_sha256": "39544666c2e94a0d56de5057c7ab1e88df90dd5ba4d2cba2428c11f9d7c4d9fb", + "runtime_helper_sha256": "26db92afa7d5c72324080480abe52c8e677b899844b369d99ac895e9bb1fb71c", + "gpu_before": "name, driver_version, memory.used [MiB], memory.free [MiB]\nNVIDIA GeForce RTX 5090, 616.92, 2217 MiB, 29971 MiB\n", + "gpu_processes_before": "pid, process_name, used_gpu_memory [MiB]\n15152, C:\\Windows\\SystemApps\\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\\CrossDeviceResume.exe, [N/A]\n13492, C:\\Windows\\explorer.exe, [N/A]\n17024, C:\\Windows\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\StartMenuExperienceHost.exe, [N/A]\n16996, C:\\Windows\\SystemApps\\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\\SearchHost.exe, [N/A]\n21128, C:\\Program Files\\NVIDIA Corporation\\NVIDIA App\\CEF\\NVIDIA Overlay.exe, [N/A]\n14084, C:\\Program Files\\NVIDIA Corporation\\NVIDIA App\\CEF\\NVIDIA Overlay.exe, [N/A]\n20120, C:\\Program Files\\LogiOptionsPlus\\logioptionsplus_agent.exe, [N/A]\n24684, C:\\Windows\\SystemApps\\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\\TextInputHost.exe, [N/A]\n25424, C:\\Program Files\\WindowsApps\\Microsoft.YourPhone_1.26072.255.0_x64__8wekyb3d8bbwe\\PhoneExperienceHost.exe, [N/A]\n26464, C:\\Program Files\\WindowsApps\\Microsoft.6365217CE6EB4_102.2504.16004.0_x64__8wekyb3d8bbwe\\MicrosoftSecurityApp\\MicrosoftSecurityApp.exe, [N/A]\n20456, C:\\Program Files\\Intel\\Intel Graphics Software\\IntelGraphicsSoftware.exe, [N/A]\n20468, C:\\Windows\\ImmersiveControlPanel\\SystemSettings.exe, [N/A]\n30740, C:\\Windows\\SystemApps\\ShellExperienceHost_cw5n1h2txyewy\\ShellExperienceHost.exe, [N/A]\n23160, C:\\Users\\Admin\\AppData\\Local\\Programs\\MiniMark\\MiniMark.Windows.exe, [N/A]\n17796, C:\\Program Files\\WindowsApps\\Microsoft.WindowsNotepad_11.2607.14.0_x64__8wekyb3d8bbwe\\Notepad\\Notepad.exe, [N/A]\n3952, C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_1.24.11911.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe, [N/A]\n3636, C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe, [N/A]\n35676, C:\\Windows\\System32\\ShellHost.exe, [N/A]\n29636, C:\\Python313\\python.exe, [N/A]\n", + "model_identity": { + "kind": "int8", + "base_revision": "b3179ad355be050328e483a9dfdd9e60cd62adfa", + "files": [ + { + "path": "model_index.json", + "size": 447, + "sha256": "cf1ecd104ea090855d60d8cec0895c1e9d6ee41b2f87e231b678beecd1cf7809" + }, + { + "path": "processor/added_tokens.json", + "size": 707, + "sha256": "c0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680" + }, + { + "path": "processor/chat_template.jinja", + "size": 5292, + "sha256": "3636d0f0bd6bef02654cdffdc447b79cb2cef8ab02cc75267345946291a489e4" + }, + { + "path": "processor/merges.txt", + "size": 1671853, + "sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5" + }, + { + "path": "processor/preprocessor_config.json", + "size": 782, + "sha256": "93585062a80db5e8ca038efc7726a3e6411d9db948472d81d63c6303993be8c5" + }, + { + "path": "processor/special_tokens_map.json", + "size": 613, + "sha256": "76862e765266b85aa9459767e33cbaf13970f327a0e88d1c65846c2ddd3a1ecd" + }, + { + "path": "processor/tokenizer.json", + "size": 11422654, + "sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4" + }, + { + "path": "processor/tokenizer_config.json", + "size": 5445, + "sha256": "81ec7bb9530159b326c0bef1d0b6c33d392090524014ea3f0123a3c1eb9c2af5" + }, + { + "path": "processor/video_preprocessor_config.json", + "size": 817, + "sha256": "59c5c9eb52182eb14c06ffb10ca9effd29adce5f238a95de23ca14a38dbd2cb1" + }, + { + "path": "processor/vocab.json", + "size": 2776833, + "sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910" + }, + { + "path": "scheduler/scheduler_config.json", + "size": 485, + "sha256": "5895f3a167c14a967fe9ac70c64924ae5acc79799e0679fd12907e594a713cd1" + }, + { + "path": "text_encoder/config.json", + "size": 2487, + "sha256": "da4f7a17ffbcaef0d09f9c31cab01d77e2c25905676818279254b5a8bb371150" + }, + { + "path": "text_encoder/generation_config.json", + "size": 467, + "sha256": "7dc6dd5e325f76cd2f75d428d41049e1f8ac0c4775d0800c0885b88bfe3f4c7f" + }, + { + "path": "text_encoder/model-00001-of-00003.safetensors", + "size": 4999822155, + "sha256": "9b8ae3bd2a1e4884abc48c659212427bbbae06fb1bc17e7173583704fc0f6bdd" + }, + { + "path": "text_encoder/model-00002-of-00003.safetensors", + "size": 4996432636, + "sha256": "d28d1a8b3994a43582acc5e2da15ff38b632fae1466f41bc7710d27ec170aa9e" + }, + { + "path": "text_encoder/model-00003-of-00003.safetensors", + "size": 27729689, + "sha256": "5896ffa9e2b2a52f9d496755fde050306f21c449bd66c2526b40979033c6e244" + }, + { + "path": "text_encoder/model.safetensors.index.json", + "size": 139297, + "sha256": "d3fc335d23047182f40d458efec86a4b187a766e0d1639426b6a9b7ab5b1ab8a" + }, + { + "path": "transformer/config.json", + "size": 1297, + "sha256": "1a941b5389b5985cd16314641d708a1333a65748bcd3f74b1b8b1cd74b828202" + }, + { + "path": "transformer/diffusion_pytorch_model-00001-of-00002.safetensors", + "size": 4989447305, + "sha256": "0d77daaa3129860f026567e0178fec4ed776f3cf2463da76a0823b9c381c3468" + }, + { + "path": "transformer/diffusion_pytorch_model-00002-of-00002.safetensors", + "size": 2267331623, + "sha256": "5e1b8ee3917833687adb662830438dc612ace2cf4bff7b8898515184a888fde1" + }, + { + "path": "transformer/diffusion_pytorch_model.safetensors.index.json", + "size": 77984, + "sha256": "96963ae89098cbfdb83fb09bfe0b91e34d8dfe812c65da5e1fbe452878a79ebe" + }, + { + "path": "vae/config.json", + "size": 2079, + "sha256": "9785d527b278cb8b210e9f48a8028d92a4190968ce7e24c8fc85d9d1b82f6ba2" + }, + { + "path": "vae/diffusion_pytorch_model.safetensors", + "size": 1350989512, + "sha256": "a07a1b7c4ee2966a1b3bdc37de9b4f983d56937e46619f709a80b6e490675417" + } + ], + "fingerprint": "df2eb85e5f936d6b172d71605502055db9be34cb8590447488ce60f7e9d8dc22" + }, + "model": "D:\\Git\\Qwen-Image-2.1\\models\\int8", + "load_seconds": 16.207236000000194, + "load_peak_allocated_bytes": 10023884288, + "offload": "model", + "warmup": true, + "after_load_memory": { + "allocated_bytes": 0, + "reserved_bytes": 0, + "cuda_free_bytes": 32496418816, + "cuda_total_bytes": 34162016256 + }, + "generator_device": "cpu", + "cases_sha256": "2663ee3d489e1eb136e02b083963b8622146fc65ac301d6acc5a6aab21e63356" } \ No newline at end of file diff --git a/evaluation/int8/records.jsonl b/evaluation/int8/records.jsonl index bce95e77aaeb7666cf32af3c76bf4dc8ea15e284..cb70924a1e690d4b7f39a2bab1e9dc61c26c72f5 100644 --- a/evaluation/int8/records.jsonl +++ b/evaluation/int8/records.jsonl @@ -1,14 +1,14 @@ -{"case_id": "portrait", "category": "portrait", "prompt": "A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.65371929999992, "peak_allocated_bytes": 24547198464, "peak_reserved_bytes": 24595398656, "process_rss_after_bytes": 24881610752, "image": "portrait-s42.png", "image_sha256": "e37187a2530d0f45378f17ca8fff47a7e174f1ce0c19ff89b9df8f4db1845acd", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 249, "alpha_max": 255, "alpha_nonopaque_fraction": 0.015732765197753906} -{"case_id": "portrait", "category": "portrait", "prompt": "A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.614630900000066, "peak_allocated_bytes": 24547197952, "peak_reserved_bytes": 24595398656, "process_rss_after_bytes": 25830686720, "image": "portrait-s123.png", "image_sha256": "09391672b7aa15abc92a49184c94cd7dc09b570b2134c95f0a1524701630323c", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.08091926574707031} -{"case_id": "english_text", "category": "typography_en", "prompt": "A clean editorial poster with a deep blue background. Large exact headline at the top: \"CREATE WITH LIGHT\". Smaller exact subtitle: \"September 2026\". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.416275399999904, "peak_allocated_bytes": 24547739136, "peak_reserved_bytes": 24601690112, "process_rss_after_bytes": 26035294208, "image": "english_text-s42.png", "image_sha256": "98ea66acd842498e192bc69503e32f5f61a4e5e56887d0f86e9c936b0b0d976f", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 250, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0012531280517578125} -{"case_id": "english_text", "category": "typography_en", "prompt": "A clean editorial poster with a deep blue background. Large exact headline at the top: \"CREATE WITH LIGHT\". Smaller exact subtitle: \"September 2026\". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.404967399999805, "peak_allocated_bytes": 24547762688, "peak_reserved_bytes": 24601690112, "process_rss_after_bytes": 26170896384, "image": "english_text-s123.png", "image_sha256": "b55551e7c17975ee90ad895e449379355886c3422d6dcdee9b0c3a4ce1c4632f", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 213, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0015974044799804688} -{"case_id": "chinese_text", "category": "typography_zh", "prompt": "设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.544581299999663, "peak_allocated_bytes": 24548032000, "peak_reserved_bytes": 24603787264, "process_rss_after_bytes": 26308521984, "image": "chinese_text-s42.png", "image_sha256": "dce2de1e3b8b3836c7584854c7cf340cf05bcb141fa8e3988264c62e1b20238c", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 247, "alpha_max": 255, "alpha_nonopaque_fraction": 0.01668834686279297} -{"case_id": "chinese_text", "category": "typography_zh", "prompt": "设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.86057179999989, "peak_allocated_bytes": 24548050432, "peak_reserved_bytes": 24603787264, "process_rss_after_bytes": 26289606656, "image": "chinese_text-s123.png", "image_sha256": "7ff8508a9454650920591c0aad34d1793501f609e853f2f8584c15eee5127479", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 245, "alpha_max": 255, "alpha_nonopaque_fraction": 0.012395858764648438} -{"case_id": "composition", "category": "spatial_counting", "prompt": "A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.130140400000073, "peak_allocated_bytes": 24547978240, "peak_reserved_bytes": 24603787264, "process_rss_after_bytes": 26264928256, "image": "composition-s42.png", "image_sha256": "5704252c99e7f9dbe9e512eb82bf4fd93650e26c1d6479412679e7868637bcdd", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0036773681640625} -{"case_id": "composition", "category": "spatial_counting", "prompt": "A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.303240899999764, "peak_allocated_bytes": 24547941888, "peak_reserved_bytes": 24603787264, "process_rss_after_bytes": 27820789760, "image": "composition-s123.png", "image_sha256": "c030c007a9c3962533ffeb256d9dac619cc082a20a21ff6f9eb0c0ab7b7cadae", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 253, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0106048583984375} -{"case_id": "texture", "category": "texture", "prompt": "Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.223099399999683, "peak_allocated_bytes": 24546856448, "peak_reserved_bytes": 24597495808, "process_rss_after_bytes": 28058947584, "image": "texture-s42.png", "image_sha256": "37042d1659147a142e0562aa27623cb1d159d9d12e46af59395029f0293fd9c8", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 251, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0345611572265625} -{"case_id": "texture", "category": "texture", "prompt": "Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.567528400000356, "peak_allocated_bytes": 24546861568, "peak_reserved_bytes": 24597495808, "process_rss_after_bytes": 28048392192, "image": "texture-s123.png", "image_sha256": "82fc88d5ab3cd4201634c54567b327f200231321dd0207990ff4c893e78496c7", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 251, "alpha_max": 255, "alpha_nonopaque_fraction": 0.01710224151611328} -{"case_id": "rgba", "category": "transparency", "prompt": "This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.388802900000428, "peak_allocated_bytes": 24546763776, "peak_reserved_bytes": 24595398656, "process_rss_after_bytes": 28067987456, "image": "rgba-s42.png", "image_sha256": "8624d495fe40f602a492b3366ccb0354d5684e4e084281503fdb435d0f4e265e", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 0, "alpha_max": 255, "alpha_nonopaque_fraction": 0.7706136703491211} -{"case_id": "rgba", "category": "transparency", "prompt": "This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 19.288307799999984, "peak_allocated_bytes": 24546768384, "peak_reserved_bytes": 24595398656, "process_rss_after_bytes": 28076621824, "image": "rgba-s123.png", "image_sha256": "4871aab8f9d404a479385053bdb4c18de7f4119884bb0e30997d7be721a69b45", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 0, "alpha_max": 255, "alpha_nonopaque_fraction": 0.6456260681152344} -{"case_id": "edit", "category": "image_editing", "prompt": "Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", "seconds": 25.399254500000097, "peak_allocated_bytes": 24781434880, "peak_reserved_bytes": 26440892416, "process_rss_after_bytes": 29161738240, "image": "edit-s42.png", "image_sha256": "79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 241, "alpha_max": 255, "alpha_nonopaque_fraction": 0.11248302459716797} -{"case_id": "edit", "category": "image_editing", "prompt": "Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", "seconds": 25.24017350000031, "peak_allocated_bytes": 24782129152, "peak_reserved_bytes": 26440892416, "process_rss_after_bytes": 29135400960, "image": "edit-s123.png", "image_sha256": "d8023e34ba10a22b36f63d050c50d44f149cebc7fc8f7f612a47f27f2a4cb70b", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 253, "alpha_max": 255, "alpha_nonopaque_fraction": 0.011339187622070312} +{"case_id": "portrait", "category": "portrait", "prompt": "A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 27262976, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 60817408, "cuda_free_bytes": 32274120704, "cuda_total_bytes": 34162016256}, "seconds": 19.621747900000628, "peak_allocated_bytes": 10190285824, "peak_reserved_bytes": 10305404928, "process_rss_after_bytes": 22783995904, "image": "portrait-s42.png", "image_sha256": "e37187a2530d0f45378f17ca8fff47a7e174f1ce0c19ff89b9df8f4db1845acd", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 249, "alpha_max": 255, "alpha_nonopaque_fraction": 0.015732765197753906} +{"case_id": "portrait", "category": "portrait", "prompt": "A natural documentary portrait of an elderly woman with silver hair and freckles, wearing a blue wool sweater, standing beside a window in soft morning light. Realistic skin texture, gentle expression, waist-up composition.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 27262976, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 60817408, "cuda_free_bytes": 32274120704, "cuda_total_bytes": 34162016256}, "seconds": 19.478468499999508, "peak_allocated_bytes": 10190285824, "peak_reserved_bytes": 10305404928, "process_rss_after_bytes": 23049076736, "image": "portrait-s123.png", "image_sha256": "09391672b7aa15abc92a49184c94cd7dc09b570b2134c95f0a1524701630323c", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.08091926574707031} +{"case_id": "english_text", "category": "typography_en", "prompt": "A clean editorial poster with a deep blue background. Large exact headline at the top: \"CREATE WITH LIGHT\". Smaller exact subtitle: \"September 2026\". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 27262976, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 67108864, "cuda_free_bytes": 32267829248, "cuda_total_bytes": 34162016256}, "seconds": 19.543290399999023, "peak_allocated_bytes": 10199723520, "peak_reserved_bytes": 10317987840, "process_rss_after_bytes": 23098015744, "image": "english_text-s42.png", "image_sha256": "98ea66acd842498e192bc69503e32f5f61a4e5e56887d0f86e9c936b0b0d976f", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 250, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0012531280517578125} +{"case_id": "english_text", "category": "typography_en", "prompt": "A clean editorial poster with a deep blue background. Large exact headline at the top: \"CREATE WITH LIGHT\". Smaller exact subtitle: \"September 2026\". A realistic orange desk lamp occupies the lower half. Elegant balanced typography, no additional text.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 27262976, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 69206016, "cuda_free_bytes": 32265732096, "cuda_total_bytes": 34162016256}, "seconds": 19.677271200000177, "peak_allocated_bytes": 10199725056, "peak_reserved_bytes": 10317987840, "process_rss_after_bytes": 23046381568, "image": "english_text-s123.png", "image_sha256": "b55551e7c17975ee90ad895e449379355886c3422d6dcdee9b0c3a4ce1c4632f", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 213, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0015974044799804688} +{"case_id": "chinese_text", "category": "typography_zh", "prompt": "设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 27262976, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 77594624, "cuda_free_bytes": 32257343488, "cuda_total_bytes": 34162016256}, "seconds": 19.60913740000069, "peak_allocated_bytes": 10195373568, "peak_reserved_bytes": 10307502080, "process_rss_after_bytes": 23103778816, "image": "chinese_text-s42.png", "image_sha256": "dce2de1e3b8b3836c7584854c7cf340cf05bcb141fa8e3988264c62e1b20238c", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 247, "alpha_max": 255, "alpha_nonopaque_fraction": 0.01668834686279297} +{"case_id": "chinese_text", "category": "typography_zh", "prompt": "设计一张现代咖啡馆海报,米白背景,中央一杯拉花拿铁。顶部准确写上中文大标题“慢下来,喝杯咖啡”,下方准确写上“小店今日营业”。文字清晰,留白充分,暖色摄影,不添加其他文字。", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 27262976, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 77594624, "cuda_free_bytes": 32257343488, "cuda_total_bytes": 34162016256}, "seconds": 19.6146719999997, "peak_allocated_bytes": 10195370496, "peak_reserved_bytes": 10307502080, "process_rss_after_bytes": 23107645440, "image": "chinese_text-s123.png", "image_sha256": "7ff8508a9454650920591c0aad34d1793501f609e853f2f8584c15eee5127479", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 245, "alpha_max": 255, "alpha_nonopaque_fraction": 0.012395858764648438} +{"case_id": "composition", "category": "spatial_counting", "prompt": "A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 27262976, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 77594624, "cuda_free_bytes": 32257343488, "cuda_total_bytes": 34162016256}, "seconds": 19.315522199998668, "peak_allocated_bytes": 10194805248, "peak_reserved_bytes": 10309599232, "process_rss_after_bytes": 23151910912, "image": "composition-s42.png", "image_sha256": "5704252c99e7f9dbe9e512eb82bf4fd93650e26c1d6479412679e7868637bcdd", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0036773681640625} +{"case_id": "composition", "category": "spatial_counting", "prompt": "A studio photograph on a light gray tabletop: exactly three ceramic cups in a row, a red cup on the left, a blue cup in the middle, and a yellow cup on the right. A single green apple sits in front of the blue cup. Soft shadows, no text.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 27262976, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 77594624, "cuda_free_bytes": 32257343488, "cuda_total_bytes": 34162016256}, "seconds": 19.14716750000116, "peak_allocated_bytes": 10194809856, "peak_reserved_bytes": 10309599232, "process_rss_after_bytes": 23135567872, "image": "composition-s123.png", "image_sha256": "c030c007a9c3962533ffeb256d9dac619cc082a20a21ff6f9eb0c0ab7b7cadae", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 253, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0106048583984375} +{"case_id": "texture", "category": "texture", "prompt": "Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 27262976, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 58720256, "cuda_free_bytes": 32276217856, "cuda_total_bytes": 34162016256}, "seconds": 19.42428639999889, "peak_allocated_bytes": 10186807808, "peak_reserved_bytes": 10305404928, "process_rss_after_bytes": 23134367744, "image": "texture-s42.png", "image_sha256": "37042d1659147a142e0562aa27623cb1d159d9d12e46af59395029f0293fd9c8", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 251, "alpha_max": 255, "alpha_nonopaque_fraction": 0.0345611572265625} +{"case_id": "texture", "category": "texture", "prompt": "Macro photography of a small kingfisher perched on a mossy branch beside clear water, detailed blue feathers, droplets, natural sunlight, softly blurred forest background, realistic textures.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 27262976, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 58720256, "cuda_free_bytes": 32276217856, "cuda_total_bytes": 34162016256}, "seconds": 19.159069299999828, "peak_allocated_bytes": 10186805760, "peak_reserved_bytes": 10305404928, "process_rss_after_bytes": 23132184576, "image": "texture-s123.png", "image_sha256": "82fc88d5ab3cd4201634c54567b327f200231321dd0207990ff4c893e78496c7", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 251, "alpha_max": 255, "alpha_nonopaque_fraction": 0.01710224151611328} +{"case_id": "rgba", "category": "transparency", "prompt": "This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 27262976, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 58720256, "cuda_free_bytes": 32276217856, "cuda_total_bytes": 34162016256}, "seconds": 19.219452700001057, "peak_allocated_bytes": 10175863808, "peak_reserved_bytes": 10252976128, "process_rss_after_bytes": 23125123072, "image": "rgba-s42.png", "image_sha256": "8624d495fe40f602a492b3366ccb0354d5684e4e084281503fdb435d0f4e265e", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 0, "alpha_max": 255, "alpha_nonopaque_fraction": 0.7706136703491211} +{"case_id": "rgba", "category": "transparency", "prompt": "This is an RGBA image with transparency. A cute cartoon dragon sticker, full body, green scales and small orange wings. The image has alpha channel and the background is transparent.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 27262976, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 58720256, "cuda_free_bytes": 32276217856, "cuda_total_bytes": 34162016256}, "seconds": 19.219784199998685, "peak_allocated_bytes": 10175861248, "peak_reserved_bytes": 10252976128, "process_rss_after_bytes": 23115743232, "image": "rgba-s123.png", "image_sha256": "4871aab8f9d404a479385053bdb4c18de7f4119884bb0e30997d7be721a69b45", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 0, "alpha_max": 255, "alpha_nonopaque_fraction": 0.6456260681152344} +{"case_id": "edit", "category": "image_editing", "prompt": "Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 27262976, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239808, "reserved_bytes": 2780823552, "cuda_free_bytes": 29552017408, "cuda_total_bytes": 34162016256}, "seconds": 25.072887500000434, "peak_allocated_bytes": 12978554368, "peak_reserved_bytes": 13931380736, "process_rss_after_bytes": 23855415296, "image": "edit-s42.png", "image_sha256": "79725e243ccfd82b5387beffe6e1f37193ce9137b576b2ec20e8543547dd9d33", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 241, "alpha_max": 255, "alpha_nonopaque_fraction": 0.11248302459716797} +{"case_id": "edit", "category": "image_editing", "prompt": "Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": "01e37e178fb0d35d5c706b7edd76bc1a6c5b50ec3536901a467fd45295d097aa", "before_memory": {"allocated_bytes": 13239808, "reserved_bytes": 25165824, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239808, "reserved_bytes": 2780823552, "cuda_free_bytes": 29552017408, "cuda_total_bytes": 34162016256}, "seconds": 24.810640600000625, "peak_allocated_bytes": 12978554368, "peak_reserved_bytes": 13931380736, "process_rss_after_bytes": 23839301632, "image": "edit-s123.png", "image_sha256": "d8023e34ba10a22b36f63d050c50d44f149cebc7fc8f7f612a47f27f2a4cb70b", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 253, "alpha_max": 255, "alpha_nonopaque_fraction": 0.011339187622070312} diff --git a/evaluation/process-isolation.jsonl b/evaluation/process-isolation.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..8cf8407271c3bc9bd908953954a5be9feaa2e25f --- /dev/null +++ b/evaluation/process-isolation.jsonl @@ -0,0 +1,4 @@ +{"name": "bf16", "pid": 7376, "returncode": 0, "command": ["-m", "scripts.benchmark", "--model", "models/bf16", "--output", "artifacts\\eval-corrected\\bf16"], "gpu_before": "Mon Sep 21 01:54:44 2026 \n+-----------------------------------------------------------------------------------------+\n| NVIDIA-SMI 616.92 KMD Version: 616.92 CUDA UMD Version: 13.4 |\n+-----------------------------------------+------------------------+----------------------+\n| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |\n| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n| | | MIG M. |\n|=========================================+========================+======================|\n| 0 NVIDIA GeForce RTX 5090 WDDM | 00000000:02:00.0 On | N/A |\n| 30% 50C P3 69W / 575W | 1943MiB / 32607MiB | 5% Default |\n| | | N/A |\n+-----------------------------------------+------------------------+----------------------+\n\n+-----------------------------------------------------------------------------------------+\n| Processes: |\n| GPU GI CI PID Type Process name GPU Memory |\n| ID ID Usage |\n|=========================================================================================|\n| 0 N/A N/A 3636 C+G ...t\\Edge\\Application\\msedge.exe N/A |\n| 0 N/A N/A 3952 C+G ...yb3d8bbwe\\WindowsTerminal.exe N/A |\n| 0 N/A N/A 13492 C+G C:\\Windows\\explorer.exe N/A |\n| 0 N/A N/A 14084 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 15152 C+G ...2txyewy\\CrossDeviceResume.exe N/A |\n| 0 N/A N/A 16996 C+G ..._cw5n1h2txyewy\\SearchHost.exe N/A |\n| 0 N/A N/A 17024 C+G ...y\\StartMenuExperienceHost.exe N/A |\n| 0 N/A N/A 17796 C+G ...yb3d8bbwe\\Notepad\\Notepad.exe N/A |\n| 0 N/A N/A 20120 C+G ...lus\\logioptionsplus_agent.exe N/A |\n| 0 N/A N/A 20456 C+G ...are\\IntelGraphicsSoftware.exe N/A |\n| 0 N/A N/A 20468 C+G ...ntrolPanel\\SystemSettings.exe N/A |\n| 0 N/A N/A 21128 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 23160 C+G ...MiniMark\\MiniMark.Windows.exe N/A |\n| 0 N/A N/A 24684 C+G ...5n1h2txyewy\\TextInputHost.exe N/A |\n| 0 N/A N/A 25424 C+G ...8bbwe\\PhoneExperienceHost.exe N/A |\n| 0 N/A N/A 26464 C+G ...yApp\\MicrosoftSecurityApp.exe N/A |\n| 0 N/A N/A 30740 C+G ...xyewy\\ShellExperienceHost.exe N/A |\n| 0 N/A N/A 34284 C+G C:\\Windows\\System32\\Mystify.scr N/A |\n| 0 N/A N/A 35676 C+G ...indows\\System32\\ShellHost.exe N/A |\n+-----------------------------------------------------------------------------------------+\n", "gpu_after": "Mon Sep 21 02:02:26 2026 \n+-----------------------------------------------------------------------------------------+\n| NVIDIA-SMI 616.92 KMD Version: 616.92 CUDA UMD Version: 13.4 |\n+-----------------------------------------+------------------------+----------------------+\n| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |\n| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n| | | MIG M. |\n|=========================================+========================+======================|\n| 0 NVIDIA GeForce RTX 5090 WDDM | 00000000:02:00.0 Off | N/A |\n| 52% 60C P3 64W / 575W | 1788MiB / 32607MiB | 1% Default |\n| | | N/A |\n+-----------------------------------------+------------------------+----------------------+\n\n+-----------------------------------------------------------------------------------------+\n| Processes: |\n| GPU GI CI PID Type Process name GPU Memory |\n| ID ID Usage |\n|=========================================================================================|\n| 0 N/A N/A 3636 C+G ...t\\Edge\\Application\\msedge.exe N/A |\n| 0 N/A N/A 3952 C+G ...yb3d8bbwe\\WindowsTerminal.exe N/A |\n| 0 N/A N/A 13492 C+G C:\\Windows\\explorer.exe N/A |\n| 0 N/A N/A 14084 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 15152 C+G ...2txyewy\\CrossDeviceResume.exe N/A |\n| 0 N/A N/A 16996 C+G ..._cw5n1h2txyewy\\SearchHost.exe N/A |\n| 0 N/A N/A 17024 C+G ...y\\StartMenuExperienceHost.exe N/A |\n| 0 N/A N/A 17796 C+G ...yb3d8bbwe\\Notepad\\Notepad.exe N/A |\n| 0 N/A N/A 20120 C+G ...lus\\logioptionsplus_agent.exe N/A |\n| 0 N/A N/A 20456 C+G ...are\\IntelGraphicsSoftware.exe N/A |\n| 0 N/A N/A 20468 C+G ...ntrolPanel\\SystemSettings.exe N/A |\n| 0 N/A N/A 21128 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 23160 C+G ...MiniMark\\MiniMark.Windows.exe N/A |\n| 0 N/A N/A 24684 C+G ...5n1h2txyewy\\TextInputHost.exe N/A |\n| 0 N/A N/A 25424 C+G ...8bbwe\\PhoneExperienceHost.exe N/A |\n| 0 N/A N/A 26464 C+G ...yApp\\MicrosoftSecurityApp.exe N/A |\n| 0 N/A N/A 30740 C+G ...xyewy\\ShellExperienceHost.exe N/A |\n| 0 N/A N/A 35676 C+G ...indows\\System32\\ShellHost.exe N/A |\n+-----------------------------------------------------------------------------------------+\n", "completed": 1789927346.3833725} +{"name": "int8", "pid": 35376, "returncode": 0, "command": ["-m", "scripts.benchmark", "--model", "models/int8", "--output", "artifacts\\eval-corrected\\int8"], "gpu_before": "Mon Sep 21 02:02:26 2026 \n+-----------------------------------------------------------------------------------------+\n| NVIDIA-SMI 616.92 KMD Version: 616.92 CUDA UMD Version: 13.4 |\n+-----------------------------------------+------------------------+----------------------+\n| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |\n| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n| | | MIG M. |\n|=========================================+========================+======================|\n| 0 NVIDIA GeForce RTX 5090 WDDM | 00000000:02:00.0 Off | N/A |\n| 51% 60C P3 64W / 575W | 1788MiB / 32607MiB | 1% Default |\n| | | N/A |\n+-----------------------------------------+------------------------+----------------------+\n\n+-----------------------------------------------------------------------------------------+\n| Processes: |\n| GPU GI CI PID Type Process name GPU Memory |\n| ID ID Usage |\n|=========================================================================================|\n| 0 N/A N/A 3636 C+G ...t\\Edge\\Application\\msedge.exe N/A |\n| 0 N/A N/A 3952 C+G ...yb3d8bbwe\\WindowsTerminal.exe N/A |\n| 0 N/A N/A 13492 C+G C:\\Windows\\explorer.exe N/A |\n| 0 N/A N/A 14084 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 15152 C+G ...2txyewy\\CrossDeviceResume.exe N/A |\n| 0 N/A N/A 16996 C+G ..._cw5n1h2txyewy\\SearchHost.exe N/A |\n| 0 N/A N/A 17024 C+G ...y\\StartMenuExperienceHost.exe N/A |\n| 0 N/A N/A 17796 C+G ...yb3d8bbwe\\Notepad\\Notepad.exe N/A |\n| 0 N/A N/A 20120 C+G ...lus\\logioptionsplus_agent.exe N/A |\n| 0 N/A N/A 20456 C+G ...are\\IntelGraphicsSoftware.exe N/A |\n| 0 N/A N/A 20468 C+G ...ntrolPanel\\SystemSettings.exe N/A |\n| 0 N/A N/A 21128 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 23160 C+G ...MiniMark\\MiniMark.Windows.exe N/A |\n| 0 N/A N/A 24684 C+G ...5n1h2txyewy\\TextInputHost.exe N/A |\n| 0 N/A N/A 25424 C+G ...8bbwe\\PhoneExperienceHost.exe N/A |\n| 0 N/A N/A 26464 C+G ...yApp\\MicrosoftSecurityApp.exe N/A |\n| 0 N/A N/A 30740 C+G ...xyewy\\ShellExperienceHost.exe N/A |\n| 0 N/A N/A 35676 C+G ...indows\\System32\\ShellHost.exe N/A |\n+-----------------------------------------------------------------------------------------+\n", "gpu_after": "Mon Sep 21 02:08:23 2026 \n+-----------------------------------------------------------------------------------------+\n| NVIDIA-SMI 616.92 KMD Version: 616.92 CUDA UMD Version: 13.4 |\n+-----------------------------------------+------------------------+----------------------+\n| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |\n| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n| | | MIG M. |\n|=========================================+========================+======================|\n| 0 NVIDIA GeForce RTX 5090 WDDM | 00000000:02:00.0 Off | N/A |\n| 51% 62C P3 101W / 575W | 1779MiB / 32607MiB | 1% Default |\n| | | N/A |\n+-----------------------------------------+------------------------+----------------------+\n\n+-----------------------------------------------------------------------------------------+\n| Processes: |\n| GPU GI CI PID Type Process name GPU Memory |\n| ID ID Usage |\n|=========================================================================================|\n| 0 N/A N/A 3636 C+G ...t\\Edge\\Application\\msedge.exe N/A |\n| 0 N/A N/A 3952 C+G ...yb3d8bbwe\\WindowsTerminal.exe N/A |\n| 0 N/A N/A 13492 C+G C:\\Windows\\explorer.exe N/A |\n| 0 N/A N/A 14084 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 15152 C+G ...2txyewy\\CrossDeviceResume.exe N/A |\n| 0 N/A N/A 16996 C+G ..._cw5n1h2txyewy\\SearchHost.exe N/A |\n| 0 N/A N/A 17024 C+G ...y\\StartMenuExperienceHost.exe N/A |\n| 0 N/A N/A 17796 C+G ...yb3d8bbwe\\Notepad\\Notepad.exe N/A |\n| 0 N/A N/A 20120 C+G ...lus\\logioptionsplus_agent.exe N/A |\n| 0 N/A N/A 20456 C+G ...are\\IntelGraphicsSoftware.exe N/A |\n| 0 N/A N/A 20468 C+G ...ntrolPanel\\SystemSettings.exe N/A |\n| 0 N/A N/A 21128 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 23160 C+G ...MiniMark\\MiniMark.Windows.exe N/A |\n| 0 N/A N/A 24684 C+G ...5n1h2txyewy\\TextInputHost.exe N/A |\n| 0 N/A N/A 25424 C+G ...8bbwe\\PhoneExperienceHost.exe N/A |\n| 0 N/A N/A 26464 C+G ...yApp\\MicrosoftSecurityApp.exe N/A |\n| 0 N/A N/A 30740 C+G ...xyewy\\ShellExperienceHost.exe N/A |\n| 0 N/A N/A 35676 C+G ...indows\\System32\\ShellHost.exe N/A |\n+-----------------------------------------------------------------------------------------+\n", "completed": 1789927703.6469362} +{"name": "young_bf16", "pid": 31516, "returncode": 0, "command": ["-m", "scripts.benchmark", "--model", "models/bf16", "--output", "artifacts\\eval-corrected\\young_woman\\bf16", "--cases", "benchmarks/young_woman.json"], "gpu_before": "Mon Sep 21 02:08:23 2026 \n+-----------------------------------------------------------------------------------------+\n| NVIDIA-SMI 616.92 KMD Version: 616.92 CUDA UMD Version: 13.4 |\n+-----------------------------------------+------------------------+----------------------+\n| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |\n| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n| | | MIG M. |\n|=========================================+========================+======================|\n| 0 NVIDIA GeForce RTX 5090 WDDM | 00000000:02:00.0 Off | N/A |\n| 51% 62C P3 101W / 575W | 1779MiB / 32607MiB | 1% Default |\n| | | N/A |\n+-----------------------------------------+------------------------+----------------------+\n\n+-----------------------------------------------------------------------------------------+\n| Processes: |\n| GPU GI CI PID Type Process name GPU Memory |\n| ID ID Usage |\n|=========================================================================================|\n| 0 N/A N/A 3636 C+G ...t\\Edge\\Application\\msedge.exe N/A |\n| 0 N/A N/A 3952 C+G ...yb3d8bbwe\\WindowsTerminal.exe N/A |\n| 0 N/A N/A 13492 C+G C:\\Windows\\explorer.exe N/A |\n| 0 N/A N/A 14084 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 15152 C+G ...2txyewy\\CrossDeviceResume.exe N/A |\n| 0 N/A N/A 16996 C+G ..._cw5n1h2txyewy\\SearchHost.exe N/A |\n| 0 N/A N/A 17024 C+G ...y\\StartMenuExperienceHost.exe N/A |\n| 0 N/A N/A 17796 C+G ...yb3d8bbwe\\Notepad\\Notepad.exe N/A |\n| 0 N/A N/A 20120 C+G ...lus\\logioptionsplus_agent.exe N/A |\n| 0 N/A N/A 20456 C+G ...are\\IntelGraphicsSoftware.exe N/A |\n| 0 N/A N/A 20468 C+G ...ntrolPanel\\SystemSettings.exe N/A |\n| 0 N/A N/A 21128 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 23160 C+G ...MiniMark\\MiniMark.Windows.exe N/A |\n| 0 N/A N/A 24684 C+G ...5n1h2txyewy\\TextInputHost.exe N/A |\n| 0 N/A N/A 25424 C+G ...8bbwe\\PhoneExperienceHost.exe N/A |\n| 0 N/A N/A 26464 C+G ...yApp\\MicrosoftSecurityApp.exe N/A |\n| 0 N/A N/A 30740 C+G ...xyewy\\ShellExperienceHost.exe N/A |\n| 0 N/A N/A 35676 C+G ...indows\\System32\\ShellHost.exe N/A |\n+-----------------------------------------------------------------------------------------+\n", "gpu_after": "Mon Sep 21 02:10:47 2026 \n+-----------------------------------------------------------------------------------------+\n| NVIDIA-SMI 616.92 KMD Version: 616.92 CUDA UMD Version: 13.4 |\n+-----------------------------------------+------------------------+----------------------+\n| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |\n| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n| | | MIG M. |\n|=========================================+========================+======================|\n| 0 NVIDIA GeForce RTX 5090 WDDM | 00000000:02:00.0 Off | N/A |\n| 47% 58C P3 62W / 575W | 1784MiB / 32607MiB | 2% Default |\n| | | N/A |\n+-----------------------------------------+------------------------+----------------------+\n\n+-----------------------------------------------------------------------------------------+\n| Processes: |\n| GPU GI CI PID Type Process name GPU Memory |\n| ID ID Usage |\n|=========================================================================================|\n| 0 N/A N/A 3636 C+G ...t\\Edge\\Application\\msedge.exe N/A |\n| 0 N/A N/A 3952 C+G ...yb3d8bbwe\\WindowsTerminal.exe N/A |\n| 0 N/A N/A 13492 C+G C:\\Windows\\explorer.exe N/A |\n| 0 N/A N/A 14084 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 15152 C+G ...2txyewy\\CrossDeviceResume.exe N/A |\n| 0 N/A N/A 16996 C+G ..._cw5n1h2txyewy\\SearchHost.exe N/A |\n| 0 N/A N/A 17024 C+G ...y\\StartMenuExperienceHost.exe N/A |\n| 0 N/A N/A 17796 C+G ...yb3d8bbwe\\Notepad\\Notepad.exe N/A |\n| 0 N/A N/A 20120 C+G ...lus\\logioptionsplus_agent.exe N/A |\n| 0 N/A N/A 20456 C+G ...are\\IntelGraphicsSoftware.exe N/A |\n| 0 N/A N/A 20468 C+G ...ntrolPanel\\SystemSettings.exe N/A |\n| 0 N/A N/A 21128 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 23160 C+G ...MiniMark\\MiniMark.Windows.exe N/A |\n| 0 N/A N/A 24684 C+G ...5n1h2txyewy\\TextInputHost.exe N/A |\n| 0 N/A N/A 25424 C+G ...8bbwe\\PhoneExperienceHost.exe N/A |\n| 0 N/A N/A 26464 C+G ...yApp\\MicrosoftSecurityApp.exe N/A |\n| 0 N/A N/A 30740 C+G ...xyewy\\ShellExperienceHost.exe N/A |\n| 0 N/A N/A 35676 C+G ...indows\\System32\\ShellHost.exe N/A |\n+-----------------------------------------------------------------------------------------+\n", "completed": 1789927847.10015} +{"name": "young_int8", "pid": 5400, "returncode": 0, "command": ["-m", "scripts.benchmark", "--model", "models/int8", "--output", "artifacts\\eval-corrected\\young_woman\\int8", "--cases", "benchmarks/young_woman.json"], "gpu_before": "Mon Sep 21 02:10:47 2026 \n+-----------------------------------------------------------------------------------------+\n| NVIDIA-SMI 616.92 KMD Version: 616.92 CUDA UMD Version: 13.4 |\n+-----------------------------------------+------------------------+----------------------+\n| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |\n| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n| | | MIG M. |\n|=========================================+========================+======================|\n| 0 NVIDIA GeForce RTX 5090 WDDM | 00000000:02:00.0 Off | N/A |\n| 47% 58C P3 62W / 575W | 1784MiB / 32607MiB | 2% Default |\n| | | N/A |\n+-----------------------------------------+------------------------+----------------------+\n\n+-----------------------------------------------------------------------------------------+\n| Processes: |\n| GPU GI CI PID Type Process name GPU Memory |\n| ID ID Usage |\n|=========================================================================================|\n| 0 N/A N/A 3636 C+G ...t\\Edge\\Application\\msedge.exe N/A |\n| 0 N/A N/A 3952 C+G ...yb3d8bbwe\\WindowsTerminal.exe N/A |\n| 0 N/A N/A 13492 C+G C:\\Windows\\explorer.exe N/A |\n| 0 N/A N/A 14084 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 15152 C+G ...2txyewy\\CrossDeviceResume.exe N/A |\n| 0 N/A N/A 16996 C+G ..._cw5n1h2txyewy\\SearchHost.exe N/A |\n| 0 N/A N/A 17024 C+G ...y\\StartMenuExperienceHost.exe N/A |\n| 0 N/A N/A 17796 C+G ...yb3d8bbwe\\Notepad\\Notepad.exe N/A |\n| 0 N/A N/A 20120 C+G ...lus\\logioptionsplus_agent.exe N/A |\n| 0 N/A N/A 20456 C+G ...are\\IntelGraphicsSoftware.exe N/A |\n| 0 N/A N/A 20468 C+G ...ntrolPanel\\SystemSettings.exe N/A |\n| 0 N/A N/A 21128 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 23160 C+G ...MiniMark\\MiniMark.Windows.exe N/A |\n| 0 N/A N/A 24684 C+G ...5n1h2txyewy\\TextInputHost.exe N/A |\n| 0 N/A N/A 25424 C+G ...8bbwe\\PhoneExperienceHost.exe N/A |\n| 0 N/A N/A 26464 C+G ...yApp\\MicrosoftSecurityApp.exe N/A |\n| 0 N/A N/A 30740 C+G ...xyewy\\ShellExperienceHost.exe N/A |\n| 0 N/A N/A 35676 C+G ...indows\\System32\\ShellHost.exe N/A |\n+-----------------------------------------------------------------------------------------+\n", "gpu_after": "Mon Sep 21 02:12:36 2026 \n+-----------------------------------------------------------------------------------------+\n| NVIDIA-SMI 616.92 KMD Version: 616.92 CUDA UMD Version: 13.4 |\n+-----------------------------------------+------------------------+----------------------+\n| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |\n| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n| | | MIG M. |\n|=========================================+========================+======================|\n| 0 NVIDIA GeForce RTX 5090 WDDM | 00000000:02:00.0 Off | N/A |\n| 45% 58C P3 74W / 575W | 1776MiB / 32607MiB | 0% Default |\n| | | N/A |\n+-----------------------------------------+------------------------+----------------------+\n\n+-----------------------------------------------------------------------------------------+\n| Processes: |\n| GPU GI CI PID Type Process name GPU Memory |\n| ID ID Usage |\n|=========================================================================================|\n| 0 N/A N/A 3636 C+G ...t\\Edge\\Application\\msedge.exe N/A |\n| 0 N/A N/A 3952 C+G ...yb3d8bbwe\\WindowsTerminal.exe N/A |\n| 0 N/A N/A 13492 C+G C:\\Windows\\explorer.exe N/A |\n| 0 N/A N/A 14084 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 15152 C+G ...2txyewy\\CrossDeviceResume.exe N/A |\n| 0 N/A N/A 16996 C+G ..._cw5n1h2txyewy\\SearchHost.exe N/A |\n| 0 N/A N/A 17024 C+G ...y\\StartMenuExperienceHost.exe N/A |\n| 0 N/A N/A 17796 C+G ...yb3d8bbwe\\Notepad\\Notepad.exe N/A |\n| 0 N/A N/A 20120 C+G ...lus\\logioptionsplus_agent.exe N/A |\n| 0 N/A N/A 20456 C+G ...are\\IntelGraphicsSoftware.exe N/A |\n| 0 N/A N/A 20468 C+G ...ntrolPanel\\SystemSettings.exe N/A |\n| 0 N/A N/A 21128 C+G ...IA App\\CEF\\NVIDIA Overlay.exe N/A |\n| 0 N/A N/A 23160 C+G ...MiniMark\\MiniMark.Windows.exe N/A |\n| 0 N/A N/A 24684 C+G ...5n1h2txyewy\\TextInputHost.exe N/A |\n| 0 N/A N/A 25424 C+G ...8bbwe\\PhoneExperienceHost.exe N/A |\n| 0 N/A N/A 26464 C+G ...yApp\\MicrosoftSecurityApp.exe N/A |\n| 0 N/A N/A 30740 C+G ...xyewy\\ShellExperienceHost.exe N/A |\n| 0 N/A N/A 35676 C+G ...indows\\System32\\ShellHost.exe N/A |\n+-----------------------------------------------------------------------------------------+\n", "completed": 1789927956.859009} diff --git a/evaluation/report.md b/evaluation/report.md index 16b03443ed5998175c7ff3415c999c237549dc5d..b6aaa073f48b9e0dc5daa0c13c9a53b02501798c 100644 --- a/evaluation/report.md +++ b/evaluation/report.md @@ -1,40 +1,38 @@ -# BF16 / INT8 comparison - -Additional adult Chinese woman portrait pairs are reported separately: [supplement](young_woman/report.md). - -14 paired outputs on NVIDIA GeForce RTX 5090; 1024×1024, 40 steps, offload=model, CFG=1, KV cache enabled. - -Warmup excluded. Pixel metrics measure drift, not semantic quality. The same BF16 portrait is used as input for every editing pair. The suite is small and does not establish a general quality ranking. - -| Case | Seed | BF16 s | INT8 s | BF16 peak GiB | INT8 peak GiB | RGB MAE (white) | -|---|---:|---:|---:|---:|---:|---:| -| portrait | 42 | 29.77 | 19.65 | 16.40 | 22.86 | 0.0134 | -| portrait | 123 | 26.55 | 19.61 | 16.40 | 22.86 | 0.0163 | -| english_text | 42 | 25.95 | 19.42 | 16.41 | 22.86 | 0.0263 | -| english_text | 123 | 25.88 | 19.40 | 16.41 | 22.86 | 0.0118 | -| chinese_text | 42 | 25.47 | 19.54 | 16.41 | 22.86 | 0.0597 | -| chinese_text | 123 | 25.85 | 19.86 | 16.41 | 22.86 | 0.0246 | -| composition | 42 | 25.38 | 19.13 | 16.41 | 22.86 | 0.0227 | -| composition | 123 | 25.35 | 19.30 | 16.41 | 22.86 | 0.0196 | -| texture | 42 | 25.85 | 19.22 | 16.40 | 22.86 | 0.0698 | -| texture | 123 | 25.76 | 19.57 | 16.40 | 22.86 | 0.0168 | -| rgba | 42 | 26.04 | 19.39 | 16.40 | 22.86 | 0.0183 | -| rgba | 123 | 25.07 | 19.29 | 16.40 | 22.86 | 0.0465 | -| edit | 42 | 31.16 | 25.40 | 19.08 | 23.08 | 0.0097 | -| edit | 123 | 31.03 | 25.24 | 19.08 | 23.08 | 0.0039 | - -## Summary - -Mean latency: BF16 26.79s; INT8 20.29s. - -[Interactive-sized side-by-side gallery](comparison.html). Raw data: comparison.csv, bf16/records.jsonl, int8/records.jsonl. Environment records include package versions and loading overhead. - -[Qualitative observations](qualitative.md). - -## Interpretation limits - -- No CLIP, OCR, human preference, FID or benchmark leaderboard score is claimed. -- Peak CUDA allocated/reserved memory excludes other processes and display usage. -- Measured call latency includes transfers; disk writing and model loading are excluded. -- Paired images may diverge with quantization even when both remain plausible. -- Editing and transparency should be inspected in the gallery, including preserved details. +# BF16 / INT8 comparison + +14 paired outputs on NVIDIA GeForce RTX 5090; 1024×1024, 40 steps, offload=model, CFG=1, KV cache enabled. + +Warmup excluded. Pixel metrics measure drift, not semantic quality. The same BF16 portrait is used as input for every editing pair. The suite is small and does not establish a general quality ranking. + +| Case | Seed | BF16 s | INT8 s | BF16 peak GiB | INT8 peak GiB | RGB MAE (white) | +|---|---:|---:|---:|---:|---:|---:| +| portrait | 42 | 28.59 | 19.62 | 16.40 | 9.49 | 0.0134 | +| portrait | 123 | 26.07 | 19.48 | 16.40 | 9.49 | 0.0163 | +| english_text | 42 | 25.42 | 19.54 | 16.41 | 9.50 | 0.0263 | +| english_text | 123 | 25.66 | 19.68 | 16.41 | 9.50 | 0.0118 | +| chinese_text | 42 | 25.62 | 19.61 | 16.41 | 9.50 | 0.0597 | +| chinese_text | 123 | 25.46 | 19.61 | 16.41 | 9.50 | 0.0246 | +| composition | 42 | 25.39 | 19.32 | 16.41 | 9.49 | 0.0227 | +| composition | 123 | 25.48 | 19.15 | 16.41 | 9.49 | 0.0196 | +| texture | 42 | 25.32 | 19.42 | 16.40 | 9.49 | 0.0698 | +| texture | 123 | 25.18 | 19.16 | 16.40 | 9.49 | 0.0168 | +| rgba | 42 | 25.22 | 19.22 | 16.40 | 9.48 | 0.0183 | +| rgba | 123 | 25.54 | 19.22 | 16.40 | 9.48 | 0.0465 | +| edit | 42 | 30.79 | 25.07 | 19.08 | 12.09 | 0.0097 | +| edit | 123 | 30.46 | 24.81 | 19.08 | 12.09 | 0.0039 | + +## Summary + +Mean latency: BF16 26.44s; INT8 20.21s. + +[Interactive-sized side-by-side gallery](comparison.html). Raw data: comparison.csv, bf16/records.jsonl, int8/records.jsonl. Environment records include package versions and loading overhead. + +[Qualitative observations](qualitative.md). + +## Interpretation limits + +- No CLIP, OCR, human preference, FID or benchmark leaderboard score is claimed. +- Peak CUDA allocated/reserved memory excludes other processes and display usage. +- Measured call latency includes transfers; disk writing and model loading are excluded. +- Paired images may diverge with quantization even when both remain plausible. +- Editing and transparency should be inspected in the gallery, including preserved details. diff --git a/evaluation/summary.json b/evaluation/summary.json index be5f5147ae4abd079fda485d09894e70760c85a3..48dbb964cd1b3026ff82af74997333c74a73aab2 100644 --- a/evaluation/summary.json +++ b/evaluation/summary.json @@ -1,14 +1,14 @@ -{ - "pairs": 14, - "cases": 7, - "bf16_mean_seconds": 26.79312295714291, - "int8_mean_seconds": 20.288235278571424, - "bf16_max_allocated_gib": 19.081242561340332, - "int8_max_allocated_gib": 23.080156326293945, - "width": 1024, - "height": 1024, - "steps": 40, - "warmup": true, - "bf16_weight_bytes": 33115613408, - "int8_weight_bytes": 18631752920 +{ + "pairs": 14, + "cases": 7, + "bf16_mean_seconds": 26.4421875142859, + "int8_mean_seconds": 20.208099842857077, + "bf16_max_allocated_gib": 19.081242561340332, + "int8_max_allocated_gib": 12.087220668792725, + "width": 1024, + "height": 1024, + "steps": 40, + "warmup": true, + "bf16_weight_bytes": 33115613408, + "int8_weight_bytes": 18631752920 } \ No newline at end of file diff --git a/evaluation/young_woman/bf16/environment.json b/evaluation/young_woman/bf16/environment.json index c82c09cfaf2ae445853c38a2b63a67133f7826cd..1d43767b51980f6a0509a597b32321aa6478f87e 100644 --- a/evaluation/young_woman/bf16/environment.json +++ b/evaluation/young_woman/bf16/environment.json @@ -1,154 +1,172 @@ -{ - "python": "3.13.5", - "platform": "Windows-11-10.0.26200-SP0", - "gpu": "NVIDIA GeForce RTX 5090", - "cuda": "12.8", - "packages": { - "torch": "2.10.0+cu128", - "torchvision": "0.25.0+cu128", - "diffusers": "0.41.0.dev0", - "transformers": "5.17.0", - "accelerate": "1.15.0", - "bitsandbytes": "0.50.2", - "safetensors": "0.8.0", - "huggingface-hub": "1.32.0", - "tokenizers": "0.23.2", - "numpy": "2.2.6", - "pillow": "12.2.0", - "psutil": "7.0.0" - }, - "model_identity": { - "kind": "bf16", - "base_revision": "b3179ad355be050328e483a9dfdd9e60cd62adfa", - "files": [ - { - "path": "model_index.json", - "size": 447, - "sha256": "cf1ecd104ea090855d60d8cec0895c1e9d6ee41b2f87e231b678beecd1cf7809" - }, - { - "path": "processor/added_tokens.json", - "size": 707, - "sha256": "c0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680" - }, - { - "path": "processor/chat_template.jinja", - "size": 5292, - "sha256": "3636d0f0bd6bef02654cdffdc447b79cb2cef8ab02cc75267345946291a489e4" - }, - { - "path": "processor/merges.txt", - "size": 1671853, - "sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5" - }, - { - "path": "processor/preprocessor_config.json", - "size": 782, - "sha256": "93585062a80db5e8ca038efc7726a3e6411d9db948472d81d63c6303993be8c5" - }, - { - "path": "processor/special_tokens_map.json", - "size": 613, - "sha256": "76862e765266b85aa9459767e33cbaf13970f327a0e88d1c65846c2ddd3a1ecd" - }, - { - "path": "processor/tokenizer.json", - "size": 11422654, - "sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4" - }, - { - "path": "processor/tokenizer_config.json", - "size": 5445, - "sha256": "81ec7bb9530159b326c0bef1d0b6c33d392090524014ea3f0123a3c1eb9c2af5" - }, - { - "path": "processor/video_preprocessor_config.json", - "size": 817, - "sha256": "59c5c9eb52182eb14c06ffb10ca9effd29adce5f238a95de23ca14a38dbd2cb1" - }, - { - "path": "processor/vocab.json", - "size": 2776833, - "sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910" - }, - { - "path": "scheduler/scheduler_config.json", - "size": 485, - "sha256": "5895f3a167c14a967fe9ac70c64924ae5acc79799e0679fd12907e594a713cd1" - }, - { - "path": "text_encoder/config.json", - "size": 1517, - "sha256": "6001331949f7f86ab6d791a80b12246d4f8da5159fa08c3e62368a39f36d63a9" - }, - { - "path": "text_encoder/generation_config.json", - "size": 213, - "sha256": "4d9818c3d27895c0058828a5f68bc7a4de80c3ae1bcdac90936ce24178063f59" - }, - { - "path": "text_encoder/model-00001-of-00004.safetensors", - "size": 4998056552, - "sha256": "dde00291b5f7fb92013895310a3da0ddba78674df9f10d505d375243dc01fc6f" - }, - { - "path": "text_encoder/model-00002-of-00004.safetensors", - "size": 4915962464, - "sha256": "9047faccc0a6d98496a52d55f27be1c94a9c259d1e283fbea0128d054a948d42" - }, - { - "path": "text_encoder/model-00003-of-00004.safetensors", - "size": 4915962496, - "sha256": "8c54187654c0176b73ae73785bf791dc9a14c9df7fb4310083a09d42048cb57e" - }, - { - "path": "text_encoder/model-00004-of-00004.safetensors", - "size": 2704357976, - "sha256": "5311532aaaeae3259eb6a7b2c600636be1159adf7ded35f53579f7d0e7d43cdd" - }, - { - "path": "text_encoder/model.safetensors.index.json", - "size": 67795, - "sha256": "859146bff8db1d617fca8b457a5223edff963bb70076b3645f2189fe0540a147" - }, - { - "path": "transformer/config.json", - "size": 370, - "sha256": "56ae3281c4e6c2d1aa3658252d187488071815fd79bef15808bb0205fc1a2241" - }, - { - "path": "transformer/diffusion_pytorch_model-00001-of-00002.safetensors", - "size": 9968332504, - "sha256": "9e6bc2d641e67bf277895ea8777141044a38f3edb7101bc469b2961dd7c36b4b" - }, - { - "path": "transformer/diffusion_pytorch_model-00002-of-00002.safetensors", - "size": 4261951904, - "sha256": "3aaf234dcbe128530479735854a346b5e3e66283b7c11db56f836bbd1c13ebaa" - }, - { - "path": "transformer/diffusion_pytorch_model.safetensors.index.json", - "size": 30283, - "sha256": "17987f6623b1c814d0ef55a137d99142b7b3b040eb1bf241b5575dd35af803a2" - }, - { - "path": "vae/config.json", - "size": 2079, - "sha256": "9785d527b278cb8b210e9f48a8028d92a4190968ce7e24c8fc85d9d1b82f6ba2" - }, - { - "path": "vae/diffusion_pytorch_model.safetensors", - "size": 1350989512, - "sha256": "a07a1b7c4ee2966a1b3bdc37de9b4f983d56937e46619f709a80b6e490675417" - } - ], - "fingerprint": "74c96a68092fdb1f3eed2063bcfba8fd99380ada6234e405e646681f35fb6984" - }, - "model": "D:\\Git\\Qwen-Image-2.1\\models\\bf16", - "load_seconds": 10.878222299999834, - "load_peak_allocated_bytes": 0, - "offload": "model", - "warmup": true, - "generator_device": "cpu", - "cases_sha256": "0d1d27b403e6c6685d652ef5553978fc9ac8af9b1d13c5c662449d0a8be74847" +{ + "python": "3.13.5", + "platform": "Windows-11-10.0.26200-SP0", + "gpu": "NVIDIA GeForce RTX 5090", + "cuda": "12.8", + "packages": { + "torch": "2.10.0+cu128", + "torchvision": "0.25.0+cu128", + "diffusers": "0.41.0.dev0", + "transformers": "5.17.0", + "accelerate": "1.15.0", + "bitsandbytes": "0.50.2", + "safetensors": "0.8.0", + "huggingface-hub": "1.32.0", + "tokenizers": "0.23.2", + "numpy": "2.2.6", + "pillow": "12.2.0", + "psutil": "7.0.0" + }, + "pid": 35212, + "before_load_memory": { + "allocated_bytes": 0, + "reserved_bytes": 0, + "cuda_free_bytes": 32496418816, + "cuda_total_bytes": 34162016256 + }, + "offload_aux_fix": true, + "benchmark_sha256": "39544666c2e94a0d56de5057c7ab1e88df90dd5ba4d2cba2428c11f9d7c4d9fb", + "runtime_helper_sha256": "26db92afa7d5c72324080480abe52c8e677b899844b369d99ac895e9bb1fb71c", + "gpu_before": "name, driver_version, memory.used [MiB], memory.free [MiB]\nNVIDIA GeForce RTX 5090, 616.92, 2210 MiB, 29978 MiB\n", + "gpu_processes_before": "pid, process_name, used_gpu_memory [MiB]\n15152, C:\\Windows\\SystemApps\\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\\CrossDeviceResume.exe, [N/A]\n13492, C:\\Windows\\explorer.exe, [N/A]\n17024, C:\\Windows\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\StartMenuExperienceHost.exe, [N/A]\n16996, C:\\Windows\\SystemApps\\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\\SearchHost.exe, [N/A]\n21128, C:\\Program Files\\NVIDIA Corporation\\NVIDIA App\\CEF\\NVIDIA Overlay.exe, [N/A]\n14084, C:\\Program Files\\NVIDIA Corporation\\NVIDIA App\\CEF\\NVIDIA Overlay.exe, [N/A]\n20120, C:\\Program Files\\LogiOptionsPlus\\logioptionsplus_agent.exe, [N/A]\n24684, C:\\Windows\\SystemApps\\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\\TextInputHost.exe, [N/A]\n25424, C:\\Program Files\\WindowsApps\\Microsoft.YourPhone_1.26072.255.0_x64__8wekyb3d8bbwe\\PhoneExperienceHost.exe, [N/A]\n26464, C:\\Program Files\\WindowsApps\\Microsoft.6365217CE6EB4_102.2504.16004.0_x64__8wekyb3d8bbwe\\MicrosoftSecurityApp\\MicrosoftSecurityApp.exe, [N/A]\n20456, C:\\Program Files\\Intel\\Intel Graphics Software\\IntelGraphicsSoftware.exe, [N/A]\n20468, C:\\Windows\\ImmersiveControlPanel\\SystemSettings.exe, [N/A]\n30740, C:\\Windows\\SystemApps\\ShellExperienceHost_cw5n1h2txyewy\\ShellExperienceHost.exe, [N/A]\n23160, C:\\Users\\Admin\\AppData\\Local\\Programs\\MiniMark\\MiniMark.Windows.exe, [N/A]\n17796, C:\\Program Files\\WindowsApps\\Microsoft.WindowsNotepad_11.2607.14.0_x64__8wekyb3d8bbwe\\Notepad\\Notepad.exe, [N/A]\n3952, C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_1.24.11911.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe, [N/A]\n3636, C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe, [N/A]\n35676, C:\\Windows\\System32\\ShellHost.exe, [N/A]\n35212, C:\\Python313\\python.exe, [N/A]\n", + "model_identity": { + "kind": "bf16", + "base_revision": "b3179ad355be050328e483a9dfdd9e60cd62adfa", + "files": [ + { + "path": "model_index.json", + "size": 447, + "sha256": "cf1ecd104ea090855d60d8cec0895c1e9d6ee41b2f87e231b678beecd1cf7809" + }, + { + "path": "processor/added_tokens.json", + "size": 707, + "sha256": "c0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680" + }, + { + "path": "processor/chat_template.jinja", + "size": 5292, + "sha256": "3636d0f0bd6bef02654cdffdc447b79cb2cef8ab02cc75267345946291a489e4" + }, + { + "path": "processor/merges.txt", + "size": 1671853, + "sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5" + }, + { + "path": "processor/preprocessor_config.json", + "size": 782, + "sha256": "93585062a80db5e8ca038efc7726a3e6411d9db948472d81d63c6303993be8c5" + }, + { + "path": "processor/special_tokens_map.json", + "size": 613, + "sha256": "76862e765266b85aa9459767e33cbaf13970f327a0e88d1c65846c2ddd3a1ecd" + }, + { + "path": "processor/tokenizer.json", + "size": 11422654, + "sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4" + }, + { + "path": "processor/tokenizer_config.json", + "size": 5445, + "sha256": "81ec7bb9530159b326c0bef1d0b6c33d392090524014ea3f0123a3c1eb9c2af5" + }, + { + "path": "processor/video_preprocessor_config.json", + "size": 817, + "sha256": "59c5c9eb52182eb14c06ffb10ca9effd29adce5f238a95de23ca14a38dbd2cb1" + }, + { + "path": "processor/vocab.json", + "size": 2776833, + "sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910" + }, + { + "path": "scheduler/scheduler_config.json", + "size": 485, + "sha256": "5895f3a167c14a967fe9ac70c64924ae5acc79799e0679fd12907e594a713cd1" + }, + { + "path": "text_encoder/config.json", + "size": 1517, + "sha256": "6001331949f7f86ab6d791a80b12246d4f8da5159fa08c3e62368a39f36d63a9" + }, + { + "path": "text_encoder/generation_config.json", + "size": 213, + "sha256": "4d9818c3d27895c0058828a5f68bc7a4de80c3ae1bcdac90936ce24178063f59" + }, + { + "path": "text_encoder/model-00001-of-00004.safetensors", + "size": 4998056552, + "sha256": "dde00291b5f7fb92013895310a3da0ddba78674df9f10d505d375243dc01fc6f" + }, + { + "path": "text_encoder/model-00002-of-00004.safetensors", + "size": 4915962464, + "sha256": "9047faccc0a6d98496a52d55f27be1c94a9c259d1e283fbea0128d054a948d42" + }, + { + "path": "text_encoder/model-00003-of-00004.safetensors", + "size": 4915962496, + "sha256": "8c54187654c0176b73ae73785bf791dc9a14c9df7fb4310083a09d42048cb57e" + }, + { + "path": "text_encoder/model-00004-of-00004.safetensors", + "size": 2704357976, + "sha256": "5311532aaaeae3259eb6a7b2c600636be1159adf7ded35f53579f7d0e7d43cdd" + }, + { + "path": "text_encoder/model.safetensors.index.json", + "size": 67795, + "sha256": "859146bff8db1d617fca8b457a5223edff963bb70076b3645f2189fe0540a147" + }, + { + "path": "transformer/config.json", + "size": 370, + "sha256": "56ae3281c4e6c2d1aa3658252d187488071815fd79bef15808bb0205fc1a2241" + }, + { + "path": "transformer/diffusion_pytorch_model-00001-of-00002.safetensors", + "size": 9968332504, + "sha256": "9e6bc2d641e67bf277895ea8777141044a38f3edb7101bc469b2961dd7c36b4b" + }, + { + "path": "transformer/diffusion_pytorch_model-00002-of-00002.safetensors", + "size": 4261951904, + "sha256": "3aaf234dcbe128530479735854a346b5e3e66283b7c11db56f836bbd1c13ebaa" + }, + { + "path": "transformer/diffusion_pytorch_model.safetensors.index.json", + "size": 30283, + "sha256": "17987f6623b1c814d0ef55a137d99142b7b3b040eb1bf241b5575dd35af803a2" + }, + { + "path": "vae/config.json", + "size": 2079, + "sha256": "9785d527b278cb8b210e9f48a8028d92a4190968ce7e24c8fc85d9d1b82f6ba2" + }, + { + "path": "vae/diffusion_pytorch_model.safetensors", + "size": 1350989512, + "sha256": "a07a1b7c4ee2966a1b3bdc37de9b4f983d56937e46619f709a80b6e490675417" + } + ], + "fingerprint": "74c96a68092fdb1f3eed2063bcfba8fd99380ada6234e405e646681f35fb6984" + }, + "model": "D:\\Git\\Qwen-Image-2.1\\models\\bf16", + "load_seconds": 10.935269800000242, + "load_peak_allocated_bytes": 0, + "offload": "model", + "warmup": true, + "after_load_memory": { + "allocated_bytes": 0, + "reserved_bytes": 0, + "cuda_free_bytes": 32496418816, + "cuda_total_bytes": 34162016256 + }, + "generator_device": "cpu", + "cases_sha256": "0d1d27b403e6c6685d652ef5553978fc9ac8af9b1d13c5c662449d0a8be74847" } \ No newline at end of file diff --git a/evaluation/young_woman/bf16/records.jsonl b/evaluation/young_woman/bf16/records.jsonl index 320ad532e7a5c37a1867af0dc9c307be2bf7cf6b..3da53677f6313d91bdb0cb9ba079fcdc9c6eb2fb 100644 --- a/evaluation/young_woman/bf16/records.jsonl +++ b/evaluation/young_woman/bf16/records.jsonl @@ -1,2 +1,2 @@ -{"case_id": "young_chinese_woman", "category": "adult_portrait", "prompt": "一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 29.499574199999188, "peak_allocated_bytes": 17657086464, "peak_reserved_bytes": 17846763520, "process_rss_after_bytes": 42507694080, "image": "young_chinese_woman-s42.png", "image_sha256": "00716ad4721f585be4b0bf0daf2413f4ab92b795f1eb4d08b4f1ecc604b075b8", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.04165172576904297} -{"case_id": "young_chinese_woman", "category": "adult_portrait", "prompt": "一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 27.529608899999403, "peak_allocated_bytes": 17657086464, "peak_reserved_bytes": 17846763520, "process_rss_after_bytes": 45226713088, "image": "young_chinese_woman-s123.png", "image_sha256": "a2f28b40c897335595e496d23e490278c53b2f916597a4ef0fbb95a9f2700096", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 253, "alpha_max": 255, "alpha_nonopaque_fraction": 0.030264854431152344} +{"case_id": "young_chinese_woman", "category": "adult_portrait", "prompt": "一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 25165824, "cuda_free_bytes": 32320258048, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 96468992, "cuda_free_bytes": 32248954880, "cuda_total_bytes": 34162016256}, "seconds": 28.578781700000036, "peak_allocated_bytes": 17657086464, "peak_reserved_bytes": 17846763520, "process_rss_after_bytes": 42240585728, "image": "young_chinese_woman-s42.png", "image_sha256": "00716ad4721f585be4b0bf0daf2413f4ab92b795f1eb4d08b4f1ecc604b075b8", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.04165172576904297} +{"case_id": "young_chinese_woman", "category": "adult_portrait", "prompt": "一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 23068672, "cuda_free_bytes": 32322355200, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 96468992, "cuda_free_bytes": 32248954880, "cuda_total_bytes": 34162016256}, "seconds": 26.632947500000228, "peak_allocated_bytes": 17657086464, "peak_reserved_bytes": 17846763520, "process_rss_after_bytes": 45742018560, "image": "young_chinese_woman-s123.png", "image_sha256": "a2f28b40c897335595e496d23e490278c53b2f916597a4ef0fbb95a9f2700096", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 253, "alpha_max": 255, "alpha_nonopaque_fraction": 0.030264854431152344} diff --git a/evaluation/young_woman/comparison.csv b/evaluation/young_woman/comparison.csv index 40f435b00b5dbf1e90ff4882942fdb5708285dea..dda1638fff9e21c4c5931fc7c07c9a73c4f1b2c6 100644 --- a/evaluation/young_woman/comparison.csv +++ b/evaluation/young_woman/comparison.csv @@ -1,3 +1,3 @@ -case_id,seed,bf16_seconds,int8_seconds,speed_ratio_bf16_over_int8,bf16_peak_allocated_gib,int8_peak_allocated_gib,rgb_mae_white,rgb_psnr_white_db,alpha_mae -young_chinese_woman,42,29.499574199999188,20.297709499999655,1.4533449796391897,16.444443225860596,22.86260986328125,0.010024778544902802,31.41698381919181,0.00012096697173547 -young_chinese_woman,123,27.529608899999403,20.03102880000006,1.3743482261879292,16.444443225860596,22.862611770629883,0.00630606384947896,35.93723710368233,9.255874465452507e-05 +case_id,seed,bf16_seconds,int8_seconds,speed_ratio_bf16_over_int8,bf16_peak_allocated_gib,int8_peak_allocated_gib,rgb_mae_white,rgb_psnr_white_db,alpha_mae +young_chinese_woman,42,28.578781700000036,19.578480000000127,1.4597038023380697,16.444443225860596,9.529117107391357,0.010024778544902802,31.41698381919181,0.00012096697173547 +young_chinese_woman,123,26.632947500000228,19.441281499999604,1.3699172814302787,16.444443225860596,9.529117107391357,0.00630606384947896,35.93723710368233,9.255874465452507e-05 diff --git a/evaluation/young_woman/comparison.html b/evaluation/young_woman/comparison.html index 27e9442392c13db85158f21a00914174e07d4adb..ef005dd0e6472d98b852c950095a65ac3a081504 100644 --- a/evaluation/young_woman/comparison.html +++ b/evaluation/young_woman/comparison.html @@ -1,5 +1,5 @@ -BF16 / INT8 comparison - -

BF16 / INT8 comparison

Left: BF16. Right: saved INT8. Identical settings and seeds. Alpha displayed over checkerboard.

-

young_chinese_woman — seed 42

一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。
BF16INT8
-

young_chinese_woman — seed 123

一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。
BF16INT8
\ No newline at end of file +BF16 / INT8 comparison + +

BF16 / INT8 comparison

Left: BF16. Right: saved INT8. Identical settings and seeds. Alpha displayed over checkerboard.

+

young_chinese_woman — seed 42

一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。
BF16INT8
+

young_chinese_woman — seed 123

一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。
BF16INT8
\ No newline at end of file diff --git a/evaluation/young_woman/int8/environment.json b/evaluation/young_woman/int8/environment.json index 9647d54ff66ad2f0eb76c0f5062400e895e8bfe9..71bd678b4942459e84e15d1220c5d390c2232f08 100644 --- a/evaluation/young_woman/int8/environment.json +++ b/evaluation/young_woman/int8/environment.json @@ -1,149 +1,167 @@ -{ - "python": "3.13.5", - "platform": "Windows-11-10.0.26200-SP0", - "gpu": "NVIDIA GeForce RTX 5090", - "cuda": "12.8", - "packages": { - "torch": "2.10.0+cu128", - "torchvision": "0.25.0+cu128", - "diffusers": "0.41.0.dev0", - "transformers": "5.17.0", - "accelerate": "1.15.0", - "bitsandbytes": "0.50.2", - "safetensors": "0.8.0", - "huggingface-hub": "1.32.0", - "tokenizers": "0.23.2", - "numpy": "2.2.6", - "pillow": "12.2.0", - "psutil": "7.0.0" - }, - "model_identity": { - "kind": "int8", - "base_revision": "b3179ad355be050328e483a9dfdd9e60cd62adfa", - "files": [ - { - "path": "model_index.json", - "size": 447, - "sha256": "cf1ecd104ea090855d60d8cec0895c1e9d6ee41b2f87e231b678beecd1cf7809" - }, - { - "path": "processor/added_tokens.json", - "size": 707, - "sha256": "c0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680" - }, - { - "path": "processor/chat_template.jinja", - "size": 5292, - "sha256": "3636d0f0bd6bef02654cdffdc447b79cb2cef8ab02cc75267345946291a489e4" - }, - { - "path": "processor/merges.txt", - "size": 1671853, - "sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5" - }, - { - "path": "processor/preprocessor_config.json", - "size": 782, - "sha256": "93585062a80db5e8ca038efc7726a3e6411d9db948472d81d63c6303993be8c5" - }, - { - "path": "processor/special_tokens_map.json", - "size": 613, - "sha256": "76862e765266b85aa9459767e33cbaf13970f327a0e88d1c65846c2ddd3a1ecd" - }, - { - "path": "processor/tokenizer.json", - "size": 11422654, - "sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4" - }, - { - "path": "processor/tokenizer_config.json", - "size": 5445, - "sha256": "81ec7bb9530159b326c0bef1d0b6c33d392090524014ea3f0123a3c1eb9c2af5" - }, - { - "path": "processor/video_preprocessor_config.json", - "size": 817, - "sha256": "59c5c9eb52182eb14c06ffb10ca9effd29adce5f238a95de23ca14a38dbd2cb1" - }, - { - "path": "processor/vocab.json", - "size": 2776833, - "sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910" - }, - { - "path": "scheduler/scheduler_config.json", - "size": 485, - "sha256": "5895f3a167c14a967fe9ac70c64924ae5acc79799e0679fd12907e594a713cd1" - }, - { - "path": "text_encoder/config.json", - "size": 2487, - "sha256": "da4f7a17ffbcaef0d09f9c31cab01d77e2c25905676818279254b5a8bb371150" - }, - { - "path": "text_encoder/generation_config.json", - "size": 467, - "sha256": "7dc6dd5e325f76cd2f75d428d41049e1f8ac0c4775d0800c0885b88bfe3f4c7f" - }, - { - "path": "text_encoder/model-00001-of-00003.safetensors", - "size": 4999822155, - "sha256": "9b8ae3bd2a1e4884abc48c659212427bbbae06fb1bc17e7173583704fc0f6bdd" - }, - { - "path": "text_encoder/model-00002-of-00003.safetensors", - "size": 4996432636, - "sha256": "d28d1a8b3994a43582acc5e2da15ff38b632fae1466f41bc7710d27ec170aa9e" - }, - { - "path": "text_encoder/model-00003-of-00003.safetensors", - "size": 27729689, - "sha256": "5896ffa9e2b2a52f9d496755fde050306f21c449bd66c2526b40979033c6e244" - }, - { - "path": "text_encoder/model.safetensors.index.json", - "size": 139297, - "sha256": "d3fc335d23047182f40d458efec86a4b187a766e0d1639426b6a9b7ab5b1ab8a" - }, - { - "path": "transformer/config.json", - "size": 1297, - "sha256": "1a941b5389b5985cd16314641d708a1333a65748bcd3f74b1b8b1cd74b828202" - }, - { - "path": "transformer/diffusion_pytorch_model-00001-of-00002.safetensors", - "size": 4989447305, - "sha256": "0d77daaa3129860f026567e0178fec4ed776f3cf2463da76a0823b9c381c3468" - }, - { - "path": "transformer/diffusion_pytorch_model-00002-of-00002.safetensors", - "size": 2267331623, - "sha256": "5e1b8ee3917833687adb662830438dc612ace2cf4bff7b8898515184a888fde1" - }, - { - "path": "transformer/diffusion_pytorch_model.safetensors.index.json", - "size": 77984, - "sha256": "96963ae89098cbfdb83fb09bfe0b91e34d8dfe812c65da5e1fbe452878a79ebe" - }, - { - "path": "vae/config.json", - "size": 2079, - "sha256": "9785d527b278cb8b210e9f48a8028d92a4190968ce7e24c8fc85d9d1b82f6ba2" - }, - { - "path": "vae/diffusion_pytorch_model.safetensors", - "size": 1350989512, - "sha256": "a07a1b7c4ee2966a1b3bdc37de9b4f983d56937e46619f709a80b6e490675417" - } - ], - "fingerprint": "df2eb85e5f936d6b172d71605502055db9be34cb8590447488ce60f7e9d8dc22" - }, - "model": "D:\\Git\\Qwen-Image-2.1\\models\\int8", - "load_seconds": 15.62595229999988, - "load_peak_allocated_bytes": 17281157120, - "offload": "model", - "warmup": true, - "generator_device": "cpu", - "cases_sha256": "0d1d27b403e6c6685d652ef5553978fc9ac8af9b1d13c5c662449d0a8be74847" +{ + "python": "3.13.5", + "platform": "Windows-11-10.0.26200-SP0", + "gpu": "NVIDIA GeForce RTX 5090", + "cuda": "12.8", + "packages": { + "torch": "2.10.0+cu128", + "torchvision": "0.25.0+cu128", + "diffusers": "0.41.0.dev0", + "transformers": "5.17.0", + "accelerate": "1.15.0", + "bitsandbytes": "0.50.2", + "safetensors": "0.8.0", + "huggingface-hub": "1.32.0", + "tokenizers": "0.23.2", + "numpy": "2.2.6", + "pillow": "12.2.0", + "psutil": "7.0.0" + }, + "pid": 11368, + "before_load_memory": { + "allocated_bytes": 0, + "reserved_bytes": 0, + "cuda_free_bytes": 32496418816, + "cuda_total_bytes": 34162016256 + }, + "offload_aux_fix": true, + "benchmark_sha256": "39544666c2e94a0d56de5057c7ab1e88df90dd5ba4d2cba2428c11f9d7c4d9fb", + "runtime_helper_sha256": "26db92afa7d5c72324080480abe52c8e677b899844b369d99ac895e9bb1fb71c", + "gpu_before": "name, driver_version, memory.used [MiB], memory.free [MiB]\nNVIDIA GeForce RTX 5090, 616.92, 2215 MiB, 29973 MiB\n", + "gpu_processes_before": "pid, process_name, used_gpu_memory [MiB]\n15152, C:\\Windows\\SystemApps\\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\\CrossDeviceResume.exe, [N/A]\n13492, C:\\Windows\\explorer.exe, [N/A]\n17024, C:\\Windows\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\StartMenuExperienceHost.exe, [N/A]\n16996, C:\\Windows\\SystemApps\\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\\SearchHost.exe, [N/A]\n21128, C:\\Program Files\\NVIDIA Corporation\\NVIDIA App\\CEF\\NVIDIA Overlay.exe, [N/A]\n14084, C:\\Program Files\\NVIDIA Corporation\\NVIDIA App\\CEF\\NVIDIA Overlay.exe, [N/A]\n20120, C:\\Program Files\\LogiOptionsPlus\\logioptionsplus_agent.exe, [N/A]\n24684, C:\\Windows\\SystemApps\\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\\TextInputHost.exe, [N/A]\n25424, C:\\Program Files\\WindowsApps\\Microsoft.YourPhone_1.26072.255.0_x64__8wekyb3d8bbwe\\PhoneExperienceHost.exe, [N/A]\n26464, C:\\Program Files\\WindowsApps\\Microsoft.6365217CE6EB4_102.2504.16004.0_x64__8wekyb3d8bbwe\\MicrosoftSecurityApp\\MicrosoftSecurityApp.exe, [N/A]\n20456, C:\\Program Files\\Intel\\Intel Graphics Software\\IntelGraphicsSoftware.exe, [N/A]\n20468, C:\\Windows\\ImmersiveControlPanel\\SystemSettings.exe, [N/A]\n30740, C:\\Windows\\SystemApps\\ShellExperienceHost_cw5n1h2txyewy\\ShellExperienceHost.exe, [N/A]\n23160, C:\\Users\\Admin\\AppData\\Local\\Programs\\MiniMark\\MiniMark.Windows.exe, [N/A]\n17796, C:\\Program Files\\WindowsApps\\Microsoft.WindowsNotepad_11.2607.14.0_x64__8wekyb3d8bbwe\\Notepad\\Notepad.exe, [N/A]\n3952, C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_1.24.11911.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe, [N/A]\n3636, C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe, [N/A]\n35676, C:\\Windows\\System32\\ShellHost.exe, [N/A]\n11368, C:\\Python313\\python.exe, [N/A]\n", + "model_identity": { + "kind": "int8", + "base_revision": "b3179ad355be050328e483a9dfdd9e60cd62adfa", + "files": [ + { + "path": "model_index.json", + "size": 447, + "sha256": "cf1ecd104ea090855d60d8cec0895c1e9d6ee41b2f87e231b678beecd1cf7809" + }, + { + "path": "processor/added_tokens.json", + "size": 707, + "sha256": "c0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680" + }, + { + "path": "processor/chat_template.jinja", + "size": 5292, + "sha256": "3636d0f0bd6bef02654cdffdc447b79cb2cef8ab02cc75267345946291a489e4" + }, + { + "path": "processor/merges.txt", + "size": 1671853, + "sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5" + }, + { + "path": "processor/preprocessor_config.json", + "size": 782, + "sha256": "93585062a80db5e8ca038efc7726a3e6411d9db948472d81d63c6303993be8c5" + }, + { + "path": "processor/special_tokens_map.json", + "size": 613, + "sha256": "76862e765266b85aa9459767e33cbaf13970f327a0e88d1c65846c2ddd3a1ecd" + }, + { + "path": "processor/tokenizer.json", + "size": 11422654, + "sha256": "aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4" + }, + { + "path": "processor/tokenizer_config.json", + "size": 5445, + "sha256": "81ec7bb9530159b326c0bef1d0b6c33d392090524014ea3f0123a3c1eb9c2af5" + }, + { + "path": "processor/video_preprocessor_config.json", + "size": 817, + "sha256": "59c5c9eb52182eb14c06ffb10ca9effd29adce5f238a95de23ca14a38dbd2cb1" + }, + { + "path": "processor/vocab.json", + "size": 2776833, + "sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910" + }, + { + "path": "scheduler/scheduler_config.json", + "size": 485, + "sha256": "5895f3a167c14a967fe9ac70c64924ae5acc79799e0679fd12907e594a713cd1" + }, + { + "path": "text_encoder/config.json", + "size": 2487, + "sha256": "da4f7a17ffbcaef0d09f9c31cab01d77e2c25905676818279254b5a8bb371150" + }, + { + "path": "text_encoder/generation_config.json", + "size": 467, + "sha256": "7dc6dd5e325f76cd2f75d428d41049e1f8ac0c4775d0800c0885b88bfe3f4c7f" + }, + { + "path": "text_encoder/model-00001-of-00003.safetensors", + "size": 4999822155, + "sha256": "9b8ae3bd2a1e4884abc48c659212427bbbae06fb1bc17e7173583704fc0f6bdd" + }, + { + "path": "text_encoder/model-00002-of-00003.safetensors", + "size": 4996432636, + "sha256": "d28d1a8b3994a43582acc5e2da15ff38b632fae1466f41bc7710d27ec170aa9e" + }, + { + "path": "text_encoder/model-00003-of-00003.safetensors", + "size": 27729689, + "sha256": "5896ffa9e2b2a52f9d496755fde050306f21c449bd66c2526b40979033c6e244" + }, + { + "path": "text_encoder/model.safetensors.index.json", + "size": 139297, + "sha256": "d3fc335d23047182f40d458efec86a4b187a766e0d1639426b6a9b7ab5b1ab8a" + }, + { + "path": "transformer/config.json", + "size": 1297, + "sha256": "1a941b5389b5985cd16314641d708a1333a65748bcd3f74b1b8b1cd74b828202" + }, + { + "path": "transformer/diffusion_pytorch_model-00001-of-00002.safetensors", + "size": 4989447305, + "sha256": "0d77daaa3129860f026567e0178fec4ed776f3cf2463da76a0823b9c381c3468" + }, + { + "path": "transformer/diffusion_pytorch_model-00002-of-00002.safetensors", + "size": 2267331623, + "sha256": "5e1b8ee3917833687adb662830438dc612ace2cf4bff7b8898515184a888fde1" + }, + { + "path": "transformer/diffusion_pytorch_model.safetensors.index.json", + "size": 77984, + "sha256": "96963ae89098cbfdb83fb09bfe0b91e34d8dfe812c65da5e1fbe452878a79ebe" + }, + { + "path": "vae/config.json", + "size": 2079, + "sha256": "9785d527b278cb8b210e9f48a8028d92a4190968ce7e24c8fc85d9d1b82f6ba2" + }, + { + "path": "vae/diffusion_pytorch_model.safetensors", + "size": 1350989512, + "sha256": "a07a1b7c4ee2966a1b3bdc37de9b4f983d56937e46619f709a80b6e490675417" + } + ], + "fingerprint": "df2eb85e5f936d6b172d71605502055db9be34cb8590447488ce60f7e9d8dc22" + }, + "model": "D:\\Git\\Qwen-Image-2.1\\models\\int8", + "load_seconds": 16.27968139999939, + "load_peak_allocated_bytes": 10023884288, + "offload": "model", + "warmup": true, + "after_load_memory": { + "allocated_bytes": 0, + "reserved_bytes": 0, + "cuda_free_bytes": 32496418816, + "cuda_total_bytes": 34162016256 + }, + "generator_device": "cpu", + "cases_sha256": "0d1d27b403e6c6685d652ef5553978fc9ac8af9b1d13c5c662449d0a8be74847" } \ No newline at end of file diff --git a/evaluation/young_woman/int8/records.jsonl b/evaluation/young_woman/int8/records.jsonl index f19ae3b7bd28805b95ccfada27e3e6b93794c9d7..58bea47e5106738a36bc570a3d88aea13ef01578 100644 --- a/evaluation/young_woman/int8/records.jsonl +++ b/evaluation/young_woman/int8/records.jsonl @@ -1,2 +1,2 @@ -{"case_id": "young_chinese_woman", "category": "adult_portrait", "prompt": "一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 20.297709499999655, "peak_allocated_bytes": 24548540416, "peak_reserved_bytes": 24622661632, "process_rss_after_bytes": 25040289792, "image": "young_chinese_woman-s42.png", "image_sha256": "5ffeb0f35bf0115ba2dd7ea9a98def2a97f280c67c27a24c9d1110e6501256a6", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.041473388671875} -{"case_id": "young_chinese_woman", "category": "adult_portrait", "prompt": "一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "seconds": 20.03102880000006, "peak_allocated_bytes": 24548542464, "peak_reserved_bytes": 24622661632, "process_rss_after_bytes": 25673326592, "image": "young_chinese_woman-s123.png", "image_sha256": "350e800c857e0c6e0836cd7fb222cd9b60c10a34f29f15b1f8ffa71e9f986f64", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 253, "alpha_max": 255, "alpha_nonopaque_fraction": 0.031103134155273438} +{"case_id": "young_chinese_woman", "category": "adult_portrait", "prompt": "一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。", "seed": 42, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 27262976, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 100663296, "cuda_free_bytes": 32234274816, "cuda_total_bytes": 34162016256}, "seconds": 19.578480000000127, "peak_allocated_bytes": 10231811584, "peak_reserved_bytes": 10370416640, "process_rss_after_bytes": 22777311232, "image": "young_chinese_woman-s42.png", "image_sha256": "5ffeb0f35bf0115ba2dd7ea9a98def2a97f280c67c27a24c9d1110e6501256a6", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 252, "alpha_max": 255, "alpha_nonopaque_fraction": 0.041473388671875} +{"case_id": "young_chinese_woman", "category": "adult_portrait", "prompt": "一张写实摄影风格的中国年轻成年女性肖像,人物明确为25岁成年人。黑色及肩直发,穿着米白色圆领针织衫,胸部以上构图,正面看向镜头,神情自然放松,轻微微笑。窗边柔和的自然日光,浅灰色简洁背景,真实自然的皮肤纹理和少量雀斑,淡妆,不过度磨皮。85mm人像摄影,浅景深,色彩自然,画面中没有文字。", "seed": 123, "width": 1024, "height": 1024, "steps": 40, "cfg": 1.0, "kv_cache": true, "offload": "model", "input_sha256": null, "before_memory": {"allocated_bytes": 13239296, "reserved_bytes": 27262976, "cuda_free_bytes": 32307675136, "cuda_total_bytes": 34162016256}, "after_memory": {"allocated_bytes": 13239296, "reserved_bytes": 98566144, "cuda_free_bytes": 32236371968, "cuda_total_bytes": 34162016256}, "seconds": 19.441281499999604, "peak_allocated_bytes": 10231811584, "peak_reserved_bytes": 10370416640, "process_rss_after_bytes": 23020806144, "image": "young_chinese_woman-s123.png", "image_sha256": "350e800c857e0c6e0836cd7fb222cd9b60c10a34f29f15b1f8ffa71e9f986f64", "image_mode": "RGBA", "actual_size": [1024, 1024], "alpha_min": 253, "alpha_max": 255, "alpha_nonopaque_fraction": 0.031103134155273438} diff --git a/evaluation/young_woman/report.md b/evaluation/young_woman/report.md index 4a098ffbd37b5c89480e29a365b858374d3d6d1a..e7f426ace3272c7bd6ba945e4689243304dd2462 100644 --- a/evaluation/young_woman/report.md +++ b/evaluation/young_woman/report.md @@ -1,26 +1,26 @@ -# BF16 / INT8 comparison - -2 paired outputs on NVIDIA GeForce RTX 5090; 1024×1024, 40 steps, offload=model, CFG=1, KV cache enabled. - -Warmup excluded. Pixel metrics measure drift, not semantic quality. The suite is small and does not establish a general quality ranking. - -| Case | Seed | BF16 s | INT8 s | BF16 peak GiB | INT8 peak GiB | RGB MAE (white) | -|---|---:|---:|---:|---:|---:|---:| -| young_chinese_woman | 42 | 29.50 | 20.30 | 16.44 | 22.86 | 0.0100 | -| young_chinese_woman | 123 | 27.53 | 20.03 | 16.44 | 22.86 | 0.0063 | - -## Summary - -Mean latency: BF16 28.51s; INT8 20.16s. - -[Interactive-sized side-by-side gallery](comparison.html). Raw data: comparison.csv, bf16/records.jsonl, int8/records.jsonl. Environment records include package versions and loading overhead. - -[Qualitative observations](qualitative.md). - -## Interpretation limits - -- No CLIP, OCR, human preference, FID or benchmark leaderboard score is claimed. -- Peak CUDA allocated/reserved memory excludes other processes and display usage. -- Measured call latency includes transfers; disk writing and model loading are excluded. -- Paired images may diverge with quantization even when both remain plausible. -- Editing and transparency should be inspected in the gallery, including preserved details. +# BF16 / INT8 comparison + +2 paired outputs on NVIDIA GeForce RTX 5090; 1024×1024, 40 steps, offload=model, CFG=1, KV cache enabled. + +Warmup excluded. Pixel metrics measure drift, not semantic quality. The suite is small and does not establish a general quality ranking. + +| Case | Seed | BF16 s | INT8 s | BF16 peak GiB | INT8 peak GiB | RGB MAE (white) | +|---|---:|---:|---:|---:|---:|---:| +| young_chinese_woman | 42 | 28.58 | 19.58 | 16.44 | 9.53 | 0.0100 | +| young_chinese_woman | 123 | 26.63 | 19.44 | 16.44 | 9.53 | 0.0063 | + +## Summary + +Mean latency: BF16 27.61s; INT8 19.51s. + +[Interactive-sized side-by-side gallery](comparison.html). Raw data: comparison.csv, bf16/records.jsonl, int8/records.jsonl. Environment records include package versions and loading overhead. + +[Qualitative observations](qualitative.md). + +## Interpretation limits + +- No CLIP, OCR, human preference, FID or benchmark leaderboard score is claimed. +- Peak CUDA allocated/reserved memory excludes other processes and display usage. +- Measured call latency includes transfers; disk writing and model loading are excluded. +- Paired images may diverge with quantization even when both remain plausible. +- Editing and transparency should be inspected in the gallery, including preserved details. diff --git a/evaluation/young_woman/summary.json b/evaluation/young_woman/summary.json index 27a0e31be71db76f11e0c30eb57c1af718811d7f..d6acf26ba775f7d2d38deaf02bbab73e8a4e8a3d 100644 --- a/evaluation/young_woman/summary.json +++ b/evaluation/young_woman/summary.json @@ -1,14 +1,14 @@ -{ - "pairs": 2, - "cases": 1, - "bf16_mean_seconds": 28.514591549999295, - "int8_mean_seconds": 20.164369149999857, - "bf16_max_allocated_gib": 16.444443225860596, - "int8_max_allocated_gib": 22.862611770629883, - "width": 1024, - "height": 1024, - "steps": 40, - "warmup": true, - "bf16_weight_bytes": 33115613408, - "int8_weight_bytes": 18631752920 +{ + "pairs": 2, + "cases": 1, + "bf16_mean_seconds": 27.60586460000013, + "int8_mean_seconds": 19.509880749999866, + "bf16_max_allocated_gib": 16.444443225860596, + "int8_max_allocated_gib": 9.529117107391357, + "width": 1024, + "height": 1024, + "steps": 40, + "warmup": true, + "bf16_weight_bytes": 33115613408, + "int8_weight_bytes": 18631752920 } \ No newline at end of file diff --git a/scripts/audit_report.py b/scripts/audit_report.py new file mode 100644 index 0000000000000000000000000000000000000000..b8e5bf2919bb44378cc8d43902ed4218343f482d --- /dev/null +++ b/scripts/audit_report.py @@ -0,0 +1,108 @@ +"""Embed the memory investigation and retained editing diagnostics in each card.""" +import json +from pathlib import Path +from scripts.model_card import original_url + + +def render_audit(evaluation, platform): + root = Path(evaluation) + zh = platform == 'modelscope' + def tr(en, cn): + return cn if zh else en + summary_path = root/'audit/summary.json' + if not summary_path.exists(): + return '' + data = json.loads(summary_path.read_text(encoding='utf-8')) + lines = [tr('### Memory audit and editing retest', '### 显存排查与改图复测'), '', + tr('The initial benchmark called model CPU offload but did not verify auxiliary-tensor residency. ' + 'With this pinned PyTorch/bitsandbytes stack, a parent module device move bypasses the child ' + '`Linear8bitLt.to()` method. The parameter moves to CPU while CB/SCB auxiliary references can ' + 'remain on CUDA. About 13.51 GiB remained after apparent offload. `empty_cache()` cannot release live tensors.', + '初次评测调用了模型 CPU 卸载,但没有检查量化辅助张量的实际位置。在固定版本的 ' + 'PyTorch/bitsandbytes 组合中,父模块移动设备不会调用子层 `Linear8bitLt.to()`,' + '参数已移至 CPU,CB/SCB 等辅助引用仍可能留在 CUDA。表面完成卸载后仍残留约 13.51 GiB。' + '`empty_cache()` 无法释放仍被引用的张量。'), '', + tr('The bundled instance-local helper synchronizes auxiliary tensors during recursive device moves and ' + 'loads the INT8 components sequentially. It changes neither weights nor generation settings. ' + 'A nested-layer GPU regression fails without the helper and passes three exact-output round trips with it. ' + 'All five full-model diagnostic outputs are byte-identical before/after the offload fix. ' + 'All 32 newly generated formal-evaluation PNGs also match the initial run by SHA256.', + '仓库附带的实例级修复在递归移动设备时同步辅助张量,并依次加载、卸载 INT8 组件。' + '权重和生成设置不变。独立 GPU 回归测试在修复前失败,修复后三次往返输出完全一致;' + '五项完整模型诊断的修复前后 PNG 也逐字节一致。32 张重新生成的正式评测 PNG ' + '经 SHA256 核验与初测一致。'), '', + tr('Each rerun precision/suite uses a fresh subprocess; the orchestrator waits for exit before starting ' + 'the next. PID, board/process listings, zero-allocation startup and per-image baselines are recorded. ' + 'The initial run did not capture a board-memory baseline, so historical external occupancy cannot ' + 'be reconstructed. Its PyTorch allocated-memory metric is process-local; the fresh-process reproduction ' + 'locates the excess inside the INT8 process.', + '重测的每个精度、每套用例均使用新进程,前一进程退出后才启动下一进程;记录 PID、' + '整卡占用、进程列表、启动时零分配及每张图的显存基线。初测未保存整卡基线,' + '无法事后还原外部占用;但原指标是进程内 PyTorch 分配量,新进程复现已将异常定位到 ' + 'INT8 进程自身。'), '', + tr('| Memory measurement (GiB) | BF16 | INT8 |', '| 显存测量(GiB) | BF16 | INT8 |'), '|---|---:|---:|'] + for label, key in [(tr('Initial inference maximum', '初测推理最高值'), 'initial_peak'), + (tr('Corrected rerun inference maximum', '修复后重测推理最高值'), 'corrected_peak'), + (tr('Corrected rerun loading maximum', '修复后重测加载最高值'), 'load_peak')]: + lines.append(f'| {label} | {data[key]["bf16"]:.3f} | {data[key]["int8"]:.3f} |') + lines.extend(['', tr('Loading and inference peaks are reported separately; these are allocated-memory ' + 'measurements, not minimum supported GPU sizes. Desktop usage, CUDA context and allocator ' + 'reservations require additional headroom. Only the RTX 5090 was tested.', + '加载峰值与推理峰值分开报告。分配量不等于最低支持显卡容量,桌面占用、CUDA 上下文及' + '分配器预留还需额外空间;只在 RTX 5090 上实测。'), '', + tr('**Editing retest:** the fresh-process and repeated 1024px edits reproduce the original ' + 'INT8 failure exactly. RGB input and disabling KV cache do not visibly fix the excessive ' + 'contrast. A VAE-only round trip preserves the soft lighting. These controls narrow the ' + 'problem but do not establish a root cause in the editing model/pipeline.', + '**改图复测:** 新进程及重复运行的 1024px INT8 改图均精确复现原失败图。RGB 输入和' + '关闭 KV 缓存均未明显改善过高对比度;VAE 单独编解码保持了柔和光线。' + '这些对照缩小了排查范围,但尚未确定编辑模型/流水线的根本原因。'), '', + data['editing_conclusion_zh' if zh else 'editing_conclusion_en'], '', + tr('Diagnostic runs include instrumentation/cold starts and are not pooled into the latency averages.', + '诊断运行含分阶段记录及冷启动,不混入正式耗时均值。'), '', + tr('| Diagnostic image | Output (click to enlarge) |', '| 诊断样图 | 输出(点击查看大图) |'), '|---|---|']) + for item in data['images']: + url = original_url(platform, 'evaluation/audit/'+item['path']) + label = item['zh' if zh else 'en'] + lines.append(f'| {label} | [![{label}]({url})]({url}) |') + lines.extend(['', tr('**2048px paired editing retest, seed 42; default VAE tiling in both.**', + '**2048px 成对改图复测,种子 42;两组均启用默认 VAE 分块。**'), '', + '| BF16 | INT8 |', '|---|---|']) + native = [] + for precision in ('bf16', 'int8'): + url = original_url(platform, f'evaluation/audit/{precision}-native-tiled/edit_native.png') + native.append(f'[![{precision.upper()} 2048]({url})]({url})') + lines.append('| '+' | '.join(native)+' |') + lines.extend(['', tr('| 2048px diagnostic metric | BF16 | INT8 |', '| 2048px 诊断指标 | BF16 | INT8 |'), + '|---|---:|---:|', + tr('| CUDA allocated peak (GiB) | ', '| CUDA 分配峰值(GiB) | ') + + ' | '.join(f'{data["native"][p]["peak_allocated_bytes"]/2**30:.3f}' for p in ('bf16', 'int8')) + ' |', + tr('| Cold, instrumented call (s) | ', '| 含记录开销的冷启动调用(秒) | ') + + ' | '.join(f'{data["native"][p]["seconds"]:.2f}' for p in ('bf16', 'int8')) + ' |']) + lines.extend(['', tr('Both use the original 1024px reference, resized internally at `output_resolution=2048`. ' + 'The prompt, seed, 40 steps, CFG=1 and KV cache match the failed case. This is one ' + 'editing example, not evidence that all editing requests succeed. Fine details still drift.', + '两组均使用原始 1024px 参考图,由流水线按 `output_resolution=2048` 调整输入尺寸;' + '提示词、种子、40 步、CFG=1 及 KV 缓存与失败用例一致。这只是一个编辑用例,' + '不能证明所有改图请求均成功,细节仍存在偏移。'), '', + '```python', 'from PIL import Image', 'pipe.vae.enable_tiling()', + 'image = pipe(', ' prompt="Change only the blue sweater to a red sweater. Preserve the same person, face, pose, lighting and background.",', + ' image=Image.open("input.png"),', + ' width=2048, height=2048, output_resolution=2048,', + ' num_inference_steps=40, true_cfg_scale=1.0, use_kv_cache=True,', + ' generator=torch.Generator("cpu").manual_seed(42),', + ').images[0]', 'image.save("edit.png")', '```', '', + tr('The initial untiled 2048px diagnostic was stopped after denoising because decoding ' + 'saturated the desktop GPU memory and stalled; it is not a completed quality/timing result.', + '首次未分块的 2048px 诊断在去噪结束后因解码占满桌面显存并长时间停顿而终止,' + '不作为完成的画质/耗时结果。')]) + lines.extend(['', tr('Evidence: ', '原始证据:') + + '[audit/summary.json](evaluation/audit/summary.json), ' + '[process-isolation.jsonl](evaluation/process-isolation.jsonl), ' + '[initial evaluation](evaluation/initial/report.md), ' + '[runtime helper](scripts/runtime.py), [GPU regression](tests/gpu_offload.py).', '']) + lines.extend([tr('Implementation references: ', '实现参考:') + + '[bitsandbytes 0.50.2 Linear8bitLt](https://github.com/bitsandbytes-foundation/bitsandbytes/blob/0.50.2/bitsandbytes/nn/modules.py), ' + '[pinned Diffusers offload implementation](https://github.com/huggingface/diffusers/blob/80c7ed262aeffbeb43ef13ae04baeb9b84515a69/src/diffusers/pipelines/pipeline_utils.py), ' + '[official model usage and native resolution](https://github.com/QwenLM/Qwen-Image-2.1).', '']) + return '\n'.join(lines) diff --git a/scripts/audit_runtime.py b/scripts/audit_runtime.py new file mode 100644 index 0000000000000000000000000000000000000000..46740fcb55c332c570b84cd6a090a281900e22e9 --- /dev/null +++ b/scripts/audit_runtime.py @@ -0,0 +1,137 @@ +"""Fresh-process memory residency and editing reproduction audit.""" +import argparse +import gc +import json +import os +import subprocess +import time +from pathlib import Path + +import torch +from PIL import Image +from scripts.benchmark import load_pipeline, generate, environment +from scripts.integrity import sha256 + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument('--model', required=True) + ap.add_argument('--output', required=True) + ap.add_argument('--fix-offload', action='store_true') + ap.add_argument('--native-edit', action='store_true') + ap.add_argument('--vae-tiling', action='store_true') + ap.add_argument('--edit-only', action='store_true') + args = ap.parse_args() + out = Path(args.output) + out.mkdir(parents=True, exist_ok=False) + pipe = None + def snapshot(label): + torch.cuda.synchronize() + row = dict(label=label, pid=os.getpid(), allocated=torch.cuda.memory_allocated(), + reserved=torch.cuda.memory_reserved(), peak=torch.cuda.max_memory_allocated(), + free_total=list(torch.cuda.mem_get_info())) + if pipe is not None: + row['components'] = {} + for name in ['text_encoder', 'transformer', 'vae']: + component = getattr(pipe, name) + counts = {} + states = {} + for p in component.parameters(): + key = f'{p.device}/{p.dtype}' + counts[key] = counts.get(key, 0) + p.numel()*p.element_size() + for attr in ('CB', 'SCB'): + v = getattr(p, attr, None) + if isinstance(v, torch.Tensor): + key = f'weight.{attr}/{v.device}/{v.dtype}' + states[key] = states.get(key, 0) + v.numel()*v.element_size() + for m in component.modules(): + state = getattr(m, 'state', None) + if state: + for k, v in vars(state).items(): + if isinstance(v, torch.Tensor): + key = f'{k}/{v.device}/{v.dtype}' + states[key] = states.get(key, 0) + v.numel()*v.element_size() + row['components'][name] = {'parameters': counts, 'bnb_state': states} + with (out/'memory.jsonl').open('a', encoding='utf-8') as f: + f.write(json.dumps(row)+'\n') + print(label, 'allocated GiB', round(row['allocated']/2**30, 3), flush=True) + + (out/'environment.json').write_text(json.dumps(environment(), indent=2), encoding='utf-8') + (out/'gpu-before.txt').write_text(subprocess.check_output(['nvidia-smi'], text=True), encoding='utf-8') + snapshot('before_load') + pipe = load_pipeline(args.model, offload_fix=False) + snapshot('after_load_and_offload') + if args.fix_offload: + from scripts.runtime import enable_int8_cpu_offload + enable_int8_cpu_offload(pipe) + snapshot('after_fix') + if args.vae_tiling: + pipe.vae.enable_tiling() + # Wrapping pipeline boundaries keeps model hooks intact and avoids per-step profiling overhead. + for method in ['encode_prompt', 'prepare_latents']: + original = getattr(pipe, method) + def wrapper(*a, _fn=original, _name=method, **kw): + snapshot('before_'+_name) + result = _fn(*a, **kw) + snapshot('after_'+_name) + return result + setattr(pipe, method, wrapper) + orig_decode = pipe.vae.decode + def decode(*a, **kw): + snapshot('before_decode') + result = orig_decode(*a, **kw) + snapshot('after_decode') + return result + pipe.vae.decode = decode + cases = json.loads(Path('benchmarks/cases.json').read_text(encoding='utf-8')) + portrait, edit = cases[0], cases[-1] + runs = [('edit_fresh', edit, 42, None, True), + ('portrait', portrait, 42, None, True), + ('edit_repeat', edit, 42, None, True), + ('edit_rgb', edit, 42, 'RGB', True), + ('edit_no_cache', edit, 42, None, False)] + if args.native_edit: + runs = [('edit_native', edit, 42, None, True)] + elif args.edit_only: + runs = [('edit_fresh', edit, 42, None, True)] + for name, case, seed, mode, cache in runs: + gc.collect() + torch.cuda.empty_cache() + torch.cuda.reset_peak_memory_stats() + snapshot(name+'_start') + size = 2048 if args.native_edit else 1024 + kwargs = dict(prompt=case['prompt'], width=size, height=size, output_resolution=size, + num_inference_steps=40, true_cfg_scale=1.0, use_kv_cache=cache, + generator=torch.Generator('cpu').manual_seed(seed)) + if case.get('input'): + with Image.open(case['input']) as im: + kwargs['image'] = im.convert(mode) if mode else im.copy() + started = time.perf_counter() + with torch.inference_mode(): + image = pipe(**kwargs).images[0] + torch.cuda.synchronize() + elapsed = time.perf_counter()-started + snapshot(name+'_end') + image.save(out/(name+'.png')) + row = dict(name=name, seed=seed, input_mode=mode or 'original', kv_cache=cache, + width=size, height=size, steps=40, cfg=1.0, + vae_tiling=args.vae_tiling, + seconds=elapsed, peak_allocated_bytes=torch.cuda.max_memory_allocated(), + image_sha256=sha256(out/(name+'.png')), + input_sha256=sha256(case['input']) if case.get('input') else None) + with (out/'records.jsonl').open('a', encoding='utf-8') as f: + f.write(json.dumps(row)+'\n') + if not args.native_edit and not args.edit_only: + # Isolate the common VAE from denoising and quantization. + with Image.open(edit['input']) as im: + pixels = pipe.image_processor.preprocess(im.copy()).unsqueeze(2) + with torch.inference_mode(): + latents = pipe.vae.encode(pixels.to('cuda', dtype=pipe.vae.dtype)).latent_dist.mode() + reconstruction = pipe.vae.decode(latents, return_dict=False)[0][:, :, 0] + pipe.image_processor.postprocess(reconstruction, output_type='pil')[0].save(out/'vae_roundtrip.png') + # Instrumentation retains bound methods; process exit is the isolation boundary. + snapshot('before_process_exit') + + +if __name__ == '__main__': + main() diff --git a/scripts/benchmark.py b/scripts/benchmark.py index 3d16fa5faf1e5c5a949bbd1956dc6c582175d370..53abc2dbce69c640d066e83e0aefad2797194e4c 100644 --- a/scripts/benchmark.py +++ b/scripts/benchmark.py @@ -1,8 +1,11 @@ """Paired reproducible generation; each invocation loads one saved pipeline.""" import argparse +import gc import importlib.metadata import json +import os import platform +import subprocess import time from pathlib import Path @@ -23,11 +26,29 @@ def environment(): 'packages': {p: importlib.metadata.version(p) for p in packages}} -def load_pipeline(model, offload='model'): +def memory_status(): + torch.cuda.synchronize() + free, total = torch.cuda.mem_get_info() + return dict(allocated_bytes=torch.cuda.memory_allocated(), + reserved_bytes=torch.cuda.memory_reserved(), + cuda_free_bytes=free, cuda_total_bytes=total) + + +def load_pipeline(model, offload='model', offload_fix=True): + config = Path(model) / 'transformer/config.json' + if offload == 'model' and offload_fix and config.exists(): + qconfig = json.loads(config.read_text()).get('quantization_config', {}) + if qconfig.get('load_in_8bit'): + from scripts.runtime import load_int8_pipeline + return load_int8_pipeline(str(model), local_files_only=True) pipe = QwenImage21Pipeline.from_pretrained(str(model), dtype=torch.bfloat16, local_files_only=True) if offload == 'model': - pipe.enable_model_cpu_offload() + if offload_fix: + from scripts.runtime import enable_int8_cpu_offload + enable_int8_cpu_offload(pipe) + else: + pipe.enable_model_cpu_offload() else: pipe.to('cuda') return pipe @@ -57,6 +78,7 @@ def main(): ap.add_argument('--steps', type=int, default=40) ap.add_argument('--offload', choices=['model', 'none'], default='model') ap.add_argument('--no-warmup', action='store_true') + ap.add_argument('--legacy-offload', action='store_true', help='Reproduce the original auxiliary-tensor retention bug') args = ap.parse_args() if min(args.width, args.height, args.steps) <= 0 or args.width % 32 or args.height % 32: ap.error('Use positive steps and dimensions divisible by 32') @@ -72,15 +94,23 @@ def main(): if records_path.exists(): raise FileExistsError(f'Use a fresh output directory: {out}') runtime = environment() + runtime.update(pid=os.getpid(), before_load_memory=memory_status(), + offload_aux_fix=not args.legacy_offload, + benchmark_sha256=sha256(__file__), + runtime_helper_sha256=sha256(Path(__file__).with_name('runtime.py'))) + for key, query in [('gpu_before', '--query-gpu=name,driver_version,memory.used,memory.free'), + ('gpu_processes_before', '--query-compute-apps=pid,process_name,used_memory')]: + runtime[key] = subprocess.check_output(['nvidia-smi', query, '--format=csv'], text=True) runtime['model_identity'] = model_identity(args.model) torch.cuda.reset_peak_memory_stats() started = time.perf_counter() - pipe = load_pipeline(args.model, args.offload) + pipe = load_pipeline(args.model, args.offload, not args.legacy_offload) torch.cuda.synchronize() runtime.update(model=str(Path(args.model).resolve()), load_seconds=time.perf_counter() - started, load_peak_allocated_bytes=torch.cuda.max_memory_allocated(), offload=args.offload, warmup=not args.no_warmup, + after_load_memory=memory_status(), generator_device='cpu', cases_sha256=sha256(args.cases)) (out / 'environment.json').write_text(json.dumps(runtime, indent=2), encoding='utf-8') if not args.no_warmup: @@ -92,7 +122,9 @@ def main(): name = f'{case["id"]}-s{seed}' print(f'Generating {name}', flush=True) input_hash = sha256(case['input']) if case.get('input') else None + gc.collect() torch.cuda.empty_cache() + before = memory_status() torch.cuda.reset_peak_memory_stats() torch.cuda.synchronize() started = time.perf_counter() @@ -104,6 +136,7 @@ def main(): row = dict(case_id=case['id'], category=case['category'], prompt=case['prompt'], seed=seed, width=args.width, height=args.height, steps=args.steps, cfg=1.0, kv_cache=True, offload=args.offload, input_sha256=input_hash, + before_memory=before, after_memory=memory_status(), seconds=elapsed, peak_allocated_bytes=torch.cuda.max_memory_allocated(), peak_reserved_bytes=torch.cuda.max_memory_reserved(), process_rss_after_bytes=psutil.Process().memory_info().rss, diff --git a/scripts/infer.py b/scripts/infer.py index ed08fc5959e4b9ba33faa758122d0a0021091bc1..a1c31cb6e9fcbd66cc1b5218f32eb62293e2ff4f 100644 --- a/scripts/infer.py +++ b/scripts/infer.py @@ -5,6 +5,7 @@ from pathlib import Path import torch from diffusers import QwenImage21Pipeline from PIL import Image +from scripts.runtime import load_int8_pipeline def main(): @@ -17,6 +18,7 @@ def main(): ap.add_argument('--width', type=int, default=1024) ap.add_argument('--height', type=int, default=1024) ap.add_argument('--steps', type=int, default=40) + ap.add_argument('--vae-tiling', action='store_true', help='Bound VAE memory for 2048px editing') args = ap.parse_args() if min(args.width, args.height, args.steps) <= 0 or args.width % 32 or args.height % 32: ap.error('Positive steps and dimensions divisible by 32 are required') @@ -26,9 +28,13 @@ def main(): for path in args.input: with Image.open(path) as image: images.append(image.copy()) - pipe = QwenImage21Pipeline.from_pretrained(args.model, dtype=torch.bfloat16, - local_files_only=Path(args.model).exists()) - pipe.enable_model_cpu_offload() + if Path(args.model).exists(): + from scripts.benchmark import load_pipeline + pipe = load_pipeline(args.model) + else: + pipe = load_int8_pipeline(args.model) + if args.vae_tiling: + pipe.vae.enable_tiling() with torch.inference_mode(): image = pipe(prompt=args.prompt, image=images or None, width=args.width, height=args.height, output_resolution=args.width, diff --git a/scripts/model_card.py b/scripts/model_card.py index a86a1090fb52ba2c93b49881658aca3adee6d91a..8b69153cb45334876ae5d294fd7895ace157c033 100644 --- a/scripts/model_card.py +++ b/scripts/model_card.py @@ -77,9 +77,9 @@ def render_details(evaluation, platform): ram = f'{hardware["system_ram_bytes"]/2**30:.1f} GiB' if hardware.get('system_ram_bytes') else tr('Not recorded', '未记录') extra_summary = json.loads((root / 'young_woman/summary.json').read_text()) lines = [tr('### Evaluation scope and runtime', '### 评测范围与运行环境'), '', - tr(f'The original suite has {len(core[3])} pairs; the separate portrait supplement has {len(extra[3])} pairs. ' - f'All {count} pairs / {count * 2} original PNG images are shown below. Supplementary measurements are kept separate from the original summary average.', - f'原七类用例共 {len(core[3])} 对,肖像补测另有 {len(extra[3])} 对。下文完整展示 {count} 对、{count * 2} 张原始 PNG。补测数据单独报告,不混入原七类均值。'), '', + tr(f'The main suite has {len(core[3])} pairs; the separate portrait supplement has {len(extra[3])} pairs. ' + f'All {count} pairs / {count * 2} original PNG images from these suites are shown below. Supplementary measurements are kept separate from the main summary average.', + f'主评测七类用例共 {len(core[3])} 对,肖像补测另有 {len(extra[3])} 对。下文完整展示这两套用例的 {count} 对、{count * 2} 张原始 PNG。补测数据单独报告,不混入七类均值。'), '', tr('All previews link to their full-resolution original PNG. Click an image to open it; no crop, retouching or regenerated substitute is used.', '**点击任意样图即可打开原尺寸 PNG 大图。** 所有图片均为实际推理输出,没有裁剪、修图或使用其他模型替代。'), '', tr('| Setting | Recorded value |', '| 设置 | 实测记录 |'), '|---|---|', diff --git a/scripts/quantize.py b/scripts/quantize.py index 6373c9ee6983ecef300f05dae2e9ffae5b6f74ee..4a00cf8bc9c455a00202bf0902410845665efb9c 100644 --- a/scripts/quantize.py +++ b/scripts/quantize.py @@ -1,89 +1,89 @@ -"""Serialize standard bitsandbytes INT8 components for a Diffusers pipeline.""" -import argparse -import gc -import json -import shutil -from collections import Counter -from pathlib import Path - -import torch -from diffusers import BitsAndBytesConfig as DBitsAndBytesConfig -from diffusers import QwenImage21Transformer2DModel -from transformers import BitsAndBytesConfig as TBitsAndBytesConfig -from transformers import Qwen3VLForConditionalGeneration - -TRANSFORMER_SKIP = ['proj_out', 'img_in', 'txt_in', 'time_text_embed', 'modulation', 'norm_out'] -TEXT_SKIP = ['lm_head', 'visual'] - - -def quantize_component(source, target, component): - source, target = Path(source), Path(target) - out = target / component - if out.exists() and any(out.iterdir()): - raise FileExistsError(f'Refusing to overwrite existing component: {out}') - if component == 'transformer': - cls, config_cls, skip = QwenImage21Transformer2DModel, DBitsAndBytesConfig, TRANSFORMER_SKIP - elif component == 'text_encoder': - cls, config_cls, skip = Qwen3VLForConditionalGeneration, TBitsAndBytesConfig, TEXT_SKIP - else: - raise ValueError(component) - config = config_cls(load_in_8bit=True, llm_int8_threshold=6.0, - llm_int8_skip_modules=skip) - model = cls.from_pretrained(str(source / component), quantization_config=config, - dtype=torch.bfloat16, device_map={'': 0}, - local_files_only=True) - import bitsandbytes as bnb - modules = [name for name, mod in model.named_modules() if isinstance(mod, bnb.nn.Linear8bitLt)] - counts = Counter() - for p in model.parameters(): - counts[str(p.dtype)] += p.numel() - report = {'component': component, 'method': 'bitsandbytes LLM.int8', - 'threshold': 6.0, 'skip_modules': skip, 'linear8bit_modules': modules, - 'parameter_dtypes': dict(counts), 'int8_parameters': counts['torch.int8']} - if not modules or not report['int8_parameters']: - raise RuntimeError(f'No integer weights produced for {component}') - out.mkdir(parents=True, exist_ok=True) - model.save_pretrained(str(out), safe_serialization=True, max_shard_size='5GB') - (target / f'{component}-quantization.json').write_text( - json.dumps(report, indent=2), encoding='utf-8') - del model - gc.collect() - torch.cuda.empty_cache() - return report - - -def copy_support(source, target): - target.mkdir(parents=True, exist_ok=True) - for name in ('processor', 'scheduler', 'vae'): - shutil.copytree(source / name, target / name, dirs_exist_ok=True, - ignore=shutil.ignore_patterns('.cache', '*.lock', '*.incomplete')) - for name in ('model_index.json', 'LICENSE'): - shutil.copy2(source / name, target / name) - (target / 'Notice').write_text( - 'Qwen is licensed under the Qwen RESEARCH LICENSE AGREEMENT, Copyright (c) 2026 ' - 'Hangzhou Tongyi Laboratory Technology Co., Ltd. All Rights Reserved.\n\n' - 'Built with Qwen\n' - 'Independent derivative: Image21-INT8, by ixim / iximbox.\n' - 'Modified files: transformer and text_encoder weight shards, shard indexes and ' - 'config.json files. Eligible linear weights converted to bitsandbytes INT8; ' - 'floating-point exceptions are documented in component quantization reports.\n' - 'VAE, scheduler and processor retained from the pinned upstream snapshot.\n', - encoding='utf-8') - - -def main(): - ap = argparse.ArgumentParser() - ap.add_argument('--source', default='models/bf16') - ap.add_argument('--output', default='models/int8') - ap.add_argument('--component', choices=['transformer', 'text_encoder', 'all'], default='all') - args = ap.parse_args() - components = ['transformer', 'text_encoder'] if args.component == 'all' else [args.component] - for component in components: - print(f'Quantizing {component}', flush=True) - report = quantize_component(args.source, args.output, component) - print(f'Saved {component}: {report["int8_parameters"]:,} INT8 parameters', flush=True) - copy_support(Path(args.source), Path(args.output)) - - -if __name__ == '__main__': - main() +"""Serialize standard bitsandbytes INT8 components for a Diffusers pipeline.""" +import argparse +import gc +import json +import shutil +from collections import Counter +from pathlib import Path + +import torch +from diffusers import BitsAndBytesConfig as DBitsAndBytesConfig +from diffusers import QwenImage21Transformer2DModel +from transformers import BitsAndBytesConfig as TBitsAndBytesConfig +from transformers import Qwen3VLForConditionalGeneration + +TRANSFORMER_SKIP = ['proj_out', 'img_in', 'txt_in', 'time_text_embed', 'modulation', 'norm_out'] +TEXT_SKIP = ['lm_head', 'visual'] + + +def quantize_component(source, target, component): + source, target = Path(source), Path(target) + out = target / component + if out.exists() and any(out.iterdir()): + raise FileExistsError(f'Refusing to overwrite existing component: {out}') + if component == 'transformer': + cls, config_cls, skip = QwenImage21Transformer2DModel, DBitsAndBytesConfig, TRANSFORMER_SKIP + elif component == 'text_encoder': + cls, config_cls, skip = Qwen3VLForConditionalGeneration, TBitsAndBytesConfig, TEXT_SKIP + else: + raise ValueError(component) + config = config_cls(load_in_8bit=True, llm_int8_threshold=6.0, + llm_int8_skip_modules=skip) + model = cls.from_pretrained(str(source / component), quantization_config=config, + dtype=torch.bfloat16, device_map={'': 0}, + local_files_only=True) + import bitsandbytes as bnb + modules = [name for name, mod in model.named_modules() if isinstance(mod, bnb.nn.Linear8bitLt)] + counts = Counter() + for p in model.parameters(): + counts[str(p.dtype)] += p.numel() + report = {'component': component, 'method': 'bitsandbytes LLM.int8', + 'threshold': 6.0, 'skip_modules': skip, 'linear8bit_modules': modules, + 'parameter_dtypes': dict(counts), 'int8_parameters': counts['torch.int8']} + if not modules or not report['int8_parameters']: + raise RuntimeError(f'No integer weights produced for {component}') + out.mkdir(parents=True, exist_ok=True) + model.save_pretrained(str(out), safe_serialization=True, max_shard_size='5GB') + (target / f'{component}-quantization.json').write_text( + json.dumps(report, indent=2), encoding='utf-8') + del model + gc.collect() + torch.cuda.empty_cache() + return report + + +def copy_support(source, target): + target.mkdir(parents=True, exist_ok=True) + for name in ('processor', 'scheduler', 'vae'): + shutil.copytree(source / name, target / name, dirs_exist_ok=True, + ignore=shutil.ignore_patterns('.cache', '*.lock', '*.incomplete')) + for name in ('model_index.json', 'LICENSE'): + shutil.copy2(source / name, target / name) + (target / 'Notice').write_text( + 'Qwen is licensed under the Qwen RESEARCH LICENSE AGREEMENT, Copyright (c) 2026 ' + 'Hangzhou Tongyi Laboratory Technology Co., Ltd. All Rights Reserved.\n\n' + 'Built with Qwen\n' + 'Independent derivative: Image21-INT8, by ixim / iximbox.\n' + 'Modified files: transformer and text_encoder weight shards, shard indexes and ' + 'config.json files. Eligible linear weights converted to bitsandbytes INT8; ' + 'floating-point exceptions are documented in component quantization reports.\n' + 'VAE, scheduler and processor retained from the pinned upstream snapshot.\n', + encoding='utf-8') + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument('--source', default='models/bf16') + ap.add_argument('--output', default='models/int8') + ap.add_argument('--component', choices=['transformer', 'text_encoder', 'all'], default='all') + args = ap.parse_args() + components = ['transformer', 'text_encoder'] if args.component == 'all' else [args.component] + for component in components: + print(f'Quantizing {component}', flush=True) + report = quantize_component(args.source, args.output, component) + print(f'Saved {component}: {report["int8_parameters"]:,} INT8 parameters', flush=True) + copy_support(Path(args.source), Path(args.output)) + + +if __name__ == '__main__': + main() diff --git a/scripts/release.py b/scripts/release.py index 04da69ae867f921119018a309ee5b67f8b3b05f6..f333cc9fa2a185811b27d2301385a2712c9fc209 100644 --- a/scripts/release.py +++ b/scripts/release.py @@ -121,6 +121,9 @@ def stage(model, evaluation, output, platform): details = render_details(evaluation, platform) card = card.replace('{{EVALUATION_DETAILS_EN}}', details) card = card.replace('{{EVALUATION_DETAILS_ZH}}', details) + from scripts.audit_report import render_audit + audit = render_audit(evaluation, platform) + card = card.replace('{{AUDIT_EN}}', audit).replace('{{AUDIT_ZH}}', audit) if '{{' in card: raise ValueError('Unrendered model card template') (output / 'README.md').write_text(card, encoding='utf-8') @@ -167,6 +170,9 @@ def validate_evaluation(evaluation, model, summary, case_names=None, identity=No ea = json.loads((evaluation / 'bf16/environment.json').read_text()) eb = json.loads((evaluation / 'int8/environment.json').read_text()) validate_roles(ea['model_identity'], eb['model_identity']) + for key in ('offload_aux_fix', 'benchmark_sha256', 'runtime_helper_sha256'): + if ea.get(key) != eb.get(key): + raise ValueError(f'Benchmark implementation mismatch: {key}') identity = identity or model_identity(model) if identity['fingerprint'] != eb['model_identity']['fingerprint']: raise ValueError('Evaluated model differs from staged model') diff --git a/scripts/report.py b/scripts/report.py index 8fb2946acafe5c1c62b6448d523fbd8599d6f2fd..61bd1dc7f957a5bc0e4515399824710a6b571509 100644 --- a/scripts/report.py +++ b/scripts/report.py @@ -56,6 +56,9 @@ def main(): ea = json.loads((base / 'environment.json').read_text()) eb = json.loads((quant / 'environment.json').read_text()) validate_roles(ea['model_identity'], eb['model_identity']) + for key in ('offload_aux_fix', 'benchmark_sha256', 'runtime_helper_sha256'): + if ea.get(key) != eb.get(key): + raise ValueError(f'Benchmark implementation mismatch: {key}; report diagnostic runs separately') for key in ('gpu', 'cuda', 'packages', 'offload', 'warmup', 'generator_device', 'cases_sha256'): if ea[key] != eb[key]: raise ValueError(f'Runtime mismatch: {key}') @@ -113,8 +116,8 @@ def main(): right = Path(os.path.relpath(quant / b[key]['image'], out)).as_posix() gallery.append(f'

{html.escape(r["case_id"])} — seed {r["seed"]}

' f'
{html.escape(a[key]["prompt"])}
' - f'BF16' - f'INT8
') + f'BF16' + f'INT8') lines.extend(['', '## Summary', '', f'Mean latency: BF16 {summary["bf16_mean_seconds"]:.2f}s; ' f'INT8 {summary["int8_mean_seconds"]:.2f}s.', '', diff --git a/scripts/rerun_evaluation.py b/scripts/rerun_evaluation.py new file mode 100644 index 0000000000000000000000000000000000000000..840eaa3a0b4dffd3d4e8b0770142661d02cb328c --- /dev/null +++ b/scripts/rerun_evaluation.py @@ -0,0 +1,39 @@ +"""Serialize fresh subprocesses and record GPU state across process boundaries.""" +import json +import subprocess +import sys +import time +from pathlib import Path + + +def main(): + root = Path('artifacts/eval-corrected') + root.mkdir(exist_ok=False) + jobs = [] + for precision in ('bf16', 'int8'): + jobs.append((precision, ['-m', 'scripts.benchmark', '--model', 'models/'+precision, + '--output', str(root/precision)])) + for precision in ('bf16', 'int8'): + jobs.append(('young_'+precision, ['-m', 'scripts.benchmark', '--model', 'models/'+precision, + '--output', str(root/'young_woman'/precision), '--cases', 'benchmarks/young_woman.json'])) + for name, command in jobs: + before = subprocess.check_output(['nvidia-smi'], text=True) + with (root/(name+'.log')).open('w', encoding='utf-8') as log: + proc = subprocess.Popen([sys.executable, *command], stdout=log, stderr=subprocess.STDOUT) + print('Started', name, 'PID', proc.pid, flush=True) + code = proc.wait() + after = subprocess.check_output(['nvidia-smi'], text=True) + output = Path(command[command.index('--output')+1]) + env_path = output/'environment.json' + inference_pid = json.loads(env_path.read_text())['pid'] if env_path.exists() else None + row = dict(name=name, pid=proc.pid, returncode=code, command=command, + inference_pid=inference_pid, gpu_before=before, gpu_after=after, completed=time.time()) + with (root/'process-isolation.jsonl').open('a', encoding='utf-8') as f: + f.write(json.dumps(row)+'\n') + print('Completed', name, 'exit', code, flush=True) + if code: + raise RuntimeError('Benchmark failed: '+name) + + +if __name__ == '__main__': + main() diff --git a/scripts/runtime.py b/scripts/runtime.py new file mode 100644 index 0000000000000000000000000000000000000000..f80238c9826431531143e917a40a7499b2d6b17e --- /dev/null +++ b/scripts/runtime.py @@ -0,0 +1,65 @@ +"""Device-only offload workaround for the pinned bitsandbytes 0.50.2 stack. + +Parent Module.to() recursively invokes _apply(), not each child's to(). +Linear8bitLt.to() moves auxiliary tensors, but this path is bypassed by a +parent move. Keep CB aliases and SCB/outlier state colocated with the weight. +This is instance-local; checkpoint tensors and installed packages are unchanged. +""" +from types import MethodType + +import torch + + +def patch_int8_device_moves(model): + from bitsandbytes.nn import Linear8bitLt + for layer in model.modules(): + if not isinstance(layer, Linear8bitLt) or getattr(layer, '_int8_move_patched', False): + continue + if layer.state.has_fp16_weights: + raise ValueError('Offload helper only supports inference INT8 weights') + original = layer._apply + + def apply(self, fn, recurse=True, _original=original): + result = _original(fn, recurse=recurse) + device = self.weight.device + # Parameter auxiliaries are used before init_8bit_state(); state + # auxiliaries are used afterwards. Never duplicate the CB storage. + if self.weight.CB is not None: + self.weight.CB = self.weight.data + if self.weight.SCB is not None: + self.weight.SCB = self.weight.SCB.to(device) + for name, value in vars(self.state).items(): + if isinstance(value, torch.Tensor): + setattr(self.state, name, self.weight.data if name == 'CB' else value.to(device)) + return result + + layer._apply = MethodType(apply, layer) + layer._int8_move_patched = True + + +def enable_int8_cpu_offload(pipe): + """Install auxiliary-tensor movement before standard model CPU offload.""" + for name in ('text_encoder', 'transformer'): + patch_int8_device_moves(getattr(pipe, name)) + pipe.enable_model_cpu_offload() + + +def load_int8_pipeline(model, local_files_only=False): + """Load/offload components sequentially to avoid a combined CUDA load peak.""" + from diffusers import QwenImage21Pipeline, QwenImage21Transformer2DModel + from transformers import Qwen3VLForConditionalGeneration + components = {} + for name, cls in [('transformer', QwenImage21Transformer2DModel), + ('text_encoder', Qwen3VLForConditionalGeneration)]: + component = cls.from_pretrained(model, subfolder=name, dtype=torch.bfloat16, + local_files_only=local_files_only) + if not getattr(component, 'is_loaded_in_8bit', False): + raise ValueError('Expected saved bitsandbytes INT8 component: '+name) + patch_int8_device_moves(component) + component.to('cpu') + torch.cuda.empty_cache() + components[name] = component + pipe = QwenImage21Pipeline.from_pretrained(model, dtype=torch.bfloat16, + local_files_only=local_files_only, **components) + enable_int8_cpu_offload(pipe) + return pipe diff --git a/scripts/upload.py b/scripts/upload.py index 6737b05e34ee18abee70353b73c6c2a7b3da0d8e..7fde28d70596957344ea08cc4f3b9b7b67bab229 100644 --- a/scripts/upload.py +++ b/scripts/upload.py @@ -1,76 +1,76 @@ -"""Validate a staged release, then upload only its manifest-listed files.""" -import argparse -import os -from pathlib import Path - -from scripts.release import validate_release - - -def modelscope_access(config, owner): - token = os.environ.get('MODELSCOPE_API_TOKEN') - if token: - return token - # ModelScopeConfig.get_token() holds a Git access credential, not an SDK/API token. - if not config.get_cookies(): - raise RuntimeError('No valid ModelScope API login. Log in locally with a fresh SDK token.') - user = config.get_user_info() - if not user or user[0] != owner: - raise ValueError('Authenticated ModelScope account differs from requested account') - return None # Let HubApi use its authenticated cached cookies. - - -def main(): - ap = argparse.ArgumentParser() - ap.add_argument('platform', choices=['huggingface', 'modelscope']) - ap.add_argument('--folder') - ap.add_argument('--repo-id') - ap.add_argument('--dry-run', action='store_true') - args = ap.parse_args() - folder = Path(args.folder or f'release/{args.platform}') - repo_id = args.repo_id or ('ixim/Image21-INT8' if args.platform == 'huggingface' else 'iximbox/Image21-INT8') - owner = 'ixim' if args.platform == 'huggingface' else 'iximbox' - if repo_id.split('/')[0] != owner or len(repo_id.split('/')) != 2: - raise ValueError(f'Expected the requested {owner} namespace') - rows = validate_release(folder) - names = [r['path'] for r in rows] + ['MANIFEST.json'] - print(f'Validated {len(rows)} files for {args.platform}:{repo_id}', flush=True) - if args.dry_run: - print('Dry run: no network mutation performed.') - return - if args.platform == 'huggingface': - from huggingface_hub import HfApi, get_token - token = get_token() - if not token: - raise RuntimeError('No HF credentials. Run hf auth login with this project HF_HOME first.') - api = HfApi(token=token) - if api.whoami()['name'] != owner: - raise ValueError('Authenticated Hugging Face account differs from requested account') - api.create_repo(repo_id=repo_id, repo_type='model', private=False, exist_ok=True) - result = api.upload_folder(repo_id=repo_id, repo_type='model', folder_path=folder, - allow_patterns=names, commit_message='Release verified Image21-INT8 conversion') - print(result) - else: - from modelscope.hub.api import HubApi, ModelScopeConfig - from modelscope.hub.errors import NotExistError - from requests.exceptions import HTTPError - api = HubApi() - token = modelscope_access(ModelScopeConfig, owner) - # Inspect the target first. Do not catch authentication/network errors as a missing repo. - try: - api.get_model(repo_id) - except HTTPError as exc: - if exc.response is None or exc.response.status_code != 404: - raise - api.create_model(repo_id, visibility=5, license='other', - original_model_id='Qwen/Qwen-Image-2.1', token=token) - except NotExistError: - api.create_model(repo_id, visibility=5, license='other', - original_model_id='Qwen/Qwen-Image-2.1', token=token) - result = api.upload_folder(repo_id=repo_id, folder_path=str(folder), token=token, - allow_patterns=names, max_workers=4, - commit_message='Release verified Image21-INT8 conversion') - print(result) - - -if __name__ == '__main__': - main() +"""Validate a staged release, then upload only its manifest-listed files.""" +import argparse +import os +from pathlib import Path + +from scripts.release import validate_release + + +def modelscope_access(config, owner): + token = os.environ.get('MODELSCOPE_API_TOKEN') + if token: + return token + # ModelScopeConfig.get_token() holds a Git access credential, not an SDK/API token. + if not config.get_cookies(): + raise RuntimeError('No valid ModelScope API login. Log in locally with a fresh SDK token.') + user = config.get_user_info() + if not user or user[0] != owner: + raise ValueError('Authenticated ModelScope account differs from requested account') + return None # Let HubApi use its authenticated cached cookies. + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument('platform', choices=['huggingface', 'modelscope']) + ap.add_argument('--folder') + ap.add_argument('--repo-id') + ap.add_argument('--dry-run', action='store_true') + args = ap.parse_args() + folder = Path(args.folder or f'release/{args.platform}') + repo_id = args.repo_id or ('ixim/Image21-INT8' if args.platform == 'huggingface' else 'iximbox/Image21-INT8') + owner = 'ixim' if args.platform == 'huggingface' else 'iximbox' + if repo_id.split('/')[0] != owner or len(repo_id.split('/')) != 2: + raise ValueError(f'Expected the requested {owner} namespace') + rows = validate_release(folder) + names = [r['path'] for r in rows] + ['MANIFEST.json'] + print(f'Validated {len(rows)} files for {args.platform}:{repo_id}', flush=True) + if args.dry_run: + print('Dry run: no network mutation performed.') + return + if args.platform == 'huggingface': + from huggingface_hub import HfApi, get_token + token = get_token() + if not token: + raise RuntimeError('No HF credentials. Run hf auth login with this project HF_HOME first.') + api = HfApi(token=token) + if api.whoami()['name'] != owner: + raise ValueError('Authenticated Hugging Face account differs from requested account') + api.create_repo(repo_id=repo_id, repo_type='model', private=False, exist_ok=True) + result = api.upload_folder(repo_id=repo_id, repo_type='model', folder_path=folder, + allow_patterns=names, commit_message='Release verified Image21-INT8 conversion') + print(result) + else: + from modelscope.hub.api import HubApi, ModelScopeConfig + from modelscope.hub.errors import NotExistError + from requests.exceptions import HTTPError + api = HubApi() + token = modelscope_access(ModelScopeConfig, owner) + # Inspect the target first. Do not catch authentication/network errors as a missing repo. + try: + api.get_model(repo_id) + except HTTPError as exc: + if exc.response is None or exc.response.status_code != 404: + raise + api.create_model(repo_id, visibility=5, license='other', + original_model_id='Qwen/Qwen-Image-2.1', token=token) + except NotExistError: + api.create_model(repo_id, visibility=5, license='other', + original_model_id='Qwen/Qwen-Image-2.1', token=token) + result = api.upload_folder(repo_id=repo_id, folder_path=str(folder), token=token, + allow_patterns=names, max_workers=4, + commit_message='Release verified Image21-INT8 conversion') + print(result) + + +if __name__ == '__main__': + main() diff --git a/tests/gpu_offload.py b/tests/gpu_offload.py new file mode 100644 index 0000000000000000000000000000000000000000..6b53a4f0eb065a25fe68f65c025e682e05da5f73 --- /dev/null +++ b/tests/gpu_offload.py @@ -0,0 +1,41 @@ +"""Regression: nested INT8 offload must move auxiliary tensors and preserve output.""" +import argparse +import scripts +import torch +import bitsandbytes as bnb + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument('--fixed', action='store_true') + args = ap.parse_args() + torch.manual_seed(17) + layer = bnb.nn.Linear8bitLt(512, 256, has_fp16_weights=False, threshold=6.0).to('cuda') + model = torch.nn.Sequential(layer).eval() + if args.fixed: + from scripts.runtime import patch_int8_device_moves + patch_int8_device_moves(model) + x = torch.randn(2, 512, device='cuda', dtype=torch.float16) + with torch.inference_mode(): + expected = model(x).clone() + for _ in range(3): + model.to('cpu') + tensors = [layer.weight, layer.weight.CB, layer.weight.SCB, + layer.state.CB, layer.state.SCB, layer.state.idx] + assert all(t is None or t.device.type == 'cpu' for t in tensors), 'CUDA tensors retained after parent.to(cpu)' + model.to('cuda') + with torch.inference_mode(): + actual = model(x) + torch.testing.assert_close(actual, expected, rtol=0, atol=0) + # Also cover the pre-forward quantized parameter CB/SCB path. + fresh = torch.nn.Sequential(bnb.nn.Linear8bitLt(512, 256, has_fp16_weights=False).to('cuda')) + if args.fixed: + patch_int8_device_moves(fresh) + fresh.to('cpu') + assert fresh[0].weight.CB.device.type == 'cpu' + assert fresh[0].weight.SCB.device.type == 'cpu' + print('PASS: auxiliary tensors offloaded; three exact-output CPU/GPU round trips') + + +if __name__ == '__main__': + main()