diff --git a/.gitattributes b/.gitattributes
index 3d701ccabb4be05f1db6ee039b14f95911620d6f..c12e3a32abbe17ee2712b7286544ac2de20a82b1 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -364,3 +364,43 @@ ACE_plus/examples/exp_example/20250704031317/train_probe/step-0/BaseSolver_train
ACE_plus/examples/exp_example/20250704031317/train_probe/step-90/BaseSolver_train_image_step_90/0_0_5_probe_0_\[832_1248_3\].jpg filter=lfs diff=lfs merge=lfs -text
ACE_plus/examples/exp_example/20250704031317/train_probe/step-90/BaseSolver_train_image_step_90/0_0_0_probe_0_\[832_1248_3\].jpg filter=lfs diff=lfs merge=lfs -text
ACE_plus/examples/exp_example/20250704031317/train_probe/step-90/BaseSolver_train_image_step_90/0_0_3_probe_0_\[832_1248_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/2_0_5_probe_0_\[800_1296_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/0_0_5_probe_0_\[864_1184_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/3_0_3_probe_0_\[752_1392_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/3_0_5_probe_0_\[752_1392_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/2_0_3_probe_0_\[800_1296_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/1_0_3_probe_0_\[864_1200_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/1_0_5_probe_0_\[864_1200_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_3_probe_0_\[784_1312_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_3_probe_0_\[752_1376_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_3_probe_0_\[784_1328_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_5_probe_0_\[784_1328_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_5_probe_0_\[832_1232_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/3_0_3_probe_0_\[864_1200_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/0_0_0_probe_0_\[816_1264_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/0_0_5_probe_0_\[816_1264_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/2_0_3_probe_0_\[768_1328_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/1_0_3_probe_0_\[816_1264_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/2_0_5_probe_0_\[768_1328_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/1_0_5_probe_0_\[816_1264_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/3_0_3_probe_0_\[784_1312_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/3_0_5_probe_0_\[864_1200_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/1_0_3_probe_0_\[816_1264_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/0_0_5_probe_0_\[864_1200_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/2_0_5_probe_0_\[752_1392_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/3_0_5_probe_0_\[784_1312_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/2_0_3_probe_0_\[752_1392_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/0_0_0_probe_0_\[864_1200_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/2_0_3_probe_0_\[752_1376_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/1_0_3_probe_0_\[736_1408_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/3_0_5_probe_0_\[768_1344_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/2_0_5_probe_0_\[752_1376_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/0_0_0_probe_0_\[752_1376_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/1_0_5_probe_0_\[736_1408_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/3_0_3_probe_0_\[768_1344_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/3_0_3_probe_0_\[736_1392_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/2_0_5_probe_0_\[800_1280_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/0_0_0_probe_0_\[768_1360_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/3_0_5_probe_0_\[736_1392_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/1_0_3_probe_0_\[768_1344_3\].jpg filter=lfs diff=lfs merge=lfs -text
+ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/0_0_5_probe_0_\[768_1360_3\].jpg filter=lfs diff=lfs merge=lfs -text
diff --git a/ACE_plus/assets/comfyui/haobeen_ace_plus.jpg b/ACE_plus/assets/comfyui/haobeen_ace_plus.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d45834589bb1ca6c4d896ba78b519b38dd02bdcd
Binary files /dev/null and b/ACE_plus/assets/comfyui/haobeen_ace_plus.jpg differ
diff --git a/ACE_plus/assets/comfyui/snapshot.jpg b/ACE_plus/assets/comfyui/snapshot.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..60f6e16653dbaace0f27fb87765d82718529f1f1
Binary files /dev/null and b/ACE_plus/assets/comfyui/snapshot.jpg differ
diff --git a/ACE_plus/assets/figures/icon.png b/ACE_plus/assets/figures/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..dc5128762fed6cbfb60592c5a17d16a1389b8d0c
Binary files /dev/null and b/ACE_plus/assets/figures/icon.png differ
diff --git a/ACE_plus/assets/samples/application/logo_paste/1_1_fft.webp b/ACE_plus/assets/samples/application/logo_paste/1_1_fft.webp
new file mode 100644
index 0000000000000000000000000000000000000000..abcc0ec4131e92f2948478ce41cf5d011322eb18
Binary files /dev/null and b/ACE_plus/assets/samples/application/logo_paste/1_1_fft.webp differ
diff --git a/ACE_plus/assets/samples/application/logo_paste/1_1_m.png b/ACE_plus/assets/samples/application/logo_paste/1_1_m.png
new file mode 100644
index 0000000000000000000000000000000000000000..d79df1d1028e24d562065d84def546a74d589d57
Binary files /dev/null and b/ACE_plus/assets/samples/application/logo_paste/1_1_m.png differ
diff --git a/ACE_plus/assets/samples/application/logo_paste/1_1_res.webp b/ACE_plus/assets/samples/application/logo_paste/1_1_res.webp
new file mode 100644
index 0000000000000000000000000000000000000000..d2cd83bb93524cafc9eaf634c33962f2d4878f75
Binary files /dev/null and b/ACE_plus/assets/samples/application/logo_paste/1_1_res.webp differ
diff --git a/ACE_plus/assets/samples/application/movie_poster/1_1_fft.webp b/ACE_plus/assets/samples/application/movie_poster/1_1_fft.webp
new file mode 100644
index 0000000000000000000000000000000000000000..9285e2721db54261cc0a2fdcc46a8c62d5ca00cb
Binary files /dev/null and b/ACE_plus/assets/samples/application/movie_poster/1_1_fft.webp differ
diff --git a/ACE_plus/assets/samples/application/movie_poster/1_1_m.png b/ACE_plus/assets/samples/application/movie_poster/1_1_m.png
new file mode 100644
index 0000000000000000000000000000000000000000..8017c5aa3250e0a8f6d7806bf24dcb5e252bea2d
Binary files /dev/null and b/ACE_plus/assets/samples/application/movie_poster/1_1_m.png differ
diff --git a/ACE_plus/assets/samples/application/movie_poster/1_1_res.webp b/ACE_plus/assets/samples/application/movie_poster/1_1_res.webp
new file mode 100644
index 0000000000000000000000000000000000000000..b4c20ae84624e9a4d0de3a8fbc957a104ec16bd3
Binary files /dev/null and b/ACE_plus/assets/samples/application/movie_poster/1_1_res.webp differ
diff --git a/ACE_plus/assets/samples/application/movie_poster/1_2_m.webp b/ACE_plus/assets/samples/application/movie_poster/1_2_m.webp
new file mode 100644
index 0000000000000000000000000000000000000000..8ee1bcc8a6955af348e71cf708f1162109615397
Binary files /dev/null and b/ACE_plus/assets/samples/application/movie_poster/1_2_m.webp differ
diff --git a/ACE_plus/assets/samples/application/photo_editing/1_1_am.webp b/ACE_plus/assets/samples/application/photo_editing/1_1_am.webp
new file mode 100644
index 0000000000000000000000000000000000000000..6617a000c41bebd92c32fc99160255708ca38115
Binary files /dev/null and b/ACE_plus/assets/samples/application/photo_editing/1_1_am.webp differ
diff --git a/ACE_plus/assets/samples/application/photo_editing/1_1_m.png b/ACE_plus/assets/samples/application/photo_editing/1_1_m.png
new file mode 100644
index 0000000000000000000000000000000000000000..dfbc23bf86e5ff53ee8a4854b4d3b6ee49c3963e
Binary files /dev/null and b/ACE_plus/assets/samples/application/photo_editing/1_1_m.png differ
diff --git a/ACE_plus/assets/samples/application/photo_editing/1_1_orm.webp b/ACE_plus/assets/samples/application/photo_editing/1_1_orm.webp
new file mode 100644
index 0000000000000000000000000000000000000000..72e45906b9d25d03cb4c5ba965335d31dd926000
Binary files /dev/null and b/ACE_plus/assets/samples/application/photo_editing/1_1_orm.webp differ
diff --git a/ACE_plus/assets/samples/application/photo_editing/1_1_rm.webp b/ACE_plus/assets/samples/application/photo_editing/1_1_rm.webp
new file mode 100644
index 0000000000000000000000000000000000000000..5feef0a5c1bb70609dfea9ca107b5bff6d4f51e2
Binary files /dev/null and b/ACE_plus/assets/samples/application/photo_editing/1_1_rm.webp differ
diff --git a/ACE_plus/assets/samples/application/photo_editing/1_2_edit.jpg b/ACE_plus/assets/samples/application/photo_editing/1_2_edit.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c0809a3c129843ee8035a2667b7f58f6d8f07ff1
Binary files /dev/null and b/ACE_plus/assets/samples/application/photo_editing/1_2_edit.jpg differ
diff --git a/ACE_plus/assets/samples/application/photo_editing/1_2_fft.webp b/ACE_plus/assets/samples/application/photo_editing/1_2_fft.webp
new file mode 100644
index 0000000000000000000000000000000000000000..a467534916566b3926559bbb0c28b8d9a7b1380b
Binary files /dev/null and b/ACE_plus/assets/samples/application/photo_editing/1_2_fft.webp differ
diff --git a/ACE_plus/assets/samples/application/photo_editing/1_2_m.webp b/ACE_plus/assets/samples/application/photo_editing/1_2_m.webp
new file mode 100644
index 0000000000000000000000000000000000000000..268aafbc236be6350834c36753bfa5e8ce4735cd
Binary files /dev/null and b/ACE_plus/assets/samples/application/photo_editing/1_2_m.webp differ
diff --git a/ACE_plus/assets/samples/application/regional_editing/1_1_fft.webp b/ACE_plus/assets/samples/application/regional_editing/1_1_fft.webp
new file mode 100644
index 0000000000000000000000000000000000000000..d0abfde5f3ffa92def5330c8eb04866807ce3ef6
Binary files /dev/null and b/ACE_plus/assets/samples/application/regional_editing/1_1_fft.webp differ
diff --git a/ACE_plus/assets/samples/application/regional_editing/1_2_fft.webp b/ACE_plus/assets/samples/application/regional_editing/1_2_fft.webp
new file mode 100644
index 0000000000000000000000000000000000000000..48bf90f66c5e75bd4560fde0df00457271406f8b
Binary files /dev/null and b/ACE_plus/assets/samples/application/regional_editing/1_2_fft.webp differ
diff --git a/ACE_plus/assets/samples/application/sr/sr_tiger_fft.webp b/ACE_plus/assets/samples/application/sr/sr_tiger_fft.webp
new file mode 100644
index 0000000000000000000000000000000000000000..f52430ab07c7e4c4f0b45013f7f8849a75733234
Binary files /dev/null and b/ACE_plus/assets/samples/application/sr/sr_tiger_fft.webp differ
diff --git a/ACE_plus/assets/samples/application/sr/sr_tiger_m.webp b/ACE_plus/assets/samples/application/sr/sr_tiger_m.webp
new file mode 100644
index 0000000000000000000000000000000000000000..8707b69fd51370de6370cd7da474a9492348fb46
Binary files /dev/null and b/ACE_plus/assets/samples/application/sr/sr_tiger_m.webp differ
diff --git a/ACE_plus/assets/samples/application/try_on/1_1_fft.webp b/ACE_plus/assets/samples/application/try_on/1_1_fft.webp
new file mode 100644
index 0000000000000000000000000000000000000000..6720f763e446d4513a4fcf9cf9ef7307900598e4
Binary files /dev/null and b/ACE_plus/assets/samples/application/try_on/1_1_fft.webp differ
diff --git a/ACE_plus/assets/samples/application/try_on/1_1_m.png b/ACE_plus/assets/samples/application/try_on/1_1_m.png
new file mode 100644
index 0000000000000000000000000000000000000000..e48456fc32a728581d67a0ea277c859c96cfb520
Binary files /dev/null and b/ACE_plus/assets/samples/application/try_on/1_1_m.png differ
diff --git a/ACE_plus/assets/samples/control/1_1.webp b/ACE_plus/assets/samples/control/1_1.webp
new file mode 100644
index 0000000000000000000000000000000000000000..be90c6c71b831d7d8a79bf9d38470cb5fe1b8d99
Binary files /dev/null and b/ACE_plus/assets/samples/control/1_1.webp differ
diff --git a/ACE_plus/assets/samples/control/1_1_contourc.webp b/ACE_plus/assets/samples/control/1_1_contourc.webp
new file mode 100644
index 0000000000000000000000000000000000000000..bf9a172da7d4ccb6e24f9b49abb830aad114bc99
Binary files /dev/null and b/ACE_plus/assets/samples/control/1_1_contourc.webp differ
diff --git a/ACE_plus/assets/samples/control/1_1_depth.webp b/ACE_plus/assets/samples/control/1_1_depth.webp
new file mode 100644
index 0000000000000000000000000000000000000000..4dae6911efc3881313731c804dab592f91bcfb50
Binary files /dev/null and b/ACE_plus/assets/samples/control/1_1_depth.webp differ
diff --git a/ACE_plus/assets/samples/control/1_1_fft_contour.webp b/ACE_plus/assets/samples/control/1_1_fft_contour.webp
new file mode 100644
index 0000000000000000000000000000000000000000..cb018c07657994a3ea85c78e5f3a6b39bc947313
Binary files /dev/null and b/ACE_plus/assets/samples/control/1_1_fft_contour.webp differ
diff --git a/ACE_plus/assets/samples/control/1_1_fft_depth.webp b/ACE_plus/assets/samples/control/1_1_fft_depth.webp
new file mode 100644
index 0000000000000000000000000000000000000000..888e49d89878bb61646c5a287a22973a6341f9c5
Binary files /dev/null and b/ACE_plus/assets/samples/control/1_1_fft_depth.webp differ
diff --git a/ACE_plus/assets/samples/control/1_1_fft_recolor.webp b/ACE_plus/assets/samples/control/1_1_fft_recolor.webp
new file mode 100644
index 0000000000000000000000000000000000000000..675c23bf9648e6d9629dc894f48de65737f80229
Binary files /dev/null and b/ACE_plus/assets/samples/control/1_1_fft_recolor.webp differ
diff --git a/ACE_plus/assets/samples/control/1_1_m.webp b/ACE_plus/assets/samples/control/1_1_m.webp
new file mode 100644
index 0000000000000000000000000000000000000000..8707b69fd51370de6370cd7da474a9492348fb46
Binary files /dev/null and b/ACE_plus/assets/samples/control/1_1_m.webp differ
diff --git a/ACE_plus/assets/samples/control/1_1_recolor.webp b/ACE_plus/assets/samples/control/1_1_recolor.webp
new file mode 100644
index 0000000000000000000000000000000000000000..a07678ebaac102af82ea96ebf426a6aa2cfe5b1e
Binary files /dev/null and b/ACE_plus/assets/samples/control/1_1_recolor.webp differ
diff --git a/ACE_plus/assets/samples/local/local_1_m.webp b/ACE_plus/assets/samples/local/local_1_m.webp
new file mode 100644
index 0000000000000000000000000000000000000000..379b57889643d974657956722e0b7a8400a9eebe
Binary files /dev/null and b/ACE_plus/assets/samples/local/local_1_m.webp differ
diff --git a/ACE_plus/assets/samples/portrait/human_1_1.jpg b/ACE_plus/assets/samples/portrait/human_1_1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..83e8215090b84a6b2f472be16907c5ceb5618303
Binary files /dev/null and b/ACE_plus/assets/samples/portrait/human_1_1.jpg differ
diff --git a/ACE_plus/assets/samples/portrait/human_1_fft.webp b/ACE_plus/assets/samples/portrait/human_1_fft.webp
new file mode 100644
index 0000000000000000000000000000000000000000..29b60c882c227908423afe5f0b10a67421982721
Binary files /dev/null and b/ACE_plus/assets/samples/portrait/human_1_fft.webp differ
diff --git a/ACE_plus/assets/samples/subject/subject_1.jpg b/ACE_plus/assets/samples/subject/subject_1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..32fc3629d172bd44a0bb6e5c8f2b12a24c853841
Binary files /dev/null and b/ACE_plus/assets/samples/subject/subject_1.jpg differ
diff --git a/ACE_plus/assets/samples/subject/subject_1_1.jpg b/ACE_plus/assets/samples/subject/subject_1_1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c67c251cab432f73a4e695d7e871fd7f356b487c
Binary files /dev/null and b/ACE_plus/assets/samples/subject/subject_1_1.jpg differ
diff --git a/ACE_plus/assets/samples/subject/subject_1_fft.webp b/ACE_plus/assets/samples/subject/subject_1_fft.webp
new file mode 100644
index 0000000000000000000000000000000000000000..caa6d2860fbbef0749745a1d9d2b81486bf57d7d
Binary files /dev/null and b/ACE_plus/assets/samples/subject/subject_1_fft.webp differ
diff --git a/ACE_plus/config/ace_plus_diffusers_infer.yaml b/ACE_plus/config/ace_plus_diffusers_infer.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b540d50943a15fcae11742d4cd1cd6c837b6e1cb
--- /dev/null
+++ b/ACE_plus/config/ace_plus_diffusers_infer.yaml
@@ -0,0 +1,25 @@
+NAME: ace_plus_diffuser_infer
+IS_DEFAULT: True
+USE_DYNAMIC_MODEL: False
+INFERENCE_TYPE: ACE_DIFFUSER_PLUS
+DEFAULT_PARAS:
+ PARAS:
+ #
+ INPUT:
+ INPUT_IMAGE:
+ INPUT_MASK:
+ TASK:
+ PROMPT: ""
+ OUTPUT_HEIGHT: 1024
+ OUTPUT_WIDTH: 1024
+ SAMPLER: flow_euler
+ SAMPLE_STEPS: 28
+ GUIDE_SCALE: 50
+ SEED: 42
+ MAX_SEQ_LENGTH: 4096
+ OUTPUT:
+ LATENT:
+ IMAGES:
+ SEED:
+MODEL:
+ PRETRAINED_MODEL: ${FLUX_FILL_PATH}
\ No newline at end of file
diff --git a/ACE_plus/config/ace_plus_fft.yaml b/ACE_plus/config/ace_plus_fft.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..889c92d6fcc7c4bf450e58f0a5327ee615aeec4d
--- /dev/null
+++ b/ACE_plus/config/ace_plus_fft.yaml
@@ -0,0 +1,192 @@
+NAME: ACEInference
+DTYPE: bfloat16
+VERSION: fft
+IS_DEFAULT: True
+MAX_SEQ_LEN: 4096
+MODEL:
+ NAME: LatentDiffusionACEPlus
+ PARAMETERIZATION: rf
+ TIMESTEPS: 1000
+ GUIDE_SCALE: 1.0
+ PRETRAINED_MODEL:
+ IGNORE_KEYS: [ ]
+ USE_EMA: False
+ EVAL_EMA: False
+ SIZE_FACTOR: 8
+ DIFFUSION:
+ NAME: DiffusionFluxRF
+ PREDICTION_TYPE: raw
+ NOISE_NORM: True
+ # NOISE_SCHEDULER DESCRIPTION: TYPE: default: ''
+ NOISE_SCHEDULER:
+ NAME: FlowMatchFluxShiftScheduler
+ SHIFT: False
+ PRE_T_SAMPLE: True
+ PRE_T_SAMPLE_FOLD: 1
+ SIGMOID_SCALE: 1
+ BASE_SHIFT: 0.5
+ MAX_SHIFT: 1.15
+ SAMPLER_SCHEDULER:
+ NAME: FlowMatchFluxShiftScheduler
+ SHIFT: True
+ PRE_T_SAMPLE: False
+ SIGMOID_SCALE: 1
+ BASE_SHIFT: 0.5
+ MAX_SHIFT: 1.15
+
+ #
+ DIFFUSION_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'Flux'
+ NAME: FluxMRModiACEPlus
+ PRETRAINED_MODEL: ${ACE_PLUS_FFT_MODEL}
+ # IN_CHANNELS DESCRIPTION: model's input channels. TYPE: int default: 64
+ IN_CHANNELS: 448
+ # OUT_CHANNELS DESCRIPTION: model's input channels. TYPE: int default: 64
+ OUT_CHANNELS: 64
+ # HIDDEN_SIZE DESCRIPTION: model's hidden size. TYPE: int default: 1024
+ HIDDEN_SIZE: 3072
+ REDUX_DIM: 1152
+ # NUM_HEADS DESCRIPTION: number of heads in the transformer. TYPE: int default: 16
+ NUM_HEADS: 24
+ # AXES_DIM DESCRIPTION: dimensions of the axes of the positional encoding. TYPE: list default: [16, 56, 56]
+ AXES_DIM: [ 16, 56, 56 ]
+ # THETA DESCRIPTION: theta for positional encoding. TYPE: int default: 10000
+ THETA: 10000
+ # VEC_IN_DIM DESCRIPTION: dimension of the vector input. TYPE: int default: 768
+ VEC_IN_DIM: 768
+ # GUIDANCE_EMBED DESCRIPTION: whether to use guidance embedding. TYPE: bool default: False
+ GUIDANCE_EMBED: True
+ # CONTEXT_IN_DIM DESCRIPTION: dimension of the context input. TYPE: int default: 4096
+ CONTEXT_IN_DIM: 4096
+ # MLP_RATIO DESCRIPTION: ratio of mlp hidden size to hidden size. TYPE: float default: 4.0
+ MLP_RATIO: 4.0
+ # QKV_BIAS DESCRIPTION: whether to use bias in qkv projection. TYPE: bool default: True
+ QKV_BIAS: True
+ # DEPTH DESCRIPTION: number of transformer blocks. TYPE: int default: 19
+ DEPTH: 19
+ # DEPTH_SINGLE_BLOCKS DESCRIPTION: number of transformer blocks in the single stream block. TYPE: int default: 38
+ DEPTH_SINGLE_BLOCKS: 38
+ ATTN_BACKEND: flash_attn
+
+ #
+ FIRST_STAGE_MODEL:
+ NAME: AutoencoderKLFlux
+ EMBED_DIM: 16
+ PRETRAINED_MODEL: ${FLUX_FILL_PATH}/ae.safetensors
+ IGNORE_KEYS: [ ]
+ BATCH_SIZE: 8
+ USE_CONV: False
+ SCALE_FACTOR: 0.3611
+ SHIFT_FACTOR: 0.1159
+ #
+ ENCODER:
+ NAME: Encoder
+ CH: 128
+ OUT_CH: 3
+ NUM_RES_BLOCKS: 2
+ IN_CHANNELS: 3
+ ATTN_RESOLUTIONS: [ ]
+ CH_MULT: [ 1, 2, 4, 4 ]
+ Z_CHANNELS: 16
+ DOUBLE_Z: True
+ DROPOUT: 0.0
+ RESAMP_WITH_CONV: True
+ #
+ DECODER:
+ NAME: Decoder
+ CH: 128
+ OUT_CH: 3
+ NUM_RES_BLOCKS: 2
+ IN_CHANNELS: 3
+ ATTN_RESOLUTIONS: [ ]
+ CH_MULT: [ 1, 2, 4, 4 ]
+ Z_CHANNELS: 16
+ DROPOUT: 0.0
+ RESAMP_WITH_CONV: True
+ GIVE_PRE_END: False
+ TANH_OUT: False
+ #
+ COND_STAGE_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'T5PlusClipFluxEmbedder'
+ NAME: T5PlusClipFluxEmbedder
+ # T5_MODEL DESCRIPTION: TYPE: default: ''
+ T5_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'HFEmbedder'
+ NAME: HFEmbedder
+ # HF_MODEL_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_MODEL_CLS: T5EncoderModel
+ # MODEL_PATH DESCRIPTION: model folder path TYPE: NoneType default: None
+ MODEL_PATH: ${FLUX_FILL_PATH}/text_encoder_2/
+ # HF_TOKENIZER_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_TOKENIZER_CLS: T5Tokenizer
+ # TOKENIZER_PATH DESCRIPTION: tokenizer folder path TYPE: NoneType default: None
+ TOKENIZER_PATH: ${FLUX_FILL_PATH}/tokenizer_2/
+ ADDED_IDENTIFIER: [ '
','{image}', '{caption}', '{mask}', '{ref_image}', '{image1}', '{image2}', '{image3}', '{image4}', '{image5}', '{image6}', '{image7}', '{image8}', '{image9}' ]
+ # MAX_LENGTH DESCRIPTION: max length of input TYPE: int default: 77
+ MAX_LENGTH: 512
+ # OUTPUT_KEY DESCRIPTION: output key TYPE: str default: 'last_hidden_state'
+ OUTPUT_KEY: last_hidden_state
+ # D_TYPE DESCRIPTION: dtype TYPE: str default: 'bfloat16'
+ D_TYPE: bfloat16
+ # BATCH_INFER DESCRIPTION: batch infer TYPE: bool default: False
+ BATCH_INFER: False
+ CLEAN: whitespace
+ # CLIP_MODEL DESCRIPTION: TYPE: default: ''
+ CLIP_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'HFEmbedder'
+ NAME: HFEmbedder
+ # HF_MODEL_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_MODEL_CLS: CLIPTextModel
+ # MODEL_PATH DESCRIPTION: model folder path TYPE: NoneType default: None
+ MODEL_PATH: ${FLUX_FILL_PATH}/text_encoder/
+ # HF_TOKENIZER_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_TOKENIZER_CLS: CLIPTokenizer
+ # TOKENIZER_PATH DESCRIPTION: tokenizer folder path TYPE: NoneType default: None
+ TOKENIZER_PATH: ${FLUX_FILL_PATH}/tokenizer/
+ # MAX_LENGTH DESCRIPTION: max length of input TYPE: int default: 77
+ MAX_LENGTH: 77
+ # OUTPUT_KEY DESCRIPTION: output key TYPE: str default: 'last_hidden_state'
+ OUTPUT_KEY: pooler_output
+ # D_TYPE DESCRIPTION: dtype TYPE: str default: 'bfloat16'
+ D_TYPE: bfloat16
+ # BATCH_INFER DESCRIPTION: batch infer TYPE: bool default: False
+ BATCH_INFER: True
+ CLEAN: whitespace
+
+PREPROCESSOR:
+ - TYPE: repainting
+ REPAINTING_SCALE: 1.0
+ ANNOTATOR:
+ - TYPE: no_preprocess
+ REPAINTING_SCALE: 0.0
+ ANNOTATOR:
+ - TYPE: mosaic_repainting
+ REPAINTING_SCALE: 0.0
+ ANNOTATOR:
+ NAME: ColorAnnotator
+ RATIO: 64
+ - TYPE: contour_repainting
+ REPAINTING_SCALE: 0.0
+ ANNOTATOR:
+ NAME: InfoDrawContourAnnotator
+ INPUT_NC: 3
+ OUTPUT_NC: 1
+ N_RESIDUAL_BLOCKS: 3
+ SIGMOID: True
+ PRETRAINED_MODEL: "ms://iic/scepter_annotator@annotator/ckpts/informative_drawing_contour_style.pth"
+ - TYPE: depth_repainting
+ REPAINTING_SCALE: 0.0
+ ANNOTATOR:
+ NAME: MidasDetector
+ PRETRAINED_MODEL: "ms://iic/scepter_annotator@annotator/ckpts/dpt_hybrid-midas-501f0c75.pt"
+ - TYPE: recolorizing
+ REPAINTING_SCALE: 0.0
+ ANNOTATOR:
+ NAME: GrayAnnotator
+
+SAMPLE_ARGS:
+ SAMPLE_STEPS: 28
+ SAMPLER: flow_euler
+ SEED: 42
+ IMAGE_SIZE: [ 1024, 1024 ]
+ GUIDE_SCALE: 50
\ No newline at end of file
diff --git a/ACE_plus/data/eval.csv b/ACE_plus/data/eval.csv
new file mode 100644
index 0000000000000000000000000000000000000000..eed34472bb190b993ac55d9798620be4e5e2583b
--- /dev/null
+++ b/ACE_plus/data/eval.csv
@@ -0,0 +1,12 @@
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_1.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_1-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_1-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_1-Garment.jpg#;#The Woman wears this outfit consisting of a Sleeveless top.The sleeveless top in a light purple color. The top has a square neckline with a ruched design on the front. The ruffles on the shoulders are made of a soft, ruffled fabric and are tied in a bow at the back. The neckline is square and the top appears to be fitted at the waist.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_2.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_2-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_2-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_2-Garment.jpg#;#The Woman wears this outfit consisting of long denim shorts.The shorts are a pair of blue denim shorts. The shorts are more than the knee-length and have a high-waisted fit. They have a button and zipper closure at the waist and two pockets on the front. The fabric appears to be a medium wash denim with a slightly faded look. The waistband is adjustable with a belt loop and there are two buttons on the left side of the waistband. The legs of the shorts are slightly flared at the bottom, creating a flattering silhouette.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_3.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_3-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_3-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_3-Garment.jpg#;#The Woman wears this outfit consisting of a tank top.The tank top is sleeveless and has a V-neckline. It is made of a lightweight fabric with a blue and black leopard print pattern. The top has a black trim around the neckline, creating a unique and eye-catching design. The fabric appears to be lightweight and comfortable.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_4.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_4-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_4-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_4-Garment.jpg#;#The Woman wears this outfit consisting of a bikini bottom.The bikini bottom is with a leopard print design. The bikini bottom is made of a soft, stretchy fabric and has a low-rise waistband. The print is a combination of black and blue leopard spots, creating a bold and eye-catching look. The fabric appears to be lightweight and comfortable.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_5.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_5-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_5-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_5-Garment.jpg#;#The Woman wears this outfit consisting of a one-piece swimsuit.This one-piece swimsuit is with a colorful and intricate design. The swimsuit has a scoop neckline and thin straps that cross over the shoulders. The body of the swimsuit is predominantly blue with a zigzag pattern in the center. The pattern is made up of various shapes and colors, including pink, yellow, green, blue, and orange. The design is intricate and detailed, with a mix of geometric shapes and patterns. The overall effect is a vibrant and eye-catching piece of swimwear.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_6.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_6-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_6-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_6-Garment.jpg#;#The Woman wears this outfit consisting of a one-piece swimsuit.The swimsuit has a unique design with a black base and a colorful, abstract pattern in shades of blue, green, yellow, and orange. The pattern is made up of various shapes and lines, including circles, squares, and triangles. The top of the swimsuit features a criss-cross design with thin straps that tie around the neckline. The straps are tied in a bow at the back, creating a tie-up effect. The bottom of the bodysuit has an asymmetrical design with fringes along the edges. The overall look is bold and eye-catching.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_7.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_7-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_7-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_7-Garment.jpg#;#The Woman wears this outfit consisting of a white long dress with a floral print.The dress has a V-neckline with thin straps and a flowy skirt that falls below the knees. The print is predominantly white with pink and red flowers and green leaves scattered throughout. The flowers are in various shades of pink, red, and green, and the leaves are in shades of green and yellow. The skirt of the dress is gathered at the waist and falls to mid-calf length.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_8.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_8-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_8-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_8-Garment.jpg#;#The Woman wears this outfit consisting of a sleeveless top with a square neckline. The top is made of a yellow fabric with a floral print in shades of orange, pink, and blue. The print features large flowers and leaves in various shades of pink, blue, and green. The flowers are arranged in a symmetrical pattern, with the largest flower in the center and the smaller ones on either side. The neckline is square and has a ruffled detail at the top.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_9.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_9-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_9-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_9-Garment.jpg#;#The Woman wears this outfit consisting of a pair of denim shorts. The shorts are a light blue color and have a high-waisted fit. They have a button and zipper closure at the waist and two pockets on the front. The front of the shorts has a frayed hemline with tassels hanging down from the sides. The denim appears to be slightly faded and has a slightly distressed look.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_10.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_10-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_10-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_10-Garment.jpg#;#The Woman wears this outfit consisting of a white, long-sleeved top with a V-neckline. The top has a ribbed texture and appears to be made of a knit fabric. It has a round neckline and long sleeves that are slightly flared at the shoulders. The front of the top has an asymmetrical hemline that falls below the waist. The overall style of the outfit is casual and feminine.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_11.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_11-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_11-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_11-Garment.jpg#;#The Woman wears this outfit consisting of a bikini top. The top is a triangle shape with a deep V-neckline. It is made of a lightweight fabric and has a floral print in shades of blue, green, and white. The print features a variety of flowers in different sizes and shapes, including roses, daisies, and lilies. The straps of the top are thin and adjustable, allowing for a comfortable fit. The overall design is modern and stylish.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_12.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_12-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_12-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_12-Garment.jpg#;#The Woman wears this outfit consisting of a bikini bottom with a floral print. The bikini bottom is made of a soft, stretchy fabric and has a low-rise waistband. The print is a mix of blue and white flowers with green leaves and stems. The flowers are arranged in a symmetrical pattern, with some overlapping each other. The fabric appears to be lightweight and comfortable.#;#subject
diff --git a/ACE_plus/data/train.csv b/ACE_plus/data/train.csv
new file mode 100644
index 0000000000000000000000000000000000000000..eed34472bb190b993ac55d9798620be4e5e2583b
--- /dev/null
+++ b/ACE_plus/data/train.csv
@@ -0,0 +1,12 @@
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_1.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_1-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_1-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_1-Garment.jpg#;#The Woman wears this outfit consisting of a Sleeveless top.The sleeveless top in a light purple color. The top has a square neckline with a ruched design on the front. The ruffles on the shoulders are made of a soft, ruffled fabric and are tied in a bow at the back. The neckline is square and the top appears to be fitted at the waist.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_2.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_2-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_2-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_2-Garment.jpg#;#The Woman wears this outfit consisting of long denim shorts.The shorts are a pair of blue denim shorts. The shorts are more than the knee-length and have a high-waisted fit. They have a button and zipper closure at the waist and two pockets on the front. The fabric appears to be a medium wash denim with a slightly faded look. The waistband is adjustable with a belt loop and there are two buttons on the left side of the waistband. The legs of the shorts are slightly flared at the bottom, creating a flattering silhouette.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_3.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_3-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_3-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_3-Garment.jpg#;#The Woman wears this outfit consisting of a tank top.The tank top is sleeveless and has a V-neckline. It is made of a lightweight fabric with a blue and black leopard print pattern. The top has a black trim around the neckline, creating a unique and eye-catching design. The fabric appears to be lightweight and comfortable.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_4.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_4-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_4-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_4-Garment.jpg#;#The Woman wears this outfit consisting of a bikini bottom.The bikini bottom is with a leopard print design. The bikini bottom is made of a soft, stretchy fabric and has a low-rise waistband. The print is a combination of black and blue leopard spots, creating a bold and eye-catching look. The fabric appears to be lightweight and comfortable.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_5.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_5-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_5-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_5-Garment.jpg#;#The Woman wears this outfit consisting of a one-piece swimsuit.This one-piece swimsuit is with a colorful and intricate design. The swimsuit has a scoop neckline and thin straps that cross over the shoulders. The body of the swimsuit is predominantly blue with a zigzag pattern in the center. The pattern is made up of various shapes and colors, including pink, yellow, green, blue, and orange. The design is intricate and detailed, with a mix of geometric shapes and patterns. The overall effect is a vibrant and eye-catching piece of swimwear.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_6.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_6-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_6-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_6-Garment.jpg#;#The Woman wears this outfit consisting of a one-piece swimsuit.The swimsuit has a unique design with a black base and a colorful, abstract pattern in shades of blue, green, yellow, and orange. The pattern is made up of various shapes and lines, including circles, squares, and triangles. The top of the swimsuit features a criss-cross design with thin straps that tie around the neckline. The straps are tied in a bow at the back, creating a tie-up effect. The bottom of the bodysuit has an asymmetrical design with fringes along the edges. The overall look is bold and eye-catching.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_7.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_7-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_7-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_7-Garment.jpg#;#The Woman wears this outfit consisting of a white long dress with a floral print.The dress has a V-neckline with thin straps and a flowy skirt that falls below the knees. The print is predominantly white with pink and red flowers and green leaves scattered throughout. The flowers are in various shades of pink, red, and green, and the leaves are in shades of green and yellow. The skirt of the dress is gathered at the waist and falls to mid-calf length.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_8.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_8-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_8-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_8-Garment.jpg#;#The Woman wears this outfit consisting of a sleeveless top with a square neckline. The top is made of a yellow fabric with a floral print in shades of orange, pink, and blue. The print features large flowers and leaves in various shades of pink, blue, and green. The flowers are arranged in a symmetrical pattern, with the largest flower in the center and the smaller ones on either side. The neckline is square and has a ruffled detail at the top.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_9.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_9-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_9-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_9-Garment.jpg#;#The Woman wears this outfit consisting of a pair of denim shorts. The shorts are a light blue color and have a high-waisted fit. They have a button and zipper closure at the waist and two pockets on the front. The front of the shorts has a frayed hemline with tassels hanging down from the sides. The denim appears to be slightly faded and has a slightly distressed look.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_10.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_10-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_10-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_10-Garment.jpg#;#The Woman wears this outfit consisting of a white, long-sleeved top with a V-neckline. The top has a ribbed texture and appears to be made of a knit fabric. It has a round neckline and long sleeves that are slightly flared at the shoulders. The front of the top has an asymmetrical hemline that falls below the waist. The overall style of the outfit is casual and feminine.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_11.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_11-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_11-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_11-Garment.jpg#;#The Woman wears this outfit consisting of a bikini top. The top is a triangle shape with a deep V-neckline. It is made of a lightweight fabric and has a floral print in shades of blue, green, and white. The print features a variety of flowers in different sizes and shapes, including roses, daisies, and lilies. The straps of the top are thin and adjustable, allowing for a comfortable fit. The overall design is modern and stylish.#;#subject
+/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_12.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_12-Mask.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_12-Garment.jpg#;#/home/Ubuntu/Downloads/Unmodel/Training_Data/Venusperson_12-Garment.jpg#;#The Woman wears this outfit consisting of a bikini bottom with a floral print. The bikini bottom is made of a soft, stretchy fabric and has a low-rise waistband. The print is a mix of blue and white flowers with green leaves and stems. The flowers are arranged in a symmetrical pattern, with some overlapping each other. The fabric appears to be lightweight and comfortable.#;#subject
diff --git a/ACE_plus/examples/exp_example/20250602092700/checkpoints/ldm_step-300/0_SwiftLoRA/adapter_model.bin b/ACE_plus/examples/exp_example/20250602092700/checkpoints/ldm_step-300/0_SwiftLoRA/adapter_model.bin
new file mode 100644
index 0000000000000000000000000000000000000000..367184f3160beccff4cf96d44719ab9f9eaf08dd
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/checkpoints/ldm_step-300/0_SwiftLoRA/adapter_model.bin
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e5da7f6a045e92b4c00ee8027b980faa9d689bae81fc17329b0979c5d9fe4eb7
+size 612849379
diff --git a/ACE_plus/examples/exp_example/20250602092700/checkpoints/ldm_step-300/0_SwiftLoRA/comfyui_model.safetensors b/ACE_plus/examples/exp_example/20250602092700/checkpoints/ldm_step-300/0_SwiftLoRA/comfyui_model.safetensors
new file mode 100644
index 0000000000000000000000000000000000000000..bb0b12fe3233efa8f5d4a5a8cb62416a4b2e089a
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/checkpoints/ldm_step-300/0_SwiftLoRA/comfyui_model.safetensors
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8a472ed683d72a47d7f1dab66a845886c56b98d7152e7e14781e4d46a9724df3
+size 612742344
diff --git a/ACE_plus/examples/exp_example/20250602092700/checkpoints/ldm_step-550/0_SwiftLoRA/adapter_model.bin b/ACE_plus/examples/exp_example/20250602092700/checkpoints/ldm_step-550/0_SwiftLoRA/adapter_model.bin
new file mode 100644
index 0000000000000000000000000000000000000000..ae3fdc9bcbc2350a0afbdb0380150da4e0f3e779
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/checkpoints/ldm_step-550/0_SwiftLoRA/adapter_model.bin
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f140c05345a41e6b46a5ebe025b76568562b1c52ce5f642ea4acc5daa73b5ce1
+size 612849379
diff --git a/ACE_plus/examples/exp_example/20250602092700/checkpoints/ldm_step-550/0_SwiftLoRA/comfyui_model.safetensors b/ACE_plus/examples/exp_example/20250602092700/checkpoints/ldm_step-550/0_SwiftLoRA/comfyui_model.safetensors
new file mode 100644
index 0000000000000000000000000000000000000000..cc68cc87021800393285e006ce110bc9c3e79582
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/checkpoints/ldm_step-550/0_SwiftLoRA/comfyui_model.safetensors
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:205815300df169f6d5a440a09bf26a480375e5586f429d825fe16bb7e050da46
+size 612742344
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_5_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_5_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ed114e8f60ce6e570670388aa5a202b3cbbdda58
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_5_probe_0_[832_1232_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0385ff216fc75a6228b8816a26aa3f7842251bd46118c4d18a742291a311dcdc
+size 147064
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_3_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_3_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0c0d1a1ab44d7781a056aa8e09ae1069f70c2c94
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_3_probe_0_[752_1376_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:14fe21922e051696691a9c904d043aa882df413ceb5817bbf178d98504e4e0f9
+size 117858
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_3_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_3_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d86869466f62715b1083cdbf4a6ccf4ccd60d4b7
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_3_probe_0_[784_1328_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7a7c01e7c27eb2bd82ae14a5ce5472ec659e4d0ecb65becaf22dd8ebb36849dc
+size 117725
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_5_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_5_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bb8fa36f507b84f75153b6703fdb29904ca91596
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_5_probe_0_[784_1328_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0cd0a88e54d6a02e0972f3cdd1785d66925af81b62393f22169926d750012a33
+size 107503
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_3_probe_0_[784_1312_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_3_probe_0_[784_1312_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8ccf2bf96d694aa0e08a14e52b2ff7cde994c849
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_3_probe_0_[784_1312_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d04337ce4ab3adfac82298efc9c6beea6e1fc182befad5369ea426bf46e41a36
+size 119110
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/0_0_0_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/0_0_0_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f747a4ebacc28bcf087b32bb6fe0eded55a5cd02
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/0_0_0_probe_0_[752_1376_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cbc9ac47f0feb205fcf397067ce5a8b2c5b2653599997567093a1aad979d8fe1
+size 103302
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/1_0_3_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/1_0_3_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8bbe559258c667367f35beac29b78d62899aa21b
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/1_0_3_probe_0_[736_1408_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b9cd773511de7c25af44835907a111aa4655b516779c19530b86e7b27fdec9cd
+size 124025
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/1_0_5_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/1_0_5_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5b032d9246733644c05f17052489672023ffc15c
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/1_0_5_probe_0_[736_1408_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:398e00f0b2707181d8d75e6eb027729be4a48b9824ec2de1f05a9b37955d088c
+size 137824
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/2_0_3_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/2_0_3_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..37c65c807cbfe9da2f77ca9ded30aada8848052c
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/2_0_3_probe_0_[752_1376_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bc1296a6b5942080dc2bab1d6f918e4fb14c7c4a70083d38a18d3596de1342cb
+size 121740
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/2_0_5_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/2_0_5_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..227928ee42b5621d11d9de0f1eb4e17f2ed79eb7
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/2_0_5_probe_0_[752_1376_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:40d483cd46f2233a0f94cc393024bee77d7ae83b737c3ce60c2bb74e802020b6
+size 138359
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/3_0_3_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/3_0_3_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bf385f7abd9b6127845612c55ef8745d03c5d574
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/3_0_3_probe_0_[768_1344_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9495ea7e4c3fd0a85dd2292dba9f020190ad8e95ba08ad0b3bf3c68c854cec36
+size 120032
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/3_0_5_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/3_0_5_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cb0ab82fd28cd8a0834b7d25e494a54aac953787
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-240/BaseSolver_eval_image_step_240/3_0_5_probe_0_[768_1344_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4885e1453295ca09bbabdb287ad1a2b5049dbf0e0c6be55b67666e17097f0056
+size 126640
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/0_0_5_probe_0_[864_1184_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/0_0_5_probe_0_[864_1184_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1320a8a227c6bcd6ee02bf2d16ea30d3900c6ed0
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/0_0_5_probe_0_[864_1184_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ecc4d881bae298cb93f1dd73302b6885e856a00779cfda00853b365e8db434ad
+size 212528
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/1_0_3_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/1_0_3_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3803c6e71aabd76f1fedb4272887fcf92ab89adf
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/1_0_3_probe_0_[864_1200_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3efdc52d89f78b08995b69d92ff7b66e2aa4115528c8fad6ea4be1992ee0e5b0
+size 106185
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/1_0_5_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/1_0_5_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ced0c981c93a0b22b9338dfd103603c7833d6543
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/1_0_5_probe_0_[864_1200_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0f49b77df348b457c9bae0f2b416aa93c8544add52548a19bf03af5c33272e8e
+size 143984
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/2_0_3_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/2_0_3_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ee8d7de349dffb839c71276dd9cd097eb86481ad
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/2_0_3_probe_0_[800_1296_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b62721dbe9293fdc56148725c39f8ecd385e54bd20d3459cfc698eb46b6deab8
+size 115066
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/2_0_5_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/2_0_5_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c3d769b127472386b1556992932c4e5e733d3556
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/2_0_5_probe_0_[800_1296_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f2840bd785efb0ecc5dec94873849d1650537a15d88661e2506e17b7dbc97934
+size 138780
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/3_0_3_probe_0_[752_1392_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/3_0_3_probe_0_[752_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..26d7a40fa4ff2e78f301f21564a2bbedc248c77e
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/3_0_3_probe_0_[752_1392_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:406c2cfb53ee633caddcff763196b193f83cfda489844270084eb900a4c157f7
+size 128796
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/3_0_5_probe_0_[752_1392_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/3_0_5_probe_0_[752_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..48d143aa688b5b35cd3545deef9300f9f90b8e0c
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-270/BaseSolver_eval_image_step_270/3_0_5_probe_0_[752_1392_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0c5b5c764cc1c477681fde632631a72ea01717a48de07b760ecf57bc834523ea
+size 142685
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/0_0_0_probe_0_[768_1360_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/0_0_0_probe_0_[768_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6abf907c9fb7dd294e640de6f3472bf7bf276eb9
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/0_0_0_probe_0_[768_1360_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bd62e166a5a8584bcad7db6d78e0557b106439cf1a98f6ca7b3e3ae27fab19b0
+size 102455
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/0_0_5_probe_0_[768_1360_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/0_0_5_probe_0_[768_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..550f65957ff71b2d0c1eb5fbe65a198ce18fc03d
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/0_0_5_probe_0_[768_1360_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:27db17d0563517732d776772c10f559a3b572d018495c82532588504ed13e31c
+size 106350
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/1_0_3_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/1_0_3_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ca28157613770f19aab315d240097800a0bab59e
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/1_0_3_probe_0_[768_1344_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e838a931e99230421fa612993170d096d6d7484c82754269fdcb071bb7d3be6c
+size 113204
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/2_0_5_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/2_0_5_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4a0b565363065fe1b760086bf482e499bfaaa5e8
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/2_0_5_probe_0_[800_1280_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4f39d03bf77a5df6427dd644d44bd06e858d1fd1e8e4831a0e0059d5fbab708a
+size 114660
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/3_0_3_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/3_0_3_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a128cee27d7616b3a1808315055b26776292aefa
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/3_0_3_probe_0_[736_1392_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:88bb394b6bf2e0f8ec9a7dc2020252cf0f46497689d7d67ffc9be97f63b857ce
+size 128145
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/3_0_5_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/3_0_5_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e179b73a24bd1360f327883317113a24821c073b
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-380/BaseSolver_eval_image_step_380/3_0_5_probe_0_[736_1392_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2d0d24e3ff796584faebe167976253289b3657cc03bd4c43d7abf1d3512813dc
+size 122231
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/0_0_0_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/0_0_0_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..803c271e09350b0ca330d3f4b330ffbae1c7c7ee
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/0_0_0_probe_0_[864_1200_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2dec03600661ced929c4b0eb78b4a54c4e8fd1aa9cfb197c94c39e436d7e13b3
+size 100821
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/0_0_5_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/0_0_5_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a41905040170cd5a8e681dc70806cfd9f327ca5b
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/0_0_5_probe_0_[864_1200_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e6dd08bbc9895ffd0d5080462b3c95b7f6a079e6a3727bc656ce9e392c16d7ee
+size 108283
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/1_0_3_probe_0_[816_1264_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/1_0_3_probe_0_[816_1264_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..df57032f4e1acf593ce33914318d429c51135842
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/1_0_3_probe_0_[816_1264_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1e54497693170e835595e824a0cef5e92c48c2b02e2b92975d965450284b8ff3
+size 107182
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/2_0_3_probe_0_[752_1392_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/2_0_3_probe_0_[752_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6ed132f0ad696131c866c50cd15e4a1bb82761e3
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/2_0_3_probe_0_[752_1392_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:37f7a4cf0995bf5590fd01eb327b4a044abefa6bb9bbd93b848bb262ad0939d4
+size 123817
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/2_0_5_probe_0_[752_1392_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/2_0_5_probe_0_[752_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1eae8ee1bd51a314f3fac9cf2cf78797b31ee4a5
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/2_0_5_probe_0_[752_1392_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:47cd2e89cd6573da5a2ea036ef0d9db859e1993fd321dacfedacf275837c2bd8
+size 128198
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/3_0_3_probe_0_[784_1312_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/3_0_3_probe_0_[784_1312_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8b44b69828ae46c78f6cc7a606e3d33b777971c3
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/3_0_3_probe_0_[784_1312_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d542b1f7d724763b73343c8ce45d536debb441ee0abae41aa6ad0768bcedea3f
+size 119644
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/3_0_5_probe_0_[784_1312_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/3_0_5_probe_0_[784_1312_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fe1ac31b983d445ed6d8716b933b04faaa62493f
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-430/BaseSolver_eval_image_step_430/3_0_5_probe_0_[784_1312_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a5452e3fb771a828d1aa45cc4362a9fd0190be013be47cdb5109ae3797916dd9
+size 123464
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/0_0_0_probe_0_[816_1264_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/0_0_0_probe_0_[816_1264_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f989c407319d51ebfbc2d51d7a282999f5c8c6d0
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/0_0_0_probe_0_[816_1264_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1a0e82fc553593417ed18d487d67d4ffee39b0034d5bb66b3ead023180f08cee
+size 100088
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/0_0_5_probe_0_[816_1264_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/0_0_5_probe_0_[816_1264_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..55c9223c4caa459a495bd2e4dd1ed92a374bf2ad
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/0_0_5_probe_0_[816_1264_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d6679d567b4d079cb4066b1549cfac50e25d0f05e483e6a341443bbcbe7bdd10
+size 149228
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/1_0_3_probe_0_[816_1264_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/1_0_3_probe_0_[816_1264_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6d8601d1194e05f6824a25bb220be7e9f5d02500
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/1_0_3_probe_0_[816_1264_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6eebbb0c1ccc7b7e0d198a450d5c814892f57ada70903ad31e239c395ff0cee3
+size 109656
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/1_0_5_probe_0_[816_1264_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/1_0_5_probe_0_[816_1264_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b26dacd3b0fc1ae519e05ae8501187a97bbf152f
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/1_0_5_probe_0_[816_1264_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dd2d2569f60fd70258f76c0b86b06eeb62e445048cb482746ca32e2d4b7398a6
+size 102929
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/2_0_3_probe_0_[768_1328_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/2_0_3_probe_0_[768_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4a6b4401b6e848e73074633951603f4375820b67
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/2_0_3_probe_0_[768_1328_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e4fe716fc63a361cb759548eef62140215a4501699bb7404053ec8c8c8e5babb
+size 113564
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/2_0_5_probe_0_[768_1328_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/2_0_5_probe_0_[768_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f66aa54b02a00cb6ad68f96bf84a71232b1843b3
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/2_0_5_probe_0_[768_1328_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6d9600c09331c05525ce0be32245da280499123663e0ce9df72d17e7aadc88ec
+size 125918
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/3_0_3_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/3_0_3_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3a8e15b19f8e52a9b069599630c854787daa26fc
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/3_0_3_probe_0_[864_1200_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3ebce17e90e1de09fb85c4f872572a66444eaf6eed7dcde6cd600a235a01b244
+size 111729
diff --git a/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/3_0_5_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/3_0_5_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c9a42174f189ff608448116fd9971a76e3f67519
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/eval_probe/step-620/BaseSolver_eval_image_step_620/3_0_5_probe_0_[864_1200_3].jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:68b25dbab7f6b3b116b54ceb305e351ff0a090d6c8a537b3ba84adc0f352e16e
+size 139528
diff --git a/ACE_plus/examples/exp_example/20250602092700/tensorboard/events.out.tfevents.1748856547.0143-dsm2-ty6k-prxmx70072.546556.0 b/ACE_plus/examples/exp_example/20250602092700/tensorboard/events.out.tfevents.1748856547.0143-dsm2-ty6k-prxmx70072.546556.0
new file mode 100644
index 0000000000000000000000000000000000000000..64d38eb1ec32d29203f46f42f16c7280501297f8
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/tensorboard/events.out.tfevents.1748856547.0143-dsm2-ty6k-prxmx70072.546556.0
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5f6dd32d0d129e1a70d2e8d1645d3d6cf4ddbebffa1e89a155f3a4c7138fb968
+size 108598
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_0_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_0_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7fb2d89c4749a5c789f99f1416986434cef65192
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_0_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_1_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_1_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c23623a7ba3b5e850f48d14fa3ab0e20c6633e39
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_1_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_2_probe_0_[848_1232_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_2_probe_0_[848_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..18ef35ed7734852767e1c20097dae8c6fdceedec
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_2_probe_0_[848_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_4_probe_0_[848_1232_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_4_probe_0_[848_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..18ef35ed7734852767e1c20097dae8c6fdceedec
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_4_probe_0_[848_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..cec2f87055c348cac9dc39e7aab757f62207b45f
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..2111517caec01eb8ce23675f72b22e4a28c7e143
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-0/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_0_probe_0_[848_1232_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_1_probe_0_[848_1232_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_2_probe_0_[848_1232_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_3_probe_0_[848_1232_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_4_probe_0_[848_1232_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0/0_0_5_probe_0_[848_1232_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-0/BaseSolver_train_image_step_0_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_1_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_1_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d1d24deb727c37b46d2d776224ee6accd0954f19
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_1_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_2_probe_0_[784_1328_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_2_probe_0_[784_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..be673e188236672a63972d3d5a7c494e555d4496
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_2_probe_0_[784_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_3_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_3_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4789e1a2c72704086a10bbaa8809072dc1c7f4ac
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_3_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_4_probe_0_[784_1328_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_4_probe_0_[784_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..be673e188236672a63972d3d5a7c494e555d4496
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_4_probe_0_[784_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..ae9a8e185ae9676991cef03e4137e52a20ed6639
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..6acf4bce6fad3ec0da0610a2dd3995f0ac5250f4
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-10/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this traditional Indian outfit, consisting of a red blouse and a pair of yellow dhoti pants. The blouse has a round neckline and short sleeves with gold embroidery on the neckline. The dhoti is made of a lightweight fabric and has a high-waisted fit. The pants are also made of the same fabric and have an elastic waistband."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_0_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_1_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_2_probe_0_[784_1328_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_3_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_4_probe_0_[784_1328_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10/0_0_5_probe_0_[784_1328_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-10/BaseSolver_train_image_step_10_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this traditional Indian outfit, consisting of a red blouse and a pair of yellow dhoti pants. The blouse has a round neckline and short sleeves with gold embroidery on the neckline. The dhoti is made of a lightweight fabric and has a high-waisted fit. The pants are also made of the same fabric and have an elastic waistband."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-150/BaseSolver_train_image_step_150/0_0_0_probe_0_[768_1360_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-150/BaseSolver_train_image_step_150/0_0_0_probe_0_[768_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..db6398d296b4af4c7cb2b3161517e815500a065b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-150/BaseSolver_train_image_step_150/0_0_0_probe_0_[768_1360_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-150/BaseSolver_train_image_step_150/0_0_1_probe_0_[768_1360_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-150/BaseSolver_train_image_step_150/0_0_1_probe_0_[768_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..39eef62e8cd93e0c4b0c4daf3009575eb96afa19
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-150/BaseSolver_train_image_step_150/0_0_1_probe_0_[768_1360_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-150/BaseSolver_train_image_step_150/0_0_2_probe_0_[768_1360_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-150/BaseSolver_train_image_step_150/0_0_2_probe_0_[768_1360_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d198d9949e9621c8eef9005795828549a31b0db9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-150/BaseSolver_train_image_step_150/0_0_2_probe_0_[768_1360_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-150/BaseSolver_train_image_step_150/0_0_4_probe_0_[768_1360_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-150/BaseSolver_train_image_step_150/0_0_4_probe_0_[768_1360_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d198d9949e9621c8eef9005795828549a31b0db9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-150/BaseSolver_train_image_step_150/0_0_4_probe_0_[768_1360_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_0_probe_0_[864_1184_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_0_probe_0_[864_1184_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f2196089a3b6dccf47c1b2268690a8f16e1a6ee5
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_0_probe_0_[864_1184_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_1_probe_0_[864_1184_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_1_probe_0_[864_1184_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3ad4c2a152a4b316ccd8a20c2c6d0f25b6c7ec41
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_1_probe_0_[864_1184_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_2_probe_0_[864_1184_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_2_probe_0_[864_1184_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..09fad89de52243526bf77db785b65bbaa5ac6268
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_2_probe_0_[864_1184_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_4_probe_0_[864_1184_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_4_probe_0_[864_1184_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..09fad89de52243526bf77db785b65bbaa5ac6268
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_4_probe_0_[864_1184_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..25735d7a45e9743f5233395b105bb6be6de7efea
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..72a743eefa932196ff5b8c482ecb64a73b032549
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-160/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this outfit consisting of a short-sleeved shirt and shorts. The shirt is made of a red and white checkered fabric with a button-down collar and short sleeves. The shorts are also made of the same fabric and have a drawstring waistband."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_0_probe_0_[864_1184_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_1_probe_0_[864_1184_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_2_probe_0_[864_1184_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_3_probe_0_[864_1184_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_4_probe_0_[864_1184_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160/0_0_5_probe_0_[864_1184_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-160/BaseSolver_train_image_step_160_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this outfit consisting of a short-sleeved shirt and shorts. The shirt is made of a red and white checkered fabric with a button-down collar and short sleeves. The shorts are also made of the same fabric and have a drawstring waistband."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_0_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_0_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..19cee76168352002c7d23f60815332cbc400c04c
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_0_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_1_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_1_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8ccdfcf4b24219ad6527d3dbd911c58b3a933e69
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_1_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_2_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_2_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f33c0434d42005b72ee3e8a5c1e912efcc49cda7
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_2_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_4_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_4_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f33c0434d42005b72ee3e8a5c1e912efcc49cda7
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_4_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..e7795adcfe0efa2b719a82caabd728864dad9c3b
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..caba0c7ff4229a6384ee340bc37eeab7381ef989
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-170/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this traditional Indian outfit. The outfit consists of a long-sleeved blouse with a red and gold patterned design on the neckline and sleeves. The blouse has a V-neckline and is tied at the waist with a gold ribbon. The pants are made of a shiny, golden-brown fabric with intricate red and white embroidery on the sides. The trousers have a high-waisted fit and are cinched at the ankles with a matching gold belt. The overall style of the outfit is traditional and elegant."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_0_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_1_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_2_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_3_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_4_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170/0_0_5_probe_0_[800_1280_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-170/BaseSolver_train_image_step_170_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this traditional Indian outfit. The outfit consists of a long-sleeved blouse with a red and gold patterned design on the neckline and sleeves. The blouse has a V-neckline and is tied at the waist with a gold ribbon. The pants are made of a shiny, golden-brown fabric with intricate red and white embroidery on the sides. The trousers have a high-waisted fit and are cinched at the ankles with a matching gold belt. The overall style of the outfit is traditional and elegant."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_0_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_0_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..175738e01edc6360cf2bcf831deb12b70ada6d75
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_0_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_1_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_1_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c46e333229dc57cb6325ed8a50cb9a907e824fe7
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_1_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_2_probe_0_[832_1232_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_2_probe_0_[832_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..076997f94322695bed0e123c7f82a86f3b4d5947
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_2_probe_0_[832_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_4_probe_0_[832_1232_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_4_probe_0_[832_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..076997f94322695bed0e123c7f82a86f3b4d5947
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_4_probe_0_[832_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..16f5eab40bd94020f7f98088ffadbfa1789ef6a7
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..850f992ff61d842be36ac7aa61a105984eb7a64a
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-190/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_0_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_1_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_2_probe_0_[832_1232_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_3_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_4_probe_0_[832_1232_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190/0_0_5_probe_0_[832_1232_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-190/BaseSolver_train_image_step_190_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_0_probe_0_[848_1216_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_0_probe_0_[848_1216_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f73470ca28afb58bf50f50ad07ccfcbb08d1a2f4
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_0_probe_0_[848_1216_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_1_probe_0_[848_1216_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_1_probe_0_[848_1216_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fd256424033e678251c1128975e7ea559281847a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_1_probe_0_[848_1216_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_2_probe_0_[848_1216_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_2_probe_0_[848_1216_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d2a1a9994ceeb1599177abd8c98cd7879b2429f0
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_2_probe_0_[848_1216_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_4_probe_0_[848_1216_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_4_probe_0_[848_1216_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d2a1a9994ceeb1599177abd8c98cd7879b2429f0
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_4_probe_0_[848_1216_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..b89266020c8dabccdff482310afd65ff72cdaf66
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..8c542bc72feb3373659e5dfae70103a4104e5c28
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-310/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_0_probe_0_[848_1216_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_1_probe_0_[848_1216_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_2_probe_0_[848_1216_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_3_probe_0_[848_1216_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_4_probe_0_[848_1216_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310/0_0_5_probe_0_[848_1216_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-310/BaseSolver_train_image_step_310_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_0_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_0_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1e6b4b7684ddf82b153bdd2d8f17525395cbe545
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_0_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_1_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_1_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ba379523bf213d6acbab937a9a3e3d4552e03052
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_1_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_2_probe_0_[832_1248_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_2_probe_0_[832_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4eef32e4bba6c9ba3d005527651d697783cc0247
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_2_probe_0_[832_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_4_probe_0_[832_1248_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_4_probe_0_[832_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4eef32e4bba6c9ba3d005527651d697783cc0247
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_4_probe_0_[832_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..85b92db4df01c1b372bcc1478b88509d1b24582a
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..c199e400d180ef7ed46440b4e9f15085b6bf0b19
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-350/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_0_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_1_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_2_probe_0_[832_1248_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_3_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_4_probe_0_[832_1248_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350/0_0_5_probe_0_[832_1248_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-350/BaseSolver_train_image_step_350_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_0_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_0_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a1a9da84dc647bfa64695069f5d0c78c288cb574
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_0_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_1_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_1_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b5f4fff7d632238e9e1bbddb10d0ca82f66758eb
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_1_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_2_probe_0_[736_1408_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_2_probe_0_[736_1408_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a5d63abe73f7fc991e2baec4faec9cd09093108e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_2_probe_0_[736_1408_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_4_probe_0_[736_1408_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_4_probe_0_[736_1408_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a5d63abe73f7fc991e2baec4faec9cd09093108e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_4_probe_0_[736_1408_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..97b7e0f24ee8335dfbea723585d6df5fbb41b133
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..5e4a9f382efd8a12409445c04a39fe94ad5c1692
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-40/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this traditional Indian outfit. The outfit consists of a long-sleeved blouse with a red and gold patterned design on the neckline and sleeves. The blouse has a V-neckline and is tied at the waist with a gold ribbon. The pants are made of a shiny, golden-brown fabric with intricate red and white embroidery on the sides. The trousers have a high-waisted fit and are cinched at the ankles with a matching gold belt. The overall style of the outfit is traditional and elegant."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_0_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_1_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_2_probe_0_[736_1408_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_3_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_4_probe_0_[736_1408_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40/0_0_5_probe_0_[736_1408_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-40/BaseSolver_train_image_step_40_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this traditional Indian outfit. The outfit consists of a long-sleeved blouse with a red and gold patterned design on the neckline and sleeves. The blouse has a V-neckline and is tied at the waist with a gold ribbon. The pants are made of a shiny, golden-brown fabric with intricate red and white embroidery on the sides. The trousers have a high-waisted fit and are cinched at the ankles with a matching gold belt. The overall style of the outfit is traditional and elegant."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_0_probe_0_[848_1216_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_0_probe_0_[848_1216_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..66ce926812be314080ee478a6b3cfedb618506e4
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_0_probe_0_[848_1216_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_1_probe_0_[848_1216_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_1_probe_0_[848_1216_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..78c5c1ff3a8de2a07dafa6496f1db727119734f8
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_1_probe_0_[848_1216_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_2_probe_0_[848_1216_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_2_probe_0_[848_1216_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..28676d070ef45c2c621ae1db9bc5239c27114e0b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_2_probe_0_[848_1216_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_4_probe_0_[848_1216_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_4_probe_0_[848_1216_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..28676d070ef45c2c621ae1db9bc5239c27114e0b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_4_probe_0_[848_1216_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..aed64c3b5ed1adb27cf7e447dd23de54ddb9e758
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..a9bf3db89807a72310cae6af705cdd892f8d8c59
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-410/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_0_probe_0_[848_1216_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_1_probe_0_[848_1216_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_2_probe_0_[848_1216_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_3_probe_0_[848_1216_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_4_probe_0_[848_1216_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410/0_0_5_probe_0_[848_1216_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-410/BaseSolver_train_image_step_410_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_0_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_0_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9c2f3f8f6e91cbfd217a422b5b9978c8250840c9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_0_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_1_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_1_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2d76668e062652e6a00779635c0b57a13eaa647a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_1_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_2_probe_0_[752_1376_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_2_probe_0_[752_1376_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..114d7ff3cee73715121eb5211e51ad8bb11b1ecc
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_2_probe_0_[752_1376_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_4_probe_0_[752_1376_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_4_probe_0_[752_1376_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..114d7ff3cee73715121eb5211e51ad8bb11b1ecc
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_4_probe_0_[752_1376_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..26fadc1b951f8192c9e215cdfabed2154fe80d45
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..044c743a0b157c86313f76671a3e47ef9ec0b6e4
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-460/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this outfit consisting of a short-sleeved shirt and shorts. The shirt is made of a red and white checkered fabric with a button-down collar and short sleeves. The shorts are also made of the same fabric and have a drawstring waistband."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_0_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_1_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_2_probe_0_[752_1376_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_3_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_4_probe_0_[752_1376_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460/0_0_5_probe_0_[752_1376_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-460/BaseSolver_train_image_step_460_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this outfit consisting of a short-sleeved shirt and shorts. The shirt is made of a red and white checkered fabric with a button-down collar and short sleeves. The shorts are also made of the same fabric and have a drawstring waistband."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_0_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_0_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..572c9e5e5319b9aec8c69238c7998e980ae9750d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_0_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_1_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_1_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c849a6bd04e2bf5049c64d57061a6a8c858061a0
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_1_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_2_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_2_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..65c2855c1035c6877b09158f115856175bc4e1a1
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_2_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_4_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_4_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..65c2855c1035c6877b09158f115856175bc4e1a1
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_4_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..dceaee82c49d72a8bae63ef9f61c661a9f3c53ea
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..fa3776ab0230afd1d70538ed1397ee67759eb614
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-510/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this outfit consisting of a short-sleeved shirt and shorts. The shirt is made of a red and white checkered fabric with a button-down collar and short sleeves. The shorts are also made of the same fabric and have a drawstring waistband."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_0_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_1_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_2_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_3_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_4_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510/0_0_5_probe_0_[736_1392_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-510/BaseSolver_train_image_step_510_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this outfit consisting of a short-sleeved shirt and shorts. The shirt is made of a red and white checkered fabric with a button-down collar and short sleeves. The shorts are also made of the same fabric and have a drawstring waistband."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_0_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_0_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9d4ca98d13716b14ddbf94335936397783f56078
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_0_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_1_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_1_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..59f3c52027dd5fc87ec1624b92cbb8ee251e3764
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_1_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_2_probe_0_[784_1328_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_2_probe_0_[784_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d695f58e7529d7b4cc6f99f0bcd026cbebf924fd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_2_probe_0_[784_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_4_probe_0_[784_1328_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_4_probe_0_[784_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d695f58e7529d7b4cc6f99f0bcd026cbebf924fd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_4_probe_0_[784_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..ecadc9ef9cc07c8a67ea1352399af4839ad3cea7
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..4876db4dd22dce80a1fb7866bbd8a28ddbe1c4b4
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-540/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this outfit consisting of a short-sleeved shirt and shorts. The shirt is made of a red and white checkered fabric with a button-down collar and short sleeves. The shorts are also made of the same fabric and have a drawstring waistband."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_0_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_1_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_2_probe_0_[784_1328_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_3_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_4_probe_0_[784_1328_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540/0_0_5_probe_0_[784_1328_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-540/BaseSolver_train_image_step_540_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this outfit consisting of a short-sleeved shirt and shorts. The shirt is made of a red and white checkered fabric with a button-down collar and short sleeves. The shorts are also made of the same fabric and have a drawstring waistband."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_0_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_0_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c7aabe13f397fad26e416a9f532159f99cf6ccba
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_0_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_1_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_1_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..91895338a391e8007e311d9b7e9e1df2cdb1b7e3
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_1_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_2_probe_0_[752_1376_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_2_probe_0_[752_1376_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1d284137bdab611b7114c9e9189c914967ef5838
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_2_probe_0_[752_1376_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_4_probe_0_[752_1376_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_4_probe_0_[752_1376_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1d284137bdab611b7114c9e9189c914967ef5838
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_4_probe_0_[752_1376_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..2ae3ad2308d0466dbfe8c566f60c546056c24174
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..e49f20aafd98b2a15587dcd5975d42c5e003a39d
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-580/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_0_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_1_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_2_probe_0_[752_1376_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_3_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_4_probe_0_[752_1376_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580/0_0_5_probe_0_[752_1376_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-580/BaseSolver_train_image_step_580_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_1_probe_0_[752_1360_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_1_probe_0_[752_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3a6f35812e3ca469cee5c54992d957b1ba33dc56
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_1_probe_0_[752_1360_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_2_probe_0_[752_1360_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_2_probe_0_[752_1360_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..afe4acc62b2646cabbdb359cb753c73d664fc9dd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_2_probe_0_[752_1360_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_3_probe_0_[752_1360_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_3_probe_0_[752_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..44e415857574434f8d1320b885f7112e1e0af693
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_3_probe_0_[752_1360_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_4_probe_0_[752_1360_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_4_probe_0_[752_1360_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..afe4acc62b2646cabbdb359cb753c73d664fc9dd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_4_probe_0_[752_1360_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..3ce2f2c84db77c22fad70b057fb8201fe977d8ac
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..9d346722a7eff94898c12477afed28a7265b72a4
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-600/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this traditional Indian outfit, consisting of a red blouse and a pair of yellow dhoti pants. The blouse has a round neckline and short sleeves with gold embroidery on the neckline. The dhoti is made of a lightweight fabric and has a high-waisted fit. The pants are also made of the same fabric and have an elastic waistband."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_0_probe_0_[752_1360_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_1_probe_0_[752_1360_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_2_probe_0_[752_1360_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_3_probe_0_[752_1360_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_4_probe_0_[752_1360_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600/0_0_5_probe_0_[752_1360_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-600/BaseSolver_train_image_step_600_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this traditional Indian outfit, consisting of a red blouse and a pair of yellow dhoti pants. The blouse has a round neckline and short sleeves with gold embroidery on the neckline. The dhoti is made of a lightweight fabric and has a high-waisted fit. The pants are also made of the same fabric and have an elastic waistband."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_0_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_0_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..dd23c5e101897def1ea5d884b2b1ac31ae84ac10
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_0_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_1_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_1_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..177a5431f2c9ce8073a92b10b67f4e4b2d9aaa0a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_1_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_2_probe_0_[768_1344_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_2_probe_0_[768_1344_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b6d84e6f5411eb7470ffa4fc21dd6ad32c927a98
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_2_probe_0_[768_1344_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_4_probe_0_[768_1344_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_4_probe_0_[768_1344_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b6d84e6f5411eb7470ffa4fc21dd6ad32c927a98
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_4_probe_0_[768_1344_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..3f766693af4f5a1e6aa061364aa84691b633e832
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..79e5450b963a8f841e64a0803478f3a96304c432
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-630/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_0_probe_0_[768_1344_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_1_probe_0_[768_1344_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_2_probe_0_[768_1344_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_3_probe_0_[768_1344_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_4_probe_0_[768_1344_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630/0_0_5_probe_0_[768_1344_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-630/BaseSolver_train_image_step_630_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_0_probe_0_[752_1360_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_0_probe_0_[752_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e050ac1267a174c53fec0af0b780d7f7b97e9ce8
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_0_probe_0_[752_1360_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_1_probe_0_[752_1360_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_1_probe_0_[752_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..94bb55e3def3685ddacf2269beb6624e833df22e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_1_probe_0_[752_1360_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_2_probe_0_[752_1360_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_2_probe_0_[752_1360_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..57b2f99cc5c21f42b23a5132dd6bade9d8646887
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_2_probe_0_[752_1360_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_4_probe_0_[752_1360_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_4_probe_0_[752_1360_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..57b2f99cc5c21f42b23a5132dd6bade9d8646887
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_4_probe_0_[752_1360_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..9bbd8de335cd6ce3b0ad7d98660b1466bc96e5a8
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..4d409507924f0a7f1b4ca91b9a7513aedfb163fb
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-640/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_0_probe_0_[752_1360_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_1_probe_0_[752_1360_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_2_probe_0_[752_1360_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_3_probe_0_[752_1360_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_4_probe_0_[752_1360_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640/0_0_5_probe_0_[752_1360_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-640/BaseSolver_train_image_step_640_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_0_probe_0_[784_1312_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_0_probe_0_[784_1312_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3ee00a4e5f5ca806d83d038b3b8b8dcd0f19e552
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_0_probe_0_[784_1312_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_1_probe_0_[784_1312_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_1_probe_0_[784_1312_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ee9b1a774d7c47f461d9d5fe06e6d61ea366b12b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_1_probe_0_[784_1312_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_2_probe_0_[784_1312_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_2_probe_0_[784_1312_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f8581ae835fbb84c1939f6369697ad4bb35fc2c2
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_2_probe_0_[784_1312_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_4_probe_0_[784_1312_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_4_probe_0_[784_1312_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f8581ae835fbb84c1939f6369697ad4bb35fc2c2
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_4_probe_0_[784_1312_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..a9a5440dcf2eae3ba9f89397f9a2544e9a4bdcaa
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..bf36a00e505de83aa64fd025b568ddbaf5f45ff4
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-650/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_0_probe_0_[784_1312_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_1_probe_0_[784_1312_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_2_probe_0_[784_1312_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_3_probe_0_[784_1312_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_4_probe_0_[784_1312_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650/0_0_5_probe_0_[784_1312_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-650/BaseSolver_train_image_step_650_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this traditional Indian outfit, consisting of a blouse and a pair of dhoti pants. The blouse is a light pink color with red and gold stripes running horizontally across it. The dhoti is a deep red color with a zigzag pattern in shades of pink and white. The top of the outfit has a round neckline and short sleeves with gold piping along the edges. The outfit appears to be made of a lightweight fabric and has a loose fit."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_1_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_1_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5a76f63d145074ef20d256e5decfdbbcaaf230bb
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_1_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_2_probe_0_[832_1248_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_2_probe_0_[832_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3054ba62dc436ba18ea7b5bf8136882946587e84
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_2_probe_0_[832_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_3_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_3_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4639192a046cad43f7c468533d2cad82d77a5f4e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_3_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_4_probe_0_[832_1248_1].jpg b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_4_probe_0_[832_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3054ba62dc436ba18ea7b5bf8136882946587e84
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_4_probe_0_[832_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90_probe.html b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..b64cddd2580df82ad453b90a63a186f80c7f4c92
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/meta.json b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..4ef9bc1d2cb28103e03300207f2f1179ff8597cf
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250602092700/train_probe/step-90/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The baby boy wears this traditional Indian outfit, consisting of a red blouse and a pair of yellow dhoti pants. The blouse has a round neckline and short sleeves with gold embroidery on the neckline. The dhoti is made of a lightweight fabric and has a high-waisted fit. The pants are also made of the same fabric and have an elastic waistband."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_0_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_1_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_2_probe_0_[832_1248_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_3_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_4_probe_0_[832_1248_1].jpg", "./examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90/0_0_5_probe_0_[832_1248_3].jpg"]], "html": "./examples/exp_example/20250602092700/train_probe/step-90/BaseSolver_train_image_step_90_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The baby boy wears this traditional Indian outfit, consisting of a red blouse and a pair of yellow dhoti pants. The blouse has a round neckline and short sleeves with gold embroidery on the neckline. The dhoti is made of a lightweight fabric and has a high-waisted fit. The pants are also made of the same fabric and have an elastic waistband."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-100/0_SwiftLoRA/adapter_config.json b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-100/0_SwiftLoRA/adapter_config.json
new file mode 100644
index 0000000000000000000000000000000000000000..9a4361023064a87ef1d86551710549271b2575e0
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-100/0_SwiftLoRA/adapter_config.json
@@ -0,0 +1,39 @@
+{
+ "alpha_pattern": {},
+ "auto_mapping": null,
+ "base_model_name_or_path": null,
+ "bias": "none",
+ "corda_config": null,
+ "enable_lora": null,
+ "eva_config": null,
+ "exclude_modules": null,
+ "fan_in_fan_out": false,
+ "inference_mode": false,
+ "init_lora_weights": true,
+ "layer_replication": null,
+ "layers_pattern": null,
+ "layers_to_transform": null,
+ "loftq_config": {},
+ "lora_alpha": 64,
+ "lora_bias": false,
+ "lora_dropout": 0.0,
+ "lora_dtype": null,
+ "lorap_emb_lr": 1e-06,
+ "lorap_lr_ratio": 16.0,
+ "megatron_config": null,
+ "megatron_core": "megatron.core",
+ "model_key_mapping": null,
+ "modules_to_save": null,
+ "peft_type": "LORA",
+ "r": 64,
+ "rank_pattern": {},
+ "revision": null,
+ "swift_type": "LORA",
+ "target_modules": "(model.double_blocks.*(.qkv|.img_mlp.0|.img_mlp.2|.txt_mlp.0|.txt_mlp.2|.proj|.img_mod.lin|.txt_mod.lin))|(model.single_blocks.*(.linear1|.linear2|.modulation.lin))$",
+ "task_type": null,
+ "trainable_token_indices": null,
+ "use_dora": false,
+ "use_merged_linear": false,
+ "use_qa_lora": false,
+ "use_rslora": false
+}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-100/README.md b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-100/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..2cae90886aa26c06c289f0d1b74a06bb39921dba
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-100/README.md
@@ -0,0 +1,10 @@
+## Training procedure
+
+### Framework versions
+
+
+- SWIFT 3.4.0
+### Base model information
+
+
+- BaseModel Class LatentDiffusionACEPlus
diff --git a/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-100/configuration.json b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-100/configuration.json
new file mode 100644
index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-100/configuration.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-150/0_SwiftLoRA/adapter_config.json b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-150/0_SwiftLoRA/adapter_config.json
new file mode 100644
index 0000000000000000000000000000000000000000..9a4361023064a87ef1d86551710549271b2575e0
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-150/0_SwiftLoRA/adapter_config.json
@@ -0,0 +1,39 @@
+{
+ "alpha_pattern": {},
+ "auto_mapping": null,
+ "base_model_name_or_path": null,
+ "bias": "none",
+ "corda_config": null,
+ "enable_lora": null,
+ "eva_config": null,
+ "exclude_modules": null,
+ "fan_in_fan_out": false,
+ "inference_mode": false,
+ "init_lora_weights": true,
+ "layer_replication": null,
+ "layers_pattern": null,
+ "layers_to_transform": null,
+ "loftq_config": {},
+ "lora_alpha": 64,
+ "lora_bias": false,
+ "lora_dropout": 0.0,
+ "lora_dtype": null,
+ "lorap_emb_lr": 1e-06,
+ "lorap_lr_ratio": 16.0,
+ "megatron_config": null,
+ "megatron_core": "megatron.core",
+ "model_key_mapping": null,
+ "modules_to_save": null,
+ "peft_type": "LORA",
+ "r": 64,
+ "rank_pattern": {},
+ "revision": null,
+ "swift_type": "LORA",
+ "target_modules": "(model.double_blocks.*(.qkv|.img_mlp.0|.img_mlp.2|.txt_mlp.0|.txt_mlp.2|.proj|.img_mod.lin|.txt_mod.lin))|(model.single_blocks.*(.linear1|.linear2|.modulation.lin))$",
+ "task_type": null,
+ "trainable_token_indices": null,
+ "use_dora": false,
+ "use_merged_linear": false,
+ "use_qa_lora": false,
+ "use_rslora": false
+}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-150/README.md b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-150/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..2cae90886aa26c06c289f0d1b74a06bb39921dba
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-150/README.md
@@ -0,0 +1,10 @@
+## Training procedure
+
+### Framework versions
+
+
+- SWIFT 3.4.0
+### Base model information
+
+
+- BaseModel Class LatentDiffusionACEPlus
diff --git a/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-150/configuration.json b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-150/configuration.json
new file mode 100644
index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-150/configuration.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-50/0_SwiftLoRA/adapter_config.json b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-50/0_SwiftLoRA/adapter_config.json
new file mode 100644
index 0000000000000000000000000000000000000000..9a4361023064a87ef1d86551710549271b2575e0
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-50/0_SwiftLoRA/adapter_config.json
@@ -0,0 +1,39 @@
+{
+ "alpha_pattern": {},
+ "auto_mapping": null,
+ "base_model_name_or_path": null,
+ "bias": "none",
+ "corda_config": null,
+ "enable_lora": null,
+ "eva_config": null,
+ "exclude_modules": null,
+ "fan_in_fan_out": false,
+ "inference_mode": false,
+ "init_lora_weights": true,
+ "layer_replication": null,
+ "layers_pattern": null,
+ "layers_to_transform": null,
+ "loftq_config": {},
+ "lora_alpha": 64,
+ "lora_bias": false,
+ "lora_dropout": 0.0,
+ "lora_dtype": null,
+ "lorap_emb_lr": 1e-06,
+ "lorap_lr_ratio": 16.0,
+ "megatron_config": null,
+ "megatron_core": "megatron.core",
+ "model_key_mapping": null,
+ "modules_to_save": null,
+ "peft_type": "LORA",
+ "r": 64,
+ "rank_pattern": {},
+ "revision": null,
+ "swift_type": "LORA",
+ "target_modules": "(model.double_blocks.*(.qkv|.img_mlp.0|.img_mlp.2|.txt_mlp.0|.txt_mlp.2|.proj|.img_mod.lin|.txt_mod.lin))|(model.single_blocks.*(.linear1|.linear2|.modulation.lin))$",
+ "task_type": null,
+ "trainable_token_indices": null,
+ "use_dora": false,
+ "use_merged_linear": false,
+ "use_qa_lora": false,
+ "use_rslora": false
+}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-50/README.md b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-50/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..2cae90886aa26c06c289f0d1b74a06bb39921dba
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-50/README.md
@@ -0,0 +1,10 @@
+## Training procedure
+
+### Framework versions
+
+
+- SWIFT 3.4.0
+### Base model information
+
+
+- BaseModel Class LatentDiffusionACEPlus
diff --git a/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-50/configuration.json b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-50/configuration.json
new file mode 100644
index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/checkpoints/ldm_step-50/configuration.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_0_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_0_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..06371422ae1f6550e89439ef8ffbfee65812ed60
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_0_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_1_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_1_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bdb94d9a51852e8e0decf921319f774b280e1775
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_1_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_2_probe_0_[848_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_2_probe_0_[848_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..285c8605d35d1bc15c21eacddcfc638f4876cd88
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_2_probe_0_[848_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_3_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_3_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..17b2cfb9387d325a0da19ee11d364c22c5f0e989
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_3_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_4_probe_0_[848_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_4_probe_0_[848_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..285c8605d35d1bc15c21eacddcfc638f4876cd88
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_4_probe_0_[848_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_5_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_5_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b3fefe7435c042bf51b356f9c9803f6018b143db
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_5_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_0_probe_0_[752_1360_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_0_probe_0_[752_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..029d4e40003f355716a11d5aaafa57e70eae5a5e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_0_probe_0_[752_1360_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_1_probe_0_[752_1360_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_1_probe_0_[752_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..847b523a382ffb8bd9352674c8a0036e10999cb1
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_1_probe_0_[752_1360_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_2_probe_0_[752_1360_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_2_probe_0_[752_1360_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..84b6199e5e72850b3eae0115286215d005f1c740
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_2_probe_0_[752_1360_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_3_probe_0_[752_1360_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_3_probe_0_[752_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4d3133c9c12ad8bebc394c9ba1cd5907f6ed7b1a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_3_probe_0_[752_1360_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_4_probe_0_[752_1360_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_4_probe_0_[752_1360_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..84b6199e5e72850b3eae0115286215d005f1c740
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_4_probe_0_[752_1360_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_5_probe_0_[752_1360_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_5_probe_0_[752_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1271c5acf43a1f7f1a8ea0fd9595b31c9dbbabba
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_5_probe_0_[752_1360_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_0_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_0_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..70ef9b3ecf253485d573f3915ec2cc1c21f94370
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_0_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_1_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_1_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fb9260a155ba212b4e03accdf4064d0a537acc9a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_1_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_2_probe_0_[736_1408_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_2_probe_0_[736_1408_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ac37c550d1bac0b3389f719edfbc1170e4d6d6dc
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_2_probe_0_[736_1408_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_3_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_3_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0fe400a164139ace70cafa133186be1d106d3d30
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_3_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_4_probe_0_[736_1408_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_4_probe_0_[736_1408_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ac37c550d1bac0b3389f719edfbc1170e4d6d6dc
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_4_probe_0_[736_1408_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_5_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_5_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..74c6de4e6bd2f604cd5f2f3d6282facaf787fa56
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_5_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_0_probe_0_[880_1168_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_0_probe_0_[880_1168_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bccc768306436218e2885c558e078591cae52ef9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_0_probe_0_[880_1168_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_1_probe_0_[880_1168_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_1_probe_0_[880_1168_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..28cbeb1aa45d3f2300889efc850d74fe6cda1809
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_1_probe_0_[880_1168_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_2_probe_0_[880_1168_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_2_probe_0_[880_1168_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ae98f2df3892229c1dc3ac07c4656adead7a3779
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_2_probe_0_[880_1168_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_3_probe_0_[880_1168_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_3_probe_0_[880_1168_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9a9ec86a57b71619884dcab491cf0cd3bad45713
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_3_probe_0_[880_1168_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_4_probe_0_[880_1168_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_4_probe_0_[880_1168_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ae98f2df3892229c1dc3ac07c4656adead7a3779
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_4_probe_0_[880_1168_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_5_probe_0_[880_1168_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_5_probe_0_[880_1168_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..48daa8854568e8127d34a32e225138144229d89d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_5_probe_0_[880_1168_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_0_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_0_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..949610548ab9c99b0e1862844e243c7ce224374e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_0_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_1_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_1_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d6b81b1f871ef1ef81eedfb3a0081d8cb3e71481
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_1_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_2_probe_0_[784_1328_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_2_probe_0_[784_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b501c1ccacd418360c679aee08849c17b9b2bea9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_2_probe_0_[784_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_3_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_3_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0242d253c79e0bb6d18675d489280869496abb79
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_3_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_4_probe_0_[784_1328_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_4_probe_0_[784_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b501c1ccacd418360c679aee08849c17b9b2bea9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_4_probe_0_[784_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_5_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_5_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c526fdf483f79c99d3a0e1468acd9490dd1832fd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_5_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..d4b4593e5d58c6401f28f4c93ce791ded37cbb75
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..7b3d328debd074c6cd5a8e637d1a8c4776216b8a
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-0/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_0_probe_0_[848_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_1_probe_0_[848_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_2_probe_0_[848_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_3_probe_0_[848_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_4_probe_0_[848_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/0_0_5_probe_0_[848_1232_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_0_probe_0_[752_1360_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_1_probe_0_[752_1360_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_2_probe_0_[752_1360_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_3_probe_0_[752_1360_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_4_probe_0_[752_1360_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/1_0_5_probe_0_[752_1360_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_0_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_1_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_2_probe_0_[736_1408_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_3_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_4_probe_0_[736_1408_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/2_0_5_probe_0_[736_1408_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_0_probe_0_[880_1168_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_1_probe_0_[880_1168_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_2_probe_0_[880_1168_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_3_probe_0_[880_1168_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_4_probe_0_[880_1168_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/3_0_5_probe_0_[880_1168_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_0_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_1_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_2_probe_0_[784_1328_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_3_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_4_probe_0_[784_1328_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0/4_0_5_probe_0_[784_1328_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-0/BaseSolver_eval_image_step_0_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_0_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_0_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5667ec63cc1162d69103c8f7cce6105c44d8a340
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_0_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_1_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_1_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cdcb59b7da0ad1de8f8017a474fc908920f295c6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_1_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_2_probe_0_[832_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_2_probe_0_[832_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..610bac67fe28c78f7109c53f36060d58abd49456
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_2_probe_0_[832_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_3_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_3_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e08d39e11945bc053754c987df913ec689cb8cf1
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_3_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_4_probe_0_[832_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_4_probe_0_[832_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..610bac67fe28c78f7109c53f36060d58abd49456
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_4_probe_0_[832_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_5_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_5_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..89cb158a2eb4fee6e2ad80467eac0e7e0c32f130
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_5_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_0_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_0_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1f4c1c0ab09e5379ad736d15fa1329b7ba6b4064
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_0_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_1_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_1_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f9653fa7601ed3ceb6ae767493fbf579da478fa7
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_1_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_2_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_2_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..03603f7b61b996754d6b5076995ea2ee2ed83d25
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_2_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_3_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_3_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8d0a3ddedf694b505c91f703f4c17329864d0947
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_3_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_4_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_4_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..03603f7b61b996754d6b5076995ea2ee2ed83d25
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_4_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_5_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_5_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7ff48396554fc2983f8ce61971eae08d765dfee9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_5_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_0_probe_0_[864_1184_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_0_probe_0_[864_1184_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3abd285cd3dda427296c7e63609a944ec3261731
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_0_probe_0_[864_1184_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_1_probe_0_[864_1184_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_1_probe_0_[864_1184_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..316d8e4dbc459ed3d79fcb8e1c8d0c6a54b06606
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_1_probe_0_[864_1184_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_2_probe_0_[864_1184_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_2_probe_0_[864_1184_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6eb1003cd40c5187e69abc4d00c4d7d412329acc
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_2_probe_0_[864_1184_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_3_probe_0_[864_1184_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_3_probe_0_[864_1184_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..211462b623de753c7b600e0f2c163a5066896bd9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_3_probe_0_[864_1184_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_4_probe_0_[864_1184_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_4_probe_0_[864_1184_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6eb1003cd40c5187e69abc4d00c4d7d412329acc
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_4_probe_0_[864_1184_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_5_probe_0_[864_1184_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_5_probe_0_[864_1184_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c1970bcb33a263013878d60653f90be50b8ca8a4
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_5_probe_0_[864_1184_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_0_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_0_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2d71a9fbe3cb0b6b24e003559c7ba250441a059b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_0_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_1_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_1_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1b077cc321ec523d72bcbbef3c54f10c0d88756c
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_1_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_2_probe_0_[752_1376_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_2_probe_0_[752_1376_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7a7af255e0f98c8baeb4e9d35e50c6756f627480
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_2_probe_0_[752_1376_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_3_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_3_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5024529a010e038a524156ab14c0a507de3f0983
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_3_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_4_probe_0_[752_1376_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_4_probe_0_[752_1376_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7a7af255e0f98c8baeb4e9d35e50c6756f627480
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_4_probe_0_[752_1376_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_5_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_5_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7613a45f61fc660cc5c7ad9f48e1d5667d25e599
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_5_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_0_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_0_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..235063524a9c2e9d97cc708f79d07743570e57d1
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_0_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_1_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_1_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c191cab3e2a6fd0973c0552b38c839ed880f9eee
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_1_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_2_probe_0_[736_1408_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_2_probe_0_[736_1408_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..92c13c5ed9feecad913ea417338535fd3186213b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_2_probe_0_[736_1408_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_3_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_3_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6e2c44394a66ba77c94183a3181766e8e2d44b08
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_3_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_4_probe_0_[736_1408_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_4_probe_0_[736_1408_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..92c13c5ed9feecad913ea417338535fd3186213b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_4_probe_0_[736_1408_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_5_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_5_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fa927a0f59c5895fc6418c90080f4aa0fa6e433d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_5_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..ecd2b339d8a40bc034f97254012881e32b897a57
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..83cea95b8026063e9b3284e649de011d19cc6765
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-10/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_0_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_1_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_2_probe_0_[832_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_3_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_4_probe_0_[832_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/0_0_5_probe_0_[832_1232_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_0_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_1_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_2_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_3_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_4_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/1_0_5_probe_0_[864_1200_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_0_probe_0_[864_1184_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_1_probe_0_[864_1184_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_2_probe_0_[864_1184_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_3_probe_0_[864_1184_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_4_probe_0_[864_1184_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/2_0_5_probe_0_[864_1184_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_0_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_1_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_2_probe_0_[752_1376_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_3_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_4_probe_0_[752_1376_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/3_0_5_probe_0_[752_1376_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_0_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_1_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_2_probe_0_[736_1408_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_3_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_4_probe_0_[736_1408_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10/4_0_5_probe_0_[736_1408_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-10/BaseSolver_eval_image_step_10_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_0_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_0_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6190642abc9d91ad4e1a3416ceafb1211b405159
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_0_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_1_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_1_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8502ada82d3688208039e92a1cd61134cba2268b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_1_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_2_probe_0_[800_1296_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_2_probe_0_[800_1296_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1f4c27bf5eed53350deaf713beb9f7c886dd7118
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_2_probe_0_[800_1296_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_3_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_3_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..44f0c4cbcaaa8a562d1d7fdbed8e69e0a5a2ed0a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_3_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_4_probe_0_[800_1296_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_4_probe_0_[800_1296_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1f4c27bf5eed53350deaf713beb9f7c886dd7118
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_4_probe_0_[800_1296_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_5_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_5_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5cdd66bad51d36c368f181052ed4b5377084e009
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_5_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_0_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_0_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0f3105e6dfb368d4e4a5bd1e7c3c5f56abd118db
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_0_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_1_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_1_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5a10fa272f8c00a61e02fd5274a89d08f674251b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_1_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_2_probe_0_[832_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_2_probe_0_[832_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b5957e7287675194308d1c5c80ded88c8f58b55b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_2_probe_0_[832_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_3_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_3_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..635bde62d0be790c4f91989af43f77caa622600d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_3_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_4_probe_0_[832_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_4_probe_0_[832_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b5957e7287675194308d1c5c80ded88c8f58b55b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_4_probe_0_[832_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_5_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_5_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8a58cdfb66e874edd136dfd3086dc8c6a2cf1d4c
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_5_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_0_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_0_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f92afae2a57543b8d897e2dccfef32adb056cd3d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_0_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_1_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_1_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..55d4cccea28e045b82ed8b6c7d3266a3a44bec61
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_1_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_2_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_2_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..572a6a2b31b475ee50d27a703f7e7bbf81881513
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_2_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_3_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_3_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..967e8e68aa9d883f32da32af562719a78359a557
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_3_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_4_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_4_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..572a6a2b31b475ee50d27a703f7e7bbf81881513
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_4_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_5_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_5_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..33a62f859c63f302b9c66f32a657a4204c8f9240
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_5_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_0_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_0_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a53fdb52c50268ab891b7549104d22a00bcff038
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_0_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_1_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_1_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d85092322b37daf9396de8f724af9333e0fd4afa
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_1_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_2_probe_0_[848_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_2_probe_0_[848_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..af1e8c01f0fe5addcfd208a1af867cf261888e06
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_2_probe_0_[848_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_3_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_3_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ec1c803524e8c9268f97942011f72d909f1b9fb6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_3_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_4_probe_0_[848_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_4_probe_0_[848_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..af1e8c01f0fe5addcfd208a1af867cf261888e06
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_4_probe_0_[848_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_5_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_5_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a1e19539425d9de77724820eb3f1dcf28f9b8fae
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_5_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_0_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_0_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..89eb5db672cebe0c54efe6a4cacd2141f37bad57
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_0_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_1_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_1_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cd8b528cd5975193d1c960c4432e66f81e5ec0f5
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_1_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_2_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_2_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..14f9ce021aee163d0a21c7d4185d57f6d914b7ee
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_2_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_3_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_3_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9be7e7ab4ae34b1ad9da92b2ee8c237c45341a83
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_3_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_4_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_4_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..14f9ce021aee163d0a21c7d4185d57f6d914b7ee
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_4_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_5_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_5_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ffac90cb5f2df64b0f236d96b554eecbbb298368
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_5_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..9549333ce00c1e177ff04bff236cae0db0cc2401
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..77927494e43f5952ac3d8bd1e3a9c5840ccecffc
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-100/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_0_probe_0_[800_1296_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_1_probe_0_[800_1296_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_2_probe_0_[800_1296_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_3_probe_0_[800_1296_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_4_probe_0_[800_1296_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/0_0_5_probe_0_[800_1296_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_0_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_1_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_2_probe_0_[832_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_3_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_4_probe_0_[832_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/1_0_5_probe_0_[832_1232_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_0_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_1_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_2_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_3_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_4_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/2_0_5_probe_0_[720_1424_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_0_probe_0_[848_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_1_probe_0_[848_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_2_probe_0_[848_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_3_probe_0_[848_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_4_probe_0_[848_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/3_0_5_probe_0_[848_1232_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_0_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_1_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_2_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_3_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_4_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100/4_0_5_probe_0_[864_1200_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-100/BaseSolver_eval_image_step_100_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_0_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_0_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7314545c87bb979fff0d581b604986387bc75dd0
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_0_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_1_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_1_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9c633a4c011c3964653befdbfdcf962074e06fcb
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_1_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_2_probe_0_[832_1248_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_2_probe_0_[832_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..304f0f9062e8a032737c7a34a49cccbae00f51f6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_2_probe_0_[832_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_3_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_3_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..93e43f276b77978f543b1604e76c14a211a30ddc
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_3_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_4_probe_0_[832_1248_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_4_probe_0_[832_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..304f0f9062e8a032737c7a34a49cccbae00f51f6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_4_probe_0_[832_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_5_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_5_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a7da4b9af10300afa6f91814586e5126054ee1cd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_5_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_0_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_0_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..16ff0a8d555acee37df17bea5a4a57d45cd325aa
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_0_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_1_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_1_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..897c45f778d961cc1ced09dc347146330e321ada
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_1_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_2_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_2_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7c3e0652a91696d4def83a1c3b47f8ed80eca619
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_2_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_3_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_3_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4780a7f48421a1300c0bee33d67e28539675918f
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_3_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_4_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_4_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7c3e0652a91696d4def83a1c3b47f8ed80eca619
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_4_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_5_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_5_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1cb4691d3b3df4e27572cb86d93df5c238ac4b25
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_5_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_0_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_0_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..34cee3e5382a317036da27de830b92813de2ea6d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_0_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_1_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_1_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..dec27d2a0e17cb4c48290dff3487d43ae26f3d30
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_1_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_2_probe_0_[832_1248_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_2_probe_0_[832_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..800e9077c589c962cc178e364fe249ca685ed6a0
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_2_probe_0_[832_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_3_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_3_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1bf6d0b369d3412f8c2c314b2d2878102c8e5d97
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_3_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_4_probe_0_[832_1248_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_4_probe_0_[832_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..800e9077c589c962cc178e364fe249ca685ed6a0
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_4_probe_0_[832_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_5_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_5_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6c6f763732d05763c5e6f925d414ae3a89e14038
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_5_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_0_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_0_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7d0de8419368889e35dd8feaa9ded161fbe51105
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_0_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_1_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_1_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..58d9a710b69a5e8cccc4f2505bdf761745fc04a3
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_1_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_2_probe_0_[800_1296_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_2_probe_0_[800_1296_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..01f8d5a96bbcb70b6fd6b40a6c3530a3fe612358
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_2_probe_0_[800_1296_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_3_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_3_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..906e583145a5778c08ac11150aeba9b6e987d837
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_3_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_4_probe_0_[800_1296_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_4_probe_0_[800_1296_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..01f8d5a96bbcb70b6fd6b40a6c3530a3fe612358
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_4_probe_0_[800_1296_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_5_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_5_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ef427dda21f6fca2fc869306acdbcfdad7e5aee6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_5_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_0_probe_0_[768_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_0_probe_0_[768_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0be19883c2344fb9ff561e4df80bd794b27d939d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_0_probe_0_[768_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_1_probe_0_[768_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_1_probe_0_[768_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a91dcc955164830edadb1dd9120b9abc8c942d0e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_1_probe_0_[768_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_2_probe_0_[768_1328_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_2_probe_0_[768_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b27be53eab6629c1aee2afa2298eb0a468aaad30
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_2_probe_0_[768_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_3_probe_0_[768_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_3_probe_0_[768_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..496ff5def4162384ef2a3769eec828b71b82d489
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_3_probe_0_[768_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_4_probe_0_[768_1328_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_4_probe_0_[768_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b27be53eab6629c1aee2afa2298eb0a468aaad30
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_4_probe_0_[768_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_5_probe_0_[768_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_5_probe_0_[768_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4de74eafa4d2711ed425dd045e865e171c9c9157
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_5_probe_0_[768_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..1ed9aa652947746e614d4b4910d9159f8c5a1a9d
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..ec342042a46a17b808284d893929d9c44caebcef
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-110/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_0_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_1_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_2_probe_0_[832_1248_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_3_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_4_probe_0_[832_1248_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/0_0_5_probe_0_[832_1248_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_0_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_1_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_2_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_3_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_4_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/1_0_5_probe_0_[736_1392_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_0_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_1_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_2_probe_0_[832_1248_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_3_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_4_probe_0_[832_1248_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/2_0_5_probe_0_[832_1248_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_0_probe_0_[800_1296_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_1_probe_0_[800_1296_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_2_probe_0_[800_1296_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_3_probe_0_[800_1296_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_4_probe_0_[800_1296_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/3_0_5_probe_0_[800_1296_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_0_probe_0_[768_1328_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_1_probe_0_[768_1328_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_2_probe_0_[768_1328_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_3_probe_0_[768_1328_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_4_probe_0_[768_1328_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110/4_0_5_probe_0_[768_1328_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-110/BaseSolver_eval_image_step_110_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_0_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_0_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d9e3da3c7ca7c300fecebc86aefddfafa7466a28
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_0_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_1_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_1_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bf65e3bba43b78c79756a9e32e8ea35c602acb17
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_1_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_2_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_2_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8adfc32ae9d1dc79d54fb4670ba0fc8cd7d3affd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_2_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_3_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_3_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..855e0813fe582c3e90f5a46b5be71499ae2d682a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_3_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_4_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_4_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8adfc32ae9d1dc79d54fb4670ba0fc8cd7d3affd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_4_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_5_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_5_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ff7277611da4d2d085a64d2de3c486409e58c305
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_5_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_0_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_0_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6512a074c3c5ebf2c01b861c32861cfbfc0be9b4
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_0_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_1_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_1_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3bf9c0f3f4f50cf53224edc0f34835fcb0f8a88b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_1_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_2_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_2_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8ca3a7b815e50b5422905982659df2d2c98738ee
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_2_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_3_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_3_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..237cc7d5fc3d6e0463bac389c22035397fad86a7
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_3_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_4_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_4_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8ca3a7b815e50b5422905982659df2d2c98738ee
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_4_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_5_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_5_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2387cf7f9cd86f8122de1de62db8aba5b831e788
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_5_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_0_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_0_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0766c285b6e094574245df64e814d496c718836f
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_0_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_1_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_1_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0d7dffc58782aebaa301b72ccf69748cbf57f5c8
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_1_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_2_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_2_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..36e9171ce4a4ca14785e7925ceb31269f9fcba3d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_2_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_3_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_3_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..19d746d0ac1e23e753e5417ef74c668feddbda2e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_3_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_4_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_4_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..36e9171ce4a4ca14785e7925ceb31269f9fcba3d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_4_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_5_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_5_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..84d27a1bcf3a1254cf097e089a5ee4876e75e3a9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_5_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_0_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_0_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f980703ddb03fdcc51994e2d1ce15f43461315d6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_0_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_1_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_1_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..82a6c54026162776488989b8b5cd47f2019374ec
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_1_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_2_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_2_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d119d7616c91372dfbd997c6e8f911de105c5fbe
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_2_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_3_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_3_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f90e830beb7de6c68d3287d68db8516fe9e7239c
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_3_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_4_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_4_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d119d7616c91372dfbd997c6e8f911de105c5fbe
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_4_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_5_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_5_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..eacba1bfe95f84fb26561856ddfe730c99c1ed65
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_5_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_0_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_0_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..63d671f3c60a2e3c3aefc5a832a6205d16fb8495
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_0_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_1_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_1_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..209e9e2690592ad12775d756e02bfa6ec5c535e6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_1_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_2_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_2_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..028e5760ff67a88e829db38d14f20a289e306ba6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_2_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_3_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_3_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1d070487fd47237001bb06ee54a54be5d0d2f422
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_3_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_4_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_4_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..028e5760ff67a88e829db38d14f20a289e306ba6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_4_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_5_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_5_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0f5ffad97f8f70cb440a4d08460100f40e818af0
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_5_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..95b23cd49bb639f1042dfa69326e3335f4bcf11a
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..e7f62e5d6c0a28e2365317d484b43a04c56e4af3
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-120/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_0_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_1_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_2_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_3_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_4_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/0_0_5_probe_0_[736_1392_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_0_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_1_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_2_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_3_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_4_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/1_0_5_probe_0_[720_1424_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_0_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_1_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_2_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_3_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_4_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/2_0_5_probe_0_[720_1424_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_0_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_1_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_2_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_3_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_4_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/3_0_5_probe_0_[736_1392_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_0_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_1_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_2_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_3_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_4_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120/4_0_5_probe_0_[736_1392_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-120/BaseSolver_eval_image_step_120_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_0_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_0_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..38f271ca3a5f3b949a0756995aa26f6dc60d30e5
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_0_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_1_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_1_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1d991d765919eeacb867f7284c74859be058a43b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_1_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_2_probe_0_[832_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_2_probe_0_[832_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b3938e83e4c507a263eb96b566e80e7c9e6fc748
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_2_probe_0_[832_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_3_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_3_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ff629a8205e2205e8043182e9fef0ff4e54e860c
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_3_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_4_probe_0_[832_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_4_probe_0_[832_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b3938e83e4c507a263eb96b566e80e7c9e6fc748
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_4_probe_0_[832_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_0_probe_0_[784_1312_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_0_probe_0_[784_1312_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8cc24f6f1b498979bb49e9f03e64e6e55f182beb
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_0_probe_0_[784_1312_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_1_probe_0_[784_1312_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_1_probe_0_[784_1312_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fa7d204dd89bd81da01b89de4c165e16f6843c5d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_1_probe_0_[784_1312_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_2_probe_0_[784_1312_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_2_probe_0_[784_1312_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..74f2d47b6be46159317500ce108a51fe10b418e9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_2_probe_0_[784_1312_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_3_probe_0_[784_1312_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_3_probe_0_[784_1312_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..93095793d4a0e88f5364f59625514dbed87711aa
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_3_probe_0_[784_1312_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_4_probe_0_[784_1312_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_4_probe_0_[784_1312_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..74f2d47b6be46159317500ce108a51fe10b418e9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_4_probe_0_[784_1312_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_0_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_0_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fafe6141e0cd4a284be04d67441f78958f9bc46a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_0_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_1_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_1_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..38d00d332ca5e3f6fd570b824cbd824d4b2b2bce
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_1_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_2_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_2_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..db641b8960b731e5fb950c5afb7c3ee5691fb268
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_2_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_3_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_3_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6c569ef50b835affaf2c546f89d05b99d86ddb74
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_3_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_4_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_4_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..db641b8960b731e5fb950c5afb7c3ee5691fb268
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_4_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_0_probe_0_[784_1312_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_0_probe_0_[784_1312_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d657d6cb9e3d849a191cb5a0075c09340c830700
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_0_probe_0_[784_1312_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_1_probe_0_[784_1312_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_1_probe_0_[784_1312_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c94cef9423dc23f4e274363fc2fa645444177caf
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_1_probe_0_[784_1312_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_2_probe_0_[784_1312_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_2_probe_0_[784_1312_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3ec60209106661af71e3d03ca4361dca942f7b38
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_2_probe_0_[784_1312_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_3_probe_0_[784_1312_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_3_probe_0_[784_1312_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ce95ba77fc4047031c616871b97e333bdc3304bc
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_3_probe_0_[784_1312_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_4_probe_0_[784_1312_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_4_probe_0_[784_1312_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3ec60209106661af71e3d03ca4361dca942f7b38
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_4_probe_0_[784_1312_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_0_probe_0_[864_1184_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_0_probe_0_[864_1184_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3697c4430a8a740a16a205ac713ee1cfcfbd0668
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_0_probe_0_[864_1184_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_1_probe_0_[864_1184_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_1_probe_0_[864_1184_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..44ecd350fb63d0488ca7846b3fa0ab8b766ad674
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_1_probe_0_[864_1184_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_2_probe_0_[864_1184_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_2_probe_0_[864_1184_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8cbc168be366ad11d7047675b0536eb2741abe30
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_2_probe_0_[864_1184_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_3_probe_0_[864_1184_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_3_probe_0_[864_1184_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..79906cd37dc0f660d578bca63fdb57a8c951fc0f
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_3_probe_0_[864_1184_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_4_probe_0_[864_1184_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_4_probe_0_[864_1184_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8cbc168be366ad11d7047675b0536eb2741abe30
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_4_probe_0_[864_1184_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..a7a40b3268bb91d29a4e472de1337ee490598d44
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..c0fb2c6f8d8b61c4fabbeb2bf7b50dc0659949db
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-130/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_0_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_1_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_2_probe_0_[832_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_3_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_4_probe_0_[832_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/0_0_5_probe_0_[832_1232_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_0_probe_0_[784_1312_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_1_probe_0_[784_1312_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_2_probe_0_[784_1312_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_3_probe_0_[784_1312_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_4_probe_0_[784_1312_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/1_0_5_probe_0_[784_1312_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_0_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_1_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_2_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_3_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_4_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/2_0_5_probe_0_[864_1200_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_0_probe_0_[784_1312_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_1_probe_0_[784_1312_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_2_probe_0_[784_1312_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_3_probe_0_[784_1312_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_4_probe_0_[784_1312_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/3_0_5_probe_0_[784_1312_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_0_probe_0_[864_1184_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_1_probe_0_[864_1184_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_2_probe_0_[864_1184_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_3_probe_0_[864_1184_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_4_probe_0_[864_1184_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130/4_0_5_probe_0_[864_1184_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-130/BaseSolver_eval_image_step_130_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_0_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_0_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..654c23eae43853b375f7c65653a0464c18b66155
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_0_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_1_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_1_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a13feb125d5ed33251488b1add22fcb7e5f902a2
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_1_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_2_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_2_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f2c6cc13b8cbad5c2699a7ea626596c9ea95689d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_2_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_3_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_3_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6cef01051bd8452d1b3172a0fa07259114872c75
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_3_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_4_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_4_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f2c6cc13b8cbad5c2699a7ea626596c9ea95689d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_4_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_5_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_5_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0856e0cda6c66b9517e354ee810c1c5d1e28ec7f
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_5_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_0_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_0_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4f647d4e155ad0e65899cc17a0d7e60330968b5f
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_0_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_1_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_1_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..60e6ed040726f88feb9ccfe2c332950e4ffd2ea8
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_1_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_2_probe_0_[784_1328_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_2_probe_0_[784_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0b0cb9d0f6c0a06ddb45038b8655f62682932403
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_2_probe_0_[784_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_3_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_3_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..270287afccf4a4590b00b63d23e5af8d49ab1e01
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_3_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_4_probe_0_[784_1328_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_4_probe_0_[784_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0b0cb9d0f6c0a06ddb45038b8655f62682932403
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_4_probe_0_[784_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_5_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_5_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b408643c52f471ec6be623ce3681abfc0a587e6c
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_5_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_0_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_0_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..520f952e5d1d8cee74fe00b1309d757e405bd9e7
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_0_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_1_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_1_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8d517749866e0bc70d76be342042226110827bde
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_1_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_2_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_2_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0479576a4b73ca7ec8d9b3207b9a6454ee4e8cfc
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_2_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_3_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_3_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..943da23210683467b0331d938a5b5e5747df789b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_3_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_4_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_4_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0479576a4b73ca7ec8d9b3207b9a6454ee4e8cfc
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_4_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_5_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_5_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8a6402de92e132579954175aebc11500920409ee
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_5_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_0_probe_0_[848_1216_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_0_probe_0_[848_1216_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6be7203cce1e5ada461c151717f86f9452001fc8
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_0_probe_0_[848_1216_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_1_probe_0_[848_1216_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_1_probe_0_[848_1216_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..695e891db95803cf02d22ef42067505b6aa6b88e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_1_probe_0_[848_1216_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_2_probe_0_[848_1216_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_2_probe_0_[848_1216_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..df2ffd653c614919fbb4ae53eca218578a966b15
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_2_probe_0_[848_1216_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_3_probe_0_[848_1216_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_3_probe_0_[848_1216_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a6d6544da7c510beae80368db0c746bc847577a2
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_3_probe_0_[848_1216_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_4_probe_0_[848_1216_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_4_probe_0_[848_1216_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..df2ffd653c614919fbb4ae53eca218578a966b15
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_4_probe_0_[848_1216_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_5_probe_0_[848_1216_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_5_probe_0_[848_1216_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..34a6fc75a44061fc0ba145638a9fe5f4d288b263
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_5_probe_0_[848_1216_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_0_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_0_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cea2617d380005cf93006b8aa45b6205f6d8fe1e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_0_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_1_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_1_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8d45aff26f36a75c2ee0459716b211cc5534f283
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_1_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_2_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_2_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c0bbf318342ec8da4340528d1334fc40b8a4d265
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_2_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_3_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_3_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4b265cf617532d1997e164f6ad665124e70baa88
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_3_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_4_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_4_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c0bbf318342ec8da4340528d1334fc40b8a4d265
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_4_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_5_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_5_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ca3fa671728ae2540b784105d626755041d02d15
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_5_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..7f5630e405823f534573f2aa910d094942ada6e1
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..cef5361ffac124ff3658e14ac08aa0c3bd2f20ad
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-140/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_0_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_1_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_2_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_3_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_4_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/0_0_5_probe_0_[864_1200_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_0_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_1_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_2_probe_0_[784_1328_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_3_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_4_probe_0_[784_1328_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/1_0_5_probe_0_[784_1328_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_0_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_1_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_2_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_3_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_4_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/2_0_5_probe_0_[800_1280_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_0_probe_0_[848_1216_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_1_probe_0_[848_1216_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_2_probe_0_[848_1216_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_3_probe_0_[848_1216_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_4_probe_0_[848_1216_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/3_0_5_probe_0_[848_1216_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_0_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_1_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_2_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_3_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_4_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140/4_0_5_probe_0_[736_1392_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-140/BaseSolver_eval_image_step_140_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_0_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_0_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c87de5e07a083473d581c1b4ac57396685f5443a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_0_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_1_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_1_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e5715b9f5c0396f144640a81b28f4df6c129ee7a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_1_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_2_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_2_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fd1d6da3a0ff1ab984acbec7aaaa4970c13c74b9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_2_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_3_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_3_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..36c279af6044b22b4039145ac1ea7651682c9960
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_3_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_4_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_4_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fd1d6da3a0ff1ab984acbec7aaaa4970c13c74b9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_4_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_5_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_5_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..71eb66e1e8650d85c2e55574893290e967f8b500
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_5_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_0_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_0_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d4f792930d025942d9e81dedef114d4f1c836ce6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_0_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_1_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_1_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b84ab36359da5cd1db695686215053d5d032184c
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_1_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_2_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_2_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..dcfa63124135fb9a986f504daee105fd9a4cdb77
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_2_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_3_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_3_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0c13b0fe90d8e9b4d12345582d99087d75dd84fc
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_3_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_4_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_4_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..dcfa63124135fb9a986f504daee105fd9a4cdb77
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_4_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_5_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_5_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bdfcf42610e67c2127bf8f3ac805161dfe4d5c93
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_5_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_0_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_0_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fc18590c7d46b7fb11898eb35ea49445d4e34413
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_0_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_1_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_1_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..21a2cbc742b838a958f2473af5aff84e5dbbcb1f
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_1_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_2_probe_0_[752_1376_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_2_probe_0_[752_1376_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0e4a0a90f5eed18a8da669947fb112541e984936
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_2_probe_0_[752_1376_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_3_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_3_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..845cf29071e8eb5b4d2827bcf9cc7912509abf70
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_3_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_4_probe_0_[752_1376_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_4_probe_0_[752_1376_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0e4a0a90f5eed18a8da669947fb112541e984936
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_4_probe_0_[752_1376_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_5_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_5_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d3182bca454e8a598215c8b48684766b8d1cca27
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_5_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_0_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_0_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0c417ae0c6f3d587a4f8ac69da15b657502ee7a3
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_0_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_1_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_1_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..84c6e278f9d2fcd82c042c0a29eb80a9ec5efbfc
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_1_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_2_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_2_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..aecb9e3ca8262fb9e1b896775c6612a3cdcb8c33
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_2_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_3_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_3_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a954aa8ba2de774484bbdc408fc64868aee19720
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_3_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_4_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_4_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..aecb9e3ca8262fb9e1b896775c6612a3cdcb8c33
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_4_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_5_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_5_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e46daffab716cc957ff239fda299d32329b9d8bf
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_5_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_0_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_0_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8ab4b3002a75c7b1a47c8f2cac0bd251224241f9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_0_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_1_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_1_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..73067807150eb1901e5a9f47bee6bd8015241940
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_1_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_2_probe_0_[832_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_2_probe_0_[832_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4d532ba2680380fb7979139e23c8bf6e4782230a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_2_probe_0_[832_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_3_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_3_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ff629a8205e2205e8043182e9fef0ff4e54e860c
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_3_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_4_probe_0_[832_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_4_probe_0_[832_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4d532ba2680380fb7979139e23c8bf6e4782230a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_4_probe_0_[832_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_5_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_5_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..12ef49d0fb8c6b648e226d2c6b9088d67ca4b0ad
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_5_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..bbbe5f13299b0056f7202d1a5ef6516237edbeb2
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..1d6b01a74941678c35c7732bbada0ac728305900
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-150/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_0_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_1_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_2_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_3_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_4_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/0_0_5_probe_0_[736_1392_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_0_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_1_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_2_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_3_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_4_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/1_0_5_probe_0_[736_1392_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_0_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_1_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_2_probe_0_[752_1376_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_3_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_4_probe_0_[752_1376_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/2_0_5_probe_0_[752_1376_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_0_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_1_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_2_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_3_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_4_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/3_0_5_probe_0_[864_1200_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_0_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_1_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_2_probe_0_[832_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_3_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_4_probe_0_[832_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150/4_0_5_probe_0_[832_1232_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-150/BaseSolver_eval_image_step_150_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_0_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_0_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b44a5a06cafaf85ccd3d551af0bb907e782020f7
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_0_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_1_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_1_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6dd93b13372f3364246fffc886f0d0842f23a1b6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_1_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_2_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_2_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c259d27fa64ec24bbf47db0dc65751e00f8dcc8e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_2_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_3_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_3_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..288b9f675722d3f1712e464e0761c982a14b9f3c
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_3_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_4_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_4_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c259d27fa64ec24bbf47db0dc65751e00f8dcc8e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_4_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_5_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_5_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5609840e5cd67ec7f3392b888411f7e662b4f1eb
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_5_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_0_probe_0_[768_1360_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_0_probe_0_[768_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7023abb44fc41e35f49b6c4528f53cee81c6b694
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_0_probe_0_[768_1360_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_1_probe_0_[768_1360_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_1_probe_0_[768_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c52b1b6bb9ac1ae980d883bcd384beba59a4961d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_1_probe_0_[768_1360_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_2_probe_0_[768_1360_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_2_probe_0_[768_1360_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..82b1af80c2ff0d9b8bdd5c360594fa14101ea489
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_2_probe_0_[768_1360_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_3_probe_0_[768_1360_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_3_probe_0_[768_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e2d2b25160447045e074e308b4233a4397bfc296
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_3_probe_0_[768_1360_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_4_probe_0_[768_1360_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_4_probe_0_[768_1360_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..82b1af80c2ff0d9b8bdd5c360594fa14101ea489
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_4_probe_0_[768_1360_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_5_probe_0_[768_1360_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_5_probe_0_[768_1360_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..30d6af202dd223751a8baf56744eed2c6c5f0a1b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_5_probe_0_[768_1360_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_0_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_0_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bcc3ec347aae1c4ac0050067095e7f62562a35be
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_0_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_1_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_1_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..740682d58822f7b3df00a022193f010b30681552
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_1_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_2_probe_0_[832_1248_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_2_probe_0_[832_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5f2a69c8f8fff0a2e708e0438ff24ba1aaa8ebcd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_2_probe_0_[832_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_3_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_3_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6bb460a823e07a386c476b2fc7145b819eacbfe4
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_3_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_4_probe_0_[832_1248_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_4_probe_0_[832_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5f2a69c8f8fff0a2e708e0438ff24ba1aaa8ebcd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_4_probe_0_[832_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_5_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_5_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f120c81eee48dea4cd1b34b595630abe0d207657
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_5_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_0_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_0_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a3334265f73fd269e9b221f2f78346885093b3f0
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_0_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_1_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_1_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..30668997de280426224cc4ed7d39213e796ecba4
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_1_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_2_probe_0_[784_1328_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_2_probe_0_[784_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..44bcbbf60e8c73f8644ae8bebfe9e12411573b60
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_2_probe_0_[784_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_3_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_3_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b21ea88b51167147cb07a8ff9716d1be7e9a2673
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_3_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_4_probe_0_[784_1328_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_4_probe_0_[784_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..44bcbbf60e8c73f8644ae8bebfe9e12411573b60
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_4_probe_0_[784_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_5_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_5_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..beb883e54bdf81b0e84594c259e4d1771d417a66
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_5_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_0_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_0_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..58073556a1d5c0519b75ca582442d5d71c7419c9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_0_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_1_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_1_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c743c18c42b3d46750926ef2d9a4ec03be3dd97d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_1_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_2_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_2_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c8d6732a6af4cd2b6460bd4135c35899f9fcb4df
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_2_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_3_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_3_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e71ac6e536119d829daf8128710a03ec55df4e7e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_3_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_4_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_4_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c8d6732a6af4cd2b6460bd4135c35899f9fcb4df
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_4_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_5_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_5_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..78b94e6346f1894d05afc2f28888bd904978b9ec
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_5_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..3dbf3f684e8ccc69c356e20f25e53fecbf3a98cf
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..ea04c2181d7345fa600a963db0c5638a28c15653
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-160/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_0_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_1_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_2_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_3_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_4_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/0_0_5_probe_0_[864_1200_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_0_probe_0_[768_1360_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_1_probe_0_[768_1360_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_2_probe_0_[768_1360_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_3_probe_0_[768_1360_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_4_probe_0_[768_1360_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/1_0_5_probe_0_[768_1360_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_0_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_1_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_2_probe_0_[832_1248_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_3_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_4_probe_0_[832_1248_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/2_0_5_probe_0_[832_1248_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_0_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_1_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_2_probe_0_[784_1328_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_3_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_4_probe_0_[784_1328_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/3_0_5_probe_0_[784_1328_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_0_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_1_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_2_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_3_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_4_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160/4_0_5_probe_0_[800_1280_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-160/BaseSolver_eval_image_step_160_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_0_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_0_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..013a1da1704183cb577af1ecb4d1dfe2a866a48d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_0_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_1_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_1_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..dfb7fc48e272bc95f7811c3cc6bc1c86848f6feb
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_1_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_2_probe_0_[752_1376_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_2_probe_0_[752_1376_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..65a0786b40eab2ce5d31353f5a773a9b18fcb390
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_2_probe_0_[752_1376_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_3_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_3_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..53e24b440380fbb878472f2d802c2cd328058e13
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_3_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_4_probe_0_[752_1376_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_4_probe_0_[752_1376_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..65a0786b40eab2ce5d31353f5a773a9b18fcb390
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_4_probe_0_[752_1376_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_5_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_5_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6a3166aae71449015d9a0634e63c5466a76141b0
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_5_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_0_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_0_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d914332a7667ba19aa51a438c2c49fa2a527a904
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_0_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_1_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_1_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f671aa9b7da6ca464106cf022b631280b92ffd33
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_1_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_2_probe_0_[752_1376_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_2_probe_0_[752_1376_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7756183cd013187baa1bde65f63cc33c570595ef
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_2_probe_0_[752_1376_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_3_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_3_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..00a6a5f215c14a4aa9c52a2de03eb1b7258e2234
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_3_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_4_probe_0_[752_1376_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_4_probe_0_[752_1376_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7756183cd013187baa1bde65f63cc33c570595ef
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_4_probe_0_[752_1376_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_5_probe_0_[752_1376_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_5_probe_0_[752_1376_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7fbd8d86b4acdf1669cd1fa62230810ce865d573
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_5_probe_0_[752_1376_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_0_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_0_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4be4148a6572769c63155ef90f79ca505082f332
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_0_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_1_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_1_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a810946b42a7b5de6431d04aedbc4393f6e7a5b2
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_1_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_2_probe_0_[784_1328_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_2_probe_0_[784_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c4714dab4e058f3951f7cde7778118fbd63e2d69
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_2_probe_0_[784_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_3_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_3_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a3667a0d7a7bca396d4e71a17a2b5b678883a345
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_3_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_4_probe_0_[784_1328_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_4_probe_0_[784_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c4714dab4e058f3951f7cde7778118fbd63e2d69
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_4_probe_0_[784_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_0_probe_0_[784_1312_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_0_probe_0_[784_1312_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e016dab6b1140623779233e9a249445658f91277
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_0_probe_0_[784_1312_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_1_probe_0_[784_1312_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_1_probe_0_[784_1312_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0029735acbf696191259e5d7a5e46dc42c76f427
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_1_probe_0_[784_1312_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_2_probe_0_[784_1312_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_2_probe_0_[784_1312_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6e07f1e181c7e948cfabfbf74a5c0b0898a6b9a5
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_2_probe_0_[784_1312_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_3_probe_0_[784_1312_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_3_probe_0_[784_1312_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..73d199f2bf7394e9c104bee3f33573745d6ce6bc
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_3_probe_0_[784_1312_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_4_probe_0_[784_1312_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_4_probe_0_[784_1312_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6e07f1e181c7e948cfabfbf74a5c0b0898a6b9a5
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_4_probe_0_[784_1312_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_0_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_0_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9706469134f0ef92bb9735ccbd874215baf02258
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_0_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_1_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_1_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7f7d80f3fcd758dae46d7d4a27778b455e5e414c
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_1_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_2_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_2_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..79a5c90e494b316ea7a75293ef245c85ea400b6a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_2_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_3_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_3_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bdb73ddadf7288075308ace380aa13032cdaeb81
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_3_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_4_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_4_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..79a5c90e494b316ea7a75293ef245c85ea400b6a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_4_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..a3aad31bdb78d0467be3522e78296b8718271d3d
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..9e5d0cf308cbda43b416be8adcede0c740036298
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-20/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_0_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_1_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_2_probe_0_[752_1376_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_3_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_4_probe_0_[752_1376_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/0_0_5_probe_0_[752_1376_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_0_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_1_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_2_probe_0_[752_1376_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_3_probe_0_[752_1376_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_4_probe_0_[752_1376_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/1_0_5_probe_0_[752_1376_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_0_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_1_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_2_probe_0_[784_1328_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_3_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_4_probe_0_[784_1328_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/2_0_5_probe_0_[784_1328_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_0_probe_0_[784_1312_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_1_probe_0_[784_1312_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_2_probe_0_[784_1312_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_3_probe_0_[784_1312_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_4_probe_0_[784_1312_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/3_0_5_probe_0_[784_1312_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_0_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_1_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_2_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_3_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_4_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20/4_0_5_probe_0_[800_1280_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-20/BaseSolver_eval_image_step_20_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_0_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_0_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..aa0c6a80b2207da68c0f0312634726ebbaa6c393
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_0_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_1_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_1_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..023bb56b3ac2c4ccc060a4ec590c6a8d1b96060b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_1_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_2_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_2_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..dc8d4ea1c1107364f8b30800d2c3eb91faeafe89
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_2_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_3_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_3_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e9e7404e2b17e3ed839859e292f5908c9f8c7362
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_3_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_4_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_4_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..dc8d4ea1c1107364f8b30800d2c3eb91faeafe89
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_4_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_0_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_0_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..67b4696e84b47d26057f0fa8e76a974fbabc2d7d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_0_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_1_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_1_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..18c279c76c829609cc27b10d7fe515166647c8b8
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_1_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_2_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_2_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..447d5e20cb57a4fa5612c2de25b13c2ac62da135
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_2_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_3_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_3_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..16e045dbfe1b8910c1b6aa0c82422f7b7bb8c1ff
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_3_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_4_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_4_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..447d5e20cb57a4fa5612c2de25b13c2ac62da135
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_4_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_0_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_0_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c5dd674f4f8d4fa7bece45d8a922258e7b47f163
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_0_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_1_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_1_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..826b4142edf7c1890c3f8c229c8177940361cfa0
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_1_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_2_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_2_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ce0704d0924d9345fbe28956a25472cf0e8ca225
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_2_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_3_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_3_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8c3dfe19840db12644878f5265605a43b46ac06c
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_3_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_4_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_4_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ce0704d0924d9345fbe28956a25472cf0e8ca225
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_4_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_0_probe_0_[720_1440_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_0_probe_0_[720_1440_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1f9b5581e89bea4d6ed0a3ba3d9292b582bf8f2d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_0_probe_0_[720_1440_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_1_probe_0_[720_1440_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_1_probe_0_[720_1440_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9d1baeafac7fb661b437d5e8272016304ccfc15a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_1_probe_0_[720_1440_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_2_probe_0_[720_1440_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_2_probe_0_[720_1440_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7496afe77185b8b0d32e074c84a3b2c02f668ed4
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_2_probe_0_[720_1440_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_3_probe_0_[720_1440_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_3_probe_0_[720_1440_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e5f0041a4e0d9061f81e498ce1c59ad142ff2d42
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_3_probe_0_[720_1440_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_4_probe_0_[720_1440_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_4_probe_0_[720_1440_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7496afe77185b8b0d32e074c84a3b2c02f668ed4
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_4_probe_0_[720_1440_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_5_probe_0_[720_1440_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_5_probe_0_[720_1440_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..45d613b58dffe69aee50ac0f7b438d0eb013481d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_5_probe_0_[720_1440_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_0_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_0_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d00378fc0e2101e89c88f9caa0cd6304c3f0f7a4
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_0_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_1_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_1_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d03e902d18c2caea07496ca5926e6101d2bc0611
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_1_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_2_probe_0_[736_1408_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_2_probe_0_[736_1408_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5873738da420a2d02d62bb77b2f903d34da35767
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_2_probe_0_[736_1408_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_3_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_3_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6c1560aefc22e2256a6f5346a2becbfbba2ab3e2
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_3_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_4_probe_0_[736_1408_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_4_probe_0_[736_1408_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5873738da420a2d02d62bb77b2f903d34da35767
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_4_probe_0_[736_1408_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..7f90e55b73d2b46faa69bdd0b90de4ae8b48b850
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..5a84f0cd65dda48efef2ad8c3887361741fd042c
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-30/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_0_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_1_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_2_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_3_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_4_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/0_0_5_probe_0_[720_1424_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_0_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_1_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_2_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_3_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_4_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/1_0_5_probe_0_[800_1280_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_0_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_1_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_2_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_3_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_4_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/2_0_5_probe_0_[864_1200_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_0_probe_0_[720_1440_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_1_probe_0_[720_1440_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_2_probe_0_[720_1440_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_3_probe_0_[720_1440_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_4_probe_0_[720_1440_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/3_0_5_probe_0_[720_1440_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_0_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_1_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_2_probe_0_[736_1408_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_3_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_4_probe_0_[736_1408_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30/4_0_5_probe_0_[736_1408_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-30/BaseSolver_eval_image_step_30_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_0_probe_0_[816_1264_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_0_probe_0_[816_1264_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..000ca60b80c3fa1123691c039858d464f267313b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_0_probe_0_[816_1264_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_1_probe_0_[816_1264_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_1_probe_0_[816_1264_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fb8756f527fb815e63a9d02f64c89290d91b40c5
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_1_probe_0_[816_1264_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_2_probe_0_[816_1264_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_2_probe_0_[816_1264_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..83b419cf6f4327cae338c30cf103f1d5c154e50e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_2_probe_0_[816_1264_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_3_probe_0_[816_1264_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_3_probe_0_[816_1264_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..58b3963e6457c2a85384535ded224647ef8aea8f
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_3_probe_0_[816_1264_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_4_probe_0_[816_1264_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_4_probe_0_[816_1264_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..83b419cf6f4327cae338c30cf103f1d5c154e50e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_4_probe_0_[816_1264_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_5_probe_0_[816_1264_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_5_probe_0_[816_1264_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9696fcc2956f85d542f14fe28598b301fbafd7ce
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_5_probe_0_[816_1264_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_0_probe_0_[816_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_0_probe_0_[816_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4b38aa30649865c1a7160ba21a1323f3abcec205
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_0_probe_0_[816_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_1_probe_0_[816_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_1_probe_0_[816_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c5d2d3342ec972ab731d9b7e214dd9d537e68421
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_1_probe_0_[816_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_2_probe_0_[816_1248_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_2_probe_0_[816_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..96b434794c4cb37914c54db1aa0e687446b56dab
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_2_probe_0_[816_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_3_probe_0_[816_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_3_probe_0_[816_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a765d40d508f5d4e6c779d7de681efa52c93e057
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_3_probe_0_[816_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_4_probe_0_[816_1248_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_4_probe_0_[816_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..96b434794c4cb37914c54db1aa0e687446b56dab
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_4_probe_0_[816_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_5_probe_0_[816_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_5_probe_0_[816_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b32c52cc68e83d01c7cfaee70beb2198c59641b6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_5_probe_0_[816_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_0_probe_0_[848_1216_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_0_probe_0_[848_1216_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..797d5a25a20e344a3453aeb9d532935eac28d451
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_0_probe_0_[848_1216_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_1_probe_0_[848_1216_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_1_probe_0_[848_1216_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bde3c4e49b75a4f4cf29e0b8eb6354d74125d856
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_1_probe_0_[848_1216_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_2_probe_0_[848_1216_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_2_probe_0_[848_1216_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8b7307375c263474e45103e49948ed3ad60c8726
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_2_probe_0_[848_1216_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_3_probe_0_[848_1216_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_3_probe_0_[848_1216_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..008554271c940d39bf2a734f02d3454339521382
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_3_probe_0_[848_1216_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_4_probe_0_[848_1216_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_4_probe_0_[848_1216_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8b7307375c263474e45103e49948ed3ad60c8726
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_4_probe_0_[848_1216_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_0_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_0_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ea967383987ffb87a734a9eef4aee0ee2f182657
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_0_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_1_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_1_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1b601a5dbc69ad62c7009ba90ca3cca77c5405b1
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_1_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_2_probe_0_[736_1408_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_2_probe_0_[736_1408_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0b4038611e261d8345bb1e40bf626d107c4a874d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_2_probe_0_[736_1408_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_3_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_3_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c67f8e28fffce427540beb9741d1a17ce7b42fe9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_3_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_4_probe_0_[736_1408_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_4_probe_0_[736_1408_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0b4038611e261d8345bb1e40bf626d107c4a874d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_4_probe_0_[736_1408_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_0_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_0_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9f71580108661f71f34363438df677ee4aac8b6e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_0_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_1_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_1_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3f731f44571d1ff3461706469a3b7d52976b80fd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_1_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_2_probe_0_[832_1248_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_2_probe_0_[832_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4b3e3fd7d76d37a19b4d6fcfb99472ca11506540
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_2_probe_0_[832_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_3_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_3_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f6872476828654c72e79174a1e5a46dc35a65f09
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_3_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_4_probe_0_[832_1248_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_4_probe_0_[832_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4b3e3fd7d76d37a19b4d6fcfb99472ca11506540
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_4_probe_0_[832_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_5_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_5_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..86510538e0080ee9b5123ed4dc410401529dc5a7
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_5_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..304b684353ff7b41aae964f2dc6aa8fe117a3d9a
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..ca9a2a1fe7819c2e7f7fca99ba055895bdcd1c09
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-40/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_0_probe_0_[816_1264_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_1_probe_0_[816_1264_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_2_probe_0_[816_1264_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_3_probe_0_[816_1264_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_4_probe_0_[816_1264_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/0_0_5_probe_0_[816_1264_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_0_probe_0_[816_1248_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_1_probe_0_[816_1248_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_2_probe_0_[816_1248_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_3_probe_0_[816_1248_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_4_probe_0_[816_1248_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/1_0_5_probe_0_[816_1248_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_0_probe_0_[848_1216_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_1_probe_0_[848_1216_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_2_probe_0_[848_1216_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_3_probe_0_[848_1216_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_4_probe_0_[848_1216_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/2_0_5_probe_0_[848_1216_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_0_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_1_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_2_probe_0_[736_1408_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_3_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_4_probe_0_[736_1408_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/3_0_5_probe_0_[736_1408_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_0_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_1_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_2_probe_0_[832_1248_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_3_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_4_probe_0_[832_1248_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40/4_0_5_probe_0_[832_1248_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-40/BaseSolver_eval_image_step_40_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_0_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_0_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9fd2724092ff21bd682652e5ab82fa8f8ece4342
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_0_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_1_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_1_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f00a5eb72b2ddd30e34ac3c17aa78b6f2386f8e2
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_1_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_2_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_2_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..245a89d7acd19184cca7b8fd293d48669fa8d234
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_2_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_3_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_3_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4cef6381f46a04962c35491bd335ab641e6fff4d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_3_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_4_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_4_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..245a89d7acd19184cca7b8fd293d48669fa8d234
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_4_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_0_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_0_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..331c64fa74af0a6419274a0e88c782613bc2a59a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_0_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_1_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_1_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d0c96433a48d4bf7ed724bce4b7ab0cd0e0c806e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_1_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_2_probe_0_[736_1408_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_2_probe_0_[736_1408_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e404c31123d7caf44d3fb14165673af68ed46c29
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_2_probe_0_[736_1408_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_3_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_3_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4b8f9d57512674c4644d1073c327c3881e70fe17
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_3_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_4_probe_0_[736_1408_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_4_probe_0_[736_1408_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e404c31123d7caf44d3fb14165673af68ed46c29
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_4_probe_0_[736_1408_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_0_probe_0_[720_1440_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_0_probe_0_[720_1440_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..87962a3a47ce20489ee4b7c9b198e893f3f9f013
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_0_probe_0_[720_1440_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_1_probe_0_[720_1440_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_1_probe_0_[720_1440_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1ca400f1590a39071c4f26937cb4428cdd900f4a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_1_probe_0_[720_1440_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_2_probe_0_[720_1440_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_2_probe_0_[720_1440_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..28ad2d691b02cf7f3b6a28de733770c7399ccb0e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_2_probe_0_[720_1440_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_3_probe_0_[720_1440_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_3_probe_0_[720_1440_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6f1562d9a4bf4597d0cf810eea4d1a369e22b97b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_3_probe_0_[720_1440_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_4_probe_0_[720_1440_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_4_probe_0_[720_1440_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..28ad2d691b02cf7f3b6a28de733770c7399ccb0e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_4_probe_0_[720_1440_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_0_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_0_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ef2737992e2c73a89d4f454930871452ed2c07b2
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_0_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_1_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_1_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2dfa4088f3d92a9640c1c5af9837a5e0b78639d0
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_1_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_2_probe_0_[848_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_2_probe_0_[848_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4f69872fadef4a4796c3cae06d4ebbf5aff96f24
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_2_probe_0_[848_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_3_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_3_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..94d401ef20d0cdd7d9ca408c403334d3982239c6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_3_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_4_probe_0_[848_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_4_probe_0_[848_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4f69872fadef4a4796c3cae06d4ebbf5aff96f24
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_4_probe_0_[848_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_0_probe_0_[816_1264_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_0_probe_0_[816_1264_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c485fa7f09ad35f5eeb94e6f79a688530c352539
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_0_probe_0_[816_1264_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_1_probe_0_[816_1264_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_1_probe_0_[816_1264_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a3646a239ecca3c96b2b50a261530fffe8ee2037
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_1_probe_0_[816_1264_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_2_probe_0_[816_1264_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_2_probe_0_[816_1264_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6e441c2d5b9c20b4f6c8279a8036575a163fc98a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_2_probe_0_[816_1264_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_3_probe_0_[816_1264_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_3_probe_0_[816_1264_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..aa601e1ebfd1f64f68a185afcc36377cea4c3895
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_3_probe_0_[816_1264_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_4_probe_0_[816_1264_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_4_probe_0_[816_1264_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6e441c2d5b9c20b4f6c8279a8036575a163fc98a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_4_probe_0_[816_1264_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..2f27504d1291f4f8c38c647480c58a1459312c83
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..b915f2a58cb3fef4e9d6d2f7a9b36792005440eb
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-50/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_0_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_1_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_2_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_3_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_4_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/0_0_5_probe_0_[720_1424_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_0_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_1_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_2_probe_0_[736_1408_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_3_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_4_probe_0_[736_1408_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/1_0_5_probe_0_[736_1408_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_0_probe_0_[720_1440_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_1_probe_0_[720_1440_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_2_probe_0_[720_1440_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_3_probe_0_[720_1440_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_4_probe_0_[720_1440_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/2_0_5_probe_0_[720_1440_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_0_probe_0_[848_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_1_probe_0_[848_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_2_probe_0_[848_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_3_probe_0_[848_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_4_probe_0_[848_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/3_0_5_probe_0_[848_1232_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_0_probe_0_[816_1264_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_1_probe_0_[816_1264_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_2_probe_0_[816_1264_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_3_probe_0_[816_1264_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_4_probe_0_[816_1264_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50/4_0_5_probe_0_[816_1264_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-50/BaseSolver_eval_image_step_50_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_0_probe_0_[720_1440_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_0_probe_0_[720_1440_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..60375a3fcaa6523c8cfe6fd03ceb7944dd976ff8
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_0_probe_0_[720_1440_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_1_probe_0_[720_1440_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_1_probe_0_[720_1440_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c1554f250536544bda4c7061db8083cf3e8bc3ab
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_1_probe_0_[720_1440_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_2_probe_0_[720_1440_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_2_probe_0_[720_1440_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..940caaa70cf4df7da34ebc562a7de77d343b0847
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_2_probe_0_[720_1440_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_3_probe_0_[720_1440_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_3_probe_0_[720_1440_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4ecdc07d164a8a232335cc04a0c1601435db26b6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_3_probe_0_[720_1440_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_4_probe_0_[720_1440_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_4_probe_0_[720_1440_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..940caaa70cf4df7da34ebc562a7de77d343b0847
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_4_probe_0_[720_1440_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_5_probe_0_[720_1440_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_5_probe_0_[720_1440_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d708ff06491d87b6c1420d0365f42d54f0fe03ba
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_5_probe_0_[720_1440_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_0_probe_0_[720_1440_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_0_probe_0_[720_1440_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..87300fbf3495d54fdf84501b5e316c62e7e73f31
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_0_probe_0_[720_1440_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_1_probe_0_[720_1440_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_1_probe_0_[720_1440_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a6721685d70a164dd856b3defc564e0c46c210a3
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_1_probe_0_[720_1440_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_2_probe_0_[720_1440_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_2_probe_0_[720_1440_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f7a87bb37e0ceff5e416bb130b765bb7f6f75f44
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_2_probe_0_[720_1440_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_3_probe_0_[720_1440_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_3_probe_0_[720_1440_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9b3c6fb1795eb7453f41657accfc25fd52283177
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_3_probe_0_[720_1440_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_4_probe_0_[720_1440_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_4_probe_0_[720_1440_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f7a87bb37e0ceff5e416bb130b765bb7f6f75f44
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_4_probe_0_[720_1440_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_5_probe_0_[720_1440_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_5_probe_0_[720_1440_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9ae81a10b8dd63add03b7da3bcf181caec45c8fd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_5_probe_0_[720_1440_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_0_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_0_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..92385a539a857e9be1d177b2b9bd9e7b278fba6b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_0_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_1_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_1_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3946af330db2da48e2940f39cf93cd92103a68e9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_1_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_2_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_2_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9d32026b8e0429af631ff0a3344a81ce99e9505a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_2_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_3_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_3_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a53397737ce42d0ed9e26669ce803c5838d8a40b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_3_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_4_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_4_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9d32026b8e0429af631ff0a3344a81ce99e9505a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_4_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_5_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_5_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3afe481485c3640c9f921c1792834507a2e61d2d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_5_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_0_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_0_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f81f3945bb9e868502efa4357d88a36a5ef0725d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_0_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_1_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_1_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9598252e381543d299ce4a6870510cea79e371dd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_1_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_2_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_2_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a81fdf3d90588ec23b0f01670d9e94dabcabc880
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_2_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_3_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_3_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ccee3bf6506a5331c7fd6d97a429cc9392a9f45b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_3_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_4_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_4_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a81fdf3d90588ec23b0f01670d9e94dabcabc880
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_4_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_5_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_5_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ed6d3c30f531be0e4d20c312ad70be57532d7d5b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_5_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_0_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_0_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..13c33302b049166124abc3189c4c7cd7cfc51245
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_0_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_1_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_1_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8967fef1d7b3260c3bf513b1a746534d9c17cd10
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_1_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_2_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_2_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..79833b60c40ce545ee1bb7d71e74baa9b6929ad9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_2_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_3_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_3_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f842726dfe65fe219615d73c3b11e9d3c5de6989
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_3_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_4_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_4_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..79833b60c40ce545ee1bb7d71e74baa9b6929ad9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_4_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_5_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_5_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c8bcaa8782f788e3fa9ca1aaa298e66a28428b2b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_5_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..d75a99bf318de4fd2b824f27a31d1a79e9473fc4
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..1dacc5aa3110bb8d47a9e8106a0fc1e43dadf74e
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-60/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_0_probe_0_[720_1440_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_1_probe_0_[720_1440_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_2_probe_0_[720_1440_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_3_probe_0_[720_1440_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_4_probe_0_[720_1440_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/0_0_5_probe_0_[720_1440_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_0_probe_0_[720_1440_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_1_probe_0_[720_1440_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_2_probe_0_[720_1440_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_3_probe_0_[720_1440_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_4_probe_0_[720_1440_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/1_0_5_probe_0_[720_1440_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_0_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_1_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_2_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_3_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_4_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/2_0_5_probe_0_[720_1424_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_0_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_1_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_2_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_3_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_4_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/3_0_5_probe_0_[800_1280_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_0_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_1_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_2_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_3_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_4_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60/4_0_5_probe_0_[864_1200_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-60/BaseSolver_eval_image_step_60_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_0_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_0_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..be30f324493f425863a0feebc473e4e7d695c019
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_0_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_1_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_1_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a9c692deb6d0bc25f1d7f378e356d1947a36a4fe
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_1_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_2_probe_0_[768_1344_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_2_probe_0_[768_1344_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..998fa882dd8fb8482f29bc4db059bb7e094959ef
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_2_probe_0_[768_1344_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_3_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_3_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5bd71ce94f0d06df9f2fe15506d136f72ecd2eac
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_3_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_4_probe_0_[768_1344_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_4_probe_0_[768_1344_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..998fa882dd8fb8482f29bc4db059bb7e094959ef
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_4_probe_0_[768_1344_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_5_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_5_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..65feee71c698d8c6f943ffac3e48d1c7d9d66580
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_5_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_0_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_0_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2e20e8d33f702e6475990fb8658e514ea2d50e6d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_0_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_1_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_1_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4f8b6fde2bc207d060a9879262929d04a3d912d6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_1_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_2_probe_0_[832_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_2_probe_0_[832_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9d4541f896bbeae125dbef34bde804468ce08448
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_2_probe_0_[832_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_3_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_3_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7021a816c795ee47d301c437c1ab41f0b6aae73d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_3_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_4_probe_0_[832_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_4_probe_0_[832_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9d4541f896bbeae125dbef34bde804468ce08448
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_4_probe_0_[832_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_5_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_5_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2ea7438cd51e9b6991c9252eb9ee80475cd8ac39
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_5_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_0_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_0_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a15a817944bc40828ae4a453f578535ad4972a7d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_0_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_1_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_1_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f20b0c189ebe16be4dc8ea171d116d4cd460beb0
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_1_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_2_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_2_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ee559faf7171291e8b328c0c3d9bf4c86b389d1a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_2_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_3_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_3_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..128dbabb99013d31e943abaa3d20b4410c72be93
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_3_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_4_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_4_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ee559faf7171291e8b328c0c3d9bf4c86b389d1a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_4_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_5_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_5_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3c9d28444c0f91503667ff6e1bcbdebbc4243618
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_5_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_0_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_0_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..eb9d1f69caffe73b06999c65b0e7ecfed8a3a0f6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_0_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_1_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_1_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8de9ae718de4fcb68283c9a644bfd0362deba523
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_1_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_2_probe_0_[800_1296_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_2_probe_0_[800_1296_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6df33c8d34da2d6d3f24bc40284e055e78111a82
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_2_probe_0_[800_1296_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_3_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_3_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..816a68aed2d34bcf9238dfae57d017211febfa08
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_3_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_4_probe_0_[800_1296_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_4_probe_0_[800_1296_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6df33c8d34da2d6d3f24bc40284e055e78111a82
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_4_probe_0_[800_1296_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_5_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_5_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7fb06f5a3b3802e35ecd97fbb180ef888ffbd8a6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_5_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_0_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_0_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6e6ee5defc362989235cdf4bfb627f3d17c483f8
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_0_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_1_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_1_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c49c422154f6f8f3f6ca7050d31da8c3687a456a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_1_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_2_probe_0_[768_1344_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_2_probe_0_[768_1344_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9e9944d1ad4f63a83883746134ea09bd4b195b53
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_2_probe_0_[768_1344_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_3_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_3_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cd5c4eff6e3893338b4fcf2925c1466ec98921cd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_3_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_4_probe_0_[768_1344_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_4_probe_0_[768_1344_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9e9944d1ad4f63a83883746134ea09bd4b195b53
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_4_probe_0_[768_1344_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_5_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_5_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6605948b48e4f38ff688911f69bee87ad926e727
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_5_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..743c2438009d2eafa490b6dded3fd29e61ad4c61
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..7efe70bc063d73f98cf64ac42672c2cbf37973b7
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-70/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_0_probe_0_[768_1344_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_1_probe_0_[768_1344_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_2_probe_0_[768_1344_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_3_probe_0_[768_1344_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_4_probe_0_[768_1344_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/0_0_5_probe_0_[768_1344_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_0_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_1_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_2_probe_0_[832_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_3_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_4_probe_0_[832_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/1_0_5_probe_0_[832_1232_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_0_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_1_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_2_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_3_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_4_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/2_0_5_probe_0_[720_1424_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_0_probe_0_[800_1296_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_1_probe_0_[800_1296_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_2_probe_0_[800_1296_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_3_probe_0_[800_1296_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_4_probe_0_[800_1296_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/3_0_5_probe_0_[800_1296_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_0_probe_0_[768_1344_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_1_probe_0_[768_1344_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_2_probe_0_[768_1344_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_3_probe_0_[768_1344_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_4_probe_0_[768_1344_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70/4_0_5_probe_0_[768_1344_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-70/BaseSolver_eval_image_step_70_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_0_probe_0_[848_1216_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_0_probe_0_[848_1216_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..48ce9ae0d9ef1f5f351a49d47e81ccff026f2a2c
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_0_probe_0_[848_1216_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_1_probe_0_[848_1216_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_1_probe_0_[848_1216_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1e1f250bd1beb989ce837db5ec9f5ed8bcb65079
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_1_probe_0_[848_1216_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_2_probe_0_[848_1216_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_2_probe_0_[848_1216_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..055b0b4275ef4affdfc4c3b5206a5ca61c1e065a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_2_probe_0_[848_1216_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_3_probe_0_[848_1216_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_3_probe_0_[848_1216_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c4f67a7a22b8edea0a264274b0b94d6315fb26ab
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_3_probe_0_[848_1216_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_4_probe_0_[848_1216_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_4_probe_0_[848_1216_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..055b0b4275ef4affdfc4c3b5206a5ca61c1e065a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_4_probe_0_[848_1216_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_5_probe_0_[848_1216_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_5_probe_0_[848_1216_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c78a1540e5ae453db7427aca9223fdbd55ec5c1a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_5_probe_0_[848_1216_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_0_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_0_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..86f4842669c4352cb9df19bb20b800b1404e649e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_0_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_1_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_1_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9184dba587b96a7bcce46fda03b734d01669bb49
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_1_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_2_probe_0_[768_1344_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_2_probe_0_[768_1344_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ce018e99c7e1d34d19784c5c869e04a8f0d151df
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_2_probe_0_[768_1344_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_3_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_3_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..164a6b83c1bced4d199c11bfdc0b8be1ec5dcad6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_3_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_4_probe_0_[768_1344_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_4_probe_0_[768_1344_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ce018e99c7e1d34d19784c5c869e04a8f0d151df
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_4_probe_0_[768_1344_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_5_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_5_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b7a4b7db0cfa399140dfd36e3633de4c96cb6cab
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_5_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_0_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_0_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1b0583baef298e2506bc6308817668934463769b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_0_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_1_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_1_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..022f94e89a4a9368872c0f674fe03f484c9c64d7
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_1_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_2_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_2_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3c415bead0d4198597aae0029505fc7bfa7d252b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_2_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_3_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_3_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e9092623c9f62199181ffe8b24109575f67be400
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_3_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_4_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_4_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3c415bead0d4198597aae0029505fc7bfa7d252b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_4_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_5_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_5_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..082cf04d74b2f732a137a153d259027cb9365b7f
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_5_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_0_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_0_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d4031ecbac5f0f7061b44046b152855e31280f37
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_0_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_1_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_1_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..872463d654af36621a50c6288654105d863e7578
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_1_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_2_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_2_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..391f533bfbb549f68820ad3e2841035138fc7d30
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_2_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_3_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_3_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4cef6381f46a04962c35491bd335ab641e6fff4d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_3_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_4_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_4_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..391f533bfbb549f68820ad3e2841035138fc7d30
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_4_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_5_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_5_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..65b6d13843b172b4d4769283de969f9bb6924acd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_5_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_0_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_0_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..65ad72b1ac58100f884c320272c8ebd4d4e0ece4
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_0_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_1_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_1_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..99ecb4b5f6efce95bc0edc4a0dc16595f37522c1
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_1_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_2_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_2_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d36654e4ca9e0bba0ee73e38cabf42dc01a1f1ee
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_2_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_3_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_3_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..97aa13f1bb6efe45ef677953d838b41aa1929126
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_3_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_4_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_4_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d36654e4ca9e0bba0ee73e38cabf42dc01a1f1ee
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_4_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_5_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_5_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..53b72b0b62c93099452a603ea5fe77a51a1fd6ac
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_5_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..f5ad8065ba92c09c7fce5572f1d358b2448226ac
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..7dc250866cb611ee53c6028c1703c055b3e04ec8
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-80/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_0_probe_0_[848_1216_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_1_probe_0_[848_1216_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_2_probe_0_[848_1216_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_3_probe_0_[848_1216_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_4_probe_0_[848_1216_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/0_0_5_probe_0_[848_1216_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_0_probe_0_[768_1344_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_1_probe_0_[768_1344_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_2_probe_0_[768_1344_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_3_probe_0_[768_1344_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_4_probe_0_[768_1344_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/1_0_5_probe_0_[768_1344_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_0_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_1_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_2_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_3_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_4_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/2_0_5_probe_0_[864_1200_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_0_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_1_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_2_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_3_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_4_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/3_0_5_probe_0_[720_1424_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_0_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_1_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_2_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_3_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_4_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80/4_0_5_probe_0_[720_1424_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-80/BaseSolver_eval_image_step_80_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_0_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_0_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3faa6beaf14abea59e2e850bb014ab41546d1f09
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_0_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_1_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_1_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1cb6ca5962dd170a3f8d349d1394c5f2c3eba170
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_1_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_2_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_2_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..de2ea753ca8014b5126c0bea34afb67894e3ff1c
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_2_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_3_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_3_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a59ce31747ae3d86ad2ae0b78e97aa1937030ad9
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_3_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_4_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_4_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..de2ea753ca8014b5126c0bea34afb67894e3ff1c
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_4_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_5_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_5_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4f5384607e53bb5c6cba5aafa5c29e472cdc4bab
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_5_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_0_probe_0_[816_1264_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_0_probe_0_[816_1264_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f7c81e5d03339ada09adea78c667c03c09f0a40e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_0_probe_0_[816_1264_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_1_probe_0_[816_1264_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_1_probe_0_[816_1264_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cbc5e905defceac50ca98f801bc7802ed6ae950a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_1_probe_0_[816_1264_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_2_probe_0_[816_1264_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_2_probe_0_[816_1264_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7a4986aa11ee1298ec69d799a2cc4aef330d5dea
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_2_probe_0_[816_1264_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_3_probe_0_[816_1264_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_3_probe_0_[816_1264_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cdce02a5e57f0588b0741af023e7ddee63c57624
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_3_probe_0_[816_1264_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_4_probe_0_[816_1264_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_4_probe_0_[816_1264_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7a4986aa11ee1298ec69d799a2cc4aef330d5dea
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_4_probe_0_[816_1264_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_0_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_0_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f03bad511e24867313eaf513355355ecd3789925
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_0_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_1_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_1_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e5629d3257a1674b3868cb924fc2d9681f74d237
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_1_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_2_probe_0_[736_1408_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_2_probe_0_[736_1408_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..eebbada03d25524aaca102b94e8b5a91320a4300
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_2_probe_0_[736_1408_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_3_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_3_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f29b65f34dfee98aabb5fc75b82bbc4740ad03e3
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_3_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_4_probe_0_[736_1408_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_4_probe_0_[736_1408_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..eebbada03d25524aaca102b94e8b5a91320a4300
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_4_probe_0_[736_1408_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_5_probe_0_[736_1408_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_5_probe_0_[736_1408_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2cf76650b2d5bc02d3d0e141b5bfbd2a79de0c9d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_5_probe_0_[736_1408_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_0_probe_0_[880_1168_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_0_probe_0_[880_1168_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0dd254d6bdf2969189049446a0b52026aa1b6e05
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_0_probe_0_[880_1168_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_1_probe_0_[880_1168_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_1_probe_0_[880_1168_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4a38c9f0f1594b9b52243587cba2de191f9668a2
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_1_probe_0_[880_1168_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_2_probe_0_[880_1168_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_2_probe_0_[880_1168_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..22a50ec322e9a5631522de5ae045e723d5f34c21
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_2_probe_0_[880_1168_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_3_probe_0_[880_1168_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_3_probe_0_[880_1168_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..92a6d206bd35042f7e8c6facd0ee37d284651f1f
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_3_probe_0_[880_1168_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_4_probe_0_[880_1168_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_4_probe_0_[880_1168_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..22a50ec322e9a5631522de5ae045e723d5f34c21
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_4_probe_0_[880_1168_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_5_probe_0_[880_1168_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_5_probe_0_[880_1168_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..173c9dddd2ca5df83935c72491fd48ef2e569896
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_5_probe_0_[880_1168_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_0_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_0_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2ff047cace058b7d9cec307bc33823e25b334dd1
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_0_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_1_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_1_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..858a3cff5707d2a5a1d069dc2935d9776b855f55
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_1_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_2_probe_0_[832_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_2_probe_0_[832_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..436d5a0b26a289e4b279ae81bff9742fe774d366
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_2_probe_0_[832_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_3_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_3_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a3ac1201f0fe748bfe74a896e78d1d414382a51a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_3_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_4_probe_0_[832_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_4_probe_0_[832_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..436d5a0b26a289e4b279ae81bff9742fe774d366
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_4_probe_0_[832_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_5_probe_0_[832_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_5_probe_0_[832_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ae7dfbefd665fecb28c4554cfc8b3c46762d4684
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_5_probe_0_[832_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90_probe.html b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..398795d358d734aed35f228d93450e756afa18ec
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90_probe.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/meta.json b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..9cc84c2fa70b47d2f48a8490ec960d019a194cfd
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/eval_probe/step-90/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_eval_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], ["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]], "BaseSolver_eval_image": {"ori_file": [["./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_0_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_1_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_2_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_3_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_4_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/0_0_5_probe_0_[864_1200_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_0_probe_0_[816_1264_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_1_probe_0_[816_1264_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_2_probe_0_[816_1264_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_3_probe_0_[816_1264_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_4_probe_0_[816_1264_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/1_0_5_probe_0_[816_1264_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_0_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_1_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_2_probe_0_[736_1408_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_3_probe_0_[736_1408_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_4_probe_0_[736_1408_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/2_0_5_probe_0_[736_1408_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_0_probe_0_[880_1168_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_1_probe_0_[880_1168_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_2_probe_0_[880_1168_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_3_probe_0_[880_1168_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_4_probe_0_[880_1168_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/3_0_5_probe_0_[880_1168_3].jpg"], ["./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_0_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_1_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_2_probe_0_[832_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_3_probe_0_[832_1232_3].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_4_probe_0_[832_1232_1].jpg", "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90/4_0_5_probe_0_[832_1232_3].jpg"]], "html": "./examples/exp_example/20250624073511/eval_probe/step-90/BaseSolver_eval_image_step_90_probe.html"}}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/noise_schedule.png b/ACE_plus/examples/exp_example/20250624073511/noise_schedule.png
new file mode 100644
index 0000000000000000000000000000000000000000..2d08dfab306b571d00dd9cbd03468d2b58de1f7d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/noise_schedule.png differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/sampler_schedule.png b/ACE_plus/examples/exp_example/20250624073511/sampler_schedule.png
new file mode 100644
index 0000000000000000000000000000000000000000..f12f547ac8a8c4c5f946276a86a85e60bdd5f107
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/sampler_schedule.png differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/std_log.txt b/ACE_plus/examples/exp_example/20250624073511/std_log.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8e3bdaa016f3af7641fe798ee5f18e5de6eb4e4c
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/std_log.txt
@@ -0,0 +1,585 @@
+scepter [INFO] 2025-06-24 07:35:13,340 [File: logger.py Function: init_logger at line 85] Running task with log file: /home/Ubuntu/Downloads/Unmodel/ACE_plus/./examples/exp_example/20250624073511/std_log.txt
+scepter [WARNING] 2025-06-24 07:35:13,437 [File: import_utils.py Function: import_module at line 325] ('DATASETS', 'ACEPlusDataset') not found in ast index file
+scepter [INFO] 2025-06-24 07:35:13,438 [File: ace_plus_dataset.py Function: read_data_list at line 151] subject has 5 samples.
+scepter [INFO] 2025-06-24 07:35:13,439 [File: registry.py Function: __init__ at line 185] Built dataloader with len 9223372036854775807
+scepter [WARNING] 2025-06-24 07:35:13,439 [File: import_utils.py Function: import_module at line 325] ('DATASETS', 'ACEPlusDataset') not found in ast index file
+scepter [INFO] 2025-06-24 07:35:13,439 [File: ace_plus_dataset.py Function: read_data_list at line 151] subject has 5 samples.
+scepter [INFO] 2025-06-24 07:35:13,439 [File: registry.py Function: __init__ at line 185] Built dataloader with len 5
+scepter [INFO] 2025-06-24 07:36:29,593 [File: flux.py Function: load_pretrained_model at line 450] Restored from /home/Ubuntu/Downloads/Unmodel/Reference_models/flux1-fill-dev.safetensors with 0 missing and 0 unexpected keys
+scepter [INFO] 2025-06-24 07:36:29,611 [File: ace_plus_ldm.py Function: construct_network at line 62] all parameters:11.90B
+scepter [INFO] 2025-06-24 07:36:30,231 [File: ae_module.py Function: construct_model at line 76] AE Module XFORMERS_IS_AVAILBLE : True
+scepter [INFO] 2025-06-24 07:36:31,018 [File: ae_kl.py Function: init_from_ckpt at line 400] Restored from /home/Ubuntu/Downloads/Unmodel/Reference_models/ae.safetensors with 0 missing and 0 unexpected keys
+scepter [INFO] 2025-06-24 07:36:42,689 [File: diffusion_solver.py Function: add_tuner at line 788] [('base_model.model.double_blocks.0.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.0.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.0.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.0.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.0.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.0.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.0.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.0.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.0.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.0.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.0.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.0.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.0.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.0.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.0.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.0.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.0.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.0.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.0.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.0.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.1.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.1.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.1.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.1.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.1.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.1.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.1.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.1.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.1.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.1.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.1.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.1.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.1.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.1.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.1.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.1.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.1.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.1.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.1.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.1.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.2.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.2.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.2.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.2.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.2.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.2.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.2.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.2.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.2.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.2.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.2.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.2.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.2.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.2.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.2.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.2.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.2.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.2.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.2.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.2.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.3.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.3.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.3.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.3.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.3.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.3.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.3.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.3.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.3.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.3.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.3.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.3.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.3.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.3.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.3.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.3.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.3.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.3.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.3.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.3.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.4.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.4.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.4.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.4.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.4.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.4.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.4.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.4.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.4.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.4.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.4.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.4.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.4.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.4.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.4.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.4.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.4.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.4.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.4.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.4.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.5.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.5.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.5.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.5.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.5.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.5.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.5.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.5.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.5.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.5.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.5.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.5.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.5.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.5.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.5.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.5.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.5.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.5.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.5.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.5.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.6.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.6.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.6.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.6.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.6.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.6.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.6.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.6.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.6.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.6.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.6.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.6.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.6.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.6.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.6.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.6.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.6.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.6.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.6.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.6.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.7.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.7.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.7.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.7.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.7.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.7.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.7.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.7.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.7.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.7.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.7.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.7.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.7.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.7.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.7.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.7.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.7.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.7.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.7.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.7.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.8.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.8.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.8.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.8.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.8.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.8.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.8.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.8.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.8.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.8.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.8.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.8.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.8.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.8.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.8.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.8.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.8.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.8.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.8.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.8.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.9.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.9.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.9.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.9.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.9.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.9.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.9.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.9.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.9.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.9.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.9.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.9.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.9.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.9.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.9.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.9.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.9.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.9.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.9.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.9.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.10.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.10.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.10.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.10.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.10.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.10.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.10.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.10.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.10.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.10.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.10.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.10.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.10.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.10.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.10.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.10.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.10.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.10.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.10.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.10.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.11.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.11.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.11.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.11.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.11.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.11.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.11.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.11.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.11.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.11.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.11.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.11.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.11.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.11.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.11.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.11.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.11.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.11.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.11.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.11.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.12.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.12.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.12.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.12.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.12.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.12.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.12.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.12.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.12.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.12.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.12.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.12.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.12.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.12.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.12.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.12.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.12.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.12.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.12.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.12.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.13.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.13.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.13.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.13.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.13.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.13.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.13.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.13.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.13.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.13.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.13.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.13.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.13.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.13.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.13.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.13.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.13.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.13.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.13.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.13.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.14.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.14.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.14.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.14.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.14.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.14.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.14.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.14.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.14.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.14.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.14.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.14.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.14.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.14.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.14.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.14.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.14.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.14.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.14.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.14.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.15.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.15.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.15.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.15.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.15.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.15.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.15.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.15.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.15.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.15.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.15.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.15.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.15.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.15.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.15.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.15.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.15.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.15.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.15.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.15.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.16.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.16.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.16.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.16.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.16.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.16.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.16.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.16.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.16.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.16.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.16.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.16.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.16.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.16.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.16.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.16.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.16.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.16.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.16.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.16.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.17.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.17.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.17.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.17.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.17.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.17.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.17.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.17.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.17.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.17.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.17.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.17.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.17.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.17.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.17.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.17.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.17.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.17.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.17.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.17.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.18.img_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.18.img_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.18.img_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.18.img_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.18.img_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.18.img_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.18.img_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.18.img_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.18.img_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.18.img_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.18.txt_mod.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.18.txt_mod.lin.lora_B.0_SwiftLoRA.weight', torch.Size([18432, 64])), ('base_model.model.double_blocks.18.txt_attn.qkv.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.18.txt_attn.qkv.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.double_blocks.18.txt_attn.proj.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.18.txt_attn.proj.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.double_blocks.18.txt_mlp.0.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.double_blocks.18.txt_mlp.0.lora_B.0_SwiftLoRA.weight', torch.Size([12288, 64])), ('base_model.model.double_blocks.18.txt_mlp.2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 12288])), ('base_model.model.double_blocks.18.txt_mlp.2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.0.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.0.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.0.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.0.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.0.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.0.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.1.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.1.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.1.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.1.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.1.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.1.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.2.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.2.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.2.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.2.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.2.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.2.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.3.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.3.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.3.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.3.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.3.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.3.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.4.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.4.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.4.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.4.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.4.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.4.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.5.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.5.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.5.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.5.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.5.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.5.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.6.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.6.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.6.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.6.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.6.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.6.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.7.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.7.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.7.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.7.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.7.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.7.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.8.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.8.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.8.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.8.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.8.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.8.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.9.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.9.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.9.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.9.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.9.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.9.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.10.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.10.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.10.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.10.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.10.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.10.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.11.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.11.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.11.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.11.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.11.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.11.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.12.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.12.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.12.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.12.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.12.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.12.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.13.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.13.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.13.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.13.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.13.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.13.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.14.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.14.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.14.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.14.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.14.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.14.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.15.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.15.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.15.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.15.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.15.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.15.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.16.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.16.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.16.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.16.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.16.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.16.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.17.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.17.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.17.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.17.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.17.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.17.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.18.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.18.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.18.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.18.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.18.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.18.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.19.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.19.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.19.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.19.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.19.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.19.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.20.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.20.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.20.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.20.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.20.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.20.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.21.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.21.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.21.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.21.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.21.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.21.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.22.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.22.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.22.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.22.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.22.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.22.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.23.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.23.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.23.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.23.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.23.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.23.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.24.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.24.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.24.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.24.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.24.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.24.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.25.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.25.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.25.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.25.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.25.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.25.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.26.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.26.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.26.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.26.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.26.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.26.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.27.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.27.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.27.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.27.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.27.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.27.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.28.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.28.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.28.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.28.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.28.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.28.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.29.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.29.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.29.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.29.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.29.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.29.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.30.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.30.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.30.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.30.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.30.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.30.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.31.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.31.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.31.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.31.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.31.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.31.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.32.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.32.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.32.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.32.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.32.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.32.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.33.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.33.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.33.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.33.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.33.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.33.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.34.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.34.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.34.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.34.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.34.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.34.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.35.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.35.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.35.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.35.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.35.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.35.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.36.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.36.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.36.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.36.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.36.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.36.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64])), ('base_model.model.single_blocks.37.linear1.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.37.linear1.lora_B.0_SwiftLoRA.weight', torch.Size([21504, 64])), ('base_model.model.single_blocks.37.linear2.lora_A.0_SwiftLoRA.weight', torch.Size([64, 15360])), ('base_model.model.single_blocks.37.linear2.lora_B.0_SwiftLoRA.weight', torch.Size([3072, 64])), ('base_model.model.single_blocks.37.modulation.lin.lora_A.0_SwiftLoRA.weight', torch.Size([64, 3072])), ('base_model.model.single_blocks.37.modulation.lin.lora_B.0_SwiftLoRA.weight', torch.Size([9216, 64]))]
+scepter [INFO] 2025-06-24 07:36:42,703 [File: diffusion_solver.py Function: print_model_params_status at line 996] Load trainable params 306315264 / 17178094051 = 1.78%, train part: {'model.double_blocks': 171835392, 'model.single_blocks': 134479872}.
+scepter [INFO] 2025-06-24 07:36:42,703 [File: diffusion_solver.py Function: print_model_params_status at line 1000] Load frozen params 16871778787 / 17178094051 = 98.22%, frozen part: {'model': 11902587968, 'first_stage_model': 83819683, 'cond_stage_model': 4885371136}.
+scepter [INFO] 2025-06-24 07:37:18,925 [File: diffusion_solver.py Function: set_up at line 230] SwiftModel(
+ (base_model): LatentDiffusionACEPlus LatentDiffusionACEPlus(
+ (model): FluxMRModiACEPlus FluxMRModiACEPlus(
+ (pe_embedder): EmbedND()
+ (img_in): Linear(in_features=448, out_features=3072, bias=True)
+ (time_in): MLPEmbedder(
+ (in_layer): Linear(in_features=256, out_features=3072, bias=True)
+ (silu): SiLU()
+ (out_layer): Linear(in_features=3072, out_features=3072, bias=True)
+ )
+ (vector_in): MLPEmbedder(
+ (in_layer): Linear(in_features=768, out_features=3072, bias=True)
+ (silu): SiLU()
+ (out_layer): Linear(in_features=3072, out_features=3072, bias=True)
+ )
+ (guidance_in): MLPEmbedder(
+ (in_layer): Linear(in_features=256, out_features=3072, bias=True)
+ (silu): SiLU()
+ (out_layer): Linear(in_features=3072, out_features=3072, bias=True)
+ )
+ (txt_in): Linear(in_features=4096, out_features=3072, bias=True)
+ (double_blocks): ModuleList(
+ (0-18): 19 x DoubleStreamBlock(
+ (img_mod): Modulation(
+ (lin): lora.Linear(
+ (base_layer): Linear(in_features=3072, out_features=18432, bias=True)
+ (lora_dropout): ModuleDict(
+ (0_SwiftLoRA): Identity()
+ )
+ (lora_A): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=3072, out_features=64, bias=False)
+ )
+ (lora_B): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=64, out_features=18432, bias=False)
+ )
+ (lora_embedding_A): ParameterDict()
+ (lora_embedding_B): ParameterDict()
+ (lora_magnitude_vector): ModuleDict()
+ )
+ )
+ (img_norm1): LayerNorm((3072,), eps=1e-06, elementwise_affine=False)
+ (img_attn): SelfAttention(
+ (qkv): lora.Linear(
+ (base_layer): Linear(in_features=3072, out_features=9216, bias=True)
+ (lora_dropout): ModuleDict(
+ (0_SwiftLoRA): Identity()
+ )
+ (lora_A): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=3072, out_features=64, bias=False)
+ )
+ (lora_B): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=64, out_features=9216, bias=False)
+ )
+ (lora_embedding_A): ParameterDict()
+ (lora_embedding_B): ParameterDict()
+ (lora_magnitude_vector): ModuleDict()
+ )
+ (norm): QKNorm(
+ (query_norm): RMSNorm()
+ (key_norm): RMSNorm()
+ )
+ (proj): lora.Linear(
+ (base_layer): Linear(in_features=3072, out_features=3072, bias=True)
+ (lora_dropout): ModuleDict(
+ (0_SwiftLoRA): Identity()
+ )
+ (lora_A): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=3072, out_features=64, bias=False)
+ )
+ (lora_B): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=64, out_features=3072, bias=False)
+ )
+ (lora_embedding_A): ParameterDict()
+ (lora_embedding_B): ParameterDict()
+ (lora_magnitude_vector): ModuleDict()
+ )
+ )
+ (img_norm2): LayerNorm((3072,), eps=1e-06, elementwise_affine=False)
+ (img_mlp): Sequential(
+ (0): lora.Linear(
+ (base_layer): Linear(in_features=3072, out_features=12288, bias=True)
+ (lora_dropout): ModuleDict(
+ (0_SwiftLoRA): Identity()
+ )
+ (lora_A): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=3072, out_features=64, bias=False)
+ )
+ (lora_B): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=64, out_features=12288, bias=False)
+ )
+ (lora_embedding_A): ParameterDict()
+ (lora_embedding_B): ParameterDict()
+ (lora_magnitude_vector): ModuleDict()
+ )
+ (1): GELU(approximate='tanh')
+ (2): lora.Linear(
+ (base_layer): Linear(in_features=12288, out_features=3072, bias=True)
+ (lora_dropout): ModuleDict(
+ (0_SwiftLoRA): Identity()
+ )
+ (lora_A): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=12288, out_features=64, bias=False)
+ )
+ (lora_B): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=64, out_features=3072, bias=False)
+ )
+ (lora_embedding_A): ParameterDict()
+ (lora_embedding_B): ParameterDict()
+ (lora_magnitude_vector): ModuleDict()
+ )
+ )
+ (txt_mod): Modulation(
+ (lin): lora.Linear(
+ (base_layer): Linear(in_features=3072, out_features=18432, bias=True)
+ (lora_dropout): ModuleDict(
+ (0_SwiftLoRA): Identity()
+ )
+ (lora_A): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=3072, out_features=64, bias=False)
+ )
+ (lora_B): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=64, out_features=18432, bias=False)
+ )
+ (lora_embedding_A): ParameterDict()
+ (lora_embedding_B): ParameterDict()
+ (lora_magnitude_vector): ModuleDict()
+ )
+ )
+ (txt_norm1): LayerNorm((3072,), eps=1e-06, elementwise_affine=False)
+ (txt_attn): SelfAttention(
+ (qkv): lora.Linear(
+ (base_layer): Linear(in_features=3072, out_features=9216, bias=True)
+ (lora_dropout): ModuleDict(
+ (0_SwiftLoRA): Identity()
+ )
+ (lora_A): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=3072, out_features=64, bias=False)
+ )
+ (lora_B): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=64, out_features=9216, bias=False)
+ )
+ (lora_embedding_A): ParameterDict()
+ (lora_embedding_B): ParameterDict()
+ (lora_magnitude_vector): ModuleDict()
+ )
+ (norm): QKNorm(
+ (query_norm): RMSNorm()
+ (key_norm): RMSNorm()
+ )
+ (proj): lora.Linear(
+ (base_layer): Linear(in_features=3072, out_features=3072, bias=True)
+ (lora_dropout): ModuleDict(
+ (0_SwiftLoRA): Identity()
+ )
+ (lora_A): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=3072, out_features=64, bias=False)
+ )
+ (lora_B): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=64, out_features=3072, bias=False)
+ )
+ (lora_embedding_A): ParameterDict()
+ (lora_embedding_B): ParameterDict()
+ (lora_magnitude_vector): ModuleDict()
+ )
+ )
+ (txt_norm2): LayerNorm((3072,), eps=1e-06, elementwise_affine=False)
+ (txt_mlp): Sequential(
+ (0): lora.Linear(
+ (base_layer): Linear(in_features=3072, out_features=12288, bias=True)
+ (lora_dropout): ModuleDict(
+ (0_SwiftLoRA): Identity()
+ )
+ (lora_A): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=3072, out_features=64, bias=False)
+ )
+ (lora_B): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=64, out_features=12288, bias=False)
+ )
+ (lora_embedding_A): ParameterDict()
+ (lora_embedding_B): ParameterDict()
+ (lora_magnitude_vector): ModuleDict()
+ )
+ (1): GELU(approximate='tanh')
+ (2): lora.Linear(
+ (base_layer): Linear(in_features=12288, out_features=3072, bias=True)
+ (lora_dropout): ModuleDict(
+ (0_SwiftLoRA): Identity()
+ )
+ (lora_A): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=12288, out_features=64, bias=False)
+ )
+ (lora_B): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=64, out_features=3072, bias=False)
+ )
+ (lora_embedding_A): ParameterDict()
+ (lora_embedding_B): ParameterDict()
+ (lora_magnitude_vector): ModuleDict()
+ )
+ )
+ )
+ )
+ (single_blocks): ModuleList(
+ (0-37): 38 x SingleStreamBlock(
+ (linear1): lora.Linear(
+ (base_layer): Linear(in_features=3072, out_features=21504, bias=True)
+ (lora_dropout): ModuleDict(
+ (0_SwiftLoRA): Identity()
+ )
+ (lora_A): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=3072, out_features=64, bias=False)
+ )
+ (lora_B): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=64, out_features=21504, bias=False)
+ )
+ (lora_embedding_A): ParameterDict()
+ (lora_embedding_B): ParameterDict()
+ (lora_magnitude_vector): ModuleDict()
+ )
+ (linear2): lora.Linear(
+ (base_layer): Linear(in_features=15360, out_features=3072, bias=True)
+ (lora_dropout): ModuleDict(
+ (0_SwiftLoRA): Identity()
+ )
+ (lora_A): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=15360, out_features=64, bias=False)
+ )
+ (lora_B): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=64, out_features=3072, bias=False)
+ )
+ (lora_embedding_A): ParameterDict()
+ (lora_embedding_B): ParameterDict()
+ (lora_magnitude_vector): ModuleDict()
+ )
+ (norm): QKNorm(
+ (query_norm): RMSNorm()
+ (key_norm): RMSNorm()
+ )
+ (pre_norm): LayerNorm((3072,), eps=1e-06, elementwise_affine=False)
+ (mlp_act): GELU(approximate='tanh')
+ (modulation): Modulation(
+ (lin): lora.Linear(
+ (base_layer): Linear(in_features=3072, out_features=9216, bias=True)
+ (lora_dropout): ModuleDict(
+ (0_SwiftLoRA): Identity()
+ )
+ (lora_A): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=3072, out_features=64, bias=False)
+ )
+ (lora_B): ModuleDict(
+ (0_SwiftLoRA): Linear(in_features=64, out_features=9216, bias=False)
+ )
+ (lora_embedding_A): ParameterDict()
+ (lora_embedding_B): ParameterDict()
+ (lora_magnitude_vector): ModuleDict()
+ )
+ )
+ )
+ )
+ (final_layer): LastLayer(
+ (norm_final): LayerNorm((3072,), eps=1e-06, elementwise_affine=False)
+ (linear): Linear(in_features=3072, out_features=64, bias=True)
+ (adaLN_modulation): Sequential(
+ (0): SiLU()
+ (1): Linear(in_features=3072, out_features=6144, bias=True)
+ )
+ )
+ )
+ (first_stage_model): AutoencoderKLFlux AutoencoderKLFlux(
+ (encoder): Encoder Encoder(
+ (conv_in): Conv2d(3, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (down): ModuleList(
+ (0): Module(
+ (block): ModuleList(
+ (0-1): 2 x ResnetBlock(
+ (norm1): GroupNorm(32, 128, eps=1e-06, affine=True)
+ (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (norm2): GroupNorm(32, 128, eps=1e-06, affine=True)
+ (dropout): Dropout(p=0.0, inplace=False)
+ (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ )
+ )
+ (attn): ModuleList()
+ (downsample): Downsample(
+ (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2))
+ )
+ )
+ (1): Module(
+ (block): ModuleList(
+ (0): ResnetBlock(
+ (norm1): GroupNorm(32, 128, eps=1e-06, affine=True)
+ (conv1): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (norm2): GroupNorm(32, 256, eps=1e-06, affine=True)
+ (dropout): Dropout(p=0.0, inplace=False)
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (nin_shortcut): Conv2d(128, 256, kernel_size=(1, 1), stride=(1, 1))
+ )
+ (1): ResnetBlock(
+ (norm1): GroupNorm(32, 256, eps=1e-06, affine=True)
+ (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (norm2): GroupNorm(32, 256, eps=1e-06, affine=True)
+ (dropout): Dropout(p=0.0, inplace=False)
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ )
+ )
+ (attn): ModuleList()
+ (downsample): Downsample(
+ (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2))
+ )
+ )
+ (2): Module(
+ (block): ModuleList(
+ (0): ResnetBlock(
+ (norm1): GroupNorm(32, 256, eps=1e-06, affine=True)
+ (conv1): Conv2d(256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (norm2): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (dropout): Dropout(p=0.0, inplace=False)
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (nin_shortcut): Conv2d(256, 512, kernel_size=(1, 1), stride=(1, 1))
+ )
+ (1): ResnetBlock(
+ (norm1): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (norm2): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (dropout): Dropout(p=0.0, inplace=False)
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ )
+ )
+ (attn): ModuleList()
+ (downsample): Downsample(
+ (conv): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2))
+ )
+ )
+ (3): Module(
+ (block): ModuleList(
+ (0-1): 2 x ResnetBlock(
+ (norm1): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (norm2): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (dropout): Dropout(p=0.0, inplace=False)
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ )
+ )
+ (attn): ModuleList()
+ )
+ )
+ (mid): Module(
+ (block_1): ResnetBlock(
+ (norm1): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (norm2): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (dropout): Dropout(p=0.0, inplace=False)
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ )
+ (attn_1): MemoryEfficientAttention(
+ (norm): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (q): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1))
+ (k): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1))
+ (v): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1))
+ (proj_out): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1))
+ )
+ (block_2): ResnetBlock(
+ (norm1): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (norm2): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (dropout): Dropout(p=0.0, inplace=False)
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ )
+ )
+ (norm_out): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (conv_out): Conv2d(512, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ )
+ (decoder): Decoder Decoder(
+ (conv_in): Conv2d(16, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (mid): Module(
+ (block_1): ResnetBlock(
+ (norm1): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (norm2): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (dropout): Dropout(p=0.0, inplace=False)
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ )
+ (attn_1): MemoryEfficientAttention(
+ (norm): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (q): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1))
+ (k): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1))
+ (v): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1))
+ (proj_out): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1))
+ )
+ (block_2): ResnetBlock(
+ (norm1): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (norm2): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (dropout): Dropout(p=0.0, inplace=False)
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ )
+ )
+ (up): ModuleList(
+ (0): Module(
+ (block): ModuleList(
+ (0): ResnetBlock(
+ (norm1): GroupNorm(32, 256, eps=1e-06, affine=True)
+ (conv1): Conv2d(256, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (norm2): GroupNorm(32, 128, eps=1e-06, affine=True)
+ (dropout): Dropout(p=0.0, inplace=False)
+ (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (nin_shortcut): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1))
+ )
+ (1-2): 2 x ResnetBlock(
+ (norm1): GroupNorm(32, 128, eps=1e-06, affine=True)
+ (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (norm2): GroupNorm(32, 128, eps=1e-06, affine=True)
+ (dropout): Dropout(p=0.0, inplace=False)
+ (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ )
+ )
+ (attn): ModuleList()
+ )
+ (1): Module(
+ (block): ModuleList(
+ (0): ResnetBlock(
+ (norm1): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (conv1): Conv2d(512, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (norm2): GroupNorm(32, 256, eps=1e-06, affine=True)
+ (dropout): Dropout(p=0.0, inplace=False)
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (nin_shortcut): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1))
+ )
+ (1-2): 2 x ResnetBlock(
+ (norm1): GroupNorm(32, 256, eps=1e-06, affine=True)
+ (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (norm2): GroupNorm(32, 256, eps=1e-06, affine=True)
+ (dropout): Dropout(p=0.0, inplace=False)
+ (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ )
+ )
+ (attn): ModuleList()
+ (upsample): Upsample(
+ (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ )
+ )
+ (2-3): 2 x Module(
+ (block): ModuleList(
+ (0-2): 3 x ResnetBlock(
+ (norm1): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (norm2): GroupNorm(32, 512, eps=1e-06, affine=True)
+ (dropout): Dropout(p=0.0, inplace=False)
+ (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ )
+ )
+ (attn): ModuleList()
+ (upsample): Upsample(
+ (conv): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ )
+ )
+ )
+ (norm_out): GroupNorm(32, 128, eps=1e-06, affine=True)
+ (conv_out): Conv2d(128, 3, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ )
+ (conv1): Identity()
+ (conv2): Identity()
+ )
+ (cond_stage_model): T5ACEPlusClipFluxEmbedder T5ACEPlusClipFluxEmbedder(
+ (t5_model): ACEHFEmbedder ACEHFEmbedder(
+ (hf_module): T5EncoderModel(
+ (shared): Embedding(32128, 4096)
+ (encoder): T5Stack(
+ (embed_tokens): Embedding(32128, 4096)
+ (block): ModuleList(
+ (0): T5Block(
+ (layer): ModuleList(
+ (0): T5LayerSelfAttention(
+ (SelfAttention): T5Attention(
+ (q): Linear(in_features=4096, out_features=4096, bias=False)
+ (k): Linear(in_features=4096, out_features=4096, bias=False)
+ (v): Linear(in_features=4096, out_features=4096, bias=False)
+ (o): Linear(in_features=4096, out_features=4096, bias=False)
+ (relative_attention_bias): Embedding(32, 64)
+ )
+ (layer_norm): T5LayerNorm()
+ (dropout): Dropout(p=0.1, inplace=False)
+ )
+ (1): T5LayerFF(
+ (DenseReluDense): T5DenseGatedActDense(
+ (wi_0): Linear(in_features=4096, out_features=10240, bias=False)
+ (wi_1): Linear(in_features=4096, out_features=10240, bias=False)
+ (wo): Linear(in_features=10240, out_features=4096, bias=False)
+ (dropout): Dropout(p=0.1, inplace=False)
+ (act): NewGELUActivation()
+ )
+ (layer_norm): T5LayerNorm()
+ (dropout): Dropout(p=0.1, inplace=False)
+ )
+ )
+ )
+ (1-23): 23 x T5Block(
+ (layer): ModuleList(
+ (0): T5LayerSelfAttention(
+ (SelfAttention): T5Attention(
+ (q): Linear(in_features=4096, out_features=4096, bias=False)
+ (k): Linear(in_features=4096, out_features=4096, bias=False)
+ (v): Linear(in_features=4096, out_features=4096, bias=False)
+ (o): Linear(in_features=4096, out_features=4096, bias=False)
+ )
+ (layer_norm): T5LayerNorm()
+ (dropout): Dropout(p=0.1, inplace=False)
+ )
+ (1): T5LayerFF(
+ (DenseReluDense): T5DenseGatedActDense(
+ (wi_0): Linear(in_features=4096, out_features=10240, bias=False)
+ (wi_1): Linear(in_features=4096, out_features=10240, bias=False)
+ (wo): Linear(in_features=10240, out_features=4096, bias=False)
+ (dropout): Dropout(p=0.1, inplace=False)
+ (act): NewGELUActivation()
+ )
+ (layer_norm): T5LayerNorm()
+ (dropout): Dropout(p=0.1, inplace=False)
+ )
+ )
+ )
+ )
+ (final_layer_norm): T5LayerNorm()
+ (dropout): Dropout(p=0.1, inplace=False)
+ )
+ )
+ )
+ (clip_model): ACEHFEmbedder ACEHFEmbedder(
+ (hf_module): CLIPTextModel(
+ (text_model): CLIPTextTransformer(
+ (embeddings): CLIPTextEmbeddings(
+ (token_embedding): Embedding(49408, 768)
+ (position_embedding): Embedding(77, 768)
+ )
+ (encoder): CLIPEncoder(
+ (layers): ModuleList(
+ (0-11): 12 x CLIPEncoderLayer(
+ (self_attn): CLIPSdpaAttention(
+ (k_proj): Linear(in_features=768, out_features=768, bias=True)
+ (v_proj): Linear(in_features=768, out_features=768, bias=True)
+ (q_proj): Linear(in_features=768, out_features=768, bias=True)
+ (out_proj): Linear(in_features=768, out_features=768, bias=True)
+ )
+ (layer_norm1): LayerNorm((768,), eps=1e-05, elementwise_affine=True)
+ (mlp): CLIPMLP(
+ (activation_fn): QuickGELUActivation()
+ (fc1): Linear(in_features=768, out_features=3072, bias=True)
+ (fc2): Linear(in_features=3072, out_features=768, bias=True)
+ )
+ (layer_norm2): LayerNorm((768,), eps=1e-05, elementwise_affine=True)
+ )
+ )
+ )
+ (final_layer_norm): LayerNorm((768,), eps=1e-05, elementwise_affine=True)
+ )
+ )
+ )
+ )
+ )
+)
+scepter [INFO] 2025-06-24 07:37:18,962 [File: log.py Function: before_solve at line 260] Tensorboard: save to ./examples/exp_example/20250624073511/tensorboard
+scepter [INFO] 2025-06-24 07:43:30,805 [File: log.py Function: _print_iter_log at line 71] Stage [train] iter: [20/100000], data_time: 12.7230(12.7230), time: 18.5911(18.5911), loss: 0.1549(0.1549), throughput: 23664/day, all_throughput: 20, pg0_lr: 0.001000, scale: 1.000000, [8mins 17secs 0.02%(28days 18hours 39mins 9secs)]
+scepter [INFO] 2025-06-24 07:49:40,079 [File: log.py Function: _print_iter_log at line 71] Stage [train] iter: [40/100000], data_time: 12.8183(12.7707), time: 18.4638(18.5274), loss: 0.1357(0.1453), throughput: 23698/day, all_throughput: 40, pg0_lr: 0.001000, scale: 1.000000, [14mins 26secs 0.04%(25days 1hours 35mins 41secs)]
+scepter [INFO] 2025-06-24 07:52:42,409 [File: checkpoint.py Function: after_iter at line 109] Saving checkpoint after 50 steps
+scepter [INFO] 2025-06-24 07:55:48,532 [File: log.py Function: _print_iter_log at line 71] Stage [train] iter: [60/100000], data_time: 12.7975(12.7796), time: 18.4226(18.4925), loss: 0.1088(0.1332), throughput: 23757/day, all_throughput: 60, pg0_lr: 0.001000, scale: 1.000000, [20mins 35secs 0.06%(23days 19hours 27mins 38secs)]
+scepter [INFO] 2025-06-24 08:01:55,863 [File: log.py Function: _print_iter_log at line 71] Stage [train] iter: [80/100000], data_time: 12.5829(12.7304), time: 18.3665(18.4610), loss: 0.1000(0.1249), throughput: 23724/day, all_throughput: 80, pg0_lr: 0.001000, scale: 1.000000, [26mins 42secs 0.08%(23days 3hours 57mins 11secs)]
+scepter [INFO] 2025-06-24 08:08:02,295 [File: log.py Function: _print_iter_log at line 71] Stage [train] iter: [100/100000], data_time: 12.4769(12.6797), time: 18.3217(18.4331), loss: 0.0889(0.1177), throughput: 23748/day, all_throughput: 100, pg0_lr: 0.001000, scale: 1.000000, [32mins 48secs 0.10%(22days 18hours 21mins 29secs)]
+scepter [INFO] 2025-06-24 08:08:02,296 [File: checkpoint.py Function: after_iter at line 109] Saving checkpoint after 100 steps
+scepter [INFO] 2025-06-24 08:14:11,503 [File: log.py Function: _print_iter_log at line 71] Stage [train] iter: [120/100000], data_time: 12.8457(12.7074), time: 18.4603(18.4377), loss: 0.0917(0.1134), throughput: 23766/day, all_throughput: 120, pg0_lr: 0.001000, scale: 1.000000, [38mins 58secs 0.12%(22days 12hours 34mins 10secs)]
+scepter [INFO] 2025-06-24 08:20:09,138 [File: log.py Function: _print_iter_log at line 71] Stage [train] iter: [140/100000], data_time: 12.2640(12.6440), time: 17.8818(18.3583), loss: 0.1563(0.1195), throughput: 23784/day, all_throughput: 140, pg0_lr: 0.001000, scale: 1.000000, [44mins 55secs 0.14%(22days 6hours 6mins 45secs)]
+scepter [INFO] 2025-06-24 08:23:12,656 [File: checkpoint.py Function: after_iter at line 109] Saving checkpoint after 150 steps
+scepter [INFO] 2025-06-24 08:26:15,711 [File: log.py Function: _print_iter_log at line 71] Stage [train] iter: [160/100000], data_time: 12.6226(12.6414), time: 18.3286(18.3545), loss: 0.1930(0.1287), throughput: 23818/day, all_throughput: 160, pg0_lr: 0.001000, scale: 1.000000, [51mins 2secs 0.16%(22days 2hours 47mins 39secs)]
diff --git a/ACE_plus/examples/exp_example/20250624073511/train.yaml b/ACE_plus/examples/exp_example/20250624073511/train.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9c8f141686d91b64513fe45a530c356a9f311e72
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train.yaml
@@ -0,0 +1,288 @@
+ENV:
+ BACKEND: nccl
+ SEED: 1999
+SOLVER:
+ # NAME DESCRIPTION: TYPE: default: 'LatentUfitSolver'
+ NAME: FormalACEPlusSolver
+ # MAX_STEPS DESCRIPTION: The total steps for training. TYPE: int default: 100000
+ MAX_STEPS: 100000
+ # USE_AMP DESCRIPTION: Use amp to surpport mix precision or not, default is False. TYPE: bool default: False
+ USE_AMP: True
+ # DTYPE DESCRIPTION: The precision for training. TYPE: str default: 'float32'
+ DTYPE: bfloat16
+ ENABLE_GRADSCALER: False
+ # USE_FAIRSCALE DESCRIPTION: Use fairscale as the backend of ddp, default False. TYPE: bool default: False
+ USE_FAIRSCALE: False
+ USE_ORIG_PARAMS: True
+ USE_FSDP: True # lora use ddp(USE_FSDP=False), else use fsdp(USE_FSDP=True)
+ # LOAD_MODEL_ONLY DESCRIPTION: Only load the model rather than the optimizer and schedule, default is False. TYPE: bool default: False
+ LOAD_MODEL_ONLY: False
+ # RESUME_FROM DESCRIPTION: Resume from some state of training! TYPE: str default: ''
+ RESUME_FROM:
+ # WORK_DIR DESCRIPTION: Save dir of the training log or model. TYPE: str default: ''
+ WORK_DIR: ./examples/exp_example/
+ # LOG_FILE DESCRIPTION: Save log path. TYPE: str default: ''
+ LOG_FILE: std_log.txt
+ # LOG_TRAIN_NUM DESCRIPTION: The number samples used to log in training phase. TYPE: int default: -1
+ LOG_TRAIN_NUM: 16
+ # FSDP_REDUCE_DTYPE DESCRIPTION: The dtype of reduce in FSDP. TYPE: str default: 'float16'
+ FSDP_REDUCE_DTYPE: float32
+ # FSDP_BUFFER_DTYPE DESCRIPTION: The dtype of buffer in FSDP. TYPE: str default: 'float16'
+ FSDP_BUFFER_DTYPE: float32
+ # FSDP_SHARD_MODULES DESCRIPTION: The modules to be sharded in FSDP. TYPE: list default: ['model']
+ FSDP_SHARD_MODULES:
+ - MODULE: 'model.model'
+ FSDP_GROUP: [ 'single_blocks', 'double_blocks']
+ - MODULE: 'cond_stage_model.t5_model.hf_module.encoder'
+ FSDP_GROUP: [ 'block' ] #
+ SAVE_MODULES: [ 'model'] #
+ TRAIN_MODULES: ['model']
+
+ #
+ FILE_SYSTEM:
+ - NAME: HuggingfaceFs
+ TEMP_DIR: ./cache
+ - NAME: ModelscopeFs
+ TEMP_DIR: ./cache
+ #
+ MODEL:
+ NAME: LatentDiffusionACEPlus
+ PARAMETERIZATION: rf
+ TIMESTEPS: 1000
+ GUIDE_SCALE: 1.0
+ PRETRAINED_MODEL:
+ IGNORE_KEYS: [ ]
+ USE_EMA: False
+ EVAL_EMA: False
+ SIZE_FACTOR: 8
+ DIFFUSION:
+ NAME: DiffusionFluxRF
+ PREDICTION_TYPE: raw
+ NOISE_NORM: True
+ # NOISE_SCHEDULER DESCRIPTION: TYPE: default: ''
+ NOISE_SCHEDULER:
+ NAME: FlowMatchFluxShiftScheduler
+ SHIFT: False
+ PRE_T_SAMPLE: True
+ PRE_T_SAMPLE_FOLD: 1
+ SIGMOID_SCALE: 1
+ BASE_SHIFT: 0.5
+ MAX_SHIFT: 1.15
+ SAMPLER_SCHEDULER:
+ NAME: FlowMatchFluxShiftScheduler
+ SHIFT: True
+ PRE_T_SAMPLE: False
+ SIGMOID_SCALE: 1
+ BASE_SHIFT: 0.5
+ MAX_SHIFT: 1.15
+
+ #
+ DIFFUSION_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'Flux'
+ NAME: FluxMRModiACEPlus
+ PRETRAINED_MODEL: /home/Ubuntu/Downloads/Unmodel/Reference_models/flux1-fill-dev.safetensors
+ # IN_CHANNELS DESCRIPTION: model's input channels. TYPE: int default: 64
+ IN_CHANNELS: 448
+ # OUT_CHANNELS DESCRIPTION: model's input channels. TYPE: int default: 64
+ OUT_CHANNELS: 64
+ # HIDDEN_SIZE DESCRIPTION: model's hidden size. TYPE: int default: 1024
+ HIDDEN_SIZE: 3072
+ REDUX_DIM: 1152
+ # NUM_HEADS DESCRIPTION: number of heads in the transformer. TYPE: int default: 16
+ NUM_HEADS: 24
+ # AXES_DIM DESCRIPTION: dimensions of the axes of the positional encoding. TYPE: list default: [16, 56, 56]
+ AXES_DIM: [ 16, 56, 56 ]
+ # THETA DESCRIPTION: theta for positional encoding. TYPE: int default: 10000
+ THETA: 10000
+ # VEC_IN_DIM DESCRIPTION: dimension of the vector input. TYPE: int default: 768
+ VEC_IN_DIM: 768
+ # GUIDANCE_EMBED DESCRIPTION: whether to use guidance embedding. TYPE: bool default: False
+ GUIDANCE_EMBED: True
+ # CONTEXT_IN_DIM DESCRIPTION: dimension of the context input. TYPE: int default: 4096
+ CONTEXT_IN_DIM: 4096
+ # MLP_RATIO DESCRIPTION: ratio of mlp hidden size to hidden size. TYPE: float default: 4.0
+ MLP_RATIO: 4.0
+ # QKV_BIAS DESCRIPTION: whether to use bias in qkv projection. TYPE: bool default: True
+ QKV_BIAS: True
+ # DEPTH DESCRIPTION: number of transformer blocks. TYPE: int default: 19
+ DEPTH: 19
+ # DEPTH_SINGLE_BLOCKS DESCRIPTION: number of transformer blocks in the single stream block. TYPE: int default: 38
+ DEPTH_SINGLE_BLOCKS: 38
+ # ATTN_BACKEND:setting 'flash_attn' to use flash_attn2, if the version of pytorch > 2.4.0, using 'pytorch' to use pytorch's implementation
+ ATTN_BACKEND: flash_attn
+ # USE_GRAD_CHECKPOINT: setting gc to true can decrease the memory usage.
+ USE_GRAD_CHECKPOINT: True
+
+ #
+ FIRST_STAGE_MODEL:
+ NAME: AutoencoderKLFlux
+ EMBED_DIM: 16
+ PRETRAINED_MODEL: /home/Ubuntu/Downloads/Unmodel/Reference_models/ae.safetensors
+ IGNORE_KEYS: [ ]
+ BATCH_SIZE: 8
+ USE_CONV: False
+ SCALE_FACTOR: 0.3611
+ SHIFT_FACTOR: 0.1159
+ #
+ ENCODER:
+ NAME: Encoder
+ CH: 128
+ OUT_CH: 3
+ NUM_RES_BLOCKS: 2
+ IN_CHANNELS: 3
+ ATTN_RESOLUTIONS: [ ]
+ CH_MULT: [ 1, 2, 4, 4 ]
+ Z_CHANNELS: 16
+ DOUBLE_Z: True
+ DROPOUT: 0.0
+ RESAMP_WITH_CONV: True
+ #
+ DECODER:
+ NAME: Decoder
+ CH: 128
+ OUT_CH: 3
+ NUM_RES_BLOCKS: 2
+ IN_CHANNELS: 3
+ ATTN_RESOLUTIONS: [ ]
+ CH_MULT: [ 1, 2, 4, 4 ]
+ Z_CHANNELS: 16
+ DROPOUT: 0.0
+ RESAMP_WITH_CONV: True
+ GIVE_PRE_END: False
+ TANH_OUT: False
+ #
+ COND_STAGE_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'T5PlusClipFluxEmbedder'
+ NAME: T5ACEPlusClipFluxEmbedder
+ # T5_MODEL DESCRIPTION: TYPE: default: ''
+ T5_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'HFEmbedder'
+ NAME: ACEHFEmbedder
+ # HF_MODEL_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_MODEL_CLS: T5EncoderModel
+ # MODEL_PATH DESCRIPTION: model folder path TYPE: NoneType default: None
+ MODEL_PATH: /home/Ubuntu/Downloads/Unmodel/Reference_models/t5_xxl/
+ # HF_TOKENIZER_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_TOKENIZER_CLS: T5Tokenizer
+ # TOKENIZER_PATH DESCRIPTION: tokenizer folder path TYPE: NoneType default: None
+ TOKENIZER_PATH: /home/Ubuntu/Downloads/Unmodel/Reference_models/t5_xxl/
+ ADDED_IDENTIFIER: [ '
','{image}', '{caption}', '{mask}', '{ref_image}', '{image1}', '{image2}', '{image3}', '{image4}', '{image5}', '{image6}', '{image7}', '{image8}', '{image9}' ]
+ # MAX_LENGTH DESCRIPTION: max length of input TYPE: int default: 77
+ MAX_LENGTH: 512
+ # OUTPUT_KEY DESCRIPTION: output key TYPE: str default: 'last_hidden_state'
+ OUTPUT_KEY: last_hidden_state
+ # D_TYPE DESCRIPTION: dtype TYPE: str default: 'bfloat16'
+ D_TYPE: bfloat16
+ # BATCH_INFER DESCRIPTION: batch infer TYPE: bool default: False
+ BATCH_INFER: False
+ CLEAN: whitespace
+ # CLIP_MODEL DESCRIPTION: TYPE: default: ''
+ CLIP_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'HFEmbedder'
+ NAME: ACEHFEmbedder
+ # HF_MODEL_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_MODEL_CLS: CLIPTextModel
+ # MODEL_PATH DESCRIPTION: model folder path TYPE: NoneType default: None
+ MODEL_PATH: /home/Ubuntu/Downloads/Unmodel/Reference_models/clip_l/
+ # HF_TOKENIZER_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_TOKENIZER_CLS: CLIPTokenizer
+ # TOKENIZER_PATH DESCRIPTION: tokenizer folder path TYPE: NoneType default: None
+ TOKENIZER_PATH: /home/Ubuntu/Downloads/Unmodel/Reference_models/clip_l/
+ # MAX_LENGTH DESCRIPTION: max length of input TYPE: int default: 77
+ MAX_LENGTH: 77
+ # OUTPUT_KEY DESCRIPTION: output key TYPE: str default: 'last_hidden_state'
+ OUTPUT_KEY: pooler_output
+ # D_TYPE DESCRIPTION: dtype TYPE: str default: 'bfloat16'
+ D_TYPE: bfloat16
+ # BATCH_INFER DESCRIPTION: batch infer TYPE: bool default: False
+ BATCH_INFER: True
+ CLEAN: whitespace
+ TUNER:
+ # THE LORA PARAMETERS
+ - NAME: SwiftLoRA
+ R: 64
+ LORA_ALPHA: 64
+ LORA_DROPOUT: 0.0
+ BIAS: "none"
+ TARGET_MODULES: "(model.double_blocks.*(.qkv|.img_mlp.0|.img_mlp.2|.txt_mlp.0|.txt_mlp.2|.proj|.img_mod.lin|.txt_mod.lin))|(model.single_blocks.*(.linear1|.linear2|.modulation.lin))$"
+ #
+ SAMPLE_ARGS:
+ SAMPLE_STEPS: 28
+ SAMPLER: flow_euler
+ SEED: 42
+ IMAGE_SIZE: [ 2048, 2048 ]
+ #IMAGE_SIZE: [ 1024, 1024 ]
+ GUIDE_SCALE: 50
+
+ LR_SCHEDULER:
+ NAME: StepAnnealingLR
+ WARMUP_STEPS: 0
+ TOTAL_STEPS: 100000
+ DECAY_MODE: 'cosine'
+ #
+ OPTIMIZER:
+ NAME: AdamW
+ LEARNING_RATE: 1e-3
+ BETAS: [ 0.9, 0.999 ]
+ EPS: 1e-6
+ WEIGHT_DECAY: 1e-2
+ AMSGRAD: False
+ #
+ TRAIN_DATA:
+ NAME: ACEPlusDataset
+ MODE: train
+ DATA_LIST: data/train.csv
+ DELIMITER: "#;#"
+ MODIFY_MODE: True
+ # input_image, input_mask, input_reference_image, target_image, instruction, task_type
+ FIELDS: ["edit_image", "edit_mask", "ref_image", "target_image", "prompt", "data_type"]
+ PATH_PREFIX: ""
+ EDIT_TYPE_LIST: []
+ MAX_SEQ_LEN: 4096
+ # MAX_SEQ_LEN: 2048 -Vijay
+ D: 16
+ PIN_MEMORY: True
+ BATCH_SIZE: 1
+ NUM_WORKERS: 4
+ SAMPLER:
+ NAME: LoopSampler
+
+ EVAL_DATA:
+ NAME: ACEPlusDataset
+ MODE: eval
+ DATA_LIST: data/train.csv
+ DELIMITER: "#;#"
+ MODIFY_MODE: True
+ # input_image, input_mask, input_reference_image, target_image, instruction, task_type
+ FIELDS: [ "edit_image", "edit_mask", "ref_image", "target_image", "prompt", "data_type" ]
+ PATH_PREFIX: ""
+ EDIT_TYPE_LIST: [ ]
+ MAX_SEQ_LEN: 4096
+ # MAX_SEQ_LEN: 2048 -Vijay
+ D: 16
+ PIN_MEMORY: True
+ BATCH_SIZE: 1
+ NUM_WORKERS: 4
+
+ TRAIN_HOOKS:
+ - NAME: ACEBackwardHook
+ GRADIENT_CLIP: 1.0
+ PRIORITY: 10
+ - NAME: LogHook
+ LOG_INTERVAL: 20
+ - NAME: ACECheckpointHook
+ INTERVAL: 50
+ #INTERVAL: 250 --Vijay
+ PRIORITY: 200
+ DISABLE_SNAPSHOT: True
+ - NAME: ProbeDataHook
+ PROB_INTERVAL: 10
+ #PROB_INTERVAL: 50 -Vijay
+ PRIORITY: 0
+ - NAME: TensorboardLogHook
+ LOG_INTERVAL: 50
+ EVAL_HOOKS:
+ - NAME: ProbeDataHook
+ PROB_INTERVAL: 10
+ #PROB_INTERVAL: 50 -Vijay
+ PRIORITY: 0
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_0_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_0_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..be237593eeb0efb929dd205b86c27501a03b604e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_0_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_1_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_1_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..42e7baaf89084c13110592eb4b22d55945c0d733
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_1_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_2_probe_0_[848_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_2_probe_0_[848_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ef59f03486f7ec5c0d88445776a979bfb46ec86a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_2_probe_0_[848_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_3_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_3_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..17b2cfb9387d325a0da19ee11d364c22c5f0e989
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_3_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_4_probe_0_[848_1232_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_4_probe_0_[848_1232_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ef59f03486f7ec5c0d88445776a979bfb46ec86a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_4_probe_0_[848_1232_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_5_probe_0_[848_1232_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_5_probe_0_[848_1232_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8ae9e5086b16257b92c16987dbb5ac7daef3665f
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_5_probe_0_[848_1232_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..7d65dd51f693f12fc2e51f14c9a9c09738e91155
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..ed94c032ec8a744521241fc990a3a310d508ddfc
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-0/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_0_probe_0_[848_1232_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_1_probe_0_[848_1232_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_2_probe_0_[848_1232_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_3_probe_0_[848_1232_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_4_probe_0_[848_1232_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0/0_0_5_probe_0_[848_1232_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-0/BaseSolver_train_image_step_0_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_0_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_0_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f96df626044f92a6b238ef569bee8cc5595fd268
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_0_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_1_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_1_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7f195ee263ecc4b66757f219e19f0a44458786df
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_1_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_2_probe_0_[784_1328_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_2_probe_0_[784_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9ca835de3928e4b56f21bcfbeab3ea563d3c12c5
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_2_probe_0_[784_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_3_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_3_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a3667a0d7a7bca396d4e71a17a2b5b678883a345
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_3_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_4_probe_0_[784_1328_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_4_probe_0_[784_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9ca835de3928e4b56f21bcfbeab3ea563d3c12c5
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_4_probe_0_[784_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_5_probe_0_[784_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_5_probe_0_[784_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d50ab5c91b5af4e9c640cd46277aa62a91752af2
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_5_probe_0_[784_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..2800f24df26f6ce2f0930234642815a6649fd5af
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..681063ec16d5cb8359895d9be16a7a79b297aa71
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-10/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_0_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_1_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_2_probe_0_[784_1328_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_3_probe_0_[784_1328_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_4_probe_0_[784_1328_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10/0_0_5_probe_0_[784_1328_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-10/BaseSolver_train_image_step_10_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_0_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_0_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..63d671f3c60a2e3c3aefc5a832a6205d16fb8495
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_0_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_1_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_1_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..209e9e2690592ad12775d756e02bfa6ec5c535e6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_1_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_2_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_2_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..028e5760ff67a88e829db38d14f20a289e306ba6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_2_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_3_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_3_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1d070487fd47237001bb06ee54a54be5d0d2f422
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_3_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_4_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_4_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..028e5760ff67a88e829db38d14f20a289e306ba6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_4_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_5_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_5_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b7b9b75d591f3f66ed688ad24371db360f7dbf2c
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_5_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..5966341bdd43a88d5744f100511fc5f6d5a467c0
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..d021f42d3518041b9465dcbd1223857c9ac80843
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-100/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_0_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_1_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_2_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_3_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_4_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100/0_0_5_probe_0_[736_1392_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-100/BaseSolver_train_image_step_100_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_0_probe_0_[768_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_0_probe_0_[768_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e75f51d05ab43120e76dcfa4af156ffcf5f03e21
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_0_probe_0_[768_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_1_probe_0_[768_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_1_probe_0_[768_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a5f327c6867f16bebf3c8952cee2844ed206a750
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_1_probe_0_[768_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_2_probe_0_[768_1328_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_2_probe_0_[768_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..82c413d97c555a1a6b5c144644b7f2d192b31e66
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_2_probe_0_[768_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_3_probe_0_[768_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_3_probe_0_[768_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..14396c988f09fce4deea8a1e6a9d1d5638233e44
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_3_probe_0_[768_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_4_probe_0_[768_1328_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_4_probe_0_[768_1328_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..82c413d97c555a1a6b5c144644b7f2d192b31e66
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_4_probe_0_[768_1328_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_5_probe_0_[768_1328_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_5_probe_0_[768_1328_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..160d341908dcfea484bdc777d11e1c672a723999
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_5_probe_0_[768_1328_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..d237c386421dceec0fc208d1cea9cbee41433100
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..c5093fae7d84e6fa6e024fc8cb07133898cd9552
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-110/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_0_probe_0_[768_1328_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_1_probe_0_[768_1328_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_2_probe_0_[768_1328_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_3_probe_0_[768_1328_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_4_probe_0_[768_1328_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110/0_0_5_probe_0_[768_1328_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-110/BaseSolver_train_image_step_110_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_0_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_0_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6c5de09531ee07c585fdbfcaaa88da2aafdef3a6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_0_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_1_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_1_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..11148cab6332d70aa977e8656f3d97e291c88afa
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_1_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_2_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_2_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..03fe115ef8fbb28c217e876fde8f084e4eb2d3ea
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_2_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_3_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_3_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..36c279af6044b22b4039145ac1ea7651682c9960
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_3_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_4_probe_0_[736_1392_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_4_probe_0_[736_1392_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..03fe115ef8fbb28c217e876fde8f084e4eb2d3ea
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_4_probe_0_[736_1392_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_5_probe_0_[736_1392_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_5_probe_0_[736_1392_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..988bf8241a49177720be0200e832e267400b8230
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_5_probe_0_[736_1392_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..19d261f3480f2de299a3ea24f87286f2d450c575
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..7d3cdfe00fd8b1998619a6e9237e396a26abe080
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-120/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_0_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_1_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_2_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_3_probe_0_[736_1392_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_4_probe_0_[736_1392_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120/0_0_5_probe_0_[736_1392_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-120/BaseSolver_train_image_step_120_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_0_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_0_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..10c10b3ea1b08ab8bac4248426865a16118cae92
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_0_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_1_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_1_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..471e2cdcf095d5de9b9989453264fef64790a7f5
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_1_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_2_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_2_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a250a12068abbbc8a6204eb12d9dd1f339cf3af6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_2_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_3_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_3_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7f00e581ac01a6642a032efcdeeb01ea8f2ba80f
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_3_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_4_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_4_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a250a12068abbbc8a6204eb12d9dd1f339cf3af6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_4_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..5b3df52966f9b6b089c6343f2c42d796dcbb7e04
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..cfb123cfd7edebe011730742c0919d2ec5c739d7
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-130/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_0_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_1_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_2_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_3_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_4_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130/0_0_5_probe_0_[800_1280_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-130/BaseSolver_train_image_step_130_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_0_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_0_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cc8d38a65a53b32b4e9045f1c08cca5d95af2ffa
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_0_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_1_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_1_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..982443da87849c2ab5bb505fb25aa6e42cbc1f2d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_1_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_2_probe_0_[800_1296_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_2_probe_0_[800_1296_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e6ff99f36169970b7f8cf4cf24c668f3dd0a6be1
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_2_probe_0_[800_1296_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_3_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_3_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8e23e24cebb583aaff72e65e77f8d59a3eb5b2e8
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_3_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_4_probe_0_[800_1296_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_4_probe_0_[800_1296_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e6ff99f36169970b7f8cf4cf24c668f3dd0a6be1
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_4_probe_0_[800_1296_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_5_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_5_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ad134651f732f902987733771042a6a995eb1de3
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_5_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..88e61dc9d5570d9b43c61a33cef3c0d93050a45f
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..11518b8c90c39c476447f40daec20e7313e67d76
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-140/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_0_probe_0_[800_1296_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_1_probe_0_[800_1296_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_2_probe_0_[800_1296_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_3_probe_0_[800_1296_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_4_probe_0_[800_1296_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140/0_0_5_probe_0_[800_1296_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-140/BaseSolver_train_image_step_140_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_0_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_0_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ca084d25a207b0ee35a45fda88d346dafc5ea0b0
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_0_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_1_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_1_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..92e2ce40b9577b557af69515dfd748816b4d2207
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_1_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_2_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_2_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b2cfd7f97fff2411886fa15111ad09381a025673
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_2_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_3_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_3_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..aca84858f7cecbc85e2204203548fc2a4bfc7ec4
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_3_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_4_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_4_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b2cfd7f97fff2411886fa15111ad09381a025673
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_4_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_5_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_5_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3f617343ad3c4a0e7e3a0acc4166420950459880
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_5_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..c1d52f92a832515f6257e95343a14291d20558ee
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..150ee3a284639e6a6ecf2a9b91d2a314414a463a
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-150/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_0_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_1_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_2_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_3_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_4_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150/0_0_5_probe_0_[720_1424_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-150/BaseSolver_train_image_step_150_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_0_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_0_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..50118da0fb7bf854f6ef5205bfe854783b548874
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_0_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_1_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_1_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..40e73b5813ab35f8841d9fb5a5af033640311107
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_1_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_2_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_2_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fade4a9f778905ffd670828590f07e3539b8d089
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_2_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_3_probe_0_[800_1280_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_3_probe_0_[800_1280_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bdb73ddadf7288075308ace380aa13032cdaeb81
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_3_probe_0_[800_1280_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_4_probe_0_[800_1280_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_4_probe_0_[800_1280_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fade4a9f778905ffd670828590f07e3539b8d089
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_4_probe_0_[800_1280_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..18c7e873c5a5b83fdf42b135c19fd9eeedf7e68c
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..c914da102d5da58ef4f2e1170d2b2ada3d4af711
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-20/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_0_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_1_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_2_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_3_probe_0_[800_1280_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_4_probe_0_[800_1280_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20/0_0_5_probe_0_[800_1280_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-20/BaseSolver_train_image_step_20_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_0_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_0_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a15a817944bc40828ae4a453f578535ad4972a7d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_0_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_1_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_1_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f20b0c189ebe16be4dc8ea171d116d4cd460beb0
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_1_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_2_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_2_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ee559faf7171291e8b328c0c3d9bf4c86b389d1a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_2_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_3_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_3_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..128dbabb99013d31e943abaa3d20b4410c72be93
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_3_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_4_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_4_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ee559faf7171291e8b328c0c3d9bf4c86b389d1a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_4_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..33fb2b7ef2f225ebdc6db8b439bbe896dd733b7e
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..b754c641ece65bfbc1dc2965ed706155fe62a958
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-30/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_0_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_1_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_2_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_3_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_4_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30/0_0_5_probe_0_[720_1424_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-30/BaseSolver_train_image_step_30_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_0_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_0_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c99dff18847e5781784b84b2f9f421da3578ebe7
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_0_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_1_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_1_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3c429a8af5469723a047a670dd4a1ffb45beff26
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_1_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_2_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_2_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6351a57d7e07eed809f80381b62218cade6bd366
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_2_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_3_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_3_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4cef6381f46a04962c35491bd335ab641e6fff4d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_3_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_4_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_4_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6351a57d7e07eed809f80381b62218cade6bd366
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_4_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_5_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_5_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b94e7ec491467a74783dce6458d984a28a68f195
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_5_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..d6cf8264fc68b7b6f154d63f9ca74dbe94c851f0
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..49553051e7c3f968aa4dd649c31d3d4ffe551147
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-40/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_0_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_1_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_2_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_3_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_4_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40/0_0_5_probe_0_[720_1424_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-40/BaseSolver_train_image_step_40_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_0_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_0_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bdd69014284c9483c88446c6917c11ffc7cf4fd8
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_0_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_1_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_1_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9edf5ec61deff9a5a3ad858f34bd37ce7418867e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_1_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_2_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_2_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a48b61fcaa00bd4b12666af68ffe9ed225f18188
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_2_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_3_probe_0_[720_1424_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_3_probe_0_[720_1424_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..19d746d0ac1e23e753e5417ef74c668feddbda2e
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_3_probe_0_[720_1424_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_4_probe_0_[720_1424_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_4_probe_0_[720_1424_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a48b61fcaa00bd4b12666af68ffe9ed225f18188
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_4_probe_0_[720_1424_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..ec14473682020fdce97eb6f8a937d091ff2a6d9f
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..ff40334d431478b573dae42c10bcbd103524e56b
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-50/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_0_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_1_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_2_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_3_probe_0_[720_1424_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_4_probe_0_[720_1424_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50/0_0_5_probe_0_[720_1424_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-50/BaseSolver_train_image_step_50_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_0_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_0_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..73d9d09aae18cca6b6307736f9a1ec6f0d6d4e3a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_0_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_1_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_1_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2a4a202da72e2f0a0878becea0516554793c71bb
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_1_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_2_probe_0_[768_1344_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_2_probe_0_[768_1344_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..25bd43e454fc18a5027e49720363a3867b6d8922
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_2_probe_0_[768_1344_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_3_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_3_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cd5c4eff6e3893338b4fcf2925c1466ec98921cd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_3_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_4_probe_0_[768_1344_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_4_probe_0_[768_1344_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..25bd43e454fc18a5027e49720363a3867b6d8922
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_4_probe_0_[768_1344_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_5_probe_0_[768_1344_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_5_probe_0_[768_1344_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5011938699b18a65f9a5074d6e57400700c3839d
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_5_probe_0_[768_1344_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..34c79565c1da0267995d91a63f656e217e6a0fa6
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..367f2ed7ff59c3f316b32ad39003c8775a4bd502
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-60/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_0_probe_0_[768_1344_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_1_probe_0_[768_1344_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_2_probe_0_[768_1344_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_3_probe_0_[768_1344_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_4_probe_0_[768_1344_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60/0_0_5_probe_0_[768_1344_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-60/BaseSolver_train_image_step_60_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_0_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_0_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8a75ab8ced05c16c7d827560244fd34bd2b2b095
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_0_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_1_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_1_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b52bf96d4b8cc9da25191a150212285d2d81cae5
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_1_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_2_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_2_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e3d7d90cb336c63b165d2c888ac6ce7d037aa29b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_2_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_3_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_3_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..605961998561088f9a330189c58ec466f7f16ac6
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_3_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_4_probe_0_[864_1200_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_4_probe_0_[864_1200_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e3d7d90cb336c63b165d2c888ac6ce7d037aa29b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_4_probe_0_[864_1200_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_5_probe_0_[864_1200_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_5_probe_0_[864_1200_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1f4b7f408bee4e2e755191bc53353200c5808c6b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_5_probe_0_[864_1200_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..f7c1bb8c3dbdc2ce7768fda21b91ff0060eb1108
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..3a377fa21ed82963cbee9ee00ec9da9537a9c495
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-70/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_0_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_1_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_2_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_3_probe_0_[864_1200_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_4_probe_0_[864_1200_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70/0_0_5_probe_0_[864_1200_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-70/BaseSolver_train_image_step_70_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_0_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_0_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6190642abc9d91ad4e1a3416ceafb1211b405159
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_0_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_1_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_1_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8502ada82d3688208039e92a1cd61134cba2268b
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_1_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_2_probe_0_[800_1296_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_2_probe_0_[800_1296_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1f4c27bf5eed53350deaf713beb9f7c886dd7118
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_2_probe_0_[800_1296_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_3_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_3_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..44f0c4cbcaaa8a562d1d7fdbed8e69e0a5a2ed0a
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_3_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_4_probe_0_[800_1296_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_4_probe_0_[800_1296_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1f4c27bf5eed53350deaf713beb9f7c886dd7118
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_4_probe_0_[800_1296_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_5_probe_0_[800_1296_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_5_probe_0_[800_1296_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..dbc657689871944d9096a8ed697c295a7ca6cecd
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_5_probe_0_[800_1296_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..d208485ecf194587ebab835402eaa710b58d0440
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..41ecd4d280f3fa362a8d0d4ccb58fbb9676ad49e
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-80/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_0_probe_0_[800_1296_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_1_probe_0_[800_1296_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_2_probe_0_[800_1296_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_3_probe_0_[800_1296_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_4_probe_0_[800_1296_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80/0_0_5_probe_0_[800_1296_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-80/BaseSolver_train_image_step_80_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_0_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_0_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..84cd5a9a31b31378998ed02d02f93f14ea918076
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_0_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_1_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_1_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ea777fb63a86f9ba8250499233b9b2065ad3dc55
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_1_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_2_probe_0_[832_1248_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_2_probe_0_[832_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..dabe776b22d9121249ebb15d8c778b69b3ed81f5
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_2_probe_0_[832_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_3_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_3_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b06ed94f80d2f8b36d055a4396cd9719e7ebd835
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_3_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_4_probe_0_[832_1248_1].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_4_probe_0_[832_1248_1].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..dabe776b22d9121249ebb15d8c778b69b3ed81f5
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_4_probe_0_[832_1248_1].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_5_probe_0_[832_1248_3].jpg b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_5_probe_0_[832_1248_3].jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0b975a9663a30226295a0f712ced06b8c9e1e3da
Binary files /dev/null and b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_5_probe_0_[832_1248_3].jpg differ
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90_probe.html b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90_probe.html
new file mode 100644
index 0000000000000000000000000000000000000000..6e58fe0b8c1bcfd5f87ee5c4f7de5e2f6e587860
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90_probe.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/meta.json b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..c5f5a414c42012eb838b5599dcb615750d86ec02
--- /dev/null
+++ b/ACE_plus/examples/exp_example/20250624073511/train_probe/step-90/meta.json
@@ -0,0 +1 @@
+{"BaseSolver_prompt": ["The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."], "BaseSolver_batch_size": 1, "BaseSolver_train_image": {"ori_file": [["./examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_0_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_1_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_2_probe_0_[832_1248_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_3_probe_0_[832_1248_3].jpg", "./examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_4_probe_0_[832_1248_1].jpg", "./examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90/0_0_5_probe_0_[832_1248_3].jpg"]], "html": "./examples/exp_example/20250624073511/train_probe/step-90/BaseSolver_train_image_step_90_probe.html"}, "BaseSolver_train_label": [["edit_image0; ", "modify_image0; ", "edit_mask0; ", "target_image; ", "target_mask; ", "The image shows a mannequin wearing a light green t-shirt with a yellow logo on the front. The shirt has short sleeves and black stripes on the sleeves. The pants are also light green and have a drawstring waistband. The man is also wearing black sneakers with green laces. The background is white."]]}
\ No newline at end of file
diff --git a/ACE_plus/inference/__init__.py b/ACE_plus/inference/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..973feb7848e5accfddc0a935d4d1ca4f4cf7a03c
--- /dev/null
+++ b/ACE_plus/inference/__init__.py
@@ -0,0 +1,2 @@
+from .ace_plus_diffusers import ACEPlusDiffuserInference
+from .ace_plus_inference import ACEInference
\ No newline at end of file
diff --git a/ACE_plus/inference/ace_plus_diffusers.py b/ACE_plus/inference/ace_plus_diffusers.py
new file mode 100644
index 0000000000000000000000000000000000000000..868f1765c8ac3ed42e4b617bc250873186c81e18
--- /dev/null
+++ b/ACE_plus/inference/ace_plus_diffusers.py
@@ -0,0 +1,121 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Alibaba, Inc. and its affiliates.
+import random
+from collections import OrderedDict
+
+import torch, os
+from diffusers import FluxFillPipeline
+from scepter.modules.utils.config import Config
+from scepter.modules.utils.distribute import we
+from scepter.modules.utils.file_system import FS
+from scepter.modules.utils.logger import get_logger
+from transformers import T5TokenizerFast
+from .utils import ACEPlusImageProcessor
+
+class ACEPlusDiffuserInference():
+ def __init__(self, logger=None):
+ if logger is None:
+ logger = get_logger(name='ace_plus')
+ self.logger = logger
+ self.input = {}
+
+ def load_default(self, cfg):
+ if cfg is not None:
+ self.input_cfg = {k.lower(): v for k, v in cfg.INPUT.items()}
+ self.input = {k.lower(): dict(v).get('DEFAULT', None) if isinstance(v, (dict, OrderedDict, Config)) else v for k, v in cfg.INPUT.items()}
+ self.output = {k.lower(): v for k, v in cfg.OUTPUT.items()}
+
+ def init_from_cfg(self, cfg):
+ self.max_seq_len = cfg.get("MAX_SEQ_LEN", 4096)
+ self.image_processor = ACEPlusImageProcessor(max_seq_len=self.max_seq_len)
+
+ local_folder = FS.get_dir_to_local_dir(cfg.MODEL.PRETRAINED_MODEL)
+
+ self.pipe = FluxFillPipeline.from_pretrained(local_folder, torch_dtype=torch.bfloat16).to(we.device_id)
+
+ tokenizer_2 = T5TokenizerFast.from_pretrained(os.path.join(local_folder, "tokenizer_2"),
+ additional_special_tokens=["{image}"])
+ self.pipe.tokenizer_2 = tokenizer_2
+ self.load_default(cfg.DEFAULT_PARAS)
+
+ def prepare_input(self,
+ image,
+ mask,
+ batch_size=1,
+ dtype = torch.bfloat16,
+ num_images_per_prompt=1,
+ height=512,
+ width=512,
+ generator=None):
+ num_channels_latents = self.pipe.vae.config.latent_channels
+ # import pdb;pdb.set_trace()
+ mask, masked_image_latents = self.pipe.prepare_mask_latents(
+ mask.unsqueeze(0),
+ image.unsqueeze(0).to(we.device_id, dtype = dtype),
+ batch_size,
+ num_channels_latents,
+ num_images_per_prompt,
+ height,
+ width,
+ dtype,
+ we.device_id,
+ generator,
+ )
+ # import pdb;pdb.set_trace()
+ masked_image_latents = torch.cat((masked_image_latents, mask), dim=-1)
+ return masked_image_latents
+
+ @torch.no_grad()
+ def __call__(self,
+ reference_image=None,
+ edit_image=None,
+ edit_mask=None,
+ prompt='',
+ task=None,
+ output_height=1024,
+ output_width=1024,
+ sampler='flow_euler',
+ sample_steps=28,
+ guide_scale=50,
+ lora_path=None,
+ seed=-1,
+ tar_index=0,
+ align=0,
+ repainting_scale=0,
+ **kwargs):
+ if isinstance(prompt, str):
+ prompt = [prompt]
+ seed = seed if seed >= 0 else random.randint(0, 2 ** 32 - 1)
+ # edit_image, edit_mask, change_image, content_image, out_h, out_w, slice_w
+ image, mask, _, _, out_h, out_w, slice_w = self.image_processor.preprocess(reference_image, edit_image, edit_mask,
+ width = output_width,
+ height = output_height,
+ repainting_scale = repainting_scale)
+ h, w = image.shape[1:]
+ generator = torch.Generator("cpu").manual_seed(seed)
+ masked_image_latents = self.prepare_input(image, mask,
+ batch_size=len(prompt) , height=h, width=w, generator = generator)
+
+ if lora_path is not None:
+ with FS.get_from(lora_path) as local_path:
+ self.pipe.load_lora_weights(local_path)
+
+
+
+ image = self.pipe(
+ prompt=prompt,
+ masked_image_latents=masked_image_latents,
+ height=h,
+ width=w,
+ guidance_scale=guide_scale,
+ num_inference_steps=sample_steps,
+ max_sequence_length=512,
+ generator=generator
+ ).images[0]
+ if lora_path is not None:
+ self.pipe.unload_lora_weights()
+ return self.image_processor.postprocess(image, slice_w, out_w, out_h), seed
+
+
+if __name__ == '__main__':
+ pass
\ No newline at end of file
diff --git a/ACE_plus/inference/ace_plus_inference.py b/ACE_plus/inference/ace_plus_inference.py
new file mode 100644
index 0000000000000000000000000000000000000000..f1e7b755a22cce320b2a120e6a87b65cce5644d4
--- /dev/null
+++ b/ACE_plus/inference/ace_plus_inference.py
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Alibaba, Inc. and its affiliates.
+import random
+from collections import OrderedDict
+
+import torch, numpy as np
+from PIL import Image
+from scepter.modules.model.registry import MODELS
+from scepter.modules.utils.config import Config
+from scepter.modules.utils.distribute import we
+from .registry import BaseInference, INFERENCES
+from .utils import ACEPlusImageProcessor
+
+@INFERENCES.register_class()
+class ACEInference(BaseInference):
+ '''
+ reuse the ldm code
+ '''
+ def __init__(self, cfg, logger=None):
+ super().__init__(cfg, logger)
+ self.pipe = MODELS.build(cfg.MODEL, logger=self.logger).eval().to(we.device_id)
+ self.image_processor = ACEPlusImageProcessor(max_seq_len=cfg.MAX_SEQ_LEN)
+ self.input = {k.lower(): dict(v).get('DEFAULT', None) if isinstance(v, (dict, OrderedDict, Config)) else v for
+ k, v in cfg.SAMPLE_ARGS.items()}
+ self.dtype = getattr(torch, cfg.get("DTYPE", "bfloat16"))
+ @torch.no_grad()
+ def __call__(self,
+ reference_image=None,
+ edit_image=None,
+ edit_mask=None,
+ prompt='',
+ edit_type=None,
+ output_height=1024,
+ output_width=1024,
+ sampler='flow_euler',
+ sample_steps=28,
+ guide_scale=50,
+ lora_path=None,
+ seed=-1,
+ repainting_scale=0,
+ use_change=False,
+ keep_pixels=False,
+ keep_pixels_rate=0.8,
+ **kwargs):
+ # convert the input info to the input of ldm.
+ if isinstance(prompt, str):
+ prompt = [prompt]
+ seed = seed if seed >= 0 else random.randint(0, 2 ** 24 - 1)
+ image, mask, change_image, content_image, out_h, out_w, slice_w = self.image_processor.preprocess(reference_image, edit_image, edit_mask,
+ height=output_height, width=output_width,
+ repainting_scale=repainting_scale,
+ keep_pixels=keep_pixels,
+ keep_pixels_rate=keep_pixels_rate,
+ use_change = use_change)
+ change_image = [None] if change_image is None else [change_image.to(we.device_id)]
+ image, mask = [image.to(we.device_id)], [mask.to(we.device_id)]
+
+ (src_image_list, src_mask_list, modify_image_list,
+ edit_id, prompt) = [image], [mask], [change_image], [[0]], [prompt]
+
+ with torch.amp.autocast(enabled=True, dtype=self.dtype, device_type='cuda'):
+ out_image = self.pipe(
+ src_image_list=src_image_list,
+ modify_image_list= modify_image_list,
+ src_mask_list=src_mask_list,
+ edit_id=edit_id,
+ image=image,
+ image_mask=mask,
+ prompt=prompt,
+ sampler='flow_euler',
+ sample_steps=sample_steps,
+ seed=seed,
+ guide_scale=guide_scale,
+ show_process=True,
+ )
+ imgs = [x_i['reconstruct_image'].float().permute(1, 2, 0).cpu().numpy()
+ for x_i in out_image
+ ]
+ imgs = [Image.fromarray((img * 255).astype(np.uint8)) for img in imgs]
+ edit_image = Image.fromarray((torch.clamp(image[0] / 2 + 0.5, min=0.0, max=1.0)*255).float().permute(1, 2, 0).cpu().numpy().astype(np.uint8))
+ change_image = Image.fromarray((torch.clamp(change_image[0] / 2 + 0.5, min=0.0, max=1.0)*255).float().permute(1, 2, 0).cpu().numpy().astype(np.uint8))
+ mask = Image.fromarray((mask[0] * 255).squeeze(0).cpu().numpy().astype(np.uint8))
+ return self.image_processor.postprocess(imgs[0], slice_w, out_w, out_h), edit_image, change_image, mask, seed
diff --git a/ACE_plus/inference/registry.py b/ACE_plus/inference/registry.py
new file mode 100644
index 0000000000000000000000000000000000000000..61eb4c8faf23c7e1a9b28c85a26b1578decec0b9
--- /dev/null
+++ b/ACE_plus/inference/registry.py
@@ -0,0 +1,228 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Alibaba, Inc. and its affiliates.
+
+import torch
+from PIL.Image import Image
+from collections import OrderedDict
+from scepter.modules.utils.distribute import we
+from scepter.modules.utils.config import Config
+from scepter.modules.utils.logger import get_logger
+from scepter.studio.utils.env import get_available_memory
+from scepter.modules.model.registry import MODELS, BACKBONES, EMBEDDERS
+from scepter.modules.utils.registry import Registry, build_from_config
+def get_model(model_tuple):
+ assert 'model' in model_tuple
+ return model_tuple['model']
+
+class BaseInference():
+ '''
+ support to load the components dynamicly.
+ create and load model when run this model at the first time.
+ '''
+ def __init__(self, cfg, logger=None):
+ if logger is None:
+ logger = get_logger(name='scepter')
+ self.logger = logger
+ self.name = cfg.NAME
+
+ def init_from_modules(self, modules):
+ for k, v in modules.items():
+ self.__setattr__(k, v)
+
+ def infer_model(self, cfg, module_paras=None):
+ module = {
+ 'model': None,
+ 'cfg': cfg,
+ 'device': 'offline',
+ 'name': cfg.NAME,
+ 'function_info': {},
+ 'paras': {}
+ }
+ if module_paras is None:
+ return module
+ function_info = {}
+ paras = {
+ k.lower(): v
+ for k, v in module_paras.get('PARAS', {}).items()
+ }
+ for function in module_paras.get('FUNCTION', []):
+ input_dict = {}
+ for inp in function.get('INPUT', []):
+ if inp.lower() in self.input:
+ input_dict[inp.lower()] = self.input[inp.lower()]
+ function_info[function.NAME] = {
+ 'dtype': function.get('DTYPE', 'float32'),
+ 'input': input_dict
+ }
+ module['paras'] = paras
+ module['function_info'] = function_info
+ return module
+
+ def init_from_ckpt(self, path, model, ignore_keys=list()):
+ if path.endswith('safetensors'):
+ from safetensors.torch import load_file as load_safetensors
+ sd = load_safetensors(path)
+ else:
+ sd = torch.load(path, map_location='cpu', weights_only=True)
+
+ new_sd = OrderedDict()
+ for k, v in sd.items():
+ ignored = False
+ for ik in ignore_keys:
+ if ik in k:
+ if we.rank == 0:
+ self.logger.info(
+ 'Ignore key {} from state_dict.'.format(k))
+ ignored = True
+ break
+ if not ignored:
+ new_sd[k] = v
+
+ missing, unexpected = model.load_state_dict(new_sd, strict=False)
+ if we.rank == 0:
+ self.logger.info(
+ f'Restored from {path} with {len(missing)} missing and {len(unexpected)} unexpected keys'
+ )
+ if len(missing) > 0:
+ self.logger.info(f'Missing Keys:\n {missing}')
+ if len(unexpected) > 0:
+ self.logger.info(f'\nUnexpected Keys:\n {unexpected}')
+
+ def load(self, module):
+ if module['device'] == 'offline':
+ from scepter.modules.utils.import_utils import LazyImportModule
+ if (LazyImportModule.get_module_type(('MODELS', module['cfg'].NAME)) or
+ module['cfg'].NAME in MODELS.class_map):
+ model = MODELS.build(module['cfg'], logger=self.logger).eval()
+ elif (LazyImportModule.get_module_type(('BACKBONES', module['cfg'].NAME)) or
+ module['cfg'].NAME in BACKBONES.class_map):
+ model = BACKBONES.build(module['cfg'],
+ logger=self.logger).eval()
+ elif (LazyImportModule.get_module_type(('EMBEDDERS', module['cfg'].NAME)) or
+ module['cfg'].NAME in EMBEDDERS.class_map):
+ model = EMBEDDERS.build(module['cfg'],
+ logger=self.logger).eval()
+ else:
+ raise NotImplementedError
+ if 'DTYPE' in module['cfg'] and module['cfg']['DTYPE'] is not None:
+ model = model.to(getattr(torch, module['cfg'].DTYPE))
+ if module['cfg'].get('RELOAD_MODEL', None):
+ self.init_from_ckpt(module['cfg'].RELOAD_MODEL, model)
+ module['model'] = model
+ module['device'] = 'cpu'
+ if module['device'] == 'cpu':
+ module['device'] = we.device_id
+ module['model'] = module['model'].to(we.device_id)
+ return module
+
+ def unload(self, module):
+ if module is None:
+ return module
+ mem = get_available_memory()
+ free_mem = int(mem['available'] / (1024**2))
+ total_mem = int(mem['total'] / (1024**2))
+ if free_mem < 0.5 * total_mem:
+ if module['model'] is not None:
+ module['model'] = module['model'].to('cpu')
+ del module['model']
+ module['model'] = None
+ module['device'] = 'offline'
+ print('delete module')
+ else:
+ if module['model'] is not None:
+ module['model'] = module['model'].to('cpu')
+ module['device'] = 'cpu'
+ else:
+ module['device'] = 'offline'
+ if torch.cuda.is_available():
+ torch.cuda.empty_cache()
+ torch.cuda.ipc_collect()
+ return module
+
+ def dynamic_load(self, module=None, name=''):
+ self.logger.info('Loading {} model'.format(name))
+ if name == 'all':
+ for subname in self.loaded_model_name:
+ self.loaded_model[subname] = self.dynamic_load(
+ getattr(self, subname), subname)
+ elif name in self.loaded_model_name:
+ if name in self.loaded_model:
+ if module['cfg'] != self.loaded_model[name]['cfg']:
+ self.unload(self.loaded_model[name])
+ module = self.load(module)
+ self.loaded_model[name] = module
+ return module
+ elif module['device'] == 'cpu' or module['device'] == 'offline':
+ module = self.load(module)
+ return module
+ else:
+ return module
+ else:
+ module = self.load(module)
+ self.loaded_model[name] = module
+ return module
+ else:
+ return self.load(module)
+
+ def dynamic_unload(self, module=None, name='', skip_loaded=False):
+ self.logger.info('Unloading {} model'.format(name))
+ if name == 'all':
+ for name, module in self.loaded_model.items():
+ module = self.unload(self.loaded_model[name])
+ self.loaded_model[name] = module
+ elif name in self.loaded_model_name:
+ if name in self.loaded_model:
+ if not skip_loaded:
+ module = self.unload(self.loaded_model[name])
+ self.loaded_model[name] = module
+ else:
+ self.unload(module)
+ else:
+ self.unload(module)
+
+ def load_default(self, cfg):
+ module_paras = {}
+ if cfg is not None:
+ self.paras = cfg.PARAS
+ self.input_cfg = {k.lower(): v for k, v in cfg.INPUT.items()}
+ self.input = {k.lower(): dict(v).get('DEFAULT', None) if isinstance(v, (dict, OrderedDict, Config)) else v for k, v in cfg.INPUT.items()}
+ self.output = {k.lower(): v for k, v in cfg.OUTPUT.items()}
+ module_paras = cfg.MODULES_PARAS
+ return module_paras
+
+ def load_image(self, image, num_samples=1):
+ if isinstance(image, torch.Tensor):
+ pass
+ elif isinstance(image, Image):
+ pass
+ elif isinstance(image, Image):
+ pass
+
+ def get_function_info(self, module, function_name=None):
+ all_function = module['function_info']
+ if function_name in all_function:
+ return function_name, all_function[function_name]['dtype']
+ if function_name is None and len(all_function) == 1:
+ for k, v in all_function.items():
+ return k, v['dtype']
+
+ @torch.no_grad()
+ def __call__(self,
+ input,
+ **kwargs):
+ return
+
+def build_inference(cfg, registry, logger=None, *args, **kwargs):
+ """ After build model, load pretrained model if exists key `pretrain`.
+
+ pretrain (str, dict): Describes how to load pretrained model.
+ str, treat pretrain as model path;
+ dict: should contains key `path`, and other parameters token by function load_pretrained();
+ """
+ if not isinstance(cfg, Config):
+ raise TypeError(f'Config must be type dict, got {type(cfg)}')
+ model = build_from_config(cfg, registry, logger=logger, *args, **kwargs)
+ return model
+
+# reigister cls for diffusion.
+INFERENCES = Registry('INFERENCE', build_func=build_inference)
diff --git a/ACE_plus/inference/utils.py b/ACE_plus/inference/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..14bc93e712aca932122acc67e22b44a02a2daf56
--- /dev/null
+++ b/ACE_plus/inference/utils.py
@@ -0,0 +1,132 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Alibaba, Inc. and its affiliates.
+import math
+
+import torch
+import torchvision.transforms as T
+import numpy as np
+from scepter.modules.annotator.registry import ANNOTATORS
+from scepter.modules.utils.config import Config
+from PIL import Image
+
+
+def edit_preprocess(processor, device, edit_image, edit_mask):
+ if edit_image is None or processor is None:
+ return edit_image
+ processor = Config(cfg_dict=processor, load=False)
+ processor = ANNOTATORS.build(processor).to(device)
+ new_edit_image = processor(np.asarray(edit_image))
+ processor = processor.to("cpu")
+ del processor
+ new_edit_image = Image.fromarray(new_edit_image)
+ return Image.composite(new_edit_image, edit_image, edit_mask)
+
+class ACEPlusImageProcessor():
+ def __init__(self, max_aspect_ratio=4, d=16, max_seq_len=2048):
+ self.max_aspect_ratio = max_aspect_ratio
+ self.d = d
+ self.max_seq_len = max_seq_len
+ self.transforms = T.Compose([
+ T.ToTensor(),
+ T.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])
+ ])
+
+ def image_check(self, image):
+ if image is None:
+ return image
+ # preprocess
+ W, H = image.size
+ if H / W > self.max_aspect_ratio:
+ image = T.CenterCrop([int(self.max_aspect_ratio * W), W])(image)
+ elif W / H > self.max_aspect_ratio:
+ image = T.CenterCrop([H, int(self.max_aspect_ratio * H)])(image)
+ return self.transforms(image)
+
+
+ def preprocess(self,
+ reference_image=None,
+ edit_image=None,
+ edit_mask=None,
+ height=1024,
+ width=1024,
+ repainting_scale = 1.0,
+ keep_pixels = False,
+ keep_pixels_rate = 0.8,
+ use_change = False):
+ reference_image = self.image_check(reference_image)
+ edit_image = self.image_check(edit_image)
+ # for reference generation
+ if edit_image is None:
+ edit_image = torch.zeros([3, height, width])
+ edit_mask = torch.ones([1, height, width])
+ else:
+ if edit_mask is None:
+ _, eH, eW = edit_image.shape
+ edit_mask = np.ones((eH, eW))
+ else:
+ edit_mask = np.asarray(edit_mask)
+ edit_mask = np.where(edit_mask > 128, 1, 0)
+ edit_mask = edit_mask.astype(
+ np.float32) if np.any(edit_mask) else np.ones_like(edit_mask).astype(
+ np.float32)
+ edit_mask = torch.tensor(edit_mask).unsqueeze(0)
+
+ edit_image = edit_image * (1 - edit_mask * repainting_scale)
+
+
+ out_h, out_w = edit_image.shape[-2:]
+
+ assert edit_mask is not None
+ if reference_image is not None:
+ _, H, W = reference_image.shape
+ _, eH, eW = edit_image.shape
+ if not keep_pixels:
+ # align height with edit_image
+ scale = eH / H
+ tH, tW = eH, int(W * scale)
+ reference_image = T.Resize((tH, tW), interpolation=T.InterpolationMode.BILINEAR, antialias=True)(
+ reference_image)
+ else:
+ # padding
+ if H >= keep_pixels_rate * eH:
+ tH = int(eH * keep_pixels_rate)
+ scale = tH/H
+ tW = int(W * scale)
+ reference_image = T.Resize((tH, tW), interpolation=T.InterpolationMode.BILINEAR, antialias=True)(
+ reference_image)
+ rH, rW = reference_image.shape[-2:]
+ delta_w = 0
+ delta_h = eH - rH
+ padding = (delta_w // 2, delta_h // 2, delta_w - (delta_w // 2), delta_h - (delta_h // 2))
+ reference_image = T.Pad(padding, fill=0, padding_mode="constant")(reference_image)
+ edit_image = torch.cat([reference_image, edit_image], dim=-1)
+ edit_mask = torch.cat([torch.zeros([1, reference_image.shape[1], reference_image.shape[2]]), edit_mask], dim=-1)
+ slice_w = reference_image.shape[-1]
+ else:
+ slice_w = 0
+
+ H, W = edit_image.shape[-2:]
+ scale = min(1.0, math.sqrt(self.max_seq_len / ((H / self.d) * (W / self.d))))
+ rH = int(H * scale) // self.d * self.d # ensure divisible by self.d
+ rW = int(W * scale) // self.d * self.d
+ slice_w = int(slice_w * scale) // self.d * self.d
+
+ edit_image = T.Resize((rH, rW), interpolation=T.InterpolationMode.NEAREST_EXACT, antialias=True)(edit_image)
+ edit_mask = T.Resize((rH, rW), interpolation=T.InterpolationMode.NEAREST_EXACT, antialias=True)(edit_mask)
+ content_image = edit_image
+ if use_change:
+ change_image = edit_image * edit_mask
+ edit_image = edit_image * (1 - edit_mask)
+ else:
+ change_image = None
+ return edit_image, edit_mask, change_image, content_image, out_h, out_w, slice_w
+
+
+ def postprocess(self, image, slice_w, out_w, out_h):
+ w, h = image.size
+ if slice_w > 0:
+ output_image = image.crop((slice_w + 30, 0, w, h))
+ output_image = output_image.resize((out_w, out_h))
+ else:
+ output_image = image
+ return output_image
diff --git a/ACE_plus/models/model_zoo.yaml b/ACE_plus/models/model_zoo.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1c1044f098787f81ac8acb0d7c9222ac2d2a1a4d
--- /dev/null
+++ b/ACE_plus/models/model_zoo.yaml
@@ -0,0 +1,28 @@
+MODEL:
+ PORTRAIT:
+ MODEL_PATH: ${PORTRAIT_MODEL_PATH}
+ SUBJECT:
+ MODEL_PATH: ${SUBJECT_MODEL_PATH}
+ LOCAL_EDITING:
+ MODEL_PATH: ${LOCAL_MODEL_PATH}
+ REPAINTING_SCALE: 0.5
+ PREPROCESSOR:
+ - NAME: CannyAnnotator
+ TYPE: canny_repainting
+ LOW_THRESHOLD: 100
+ HIGH_THRESHOLD: 200
+ - NAME: ColorAnnotator
+ TYPE: mosaic_repainting
+ RATIO: 64
+ - NAME: InfoDrawContourAnnotator
+ TYPE: contour_repainting
+ INPUT_NC: 3
+ OUTPUT_NC: 1
+ N_RESIDUAL_BLOCKS: 3
+ SIGMOID: True
+ PRETRAINED_MODEL: "ms://iic/scepter_annotator@annotator/ckpts/informative_drawing_contour_style.pth"
+ - NAME: MidasDetector
+ PRETRAINED_MODEL: "ms://iic/scepter_annotator@annotator/ckpts/dpt_hybrid-midas-501f0c75.pt"
+ TYPE: depth_repainting
+ - NAME: GrayAnnotator
+ TYPE: recolorizing
\ No newline at end of file
diff --git a/ACE_plus/modules/__init__.py b/ACE_plus/modules/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..00b169693a4b1080024d430f7e6718199e08731e
--- /dev/null
+++ b/ACE_plus/modules/__init__.py
@@ -0,0 +1,6 @@
+from .flux import FluxMRACEPlus, FluxMRModiACEPlus
+from .ace_plus_dataset import ACEPlusDataset
+from .ace_plus_ldm import LatentDiffusionACEPlus
+from .ace_plus_solver import FormalACEPlusSolver
+from .embedder import ACEHFEmbedder, T5ACEPlusClipFluxEmbedder
+from .checkpoint import ACECheckpointHook, ACEBackwardHook
\ No newline at end of file
diff --git a/ACE_plus/modules/ace_plus_dataset.py b/ACE_plus/modules/ace_plus_dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..88305ff0a385c4bc990d6d4756b2e5e4710c4c1d
--- /dev/null
+++ b/ACE_plus/modules/ace_plus_dataset.py
@@ -0,0 +1,279 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Alibaba, Inc. and its affiliates.
+import math
+import re, io
+import numpy as np
+import random, torch
+from PIL import Image
+import torchvision.transforms as T
+from collections import defaultdict
+from scepter.modules.data.dataset.registry import DATASETS
+from scepter.modules.data.dataset.base_dataset import BaseDataset
+from scepter.modules.transform.io import pillow_convert
+from scepter.modules.utils.directory import osp_path
+from scepter.modules.utils.file_system import FS
+from torchvision.transforms import InterpolationMode
+def load_image(prefix, img_path, cvt_type=None):
+ if img_path is None or img_path == '':
+ return None
+ img_path = osp_path(prefix, img_path)
+ with FS.get_object(img_path) as image_bytes:
+ image = Image.open(io.BytesIO(image_bytes))
+ if cvt_type is not None:
+ image = pillow_convert(image, cvt_type)
+ return image
+def transform_image(image, std = 0.5, mean = 0.5):
+ return (image.permute(2, 0, 1)/255. - mean)/std
+def transform_mask(mask):
+ return mask.unsqueeze(0)/255.
+
+def ensure_src_align_target_h_mode(src_image, size, image_id, interpolation=InterpolationMode.BILINEAR):
+ # padding mode
+ H, W = size
+ ret_image = []
+ for one_id in image_id:
+ edit_image = src_image[one_id]
+ tH, tW = H, W
+ ret_image.append(T.Resize((tH, tW), interpolation=interpolation, antialias=True)(edit_image))
+ return ret_image
+
+def ensure_src_align_target_padding_mode(src_image, size, image_id, size_h = [], interpolation=InterpolationMode.BILINEAR):
+ # padding mode
+ H, W = size
+
+ ret_data = []
+ ret_h = []
+ for idx, one_id in enumerate(image_id):
+ if len(size_h) < 1:
+ rH = random.randint(int(H / 3), int(H))
+ else:
+ rH = size_h[idx]
+ ret_h.append(rH)
+ edit_image = src_image[one_id]
+ _, eH, eW = edit_image.shape
+ scale = rH/eH
+ tH, tW = rH, int(eW * scale)
+ edit_image = T.Resize((tH, tW), interpolation=interpolation, antialias=True)(edit_image)
+ # padding
+ delta_w = 0
+ delta_h = H - tH
+ padding = (delta_w // 2, delta_h // 2, delta_w - (delta_w // 2), delta_h - (delta_h // 2))
+ ret_data.append(T.Pad(padding, fill=0, padding_mode="constant")(edit_image).float())
+ return ret_data, ret_h
+
+def ensure_limit_sequence(image, max_seq_len = 4096, d = 16, interpolation=InterpolationMode.BILINEAR):
+ # resize image for max_seq_len, while keep the aspect ratio
+ H, W = image.shape[-2:]
+ scale = min(1.0, math.sqrt(max_seq_len / ((H / d) * (W / d))))
+ rH = int(H * scale) // d * d # ensure divisible by self.d
+ rW = int(W * scale) // d * d
+ # print(f"{H} {W} -> {rH} {rW}")
+ image = T.Resize((rH, rW), interpolation=interpolation, antialias=True)(image)
+ return image
+
+@DATASETS.register_class()
+class ACEPlusDataset(BaseDataset):
+ para_dict = {
+ "DELIMITER": {
+ "value": "#;#",
+ "description": "The delimiter for records of data list."
+ },
+ "FIELDS": {
+ "value": ["data_type", "edit_image", "edit_mask", "ref_image", "target_image", "prompt"],
+ "description": "The fields for every record."
+ },
+ "PATH_PREFIX": {
+ "value": "",
+ "description": "The path prefix for every input image."
+ },
+ "EDIT_TYPE_LIST": {
+ "value": [],
+ "description": "The edit type list to be trained for data list."
+ },
+ "MAX_SEQ_LEN": {
+ "value": 4096,
+ "description": "The max sequence length for input image."
+ },
+ "D": {
+ "value": 16,
+ "description": "Patch size for resized image."
+ }
+ }
+ para_dict.update(BaseDataset.para_dict)
+ def __init__(self, cfg, logger=None):
+ super().__init__(cfg, logger=logger)
+ delimiter = cfg.get("DELIMITER", "#;#")
+ fields = cfg.get("FIELDS", [])
+ prefix = cfg.get("PATH_PREFIX", "")
+ edit_type_list = cfg.get("EDIT_TYPE_LIST", [])
+ self.modify_mode = cfg.get("MODIFY_MODE", True)
+ self.max_seq_len = cfg.get("MAX_SEQ_LEN", 4096)
+ self.repaiting_scale = cfg.get("REPAINTING_SCALE", 0.5)
+ self.d = cfg.get("D", 16)
+ prompt_file = cfg.DATA_LIST
+ self.items = self.read_data_list(delimiter,
+ fields,
+ prefix,
+ edit_type_list,
+ prompt_file)
+ random.shuffle(self.items)
+ use_num = int(cfg.get('USE_NUM', -1))
+ if use_num > 0:
+ self.items = self.items[:use_num]
+ def read_data_list(self, delimiter,
+ fields,
+ prefix,
+ edit_type_list,
+ prompt_file):
+ with FS.get_object(prompt_file) as local_data:
+ rows = local_data.decode('utf-8').strip().split('\n')
+ items = list()
+ dtype_level_num = {}
+ for i, row in enumerate(rows):
+ item = {"prefix": prefix}
+ for key, val in zip(fields, row.split(delimiter)):
+ item[key] = val
+ edit_type = item["data_type"]
+ if len(edit_type_list) > 0:
+ for re_pattern in edit_type_list:
+ if re.match(re_pattern, edit_type):
+ items.append(item)
+ if edit_type not in dtype_level_num:
+ dtype_level_num[edit_type] = 0
+ dtype_level_num[edit_type] += 1
+ break
+ else:
+ items.append(item)
+ if edit_type not in dtype_level_num:
+ dtype_level_num[edit_type] = 0
+ dtype_level_num[edit_type] += 1
+ for edit_type in dtype_level_num:
+ self.logger.info(f"{edit_type} has {dtype_level_num[edit_type]} samples.")
+ return items
+ def __len__(self):
+ return len(self.items)
+
+ def __getitem__(self, index):
+ item = self._get(index)
+ return self.pipeline(item)
+
+ def _get(self, index):
+ # normalize
+ sample_id = index%len(self)
+ index = self.items[index%len(self)]
+ prefix = index.get("prefix", "")
+ edit_image = index.get("edit_image", "")
+ edit_mask = index.get("edit_mask", "")
+ ref_image = index.get("ref_image", "")
+ target_image = index.get("target_image", "")
+ prompt = index.get("prompt", "")
+
+ edit_image = load_image(prefix, edit_image, cvt_type="RGB") if edit_image != "" else None
+ edit_mask = load_image(prefix, edit_mask, cvt_type="L") if edit_mask != "" else None
+ ref_image = load_image(prefix, ref_image, cvt_type="RGB") if ref_image != "" else None
+ target_image = load_image(prefix, target_image, cvt_type="RGB") if target_image != "" else None
+ assert target_image is not None
+
+ edit_id, ref_id, src_image_list, src_mask_list = [], [], [], []
+ # parse editing image
+ if edit_image is None:
+ edit_image = Image.new("RGB", target_image.size, (255, 255, 255))
+ edit_mask = Image.new("L", edit_image.size, 255)
+ elif edit_mask is None:
+ edit_mask = Image.new("L", edit_image.size, 255)
+ src_image_list.append(edit_image)
+ edit_id.append(0)
+ src_mask_list.append(edit_mask)
+ # parse reference image
+ if ref_image is not None:
+ src_image_list.append(ref_image)
+ ref_id.append(1)
+ src_mask_list.append(Image.new("L", ref_image.size, 0))
+
+ image = transform_image(torch.tensor(np.array(target_image).astype(np.float32)))
+ if edit_mask is not None:
+ image_mask = transform_mask(torch.tensor(np.array(edit_mask).astype(np.float32)))
+ else:
+ image_mask = Image.new("L", target_image.size, 255)
+ image_mask = transform_mask(torch.tensor(np.array(image_mask).astype(np.float32)))
+
+
+ src_image_list = [transform_image(torch.tensor(np.array(im).astype(np.float32))) for im in src_image_list]
+ src_mask_list = [transform_mask(torch.tensor(np.array(im).astype(np.float32))) for im in src_mask_list]
+
+ # decide the repainting scale for the editing task
+ if len(ref_id) > 0:
+ repainting_scale = 1.0
+ else:
+ repainting_scale = self.repaiting_scale
+ for e_i in edit_id:
+ src_image_list[e_i] = src_image_list[e_i] * (1 - repainting_scale * src_mask_list[e_i])
+ size = image.shape[1:]
+ ref_image_list, ret_h = ensure_src_align_target_padding_mode(src_image_list, size,
+ image_id=ref_id,
+ interpolation=InterpolationMode.NEAREST_EXACT)
+ ref_mask_list, ret_h = ensure_src_align_target_padding_mode(src_mask_list, size,
+ size_h=ret_h,
+ image_id=ref_id,
+ interpolation=InterpolationMode.NEAREST_EXACT)
+
+ edit_image_list = ensure_src_align_target_h_mode(src_image_list, size,
+ image_id=edit_id,
+ interpolation=InterpolationMode.NEAREST_EXACT)
+ edit_mask_list = ensure_src_align_target_h_mode(src_mask_list, size,
+ image_id=edit_id,
+ interpolation=InterpolationMode.NEAREST_EXACT)
+
+
+
+ src_image_list = [torch.cat(ref_image_list + edit_image_list, dim=-1)]
+ src_mask_list = [torch.cat(ref_mask_list + edit_mask_list, dim=-1)]
+ image = torch.cat(ref_image_list + [image], dim=-1)
+ image_mask = torch.cat(ref_mask_list + [image_mask], dim=-1)
+
+ # limit max sequence length
+ image = ensure_limit_sequence(image, max_seq_len = self.max_seq_len,
+ d = self.d, interpolation=InterpolationMode.NEAREST_EXACT)
+ image_mask = ensure_limit_sequence(image_mask, max_seq_len = self.max_seq_len,
+ d = self.d, interpolation=InterpolationMode.NEAREST_EXACT)
+ src_image_list = [ensure_limit_sequence(i, max_seq_len = self.max_seq_len,
+ d = self.d, interpolation=InterpolationMode.NEAREST_EXACT) for i in src_image_list]
+ src_mask_list = [ensure_limit_sequence(i, max_seq_len = self.max_seq_len,
+ d = self.d, interpolation=InterpolationMode.NEAREST_EXACT) for i in src_mask_list]
+
+ if self.modify_mode:
+ # To be modified regions according to mask
+ modify_image_list = [ii * im for ii, im in zip(src_image_list, src_mask_list)]
+ # To be edited regions according to mask
+ src_image_list = [ii * (1 - im) for ii, im in zip(src_image_list, src_mask_list)]
+ else:
+ src_image_list = src_image_list
+ modify_image_list = src_image_list
+
+ item = {
+ "src_image_list": src_image_list,
+ "src_mask_list": src_mask_list,
+ "modify_image_list": modify_image_list,
+ "image": image,
+ "image_mask": image_mask,
+ "edit_id": edit_id,
+ "ref_id": ref_id,
+ "prompt": prompt,
+ "edit_key": index["edit_key"] if "edit_key" in index else "",
+ "sample_id": sample_id
+ }
+ return item
+
+ @staticmethod
+ def collate_fn(batch):
+ collect = defaultdict(list)
+ for sample in batch:
+ for k, v in sample.items():
+ collect[k].append(v)
+ new_batch = dict()
+ for k, v in collect.items():
+ if all([i is None for i in v]):
+ new_batch[k] = None
+ else:
+ new_batch[k] = v
+ return new_batch
diff --git a/ACE_plus/modules/ace_plus_ldm.py b/ACE_plus/modules/ace_plus_ldm.py
new file mode 100644
index 0000000000000000000000000000000000000000..68b461b199ea99f585d76b1aa8442bf34503e8bc
--- /dev/null
+++ b/ACE_plus/modules/ace_plus_ldm.py
@@ -0,0 +1,451 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Alibaba, Inc. and its affiliates.
+import torch
+import torch.nn.functional as F
+import copy
+import math
+import random
+from contextlib import nullcontext
+from einops import rearrange
+from scepter.modules.model.network.ldm import LatentDiffusion
+from scepter.modules.model.registry import MODELS, DIFFUSIONS, BACKBONES, LOSSES, TOKENIZERS, EMBEDDERS
+from scepter.modules.model.utils.basic_utils import check_list_of_list, to_device, pack_imagelist_into_tensor, \
+ limit_batch_data, unpack_tensor_into_imagelist, count_params, disabled_train
+from scepter.modules.utils.config import dict_to_yaml
+from scepter.modules.utils.distribute import we
+
+@MODELS.register_class()
+class LatentDiffusionACEPlus(LatentDiffusion):
+ para_dict = LatentDiffusion.para_dict
+ def __init__(self, cfg, logger=None):
+ super().__init__(cfg, logger=logger)
+ self.guide_scale = cfg.get('GUIDE_SCALE', 1.0)
+
+ def init_params(self):
+ self.parameterization = self.cfg.get('PARAMETERIZATION', 'rf')
+ assert self.parameterization in [
+ 'eps', 'x0', 'v', 'rf'
+ ], 'currently only supporting "eps" and "x0" and "v" and "rf"'
+
+ diffusion_cfg = self.cfg.get("DIFFUSION", None)
+ assert diffusion_cfg is not None
+ if self.cfg.have("WORK_DIR"):
+ diffusion_cfg.WORK_DIR = self.cfg.WORK_DIR
+ self.diffusion = DIFFUSIONS.build(diffusion_cfg, logger=self.logger)
+
+ self.pretrained_model = self.cfg.get('PRETRAINED_MODEL', None)
+ self.ignore_keys = self.cfg.get('IGNORE_KEYS', [])
+
+ self.model_config = self.cfg.DIFFUSION_MODEL
+ self.first_stage_config = self.cfg.FIRST_STAGE_MODEL
+ self.cond_stage_config = self.cfg.COND_STAGE_MODEL
+ self.tokenizer_config = self.cfg.get('TOKENIZER', None)
+ self.loss_config = self.cfg.get('LOSS', None)
+
+ self.scale_factor = self.cfg.get('SCALE_FACTOR', 0.18215)
+ self.size_factor = self.cfg.get('SIZE_FACTOR', 16)
+ self.default_n_prompt = self.cfg.get('DEFAULT_N_PROMPT', '')
+ self.default_n_prompt = '' if self.default_n_prompt is None else self.default_n_prompt
+ self.p_zero = self.cfg.get('P_ZERO', 0.0)
+ self.train_n_prompt = self.cfg.get('TRAIN_N_PROMPT', '')
+ if self.default_n_prompt is None:
+ self.default_n_prompt = ''
+ if self.train_n_prompt is None:
+ self.train_n_prompt = ''
+ self.use_ema = self.cfg.get('USE_EMA', False)
+ self.model_ema_config = self.cfg.get('DIFFUSION_MODEL_EMA', None)
+
+ def construct_network(self):
+ # embedding_context = torch.device("meta") if self.model_config.get("PRETRAINED_MODEL", None) else nullcontext()
+ # with embedding_context:
+ self.model = BACKBONES.build(self.model_config, logger=self.logger).to(torch.bfloat16)
+ self.logger.info('all parameters:{}'.format(count_params(self.model)))
+ if self.use_ema:
+ if self.model_ema_config:
+ self.model_ema = BACKBONES.build(self.model_ema_config,
+ logger=self.logger)
+ else:
+ self.model_ema = copy.deepcopy(self.model)
+ self.model_ema = self.model_ema.eval()
+ for param in self.model_ema.parameters():
+ param.requires_grad = False
+ if self.loss_config:
+ self.loss = LOSSES.build(self.loss_config, logger=self.logger)
+ if self.tokenizer_config is not None:
+ self.tokenizer = TOKENIZERS.build(self.tokenizer_config,
+ logger=self.logger)
+ if self.first_stage_config:
+ self.first_stage_model = MODELS.build(self.first_stage_config,
+ logger=self.logger)
+ self.first_stage_model = self.first_stage_model.eval()
+ self.first_stage_model.train = disabled_train
+ for param in self.first_stage_model.parameters():
+ param.requires_grad = False
+ else:
+ self.first_stage_model = None
+ if self.tokenizer_config is not None:
+ self.cond_stage_config.KWARGS = {
+ 'vocab_size': self.tokenizer.vocab_size
+ }
+ if self.cond_stage_config == '__is_unconditional__':
+ print(
+ f'Training {self.__class__.__name__} as an unconditional model.'
+ )
+ self.cond_stage_model = None
+ else:
+ model = EMBEDDERS.build(self.cond_stage_config, logger=self.logger)
+ self.cond_stage_model = model.eval().requires_grad_(False)
+ self.cond_stage_model.train = disabled_train
+
+ @torch.no_grad()
+ def encode_first_stage(self, x, **kwargs):
+ def run_one_image(u):
+ zu = self.first_stage_model.encode(u)
+ if isinstance(zu, (tuple, list)):
+ zu = zu[0]
+ return zu
+
+ z = [run_one_image(u.unsqueeze(0) if u.dim() == 3 else u) for u in x]
+ return z
+
+ @torch.no_grad()
+ def decode_first_stage(self, z):
+ return [self.first_stage_model.decode(zu) for zu in z]
+ def noise_sample(self, num_samples, h, w, seed, dtype=torch.bfloat16):
+ noise = torch.randn(
+ num_samples,
+ 16,
+ # allow for packing
+ 2 * math.ceil(h / 16),
+ 2 * math.ceil(w / 16),
+ device=we.device_id,
+ dtype=dtype,
+ generator=torch.Generator(device=we.device_id).manual_seed(seed),
+ )
+ return noise
+ def resize_func(self, x, size):
+ if x is None: return x
+ return F.interpolate(x.unsqueeze(0), size = size, mode='nearest-exact')
+ def parse_ref_and_edit(self, src_image,
+ modify_image,
+ src_image_mask,
+ text_embedding,
+ #text_mask,
+ edit_id):
+ edit_image = []
+ modi_image = []
+ edit_mask = []
+ ref_image = []
+ ref_mask = []
+ ref_context = []
+ ref_y = []
+ ref_id = []
+ txt = []
+ txt_y = []
+ for sample_id, (one_src,
+ one_modify,
+ one_src_mask,
+ one_text_embedding,
+ one_text_y,
+ # one_text_mask,
+ one_edit_id) in enumerate(zip(src_image,
+ modify_image,
+ src_image_mask,
+ text_embedding["context"],
+ text_embedding["y"],
+ #text_mask,
+ edit_id)
+ ):
+ ref_id.append([i for i in range(len(one_src))])
+ if hasattr(self, "ref_cond_stage_model") and self.ref_cond_stage_model:
+ ref_image.append(self.ref_cond_stage_model.encode_list([((i + 1.0) / 2.0 * 255).type(torch.uint8) for i in one_src]))
+ else:
+ ref_image.append(one_src)
+ ref_mask.append(one_src_mask)
+ # process edit image & edit image mask
+ current_edit_image = to_device([one_src[i] for i in one_edit_id], strict=False)
+ current_edit_image = [v.squeeze(0) for v in self.encode_first_stage(current_edit_image)]
+ # process modi image
+ current_modify_image = to_device([one_modify[i] for i in one_edit_id],
+ strict=False)
+ current_modify_image = [
+ v.squeeze(0)
+ for v in self.encode_first_stage(current_modify_image)
+ ]
+ current_edit_image_mask = to_device(
+ [one_src_mask[i] for i in one_edit_id], strict=False)
+ current_edit_image_mask = [
+ self.reshape_func(m).squeeze(0)
+ for m in current_edit_image_mask
+ ]
+
+ edit_image.append(current_edit_image)
+ modi_image.append(current_modify_image)
+ edit_mask.append(current_edit_image_mask)
+ ref_context.append(one_text_embedding[:len(ref_id[-1])])
+ ref_y.append(one_text_y[:len(ref_id[-1])])
+ if not sum(len(src_) for src_ in src_image) > 0:
+ ref_image = None
+ ref_context = None
+ ref_y = None
+ for sample_id, (one_text_embedding, one_text_y) in enumerate(zip(text_embedding["context"],
+ text_embedding["y"])):
+ txt.append(one_text_embedding[-1].squeeze(0))
+ txt_y.append(one_text_y[-1])
+ return {
+ "edit": edit_image,
+ 'modify': modi_image,
+ "edit_mask": edit_mask,
+ "edit_id": edit_id,
+ "ref_context": ref_context,
+ "ref_y": ref_y,
+ "context": txt,
+ "y": txt_y,
+ "ref_x": ref_image,
+ "ref_mask": ref_mask,
+ "ref_id": ref_id
+ }
+
+
+ def reshape_func(self, mask):
+ mask = mask.to(torch.bfloat16)
+ mask = mask.view((-1, mask.shape[-2], mask.shape[-1]))
+ mask = rearrange(
+ mask,
+ "c (h ph) (w pw) -> c (ph pw) h w",
+ ph=8,
+ pw=8,
+ )
+ return mask
+
+ def forward_train(self,
+ src_image_list=[],
+ modify_image_list=[],
+ src_mask_list=[],
+ edit_id=[],
+ image=None,
+ image_mask=None,
+ noise=None,
+ prompt=[],
+ **kwargs):
+ '''
+ Args:
+ src_image: list of list of src_image
+ src_image_mask: list of list of src_image_mask
+ image: target image
+ image_mask: target image mask
+ noise: default is None, generate automaticly
+ ref_prompt: list of list of text
+ prompt: list of text
+ **kwargs:
+ Returns:
+ '''
+ assert check_list_of_list(src_image_list) and check_list_of_list(
+ src_mask_list)
+ assert self.cond_stage_model is not None
+
+ gc_seg = kwargs.pop("gc_seg", [])
+ gc_seg = int(gc_seg[0]) if len(gc_seg) > 0 else 0
+ align = kwargs.pop("align", [])
+ prompt_ = [[pp] if isinstance(pp, str) else pp for pp in prompt]
+ if len(align) < 1: align = [0] * len(prompt_)
+ context = getattr(self.cond_stage_model, 'encode_list_of_list')(prompt_)
+ guide_scale = self.guide_scale
+ if guide_scale is not None:
+ guide_scale = torch.full((len(prompt_),), guide_scale, device=we.device_id)
+ else:
+ guide_scale = None
+ # image and image_mask
+ # print("is list of list", check_list_of_list(image))
+ if check_list_of_list(image):
+ image = [to_device(ix) for ix in image]
+ x_start = [self.encode_first_stage(ix, **kwargs) for ix in image]
+ noise = [[torch.randn_like(ii) for ii in ix] for ix in x_start]
+ x_start = [torch.cat(ix, dim=-1) for ix in x_start]
+ noise = [torch.cat(ix, dim=-1) for ix in noise]
+
+ noise, _ = pack_imagelist_into_tensor(noise)
+
+ image_mask = [to_device(im, strict=False) for im in image_mask]
+ x_mask = [[self.reshape_func(i).squeeze(0) for i in im] if im is not None else [None] * len(ix) for ix, im in zip(image, image_mask)]
+ x_mask = [torch.cat(im, dim=-1) for im in x_mask]
+ else:
+ image = to_device(image)
+ x_start = self.encode_first_stage(image, **kwargs)
+ image_mask = to_device(image_mask, strict=False)
+ x_mask = [self.reshape_func(i).squeeze(0) for i in image_mask] if image_mask is not None else [None] * len(
+ image)
+ loss_mask, _ = pack_imagelist_into_tensor(
+ tuple(torch.ones_like(ix, dtype=torch.bool, device=ix.device) for ix in x_start))
+ x_start, x_shapes = pack_imagelist_into_tensor(x_start)
+ context['x_shapes'] = x_shapes
+ context['align'] = align
+ # process image mask
+
+ context['x_mask'] = x_mask
+ ref_edit_context = self.parse_ref_and_edit(src_image_list, modify_image_list, src_mask_list, context, edit_id)
+ context.update(ref_edit_context)
+
+ teacher_context = copy.deepcopy(context)
+ teacher_context["context"] = torch.cat(teacher_context["context"], dim=0)
+ teacher_context["y"] = torch.cat(teacher_context["y"], dim=0)
+ loss = self.diffusion.loss(x_0=x_start,
+ model=self.model,
+ model_kwargs={"cond": context,
+ "gc_seg": gc_seg,
+ "guidance": guide_scale},
+ noise=noise,
+ reduction='none',
+ **kwargs)
+ loss = loss[loss_mask].mean()
+ ret = {'loss': loss, 'probe_data': {'prompt': prompt}}
+ return ret
+
+ @torch.no_grad()
+ def forward_test(self,
+ src_image_list=[],
+ modify_image_list=[],
+ src_mask_list=[],
+ edit_id=[],
+ image=None,
+ image_mask=None,
+ prompt=[],
+ sampler='flow_euler',
+ sample_steps=20,
+ seed=2023,
+ guide_scale=3.5,
+ guide_rescale=0.0,
+ show_process=False,
+ log_num=-1,
+ **kwargs):
+ outputs = self.forward_editing(
+ src_image_list=src_image_list,
+ src_mask_list=src_mask_list,
+ modify_image_list=modify_image_list,
+ edit_id=edit_id,
+ image=image,
+ image_mask=image_mask,
+ prompt=prompt,
+ sampler=sampler,
+ sample_steps=sample_steps,
+ seed=seed,
+ guide_scale=guide_scale,
+ guide_rescale=guide_rescale,
+ show_process=show_process,
+ log_num=log_num,
+ **kwargs
+ )
+ return outputs
+
+ @torch.no_grad()
+ def forward_editing(self,
+ src_image_list=[],
+ modify_image_list=None,
+ src_mask_list=[],
+ edit_id=[],
+ image=None,
+ image_mask=None,
+ prompt=[],
+ sampler='flow_euler',
+ sample_steps=20,
+ seed=2023,
+ guide_scale=3.5,
+ log_num=-1,
+ **kwargs
+ ):
+ # gc_seg is unused
+ prompt, image, image_mask, src_image, modify_image, src_image_mask, edit_id = limit_batch_data(
+ [prompt, image, image_mask, src_image_list, modify_image_list, src_mask_list, edit_id], log_num)
+ assert check_list_of_list(src_image) and check_list_of_list(src_image_mask)
+ assert self.cond_stage_model is not None
+ align = kwargs.pop("align", [])
+ prompt_ = [[pp] if isinstance(pp, str) else pp for pp in prompt]
+ if len(align) < 1: align = [0] * len(prompt_)
+ context = getattr(self.cond_stage_model, 'encode_list_of_list')(prompt_)
+ guide_scale = guide_scale or self.guide_scale
+ if guide_scale is not None:
+ guide_scale = torch.full((len(prompt),), guide_scale, device=we.device_id)
+ else:
+ guide_scale = None
+ # image and image_mask
+ seed = seed if seed >= 0 else random.randint(0, 2 ** 32 - 1)
+ if image is not None:
+ if check_list_of_list(image):
+ image = [torch.cat(ix, dim=-1) for ix in image]
+ image_mask = [torch.cat(im, dim=-1) for im in image_mask]
+ noise = [self.noise_sample(1, ix.shape[1], ix.shape[2], seed) for ix in image]
+ else:
+ height, width = kwargs.pop("height"), kwargs.pop("width")
+ noise = [self.noise_sample(1, height, width, seed) for _ in prompt]
+ noise, x_shapes = pack_imagelist_into_tensor(noise)
+ context['x_shapes'] = x_shapes
+ context['align'] = align
+ # process image mask
+ image_mask = to_device(image_mask, strict=False)
+ x_mask = [self.reshape_func(i).squeeze(0) for i in image_mask]
+ context['x_mask'] = x_mask
+ ref_edit_context = self.parse_ref_and_edit(src_image, modify_image, src_image_mask, context, edit_id)
+ context.update(ref_edit_context)
+ # UNet use input n_prompt
+ # model = self.model_ema if self.use_ema and self.eval_ema else self.model
+ # import pdb;pdb.set_trace()
+ model = self.model
+ embedding_context = model.no_sync if isinstance(model, torch.distributed.fsdp.FullyShardedDataParallel) \
+ else nullcontext
+ with embedding_context():
+ samples = self.diffusion.sample(
+ noise=noise,
+ sampler=sampler,
+ model=self.model,
+ model_kwargs={"cond": context, "guidance": guide_scale, "gc_seg": -1
+ },
+ steps=sample_steps,
+ show_progress=True,
+ guide_scale=guide_scale,
+ return_intermediate=None,
+ **kwargs).float()
+ samples = unpack_tensor_into_imagelist(samples, x_shapes)
+ with torch.autocast(device_type="cuda", dtype=torch.bfloat16):
+ x_samples = self.decode_first_stage(samples)
+ outputs = list()
+ for i in range(len(prompt)):
+ rec_img = torch.clamp((x_samples[i].float() + 1.0) / 2.0, min=0.0, max=1.0)
+ rec_img = rec_img.squeeze(0)
+ edit_imgs, modify_imgs, edit_img_masks = [], [], []
+ if src_image is not None and src_image[i] is not None:
+ if src_image_mask[i] is None:
+ src_image_mask[i] = [None] * len(src_image[i])
+ for edit_img, modify_img, edit_mask in zip(src_image[i], modify_image_list[i], src_image_mask[i]):
+ edit_img = torch.clamp((edit_img.float() + 1.0) / 2.0, min=0.0, max=1.0)
+ edit_imgs.append(edit_img.squeeze(0))
+ modify_img = torch.clamp((modify_img.float() + 1.0) / 2.0,
+ min=0.0,
+ max=1.0)
+ modify_imgs.append(modify_img.squeeze(0))
+ if edit_mask is None:
+ edit_mask = torch.ones_like(edit_img[[0], :, :])
+ edit_img_masks.append(edit_mask)
+ one_tup = {
+ 'reconstruct_image': rec_img,
+ 'instruction': prompt[i],
+ 'edit_image': edit_imgs if len(edit_imgs) > 0 else None,
+ 'modify_image': modify_imgs if len(modify_imgs) > 0 else None,
+ 'edit_mask': edit_img_masks if len(edit_imgs) > 0 else None
+ }
+ if image is not None:
+ if image_mask is None:
+ image_mask = [None] * len(image)
+ ori_img = torch.clamp((image[i] + 1.0) / 2.0, min=0.0, max=1.0)
+ one_tup['target_image'] = ori_img.squeeze(0)
+ one_tup['target_mask'] = image_mask[i] if image_mask[i] is not None else torch.ones_like(
+ ori_img[[0], :, :])
+ outputs.append(one_tup)
+ return outputs
+
+ @staticmethod
+ def get_config_template():
+ return dict_to_yaml('MODEL',
+ __class__.__name__,
+ LatentDiffusionACEPlus.para_dict,
+ set_name=True)
+
diff --git a/ACE_plus/modules/ace_plus_solver.py b/ACE_plus/modules/ace_plus_solver.py
new file mode 100644
index 0000000000000000000000000000000000000000..d09a40b8a489fbfbebea0da96a5b29f7cefd4a87
--- /dev/null
+++ b/ACE_plus/modules/ace_plus_solver.py
@@ -0,0 +1,181 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Alibaba, Inc. and its affiliates.
+import numpy as np
+import torch
+from scepter.modules.solver import LatentDiffusionSolver
+from scepter.modules.solver.registry import SOLVERS
+from scepter.modules.utils.data import transfer_data_to_cuda
+from scepter.modules.utils.distribute import we
+from scepter.modules.utils.probe import ProbeData
+from tqdm import tqdm
+@SOLVERS.register_class()
+class FormalACEPlusSolver(LatentDiffusionSolver):
+ def __init__(self, cfg, logger=None):
+ super().__init__(cfg, logger=logger)
+ self.probe_prompt = cfg.get("PROBE_PROMPT", None)
+ self.probe_hw = cfg.get("PROBE_HW", [])
+
+ @torch.no_grad()
+ def run_eval(self):
+ self.eval_mode()
+ self.before_all_iter(self.hooks_dict[self._mode])
+ all_results = []
+ for batch_idx, batch_data in tqdm(
+ enumerate(self.datas[self._mode].dataloader)):
+ self.before_iter(self.hooks_dict[self._mode])
+ if self.sample_args:
+ batch_data.update(self.sample_args.get_lowercase_dict())
+ with torch.autocast(device_type='cuda',
+ enabled=self.use_amp,
+ dtype=self.dtype):
+ results = self.run_step_eval(transfer_data_to_cuda(batch_data),
+ batch_idx,
+ step=self.total_iter,
+ rank=we.rank)
+ all_results.extend(results)
+ self.after_iter(self.hooks_dict[self._mode])
+ log_data, log_label = self.save_results(all_results)
+ self.register_probe({'eval_label': log_label})
+ self.register_probe({
+ 'eval_image':
+ ProbeData(log_data,
+ is_image=True,
+ build_html=True,
+ build_label=log_label)
+ })
+ self.after_all_iter(self.hooks_dict[self._mode])
+
+ @torch.no_grad()
+ def run_test(self):
+ self.test_mode()
+ self.before_all_iter(self.hooks_dict[self._mode])
+ all_results = []
+ for batch_idx, batch_data in tqdm(
+ enumerate(self.datas[self._mode].dataloader)):
+ self.before_iter(self.hooks_dict[self._mode])
+ if self.sample_args:
+ batch_data.update(self.sample_args.get_lowercase_dict())
+ with torch.autocast(device_type='cuda',
+ enabled=self.use_amp,
+ dtype=self.dtype):
+ results = self.run_step_eval(transfer_data_to_cuda(batch_data),
+ batch_idx,
+ step=self.total_iter,
+ rank=we.rank)
+ all_results.extend(results)
+ self.after_iter(self.hooks_dict[self._mode])
+ log_data, log_label = self.save_results(all_results)
+ self.register_probe({'test_label': log_label})
+ self.register_probe({
+ 'test_image':
+ ProbeData(log_data,
+ is_image=True,
+ build_html=True,
+ build_label=log_label)
+ })
+
+ self.after_all_iter(self.hooks_dict[self._mode])
+
+ def run_step_val(self, batch_data, batch_idx=0, step=None, rank=None):
+ sample_id_list = batch_data['sample_id']
+ loss_dict = {}
+ with torch.autocast(device_type='cuda',
+ enabled=self.use_amp,
+ dtype=self.dtype):
+ results = self.model.forward_train(**batch_data)
+ loss = results['loss']
+ for sample_id in sample_id_list:
+ loss_dict[sample_id] = loss.detach().cpu().numpy()
+ return loss_dict
+
+ def save_results(self, results):
+ log_data, log_label = [], []
+ for result in results:
+ ret_images, ret_labels = [], []
+ edit_image = result.get('edit_image', None)
+ modify_image = result.get('modify_image', None)
+ edit_mask = result.get('edit_mask', None)
+ if edit_image is not None:
+ for i, edit_img in enumerate(result['edit_image']):
+ if edit_img is None:
+ continue
+ ret_images.append((edit_img.permute(1, 2, 0).cpu().numpy() * 255).astype(np.uint8))
+ ret_labels.append(f'edit_image{i}; ')
+ ret_images.append((modify_image[i].permute(1, 2, 0).cpu().numpy() * 255).astype(np.uint8))
+ ret_labels.append(f'modify_image{i}; ')
+ if edit_mask is not None:
+ ret_images.append((edit_mask[i].permute(1, 2, 0).cpu().numpy() * 255).astype(np.uint8))
+ ret_labels.append(f'edit_mask{i}; ')
+
+ target_image = result.get('target_image', None)
+ target_mask = result.get('target_mask', None)
+ if target_image is not None:
+ ret_images.append((target_image.permute(1, 2, 0).cpu().numpy() * 255).astype(np.uint8))
+ ret_labels.append(f'target_image; ')
+ if target_mask is not None:
+ ret_images.append((target_mask.permute(1, 2, 0).cpu().numpy() * 255).astype(np.uint8))
+ ret_labels.append(f'target_mask; ')
+ teacher_image = result.get('image', None)
+ if teacher_image is not None:
+ ret_images.append((teacher_image.permute(1, 2, 0).cpu().numpy() * 255).astype(np.uint8))
+ ret_labels.append(f"teacher_image")
+ reconstruct_image = result.get('reconstruct_image', None)
+ if reconstruct_image is not None:
+ ret_images.append((reconstruct_image.permute(1, 2, 0).cpu().numpy() * 255).astype(np.uint8))
+ ret_labels.append(f"{result['instruction']}")
+ log_data.append(ret_images)
+ log_label.append(ret_labels)
+ return log_data, log_label
+ @property
+ def probe_data(self):
+ if not we.debug and self.mode == 'train':
+ batch_data = transfer_data_to_cuda(self.current_batch_data[self.mode])
+ self.eval_mode()
+ with torch.autocast(device_type='cuda',
+ enabled=self.use_amp,
+ dtype=self.dtype):
+ batch_data['log_num'] = self.log_train_num
+ batch_data.update(self.sample_args.get_lowercase_dict())
+ results = self.run_step_eval(batch_data)
+ self.train_mode()
+ log_data, log_label = self.save_results(results)
+ self.register_probe({
+ 'train_image':
+ ProbeData(log_data,
+ is_image=True,
+ build_html=True,
+ build_label=log_label)
+ })
+ self.register_probe({'train_label': log_label})
+ if self.probe_prompt:
+ self.eval_mode()
+ all_results = []
+ for prompt in self.probe_prompt:
+ with torch.autocast(device_type='cuda',
+ enabled=self.use_amp,
+ dtype=self.dtype):
+ batch_data = {
+ "prompt": [[prompt]],
+ "image": [torch.zeros(3, self.probe_hw[0], self.probe_hw[1])],
+ "image_mask": [torch.ones(1, self.probe_hw[0], self.probe_hw[1])],
+ "src_image_list": [[]],
+ "modify_image_list": [[]],
+ "src_mask_list": [[]],
+ "edit_id": [[]],
+ "height": self.probe_hw[0],
+ "width": self.probe_hw[1]
+ }
+ batch_data.update(self.sample_args.get_lowercase_dict())
+ results = self.run_step_eval(batch_data)
+ all_results.extend(results)
+ self.train_mode()
+ log_data, log_label = self.save_results(all_results)
+ self.register_probe({
+ 'probe_image':
+ ProbeData(log_data,
+ is_image=True,
+ build_html=True,
+ build_label=log_label)
+ })
+
+ return super(LatentDiffusionSolver, self).probe_data
diff --git a/ACE_plus/modules/checkpoint.py b/ACE_plus/modules/checkpoint.py
new file mode 100644
index 0000000000000000000000000000000000000000..8dcb4cfacec7721e6e96d9e331cf91034acc7d78
--- /dev/null
+++ b/ACE_plus/modules/checkpoint.py
@@ -0,0 +1,135 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Alibaba, Inc. and its affiliates.
+import os, torch
+import os.path as osp
+import warnings
+from collections import OrderedDict
+from safetensors.torch import save_file
+from scepter.modules.solver.hooks import CheckpointHook, BackwardHook
+from scepter.modules.solver.hooks.registry import HOOKS
+from scepter.modules.utils.config import dict_to_yaml
+from scepter.modules.utils.distribute import we
+from scepter.modules.utils.file_system import FS
+
+_DEFAULT_CHECKPOINT_PRIORITY = 300
+
+def convert_to_comfyui_lora(ori_sd, prefix = "lora_unet"):
+ new_ckpt = OrderedDict()
+ for k,v in ori_sd.items():
+ new_k = k.replace(".lora_A.0_SwiftLoRA.", ".lora_down.").replace(".lora_B.0_SwiftLoRA.", ".lora_up.")
+ new_k = prefix + "_" + new_k.split(".lora")[0].replace("model.", "").replace(".", "_") + ".lora" + new_k.split(".lora")[1]
+ alpha_k = new_k.split(".lora")[0] + ".alpha"
+ new_ckpt[new_k] = v
+ if "lora_up" in new_k:
+ alpha = v.shape[-1]
+ elif "lora_down" in new_k:
+ alpha = v.shape[0]
+ new_ckpt[alpha_k] = torch.tensor(float(alpha)).to(v)
+ return new_ckpt
+
+@HOOKS.register_class()
+class ACECheckpointHook(CheckpointHook):
+ """ Checkpoint resume or save hook.
+ Args:
+ interval (int): Save interval, by epoch.
+ save_best (bool): Save the best checkpoint by a metric key, default is False.
+ save_best_by (str): How to get the best the checkpoint by the metric key, default is ''.
+ + means the higher the best (default).
+ - means the lower the best.
+ E.g. +acc@1, -err@1, acc@5(same as +acc@5)
+ """
+
+ def __init__(self, cfg, logger=None):
+ super(ACECheckpointHook, self).__init__(cfg, logger=logger)
+
+ def after_iter(self, solver):
+ super().after_iter(solver)
+ if solver.total_iter != 0 and (
+ (solver.total_iter + 1) % self.interval == 0
+ or solver.total_iter == solver.max_steps - 1):
+ from swift import SwiftModel
+ if isinstance(solver.model, SwiftModel) or (
+ hasattr(solver.model, 'module')
+ and isinstance(solver.model.module, SwiftModel)):
+ save_path = osp.join(
+ solver.work_dir,
+ 'checkpoints/{}-{}'.format(self.save_name_prefix,
+ solver.total_iter + 1))
+ if we.rank == 0:
+ tuner_model = os.path.join(save_path, '0_SwiftLoRA', 'adapter_model.bin')
+ save_model = os.path.join(save_path, '0_SwiftLoRA', 'comfyui_model.safetensors')
+ if FS.exists(tuner_model):
+ with FS.get_from(tuner_model) as local_file:
+ swift_lora_sd = torch.load(local_file, weights_only=True)
+ safetensor_lora_sd = convert_to_comfyui_lora(swift_lora_sd)
+ with FS.put_to(save_model) as local_file:
+ save_file(safetensor_lora_sd, local_file)
+ @staticmethod
+ def get_config_template():
+ return dict_to_yaml('hook',
+ __class__.__name__,
+ ACECheckpointHook.para_dict,
+ set_name=True)
+
+@HOOKS.register_class()
+class ACEBackwardHook(BackwardHook):
+ def grad_clip(self, optimizer):
+ for params_group in optimizer.param_groups:
+ train_params = []
+ for param in params_group['params']:
+ if param.requires_grad:
+ train_params.append(param)
+ # print(len(train_params), self.gradient_clip)
+ torch.nn.utils.clip_grad_norm_(parameters=train_params,
+ max_norm=self.gradient_clip)
+
+ def after_iter(self, solver):
+ if solver.optimizer is not None and solver.is_train_mode:
+ if solver.loss is None:
+ warnings.warn(
+ 'solver.loss should not be None in train mode, remember to call solver._reduce_scalar()!'
+ )
+ return
+ if solver.scaler is not None:
+ solver.scaler.scale(solver.loss /
+ self.accumulate_step).backward()
+ self.current_step += 1
+ # Suppose profiler run after backward, so we need to set backward_prev_step
+ # as the previous one step before the backward step
+ if self.current_step % self.accumulate_step == 0:
+ solver.scaler.unscale_(solver.optimizer)
+ if self.gradient_clip > 0:
+ self.grad_clip(solver.optimizer)
+ self.profile(solver)
+ solver.scaler.step(solver.optimizer)
+ solver.scaler.update()
+ solver.optimizer.zero_grad()
+ else:
+ (solver.loss / self.accumulate_step).backward()
+ self.current_step += 1
+ # Suppose profiler run after backward, so we need to set backward_prev_step
+ # as the previous one step before the backward step
+ if self.current_step % self.accumulate_step == 0:
+ if self.gradient_clip > 0:
+ self.grad_clip(solver.optimizer)
+ self.profile(solver)
+ solver.optimizer.step()
+ solver.optimizer.zero_grad()
+ if solver.lr_scheduler:
+ if self.current_step % self.accumulate_step == 0:
+ solver.lr_scheduler.step()
+ if self.current_step % self.accumulate_step == 0:
+ setattr(solver, 'backward_step', True)
+ self.current_step = 0
+ else:
+ setattr(solver, 'backward_step', False)
+ solver.loss = None
+ if self.empty_cache_step > 0 and solver.total_iter % self.empty_cache_step == 0:
+ torch.cuda.empty_cache()
+
+ @staticmethod
+ def get_config_template():
+ return dict_to_yaml('hook',
+ __class__.__name__,
+ ACEBackwardHook.para_dict,
+ set_name=True)
diff --git a/ACE_plus/modules/embedder.py b/ACE_plus/modules/embedder.py
new file mode 100644
index 0000000000000000000000000000000000000000..f01346d60ee557dec0b96d7c7f3425968c1546e6
--- /dev/null
+++ b/ACE_plus/modules/embedder.py
@@ -0,0 +1,219 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Alibaba, Inc. and its affiliates.
+# This file contains code that is adapted from
+# https://github.com/black-forest-labs/flux.git
+import warnings
+
+import torch
+import torch.utils.dlpack
+import transformers
+from scepter.modules.model.embedder.base_embedder import BaseEmbedder
+from scepter.modules.model.registry import EMBEDDERS
+from scepter.modules.model.tokenizer.tokenizer_component import (
+ basic_clean, canonicalize, whitespace_clean)
+from scepter.modules.utils.config import dict_to_yaml
+from scepter.modules.utils.file_system import FS
+
+try:
+ from transformers import AutoTokenizer, T5EncoderModel
+except Exception as e:
+ warnings.warn(
+ f'Import transformers error, please deal with this problem: {e}')
+
+@EMBEDDERS.register_class()
+class ACEHFEmbedder(BaseEmbedder):
+ para_dict = {
+ "HF_MODEL_CLS": {
+ "value": None,
+ "description": "huggingface cls in transfomer"
+ },
+ "MODEL_PATH": {
+ "value": None,
+ "description": "model folder path"
+ },
+ "HF_TOKENIZER_CLS": {
+ "value": None,
+ "description": "huggingface cls in transfomer"
+ },
+
+ "TOKENIZER_PATH": {
+ "value": None,
+ "description": "tokenizer folder path"
+ },
+ "MAX_LENGTH": {
+ "value": 77,
+ "description": "max length of input"
+ },
+ "OUTPUT_KEY": {
+ "value": "last_hidden_state",
+ "description": "output key"
+ },
+ "D_TYPE": {
+ "value": "float",
+ "description": "dtype"
+ },
+ "BATCH_INFER": {
+ "value": False,
+ "description": "batch infer"
+ }
+ }
+ para_dict.update(BaseEmbedder.para_dict)
+ def __init__(self, cfg, logger=None):
+ super().__init__(cfg, logger=logger)
+ hf_model_cls = cfg.get('HF_MODEL_CLS', None)
+ model_path = cfg.get("MODEL_PATH", None)
+ hf_tokenizer_cls = cfg.get('HF_TOKENIZER_CLS', None)
+ tokenizer_path = cfg.get('TOKENIZER_PATH', None)
+ self.max_length = cfg.get('MAX_LENGTH', 77)
+ self.output_key = cfg.get("OUTPUT_KEY", "last_hidden_state")
+ self.d_type = cfg.get("D_TYPE", "float")
+ self.clean = cfg.get("CLEAN", "whitespace")
+ self.batch_infer = cfg.get("BATCH_INFER", False)
+ self.added_identifier = cfg.get('ADDED_IDENTIFIER', None)
+ torch_dtype = getattr(torch, self.d_type)
+
+ assert hf_model_cls is not None and hf_tokenizer_cls is not None
+ assert model_path is not None and tokenizer_path is not None
+ with FS.get_dir_to_local_dir(tokenizer_path, wait_finish=True) as local_path:
+ self.tokenizer = getattr(transformers, hf_tokenizer_cls).from_pretrained(local_path,
+ max_length = self.max_length,
+ torch_dtype = torch_dtype,
+ additional_special_tokens=self.added_identifier)
+
+ with FS.get_dir_to_local_dir(model_path, wait_finish=True) as local_path:
+ self.hf_module = getattr(transformers, hf_model_cls).from_pretrained(local_path, torch_dtype = torch_dtype)
+
+
+ self.hf_module = self.hf_module.eval().requires_grad_(False)
+
+ def forward(self, text: list[str], return_mask = False):
+ batch_encoding = self.tokenizer(
+ text,
+ truncation=True,
+ max_length=self.max_length,
+ return_length=False,
+ return_overflowing_tokens=False,
+ padding="max_length",
+ return_tensors="pt",
+ )
+
+ outputs = self.hf_module(
+ input_ids=batch_encoding["input_ids"].to(self.hf_module.device),
+ attention_mask=None,
+ output_hidden_states=False,
+ )
+ if return_mask:
+ return outputs[self.output_key], batch_encoding['attention_mask'].to(self.hf_module.device)
+ else:
+ return outputs[self.output_key], None
+
+ def encode(self, text, return_mask = False):
+ if isinstance(text, str):
+ text = [text]
+ if self.clean:
+ text = [self._clean(u) for u in text]
+ if not self.batch_infer:
+ cont, mask = [], []
+ for tt in text:
+ one_cont, one_mask = self([tt], return_mask=return_mask)
+ cont.append(one_cont)
+ mask.append(one_mask)
+ if return_mask:
+ return torch.cat(cont, dim=0), torch.cat(mask, dim=0)
+ else:
+ return torch.cat(cont, dim=0)
+ else:
+ ret_data = self(text, return_mask = return_mask)
+ if return_mask:
+ return ret_data
+ else:
+ return ret_data[0]
+
+ def encode_list(self, text_list, return_mask=True):
+ cont_list = []
+ mask_list = []
+ for pp in text_list:
+ cont = self.encode(pp, return_mask=return_mask)
+ cont_list.append(cont[0]) if return_mask else cont_list.append(cont)
+ mask_list.append(cont[1]) if return_mask else mask_list.append(None)
+ if return_mask:
+ return cont_list, mask_list
+ else:
+ return cont_list
+
+ def encode_list_of_list(self, text_list, return_mask=True):
+ cont_list = []
+ mask_list = []
+ for pp in text_list:
+ cont = self.encode_list(pp, return_mask=return_mask)
+ cont_list.append(cont[0]) if return_mask else cont_list.append(cont)
+ mask_list.append(cont[1]) if return_mask else mask_list.append(None)
+ if return_mask:
+ return cont_list, mask_list
+ else:
+ return cont_list
+
+ def _clean(self, text):
+ if self.clean == 'whitespace':
+ text = whitespace_clean(basic_clean(text))
+ elif self.clean == 'lower':
+ text = whitespace_clean(basic_clean(text)).lower()
+ elif self.clean == 'canonicalize':
+ text = canonicalize(basic_clean(text))
+ return text
+ @staticmethod
+ def get_config_template():
+ return dict_to_yaml('EMBEDDER',
+ __class__.__name__,
+ ACEHFEmbedder.para_dict,
+ set_name=True)
+
+@EMBEDDERS.register_class()
+class T5ACEPlusClipFluxEmbedder(BaseEmbedder):
+ """
+ Uses the OpenCLIP transformer encoder for text
+ """
+ para_dict = {
+ 'T5_MODEL': {},
+ 'CLIP_MODEL': {}
+ }
+
+ def __init__(self, cfg, logger=None):
+ super().__init__(cfg, logger=logger)
+ self.t5_model = EMBEDDERS.build(cfg.T5_MODEL, logger=logger)
+ self.clip_model = EMBEDDERS.build(cfg.CLIP_MODEL, logger=logger)
+
+ def encode(self, text, return_mask = False):
+ t5_embeds = self.t5_model.encode(text, return_mask = return_mask)
+ clip_embeds = self.clip_model.encode(text, return_mask = return_mask)
+ # change embedding strategy here
+ return {
+ 'context': t5_embeds,
+ 'y': clip_embeds,
+ }
+
+ def encode_list(self, text, return_mask = False):
+ t5_embeds = self.t5_model.encode_list(text, return_mask = return_mask)
+ clip_embeds = self.clip_model.encode_list(text, return_mask = return_mask)
+ # change embedding strategy here
+ return {
+ 'context': t5_embeds,
+ 'y': clip_embeds,
+ }
+
+ def encode_list_of_list(self, text, return_mask = False):
+ t5_embeds = self.t5_model.encode_list_of_list(text, return_mask = return_mask)
+ clip_embeds = self.clip_model.encode_list_of_list(text, return_mask = return_mask)
+ # change embedding strategy here
+ return {
+ 'context': t5_embeds,
+ 'y': clip_embeds,
+ }
+
+
+ @staticmethod
+ def get_config_template():
+ return dict_to_yaml('EMBEDDER',
+ __class__.__name__,
+ T5ACEPlusClipFluxEmbedder.para_dict,
+ set_name=True)
\ No newline at end of file
diff --git a/ACE_plus/modules/flux.py b/ACE_plus/modules/flux.py
new file mode 100644
index 0000000000000000000000000000000000000000..3c57fbee1d58de02c66af44445e8895462ddd306
--- /dev/null
+++ b/ACE_plus/modules/flux.py
@@ -0,0 +1,812 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Alibaba, Inc. and its affiliates.
+# This file contains code that is adapted from
+# https://github.com/black-forest-labs/flux.git
+import math
+import torch
+from torch import Tensor, nn
+from collections import OrderedDict
+from functools import partial
+from einops import rearrange, repeat
+from scepter.modules.model.base_model import BaseModel
+from scepter.modules.model.registry import BACKBONES
+from scepter.modules.utils.config import dict_to_yaml
+from scepter.modules.utils.distribute import we
+from scepter.modules.utils.file_system import FS
+from torch.utils.checkpoint import checkpoint_sequential
+from torch.nn.utils.rnn import pad_sequence
+from .layers import (DoubleStreamBlock, EmbedND, LastLayer, MLPEmbedder,
+ SingleStreamBlock, timestep_embedding)
+@BACKBONES.register_class()
+class Flux(BaseModel):
+ """
+ Transformer backbone Diffusion model with RoPE.
+ """
+ para_dict = {
+ 'IN_CHANNELS': {
+ 'value': 64,
+ 'description': "model's input channels."
+ },
+ 'OUT_CHANNELS': {
+ 'value': 64,
+ 'description': "model's output channels."
+ },
+ 'HIDDEN_SIZE': {
+ 'value': 1024,
+ 'description': "model's hidden size."
+ },
+ 'NUM_HEADS': {
+ 'value': 16,
+ 'description': 'number of heads in the transformer.'
+ },
+ 'AXES_DIM': {
+ 'value': [16, 56, 56],
+ 'description': 'dimensions of the axes of the positional encoding.'
+ },
+ 'THETA': {
+ 'value': 10_000,
+ 'description': 'theta for positional encoding.'
+ },
+ 'VEC_IN_DIM': {
+ 'value': 768,
+ 'description': 'dimension of the vector input.'
+ },
+ 'GUIDANCE_EMBED': {
+ 'value': False,
+ 'description': 'whether to use guidance embedding.'
+ },
+ 'CONTEXT_IN_DIM': {
+ 'value': 4096,
+ 'description': 'dimension of the context input.'
+ },
+ 'MLP_RATIO': {
+ 'value': 4.0,
+ 'description': 'ratio of mlp hidden size to hidden size.'
+ },
+ 'QKV_BIAS': {
+ 'value': True,
+ 'description': 'whether to use bias in qkv projection.'
+ },
+ 'DEPTH': {
+ 'value': 19,
+ 'description': 'number of transformer blocks.'
+ },
+ 'DEPTH_SINGLE_BLOCKS': {
+ 'value':
+ 38,
+ 'description':
+ 'number of transformer blocks in the single stream block.'
+ },
+ 'USE_GRAD_CHECKPOINT': {
+ 'value': False,
+ 'description': 'whether to use gradient checkpointing.'
+ }
+ }
+
+ def __init__(self, cfg, logger=None):
+ super().__init__(cfg, logger=logger)
+ self.in_channels = cfg.IN_CHANNELS
+ self.out_channels = cfg.get('OUT_CHANNELS', self.in_channels)
+ hidden_size = cfg.get('HIDDEN_SIZE', 1024)
+ num_heads = cfg.get('NUM_HEADS', 16)
+ axes_dim = cfg.AXES_DIM
+ theta = cfg.THETA
+ vec_in_dim = cfg.VEC_IN_DIM
+ self.guidance_embed = cfg.GUIDANCE_EMBED
+ context_in_dim = cfg.CONTEXT_IN_DIM
+ mlp_ratio = cfg.MLP_RATIO
+ qkv_bias = cfg.QKV_BIAS
+ depth = cfg.DEPTH
+ depth_single_blocks = cfg.DEPTH_SINGLE_BLOCKS
+ self.use_grad_checkpoint = cfg.get("USE_GRAD_CHECKPOINT", False)
+ self.attn_backend = cfg.get("ATTN_BACKEND", "pytorch")
+ self.cache_pretrain_model = cfg.get("CACHE_PRETRAIN_MODEL", False)
+ self.lora_model = cfg.get("DIFFUSERS_LORA_MODEL", None)
+ self.comfyui_lora_model = cfg.get("COMFYUI_LORA_MODEL", None)
+ self.swift_lora_model = cfg.get("SWIFT_LORA_MODEL", None)
+ self.blackforest_lora_model = cfg.get("BLACKFOREST_LORA_MODEL", None)
+ self.pretrain_adapter = cfg.get("PRETRAIN_ADAPTER", None)
+
+ if hidden_size % num_heads != 0:
+ raise ValueError(
+ f"Hidden size {hidden_size} must be divisible by num_heads {num_heads}"
+ )
+ pe_dim = hidden_size // num_heads
+ if sum(axes_dim) != pe_dim:
+ raise ValueError(
+ f"Got {axes_dim} but expected positional dim {pe_dim}")
+ self.hidden_size = hidden_size
+ self.num_heads = num_heads
+ self.pe_embedder = EmbedND(dim=pe_dim, theta=theta, axes_dim=axes_dim)
+ self.img_in = nn.Linear(self.in_channels, self.hidden_size, bias=True)
+ self.time_in = MLPEmbedder(in_dim=256, hidden_dim=self.hidden_size)
+ self.vector_in = MLPEmbedder(vec_in_dim, self.hidden_size)
+ self.guidance_in = (MLPEmbedder(in_dim=256,
+ hidden_dim=self.hidden_size)
+ if self.guidance_embed else nn.Identity())
+ self.txt_in = nn.Linear(context_in_dim, self.hidden_size)
+
+ self.double_blocks = nn.ModuleList(
+ [
+ DoubleStreamBlock(
+ self.hidden_size,
+ self.num_heads,
+ mlp_ratio=mlp_ratio,
+ qkv_bias=qkv_bias,
+ backend=self.attn_backend
+ )
+ for _ in range(depth)
+ ]
+ )
+
+ self.single_blocks = nn.ModuleList(
+ [
+ SingleStreamBlock(self.hidden_size, self.num_heads, mlp_ratio=mlp_ratio, backend=self.attn_backend)
+ for _ in range(depth_single_blocks)
+ ]
+ )
+
+ self.final_layer = LastLayer(self.hidden_size, 1, self.out_channels)
+
+ def prepare_input(self, x, context, y, x_shape=None):
+ # x.shape [6, 16, 16, 16] target is [6, 16, 768, 1360]
+ bs, c, h, w = x.shape
+ x = rearrange(x, "b c (h ph) (w pw) -> b (h w) (c ph pw)", ph=2, pw=2)
+ x_id = torch.zeros(h // 2, w // 2, 3)
+ x_id[..., 1] = x_id[..., 1] + torch.arange(h // 2)[:, None]
+ x_id[..., 2] = x_id[..., 2] + torch.arange(w // 2)[None, :]
+ x_ids = repeat(x_id, "h w c -> b (h w) c", b=bs)
+ txt_ids = torch.zeros(bs, context.shape[1], 3)
+ return x, x_ids.to(x), context.to(x), txt_ids.to(x), y.to(x), h, w
+
+ def unpack(self, x: Tensor, height: int, width: int) -> Tensor:
+ return rearrange(
+ x,
+ "b (h w) (c ph pw) -> b c (h ph) (w pw)",
+ h=math.ceil(height/2),
+ w=math.ceil(width/2),
+ ph=2,
+ pw=2,
+ )
+
+ def merge_diffuser_lora(self, ori_sd, lora_sd, scale=1.0):
+ key_map = {
+ "single_blocks.{}.linear1.weight": {"key_list": [
+ ["transformer.single_transformer_blocks.{}.attn.to_q.lora_A.weight",
+ "transformer.single_transformer_blocks.{}.attn.to_q.lora_B.weight", [0, 3072]],
+ ["transformer.single_transformer_blocks.{}.attn.to_k.lora_A.weight",
+ "transformer.single_transformer_blocks.{}.attn.to_k.lora_B.weight", [3072, 6144]],
+ ["transformer.single_transformer_blocks.{}.attn.to_v.lora_A.weight",
+ "transformer.single_transformer_blocks.{}.attn.to_v.lora_B.weight", [6144, 9216]],
+ ["transformer.single_transformer_blocks.{}.proj_mlp.lora_A.weight",
+ "transformer.single_transformer_blocks.{}.proj_mlp.lora_B.weight", [9216, 21504]]
+ ], "num": 38},
+ "single_blocks.{}.modulation.lin.weight": {"key_list": [
+ ["transformer.single_transformer_blocks.{}.norm.linear.lora_A.weight",
+ "transformer.single_transformer_blocks.{}.norm.linear.lora_B.weight", [0, 9216]],
+ ], "num": 38},
+ "single_blocks.{}.linear2.weight": {"key_list": [
+ ["transformer.single_transformer_blocks.{}.proj_out.lora_A.weight",
+ "transformer.single_transformer_blocks.{}.proj_out.lora_B.weight", [0, 3072]],
+ ], "num": 38},
+ "double_blocks.{}.txt_attn.qkv.weight": {"key_list": [
+ ["transformer.transformer_blocks.{}.attn.add_q_proj.lora_A.weight",
+ "transformer.transformer_blocks.{}.attn.add_q_proj.lora_B.weight", [0, 3072]],
+ ["transformer.transformer_blocks.{}.attn.add_k_proj.lora_A.weight",
+ "transformer.transformer_blocks.{}.attn.add_k_proj.lora_B.weight", [3072, 6144]],
+ ["transformer.transformer_blocks.{}.attn.add_v_proj.lora_A.weight",
+ "transformer.transformer_blocks.{}.attn.add_v_proj.lora_B.weight", [6144, 9216]],
+ ], "num": 19},
+ "double_blocks.{}.img_attn.qkv.weight": {"key_list": [
+ ["transformer.transformer_blocks.{}.attn.to_q.lora_A.weight",
+ "transformer.transformer_blocks.{}.attn.to_q.lora_B.weight", [0, 3072]],
+ ["transformer.transformer_blocks.{}.attn.to_k.lora_A.weight",
+ "transformer.transformer_blocks.{}.attn.to_k.lora_B.weight", [3072, 6144]],
+ ["transformer.transformer_blocks.{}.attn.to_v.lora_A.weight",
+ "transformer.transformer_blocks.{}.attn.to_v.lora_B.weight", [6144, 9216]],
+ ], "num": 19},
+ "double_blocks.{}.img_attn.proj.weight": {"key_list": [
+ ["transformer.transformer_blocks.{}.attn.to_out.0.lora_A.weight",
+ "transformer.transformer_blocks.{}.attn.to_out.0.lora_B.weight", [0, 3072]]
+ ], "num": 19},
+ "double_blocks.{}.txt_attn.proj.weight": {"key_list": [
+ ["transformer.transformer_blocks.{}.attn.to_add_out.lora_A.weight",
+ "transformer.transformer_blocks.{}.attn.to_add_out.lora_B.weight", [0, 3072]]
+ ], "num": 19},
+ "double_blocks.{}.img_mlp.0.weight": {"key_list": [
+ ["transformer.transformer_blocks.{}.ff.net.0.proj.lora_A.weight",
+ "transformer.transformer_blocks.{}.ff.net.0.proj.lora_B.weight", [0, 12288]]
+ ], "num": 19},
+ "double_blocks.{}.img_mlp.2.weight": {"key_list": [
+ ["transformer.transformer_blocks.{}.ff.net.2.lora_A.weight",
+ "transformer.transformer_blocks.{}.ff.net.2.lora_B.weight", [0, 3072]]
+ ], "num": 19},
+ "double_blocks.{}.txt_mlp.0.weight": {"key_list": [
+ ["transformer.transformer_blocks.{}.ff_context.net.0.proj.lora_A.weight",
+ "transformer.transformer_blocks.{}.ff_context.net.0.proj.lora_B.weight", [0, 12288]]
+ ], "num": 19},
+ "double_blocks.{}.txt_mlp.2.weight": {"key_list": [
+ ["transformer.transformer_blocks.{}.ff_context.net.2.lora_A.weight",
+ "transformer.transformer_blocks.{}.ff_context.net.2.lora_B.weight", [0, 3072]]
+ ], "num": 19},
+ "double_blocks.{}.img_mod.lin.weight": {"key_list": [
+ ["transformer.transformer_blocks.{}.norm1.linear.lora_A.weight",
+ "transformer.transformer_blocks.{}.norm1.linear.lora_B.weight", [0, 18432]]
+ ], "num": 19},
+ "double_blocks.{}.txt_mod.lin.weight": {"key_list": [
+ ["transformer.transformer_blocks.{}.norm1_context.linear.lora_A.weight",
+ "transformer.transformer_blocks.{}.norm1_context.linear.lora_B.weight", [0, 18432]]
+ ], "num": 19}
+ }
+ cover_lora_keys = set()
+ cover_ori_keys = set()
+ for k, v in key_map.items():
+ key_list = v["key_list"]
+ block_num = v["num"]
+ for block_id in range(block_num):
+ for k_list in key_list:
+ if k_list[0].format(block_id) in lora_sd and k_list[1].format(block_id) in lora_sd:
+ cover_lora_keys.add(k_list[0].format(block_id))
+ cover_lora_keys.add(k_list[1].format(block_id))
+ current_weight = torch.matmul(lora_sd[k_list[0].format(block_id)].permute(1, 0),
+ lora_sd[k_list[1].format(block_id)].permute(1, 0)).permute(1, 0)
+ ori_sd[k.format(block_id)][k_list[2][0]:k_list[2][1], ...] += scale * current_weight
+ cover_ori_keys.add(k.format(block_id))
+ # lora_sd.pop(k_list[0].format(block_id))
+ # lora_sd.pop(k_list[1].format(block_id))
+ self.logger.info(f"merge_blackforest_lora loads lora'parameters lora-paras: \n"
+ f"cover-{len(cover_lora_keys)} vs total {len(lora_sd)} \n"
+ f"cover ori-{len(cover_ori_keys)} vs total {len(ori_sd)}")
+ return ori_sd
+
+ def merge_swift_lora(self, ori_sd, lora_sd, scale = 1.0):
+ have_lora_keys = {}
+ for k, v in lora_sd.items():
+ k = k[len("model."):] if k.startswith("model.") else k
+ ori_key = k.split("lora")[0] + "weight"
+ if ori_key not in ori_sd:
+ raise f"{ori_key} should in the original statedict"
+ if ori_key not in have_lora_keys:
+ have_lora_keys[ori_key] = {}
+ if "lora_A" in k:
+ have_lora_keys[ori_key]["lora_A"] = v
+ elif "lora_B" in k:
+ have_lora_keys[ori_key]["lora_B"] = v
+ else:
+ raise NotImplementedError
+ self.logger.info(f"merge_swift_lora loads lora'parameters {len(have_lora_keys)}")
+ for key, v in have_lora_keys.items():
+ current_weight = torch.matmul(v["lora_A"].permute(1, 0), v["lora_B"].permute(1, 0)).permute(1, 0)
+ ori_sd[key] += scale * current_weight
+ return ori_sd
+
+
+ def merge_blackforest_lora(self, ori_sd, lora_sd, scale = 1.0):
+ have_lora_keys = {}
+ cover_lora_keys = set()
+ cover_ori_keys = set()
+ for k, v in lora_sd.items():
+ if "lora" in k:
+ ori_key = k.split("lora")[0] + "weight"
+ if ori_key not in ori_sd:
+ raise f"{ori_key} should in the original statedict"
+ if ori_key not in have_lora_keys:
+ have_lora_keys[ori_key] = {}
+ if "lora_A" in k:
+ have_lora_keys[ori_key]["lora_A"] = v
+ cover_lora_keys.add(k)
+ cover_ori_keys.add(ori_key)
+ elif "lora_B" in k:
+ have_lora_keys[ori_key]["lora_B"] = v
+ cover_lora_keys.add(k)
+ cover_ori_keys.add(ori_key)
+ else:
+ if k in ori_sd:
+ ori_sd[k] = v
+ cover_lora_keys.add(k)
+ cover_ori_keys.add(k)
+ else:
+ print("unsurpport keys: ", k)
+ self.logger.info(f"merge_blackforest_lora loads lora'parameters lora-paras: \n"
+ f"cover-{len(cover_lora_keys)} vs total {len(lora_sd)} \n"
+ f"cover ori-{len(cover_ori_keys)} vs total {len(ori_sd)}")
+
+ for key, v in have_lora_keys.items():
+ current_weight = torch.matmul(v["lora_A"].permute(1, 0), v["lora_B"].permute(1, 0)).permute(1, 0)
+ # print(key, ori_sd[key].shape, current_weight.shape)
+ ori_sd[key] += scale * current_weight
+ return ori_sd
+
+ def merge_comfyui_lora(self, ori_sd, lora_sd, scale = 1.0):
+ ori_key_map = {key.replace("_", ".") : key for key in ori_sd.keys()}
+ parse_ckpt = OrderedDict()
+ for k, v in lora_sd.items():
+ if "alpha" in k:
+ continue
+ k = k.replace("lora_unet_", "").replace("_", ".")
+ map_k = ori_key_map[k.split(".lora")[0] + ".weight"]
+ if map_k not in parse_ckpt:
+ parse_ckpt[map_k] = {}
+ if "lora.up" in k:
+ parse_ckpt[map_k]["lora_up"] = v
+ elif "lora.down" in k:
+ parse_ckpt[map_k]["lora_down"] = v
+ if self.cache_pretrain_model:
+ self.lora_dict[self.comfyui_lora_model] = {}
+
+ for key, v in parse_ckpt.items():
+ current_weight = torch.matmul(v["lora_down"].permute(1, 0), v["lora_up"].permute(1, 0)).permute(1, 0)
+ self.lora_dict[self.comfyui_lora_model] = current_weight
+ ori_sd[key] += scale * current_weight
+ return ori_sd
+
+ def easy_lora_merge(self, ori_sd, lora_sd, scale = 1.0):
+ for key, v in lora_sd.items():
+ ori_sd[key] += scale * v
+ return ori_sd
+
+ def load_pretrained_model(self, pretrained_model, lora_scale = 1.0):
+ if next(self.parameters()).device.type == 'meta':
+ map_location = torch.device(we.device_id)
+ safe_device = we.device_id
+ else:
+ map_location = "cpu"
+ safe_device = "cpu"
+
+ if pretrained_model is not None:
+ if not hasattr(self, "ckpt"):
+ with FS.get_from(pretrained_model, wait_finish=True) as local_model:
+ if local_model.endswith('safetensors'):
+ from safetensors.torch import load_file as load_safetensors
+ ckpt = load_safetensors(local_model, device=safe_device)
+ else:
+ ckpt = torch.load(local_model, map_location=map_location, weights_only=True)
+ if "state_dict" in ckpt:
+ ckpt = ckpt["state_dict"]
+ if "model" in ckpt:
+ ckpt = ckpt["model"]["model"]
+ if self.cache_pretrain_model:
+ self.ckpt = ckpt
+ self.lora_dict = {}
+ else:
+ ckpt = self.ckpt
+
+ new_ckpt = OrderedDict()
+ for k, v in ckpt.items():
+ if k in ("img_in.weight"):
+ model_p = self.state_dict()[k]
+ if v.shape != model_p.shape:
+ expanded_state_dict_weight = torch.zeros_like(model_p, device=v.device)
+ slices = tuple(slice(0, dim) for dim in v.shape)
+ expanded_state_dict_weight[slices] = v
+ new_ckpt[k] = expanded_state_dict_weight
+ else:
+ new_ckpt[k] = v
+ else:
+ new_ckpt[k] = v
+
+
+ if self.lora_model is not None:
+ with FS.get_from(self.lora_model, wait_finish=True) as local_model:
+ if local_model.endswith('safetensors'):
+ from safetensors.torch import load_file as load_safetensors
+ lora_sd = load_safetensors(local_model, device=safe_device)
+ else:
+ lora_sd = torch.load(local_model, map_location=map_location, weights_only=True)
+ new_ckpt = self.merge_diffuser_lora(new_ckpt, lora_sd, scale=lora_scale)
+ if self.swift_lora_model is not None:
+ if not isinstance(self.swift_lora_model, list):
+ self.swift_lora_model = [(self.swift_lora_model, 1.0)]
+ for lora_model in self.swift_lora_model:
+ if isinstance(lora_model, str):
+ lora_model = (lora_model, 1.0/len(self.swift_lora_model))
+ print(lora_model)
+ self.logger.info(f"load swift lora model: {lora_model}")
+ with FS.get_from(lora_model[0], wait_finish=True) as local_model:
+ if local_model.endswith('safetensors'):
+ from safetensors.torch import load_file as load_safetensors
+ lora_sd = load_safetensors(local_model, device=safe_device)
+ else:
+ lora_sd = torch.load(local_model, map_location=map_location, weights_only=True)
+ new_ckpt = self.merge_swift_lora(new_ckpt, lora_sd, scale=lora_model[1])
+
+ if self.blackforest_lora_model is not None:
+ with FS.get_from(self.blackforest_lora_model, wait_finish=True) as local_model:
+ if local_model.endswith('safetensors'):
+ from safetensors.torch import load_file as load_safetensors
+ lora_sd = load_safetensors(local_model, device=safe_device)
+ else:
+ lora_sd = torch.load(local_model, map_location=map_location, weights_only=True)
+ new_ckpt = self.merge_blackforest_lora(new_ckpt, lora_sd, scale=lora_scale)
+
+ if self.comfyui_lora_model is not None:
+ if hasattr(self, "current_lora") and self.current_lora == self.comfyui_lora_model:
+ return
+ if hasattr(self, "lora_dict") and self.comfyui_lora_model in self.lora_dict:
+ new_ckpt = self.easy_lora_merge(new_ckpt, self.lora_dict[self.comfyui_lora_model], scale=lora_scale)
+ else:
+ with FS.get_from(self.comfyui_lora_model, wait_finish=True) as local_model:
+ if local_model.endswith('safetensors'):
+ from safetensors.torch import load_file as load_safetensors
+ lora_sd = load_safetensors(local_model, device=safe_device)
+ else:
+ lora_sd = torch.load(local_model, map_location=map_location, weights_only=True)
+ new_ckpt = self.merge_comfyui_lora(new_ckpt, lora_sd, scale=lora_scale)
+ if self.comfyui_lora_model:
+ self.current_lora = self.comfyui_lora_model
+
+
+ adapter_ckpt = {}
+ if self.pretrain_adapter is not None:
+ with FS.get_from(self.pretrain_adapter, wait_finish=True) as local_adapter:
+ if local_adapter.endswith('safetensors'):
+ from safetensors.torch import load_file as load_safetensors
+ adapter_ckpt = load_safetensors(local_adapter, device=safe_device)
+ else:
+ adapter_ckpt = torch.load(local_adapter, map_location=map_location, weights_only=True)
+ new_ckpt.update(adapter_ckpt)
+
+ missing, unexpected = self.load_state_dict(new_ckpt, strict=False, assign=True)
+ self.logger.info(
+ f'Restored from {pretrained_model} with {len(missing)} missing and {len(unexpected)} unexpected keys'
+ )
+ if len(missing) > 0:
+ self.logger.info(f'Missing Keys:\n {missing}')
+ if len(unexpected) > 0:
+ self.logger.info(f'\nUnexpected Keys:\n {unexpected}')
+
+ def forward(
+ self,
+ x: Tensor,
+ t: Tensor,
+ cond: dict = {},
+ guidance: Tensor | None = None,
+ gc_seg: int = 0
+ ) -> Tensor:
+ x, x_ids, txt, txt_ids, y, h, w = self.prepare_input(x, cond["context"], cond["y"])
+ # running on sequences img
+ x = self.img_in(x)
+ vec = self.time_in(timestep_embedding(t, 256))
+ if self.guidance_embed:
+ if guidance is None:
+ raise ValueError("Didn't get guidance strength for guidance distilled model.")
+ vec = vec + self.guidance_in(timestep_embedding(guidance, 256))
+ vec = vec + self.vector_in(y)
+ txt = self.txt_in(txt)
+ ids = torch.cat((txt_ids, x_ids), dim=1)
+ pe = self.pe_embedder(ids)
+ kwargs = dict(
+ vec=vec,
+ pe=pe,
+ txt_length=txt.shape[1],
+ )
+ x = torch.cat((txt, x), 1)
+ if self.use_grad_checkpoint and gc_seg >= 0:
+ x = checkpoint_sequential(
+ functions=[partial(block, **kwargs) for block in self.double_blocks],
+ segments=gc_seg if gc_seg > 0 else len(self.double_blocks),
+ input=x,
+ use_reentrant=False
+ )
+ else:
+ for block in self.double_blocks:
+ x = block(x, **kwargs)
+
+ kwargs = dict(
+ vec=vec,
+ pe=pe,
+ )
+
+ if self.use_grad_checkpoint and gc_seg >= 0:
+ x = checkpoint_sequential(
+ functions=[partial(block, **kwargs) for block in self.single_blocks],
+ segments=gc_seg if gc_seg > 0 else len(self.single_blocks),
+ input=x,
+ use_reentrant=False
+ )
+ else:
+ for block in self.single_blocks:
+ x = block(x, **kwargs)
+ x = x[:, txt.shape[1] :, ...]
+ x = self.final_layer(x, vec) # (N, T, patch_size ** 2 * out_channels) 6 64 64
+ x = self.unpack(x, h, w)
+ return x
+
+ @staticmethod
+ def get_config_template():
+ return dict_to_yaml('BACKBONE',
+ __class__.__name__,
+ Flux.para_dict,
+ set_name=True)
+@BACKBONES.register_class()
+class FluxMR(Flux):
+ def prepare_input(self, x, cond):
+ if isinstance(cond['context'], list):
+ context, y = torch.cat(cond["context"], dim=0).to(x), torch.cat(cond["y"], dim=0).to(x)
+ else:
+ context, y = cond['context'].to(x), cond['y'].to(x)
+ batch_frames, batch_frames_ids = [], []
+ for ix, shape in zip(x, cond["x_shapes"]):
+ # unpack image from sequence
+ ix = ix[:, :shape[0] * shape[1]].view(-1, shape[0], shape[1])
+ c, h, w = ix.shape
+ ix = rearrange(ix, "c (h ph) (w pw) -> (h w) (c ph pw)", ph=2, pw=2)
+ ix_id = torch.zeros(h // 2, w // 2, 3)
+ ix_id[..., 1] = ix_id[..., 1] + torch.arange(h // 2)[:, None]
+ ix_id[..., 2] = ix_id[..., 2] + torch.arange(w // 2)[None, :]
+ ix_id = rearrange(ix_id, "h w c -> (h w) c")
+ batch_frames.append([ix])
+ batch_frames_ids.append([ix_id])
+
+ x_list, x_id_list, mask_x_list, x_seq_length = [], [], [], []
+ for frames, frame_ids in zip(batch_frames, batch_frames_ids):
+ proj_frames = []
+ for idx, one_frame in enumerate(frames):
+ one_frame = self.img_in(one_frame)
+ proj_frames.append(one_frame)
+ ix = torch.cat(proj_frames, dim=0)
+ if_id = torch.cat(frame_ids, dim=0)
+ x_list.append(ix)
+ x_id_list.append(if_id)
+ mask_x_list.append(torch.ones(ix.shape[0]).to(ix.device, non_blocking=True).bool())
+ x_seq_length.append(ix.shape[0])
+ x = pad_sequence(tuple(x_list), batch_first=True)
+ x_ids = pad_sequence(tuple(x_id_list), batch_first=True).to(x) # [b,pad_seq,2] pad (0.,0.) at dim2
+ mask_x = pad_sequence(tuple(mask_x_list), batch_first=True)
+
+ txt = self.txt_in(context)
+ txt_ids = torch.zeros(context.shape[0], context.shape[1], 3).to(x)
+ mask_txt = torch.ones(context.shape[0], context.shape[1]).to(x.device, non_blocking=True).bool()
+
+ return x, x_ids, txt, txt_ids, y, mask_x, mask_txt, x_seq_length
+
+ def unpack(self, x: Tensor, cond: dict = None, x_seq_length: list = None) -> Tensor:
+ x_list = []
+ image_shapes = cond["x_shapes"]
+ for u, shape, seq_length in zip(x, image_shapes, x_seq_length):
+ height, width = shape
+ h, w = math.ceil(height / 2), math.ceil(width / 2)
+ u = rearrange(
+ u[seq_length-h*w:seq_length, ...],
+ "(h w) (c ph pw) -> (h ph w pw) c",
+ h=h,
+ w=w,
+ ph=2,
+ pw=2,
+ )
+ x_list.append(u)
+ x = pad_sequence(tuple(x_list), batch_first=True).permute(0, 2, 1)
+ return x
+
+ def forward(
+ self,
+ x: Tensor,
+ t: Tensor,
+ cond: dict = {},
+ guidance: Tensor | None = None,
+ gc_seg: int = 0,
+ **kwargs
+ ) -> Tensor:
+ x, x_ids, txt, txt_ids, y, mask_x, mask_txt, seq_length_list = self.prepare_input(x, cond)
+ # running on sequences img
+ vec = self.time_in(timestep_embedding(t, 256))
+ if self.guidance_embed and guidance[-1] >= 0:
+ if guidance is None:
+ raise ValueError("Didn't get guidance strength for guidance distilled model.")
+ vec = vec + self.guidance_in(timestep_embedding(guidance, 256))
+ vec = vec + self.vector_in(y)
+ ids = torch.cat((txt_ids, x_ids), dim=1)
+ pe = self.pe_embedder(ids)
+
+ mask_aside = torch.cat((mask_txt, mask_x), dim=1)
+ mask = mask_aside[:, None, :] * mask_aside[:, :, None]
+
+ kwargs = dict(
+ vec=vec,
+ pe=pe,
+ mask=mask,
+ txt_length = txt.shape[1],
+ )
+ x = torch.cat((txt, x), 1)
+ if self.use_grad_checkpoint and gc_seg >= 0:
+ x = checkpoint_sequential(
+ functions=[partial(block, **kwargs) for block in self.double_blocks],
+ segments=gc_seg if gc_seg > 0 else len(self.double_blocks),
+ input=x,
+ use_reentrant=False
+ )
+ else:
+ for block in self.double_blocks:
+ x = block(x, **kwargs)
+
+ kwargs = dict(
+ vec=vec,
+ pe=pe,
+ mask=mask,
+ )
+
+ if self.use_grad_checkpoint and gc_seg >= 0:
+ x = checkpoint_sequential(
+ functions=[partial(block, **kwargs) for block in self.single_blocks],
+ segments=gc_seg if gc_seg > 0 else len(self.single_blocks),
+ input=x,
+ use_reentrant=False
+ )
+ else:
+ for block in self.single_blocks:
+ x = block(x, **kwargs)
+ x = x[:, txt.shape[1]:, ...]
+ x = self.final_layer(x, vec) # (N, T, patch_size ** 2 * out_channels) 6 64 64
+ x = self.unpack(x, cond, seq_length_list)
+ return x
+
+ @staticmethod
+ def get_config_template():
+ return dict_to_yaml('MODEL',
+ __class__.__name__,
+ FluxMR.para_dict,
+ set_name=True)
+@BACKBONES.register_class()
+class FluxMRACEPlus(FluxMR):
+ def __init__(self, cfg, logger = None):
+ super().__init__(cfg, logger)
+ def prepare_input(self, x, cond):
+ context, y = cond["context"], cond["y"]
+ batch_frames, batch_frames_ids = [], []
+ for ix, shape, imask, ie, ie_mask in zip(x,
+ cond['x_shapes'],
+ cond['x_mask'],
+ cond['edit'],
+ cond['edit_mask']):
+ # unpack image from sequence
+ ix = ix[:, :shape[0] * shape[1]].view(-1, shape[0], shape[1])
+ imask = torch.ones_like(
+ ix[[0], :, :]) if imask is None else imask.squeeze(0)
+ if len(ie) > 0:
+ ie = [iie.squeeze(0) for iie in ie]
+ ie_mask = [
+ torch.ones(
+ (ix.shape[0] * 4, ix.shape[1],
+ ix.shape[2])) if iime is None else iime.squeeze(0)
+ for iime in ie_mask
+ ]
+ ie = torch.cat(ie, dim=-1)
+ ie_mask = torch.cat(ie_mask, dim=-1)
+ else:
+ ie, ie_mask = torch.zeros_like(ix).to(x), torch.ones_like(
+ imask).to(x),
+ ix = torch.cat([ix, ie, ie_mask], dim=0)
+ c, h, w = ix.shape
+ ix = rearrange(ix,
+ 'c (h ph) (w pw) -> (h w) (c ph pw)',
+ ph=2,
+ pw=2)
+ ix_id = torch.zeros(h // 2, w // 2, 3)
+ ix_id[..., 1] = ix_id[..., 1] + torch.arange(h // 2)[:, None]
+ ix_id[..., 2] = ix_id[..., 2] + torch.arange(w // 2)[None, :]
+ ix_id = rearrange(ix_id, 'h w c -> (h w) c')
+ batch_frames.append([ix])
+ batch_frames_ids.append([ix_id])
+ x_list, x_id_list, mask_x_list, x_seq_length = [], [], [], []
+ for frames, frame_ids in zip(batch_frames, batch_frames_ids):
+ proj_frames = []
+ for idx, one_frame in enumerate(frames):
+ one_frame = self.img_in(one_frame)
+ proj_frames.append(one_frame)
+ ix = torch.cat(proj_frames, dim=0)
+ if_id = torch.cat(frame_ids, dim=0)
+ x_list.append(ix)
+ x_id_list.append(if_id)
+ mask_x_list.append(torch.ones(ix.shape[0]).to(ix.device, non_blocking=True).bool())
+ x_seq_length.append(ix.shape[0])
+ # if len(x_list) < 1: import pdb;pdb.set_trace()
+ x = pad_sequence(tuple(x_list), batch_first=True)
+ x_ids = pad_sequence(tuple(x_id_list), batch_first=True).to(x) # [b,pad_seq,2] pad (0.,0.) at dim2
+ mask_x = pad_sequence(tuple(mask_x_list), batch_first=True)
+ if isinstance(context, list):
+ txt_list, mask_txt_list, y_list = [], [], []
+ for sample_id, (ctx, yy) in enumerate(zip(context, y)):
+ txt_list.append(self.txt_in(ctx.to(x)))
+ mask_txt_list.append(torch.ones(txt_list[-1].shape[0]).to(ctx.device, non_blocking=True).bool())
+ y_list.append(yy.to(x))
+ txt = pad_sequence(tuple(txt_list), batch_first=True)
+ txt_ids = torch.zeros(txt.shape[0], txt.shape[1], 3).to(x)
+ mask_txt = pad_sequence(tuple(mask_txt_list), batch_first=True)
+ y = torch.cat(y_list, dim=0)
+ assert y.ndim == 2 and txt.ndim == 3
+ else:
+ txt = self.txt_in(context)
+ txt_ids = torch.zeros(context.shape[0], context.shape[1], 3).to(x)
+ mask_txt = torch.ones(context.shape[0], context.shape[1]).to(x.device, non_blocking=True).bool()
+ return x, x_ids, txt, txt_ids, y, mask_x, mask_txt, x_seq_length
+
+ @staticmethod
+ def get_config_template():
+ return dict_to_yaml('MODEL',
+ __class__.__name__,
+ FluxMRACEPlus.para_dict,
+ set_name=True)
+
+@BACKBONES.register_class()
+class FluxMRModiACEPlus(FluxMR):
+ def __init__(self, cfg, logger = None):
+ super().__init__(cfg, logger)
+ def prepare_input(self, x, cond):
+ context, y = cond["context"], cond["y"]
+ batch_frames, batch_frames_ids = [], []
+ for ix, shape, imask, ie, im, ie_mask in zip(x,
+ cond['x_shapes'],
+ cond['x_mask'],
+ cond['edit'],
+ cond['modify'],
+ cond['edit_mask']):
+ # unpack image from sequence
+ ix = ix[:, :shape[0] * shape[1]].view(-1, shape[0], shape[1])
+ imask = torch.ones_like(
+ ix[[0], :, :]) if imask is None else imask.squeeze(0)
+ if len(ie) > 0:
+ ie = [iie.squeeze(0) for iie in ie]
+ im = [iim.squeeze(0) for iim in im]
+ ie_mask = [
+ torch.ones(
+ (ix.shape[0] * 4, ix.shape[1],
+ ix.shape[2])) if iime is None else iime.squeeze(0)
+ for iime in ie_mask
+ ]
+ im = torch.cat(im, dim=-1)
+ ie = torch.cat(ie, dim=-1)
+ ie_mask = torch.cat(ie_mask, dim=-1)
+ else:
+ ie, im, ie_mask = torch.zeros_like(ix).to(x), torch.zeros_like(ix).to(x), torch.ones_like(
+ imask).to(x),
+ ix = torch.cat([ix, ie, im, ie_mask], dim=0)
+ c, h, w = ix.shape
+ ix = rearrange(ix,
+ 'c (h ph) (w pw) -> (h w) (c ph pw)',
+ ph=2,
+ pw=2)
+ ix_id = torch.zeros(h // 2, w // 2, 3)
+ ix_id[..., 1] = ix_id[..., 1] + torch.arange(h // 2)[:, None]
+ ix_id[..., 2] = ix_id[..., 2] + torch.arange(w // 2)[None, :]
+ ix_id = rearrange(ix_id, 'h w c -> (h w) c')
+ batch_frames.append([ix])
+ batch_frames_ids.append([ix_id])
+ x_list, x_id_list, mask_x_list, x_seq_length = [], [], [], []
+ for frames, frame_ids in zip(batch_frames, batch_frames_ids):
+ proj_frames = []
+ for idx, one_frame in enumerate(frames):
+ one_frame = self.img_in(one_frame)
+ proj_frames.append(one_frame)
+ ix = torch.cat(proj_frames, dim=0)
+ if_id = torch.cat(frame_ids, dim=0)
+ x_list.append(ix)
+ x_id_list.append(if_id)
+ mask_x_list.append(torch.ones(ix.shape[0]).to(ix.device, non_blocking=True).bool())
+ x_seq_length.append(ix.shape[0])
+ # if len(x_list) < 1: import pdb;pdb.set_trace()
+ x = pad_sequence(tuple(x_list), batch_first=True)
+ x_ids = pad_sequence(tuple(x_id_list), batch_first=True).to(x) # [b,pad_seq,2] pad (0.,0.) at dim2
+ mask_x = pad_sequence(tuple(mask_x_list), batch_first=True)
+ if isinstance(context, list):
+ txt_list, mask_txt_list, y_list = [], [], []
+ for sample_id, (ctx, yy) in enumerate(zip(context, y)):
+ txt_list.append(self.txt_in(ctx.to(x)))
+ mask_txt_list.append(torch.ones(txt_list[-1].shape[0]).to(ctx.device, non_blocking=True).bool())
+ y_list.append(yy.to(x))
+ txt = pad_sequence(tuple(txt_list), batch_first=True)
+ txt_ids = torch.zeros(txt.shape[0], txt.shape[1], 3).to(x)
+ mask_txt = pad_sequence(tuple(mask_txt_list), batch_first=True)
+ y = torch.cat(y_list, dim=0)
+ assert y.ndim == 2 and txt.ndim == 3
+ else:
+ txt = self.txt_in(context)
+ txt_ids = torch.zeros(context.shape[0], context.shape[1], 3).to(x)
+ mask_txt = torch.ones(context.shape[0], context.shape[1]).to(x.device, non_blocking=True).bool()
+ return x, x_ids, txt, txt_ids, y, mask_x, mask_txt, x_seq_length
+
+ @staticmethod
+ def get_config_template():
+ return dict_to_yaml('MODEL',
+ __class__.__name__,
+ FluxMRACEPlus.para_dict,
+ set_name=True)
diff --git a/ACE_plus/modules/layers.py b/ACE_plus/modules/layers.py
new file mode 100644
index 0000000000000000000000000000000000000000..348e7543580c674e5cf1428500731d98cbc53830
--- /dev/null
+++ b/ACE_plus/modules/layers.py
@@ -0,0 +1,521 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Alibaba, Inc. and its affiliates.
+# This file contains code that is adapted from
+# https://github.com/black-forest-labs/flux.git
+from __future__ import annotations
+
+import math
+from dataclasses import dataclass
+from torch import Tensor, nn
+import torch
+from einops import rearrange, repeat
+from torch import Tensor
+from torch.nn.utils.rnn import pad_sequence
+
+try:
+ from flash_attn import (
+ flash_attn_varlen_func
+ )
+ FLASHATTN_IS_AVAILABLE = True
+except ImportError:
+ FLASHATTN_IS_AVAILABLE = False
+ flash_attn_varlen_func = None
+
+def attention(q: Tensor, k: Tensor, v: Tensor, pe: Tensor, mask: Tensor | None = None, backend = 'pytorch') -> Tensor:
+ q, k = apply_rope(q, k, pe)
+ if backend == 'pytorch':
+ if mask is not None and mask.dtype == torch.bool:
+ mask = torch.zeros_like(mask).to(q).masked_fill_(mask.logical_not(), -1e20)
+ x = torch.nn.functional.scaled_dot_product_attention(q, k, v, attn_mask=mask)
+ # x = torch.nan_to_num(x, nan=0.0, posinf=1e10, neginf=-1e10)
+ x = rearrange(x, "B H L D -> B L (H D)")
+ elif backend == 'flash_attn':
+ # q: (B, H, L, D)
+ # k: (B, H, S, D) now L = S
+ # v: (B, H, S, D)
+ b, h, lq, d = q.shape
+ _, _, lk, _ = k.shape
+ q = rearrange(q, "B H L D -> B L H D")
+ k = rearrange(k, "B H S D -> B S H D")
+ v = rearrange(v, "B H S D -> B S H D")
+ if mask is None:
+ q_lens = torch.tensor([lq] * b, dtype=torch.int32).to(q.device, non_blocking=True)
+ k_lens = torch.tensor([lk] * b, dtype=torch.int32).to(k.device, non_blocking=True)
+ else:
+ q_lens = torch.sum(mask[:, 0, :, 0], dim=1).int()
+ k_lens = torch.sum(mask[:, 0, 0, :], dim=1).int()
+ q = torch.cat([q_v[:q_l] for q_v, q_l in zip(q, q_lens)])
+ k = torch.cat([k_v[:k_l] for k_v, k_l in zip(k, k_lens)])
+ v = torch.cat([v_v[:v_l] for v_v, v_l in zip(v, k_lens)])
+ cu_seqlens_q = torch.cat([q_lens.new_zeros([1]), q_lens]).cumsum(0, dtype=torch.int32)
+ cu_seqlens_k = torch.cat([k_lens.new_zeros([1]), k_lens]).cumsum(0, dtype=torch.int32)
+ max_seqlen_q = q_lens.max()
+ max_seqlen_k = k_lens.max()
+
+ x = flash_attn_varlen_func(
+ q,
+ k,
+ v,
+ cu_seqlens_q=cu_seqlens_q,
+ cu_seqlens_k=cu_seqlens_k,
+ max_seqlen_q=max_seqlen_q,
+ max_seqlen_k=max_seqlen_k
+ )
+ x_list = [x[cu_seqlens_q[i]:cu_seqlens_q[i+1]] for i in range(b)]
+ x = pad_sequence(tuple(x_list), batch_first=True)
+ x = rearrange(x, "B L H D -> B L (H D)")
+ else:
+ raise NotImplementedError
+ return x
+
+
+def rope(pos: Tensor, dim: int, theta: int) -> Tensor:
+ assert dim % 2 == 0
+ scale = torch.arange(0, dim, 2, dtype=torch.float64, device=pos.device) / dim
+ omega = 1.0 / (theta**scale)
+ out = torch.einsum("...n,d->...nd", pos, omega)
+ out = torch.stack([torch.cos(out), -torch.sin(out), torch.sin(out), torch.cos(out)], dim=-1)
+ out = rearrange(out, "b n d (i j) -> b n d i j", i=2, j=2)
+ return out.float()
+
+
+def apply_rope(xq: Tensor, xk: Tensor, freqs_cis: Tensor) -> tuple[Tensor, Tensor]:
+ xq_ = xq.float().reshape(*xq.shape[:-1], -1, 1, 2)
+ xk_ = xk.float().reshape(*xk.shape[:-1], -1, 1, 2)
+ xq_out = freqs_cis[..., 0] * xq_[..., 0] + freqs_cis[..., 1] * xq_[..., 1]
+ xk_out = freqs_cis[..., 0] * xk_[..., 0] + freqs_cis[..., 1] * xk_[..., 1]
+ return xq_out.reshape(*xq.shape).type_as(xq), xk_out.reshape(*xk.shape).type_as(xk)
+
+class EmbedND(nn.Module):
+ def __init__(self, dim: int, theta: int, axes_dim: list[int]):
+ super().__init__()
+ self.dim = dim
+ self.theta = theta
+ self.axes_dim = axes_dim
+
+ def forward(self, ids: Tensor) -> Tensor:
+ n_axes = ids.shape[-1]
+ emb = torch.cat(
+ [rope(ids[..., i], self.axes_dim[i], self.theta) for i in range(n_axes)],
+ dim=-3,
+ )
+
+ return emb.unsqueeze(1)
+
+
+def timestep_embedding(t: Tensor, dim, max_period=10000, time_factor: float = 1000.0):
+ """
+ Create sinusoidal timestep embeddings.
+ :param t: a 1-D Tensor of N indices, one per batch element.
+ These may be fractional.
+ :param dim: the dimension of the output.
+ :param max_period: controls the minimum frequency of the embeddings.
+ :return: an (N, D) Tensor of positional embeddings.
+ """
+ t = time_factor * t
+ half = dim // 2
+ freqs = torch.exp(-math.log(max_period) * torch.arange(start=0, end=half, dtype=torch.float32) / half).to(
+ t.device
+ )
+
+ args = t[:, None].float() * freqs[None]
+ embedding = torch.cat([torch.cos(args), torch.sin(args)], dim=-1)
+ if dim % 2:
+ embedding = torch.cat([embedding, torch.zeros_like(embedding[:, :1])], dim=-1)
+ if torch.is_floating_point(t):
+ embedding = embedding.to(t)
+ return embedding
+
+
+class MLPEmbedder(nn.Module):
+ def __init__(self, in_dim: int, hidden_dim: int):
+ super().__init__()
+ self.in_layer = nn.Linear(in_dim, hidden_dim, bias=True)
+ self.silu = nn.SiLU()
+ self.out_layer = nn.Linear(hidden_dim, hidden_dim, bias=True)
+
+ def forward(self, x: Tensor) -> Tensor:
+ return self.out_layer(self.silu(self.in_layer(x)))
+
+
+class RMSNorm(torch.nn.Module):
+ def __init__(self, dim: int):
+ super().__init__()
+ self.scale = nn.Parameter(torch.ones(dim))
+
+ def forward(self, x: Tensor):
+ x_dtype = x.dtype
+ x = x.float()
+ rrms = torch.rsqrt(torch.mean(x**2, dim=-1, keepdim=True) + 1e-6)
+ return (x * rrms).to(dtype=x_dtype) * self.scale
+
+
+class QKNorm(torch.nn.Module):
+ def __init__(self, dim: int):
+ super().__init__()
+ self.query_norm = RMSNorm(dim)
+ self.key_norm = RMSNorm(dim)
+
+ def forward(self, q: Tensor, k: Tensor, v: Tensor) -> tuple[Tensor, Tensor]:
+ q = self.query_norm(q)
+ k = self.key_norm(k)
+ return q.to(v), k.to(v)
+
+
+class SelfAttention(nn.Module):
+ def __init__(self, dim: int, num_heads: int = 8, qkv_bias: bool = False):
+ super().__init__()
+ self.num_heads = num_heads
+ head_dim = dim // num_heads
+
+ self.qkv = nn.Linear(dim, dim * 3, bias=qkv_bias)
+ self.norm = QKNorm(head_dim)
+ self.proj = nn.Linear(dim, dim)
+
+ def forward(self, x: Tensor, pe: Tensor, mask: Tensor | None = None) -> Tensor:
+ qkv = self.qkv(x)
+ q, k, v = rearrange(qkv, "B L (K H D) -> K B H L D", K=3, H=self.num_heads)
+ q, k = self.norm(q, k, v)
+ x = attention(q, k, v, pe=pe, mask=mask)
+ x = self.proj(x)
+ return x
+
+class CrossAttention(nn.Module):
+ def __init__(self, dim: int, context_dim: int, num_heads: int = 8, qkv_bias: bool = False):
+ super().__init__()
+ self.num_heads = num_heads
+ head_dim = dim // num_heads
+ self.q = nn.Linear(dim, dim, bias=qkv_bias)
+ self.kv = nn.Linear(dim, context_dim * 2, bias=qkv_bias)
+ self.norm = QKNorm(head_dim)
+ self.proj = nn.Linear(dim, dim)
+
+ def forward(self, x: Tensor, context: Tensor, pe: Tensor, mask: Tensor | None = None) -> Tensor:
+ qkv = self.qkv(x)
+ q, k, v = rearrange(qkv, "B L (K H D) -> K B H L D", K=3, H=self.num_heads)
+ q, k = self.norm(q, k, v)
+ x = attention(q, k, v, pe=pe, mask=mask)
+ x = self.proj(x)
+ return x
+
+
+@dataclass
+class ModulationOut:
+ shift: Tensor
+ scale: Tensor
+ gate: Tensor
+
+
+class Modulation(nn.Module):
+ def __init__(self, dim: int, double: bool):
+ super().__init__()
+ self.is_double = double
+ self.multiplier = 6 if double else 3
+ self.lin = nn.Linear(dim, self.multiplier * dim, bias=True)
+
+ def forward(self, vec: Tensor) -> tuple[ModulationOut, ModulationOut | None]:
+ out = self.lin(nn.functional.silu(vec))[:, None, :].chunk(self.multiplier, dim=-1)
+
+ return (
+ ModulationOut(*out[:3]),
+ ModulationOut(*out[3:]) if self.is_double else None,
+ )
+
+
+class DoubleStreamBlock(nn.Module):
+ def __init__(self, hidden_size: int, num_heads: int, mlp_ratio: float, qkv_bias: bool = False, backend = 'pytorch'):
+ super().__init__()
+
+ mlp_hidden_dim = int(hidden_size * mlp_ratio)
+ self.num_heads = num_heads
+ self.hidden_size = hidden_size
+ self.img_mod = Modulation(hidden_size, double=True)
+ self.img_norm1 = nn.LayerNorm(hidden_size, elementwise_affine=False, eps=1e-6)
+ self.img_attn = SelfAttention(dim=hidden_size, num_heads=num_heads, qkv_bias=qkv_bias)
+
+ self.img_norm2 = nn.LayerNorm(hidden_size, elementwise_affine=False, eps=1e-6)
+ self.img_mlp = nn.Sequential(
+ nn.Linear(hidden_size, mlp_hidden_dim, bias=True),
+ nn.GELU(approximate="tanh"),
+ nn.Linear(mlp_hidden_dim, hidden_size, bias=True),
+ )
+
+ self.backend = backend
+
+ self.txt_mod = Modulation(hidden_size, double=True)
+ self.txt_norm1 = nn.LayerNorm(hidden_size, elementwise_affine=False, eps=1e-6)
+ self.txt_attn = SelfAttention(dim=hidden_size, num_heads=num_heads, qkv_bias=qkv_bias)
+
+ self.txt_norm2 = nn.LayerNorm(hidden_size, elementwise_affine=False, eps=1e-6)
+ self.txt_mlp = nn.Sequential(
+ nn.Linear(hidden_size, mlp_hidden_dim, bias=True),
+ nn.GELU(approximate="tanh"),
+ nn.Linear(mlp_hidden_dim, hidden_size, bias=True),
+ )
+
+
+
+
+ def forward(self, x: Tensor, vec: Tensor, pe: Tensor, mask: Tensor = None, txt_length = None):
+ img_mod1, img_mod2 = self.img_mod(vec)
+ txt_mod1, txt_mod2 = self.txt_mod(vec)
+
+ txt, img = x[:, :txt_length], x[:, txt_length:]
+
+ # prepare image for attention
+ img_modulated = self.img_norm1(img)
+ img_modulated = (1 + img_mod1.scale) * img_modulated + img_mod1.shift
+ img_qkv = self.img_attn.qkv(img_modulated)
+ img_q, img_k, img_v = rearrange(img_qkv, "B L (K H D) -> K B H L D", K=3, H=self.num_heads)
+ img_q, img_k = self.img_attn.norm(img_q, img_k, img_v)
+ # prepare txt for attention
+ txt_modulated = self.txt_norm1(txt)
+ txt_modulated = (1 + txt_mod1.scale) * txt_modulated + txt_mod1.shift
+ txt_qkv = self.txt_attn.qkv(txt_modulated)
+ txt_q, txt_k, txt_v = rearrange(txt_qkv, "B L (K H D) -> K B H L D", K=3, H=self.num_heads)
+ txt_q, txt_k = self.txt_attn.norm(txt_q, txt_k, txt_v)
+
+ # run actual attention
+ q = torch.cat((txt_q, img_q), dim=2)
+ k = torch.cat((txt_k, img_k), dim=2)
+ v = torch.cat((txt_v, img_v), dim=2)
+ if mask is not None:
+ mask = repeat(mask, 'B L S-> B H L S', H=self.num_heads)
+ attn = attention(q, k, v, pe=pe, mask = mask, backend = self.backend)
+ txt_attn, img_attn = attn[:, : txt.shape[1]], attn[:, txt.shape[1] :]
+
+ # calculate the img bloks
+ img = img + img_mod1.gate * self.img_attn.proj(img_attn)
+ img = img + img_mod2.gate * self.img_mlp((1 + img_mod2.scale) * self.img_norm2(img) + img_mod2.shift)
+
+ # calculate the txt bloks
+ txt = txt + txt_mod1.gate * self.txt_attn.proj(txt_attn)
+ txt = txt + txt_mod2.gate * self.txt_mlp((1 + txt_mod2.scale) * self.txt_norm2(txt) + txt_mod2.shift)
+ x = torch.cat((txt, img), 1)
+ return x
+
+
+class SingleStreamBlock(nn.Module):
+ """
+ A DiT block with parallel linear layers as described in
+ https://arxiv.org/abs/2302.05442 and adapted modulation interface.
+ """
+
+ def __init__(
+ self,
+ hidden_size: int,
+ num_heads: int,
+ mlp_ratio: float = 4.0,
+ qk_scale: float | None = None,
+ backend='pytorch'
+ ):
+ super().__init__()
+ self.hidden_dim = hidden_size
+ self.num_heads = num_heads
+ head_dim = hidden_size // num_heads
+ self.scale = qk_scale or head_dim**-0.5
+
+ self.mlp_hidden_dim = int(hidden_size * mlp_ratio)
+ # qkv and mlp_in
+ self.linear1 = nn.Linear(hidden_size, hidden_size * 3 + self.mlp_hidden_dim)
+ # proj and mlp_out
+ self.linear2 = nn.Linear(hidden_size + self.mlp_hidden_dim, hidden_size)
+
+ self.norm = QKNorm(head_dim)
+
+ self.hidden_size = hidden_size
+ self.pre_norm = nn.LayerNorm(hidden_size, elementwise_affine=False, eps=1e-6)
+
+ self.mlp_act = nn.GELU(approximate="tanh")
+ self.modulation = Modulation(hidden_size, double=False)
+ self.backend = backend
+
+ def forward(self, x: Tensor, vec: Tensor, pe: Tensor, mask: Tensor = None) -> Tensor:
+ mod, _ = self.modulation(vec)
+ x_mod = (1 + mod.scale) * self.pre_norm(x) + mod.shift
+ qkv, mlp = torch.split(self.linear1(x_mod), [3 * self.hidden_size, self.mlp_hidden_dim], dim=-1)
+
+ q, k, v = rearrange(qkv, "B L (K H D) -> K B H L D", K=3, H=self.num_heads)
+ q, k = self.norm(q, k, v)
+ if mask is not None:
+ mask = repeat(mask, 'B L S-> B H L S', H=self.num_heads)
+ # compute attention
+ attn = attention(q, k, v, pe=pe, mask = mask, backend=self.backend)
+ # compute activation in mlp stream, cat again and run second linear layer
+ output = self.linear2(torch.cat((attn, self.mlp_act(mlp)), 2))
+ return x + mod.gate * output
+
+
+class DoubleStreamBlockC(DoubleStreamBlock):
+ """
+ A DiT block with parallel linear layers as described in
+ https://arxiv.org/abs/2302.05442 and adapted modulation interface.
+ """
+
+ def __init__(self, hidden_size: int, num_heads: int, mlp_ratio: float,
+ qkv_bias: bool = False, backend='pytorch',
+ abondon_cond = False):
+ super().__init__(hidden_size, num_heads, mlp_ratio,
+ qkv_bias, backend)
+ self.abondon_cond = abondon_cond
+
+ def forward(self, x: Tensor, vec: Tensor,
+ pe: Tensor, mask: Tensor = None,
+ txt_length=None,
+ uncondi_length=None,
+ uncondi_pe = None,
+ mask_uncond = None):
+ # pad_sequence(tuple(x_list), batch_first=True)
+ if self.abondon_cond:
+ x = [ix[:u_l, :] for ix, u_l in zip(x, uncondi_length)]
+ x = pad_sequence(x, batch_first=True)
+ if not x.shape[1] == pe.shape[2]:
+ pe = uncondi_pe
+ mask = mask_uncond
+ # print("double stream block", x.shape, pe.shape)
+ x = super().forward(x, vec, pe, mask, txt_length)
+ return x
+
+class SingleStreamBlockC(SingleStreamBlock):
+ """
+ A DiT block with parallel linear layers as described in
+ https://arxiv.org/abs/2302.05442 and adapted modulation interface.
+ """
+
+ def __init__(self, hidden_size: int,
+ num_heads: int,
+ mlp_ratio: float = 4.0,
+ qk_scale: float | None = None,
+ backend='pytorch',
+ abondon_cond = False):
+ super().__init__(hidden_size, num_heads, mlp_ratio,
+ qk_scale, backend)
+ self.abondon_cond = abondon_cond
+
+ def forward(self, x: Tensor, vec: Tensor, pe: Tensor, mask: Tensor = None,
+ uncondi_length = None, uncondi_pe = None, mask_uncond = None) -> Tensor:
+ if self.abondon_cond:
+ x = [ix[:u_l, :] for ix, u_l in zip(x, uncondi_length)]
+ x = pad_sequence(x, batch_first=True)
+ if not x.shape[1] == pe.shape[2]:
+ pe = uncondi_pe
+ mask = mask_uncond
+ # print("single stream block", x.shape, pe.shape)
+ x = super().forward(x, vec, pe, mask)
+ return x
+
+
+class DoubleStreamBlockD(DoubleStreamBlock):
+ """
+ A DiT block with parallel linear layers as described in
+ https://arxiv.org/abs/2302.05442 and adapted modulation interface.
+ """
+
+ def __init__(self, hidden_size: int, num_heads: int, mlp_ratio: float,
+ qkv_bias: bool = False, backend='pytorch'):
+ super().__init__(hidden_size, num_heads, mlp_ratio,
+ qkv_bias, backend)
+ mlp_hidden_dim = int(hidden_size * mlp_ratio)
+ self.edit_mod = Modulation(hidden_size, double=True)
+ self.edit_norm1 = nn.LayerNorm(hidden_size, elementwise_affine=False, eps=1e-6)
+ self.edit_attn = SelfAttention(dim=hidden_size, num_heads=num_heads, qkv_bias=qkv_bias)
+
+ self.edit_norm2 = nn.LayerNorm(hidden_size, elementwise_affine=False, eps=1e-6)
+ self.edit_mlp = nn.Sequential(
+ nn.Linear(hidden_size, mlp_hidden_dim, bias=True),
+ nn.GELU(approximate="tanh"),
+ nn.Linear(mlp_hidden_dim, hidden_size, bias=True),
+ )
+
+ def forward(self, x: Tensor, vec: Tensor,
+ pe: Tensor, mask: Tensor = None,
+ txt_length=None,
+ edit_length=None):
+ if edit_length is not None:
+ txt, edit, img = x[:, :txt_length], x[:, txt_length:txt_length + edit_length], x[:, txt_length + edit_length:]
+ else:
+ txt, img = x[:, :txt_length], x[:, txt_length:]
+ img_mod1, img_mod2 = self.img_mod(vec)
+ txt_mod1, txt_mod2 = self.txt_mod(vec)
+ # prepare image for attention
+ img_modulated = self.img_norm1(img)
+ img_modulated = (1 + img_mod1.scale) * img_modulated + img_mod1.shift
+ img_qkv = self.img_attn.qkv(img_modulated)
+ img_q, img_k, img_v = rearrange(img_qkv, "B L (K H D) -> K B H L D", K=3, H=self.num_heads)
+ img_q, img_k = self.img_attn.norm(img_q, img_k, img_v)
+ # prepare txt for attention
+ txt_modulated = self.txt_norm1(txt)
+ txt_modulated = (1 + txt_mod1.scale) * txt_modulated + txt_mod1.shift
+ txt_qkv = self.txt_attn.qkv(txt_modulated)
+ txt_q, txt_k, txt_v = rearrange(txt_qkv, "B L (K H D) -> K B H L D", K=3, H=self.num_heads)
+ txt_q, txt_k = self.txt_attn.norm(txt_q, txt_k, txt_v)
+
+ if edit_length is not None:
+ edit_mod1, edit_mod2 = self.edit_mod(vec)
+ # prepare edit for attention
+ edit_modulated = self.edit_norm1(edit)
+ edit_modulated = (1 + edit_mod1.scale) * edit_modulated + edit_mod1.shift
+ edit_qkv = self.edit_attn.qkv(edit_modulated)
+ edit_q, edit_k, edit_v = rearrange(edit_qkv, "B L (K H D) -> K B H L D", K=3, H=self.num_heads)
+ edit_q, edit_k = self.edit_attn.norm(edit_q, edit_k, edit_v)
+ else:
+ edit_q, edit_k, edit_v = None, None, None
+
+
+ # run actual attention
+ q = torch.cat((txt_q,) + ((edit_q,) if edit_q is not None else ()) + (img_q,), dim=2)
+ k = torch.cat((txt_k,) + ((edit_k,) if edit_k is not None else ()) + (img_k,), dim=2)
+ v = torch.cat((txt_v,) + ((edit_v,) if edit_v is not None else ()) + (img_v,), dim=2)
+ if mask is not None:
+ mask = repeat(mask, 'B L S-> B H L S', H=self.num_heads)
+ attn = attention(q, k, v, pe=pe, mask=mask, backend=self.backend)
+ if edit_length is not None:
+ txt_attn, edit_attn, img_attn = attn[:, : txt_length], attn[:, txt_length:txt_length + edit_length ], attn[:, txt_length + edit_length:]
+ else:
+ txt_attn, img_attn = attn[:, : txt_length], attn[:, txt_length:]
+
+ # calculate the img bloks
+ img = img + img_mod1.gate * self.img_attn.proj(img_attn)
+ img = img + img_mod2.gate * self.img_mlp((1 + img_mod2.scale) * self.img_norm2(img) + img_mod2.shift)
+
+ # calculate the txt bloks
+ txt = txt + txt_mod1.gate * self.txt_attn.proj(txt_attn)
+ txt = txt + txt_mod2.gate * self.txt_mlp((1 + txt_mod2.scale) * self.txt_norm2(txt) + txt_mod2.shift)
+
+ # calculate the img bloks
+ if edit_length is not None:
+ edit = edit + edit_mod1.gate * self.edit_attn.proj(edit_attn)
+ edit = edit + edit_mod2.gate * self.edit_mlp((1 + edit_mod2.scale) * self.edit_norm2(edit) + edit_mod2.shift)
+ x = torch.cat((txt, edit, img), 1)
+ else:
+ x = torch.cat((txt, img), 1)
+ return x
+
+
+class LastLayer(nn.Module):
+ def __init__(self, hidden_size: int, patch_size: int, out_channels: int):
+ super().__init__()
+ self.norm_final = nn.LayerNorm(hidden_size, elementwise_affine=False, eps=1e-6)
+ self.linear = nn.Linear(hidden_size, patch_size * patch_size * out_channels, bias=True)
+ self.adaLN_modulation = nn.Sequential(nn.SiLU(), nn.Linear(hidden_size, 2 * hidden_size, bias=True))
+
+ def forward(self, x: Tensor, vec: Tensor) -> Tensor:
+ shift, scale = self.adaLN_modulation(vec).chunk(2, dim=1)
+ x = (1 + scale[:, None, :]) * self.norm_final(x) + shift[:, None, :]
+ x = self.linear(x)
+ return x
+
+
+if __name__ == '__main__':
+ pe = EmbedND(dim=64, theta=10000, axes_dim=[16, 56, 56])
+
+ ix_id = torch.zeros(64 // 2, 64 // 2, 3)
+ ix_id[..., 1] = ix_id[..., 1] + torch.arange(64 // 2)[:, None]
+ ix_id[..., 2] = ix_id[..., 2] + torch.arange(64 // 2)[None, :]
+ ix_id = rearrange(ix_id, "h w c -> 1 (h w) c")
+ pos = torch.cat([ix_id, ix_id], dim = 1)
+ a = pe(pos)
+
+ b = torch.cat([pe(ix_id), pe(ix_id)], dim = 2)
+
+ print(a - b)
\ No newline at end of file
diff --git a/ACE_plus/train_config/ace_plus_fft.yaml b/ACE_plus/train_config/ace_plus_fft.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b7f4b67cc03f870a466466b44395907a87ac48c8
--- /dev/null
+++ b/ACE_plus/train_config/ace_plus_fft.yaml
@@ -0,0 +1,296 @@
+ENV:
+ BACKEND: nccl
+ SEED: 1999
+SOLVER:
+ # NAME DESCRIPTION: TYPE: default: 'LatentUfitSolver'
+ NAME: FormalACEPlusSolver
+ # MAX_STEPS DESCRIPTION: The total steps for training. TYPE: int default: 100000
+ MAX_STEPS: 100000
+ # USE_AMP DESCRIPTION: Use amp to surpport mix precision or not, default is False. TYPE: bool default: False
+ USE_AMP: True
+ # DTYPE DESCRIPTION: The precision for training. TYPE: str default: 'float32'
+ DTYPE: bfloat16
+ ENABLE_GRADSCALER: False
+ # USE_FAIRSCALE DESCRIPTION: Use fairscale as the backend of ddp, default False. TYPE: bool default: False
+ USE_FAIRSCALE: False
+ USE_ORIG_PARAMS: True
+ USE_FSDP: True # lora use ddp(USE_FSDP=False), else use fsdp(USE_FSDP=True)
+ # LOAD_MODEL_ONLY DESCRIPTION: Only load the model rather than the optimizer and schedule, default is False. TYPE: bool default: False
+ LOAD_MODEL_ONLY: False
+ # RESUME_FROM DESCRIPTION: Resume from some state of training! TYPE: str default: ''
+ RESUME_FROM:
+ # WORK_DIR DESCRIPTION: Save dir of the training log or model. TYPE: str default: ''
+ WORK_DIR: ./examples/exp_example/
+ # LOG_FILE DESCRIPTION: Save log path. TYPE: str default: ''
+ LOG_FILE: std_log.txt
+ # LOG_TRAIN_NUM DESCRIPTION: The number samples used to log in training phase. TYPE: int default: -1
+ LOG_TRAIN_NUM: 16
+ # FSDP_REDUCE_DTYPE DESCRIPTION: The dtype of reduce in FSDP. TYPE: str default: 'float16'
+ FSDP_REDUCE_DTYPE: float32
+ # FSDP_BUFFER_DTYPE DESCRIPTION: The dtype of buffer in FSDP. TYPE: str default: 'float16'
+ FSDP_BUFFER_DTYPE: float32
+ # FSDP_SHARD_MODULES DESCRIPTION: The modules to be sharded in FSDP. TYPE: list default: ['model']
+ FSDP_SHARD_MODULES:
+ - MODULE: 'model'
+ FSDP_GROUP: [ 'single_blocks', 'double_blocks']
+ - MODULE: 'cond_stage_model.t5_model.hf_module.encoder'
+ FSDP_GROUP: [ 'block' ] #
+ SAVE_MODULES: [ 'model'] #
+ TRAIN_MODULES: ['model']
+
+ #
+ FILE_SYSTEM:
+ - NAME: HuggingfaceFs
+ TEMP_DIR: ./cache
+ - NAME: ModelscopeFs
+ TEMP_DIR: ./cache
+ #
+ MODEL:
+ NAME: LatentDiffusionACEPlus
+ PARAMETERIZATION: rf
+ TIMESTEPS: 1000
+ GUIDE_SCALE: 1.0
+ PRETRAINED_MODEL:
+ IGNORE_KEYS: [ ]
+ USE_EMA: False
+ EVAL_EMA: False
+ SIZE_FACTOR: 8
+ DIFFUSION:
+ NAME: DiffusionFluxRF
+ PREDICTION_TYPE: raw
+ NOISE_NORM: True
+ # NOISE_SCHEDULER DESCRIPTION: TYPE: default: ''
+ NOISE_SCHEDULER:
+ NAME: FlowMatchFluxShiftScheduler
+ SHIFT: False
+ PRE_T_SAMPLE: True
+ PRE_T_SAMPLE_FOLD: 1
+ SIGMOID_SCALE: 1
+ BASE_SHIFT: 0.5
+ MAX_SHIFT: 1.15
+ SAMPLER_SCHEDULER:
+ NAME: FlowMatchFluxShiftScheduler
+ SHIFT: True
+ PRE_T_SAMPLE: False
+ SIGMOID_SCALE: 1
+ BASE_SHIFT: 0.5
+ MAX_SHIFT: 1.15
+
+ #
+ DIFFUSION_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'Flux'
+ NAME: FluxMRModiACEPlus
+ PRETRAINED_MODEL: ${ACE_PLUS_FFT_MODEL}
+ # IN_CHANNELS DESCRIPTION: model's input channels. TYPE: int default: 64
+ IN_CHANNELS: 448
+ # OUT_CHANNELS DESCRIPTION: model's input channels. TYPE: int default: 64
+ OUT_CHANNELS: 64
+ # HIDDEN_SIZE DESCRIPTION: model's hidden size. TYPE: int default: 1024
+ HIDDEN_SIZE: 3072
+ REDUX_DIM: 1152
+ # NUM_HEADS DESCRIPTION: number of heads in the transformer. TYPE: int default: 16
+ NUM_HEADS: 24
+ # AXES_DIM DESCRIPTION: dimensions of the axes of the positional encoding. TYPE: list default: [16, 56, 56]
+ AXES_DIM: [ 16, 56, 56 ]
+ # THETA DESCRIPTION: theta for positional encoding. TYPE: int default: 10000
+ THETA: 10000
+ # VEC_IN_DIM DESCRIPTION: dimension of the vector input. TYPE: int default: 768
+ VEC_IN_DIM: 768
+ # GUIDANCE_EMBED DESCRIPTION: whether to use guidance embedding. TYPE: bool default: False
+ GUIDANCE_EMBED: True
+ # CONTEXT_IN_DIM DESCRIPTION: dimension of the context input. TYPE: int default: 4096
+ CONTEXT_IN_DIM: 4096
+ # MLP_RATIO DESCRIPTION: ratio of mlp hidden size to hidden size. TYPE: float default: 4.0
+ MLP_RATIO: 4.0
+ # QKV_BIAS DESCRIPTION: whether to use bias in qkv projection. TYPE: bool default: True
+ QKV_BIAS: True
+ # DEPTH DESCRIPTION: number of transformer blocks. TYPE: int default: 19
+ DEPTH: 19
+ # DEPTH_SINGLE_BLOCKS DESCRIPTION: number of transformer blocks in the single stream block. TYPE: int default: 38
+ DEPTH_SINGLE_BLOCKS: 38
+ # ATTN_BACKEND:setting 'flash_attn' to use flash_attn2, if the version of pytorch > 2.4.0, using 'pytorch' to use pytorch's implementation
+ ATTN_BACKEND: flash_attn
+ # USE_GRAD_CHECKPOINT: setting gc to true can decrease the memory usage.
+ USE_GRAD_CHECKPOINT: True
+
+ #
+ FIRST_STAGE_MODEL:
+ NAME: AutoencoderKLFlux
+ EMBED_DIM: 16
+ PRETRAINED_MODEL: ${FLUX_FILL_PATH}/ae.safetensors
+ IGNORE_KEYS: [ ]
+ BATCH_SIZE: 8
+ USE_CONV: False
+ SCALE_FACTOR: 0.3611
+ SHIFT_FACTOR: 0.1159
+ #
+ ENCODER:
+ NAME: Encoder
+ CH: 128
+ OUT_CH: 3
+ NUM_RES_BLOCKS: 2
+ IN_CHANNELS: 3
+ ATTN_RESOLUTIONS: [ ]
+ CH_MULT: [ 1, 2, 4, 4 ]
+ Z_CHANNELS: 16
+ DOUBLE_Z: True
+ DROPOUT: 0.0
+ RESAMP_WITH_CONV: True
+ #
+ DECODER:
+ NAME: Decoder
+ CH: 128
+ OUT_CH: 3
+ NUM_RES_BLOCKS: 2
+ IN_CHANNELS: 3
+ ATTN_RESOLUTIONS: [ ]
+ CH_MULT: [ 1, 2, 4, 4 ]
+ Z_CHANNELS: 16
+ DROPOUT: 0.0
+ RESAMP_WITH_CONV: True
+ GIVE_PRE_END: False
+ TANH_OUT: False
+ #
+ COND_STAGE_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'T5PlusClipFluxEmbedder'
+ NAME: T5ACEPlusClipFluxEmbedder
+ # T5_MODEL DESCRIPTION: TYPE: default: ''
+ T5_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'HFEmbedder'
+ NAME: ACEHFEmbedder
+ # HF_MODEL_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_MODEL_CLS: T5EncoderModel
+ # MODEL_PATH DESCRIPTION: model folder path TYPE: NoneType default: None
+ MODEL_PATH: ${FLUX_FILL_PATH}/text_encoder_2/
+ # HF_TOKENIZER_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_TOKENIZER_CLS: T5Tokenizer
+ # TOKENIZER_PATH DESCRIPTION: tokenizer folder path TYPE: NoneType default: None
+ TOKENIZER_PATH: ${FLUX_FILL_PATH}/tokenizer_2/
+ ADDED_IDENTIFIER: [ '
','{image}', '{caption}', '{mask}', '{ref_image}', '{image1}', '{image2}', '{image3}', '{image4}', '{image5}', '{image6}', '{image7}', '{image8}', '{image9}' ]
+ # MAX_LENGTH DESCRIPTION: max length of input TYPE: int default: 77
+ MAX_LENGTH: 512
+ # OUTPUT_KEY DESCRIPTION: output key TYPE: str default: 'last_hidden_state'
+ OUTPUT_KEY: last_hidden_state
+ # D_TYPE DESCRIPTION: dtype TYPE: str default: 'bfloat16'
+ D_TYPE: bfloat16
+ # BATCH_INFER DESCRIPTION: batch infer TYPE: bool default: False
+ BATCH_INFER: False
+ CLEAN: whitespace
+ # CLIP_MODEL DESCRIPTION: TYPE: default: ''
+ CLIP_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'HFEmbedder'
+ NAME: ACEHFEmbedder
+ # HF_MODEL_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_MODEL_CLS: CLIPTextModel
+ # MODEL_PATH DESCRIPTION: model folder path TYPE: NoneType default: None
+ MODEL_PATH: ${FLUX_FILL_PATH}/text_encoder/
+ # HF_TOKENIZER_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_TOKENIZER_CLS: CLIPTokenizer
+ # TOKENIZER_PATH DESCRIPTION: tokenizer folder path TYPE: NoneType default: None
+ TOKENIZER_PATH: ${FLUX_FILL_PATH}/tokenizer/
+ # MAX_LENGTH DESCRIPTION: max length of input TYPE: int default: 77
+ MAX_LENGTH: 77
+ # OUTPUT_KEY DESCRIPTION: output key TYPE: str default: 'last_hidden_state'
+ OUTPUT_KEY: pooler_output
+ # D_TYPE DESCRIPTION: dtype TYPE: str default: 'bfloat16'
+ D_TYPE: bfloat16
+ # BATCH_INFER DESCRIPTION: batch infer TYPE: bool default: False
+ BATCH_INFER: True
+ CLEAN: whitespace
+ #
+ SAMPLE_ARGS:
+ SAMPLE_STEPS: 28
+ SAMPLER: flow_euler
+ SEED: 42
+ IMAGE_SIZE: [ 1024, 1024 ]
+ GUIDE_SCALE: 50
+
+ LR_SCHEDULER:
+ NAME: StepAnnealingLR
+ WARMUP_STEPS: 0
+ TOTAL_STEPS: 100000
+ DECAY_MODE: 'cosine'
+ #
+ OPTIMIZER:
+ NAME: AdamW
+ LEARNING_RATE: 5e-5
+ BETAS: [ 0.9, 0.999 ]
+ EPS: 1e-6
+ WEIGHT_DECAY: 1e-2
+ AMSGRAD: False
+ #
+ TRAIN_DATA:
+ NAME: ACEPlusDataset
+ MODE: train
+ DATA_LIST: data/train.csv
+ MODIFY_MODE: True
+ DELIMITER: "#;#"
+ # input_image, input_mask, input_reference_image, target_image, instruction, task_type
+ FIELDS: ["edit_image", "edit_mask", "ref_image", "target_image", "prompt", "data_type"]
+ PATH_PREFIX: ""
+ EDIT_TYPE_LIST: []
+ MAX_SEQ_LEN: 2048
+ D: 16
+ PIN_MEMORY: True
+ BATCH_SIZE: 1
+ NUM_WORKERS: 0
+ SAMPLER:
+ NAME: LoopSampler
+
+ EVAL_DATA:
+ NAME: ACEPlusDataset
+ MODE: eval
+ DATA_LIST: data/train.csv
+ MODIFY_MODE: True
+ DELIMITER: "#;#"
+ # input_image, input_mask, input_reference_image, target_image, instruction, task_type
+ FIELDS: [ "edit_image", "edit_mask", "ref_image", "target_image", "prompt", "data_type" ]
+ PATH_PREFIX: ""
+ EDIT_TYPE_LIST: [ ]
+ MAX_SEQ_LEN: 2048
+ D: 16
+ PIN_MEMORY: True
+ BATCH_SIZE: 1
+ NUM_WORKERS: 4
+
+ TRAIN_HOOKS:
+ - NAME: ACEBackwardHook
+ GRADIENT_CLIP: 1.0
+ PRIORITY: 10
+ - NAME: LogHook
+ LOG_INTERVAL: 20
+ - NAME: ACECheckpointHook
+ INTERVAL: 250
+ PRIORITY: 200
+
+ - NAME: ValLossHook
+ VAL_INTERVAL: 250
+ VAL_LIMITATION_SIZE: 1000000
+ VAL_SEED: 42
+ META_FIELD: [ 'edit_key' ]
+ PRIORITY: 5
+ DATA:
+ NAME: ACEPlusDataset
+ MODE: eval
+ PIN_MEMORY: True
+ BATCH_SIZE: 1
+ USE_NUM: -1
+ NUM_WORKERS: 4
+ DATA_LIST: data/train.csv
+ MODIFY_MODE: True
+ DELIMITER: "#;#"
+ # input_image, input_mask, input_reference_image, target_image, instruction, task_type
+ FIELDS: [ "edit_image", "edit_mask", "ref_image", "target_image", "prompt", "data_type" ]
+ PATH_PREFIX: ""
+ EDIT_TYPE_LIST: [ ]
+ MAX_SEQ_LEN: 2048
+ D: 16
+ - NAME: ProbeDataHook
+ PROB_INTERVAL: 50
+ PRIORITY: 0
+ - NAME: TensorboardLogHook
+ LOG_INTERVAL: 50
+ EVAL_HOOKS:
+ - NAME: ProbeDataHook
+ PROB_INTERVAL: 50
+ PRIORITY: 0
\ No newline at end of file
diff --git a/ACE_plus/train_config/ace_plus_fft_lora.yaml b/ACE_plus/train_config/ace_plus_fft_lora.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9c8f141686d91b64513fe45a530c356a9f311e72
--- /dev/null
+++ b/ACE_plus/train_config/ace_plus_fft_lora.yaml
@@ -0,0 +1,288 @@
+ENV:
+ BACKEND: nccl
+ SEED: 1999
+SOLVER:
+ # NAME DESCRIPTION: TYPE: default: 'LatentUfitSolver'
+ NAME: FormalACEPlusSolver
+ # MAX_STEPS DESCRIPTION: The total steps for training. TYPE: int default: 100000
+ MAX_STEPS: 100000
+ # USE_AMP DESCRIPTION: Use amp to surpport mix precision or not, default is False. TYPE: bool default: False
+ USE_AMP: True
+ # DTYPE DESCRIPTION: The precision for training. TYPE: str default: 'float32'
+ DTYPE: bfloat16
+ ENABLE_GRADSCALER: False
+ # USE_FAIRSCALE DESCRIPTION: Use fairscale as the backend of ddp, default False. TYPE: bool default: False
+ USE_FAIRSCALE: False
+ USE_ORIG_PARAMS: True
+ USE_FSDP: True # lora use ddp(USE_FSDP=False), else use fsdp(USE_FSDP=True)
+ # LOAD_MODEL_ONLY DESCRIPTION: Only load the model rather than the optimizer and schedule, default is False. TYPE: bool default: False
+ LOAD_MODEL_ONLY: False
+ # RESUME_FROM DESCRIPTION: Resume from some state of training! TYPE: str default: ''
+ RESUME_FROM:
+ # WORK_DIR DESCRIPTION: Save dir of the training log or model. TYPE: str default: ''
+ WORK_DIR: ./examples/exp_example/
+ # LOG_FILE DESCRIPTION: Save log path. TYPE: str default: ''
+ LOG_FILE: std_log.txt
+ # LOG_TRAIN_NUM DESCRIPTION: The number samples used to log in training phase. TYPE: int default: -1
+ LOG_TRAIN_NUM: 16
+ # FSDP_REDUCE_DTYPE DESCRIPTION: The dtype of reduce in FSDP. TYPE: str default: 'float16'
+ FSDP_REDUCE_DTYPE: float32
+ # FSDP_BUFFER_DTYPE DESCRIPTION: The dtype of buffer in FSDP. TYPE: str default: 'float16'
+ FSDP_BUFFER_DTYPE: float32
+ # FSDP_SHARD_MODULES DESCRIPTION: The modules to be sharded in FSDP. TYPE: list default: ['model']
+ FSDP_SHARD_MODULES:
+ - MODULE: 'model.model'
+ FSDP_GROUP: [ 'single_blocks', 'double_blocks']
+ - MODULE: 'cond_stage_model.t5_model.hf_module.encoder'
+ FSDP_GROUP: [ 'block' ] #
+ SAVE_MODULES: [ 'model'] #
+ TRAIN_MODULES: ['model']
+
+ #
+ FILE_SYSTEM:
+ - NAME: HuggingfaceFs
+ TEMP_DIR: ./cache
+ - NAME: ModelscopeFs
+ TEMP_DIR: ./cache
+ #
+ MODEL:
+ NAME: LatentDiffusionACEPlus
+ PARAMETERIZATION: rf
+ TIMESTEPS: 1000
+ GUIDE_SCALE: 1.0
+ PRETRAINED_MODEL:
+ IGNORE_KEYS: [ ]
+ USE_EMA: False
+ EVAL_EMA: False
+ SIZE_FACTOR: 8
+ DIFFUSION:
+ NAME: DiffusionFluxRF
+ PREDICTION_TYPE: raw
+ NOISE_NORM: True
+ # NOISE_SCHEDULER DESCRIPTION: TYPE: default: ''
+ NOISE_SCHEDULER:
+ NAME: FlowMatchFluxShiftScheduler
+ SHIFT: False
+ PRE_T_SAMPLE: True
+ PRE_T_SAMPLE_FOLD: 1
+ SIGMOID_SCALE: 1
+ BASE_SHIFT: 0.5
+ MAX_SHIFT: 1.15
+ SAMPLER_SCHEDULER:
+ NAME: FlowMatchFluxShiftScheduler
+ SHIFT: True
+ PRE_T_SAMPLE: False
+ SIGMOID_SCALE: 1
+ BASE_SHIFT: 0.5
+ MAX_SHIFT: 1.15
+
+ #
+ DIFFUSION_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'Flux'
+ NAME: FluxMRModiACEPlus
+ PRETRAINED_MODEL: /home/Ubuntu/Downloads/Unmodel/Reference_models/flux1-fill-dev.safetensors
+ # IN_CHANNELS DESCRIPTION: model's input channels. TYPE: int default: 64
+ IN_CHANNELS: 448
+ # OUT_CHANNELS DESCRIPTION: model's input channels. TYPE: int default: 64
+ OUT_CHANNELS: 64
+ # HIDDEN_SIZE DESCRIPTION: model's hidden size. TYPE: int default: 1024
+ HIDDEN_SIZE: 3072
+ REDUX_DIM: 1152
+ # NUM_HEADS DESCRIPTION: number of heads in the transformer. TYPE: int default: 16
+ NUM_HEADS: 24
+ # AXES_DIM DESCRIPTION: dimensions of the axes of the positional encoding. TYPE: list default: [16, 56, 56]
+ AXES_DIM: [ 16, 56, 56 ]
+ # THETA DESCRIPTION: theta for positional encoding. TYPE: int default: 10000
+ THETA: 10000
+ # VEC_IN_DIM DESCRIPTION: dimension of the vector input. TYPE: int default: 768
+ VEC_IN_DIM: 768
+ # GUIDANCE_EMBED DESCRIPTION: whether to use guidance embedding. TYPE: bool default: False
+ GUIDANCE_EMBED: True
+ # CONTEXT_IN_DIM DESCRIPTION: dimension of the context input. TYPE: int default: 4096
+ CONTEXT_IN_DIM: 4096
+ # MLP_RATIO DESCRIPTION: ratio of mlp hidden size to hidden size. TYPE: float default: 4.0
+ MLP_RATIO: 4.0
+ # QKV_BIAS DESCRIPTION: whether to use bias in qkv projection. TYPE: bool default: True
+ QKV_BIAS: True
+ # DEPTH DESCRIPTION: number of transformer blocks. TYPE: int default: 19
+ DEPTH: 19
+ # DEPTH_SINGLE_BLOCKS DESCRIPTION: number of transformer blocks in the single stream block. TYPE: int default: 38
+ DEPTH_SINGLE_BLOCKS: 38
+ # ATTN_BACKEND:setting 'flash_attn' to use flash_attn2, if the version of pytorch > 2.4.0, using 'pytorch' to use pytorch's implementation
+ ATTN_BACKEND: flash_attn
+ # USE_GRAD_CHECKPOINT: setting gc to true can decrease the memory usage.
+ USE_GRAD_CHECKPOINT: True
+
+ #
+ FIRST_STAGE_MODEL:
+ NAME: AutoencoderKLFlux
+ EMBED_DIM: 16
+ PRETRAINED_MODEL: /home/Ubuntu/Downloads/Unmodel/Reference_models/ae.safetensors
+ IGNORE_KEYS: [ ]
+ BATCH_SIZE: 8
+ USE_CONV: False
+ SCALE_FACTOR: 0.3611
+ SHIFT_FACTOR: 0.1159
+ #
+ ENCODER:
+ NAME: Encoder
+ CH: 128
+ OUT_CH: 3
+ NUM_RES_BLOCKS: 2
+ IN_CHANNELS: 3
+ ATTN_RESOLUTIONS: [ ]
+ CH_MULT: [ 1, 2, 4, 4 ]
+ Z_CHANNELS: 16
+ DOUBLE_Z: True
+ DROPOUT: 0.0
+ RESAMP_WITH_CONV: True
+ #
+ DECODER:
+ NAME: Decoder
+ CH: 128
+ OUT_CH: 3
+ NUM_RES_BLOCKS: 2
+ IN_CHANNELS: 3
+ ATTN_RESOLUTIONS: [ ]
+ CH_MULT: [ 1, 2, 4, 4 ]
+ Z_CHANNELS: 16
+ DROPOUT: 0.0
+ RESAMP_WITH_CONV: True
+ GIVE_PRE_END: False
+ TANH_OUT: False
+ #
+ COND_STAGE_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'T5PlusClipFluxEmbedder'
+ NAME: T5ACEPlusClipFluxEmbedder
+ # T5_MODEL DESCRIPTION: TYPE: default: ''
+ T5_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'HFEmbedder'
+ NAME: ACEHFEmbedder
+ # HF_MODEL_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_MODEL_CLS: T5EncoderModel
+ # MODEL_PATH DESCRIPTION: model folder path TYPE: NoneType default: None
+ MODEL_PATH: /home/Ubuntu/Downloads/Unmodel/Reference_models/t5_xxl/
+ # HF_TOKENIZER_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_TOKENIZER_CLS: T5Tokenizer
+ # TOKENIZER_PATH DESCRIPTION: tokenizer folder path TYPE: NoneType default: None
+ TOKENIZER_PATH: /home/Ubuntu/Downloads/Unmodel/Reference_models/t5_xxl/
+ ADDED_IDENTIFIER: [ '
','{image}', '{caption}', '{mask}', '{ref_image}', '{image1}', '{image2}', '{image3}', '{image4}', '{image5}', '{image6}', '{image7}', '{image8}', '{image9}' ]
+ # MAX_LENGTH DESCRIPTION: max length of input TYPE: int default: 77
+ MAX_LENGTH: 512
+ # OUTPUT_KEY DESCRIPTION: output key TYPE: str default: 'last_hidden_state'
+ OUTPUT_KEY: last_hidden_state
+ # D_TYPE DESCRIPTION: dtype TYPE: str default: 'bfloat16'
+ D_TYPE: bfloat16
+ # BATCH_INFER DESCRIPTION: batch infer TYPE: bool default: False
+ BATCH_INFER: False
+ CLEAN: whitespace
+ # CLIP_MODEL DESCRIPTION: TYPE: default: ''
+ CLIP_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'HFEmbedder'
+ NAME: ACEHFEmbedder
+ # HF_MODEL_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_MODEL_CLS: CLIPTextModel
+ # MODEL_PATH DESCRIPTION: model folder path TYPE: NoneType default: None
+ MODEL_PATH: /home/Ubuntu/Downloads/Unmodel/Reference_models/clip_l/
+ # HF_TOKENIZER_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_TOKENIZER_CLS: CLIPTokenizer
+ # TOKENIZER_PATH DESCRIPTION: tokenizer folder path TYPE: NoneType default: None
+ TOKENIZER_PATH: /home/Ubuntu/Downloads/Unmodel/Reference_models/clip_l/
+ # MAX_LENGTH DESCRIPTION: max length of input TYPE: int default: 77
+ MAX_LENGTH: 77
+ # OUTPUT_KEY DESCRIPTION: output key TYPE: str default: 'last_hidden_state'
+ OUTPUT_KEY: pooler_output
+ # D_TYPE DESCRIPTION: dtype TYPE: str default: 'bfloat16'
+ D_TYPE: bfloat16
+ # BATCH_INFER DESCRIPTION: batch infer TYPE: bool default: False
+ BATCH_INFER: True
+ CLEAN: whitespace
+ TUNER:
+ # THE LORA PARAMETERS
+ - NAME: SwiftLoRA
+ R: 64
+ LORA_ALPHA: 64
+ LORA_DROPOUT: 0.0
+ BIAS: "none"
+ TARGET_MODULES: "(model.double_blocks.*(.qkv|.img_mlp.0|.img_mlp.2|.txt_mlp.0|.txt_mlp.2|.proj|.img_mod.lin|.txt_mod.lin))|(model.single_blocks.*(.linear1|.linear2|.modulation.lin))$"
+ #
+ SAMPLE_ARGS:
+ SAMPLE_STEPS: 28
+ SAMPLER: flow_euler
+ SEED: 42
+ IMAGE_SIZE: [ 2048, 2048 ]
+ #IMAGE_SIZE: [ 1024, 1024 ]
+ GUIDE_SCALE: 50
+
+ LR_SCHEDULER:
+ NAME: StepAnnealingLR
+ WARMUP_STEPS: 0
+ TOTAL_STEPS: 100000
+ DECAY_MODE: 'cosine'
+ #
+ OPTIMIZER:
+ NAME: AdamW
+ LEARNING_RATE: 1e-3
+ BETAS: [ 0.9, 0.999 ]
+ EPS: 1e-6
+ WEIGHT_DECAY: 1e-2
+ AMSGRAD: False
+ #
+ TRAIN_DATA:
+ NAME: ACEPlusDataset
+ MODE: train
+ DATA_LIST: data/train.csv
+ DELIMITER: "#;#"
+ MODIFY_MODE: True
+ # input_image, input_mask, input_reference_image, target_image, instruction, task_type
+ FIELDS: ["edit_image", "edit_mask", "ref_image", "target_image", "prompt", "data_type"]
+ PATH_PREFIX: ""
+ EDIT_TYPE_LIST: []
+ MAX_SEQ_LEN: 4096
+ # MAX_SEQ_LEN: 2048 -Vijay
+ D: 16
+ PIN_MEMORY: True
+ BATCH_SIZE: 1
+ NUM_WORKERS: 4
+ SAMPLER:
+ NAME: LoopSampler
+
+ EVAL_DATA:
+ NAME: ACEPlusDataset
+ MODE: eval
+ DATA_LIST: data/train.csv
+ DELIMITER: "#;#"
+ MODIFY_MODE: True
+ # input_image, input_mask, input_reference_image, target_image, instruction, task_type
+ FIELDS: [ "edit_image", "edit_mask", "ref_image", "target_image", "prompt", "data_type" ]
+ PATH_PREFIX: ""
+ EDIT_TYPE_LIST: [ ]
+ MAX_SEQ_LEN: 4096
+ # MAX_SEQ_LEN: 2048 -Vijay
+ D: 16
+ PIN_MEMORY: True
+ BATCH_SIZE: 1
+ NUM_WORKERS: 4
+
+ TRAIN_HOOKS:
+ - NAME: ACEBackwardHook
+ GRADIENT_CLIP: 1.0
+ PRIORITY: 10
+ - NAME: LogHook
+ LOG_INTERVAL: 20
+ - NAME: ACECheckpointHook
+ INTERVAL: 50
+ #INTERVAL: 250 --Vijay
+ PRIORITY: 200
+ DISABLE_SNAPSHOT: True
+ - NAME: ProbeDataHook
+ PROB_INTERVAL: 10
+ #PROB_INTERVAL: 50 -Vijay
+ PRIORITY: 0
+ - NAME: TensorboardLogHook
+ LOG_INTERVAL: 50
+ EVAL_HOOKS:
+ - NAME: ProbeDataHook
+ PROB_INTERVAL: 10
+ #PROB_INTERVAL: 50 -Vijay
+ PRIORITY: 0
diff --git a/ACE_plus/train_config/ace_plus_lora.yaml b/ACE_plus/train_config/ace_plus_lora.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f78b12c9aaf2143ec8f710ffc26b49ac50e4c988
--- /dev/null
+++ b/ACE_plus/train_config/ace_plus_lora.yaml
@@ -0,0 +1,282 @@
+ENV:
+ BACKEND: nccl
+ SEED: 1999
+SOLVER:
+ # NAME DESCRIPTION: TYPE: default: 'LatentUfitSolver'
+ NAME: FormalACEPlusSolver
+ # MAX_STEPS DESCRIPTION: The total steps for training. TYPE: int default: 100000
+ MAX_STEPS: 100000
+ # USE_AMP DESCRIPTION: Use amp to surpport mix precision or not, default is False. TYPE: bool default: False
+ USE_AMP: True
+ # DTYPE DESCRIPTION: The precision for training. TYPE: str default: 'float32'
+ DTYPE: bfloat16
+ ENABLE_GRADSCALER: False
+ # USE_FAIRSCALE DESCRIPTION: Use fairscale as the backend of ddp, default False. TYPE: bool default: False
+ USE_FAIRSCALE: False
+ USE_ORIG_PARAMS: True
+ USE_FSDP: True # lora use ddp(USE_FSDP=False), else use fsdp(USE_FSDP=True)
+ # LOAD_MODEL_ONLY DESCRIPTION: Only load the model rather than the optimizer and schedule, default is False. TYPE: bool default: False
+ LOAD_MODEL_ONLY: False
+ # RESUME_FROM DESCRIPTION: Resume from some state of training! TYPE: str default: ''
+ RESUME_FROM:
+ # WORK_DIR DESCRIPTION: Save dir of the training log or model. TYPE: str default: ''
+ WORK_DIR: ./examples/exp_example/
+ # LOG_FILE DESCRIPTION: Save log path. TYPE: str default: ''
+ LOG_FILE: std_log.txt
+ # LOG_TRAIN_NUM DESCRIPTION: The number samples used to log in training phase. TYPE: int default: -1
+ LOG_TRAIN_NUM: 16
+ # FSDP_REDUCE_DTYPE DESCRIPTION: The dtype of reduce in FSDP. TYPE: str default: 'float16'
+ FSDP_REDUCE_DTYPE: float32
+ # FSDP_BUFFER_DTYPE DESCRIPTION: The dtype of buffer in FSDP. TYPE: str default: 'float16'
+ FSDP_BUFFER_DTYPE: float32
+ # FSDP_SHARD_MODULES DESCRIPTION: The modules to be sharded in FSDP. TYPE: list default: ['model']
+ FSDP_SHARD_MODULES:
+ - MODULE: 'model.model'
+ FSDP_GROUP: [ 'single_blocks', 'double_blocks']
+ - MODULE: 'cond_stage_model.t5_model.hf_module.encoder'
+ FSDP_GROUP: [ 'block' ] #
+ SAVE_MODULES: [ 'model'] #
+ TRAIN_MODULES: ['model']
+
+ #
+ FILE_SYSTEM:
+ - NAME: HuggingfaceFs
+ TEMP_DIR: ./cache
+ - NAME: ModelscopeFs
+ TEMP_DIR: ./cache
+ #
+ MODEL:
+ NAME: LatentDiffusionACEPlus
+ PARAMETERIZATION: rf
+ TIMESTEPS: 1000
+ GUIDE_SCALE: 1.0
+ PRETRAINED_MODEL:
+ IGNORE_KEYS: [ ]
+ USE_EMA: False
+ EVAL_EMA: False
+ SIZE_FACTOR: 8
+ DIFFUSION:
+ NAME: DiffusionFluxRF
+ PREDICTION_TYPE: raw
+ NOISE_NORM: True
+ # NOISE_SCHEDULER DESCRIPTION: TYPE: default: ''
+ NOISE_SCHEDULER:
+ NAME: FlowMatchFluxShiftScheduler
+ SHIFT: False
+ PRE_T_SAMPLE: True
+ PRE_T_SAMPLE_FOLD: 1
+ SIGMOID_SCALE: 1
+ BASE_SHIFT: 0.5
+ MAX_SHIFT: 1.15
+ SAMPLER_SCHEDULER:
+ NAME: FlowMatchFluxShiftScheduler
+ SHIFT: True
+ PRE_T_SAMPLE: False
+ SIGMOID_SCALE: 1
+ BASE_SHIFT: 0.5
+ MAX_SHIFT: 1.15
+
+ #
+ DIFFUSION_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'Flux'
+ NAME: FluxMRACEPlus
+ PRETRAINED_MODEL: /home/Ubuntu/Downloads/Unmodel/Reference_models/flux1-fill-dev.safetensors
+ # IN_CHANNELS DESCRIPTION: model's input channels. TYPE: int default: 64
+ IN_CHANNELS: 384
+ # OUT_CHANNELS DESCRIPTION: model's input channels. TYPE: int default: 64
+ OUT_CHANNELS: 64
+ # HIDDEN_SIZE DESCRIPTION: model's hidden size. TYPE: int default: 1024
+ HIDDEN_SIZE: 3072
+ REDUX_DIM: 1152
+ # NUM_HEADS DESCRIPTION: number of heads in the transformer. TYPE: int default: 16
+ NUM_HEADS: 24
+ # AXES_DIM DESCRIPTION: dimensions of the axes of the positional encoding. TYPE: list default: [16, 56, 56]
+ AXES_DIM: [ 16, 56, 56 ]
+ # THETA DESCRIPTION: theta for positional encoding. TYPE: int default: 10000
+ THETA: 10000
+ # VEC_IN_DIM DESCRIPTION: dimension of the vector input. TYPE: int default: 768
+ VEC_IN_DIM: 768
+ # GUIDANCE_EMBED DESCRIPTION: whether to use guidance embedding. TYPE: bool default: False
+ GUIDANCE_EMBED: True
+ # CONTEXT_IN_DIM DESCRIPTION: dimension of the context input. TYPE: int default: 4096
+ CONTEXT_IN_DIM: 4096
+ # MLP_RATIO DESCRIPTION: ratio of mlp hidden size to hidden size. TYPE: float default: 4.0
+ MLP_RATIO: 4.0
+ # QKV_BIAS DESCRIPTION: whether to use bias in qkv projection. TYPE: bool default: True
+ QKV_BIAS: True
+ # DEPTH DESCRIPTION: number of transformer blocks. TYPE: int default: 19
+ DEPTH: 19
+ # DEPTH_SINGLE_BLOCKS DESCRIPTION: number of transformer blocks in the single stream block. TYPE: int default: 38
+ DEPTH_SINGLE_BLOCKS: 38
+ # ATTN_BACKEND:setting 'flash_attn' to use flash_attn2, if the version of pytorch > 2.4.0, using 'pytorch' to use pytorch's implementation
+ ATTN_BACKEND: flash_attn
+ # USE_GRAD_CHECKPOINT: setting gc to true can decrease the memory usage.
+ USE_GRAD_CHECKPOINT: True
+
+ #
+ FIRST_STAGE_MODEL:
+ NAME: AutoencoderKLFlux
+ EMBED_DIM: 16
+ PRETRAINED_MODEL: /home/Ubuntu/Downloads/Unmodel/Reference_models/ae.safetensors
+ IGNORE_KEYS: [ ]
+ BATCH_SIZE: 8
+ USE_CONV: False
+ SCALE_FACTOR: 0.3611
+ SHIFT_FACTOR: 0.1159
+ #
+ ENCODER:
+ NAME: Encoder
+ CH: 128
+ OUT_CH: 3
+ NUM_RES_BLOCKS: 2
+ IN_CHANNELS: 3
+ ATTN_RESOLUTIONS: [ ]
+ CH_MULT: [ 1, 2, 4, 4 ]
+ Z_CHANNELS: 16
+ DOUBLE_Z: True
+ DROPOUT: 0.0
+ RESAMP_WITH_CONV: True
+ #
+ DECODER:
+ NAME: Decoder
+ CH: 128
+ OUT_CH: 3
+ NUM_RES_BLOCKS: 2
+ IN_CHANNELS: 3
+ ATTN_RESOLUTIONS: [ ]
+ CH_MULT: [ 1, 2, 4, 4 ]
+ Z_CHANNELS: 16
+ DROPOUT: 0.0
+ RESAMP_WITH_CONV: True
+ GIVE_PRE_END: False
+ TANH_OUT: False
+ #
+ COND_STAGE_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'T5PlusClipFluxEmbedder'
+ NAME: T5ACEPlusClipFluxEmbedder
+ # T5_MODEL DESCRIPTION: TYPE: default: ''
+ T5_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'HFEmbedder'
+ NAME: ACEHFEmbedder
+ # HF_MODEL_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_MODEL_CLS: T5EncoderModel
+ # MODEL_PATH DESCRIPTION: model folder path TYPE: NoneType default: None
+ MODEL_PATH: /home/Ubuntu/Downloads/Unmodel/Reference_models/t5_xxl/
+ # HF_TOKENIZER_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_TOKENIZER_CLS: T5Tokenizer
+ # TOKENIZER_PATH DESCRIPTION: tokenizer folder path TYPE: NoneType default: None
+ TOKENIZER_PATH: /home/Ubuntu/Downloads/Unmodel/Reference_models/t5_xxl/
+ ADDED_IDENTIFIER: [ '
','{image}', '{caption}', '{mask}', '{ref_image}', '{image1}', '{image2}', '{image3}', '{image4}', '{image5}', '{image6}', '{image7}', '{image8}', '{image9}' ]
+ # MAX_LENGTH DESCRIPTION: max length of input TYPE: int default: 77
+ MAX_LENGTH: 512
+ # OUTPUT_KEY DESCRIPTION: output key TYPE: str default: 'last_hidden_state'
+ OUTPUT_KEY: last_hidden_state
+ # D_TYPE DESCRIPTION: dtype TYPE: str default: 'bfloat16'
+ D_TYPE: bfloat16
+ # BATCH_INFER DESCRIPTION: batch infer TYPE: bool default: False
+ BATCH_INFER: False
+ CLEAN: whitespace
+ # CLIP_MODEL DESCRIPTION: TYPE: default: ''
+ CLIP_MODEL:
+ # NAME DESCRIPTION: TYPE: default: 'HFEmbedder'
+ NAME: ACEHFEmbedder
+ # HF_MODEL_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_MODEL_CLS: CLIPTextModel
+ # MODEL_PATH DESCRIPTION: model folder path TYPE: NoneType default: None
+ MODEL_PATH: /home/Ubuntu/Downloads/Unmodel/Reference_models/clip_l/
+ # HF_TOKENIZER_CLS DESCRIPTION: huggingface cls in transfomer TYPE: NoneType default: None
+ HF_TOKENIZER_CLS: CLIPTokenizer
+ # TOKENIZER_PATH DESCRIPTION: tokenizer folder path TYPE: NoneType default: None
+ TOKENIZER_PATH: /home/Ubuntu/Downloads/Unmodel/Reference_models/clip_l/
+ # MAX_LENGTH DESCRIPTION: max length of input TYPE: int default: 77
+ MAX_LENGTH: 77
+ # OUTPUT_KEY DESCRIPTION: output key TYPE: str default: 'last_hidden_state'
+ OUTPUT_KEY: pooler_output
+ # D_TYPE DESCRIPTION: dtype TYPE: str default: 'bfloat16'
+ D_TYPE: bfloat16
+ # BATCH_INFER DESCRIPTION: batch infer TYPE: bool default: False
+ BATCH_INFER: True
+ CLEAN: whitespace
+ TUNER:
+ # THE LORA PARAMETERS
+ - NAME: SwiftLoRA
+ R: 64
+ LORA_ALPHA: 64
+ LORA_DROPOUT: 0.0
+ BIAS: "none"
+ TARGET_MODULES: "(model.double_blocks.*(.qkv|.img_mlp.0|.img_mlp.2|.txt_mlp.0|.txt_mlp.2|.proj|.img_mod.lin|.txt_mod.lin))|(model.single_blocks.*(.linear1|.linear2|.modulation.lin))$"
+ #
+ SAMPLE_ARGS:
+ SAMPLE_STEPS: 28
+ SAMPLER: flow_euler
+ SEED: 42
+ IMAGE_SIZE: [ 1024, 1024 ]
+ GUIDE_SCALE: 50
+
+ LR_SCHEDULER:
+ NAME: StepAnnealingLR
+ WARMUP_STEPS: 0
+ TOTAL_STEPS: 100000
+ DECAY_MODE: 'cosine'
+ #
+ OPTIMIZER:
+ NAME: AdamW
+ LEARNING_RATE: 1e-3
+ BETAS: [ 0.9, 0.999 ]
+ EPS: 1e-6
+ WEIGHT_DECAY: 1e-2
+ AMSGRAD: False
+ #
+ TRAIN_DATA:
+ NAME: ACEPlusDataset
+ MODE: train
+ DATA_LIST: data/train.csv
+ DELIMITER: "#;#"
+ # input_image, input_mask, input_reference_image, target_image, instruction, task_type
+ FIELDS: ["edit_image", "edit_mask", "ref_image", "target_image", "prompt", "data_type"]
+ PATH_PREFIX: ""
+ EDIT_TYPE_LIST: []
+ MAX_SEQ_LEN: 2048
+ D: 16
+ PIN_MEMORY: True
+ BATCH_SIZE: 1
+ NUM_WORKERS: 4
+ SAMPLER:
+ NAME: LoopSampler
+
+ EVAL_DATA:
+ NAME: ACEPlusDataset
+ MODE: eval
+ DATA_LIST: data/train.csv
+ DELIMITER: "#;#"
+ # input_image, input_mask, input_reference_image, target_image, instruction, task_type
+ FIELDS: [ "edit_image", "edit_mask", "ref_image", "target_image", "prompt", "data_type" ]
+ PATH_PREFIX: ""
+ EDIT_TYPE_LIST: [ ]
+ MAX_SEQ_LEN: 2048
+ D: 16
+ PIN_MEMORY: True
+ BATCH_SIZE: 1
+ NUM_WORKERS: 4
+
+ TRAIN_HOOKS:
+ - NAME: ACEBackwardHook
+ GRADIENT_CLIP: 1.0
+ PRIORITY: 10
+ - NAME: LogHook
+ LOG_INTERVAL: 20
+ - NAME: ACECheckpointHook
+ INTERVAL: 10
+ # INTERVAL: 250
+ PRIORITY: 200
+ DISABLE_SNAPSHOT: True
+ - NAME: ProbeDataHook
+ PROB_INTERVAL: 50
+ PRIORITY: 0
+ - NAME: TensorboardLogHook
+ LOG_INTERVAL: 50
+ EVAL_HOOKS:
+ - NAME: ProbeDataHook
+ PROB_INTERVAL: 10
+ #PROB_INTERVAL: 50
+ PRIORITY: 0
diff --git a/ACE_plus/workflow/ComfyUI-ACE_Plus/__init__.py b/ACE_plus/workflow/ComfyUI-ACE_Plus/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..bc8e8363dc2fc7ca3cbd9b4ad25c759ddb5c90c4
--- /dev/null
+++ b/ACE_plus/workflow/ComfyUI-ACE_Plus/__init__.py
@@ -0,0 +1,17 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Alibaba, Inc. and its affiliates.
+from .ace_plus_fft_node import (ACEPlusFFTLoader, ACEPlusFFTConditioning, ACEPlusLoraConditioning,
+ AcePlusFFTProcessor, AcePlusLoraProcessor)
+
+NODE_MAPPINGS = {
+ 'ACEPlusLoader': ('ACEPlusFFTLoader~', ACEPlusFFTLoader),
+ 'ACEPlusConditioning': ('ACEPlusFFTConditioning~', ACEPlusFFTConditioning),
+ 'ACEPlusFFTProcessor': ('ACEPlusFFTProcessor~', AcePlusFFTProcessor),
+ 'ACEPlusLoraProcessor': ('ACEPlusLoraProcessor~', AcePlusLoraProcessor),
+ 'ACEPlusLoraConditioning': ('ACEPlusLoraConditioning~', ACEPlusLoraConditioning)
+}
+
+NODE_CLASS_MAPPINGS = {k: v[1] for k, v in NODE_MAPPINGS.items()}
+NODE_DISPLAY_NAME_MAPPINGS = {k: v[0] for k, v in NODE_MAPPINGS.items()}
+
+__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS']
diff --git a/ACE_plus/workflow/ComfyUI-ACE_Plus/ace_plus_fft_node.py b/ACE_plus/workflow/ComfyUI-ACE_Plus/ace_plus_fft_node.py
new file mode 100644
index 0000000000000000000000000000000000000000..1f40e3339123325cddd6f9020b298d0bcaa4a45f
--- /dev/null
+++ b/ACE_plus/workflow/ComfyUI-ACE_Plus/ace_plus_fft_node.py
@@ -0,0 +1,585 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Alibaba, Inc. and its affiliates.
+import folder_paths, os
+from comfy.supported_models import FluxInpaint, models
+from nodes import UNETLoader
+try:
+ from scepter.modules.utils.file_system import FS
+ from scepter.modules.annotator.registry import ANNOTATORS
+ from scepter.modules.utils.config import Config
+
+ fs_list = [
+ Config(cfg_dict={"NAME": "HuggingfaceFs", "TEMP_DIR": "./"}, load=False),
+ Config(cfg_dict={"NAME": "ModelscopeFs", "TEMP_DIR": "./"}, load=False),
+ Config(cfg_dict={"NAME": "HttpFs", "TEMP_DIR": "./"}, load=False),
+ Config(cfg_dict={"NAME": "LocalFs", "TEMP_DIR": "./"}, load=False)
+ ]
+
+ for one_fs in fs_list:
+ FS.init_fs_client(one_fs)
+ SCEPTER = True
+except:
+ SCEPTER = False
+
+class ACEPlus(FluxInpaint):
+ unet_config = {
+ "image_model": "flux",
+ "guidance_embed": True,
+ "in_channels": 112,
+ }
+
+
+class ACEPlusFFTLoader(UNETLoader):
+
+ def __init__(self):
+ pass
+
+ @classmethod
+ def INPUT_TYPES(s):
+ return {"required": {"unet_name": (folder_paths.get_filename_list("diffusion_models"), ),
+ "weight_dtype": (["default", "fp8_e4m3fn", "fp8_e4m3fn_fast", "fp8_e5m2"],)
+ }}
+ RETURN_TYPES = ("MODEL",)
+ FUNCTION = "load_unet"
+ CATEGORY = "ComfyUI-ACE_Plus"
+
+ def load_unet(self, unet_name, weight_dtype):
+ models.append(ACEPlus)
+ return super().load_unet(unet_name, weight_dtype)
+
+
+import torch
+import node_helpers
+
+
+class ACEPlusFFTConditioning:
+
+ def __init__(self):
+ pass
+
+ @classmethod
+ def INPUT_TYPES(s):
+ return {"required": {"positive": ("CONDITIONING", ),
+ "negative": ("CONDITIONING", ),
+ "vae": ("VAE", ),
+ "ucpixels": ("IMAGE", ),
+ "cpixels": ("IMAGE", ),
+ "mask": ("MASK", ),
+ "noise_mask": ("BOOLEAN", {"default": True, "tooltip": "Add a noise mask to the latent "
+ "so sampling will only happen "
+ "within the mask. Might improve "
+ "results or completely break "
+ "things depending on the model."}),
+ }}
+
+ RETURN_TYPES = ("CONDITIONING", "CONDITIONING", "LATENT")
+ RETURN_NAMES = ("positive", "negative", "latent")
+ FUNCTION = "encode"
+
+ CATEGORY = "ComfyUI-ACE_Plus"
+
+ def encode(self,
+ positive,
+ negative,
+ vae,
+ ucpixels,
+ cpixels,
+ mask,
+ noise_mask=True):
+ x = (ucpixels.shape[1] // 8) * 8
+ y = (ucpixels.shape[2] // 8) * 8
+ mask = torch.nn.functional.interpolate(mask.reshape((-1, 1, mask.shape[-2], mask.shape[-1])),
+ size=(ucpixels.shape[1], ucpixels.shape[2]), mode="bilinear")
+
+ orig_pixels = ucpixels
+ pixels = orig_pixels.clone()
+ if pixels.shape[1] != x or pixels.shape[2] != y:
+ x_offset = (pixels.shape[1] % 8) // 2
+ y_offset = (pixels.shape[2] % 8) // 2
+ pixels = pixels[:, x_offset:x + x_offset, y_offset:y + y_offset, :]
+ mask = mask[:, :, x_offset:x + x_offset, y_offset:y + y_offset]
+
+ orig_c_pixels = cpixels
+ c_pixels = orig_c_pixels.clone()
+ if orig_c_pixels.shape[1] != x or orig_c_pixels.shape[2] != y:
+ x_offset = (orig_c_pixels.shape[1] % 8) // 2
+ y_offset = (orig_c_pixels.shape[2] % 8) // 2
+ c_pixels = orig_c_pixels[:, x_offset:x + x_offset, y_offset:y + y_offset, :]
+
+ concat_latent = vae.encode(pixels)
+ orig_latent = vae.encode(orig_pixels)
+ c_concat_latent = vae.encode(c_pixels)
+
+ out_latent = {"samples": orig_latent}
+ if noise_mask:
+ out_latent["noise_mask"] = mask
+
+ out = []
+ for conditioning in [positive, negative]:
+ c = node_helpers.conditioning_set_values(conditioning, {
+ "concat_latent_image": torch.cat([concat_latent, c_concat_latent], dim=1),
+ "concat_mask": mask})
+ out.append(c)
+
+ return (out[0], out[1], out_latent)
+
+class ACEPlusLoraConditioning:
+
+ @classmethod
+ def INPUT_TYPES(s):
+ return {"required": {"positive": ("CONDITIONING",),
+ "negative": ("CONDITIONING",),
+ "vae": ("VAE",),
+ "pixels": ("IMAGE",),
+ "mask": ("MASK",),
+ "noise_mask": ("BOOLEAN", {"default": True,
+ "tooltip": "Add a noise mask to the latent so sampling will only happen within the mask. Might improve results or completely break things depending on the model."}),
+ }}
+
+ RETURN_TYPES = ("CONDITIONING", "CONDITIONING", "LATENT")
+ RETURN_NAMES = ("positive", "negative", "latent")
+ FUNCTION = "encode"
+
+ CATEGORY = "ComfyUI-ACE_Plus"
+
+ def encode(self, positive, negative, pixels, vae, mask, noise_mask=True):
+ x = (pixels.shape[1] // 8) * 8
+ y = (pixels.shape[2] // 8) * 8
+ mask = torch.nn.functional.interpolate(mask.reshape((-1, 1, mask.shape[-2], mask.shape[-1])),
+ size=(pixels.shape[1], pixels.shape[2]), mode="bilinear")
+
+ orig_pixels = pixels
+ pixels = orig_pixels.clone()
+ if pixels.shape[1] != x or pixels.shape[2] != y:
+ x_offset = (pixels.shape[1] % 8) // 2
+ y_offset = (pixels.shape[2] % 8) // 2
+ pixels = pixels[:, x_offset:x + x_offset, y_offset:y + y_offset, :]
+ mask = mask[:, :, x_offset:x + x_offset, y_offset:y + y_offset]
+
+ concat_latent = vae.encode(pixels)
+ orig_latent = vae.encode(orig_pixels)
+
+ out_latent = {}
+
+ out_latent["samples"] = orig_latent
+ if noise_mask:
+ out_latent["noise_mask"] = mask
+
+ out = []
+ for conditioning in [positive, negative]:
+ c = node_helpers.conditioning_set_values(conditioning, {"concat_latent_image": concat_latent,
+ "concat_mask": mask})
+ out.append(c)
+ return (out[0], out[1], out_latent)
+
+
+import torch
+import math
+import os
+import yaml
+import torchvision.transforms as T
+import numpy as np
+from PIL import Image
+
+
+class AcePlusFFTProcessor:
+ def __init__(self,
+ max_aspect_ratio=4,
+ d=16,
+ max_seq_len=1024):
+ self.max_aspect_ratio = max_aspect_ratio
+ self.max_seq_len = max_seq_len
+ self.d = d
+ current_dir = os.path.dirname(os.path.abspath(__file__))
+ config_path = os.path.join(current_dir, 'config', 'ace_plus_fft_processor.yaml')
+ self.processor_cfg = self.load_yaml(config_path)
+ self.task_list = {}
+ for task in self.processor_cfg['PREPROCESSOR']:
+ self.task_list[task['TYPE']] = task
+ self.transforms = T.Compose([
+ T.ToTensor(),
+ T.Normalize(mean=[0, 0, 0], std=[1.0, 1.0, 1.0])
+ ])
+
+ CATEGORY = 'ComfyUI-ACE_Plus'
+
+ @classmethod
+ def INPUT_TYPES(s):
+ return {
+ 'required': {
+ 'use_reference': ('BOOLEAN', {'default': True}),
+ 'height': ('INT', {
+ 'default': 1024,
+ 'min': 256,
+ 'max': 1436,
+ 'step': 16
+ }),
+ 'width': ('INT', {
+ 'default': 1024,
+ 'min': 256,
+ 'max': 1436,
+ 'step': 16
+ }),
+ 'task_type': (list(s().task_list.keys()),),
+ 'keep_pixels_rate': ('FLOAT', {
+ 'default': 0.8,
+ 'min': 0,
+ 'max': 1,
+ 'step': 0.01
+ }),
+ 'max_seq_length': ('INT', {
+ 'default': 3072,
+ 'min': 1024,
+ 'max': 5120,
+ 'step': 0.01
+ }),
+ },
+ 'optional': {
+ 'reference_image': ('IMAGE',),
+ 'edit_image': ('IMAGE',),
+ 'edit_mask': ('MASK',),
+
+ }
+ }
+
+ OUTPUT_NODE = True
+ RETURN_TYPES = ('IMAGE', 'IMAGE', 'MASK', 'INT', 'INT', 'INT')
+ RETURN_NAMES = ('UC_IMAGE', 'C_IMAGE', 'MASK', 'OUT_H', 'OUT_W', 'SLICE_W')
+ FUNCTION = 'preprocess'
+
+ def load_yaml(self, cfg_file):
+ with open(cfg_file, 'r') as f:
+ cfg = yaml.load(f.read(), Loader=yaml.SafeLoader)
+ return cfg
+
+ def image_check(self, image):
+ if image is None:
+ return image
+ # preprocess
+ H, W = image.shape[1: 3]
+ image = image.permute(0, 3, 1, 2)
+ if H / W > self.max_aspect_ratio:
+ image[0] = T.CenterCrop([int(self.max_aspect_ratio * W), W])(image[0])
+ elif W / H > self.max_aspect_ratio:
+ image[0] = T.CenterCrop([H, int(self.max_aspect_ratio * H)])(image[0])
+ return image[0]
+
+ def trans_pil_tensor(self, pil_image):
+ transform = T.Compose([
+ T.ToTensor()
+ ])
+ tensor_image = transform(pil_image)
+ return tensor_image
+
+ def edit_preprocess(self, processor, device, edit_image, edit_mask):
+
+ if edit_image is None or processor is None:
+ return edit_image
+ if not SCEPTER:
+ raise ImportError(f'Please install scepter to use edit processor {processor} by '
+ f'runing "pip install scepter" in the conda env')
+ processor = Config(cfg_dict=processor, load=False)
+ processor = ANNOTATORS.build(processor).to(device)
+ edit_image = Image.fromarray(np.array(edit_image[0] * 255).astype(np.uint8)).convert('RGB')
+ new_edit_image = processor(np.asarray(edit_image))
+
+ del processor
+ new_edit_image = Image.fromarray(new_edit_image)
+ if edit_mask is not None:
+ edit_mask = np.where(edit_mask > 0.5, 1, 0) * 255
+ edit_mask = Image.fromarray(np.array(edit_mask[0]).astype(np.uint8)).convert('L')
+
+ if new_edit_image.size != edit_image.size:
+ edit_image = T.Resize((edit_image.size[1], edit_image.size[0]),
+ interpolation=T.InterpolationMode.BILINEAR,
+ antialias=True)(new_edit_image)
+
+ image = Image.composite(new_edit_image, edit_image, edit_mask)
+
+ return self.trans_pil_tensor(image).unsqueeze(0).permute(0, 2, 3, 1)
+
+ def preprocess(self,
+ reference_image=None,
+ edit_image=None,
+ edit_mask=None,
+ use_reference=True,
+ task_type=None,
+ height=1024,
+ width=1024,
+ keep_pixels_rate=0.8,
+ max_seq_length=4096):
+ self.max_seq_len = max_seq_length
+ if not use_reference and edit_image is not None:
+ reference_image = None
+ if edit_mask is not None and edit_image is not None:
+ iH, iW = edit_image.shape[1:3]
+ mH, mW = edit_mask.shape[1:3]
+ if iH != mH or iW != mW:
+ edit_mask = torch.ones(edit_image.shape[:3])
+
+ if task_type != 'repainting':
+ repainting_scale = 0
+ else:
+ repainting_scale = 1
+ if task_type in self.task_list:
+ edit_image = self.edit_preprocess(self.task_list[task_type]['ANNOTATOR'], 0,
+ edit_image, edit_mask)
+ if reference_image is not None:
+ reference_image = self.image_check(reference_image) - 0.5
+ if edit_image is not None:
+ edit_image = self.image_check(edit_image) - 0.5
+ # for reference generation
+ if edit_image is None:
+ edit_image = torch.zeros([3, height, width])
+ edit_mask = torch.ones([1, height, width])
+ else:
+ if edit_mask is None:
+ _, eH, eW = edit_image.shape
+ edit_mask = np.ones((eH, eW))
+ else:
+ edit_mask = np.asarray(edit_mask)[0]
+ edit_mask = np.where(edit_mask > 0.5, 1, 0)
+ edit_mask = edit_mask.astype(
+ np.float32) if np.any(edit_mask) else np.ones_like(edit_mask).astype(
+ np.float32)
+ edit_mask = torch.tensor(edit_mask).unsqueeze(0)
+
+ edit_image = edit_image * (1 - edit_mask * repainting_scale)
+
+ out_h, out_w = edit_image.shape[-2:]
+
+ assert edit_mask is not None
+ if reference_image is not None:
+ _, H, W = reference_image.shape
+ _, eH, eW = edit_image.shape
+ if not True:
+ # align height with edit_image
+ scale = eH / H
+ tH, tW = eH, int(W * scale)
+ reference_image = T.Resize((tH, tW), interpolation=T.InterpolationMode.BILINEAR, antialias=True)(
+ reference_image)
+ else:
+ # padding
+ if H >= keep_pixels_rate * eH:
+ tH = int(eH * keep_pixels_rate)
+ scale = tH / H
+ tW = int(W * scale)
+ reference_image = T.Resize((tH, tW), interpolation=T.InterpolationMode.BILINEAR, antialias=True)(
+ reference_image)
+ rH, rW = reference_image.shape[-2:]
+ delta_w = 0
+ delta_h = eH - rH
+ padding = (delta_w // 2, delta_h // 2, delta_w - (delta_w // 2), delta_h - (delta_h // 2))
+ reference_image = T.Pad(padding, fill=0, padding_mode="constant")(reference_image)
+ edit_image = torch.cat([reference_image, edit_image], dim=-1)
+ edit_mask = torch.cat([torch.zeros([1, reference_image.shape[1], reference_image.shape[2]]), edit_mask],
+ dim=-1)
+ slice_w = reference_image.shape[-1]
+ else:
+ slice_w = 0
+
+ H, W = edit_image.shape[-2:]
+ scale = min(1.0, math.sqrt(self.max_seq_len / ((H / self.d) * (W / self.d))))
+ rH = int(H * scale) // self.d * self.d
+ rW = int(W * scale) // self.d * self.d
+ slice_w = int(slice_w * scale) // self.d * self.d
+
+ edit_image = T.Resize((rH, rW), interpolation=T.InterpolationMode.NEAREST_EXACT, antialias=True)(edit_image)
+ edit_mask = T.Resize((rH, rW), interpolation=T.InterpolationMode.NEAREST_EXACT, antialias=True)(edit_mask)
+
+ change_image = edit_image * edit_mask
+ edit_image = edit_image * (1 - edit_mask)
+ edit_image = edit_image.unsqueeze(0).permute(0, 2, 3, 1)
+ change_image = change_image.unsqueeze(0).permute(0, 2, 3, 1)
+ slice_w = slice_w if slice_w > 30 else slice_w + 30
+
+ return edit_image + 0.5, change_image + 0.5, edit_mask, out_h, out_w, slice_w
+
+class AcePlusLoraProcessor:
+ def __init__(self,
+ max_aspect_ratio=4,
+ d=16,
+ max_seq_len=1024):
+ self.max_aspect_ratio = max_aspect_ratio
+ self.max_seq_len = max_seq_len
+ self.d = d
+ current_dir = os.path.dirname(os.path.abspath(__file__))
+ config_path = os.path.join(current_dir, 'config', 'ace_plus_fft_processor.yaml')
+ self.processor_cfg = self.load_yaml(config_path)
+ self.task_list = {}
+ for task in self.processor_cfg['PREPROCESSOR']:
+ self.task_list[task['TYPE']] = task
+ self.transforms = T.Compose([
+ T.ToTensor(),
+ T.Normalize(mean=[0, 0, 0], std=[1.0, 1.0, 1.0])
+ ])
+
+ CATEGORY = 'ComfyUI-ACE_Plus'
+
+ @classmethod
+ def INPUT_TYPES(s):
+ return {
+ 'required': {
+ 'use_reference': ('BOOLEAN', {'default': True}),
+ 'height': ('INT', {
+ 'default': 1024,
+ 'min': 256,
+ 'max': 1436,
+ 'step': 16
+ }),
+ 'width': ('INT', {
+ 'default': 1024,
+ 'min': 256,
+ 'max': 1436,
+ 'step': 16
+ }),
+ 'task_type': (list(s().task_list.keys()),),
+ 'max_seq_length': ('INT', {
+ 'default': 3072,
+ 'min': 1024,
+ 'max': 5120,
+ 'step': 0.01
+ }),
+ },
+ 'optional': {
+ 'reference_image': ('IMAGE',),
+ 'edit_image': ('IMAGE',),
+ 'edit_mask': ('MASK',),
+
+ }
+ }
+
+ OUTPUT_NODE = True
+ RETURN_TYPES = ('IMAGE', 'MASK', 'INT', 'INT', 'INT')
+ RETURN_NAMES = ('IMAGE', 'MASK', 'OUT_H', 'OUT_W', 'SLICE_W')
+ FUNCTION = 'preprocess'
+
+ def load_yaml(self, cfg_file):
+ with open(cfg_file, 'r') as f:
+ cfg = yaml.load(f.read(), Loader=yaml.SafeLoader)
+ return cfg
+
+ def image_check(self, image):
+ if image is None:
+ return image
+ # preprocess
+ H, W = image.shape[1: 3]
+ image = image.permute(0, 3, 1, 2)
+ if H / W > self.max_aspect_ratio:
+ image[0] = T.CenterCrop([int(self.max_aspect_ratio * W), W])(image[0])
+ elif W / H > self.max_aspect_ratio:
+ image[0] = T.CenterCrop([H, int(self.max_aspect_ratio * H)])(image[0])
+ return image[0]
+
+ def trans_pil_tensor(self, pil_image):
+ transform = T.Compose([
+ T.ToTensor()
+ ])
+ tensor_image = transform(pil_image)
+ return tensor_image
+
+ def edit_preprocess(self, processor, device, edit_image, edit_mask):
+
+ if edit_image is None or processor is None:
+ return edit_image
+ if not SCEPTER:
+ raise ImportError(f'Please install scepter to use edit processor {processor} by '
+ f'runing "pip install scepter" in the conda env')
+ processor = Config(cfg_dict=processor, load=False)
+ processor = ANNOTATORS.build(processor).to(device)
+ edit_image = Image.fromarray(np.array(edit_image[0] * 255).astype(np.uint8)).convert('RGB')
+ new_edit_image = processor(np.asarray(edit_image))
+
+ del processor
+ new_edit_image = Image.fromarray(new_edit_image)
+ if edit_mask is not None:
+ edit_mask = np.where(edit_mask > 0.5, 1, 0) * 255
+ edit_mask = Image.fromarray(np.array(edit_mask[0]).astype(np.uint8)).convert('L')
+
+ if new_edit_image.size != edit_image.size:
+ new_edit_image = T.Resize((edit_image.size[1], edit_image.size[0]),
+ interpolation=T.InterpolationMode.BILINEAR,
+ antialias=True)(new_edit_image)
+
+ image = Image.composite(new_edit_image, edit_image, edit_mask)
+
+ return self.trans_pil_tensor(image).unsqueeze(0).permute(0, 2, 3, 1)
+
+ def preprocess(self,
+ reference_image=None,
+ edit_image=None,
+ edit_mask=None,
+ use_reference=True,
+ task_type=None,
+ height=1024,
+ width=1024,
+ max_seq_length=4096):
+ self.max_seq_len = max_seq_length
+ if not use_reference and edit_image is not None:
+ reference_image = None
+ if edit_mask is not None and edit_image is not None:
+ iH, iW = edit_image.shape[1:3]
+ mH, mW = edit_mask.shape[1:3]
+ if iH != mH or iW != mW:
+ edit_mask = torch.ones(edit_image.shape[:3])
+
+ if task_type != 'repainting':
+ repainting_scale = 0.0
+ else:
+ repainting_scale = 1.0
+ if task_type in self.task_list:
+ edit_image = self.edit_preprocess(self.task_list[task_type]['ANNOTATOR'], 0,
+ edit_image, edit_mask)
+ if reference_image is not None:
+ reference_image = self.image_check(reference_image) - 0.5
+ if edit_image is not None:
+ edit_image = self.image_check(edit_image) - 0.5
+ # for reference generation
+ if edit_image is None:
+ edit_image = torch.zeros([3, height, width])
+ edit_mask = torch.ones([1, height, width])
+ else:
+ if edit_mask is None:
+ _, eH, eW = edit_image.shape
+ edit_mask = np.ones((eH, eW))
+ else:
+ edit_mask = np.asarray(edit_mask)[0]
+ edit_mask = np.where(edit_mask > 0.5, 1, 0)
+ edit_mask = edit_mask.astype(
+ np.float32) if np.any(edit_mask) else np.ones_like(edit_mask).astype(
+ np.float32)
+ edit_mask = torch.tensor(edit_mask).unsqueeze(0)
+
+ edit_image = edit_image * (1 - edit_mask * repainting_scale)
+
+ out_h, out_w = edit_image.shape[-2:]
+
+ assert edit_mask is not None
+ if reference_image is not None:
+ _, H, W = reference_image.shape
+ _, eH, eW = edit_image.shape
+ # align height with edit_image
+ scale = eH / H
+ tH, tW = eH, int(W * scale)
+ reference_image = T.Resize((tH, tW), interpolation=T.InterpolationMode.BILINEAR, antialias=True)(
+ reference_image)
+ edit_image = torch.cat([reference_image, edit_image], dim=-1)
+ edit_mask = torch.cat([torch.zeros([1, reference_image.shape[1], reference_image.shape[2]]), edit_mask],
+ dim=-1)
+ slice_w = reference_image.shape[-1]
+ else:
+ slice_w = 0
+
+ H, W = edit_image.shape[-2:]
+ scale = min(1.0, math.sqrt(self.max_seq_len * 2 / ((H / self.d) * (W / self.d))))
+ rH = int(H * scale) // self.d * self.d
+ rW = int(W * scale) // self.d * self.d
+ slice_w = int(slice_w * scale) // self.d * self.d
+
+ edit_image = T.Resize((rH, rW), interpolation=T.InterpolationMode.NEAREST_EXACT, antialias=True)(edit_image)
+ edit_mask = T.Resize((rH, rW), interpolation=T.InterpolationMode.NEAREST_EXACT, antialias=True)(edit_mask)
+
+ edit_image = edit_image.unsqueeze(0).permute(0, 2, 3, 1)
+ slice_w = slice_w if slice_w < 30 else slice_w + 30
+
+ return edit_image + 0.5, edit_mask, out_h, out_w, slice_w
diff --git a/ACE_plus/workflow/ComfyUI-ACE_Plus/config/ace_plus_fft_processor.yaml b/ACE_plus/workflow/ComfyUI-ACE_Plus/config/ace_plus_fft_processor.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..5ed1e099a2ccf2ebdf85b8561ff56f3461c99ee2
--- /dev/null
+++ b/ACE_plus/workflow/ComfyUI-ACE_Plus/config/ace_plus_fft_processor.yaml
@@ -0,0 +1,25 @@
+PREPROCESSOR:
+ - TYPE: repainting
+ REPAINTING_SCALE: 1.0
+ ANNOTATOR:
+ - TYPE: no_preprocess
+ REPAINTING_SCALE: 0.0
+ ANNOTATOR:
+ - TYPE: contour_repainting
+ REPAINTING_SCALE: 0.0
+ ANNOTATOR:
+ NAME: InfoDrawContourAnnotator
+ INPUT_NC: 3
+ OUTPUT_NC: 1
+ N_RESIDUAL_BLOCKS: 3
+ SIGMOID: True
+ PRETRAINED_MODEL: "ms://iic/scepter_annotator@annotator/ckpts/informative_drawing_contour_style.pth"
+ - TYPE: depth_repainting
+ REPAINTING_SCALE: 0.0
+ ANNOTATOR:
+ NAME: MidasDetector
+ PRETRAINED_MODEL: "ms://iic/scepter_annotator@annotator/ckpts/dpt_hybrid-midas-501f0c75.pt"
+ - TYPE: recolorizing
+ REPAINTING_SCALE: 0.0
+ ANNOTATOR:
+ NAME: GrayAnnotator
\ No newline at end of file
diff --git a/ACE_plus/workflow_example/ACE_Plus_FFT_workflow_controlpreprocess.json b/ACE_plus/workflow_example/ACE_Plus_FFT_workflow_controlpreprocess.json
new file mode 100644
index 0000000000000000000000000000000000000000..b814e134e7eccccfafdcf3202017d6ab28c9d8d6
--- /dev/null
+++ b/ACE_plus/workflow_example/ACE_Plus_FFT_workflow_controlpreprocess.json
@@ -0,0 +1,1021 @@
+{
+ "last_node_id": 378,
+ "last_link_id": 674,
+ "nodes": [
+ {
+ "id": 290,
+ "type": "VAELoader",
+ "pos": [
+ -3938.71923828125,
+ 1587.7381591796875
+ ],
+ "size": [
+ 315,
+ 58
+ ],
+ "flags": {},
+ "order": 0,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "VAE",
+ "type": "VAE",
+ "links": [
+ 441,
+ 599
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAELoader"
+ },
+ "widgets_values": [
+ "ae.safetensors"
+ ]
+ },
+ {
+ "id": 289,
+ "type": "DualCLIPLoader",
+ "pos": [
+ -3938.109619140625,
+ 1719.1380615234375
+ ],
+ "size": [
+ 315,
+ 106
+ ],
+ "flags": {},
+ "order": 1,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "CLIP",
+ "type": "CLIP",
+ "links": [
+ 439,
+ 440
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DualCLIPLoader"
+ },
+ "widgets_values": [
+ "clip_l.safetensors",
+ "t5xxl_fp16.safetensors",
+ "flux"
+ ]
+ },
+ {
+ "id": 292,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -3877.987548828125,
+ 1898.810302734375
+ ],
+ "size": [
+ 400,
+ 200
+ ],
+ "flags": {
+ "collapsed": true
+ },
+ "order": 6,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 440
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 598
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ ""
+ ],
+ "color": "#322",
+ "bgcolor": "#533"
+ },
+ {
+ "id": 295,
+ "type": "DifferentialDiffusion",
+ "pos": [
+ -3905.315673828125,
+ 2370.018798828125
+ ],
+ "size": [
+ 203.87991333007812,
+ 28.94829559326172
+ ],
+ "flags": {},
+ "order": 8,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 610
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 438
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DifferentialDiffusion"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 323,
+ "type": "Note",
+ "pos": [
+ -4520.6875,
+ 2339.823974609375
+ ],
+ "size": [
+ 454.2545166015625,
+ 174.908447265625
+ ],
+ "flags": {},
+ "order": 2,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [],
+ "properties": {},
+ "widgets_values": [
+ "ACE_Plus Model download: https://huggingface.co/ali-vilab/ACE_Plus/blob/main/ace_plus_fft.safetensors"
+ ],
+ "color": "#332922",
+ "bgcolor": "#593930"
+ },
+ {
+ "id": 294,
+ "type": "FluxGuidance",
+ "pos": [
+ -3108.354736328125,
+ 1719.18017578125
+ ],
+ "size": [
+ 210,
+ 58
+ ],
+ "flags": {},
+ "order": 9,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "conditioning",
+ "type": "CONDITIONING",
+ "link": 446
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 597
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "FluxGuidance"
+ },
+ "widgets_values": [
+ 50
+ ]
+ },
+ {
+ "id": 287,
+ "type": "VAEDecode",
+ "pos": [
+ -3103.54833984375,
+ 1858.2403564453125
+ ],
+ "size": [
+ 210,
+ 46
+ ],
+ "flags": {},
+ "order": 15,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "samples",
+ "type": "LATENT",
+ "link": 442
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 441
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 652
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAEDecode"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 373,
+ "type": "ImageCrop",
+ "pos": [
+ -3154.792236328125,
+ 2000.0208740234375
+ ],
+ "size": [
+ 315,
+ 130
+ ],
+ "flags": {},
+ "order": 16,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "image",
+ "type": "IMAGE",
+ "link": 652
+ },
+ {
+ "name": "width",
+ "type": "INT",
+ "link": 655,
+ "widget": {
+ "name": "width"
+ }
+ },
+ {
+ "name": "height",
+ "type": "INT",
+ "link": 656,
+ "widget": {
+ "name": "height"
+ }
+ },
+ {
+ "name": "x",
+ "type": "INT",
+ "link": 657,
+ "widget": {
+ "name": "x"
+ }
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 658
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ImageCrop"
+ },
+ "widgets_values": [
+ 512,
+ 512,
+ 0,
+ 0
+ ]
+ },
+ {
+ "id": 374,
+ "type": "PreviewImage",
+ "pos": [
+ -2758.914306640625,
+ 1791.9202880859375
+ ],
+ "size": [
+ 297.7324523925781,
+ 332.22821044921875
+ ],
+ "flags": {},
+ "order": 17,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 658
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": [],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 291,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -3557.567626953125,
+ 1652.6763916015625
+ ],
+ "size": [
+ 389.0423278808594,
+ 213.64186096191406
+ ],
+ "flags": {},
+ "order": 5,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 439
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 446
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ "{image} Beautiful female portrait, Robot with smooth White transparent carbon shell, rococo detailing, Natural lighting, Highly detailed, Cinematic, 4K."
+ ],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 364,
+ "type": "ACEPlusConditioning",
+ "pos": [
+ -3943.033447265625,
+ 1970.2298583984375
+ ],
+ "size": [
+ 280,
+ 160
+ ],
+ "flags": {},
+ "order": 13,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 597
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 598
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 599
+ },
+ {
+ "name": "ucpixels",
+ "type": "IMAGE",
+ "link": 606
+ },
+ {
+ "name": "cpixels",
+ "type": "IMAGE",
+ "link": 669
+ },
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 670
+ }
+ ],
+ "outputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "links": [
+ 600
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "links": [
+ 601
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "latent",
+ "type": "LATENT",
+ "links": [
+ 602
+ ],
+ "slot_index": 2
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusConditioning"
+ },
+ "widgets_values": [
+ false
+ ]
+ },
+ {
+ "id": 371,
+ "type": "MaskPreview+",
+ "pos": [
+ -4240.89990234375,
+ 2142.49609375
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 12,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 673
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "MaskPreview+"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 378,
+ "type": "LoadImage",
+ "pos": [
+ -4928.19287109375,
+ 1814.857666015625
+ ],
+ "size": [
+ 315,
+ 314
+ ],
+ "flags": {},
+ "order": 3,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 671
+ ]
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 672
+ ],
+ "slot_index": 1
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LoadImage"
+ },
+ "widgets_values": [
+ "1_1_fft_recolor.webp",
+ "image"
+ ],
+ "color": "#432",
+ "bgcolor": "#653"
+ },
+ {
+ "id": 372,
+ "type": "PreviewImage",
+ "pos": [
+ -4582.751953125,
+ 2105.985595703125
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 11,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 674
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 365,
+ "type": "ACEPlusFFTProcessor",
+ "pos": [
+ -4510.58837890625,
+ 1658.77001953125
+ ],
+ "size": [
+ 261.8648376464844,
+ 278
+ ],
+ "flags": {},
+ "order": 7,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "reference_image",
+ "type": "IMAGE",
+ "link": null,
+ "shape": 7
+ },
+ {
+ "name": "edit_image",
+ "type": "IMAGE",
+ "link": 671,
+ "shape": 7
+ },
+ {
+ "name": "edit_mask",
+ "type": "MASK",
+ "link": 672,
+ "shape": 7
+ }
+ ],
+ "outputs": [
+ {
+ "name": "UC_IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 606,
+ 611
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "C_IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 669,
+ 674
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 670,
+ 673
+ ],
+ "slot_index": 2
+ },
+ {
+ "name": "OUT_H",
+ "type": "INT",
+ "links": [
+ 656
+ ],
+ "slot_index": 3
+ },
+ {
+ "name": "OUT_W",
+ "type": "INT",
+ "links": [
+ 655
+ ],
+ "slot_index": 4
+ },
+ {
+ "name": "SLICE_W",
+ "type": "INT",
+ "links": [
+ 657
+ ],
+ "slot_index": 5
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusFFTProcessor"
+ },
+ "widgets_values": [
+ true,
+ 1024,
+ 1024,
+ "contour_repainting",
+ 0.8,
+ 3072
+ ],
+ "color": "#223",
+ "bgcolor": "#335"
+ },
+ {
+ "id": 286,
+ "type": "KSampler",
+ "pos": [
+ -3532.909912109375,
+ 1947.0386962890625
+ ],
+ "size": [
+ 317.2386474609375,
+ 485.9841613769531
+ ],
+ "flags": {},
+ "order": 14,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 438
+ },
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 600
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 601
+ },
+ {
+ "name": "latent_image",
+ "type": "LATENT",
+ "link": 602
+ }
+ ],
+ "outputs": [
+ {
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 442
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "KSampler"
+ },
+ "widgets_values": [
+ 38616314728576,
+ "randomize",
+ 28,
+ 1,
+ "euler",
+ "normal",
+ 1
+ ]
+ },
+ {
+ "id": 367,
+ "type": "PreviewImage",
+ "pos": [
+ -4205.70458984375,
+ 1584.8121337890625
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 10,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 611
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 366,
+ "type": "ACEPlusLoader",
+ "pos": [
+ -3953.21533203125,
+ 2198.42138671875
+ ],
+ "size": [
+ 315,
+ 82
+ ],
+ "flags": {},
+ "order": 4,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 610
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusLoader"
+ },
+ "widgets_values": [
+ "ace_plus_fft.safetensors",
+ "default"
+ ]
+ }
+ ],
+ "links": [
+ [
+ 438,
+ 295,
+ 0,
+ 286,
+ 0,
+ "MODEL"
+ ],
+ [
+ 439,
+ 289,
+ 0,
+ 291,
+ 0,
+ "CLIP"
+ ],
+ [
+ 440,
+ 289,
+ 0,
+ 292,
+ 0,
+ "CLIP"
+ ],
+ [
+ 441,
+ 290,
+ 0,
+ 287,
+ 1,
+ "VAE"
+ ],
+ [
+ 442,
+ 286,
+ 0,
+ 287,
+ 0,
+ "LATENT"
+ ],
+ [
+ 446,
+ 291,
+ 0,
+ 294,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 597,
+ 294,
+ 0,
+ 364,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 598,
+ 292,
+ 0,
+ 364,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 599,
+ 290,
+ 0,
+ 364,
+ 2,
+ "VAE"
+ ],
+ [
+ 600,
+ 364,
+ 0,
+ 286,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 601,
+ 364,
+ 1,
+ 286,
+ 2,
+ "CONDITIONING"
+ ],
+ [
+ 602,
+ 364,
+ 2,
+ 286,
+ 3,
+ "LATENT"
+ ],
+ [
+ 606,
+ 365,
+ 0,
+ 364,
+ 3,
+ "IMAGE"
+ ],
+ [
+ 610,
+ 366,
+ 0,
+ 295,
+ 0,
+ "MODEL"
+ ],
+ [
+ 611,
+ 365,
+ 0,
+ 367,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 652,
+ 287,
+ 0,
+ 373,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 655,
+ 365,
+ 4,
+ 373,
+ 1,
+ "INT"
+ ],
+ [
+ 656,
+ 365,
+ 3,
+ 373,
+ 2,
+ "INT"
+ ],
+ [
+ 657,
+ 365,
+ 5,
+ 373,
+ 3,
+ "INT"
+ ],
+ [
+ 658,
+ 373,
+ 0,
+ 374,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 669,
+ 365,
+ 1,
+ 364,
+ 4,
+ "IMAGE"
+ ],
+ [
+ 670,
+ 365,
+ 2,
+ 364,
+ 5,
+ "MASK"
+ ],
+ [
+ 671,
+ 378,
+ 0,
+ 365,
+ 1,
+ "IMAGE"
+ ],
+ [
+ 672,
+ 378,
+ 1,
+ 365,
+ 2,
+ "MASK"
+ ],
+ [
+ 673,
+ 365,
+ 2,
+ 371,
+ 0,
+ "MASK"
+ ],
+ [
+ 674,
+ 365,
+ 1,
+ 372,
+ 0,
+ "IMAGE"
+ ]
+ ],
+ "groups": [
+ {
+ "id": 20,
+ "title": "ACE_Plus FFT Workflow",
+ "bounding": [
+ -5005.599609375,
+ 1428.0904541015625,
+ 2592.630126953125,
+ 1121.891845703125
+ ],
+ "color": "#3f789e",
+ "font_size": 40,
+ "flags": {}
+ }
+ ],
+ "config": {},
+ "extra": {
+ "ds": {
+ "scale": 0.7627768444385488,
+ "offset": [
+ 5506.346756005007,
+ -1124.9482467877335
+ ]
+ },
+ "ue_links": [],
+ "groupNodes": {}
+ },
+ "version": 0.4
+}
\ No newline at end of file
diff --git a/ACE_plus/workflow_example/ACE_Plus_FFT_workflow_no_preprocess.json b/ACE_plus/workflow_example/ACE_Plus_FFT_workflow_no_preprocess.json
new file mode 100644
index 0000000000000000000000000000000000000000..370c0660a1d9b12705a254bf3eee82fc28c6e89b
--- /dev/null
+++ b/ACE_plus/workflow_example/ACE_Plus_FFT_workflow_no_preprocess.json
@@ -0,0 +1,1021 @@
+{
+ "last_node_id": 378,
+ "last_link_id": 674,
+ "nodes": [
+ {
+ "id": 372,
+ "type": "PreviewImage",
+ "pos": [
+ -4405.0244140625,
+ 2036.48388671875
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 11,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 671
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 290,
+ "type": "VAELoader",
+ "pos": [
+ -3826.618408203125,
+ 1603.526611328125
+ ],
+ "size": [
+ 315,
+ 58
+ ],
+ "flags": {},
+ "order": 0,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "VAE",
+ "type": "VAE",
+ "links": [
+ 441,
+ 599
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAELoader"
+ },
+ "widgets_values": [
+ "ae.safetensors"
+ ]
+ },
+ {
+ "id": 289,
+ "type": "DualCLIPLoader",
+ "pos": [
+ -3826.0087890625,
+ 1734.926513671875
+ ],
+ "size": [
+ 315,
+ 106
+ ],
+ "flags": {},
+ "order": 1,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "CLIP",
+ "type": "CLIP",
+ "links": [
+ 439,
+ 440
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DualCLIPLoader"
+ },
+ "widgets_values": [
+ "clip_l.safetensors",
+ "t5xxl_fp16.safetensors",
+ "flux"
+ ]
+ },
+ {
+ "id": 292,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -3765.88671875,
+ 1914.5987548828125
+ ],
+ "size": [
+ 400,
+ 200
+ ],
+ "flags": {
+ "collapsed": true
+ },
+ "order": 6,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 440
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 598
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ ""
+ ],
+ "color": "#322",
+ "bgcolor": "#533"
+ },
+ {
+ "id": 295,
+ "type": "DifferentialDiffusion",
+ "pos": [
+ -3793.21484375,
+ 2385.80712890625
+ ],
+ "size": [
+ 203.87991333007812,
+ 28.94829559326172
+ ],
+ "flags": {},
+ "order": 7,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 610
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 438
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DifferentialDiffusion"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 323,
+ "type": "Note",
+ "pos": [
+ -4408.5859375,
+ 2355.6123046875
+ ],
+ "size": [
+ 454.2545166015625,
+ 174.908447265625
+ ],
+ "flags": {},
+ "order": 2,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [],
+ "properties": {},
+ "widgets_values": [
+ "ACE_Plus Model download: https://huggingface.co/ali-vilab/ACE_Plus/blob/main/ace_plus_fft.safetensors"
+ ],
+ "color": "#332922",
+ "bgcolor": "#593930"
+ },
+ {
+ "id": 294,
+ "type": "FluxGuidance",
+ "pos": [
+ -2996.25390625,
+ 1734.9686279296875
+ ],
+ "size": [
+ 210,
+ 58
+ ],
+ "flags": {},
+ "order": 9,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "conditioning",
+ "type": "CONDITIONING",
+ "link": 446
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 597
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "FluxGuidance"
+ },
+ "widgets_values": [
+ 50
+ ]
+ },
+ {
+ "id": 287,
+ "type": "VAEDecode",
+ "pos": [
+ -2991.447509765625,
+ 1874.02880859375
+ ],
+ "size": [
+ 210,
+ 46
+ ],
+ "flags": {},
+ "order": 15,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "samples",
+ "type": "LATENT",
+ "link": 442
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 441
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 652
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAEDecode"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 373,
+ "type": "ImageCrop",
+ "pos": [
+ -3042.69140625,
+ 2015.809326171875
+ ],
+ "size": [
+ 315,
+ 130
+ ],
+ "flags": {},
+ "order": 16,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "image",
+ "type": "IMAGE",
+ "link": 652
+ },
+ {
+ "name": "width",
+ "type": "INT",
+ "link": 655,
+ "widget": {
+ "name": "width"
+ }
+ },
+ {
+ "name": "height",
+ "type": "INT",
+ "link": 656,
+ "widget": {
+ "name": "height"
+ }
+ },
+ {
+ "name": "x",
+ "type": "INT",
+ "link": 657,
+ "widget": {
+ "name": "x"
+ }
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 658
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ImageCrop"
+ },
+ "widgets_values": [
+ 512,
+ 512,
+ 0,
+ 0
+ ]
+ },
+ {
+ "id": 374,
+ "type": "PreviewImage",
+ "pos": [
+ -2646.8134765625,
+ 1807.708740234375
+ ],
+ "size": [
+ 297.7324523925781,
+ 332.22821044921875
+ ],
+ "flags": {},
+ "order": 17,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 658
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": [],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 371,
+ "type": "MaskPreview+",
+ "pos": [
+ -4157.91162109375,
+ 2039.6533203125
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 12,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 672
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "MaskPreview+"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 286,
+ "type": "KSampler",
+ "pos": [
+ -3420.80908203125,
+ 1962.8271484375
+ ],
+ "size": [
+ 317.2386474609375,
+ 485.9841613769531
+ ],
+ "flags": {},
+ "order": 14,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 438
+ },
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 600
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 601
+ },
+ {
+ "name": "latent_image",
+ "type": "LATENT",
+ "link": 602
+ }
+ ],
+ "outputs": [
+ {
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 442
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "KSampler"
+ },
+ "widgets_values": [
+ 10000002,
+ "fixed",
+ 28,
+ 1,
+ "euler",
+ "normal",
+ 1
+ ]
+ },
+ {
+ "id": 291,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -3445.466796875,
+ 1668.46484375
+ ],
+ "size": [
+ 389.0423278808594,
+ 213.64186096191406
+ ],
+ "flags": {},
+ "order": 5,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 439
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 446
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ "{image} features a close-up of a young, furry tiger cub on a rock. The tiger, which appears to be quite young, has distinctive orange, black, and white striped fur, typical of tigers. The cub's eyes have a bright and curious expression, and its ears are perked up, indicating alertness. The cub seems to be in the act of climbing or resting on the rock. The background is a blurred grassland with trees, but the focus is on the cub, which is vividly colored while the rest of the image is in grayscale, drawing attention to the tiger's details. The photo captures a moment in the wild, depicting the charming and tenacious nature of this young tiger, as well as its typical interaction with the environment."
+ ],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 366,
+ "type": "ACEPlusLoader",
+ "pos": [
+ -3841.114501953125,
+ 2214.209716796875
+ ],
+ "size": [
+ 315,
+ 82
+ ],
+ "flags": {},
+ "order": 3,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 610
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusLoader"
+ },
+ "widgets_values": [
+ "ace_plus_fft.safetensors",
+ "default"
+ ]
+ },
+ {
+ "id": 367,
+ "type": "PreviewImage",
+ "pos": [
+ -4066.84521484375,
+ 1397.3804931640625
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 10,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 611
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 364,
+ "type": "ACEPlusConditioning",
+ "pos": [
+ -3830.9326171875,
+ 1986.018310546875
+ ],
+ "size": [
+ 280,
+ 160
+ ],
+ "flags": {},
+ "order": 13,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 597
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 598
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 599
+ },
+ {
+ "name": "ucpixels",
+ "type": "IMAGE",
+ "link": 606
+ },
+ {
+ "name": "cpixels",
+ "type": "IMAGE",
+ "link": 669
+ },
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 670
+ }
+ ],
+ "outputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "links": [
+ 600
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "links": [
+ 601
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "latent",
+ "type": "LATENT",
+ "links": [
+ 602
+ ],
+ "slot_index": 2
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusConditioning"
+ },
+ "widgets_values": [
+ false
+ ]
+ },
+ {
+ "id": 365,
+ "type": "ACEPlusFFTProcessor",
+ "pos": [
+ -4398.48681640625,
+ 1674.5584716796875
+ ],
+ "size": [
+ 261.8648376464844,
+ 278
+ ],
+ "flags": {},
+ "order": 8,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "reference_image",
+ "type": "IMAGE",
+ "link": null,
+ "shape": 7
+ },
+ {
+ "name": "edit_image",
+ "type": "IMAGE",
+ "link": 673,
+ "shape": 7
+ },
+ {
+ "name": "edit_mask",
+ "type": "MASK",
+ "link": 674,
+ "shape": 7
+ }
+ ],
+ "outputs": [
+ {
+ "name": "UC_IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 606,
+ 611
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "C_IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 669,
+ 671
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 670,
+ 672
+ ],
+ "slot_index": 2
+ },
+ {
+ "name": "OUT_H",
+ "type": "INT",
+ "links": [
+ 656
+ ],
+ "slot_index": 3
+ },
+ {
+ "name": "OUT_W",
+ "type": "INT",
+ "links": [
+ 655
+ ],
+ "slot_index": 4
+ },
+ {
+ "name": "SLICE_W",
+ "type": "INT",
+ "links": [
+ 657
+ ],
+ "slot_index": 5
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusFFTProcessor"
+ },
+ "widgets_values": [
+ true,
+ 1024,
+ 1024,
+ "no_preprocess",
+ 0.8,
+ 3072
+ ],
+ "color": "#223",
+ "bgcolor": "#335"
+ },
+ {
+ "id": 378,
+ "type": "LoadImage",
+ "pos": [
+ -4816.09130859375,
+ 1830.6461181640625
+ ],
+ "size": [
+ 315,
+ 314
+ ],
+ "flags": {},
+ "order": 4,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 673
+ ]
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 674
+ ],
+ "slot_index": 1
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LoadImage"
+ },
+ "widgets_values": [
+ "sr_tiger.png",
+ "image"
+ ],
+ "color": "#432",
+ "bgcolor": "#653"
+ }
+ ],
+ "links": [
+ [
+ 438,
+ 295,
+ 0,
+ 286,
+ 0,
+ "MODEL"
+ ],
+ [
+ 439,
+ 289,
+ 0,
+ 291,
+ 0,
+ "CLIP"
+ ],
+ [
+ 440,
+ 289,
+ 0,
+ 292,
+ 0,
+ "CLIP"
+ ],
+ [
+ 441,
+ 290,
+ 0,
+ 287,
+ 1,
+ "VAE"
+ ],
+ [
+ 442,
+ 286,
+ 0,
+ 287,
+ 0,
+ "LATENT"
+ ],
+ [
+ 446,
+ 291,
+ 0,
+ 294,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 597,
+ 294,
+ 0,
+ 364,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 598,
+ 292,
+ 0,
+ 364,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 599,
+ 290,
+ 0,
+ 364,
+ 2,
+ "VAE"
+ ],
+ [
+ 600,
+ 364,
+ 0,
+ 286,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 601,
+ 364,
+ 1,
+ 286,
+ 2,
+ "CONDITIONING"
+ ],
+ [
+ 602,
+ 364,
+ 2,
+ 286,
+ 3,
+ "LATENT"
+ ],
+ [
+ 606,
+ 365,
+ 0,
+ 364,
+ 3,
+ "IMAGE"
+ ],
+ [
+ 610,
+ 366,
+ 0,
+ 295,
+ 0,
+ "MODEL"
+ ],
+ [
+ 611,
+ 365,
+ 0,
+ 367,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 652,
+ 287,
+ 0,
+ 373,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 655,
+ 365,
+ 4,
+ 373,
+ 1,
+ "INT"
+ ],
+ [
+ 656,
+ 365,
+ 3,
+ 373,
+ 2,
+ "INT"
+ ],
+ [
+ 657,
+ 365,
+ 5,
+ 373,
+ 3,
+ "INT"
+ ],
+ [
+ 658,
+ 373,
+ 0,
+ 374,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 669,
+ 365,
+ 1,
+ 364,
+ 4,
+ "IMAGE"
+ ],
+ [
+ 670,
+ 365,
+ 2,
+ 364,
+ 5,
+ "MASK"
+ ],
+ [
+ 671,
+ 365,
+ 1,
+ 372,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 672,
+ 365,
+ 2,
+ 371,
+ 0,
+ "MASK"
+ ],
+ [
+ 673,
+ 378,
+ 0,
+ 365,
+ 1,
+ "IMAGE"
+ ],
+ [
+ 674,
+ 378,
+ 1,
+ 365,
+ 2,
+ "MASK"
+ ]
+ ],
+ "groups": [
+ {
+ "id": 20,
+ "title": "ACE_Plus FFT Workflow",
+ "bounding": [
+ -4893.498046875,
+ 1443.87890625,
+ 2592.630126953125,
+ 1121.891845703125
+ ],
+ "color": "#3f789e",
+ "font_size": 40,
+ "flags": {}
+ }
+ ],
+ "config": {},
+ "extra": {
+ "ds": {
+ "scale": 0.7627768444385488,
+ "offset": [
+ 5506.346756005007,
+ -1125.36817628918
+ ]
+ },
+ "ue_links": [],
+ "groupNodes": {}
+ },
+ "version": 0.4
+}
\ No newline at end of file
diff --git a/ACE_plus/workflow_example/ACE_Plus_FFT_workflow_reference_generation.json b/ACE_plus/workflow_example/ACE_Plus_FFT_workflow_reference_generation.json
new file mode 100644
index 0000000000000000000000000000000000000000..f8c3952073b14a1eda3439dc9ce17956204ddff0
--- /dev/null
+++ b/ACE_plus/workflow_example/ACE_Plus_FFT_workflow_reference_generation.json
@@ -0,0 +1,1009 @@
+{
+ "last_node_id": 376,
+ "last_link_id": 672,
+ "nodes": [
+ {
+ "id": 290,
+ "type": "VAELoader",
+ "pos": [
+ -3826.618408203125,
+ 1603.526611328125
+ ],
+ "size": [
+ 315,
+ 58
+ ],
+ "flags": {},
+ "order": 0,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "VAE",
+ "type": "VAE",
+ "links": [
+ 441,
+ 599
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAELoader"
+ },
+ "widgets_values": [
+ "ae.safetensors"
+ ]
+ },
+ {
+ "id": 289,
+ "type": "DualCLIPLoader",
+ "pos": [
+ -3826.0087890625,
+ 1734.926513671875
+ ],
+ "size": [
+ 315,
+ 106
+ ],
+ "flags": {},
+ "order": 1,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "CLIP",
+ "type": "CLIP",
+ "links": [
+ 439,
+ 440
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DualCLIPLoader"
+ },
+ "widgets_values": [
+ "clip_l.safetensors",
+ "t5xxl_fp16.safetensors",
+ "flux"
+ ]
+ },
+ {
+ "id": 292,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -3765.88671875,
+ 1914.5987548828125
+ ],
+ "size": [
+ 400,
+ 200
+ ],
+ "flags": {
+ "collapsed": true
+ },
+ "order": 6,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 440
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 598
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ ""
+ ],
+ "color": "#322",
+ "bgcolor": "#533"
+ },
+ {
+ "id": 364,
+ "type": "ACEPlusConditioning",
+ "pos": [
+ -3830.9326171875,
+ 1986.018310546875
+ ],
+ "size": [
+ 280,
+ 160
+ ],
+ "flags": {},
+ "order": 13,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 597
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 598
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 599
+ },
+ {
+ "name": "ucpixels",
+ "type": "IMAGE",
+ "link": 606
+ },
+ {
+ "name": "cpixels",
+ "type": "IMAGE",
+ "link": 669
+ },
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 670
+ }
+ ],
+ "outputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "links": [
+ 600
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "links": [
+ 601
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "latent",
+ "type": "LATENT",
+ "links": [
+ 602
+ ],
+ "slot_index": 2
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusConditioning"
+ },
+ "widgets_values": [
+ false
+ ]
+ },
+ {
+ "id": 295,
+ "type": "DifferentialDiffusion",
+ "pos": [
+ -3793.21484375,
+ 2385.80712890625
+ ],
+ "size": [
+ 203.87991333007812,
+ 28.94829559326172
+ ],
+ "flags": {},
+ "order": 7,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 610
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 438
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DifferentialDiffusion"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 294,
+ "type": "FluxGuidance",
+ "pos": [
+ -2996.25390625,
+ 1734.9686279296875
+ ],
+ "size": [
+ 210,
+ 58
+ ],
+ "flags": {},
+ "order": 9,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "conditioning",
+ "type": "CONDITIONING",
+ "link": 446
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 597
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "FluxGuidance"
+ },
+ "widgets_values": [
+ 50
+ ]
+ },
+ {
+ "id": 287,
+ "type": "VAEDecode",
+ "pos": [
+ -2991.447509765625,
+ 1874.02880859375
+ ],
+ "size": [
+ 210,
+ 46
+ ],
+ "flags": {},
+ "order": 15,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "samples",
+ "type": "LATENT",
+ "link": 442
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 441
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 652
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAEDecode"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 373,
+ "type": "ImageCrop",
+ "pos": [
+ -3042.69140625,
+ 2015.809326171875
+ ],
+ "size": [
+ 315,
+ 130
+ ],
+ "flags": {},
+ "order": 16,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "image",
+ "type": "IMAGE",
+ "link": 652
+ },
+ {
+ "name": "width",
+ "type": "INT",
+ "link": 655,
+ "widget": {
+ "name": "width"
+ }
+ },
+ {
+ "name": "height",
+ "type": "INT",
+ "link": 656,
+ "widget": {
+ "name": "height"
+ }
+ },
+ {
+ "name": "x",
+ "type": "INT",
+ "link": 657,
+ "widget": {
+ "name": "x"
+ }
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 658
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ImageCrop"
+ },
+ "widgets_values": [
+ 512,
+ 512,
+ 0,
+ 0
+ ]
+ },
+ {
+ "id": 374,
+ "type": "PreviewImage",
+ "pos": [
+ -2646.8134765625,
+ 1807.708740234375
+ ],
+ "size": [
+ 297.7324523925781,
+ 332.22821044921875
+ ],
+ "flags": {},
+ "order": 17,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 658
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": [],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 366,
+ "type": "ACEPlusLoader",
+ "pos": [
+ -3841.114501953125,
+ 2214.209716796875
+ ],
+ "size": [
+ 315,
+ 82
+ ],
+ "flags": {},
+ "order": 2,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 610
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusLoader"
+ },
+ "widgets_values": [
+ "ace_plus_fft.safetensors",
+ "default"
+ ]
+ },
+ {
+ "id": 371,
+ "type": "MaskPreview+",
+ "pos": [
+ -4157.91162109375,
+ 2039.6533203125
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 12,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 672
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "MaskPreview+"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 286,
+ "type": "KSampler",
+ "pos": [
+ -3420.80908203125,
+ 1962.8271484375
+ ],
+ "size": [
+ 317.2386474609375,
+ 485.9841613769531
+ ],
+ "flags": {},
+ "order": 14,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 438
+ },
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 600
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 601
+ },
+ {
+ "name": "latent_image",
+ "type": "LATENT",
+ "link": 602
+ }
+ ],
+ "outputs": [
+ {
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 442
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "KSampler"
+ },
+ "widgets_values": [
+ 3999647,
+ "fixed",
+ 28,
+ 1,
+ "euler",
+ "normal",
+ 1
+ ]
+ },
+ {
+ "id": 376,
+ "type": "LoadImage",
+ "pos": [
+ -4823.74267578125,
+ 1608.7518310546875
+ ],
+ "size": [
+ 315,
+ 314
+ ],
+ "flags": {},
+ "order": 3,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 664
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LoadImage"
+ },
+ "widgets_values": [
+ "human_1.jpg",
+ "image"
+ ]
+ },
+ {
+ "id": 323,
+ "type": "Note",
+ "pos": [
+ -4408.5859375,
+ 2355.6123046875
+ ],
+ "size": [
+ 454.2545166015625,
+ 174.908447265625
+ ],
+ "flags": {},
+ "order": 4,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [],
+ "properties": {},
+ "widgets_values": [
+ "ACE_Plus Model download: https://huggingface.co/ali-vilab/ACE_Plus/blob/main/ace_plus_fft.safetensors"
+ ],
+ "color": "#332922",
+ "bgcolor": "#593930"
+ },
+ {
+ "id": 291,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -3445.466796875,
+ 1668.46484375
+ ],
+ "size": [
+ 389.0423278808594,
+ 213.64186096191406
+ ],
+ "flags": {},
+ "order": 5,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 439
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 446
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ "Maintain the facial features, A girl is wearing a neat police uniform and sporting a badge. She is smiling with a friendly and confident demeanor. The background is blurred, featuring a cartoon logo."
+ ],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 367,
+ "type": "PreviewImage",
+ "pos": [
+ -4078.7978515625,
+ 1388.28564453125
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 10,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 611
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 372,
+ "type": "PreviewImage",
+ "pos": [
+ -4405.0244140625,
+ 2036.48388671875
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 11,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 671
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 365,
+ "type": "ACEPlusFFTProcessor",
+ "pos": [
+ -4398.48681640625,
+ 1674.5584716796875
+ ],
+ "size": [
+ 261.8648376464844,
+ 278
+ ],
+ "flags": {},
+ "order": 8,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "reference_image",
+ "type": "IMAGE",
+ "link": 664,
+ "shape": 7
+ },
+ {
+ "name": "edit_image",
+ "type": "IMAGE",
+ "link": null,
+ "shape": 7
+ },
+ {
+ "name": "edit_mask",
+ "type": "MASK",
+ "link": null,
+ "shape": 7
+ }
+ ],
+ "outputs": [
+ {
+ "name": "UC_IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 606,
+ 611
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "C_IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 669,
+ 671
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 670,
+ 672
+ ],
+ "slot_index": 2
+ },
+ {
+ "name": "OUT_H",
+ "type": "INT",
+ "links": [
+ 656
+ ],
+ "slot_index": 3
+ },
+ {
+ "name": "OUT_W",
+ "type": "INT",
+ "links": [
+ 655
+ ],
+ "slot_index": 4
+ },
+ {
+ "name": "SLICE_W",
+ "type": "INT",
+ "links": [
+ 657
+ ],
+ "slot_index": 5
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusFFTProcessor"
+ },
+ "widgets_values": [
+ true,
+ 1024,
+ 1024,
+ "repainting",
+ 0.8,
+ 3072
+ ],
+ "color": "#223",
+ "bgcolor": "#335"
+ }
+ ],
+ "links": [
+ [
+ 438,
+ 295,
+ 0,
+ 286,
+ 0,
+ "MODEL"
+ ],
+ [
+ 439,
+ 289,
+ 0,
+ 291,
+ 0,
+ "CLIP"
+ ],
+ [
+ 440,
+ 289,
+ 0,
+ 292,
+ 0,
+ "CLIP"
+ ],
+ [
+ 441,
+ 290,
+ 0,
+ 287,
+ 1,
+ "VAE"
+ ],
+ [
+ 442,
+ 286,
+ 0,
+ 287,
+ 0,
+ "LATENT"
+ ],
+ [
+ 446,
+ 291,
+ 0,
+ 294,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 597,
+ 294,
+ 0,
+ 364,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 598,
+ 292,
+ 0,
+ 364,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 599,
+ 290,
+ 0,
+ 364,
+ 2,
+ "VAE"
+ ],
+ [
+ 600,
+ 364,
+ 0,
+ 286,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 601,
+ 364,
+ 1,
+ 286,
+ 2,
+ "CONDITIONING"
+ ],
+ [
+ 602,
+ 364,
+ 2,
+ 286,
+ 3,
+ "LATENT"
+ ],
+ [
+ 606,
+ 365,
+ 0,
+ 364,
+ 3,
+ "IMAGE"
+ ],
+ [
+ 610,
+ 366,
+ 0,
+ 295,
+ 0,
+ "MODEL"
+ ],
+ [
+ 611,
+ 365,
+ 0,
+ 367,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 652,
+ 287,
+ 0,
+ 373,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 655,
+ 365,
+ 4,
+ 373,
+ 1,
+ "INT"
+ ],
+ [
+ 656,
+ 365,
+ 3,
+ 373,
+ 2,
+ "INT"
+ ],
+ [
+ 657,
+ 365,
+ 5,
+ 373,
+ 3,
+ "INT"
+ ],
+ [
+ 658,
+ 373,
+ 0,
+ 374,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 664,
+ 376,
+ 0,
+ 365,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 669,
+ 365,
+ 1,
+ 364,
+ 4,
+ "IMAGE"
+ ],
+ [
+ 670,
+ 365,
+ 2,
+ 364,
+ 5,
+ "MASK"
+ ],
+ [
+ 671,
+ 365,
+ 1,
+ 372,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 672,
+ 365,
+ 2,
+ 371,
+ 0,
+ "MASK"
+ ]
+ ],
+ "groups": [
+ {
+ "id": 20,
+ "title": "ACE_Plus FFT Workflow",
+ "bounding": [
+ -4893.498046875,
+ 1443.87890625,
+ 2592.630126953125,
+ 1121.891845703125
+ ],
+ "color": "#3f789e",
+ "font_size": 40,
+ "flags": {}
+ }
+ ],
+ "config": {},
+ "extra": {
+ "ds": {
+ "scale": 0.7627768444385488,
+ "offset": [
+ 5506.346756005007,
+ -1125.36817628918
+ ]
+ },
+ "ue_links": [],
+ "groupNodes": {}
+ },
+ "version": 0.4
+}
\ No newline at end of file
diff --git a/ACE_plus/workflow_example/ACE_Plus_FFT_workflow_referenceediting_generation.json b/ACE_plus/workflow_example/ACE_Plus_FFT_workflow_referenceediting_generation.json
new file mode 100644
index 0000000000000000000000000000000000000000..ff4eb0016183ac3eacb40d7654583ad4e256abb7
--- /dev/null
+++ b/ACE_plus/workflow_example/ACE_Plus_FFT_workflow_referenceediting_generation.json
@@ -0,0 +1,1069 @@
+{
+ "last_node_id": 376,
+ "last_link_id": 672,
+ "nodes": [
+ {
+ "id": 290,
+ "type": "VAELoader",
+ "pos": [
+ -3826.618408203125,
+ 1603.526611328125
+ ],
+ "size": [
+ 315,
+ 58
+ ],
+ "flags": {},
+ "order": 0,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "VAE",
+ "type": "VAE",
+ "links": [
+ 441,
+ 599
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAELoader"
+ },
+ "widgets_values": [
+ "ae.safetensors"
+ ]
+ },
+ {
+ "id": 289,
+ "type": "DualCLIPLoader",
+ "pos": [
+ -3826.0087890625,
+ 1734.926513671875
+ ],
+ "size": [
+ 315,
+ 106
+ ],
+ "flags": {},
+ "order": 1,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "CLIP",
+ "type": "CLIP",
+ "links": [
+ 439,
+ 440
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DualCLIPLoader"
+ },
+ "widgets_values": [
+ "clip_l.safetensors",
+ "t5xxl_fp16.safetensors",
+ "flux"
+ ]
+ },
+ {
+ "id": 292,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -3765.88671875,
+ 1914.5987548828125
+ ],
+ "size": [
+ 400,
+ 200
+ ],
+ "flags": {
+ "collapsed": true
+ },
+ "order": 7,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 440
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 598
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ ""
+ ],
+ "color": "#322",
+ "bgcolor": "#533"
+ },
+ {
+ "id": 364,
+ "type": "ACEPlusConditioning",
+ "pos": [
+ -3830.9326171875,
+ 1986.018310546875
+ ],
+ "size": [
+ 280,
+ 160
+ ],
+ "flags": {},
+ "order": 14,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 597
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 598
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 599
+ },
+ {
+ "name": "ucpixels",
+ "type": "IMAGE",
+ "link": 606
+ },
+ {
+ "name": "cpixels",
+ "type": "IMAGE",
+ "link": 669
+ },
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 670
+ }
+ ],
+ "outputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "links": [
+ 600
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "links": [
+ 601
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "latent",
+ "type": "LATENT",
+ "links": [
+ 602
+ ],
+ "slot_index": 2
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusConditioning"
+ },
+ "widgets_values": [
+ false
+ ]
+ },
+ {
+ "id": 295,
+ "type": "DifferentialDiffusion",
+ "pos": [
+ -3793.21484375,
+ 2385.80712890625
+ ],
+ "size": [
+ 203.87991333007812,
+ 28.94829559326172
+ ],
+ "flags": {},
+ "order": 8,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 610
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 438
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DifferentialDiffusion"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 294,
+ "type": "FluxGuidance",
+ "pos": [
+ -2996.25390625,
+ 1734.9686279296875
+ ],
+ "size": [
+ 210,
+ 58
+ ],
+ "flags": {},
+ "order": 10,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "conditioning",
+ "type": "CONDITIONING",
+ "link": 446
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 597
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "FluxGuidance"
+ },
+ "widgets_values": [
+ 50
+ ]
+ },
+ {
+ "id": 287,
+ "type": "VAEDecode",
+ "pos": [
+ -2991.447509765625,
+ 1874.02880859375
+ ],
+ "size": [
+ 210,
+ 46
+ ],
+ "flags": {},
+ "order": 16,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "samples",
+ "type": "LATENT",
+ "link": 442
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 441
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 652
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAEDecode"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 373,
+ "type": "ImageCrop",
+ "pos": [
+ -3042.69140625,
+ 2015.809326171875
+ ],
+ "size": [
+ 315,
+ 130
+ ],
+ "flags": {},
+ "order": 17,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "image",
+ "type": "IMAGE",
+ "link": 652
+ },
+ {
+ "name": "width",
+ "type": "INT",
+ "link": 655,
+ "widget": {
+ "name": "width"
+ }
+ },
+ {
+ "name": "height",
+ "type": "INT",
+ "link": 656,
+ "widget": {
+ "name": "height"
+ }
+ },
+ {
+ "name": "x",
+ "type": "INT",
+ "link": 657,
+ "widget": {
+ "name": "x"
+ }
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 658
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ImageCrop"
+ },
+ "widgets_values": [
+ 512,
+ 512,
+ 0,
+ 0
+ ]
+ },
+ {
+ "id": 374,
+ "type": "PreviewImage",
+ "pos": [
+ -2646.8134765625,
+ 1807.708740234375
+ ],
+ "size": [
+ 297.7324523925781,
+ 332.22821044921875
+ ],
+ "flags": {},
+ "order": 18,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 658
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": [],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 366,
+ "type": "ACEPlusLoader",
+ "pos": [
+ -3841.114501953125,
+ 2214.209716796875
+ ],
+ "size": [
+ 315,
+ 82
+ ],
+ "flags": {},
+ "order": 2,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 610
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusLoader"
+ },
+ "widgets_values": [
+ "ace_plus_fft.safetensors",
+ "default"
+ ]
+ },
+ {
+ "id": 371,
+ "type": "MaskPreview+",
+ "pos": [
+ -4157.91162109375,
+ 2039.6533203125
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 13,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 672
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "MaskPreview+"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 286,
+ "type": "KSampler",
+ "pos": [
+ -3420.80908203125,
+ 1962.8271484375
+ ],
+ "size": [
+ 317.2386474609375,
+ 485.9841613769531
+ ],
+ "flags": {},
+ "order": 15,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 438
+ },
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 600
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 601
+ },
+ {
+ "name": "latent_image",
+ "type": "LATENT",
+ "link": 602
+ }
+ ],
+ "outputs": [
+ {
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 442
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "KSampler"
+ },
+ "widgets_values": [
+ 3999647,
+ "fixed",
+ 28,
+ 1,
+ "euler",
+ "normal",
+ 1
+ ]
+ },
+ {
+ "id": 376,
+ "type": "LoadImage",
+ "pos": [
+ -4823.74267578125,
+ 1608.7518310546875
+ ],
+ "size": [
+ 315,
+ 314
+ ],
+ "flags": {},
+ "order": 3,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 664
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LoadImage"
+ },
+ "widgets_values": [
+ "human_1.jpg",
+ "image"
+ ]
+ },
+ {
+ "id": 323,
+ "type": "Note",
+ "pos": [
+ -4408.5859375,
+ 2355.6123046875
+ ],
+ "size": [
+ 454.2545166015625,
+ 174.908447265625
+ ],
+ "flags": {},
+ "order": 4,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [],
+ "properties": {},
+ "widgets_values": [
+ "ACE_Plus Model download: https://huggingface.co/ali-vilab/ACE_Plus/blob/main/ace_plus_fft.safetensors"
+ ],
+ "color": "#332922",
+ "bgcolor": "#593930"
+ },
+ {
+ "id": 291,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -3445.466796875,
+ 1668.46484375
+ ],
+ "size": [
+ 389.0423278808594,
+ 213.64186096191406
+ ],
+ "flags": {},
+ "order": 6,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 439
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 446
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ "Maintain the facial features, A girl is wearing a neat police uniform and sporting a badge. She is smiling with a friendly and confident demeanor. The background is blurred, featuring a cartoon logo."
+ ],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 367,
+ "type": "PreviewImage",
+ "pos": [
+ -4078.7978515625,
+ 1388.28564453125
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 11,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 611
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 372,
+ "type": "PreviewImage",
+ "pos": [
+ -4405.0244140625,
+ 2036.48388671875
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 12,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 671
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 365,
+ "type": "ACEPlusFFTProcessor",
+ "pos": [
+ -4398.48681640625,
+ 1674.5584716796875
+ ],
+ "size": [
+ 261.8648376464844,
+ 278
+ ],
+ "flags": {},
+ "order": 9,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "reference_image",
+ "type": "IMAGE",
+ "link": 664,
+ "shape": 7
+ },
+ {
+ "name": "edit_image",
+ "type": "IMAGE",
+ "link": 668,
+ "shape": 7
+ },
+ {
+ "name": "edit_mask",
+ "type": "MASK",
+ "link": 667,
+ "shape": 7
+ }
+ ],
+ "outputs": [
+ {
+ "name": "UC_IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 606,
+ 611
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "C_IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 669,
+ 671
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 670,
+ 672
+ ],
+ "slot_index": 2
+ },
+ {
+ "name": "OUT_H",
+ "type": "INT",
+ "links": [
+ 656
+ ],
+ "slot_index": 3
+ },
+ {
+ "name": "OUT_W",
+ "type": "INT",
+ "links": [
+ 655
+ ],
+ "slot_index": 4
+ },
+ {
+ "name": "SLICE_W",
+ "type": "INT",
+ "links": [
+ 657
+ ],
+ "slot_index": 5
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusFFTProcessor"
+ },
+ "widgets_values": [
+ true,
+ 1024,
+ 1024,
+ "repainting",
+ 0.8,
+ 3072
+ ],
+ "color": "#223",
+ "bgcolor": "#335"
+ },
+ {
+ "id": 299,
+ "type": "LoadImage",
+ "pos": [
+ -4826.8291015625,
+ 2025.3966064453125
+ ],
+ "size": [
+ 315,
+ 314.0001220703125
+ ],
+ "flags": {},
+ "order": 5,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 668
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 667
+ ],
+ "slot_index": 1
+ }
+ ],
+ "title": "Edit Image",
+ "properties": {
+ "Node name for S&R": "LoadImage"
+ },
+ "widgets_values": [
+ "clipspace/clipspace-mask-466991.7999999523.png [input]",
+ "image"
+ ],
+ "color": "#432",
+ "bgcolor": "#653"
+ }
+ ],
+ "links": [
+ [
+ 438,
+ 295,
+ 0,
+ 286,
+ 0,
+ "MODEL"
+ ],
+ [
+ 439,
+ 289,
+ 0,
+ 291,
+ 0,
+ "CLIP"
+ ],
+ [
+ 440,
+ 289,
+ 0,
+ 292,
+ 0,
+ "CLIP"
+ ],
+ [
+ 441,
+ 290,
+ 0,
+ 287,
+ 1,
+ "VAE"
+ ],
+ [
+ 442,
+ 286,
+ 0,
+ 287,
+ 0,
+ "LATENT"
+ ],
+ [
+ 446,
+ 291,
+ 0,
+ 294,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 597,
+ 294,
+ 0,
+ 364,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 598,
+ 292,
+ 0,
+ 364,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 599,
+ 290,
+ 0,
+ 364,
+ 2,
+ "VAE"
+ ],
+ [
+ 600,
+ 364,
+ 0,
+ 286,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 601,
+ 364,
+ 1,
+ 286,
+ 2,
+ "CONDITIONING"
+ ],
+ [
+ 602,
+ 364,
+ 2,
+ 286,
+ 3,
+ "LATENT"
+ ],
+ [
+ 606,
+ 365,
+ 0,
+ 364,
+ 3,
+ "IMAGE"
+ ],
+ [
+ 610,
+ 366,
+ 0,
+ 295,
+ 0,
+ "MODEL"
+ ],
+ [
+ 611,
+ 365,
+ 0,
+ 367,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 652,
+ 287,
+ 0,
+ 373,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 655,
+ 365,
+ 4,
+ 373,
+ 1,
+ "INT"
+ ],
+ [
+ 656,
+ 365,
+ 3,
+ 373,
+ 2,
+ "INT"
+ ],
+ [
+ 657,
+ 365,
+ 5,
+ 373,
+ 3,
+ "INT"
+ ],
+ [
+ 658,
+ 373,
+ 0,
+ 374,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 664,
+ 376,
+ 0,
+ 365,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 667,
+ 299,
+ 1,
+ 365,
+ 2,
+ "MASK"
+ ],
+ [
+ 668,
+ 299,
+ 0,
+ 365,
+ 1,
+ "IMAGE"
+ ],
+ [
+ 669,
+ 365,
+ 1,
+ 364,
+ 4,
+ "IMAGE"
+ ],
+ [
+ 670,
+ 365,
+ 2,
+ 364,
+ 5,
+ "MASK"
+ ],
+ [
+ 671,
+ 365,
+ 1,
+ 372,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 672,
+ 365,
+ 2,
+ 371,
+ 0,
+ "MASK"
+ ]
+ ],
+ "groups": [
+ {
+ "id": 20,
+ "title": "ACE_Plus FFT Workflow",
+ "bounding": [
+ -4893.498046875,
+ 1443.87890625,
+ 2592.630126953125,
+ 1121.891845703125
+ ],
+ "color": "#3f789e",
+ "font_size": 40,
+ "flags": {}
+ }
+ ],
+ "config": {},
+ "extra": {
+ "ds": {
+ "scale": 0.7627768444385488,
+ "offset": [
+ 5506.346756005007,
+ -1125.36817628918
+ ]
+ },
+ "ue_links": [],
+ "groupNodes": {}
+ },
+ "version": 0.4
+}
\ No newline at end of file
diff --git a/ACE_plus/workflow_example/ACE_Plus_LoRA_workflow_localcontrol_generation.json b/ACE_plus/workflow_example/ACE_Plus_LoRA_workflow_localcontrol_generation.json
new file mode 100644
index 0000000000000000000000000000000000000000..a49f17943429b943595ef015e6aaf9063efe2691
--- /dev/null
+++ b/ACE_plus/workflow_example/ACE_Plus_LoRA_workflow_localcontrol_generation.json
@@ -0,0 +1,1046 @@
+{
+ "last_node_id": 388,
+ "last_link_id": 727,
+ "nodes": [
+ {
+ "id": 289,
+ "type": "DualCLIPLoader",
+ "pos": [
+ -3323.869140625,
+ 1962.3404541015625
+ ],
+ "size": [
+ 315,
+ 106
+ ],
+ "flags": {},
+ "order": 0,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "CLIP",
+ "type": "CLIP",
+ "links": [
+ 439,
+ 440
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DualCLIPLoader"
+ },
+ "widgets_values": [
+ "clip_l.safetensors",
+ "t5xxl_fp16.safetensors",
+ "flux"
+ ]
+ },
+ {
+ "id": 287,
+ "type": "VAEDecode",
+ "pos": [
+ -2489.307861328125,
+ 2101.44287109375
+ ],
+ "size": [
+ 210,
+ 46
+ ],
+ "flags": {},
+ "order": 16,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "samples",
+ "type": "LATENT",
+ "link": 442
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 441
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 652
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAEDecode"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 295,
+ "type": "DifferentialDiffusion",
+ "pos": [
+ -3022.718505859375,
+ 2501.759521484375
+ ],
+ "size": [
+ 203.87991333007812,
+ 28.94829559326172
+ ],
+ "flags": {},
+ "order": 11,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 697
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 438
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DifferentialDiffusion"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 374,
+ "type": "PreviewImage",
+ "pos": [
+ -2155.614990234375,
+ 2091.612060546875
+ ],
+ "size": [
+ 283.6285705566406,
+ 428.3240051269531
+ ],
+ "flags": {},
+ "order": 18,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 658
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": [],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 373,
+ "type": "ImageCrop",
+ "pos": [
+ -2540.5517578125,
+ 2243.22412109375
+ ],
+ "size": [
+ 315,
+ 130
+ ],
+ "flags": {},
+ "order": 17,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "image",
+ "type": "IMAGE",
+ "link": 652
+ },
+ {
+ "name": "width",
+ "type": "INT",
+ "link": 699,
+ "widget": {
+ "name": "width"
+ }
+ },
+ {
+ "name": "height",
+ "type": "INT",
+ "link": 700,
+ "widget": {
+ "name": "height"
+ }
+ },
+ {
+ "name": "x",
+ "type": "INT",
+ "link": 680,
+ "widget": {
+ "name": "x"
+ }
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 658
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ImageCrop"
+ },
+ "widgets_values": [
+ 512,
+ 512,
+ 0,
+ 0
+ ]
+ },
+ {
+ "id": 323,
+ "type": "Note",
+ "pos": [
+ -4319.0537109375,
+ 2619.1826171875
+ ],
+ "size": [
+ 454.2545166015625,
+ 174.908447265625
+ ],
+ "flags": {},
+ "order": 1,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [],
+ "properties": {},
+ "widgets_values": [
+ "ACE_Plus Model download: https://huggingface.co/ali-vilab/ACE_Plus/blob/main"
+ ],
+ "color": "#332922",
+ "bgcolor": "#593930"
+ },
+ {
+ "id": 372,
+ "type": "PreviewImage",
+ "pos": [
+ -3947.7744140625,
+ 2348.57763671875
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 8,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 695
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 380,
+ "type": "LoraLoaderModelOnly",
+ "pos": [
+ -3374.324951171875,
+ 2567.016845703125
+ ],
+ "size": [
+ 315,
+ 82
+ ],
+ "flags": {},
+ "order": 7,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 696
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 697
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LoraLoaderModelOnly"
+ },
+ "widgets_values": [
+ "comfyui_local_lora16.safetensors",
+ 1
+ ]
+ },
+ {
+ "id": 379,
+ "type": "UNETLoader",
+ "pos": [
+ -3377.95458984375,
+ 2433.29833984375
+ ],
+ "size": [
+ 315,
+ 82
+ ],
+ "flags": {},
+ "order": 2,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 696
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "UNETLoader"
+ },
+ "widgets_values": [
+ "flux1-fill-dev.safetensors",
+ "fp8_e4m3fn"
+ ]
+ },
+ {
+ "id": 290,
+ "type": "VAELoader",
+ "pos": [
+ -3342.453369140625,
+ 1836.96435546875
+ ],
+ "size": [
+ 315,
+ 58
+ ],
+ "flags": {},
+ "order": 3,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "VAE",
+ "type": "VAE",
+ "links": [
+ 441,
+ 722
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAELoader"
+ },
+ "widgets_values": [
+ "ae.safetensors"
+ ]
+ },
+ {
+ "id": 294,
+ "type": "FluxGuidance",
+ "pos": [
+ -2956.322509765625,
+ 1845.51904296875
+ ],
+ "size": [
+ 210,
+ 58
+ ],
+ "flags": {},
+ "order": 10,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "conditioning",
+ "type": "CONDITIONING",
+ "link": 718
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 723
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "FluxGuidance"
+ },
+ "widgets_values": [
+ 50
+ ]
+ },
+ {
+ "id": 292,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -3536.485107421875,
+ 1991.2078857421875
+ ],
+ "size": [
+ 400,
+ 200
+ ],
+ "flags": {
+ "collapsed": true
+ },
+ "order": 6,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 440
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 724
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ ""
+ ],
+ "color": "#322",
+ "bgcolor": "#533"
+ },
+ {
+ "id": 367,
+ "type": "PreviewImage",
+ "pos": [
+ -3676.144287109375,
+ 1766.8778076171875
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 12,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 676
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 371,
+ "type": "MaskPreview+",
+ "pos": [
+ -3677.827392578125,
+ 2081.9951171875
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 13,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 677
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "MaskPreview+"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 299,
+ "type": "LoadImage",
+ "pos": [
+ -4324.6943359375,
+ 2252.811279296875
+ ],
+ "size": [
+ 315,
+ 314.0001220703125
+ ],
+ "flags": {},
+ "order": 4,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 695,
+ 713
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 714
+ ],
+ "slot_index": 1
+ }
+ ],
+ "title": "Edit Image",
+ "properties": {
+ "Node name for S&R": "LoadImage"
+ },
+ "widgets_values": [
+ "clipspace/clipspace-mask-10178029.5.png [input]",
+ "image"
+ ],
+ "color": "#432",
+ "bgcolor": "#653"
+ },
+ {
+ "id": 291,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -2977.969970703125,
+ 2001.5001220703125
+ ],
+ "size": [
+ 389.0423278808594,
+ 213.64186096191406
+ ],
+ "flags": {},
+ "order": 5,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 439
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 718
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ "Beautiful female portrait, Robot with smooth White transparent carbon shell, rococo detailing, Natural lighting, Highly detailed, Cinematic, 4K."
+ ],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 377,
+ "type": "ACEPlusLoraProcessor",
+ "pos": [
+ -4022.064453125,
+ 1933.16552734375
+ ],
+ "size": [
+ 315,
+ 258
+ ],
+ "flags": {},
+ "order": 9,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "reference_image",
+ "type": "IMAGE",
+ "link": null,
+ "shape": 7
+ },
+ {
+ "name": "edit_image",
+ "type": "IMAGE",
+ "link": 713,
+ "shape": 7
+ },
+ {
+ "name": "edit_mask",
+ "type": "MASK",
+ "link": 714,
+ "shape": 7
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 676,
+ 720
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 677,
+ 721
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "OUT_H",
+ "type": "INT",
+ "links": [
+ 700
+ ],
+ "slot_index": 2
+ },
+ {
+ "name": "OUT_W",
+ "type": "INT",
+ "links": [
+ 699
+ ],
+ "slot_index": 3
+ },
+ {
+ "name": "SLICE_W",
+ "type": "INT",
+ "links": [
+ 680
+ ],
+ "slot_index": 4
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusLoraProcessor"
+ },
+ "widgets_values": [
+ true,
+ 1024,
+ 1024,
+ "contour_repainting",
+ 4096
+ ]
+ },
+ {
+ "id": 388,
+ "type": "ACEPlusLoraConditioning",
+ "pos": [
+ -3432.697265625,
+ 2216.7607421875
+ ],
+ "size": [
+ 315,
+ 138
+ ],
+ "flags": {},
+ "order": 14,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 723
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 724
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 722
+ },
+ {
+ "name": "pixels",
+ "type": "IMAGE",
+ "link": 720
+ },
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 721
+ }
+ ],
+ "outputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "links": [
+ 725
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "links": [
+ 726
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "latent",
+ "type": "LATENT",
+ "links": [
+ 727
+ ],
+ "slot_index": 2
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusLoraConditioning"
+ },
+ "widgets_values": [
+ false
+ ]
+ },
+ {
+ "id": 286,
+ "type": "KSampler",
+ "pos": [
+ -3022.09326171875,
+ 2268.705322265625
+ ],
+ "size": [
+ 317.2386474609375,
+ 485.9841613769531
+ ],
+ "flags": {},
+ "order": 15,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 438
+ },
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 725
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 726
+ },
+ {
+ "name": "latent_image",
+ "type": "LATENT",
+ "link": 727
+ }
+ ],
+ "outputs": [
+ {
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 442
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "KSampler"
+ },
+ "widgets_values": [
+ 709677106466456,
+ "randomize",
+ 28,
+ 1,
+ "euler",
+ "normal",
+ 1
+ ]
+ }
+ ],
+ "links": [
+ [
+ 438,
+ 295,
+ 0,
+ 286,
+ 0,
+ "MODEL"
+ ],
+ [
+ 439,
+ 289,
+ 0,
+ 291,
+ 0,
+ "CLIP"
+ ],
+ [
+ 440,
+ 289,
+ 0,
+ 292,
+ 0,
+ "CLIP"
+ ],
+ [
+ 441,
+ 290,
+ 0,
+ 287,
+ 1,
+ "VAE"
+ ],
+ [
+ 442,
+ 286,
+ 0,
+ 287,
+ 0,
+ "LATENT"
+ ],
+ [
+ 652,
+ 287,
+ 0,
+ 373,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 658,
+ 373,
+ 0,
+ 374,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 676,
+ 377,
+ 0,
+ 367,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 677,
+ 377,
+ 1,
+ 371,
+ 0,
+ "MASK"
+ ],
+ [
+ 680,
+ 377,
+ 4,
+ 373,
+ 3,
+ "INT"
+ ],
+ [
+ 695,
+ 299,
+ 0,
+ 372,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 696,
+ 379,
+ 0,
+ 380,
+ 0,
+ "MODEL"
+ ],
+ [
+ 697,
+ 380,
+ 0,
+ 295,
+ 0,
+ "MODEL"
+ ],
+ [
+ 699,
+ 377,
+ 3,
+ 373,
+ 1,
+ "INT"
+ ],
+ [
+ 700,
+ 377,
+ 2,
+ 373,
+ 2,
+ "INT"
+ ],
+ [
+ 713,
+ 299,
+ 0,
+ 377,
+ 1,
+ "IMAGE"
+ ],
+ [
+ 714,
+ 299,
+ 1,
+ 377,
+ 2,
+ "MASK"
+ ],
+ [
+ 718,
+ 291,
+ 0,
+ 294,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 720,
+ 377,
+ 0,
+ 388,
+ 3,
+ "IMAGE"
+ ],
+ [
+ 721,
+ 377,
+ 1,
+ 388,
+ 4,
+ "MASK"
+ ],
+ [
+ 722,
+ 290,
+ 0,
+ 388,
+ 2,
+ "VAE"
+ ],
+ [
+ 723,
+ 294,
+ 0,
+ 388,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 724,
+ 292,
+ 0,
+ 388,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 725,
+ 388,
+ 0,
+ 286,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 726,
+ 388,
+ 1,
+ 286,
+ 2,
+ "CONDITIONING"
+ ],
+ [
+ 727,
+ 388,
+ 2,
+ 286,
+ 3,
+ "LATENT"
+ ]
+ ],
+ "groups": [
+ {
+ "id": 20,
+ "title": "ACE_Plus FFT Workflow",
+ "bounding": [
+ -4391.36328125,
+ 1671.2928466796875,
+ 2592.630126953125,
+ 1121.891845703125
+ ],
+ "color": "#3f789e",
+ "font_size": 40,
+ "flags": {}
+ }
+ ],
+ "config": {},
+ "extra": {
+ "ds": {
+ "scale": 0.3138428376721002,
+ "offset": [
+ 5542.43004969578,
+ -1094.2043088920782
+ ]
+ },
+ "ue_links": [],
+ "groupNodes": {}
+ },
+ "version": 0.4
+}
\ No newline at end of file
diff --git a/ACE_plus/workflow_example/ACE_Plus_LoRA_workflow_redux_reference_editing.json b/ACE_plus/workflow_example/ACE_Plus_LoRA_workflow_redux_reference_editing.json
new file mode 100644
index 0000000000000000000000000000000000000000..27c267ea4f81b7279bf1b19bf83cc2dda6876388
--- /dev/null
+++ b/ACE_plus/workflow_example/ACE_Plus_LoRA_workflow_redux_reference_editing.json
@@ -0,0 +1,1289 @@
+{
+ "last_node_id": 386,
+ "last_link_id": 728,
+ "nodes": [
+ {
+ "id": 289,
+ "type": "DualCLIPLoader",
+ "pos": [
+ -3323.869140625,
+ 1962.3404541015625
+ ],
+ "size": [
+ 315,
+ 106
+ ],
+ "flags": {},
+ "order": 0,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "CLIP",
+ "type": "CLIP",
+ "links": [
+ 439,
+ 440
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DualCLIPLoader"
+ },
+ "widgets_values": [
+ "clip_l.safetensors",
+ "t5xxl_fp16.safetensors",
+ "flux"
+ ]
+ },
+ {
+ "id": 287,
+ "type": "VAEDecode",
+ "pos": [
+ -2489.307861328125,
+ 2101.44287109375
+ ],
+ "size": [
+ 210,
+ 46
+ ],
+ "flags": {},
+ "order": 21,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "samples",
+ "type": "LATENT",
+ "link": 442
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 441
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 652
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAEDecode"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 292,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -3544.333251953125,
+ 2121.18505859375
+ ],
+ "size": [
+ 400,
+ 200
+ ],
+ "flags": {
+ "collapsed": true
+ },
+ "order": 9,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 440
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 723
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ ""
+ ],
+ "color": "#322",
+ "bgcolor": "#533"
+ },
+ {
+ "id": 295,
+ "type": "DifferentialDiffusion",
+ "pos": [
+ -3022.718505859375,
+ 2501.759521484375
+ ],
+ "size": [
+ 203.87991333007812,
+ 28.94829559326172
+ ],
+ "flags": {},
+ "order": 17,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 697
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 438
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DifferentialDiffusion"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 367,
+ "type": "PreviewImage",
+ "pos": [
+ -3844.327880859375,
+ 1770.2822265625
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 15,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 676
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 374,
+ "type": "PreviewImage",
+ "pos": [
+ -2155.614990234375,
+ 2091.612060546875
+ ],
+ "size": [
+ 283.6285705566406,
+ 428.3240051269531
+ ],
+ "flags": {},
+ "order": 23,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 658
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": [],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 373,
+ "type": "ImageCrop",
+ "pos": [
+ -2540.5517578125,
+ 2243.22412109375
+ ],
+ "size": [
+ 315,
+ 130
+ ],
+ "flags": {},
+ "order": 22,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "image",
+ "type": "IMAGE",
+ "link": 652
+ },
+ {
+ "name": "width",
+ "type": "INT",
+ "link": 699,
+ "widget": {
+ "name": "width"
+ }
+ },
+ {
+ "name": "height",
+ "type": "INT",
+ "link": 700,
+ "widget": {
+ "name": "height"
+ }
+ },
+ {
+ "name": "x",
+ "type": "INT",
+ "link": 680,
+ "widget": {
+ "name": "x"
+ }
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 658
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ImageCrop"
+ },
+ "widgets_values": [
+ 512,
+ 512,
+ 0,
+ 0
+ ]
+ },
+ {
+ "id": 323,
+ "type": "Note",
+ "pos": [
+ -4319.0537109375,
+ 2619.1826171875
+ ],
+ "size": [
+ 454.2545166015625,
+ 174.908447265625
+ ],
+ "flags": {},
+ "order": 1,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [],
+ "properties": {},
+ "widgets_values": [
+ "ACE_Plus Model download: https://huggingface.co/ali-vilab/ACE_Plus/blob/main"
+ ],
+ "color": "#332922",
+ "bgcolor": "#593930"
+ },
+ {
+ "id": 383,
+ "type": "StyleModelLoader",
+ "pos": [
+ -3630.428466796875,
+ 1779.5975341796875
+ ],
+ "size": [
+ 315,
+ 58
+ ],
+ "flags": {},
+ "order": 2,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "STYLE_MODEL",
+ "type": "STYLE_MODEL",
+ "links": [
+ 703
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "StyleModelLoader"
+ },
+ "widgets_values": [
+ "flux1-redux-dev.safetensors"
+ ]
+ },
+ {
+ "id": 382,
+ "type": "CLIPVisionLoader",
+ "pos": [
+ -2911.544921875,
+ 1770.279052734375
+ ],
+ "size": [
+ 315,
+ 58
+ ],
+ "flags": {},
+ "order": 3,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "CLIP_VISION",
+ "type": "CLIP_VISION",
+ "links": [
+ 701
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPVisionLoader"
+ },
+ "widgets_values": [
+ "sigclip_vision_patch14_384.safetensors"
+ ]
+ },
+ {
+ "id": 381,
+ "type": "CLIPVisionEncode",
+ "pos": [
+ -2547.240478515625,
+ 1768.5020751953125
+ ],
+ "size": [
+ 315,
+ 78
+ ],
+ "flags": {},
+ "order": 10,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip_vision",
+ "type": "CLIP_VISION",
+ "link": 701
+ },
+ {
+ "name": "image",
+ "type": "IMAGE",
+ "link": 702
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CLIP_VISION_OUTPUT",
+ "type": "CLIP_VISION_OUTPUT",
+ "links": [
+ 704
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPVisionEncode"
+ },
+ "widgets_values": [
+ "center"
+ ]
+ },
+ {
+ "id": 294,
+ "type": "FluxGuidance",
+ "pos": [
+ -2832.11328125,
+ 1870.0634765625
+ ],
+ "size": [
+ 210,
+ 58
+ ],
+ "flags": {},
+ "order": 14,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "conditioning",
+ "type": "CONDITIONING",
+ "link": 718
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 716
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "FluxGuidance"
+ },
+ "widgets_values": [
+ 50
+ ]
+ },
+ {
+ "id": 372,
+ "type": "PreviewImage",
+ "pos": [
+ -3947.7744140625,
+ 2348.57763671875
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 11,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 695
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 371,
+ "type": "MaskPreview+",
+ "pos": [
+ -3655.77294921875,
+ 2364.870849609375
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 16,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 677
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "MaskPreview+"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 380,
+ "type": "LoraLoaderModelOnly",
+ "pos": [
+ -3374.324951171875,
+ 2567.016845703125
+ ],
+ "size": [
+ 315,
+ 82
+ ],
+ "flags": {},
+ "order": 13,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 696
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 697
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LoraLoaderModelOnly"
+ },
+ "widgets_values": [
+ "comfyui_subject_lora16.safetensors",
+ 1
+ ]
+ },
+ {
+ "id": 376,
+ "type": "LoadImage",
+ "pos": [
+ -4321.60791015625,
+ 1836.165771484375
+ ],
+ "size": [
+ 315,
+ 314
+ ],
+ "flags": {},
+ "order": 4,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 673,
+ 702
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LoadImage"
+ },
+ "widgets_values": [
+ "subject_1.jpg",
+ "image"
+ ]
+ },
+ {
+ "id": 299,
+ "type": "LoadImage",
+ "pos": [
+ -4324.6943359375,
+ 2252.811279296875
+ ],
+ "size": [
+ 315,
+ 314.0001220703125
+ ],
+ "flags": {},
+ "order": 5,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 695,
+ 713
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 714
+ ],
+ "slot_index": 1
+ }
+ ],
+ "title": "Edit Image",
+ "properties": {
+ "Node name for S&R": "LoadImage"
+ },
+ "widgets_values": [
+ "clipspace/clipspace-mask-338984.40000000596.png [input]",
+ "image"
+ ],
+ "color": "#432",
+ "bgcolor": "#653"
+ },
+ {
+ "id": 291,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -2977.969970703125,
+ 2001.5001220703125
+ ],
+ "size": [
+ 389.0423278808594,
+ 213.64186096191406
+ ],
+ "flags": {},
+ "order": 8,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 439
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 718
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ "The logo is printed on the headphones."
+ ],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 377,
+ "type": "ACEPlusLoraProcessor",
+ "pos": [
+ -3844.746337890625,
+ 2061.655029296875
+ ],
+ "size": [
+ 315,
+ 234
+ ],
+ "flags": {},
+ "order": 12,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "reference_image",
+ "type": "IMAGE",
+ "link": 673,
+ "shape": 7
+ },
+ {
+ "name": "edit_image",
+ "type": "IMAGE",
+ "link": 713,
+ "shape": 7
+ },
+ {
+ "name": "edit_mask",
+ "type": "MASK",
+ "link": 714,
+ "shape": 7
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 676,
+ 719
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 677,
+ 720
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "OUT_H",
+ "type": "INT",
+ "links": [
+ 700
+ ],
+ "slot_index": 2
+ },
+ {
+ "name": "OUT_W",
+ "type": "INT",
+ "links": [
+ 699
+ ],
+ "slot_index": 3
+ },
+ {
+ "name": "SLICE_W",
+ "type": "INT",
+ "links": [
+ 680
+ ],
+ "slot_index": 4
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusLoraProcessor"
+ },
+ "widgets_values": [
+ true,
+ 1024,
+ 1024,
+ "repainting",
+ 3072
+ ]
+ },
+ {
+ "id": 290,
+ "type": "VAELoader",
+ "pos": [
+ -3271.62548828125,
+ 1828.41455078125
+ ],
+ "size": [
+ 315,
+ 58
+ ],
+ "flags": {},
+ "order": 6,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "VAE",
+ "type": "VAE",
+ "links": [
+ 441,
+ 721
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAELoader"
+ },
+ "widgets_values": [
+ "ae.safetensors"
+ ]
+ },
+ {
+ "id": 384,
+ "type": "StyleModelApply",
+ "pos": [
+ -2541.980224609375,
+ 1896.03564453125
+ ],
+ "size": [
+ 315,
+ 122
+ ],
+ "flags": {},
+ "order": 18,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "conditioning",
+ "type": "CONDITIONING",
+ "link": 716
+ },
+ {
+ "name": "style_model",
+ "type": "STYLE_MODEL",
+ "link": 703
+ },
+ {
+ "name": "clip_vision_output",
+ "type": "CLIP_VISION_OUTPUT",
+ "link": 704
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 722
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "StyleModelApply"
+ },
+ "widgets_values": [
+ 1,
+ "multiply"
+ ]
+ },
+ {
+ "id": 286,
+ "type": "KSampler",
+ "pos": [
+ -2916.015869140625,
+ 2292.1025390625
+ ],
+ "size": [
+ 317.2386474609375,
+ 485.9841613769531
+ ],
+ "flags": {},
+ "order": 20,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 438
+ },
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 726
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 727
+ },
+ {
+ "name": "latent_image",
+ "type": "LATENT",
+ "link": 728
+ }
+ ],
+ "outputs": [
+ {
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 442
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "KSampler"
+ },
+ "widgets_values": [
+ 1096118265821203,
+ "randomize",
+ 28,
+ 1,
+ "euler",
+ "normal",
+ 1
+ ]
+ },
+ {
+ "id": 386,
+ "type": "ACEPlusLoraConditioning",
+ "pos": [
+ -3497.0439453125,
+ 2254.754638671875
+ ],
+ "size": [
+ 315,
+ 138
+ ],
+ "flags": {},
+ "order": 19,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 722
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 723
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 721
+ },
+ {
+ "name": "pixels",
+ "type": "IMAGE",
+ "link": 719
+ },
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 720
+ }
+ ],
+ "outputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "links": [
+ 726
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "links": [
+ 727
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "latent",
+ "type": "LATENT",
+ "links": [
+ 728
+ ],
+ "slot_index": 2
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusLoraConditioning"
+ },
+ "widgets_values": [
+ false
+ ]
+ },
+ {
+ "id": 379,
+ "type": "UNETLoader",
+ "pos": [
+ -3377.95458984375,
+ 2433.29833984375
+ ],
+ "size": [
+ 315,
+ 82
+ ],
+ "flags": {},
+ "order": 7,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 696
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "UNETLoader"
+ },
+ "widgets_values": [
+ "flux1-fill-dev.safetensors",
+ "fp8_e4m3fn"
+ ]
+ }
+ ],
+ "links": [
+ [
+ 438,
+ 295,
+ 0,
+ 286,
+ 0,
+ "MODEL"
+ ],
+ [
+ 439,
+ 289,
+ 0,
+ 291,
+ 0,
+ "CLIP"
+ ],
+ [
+ 440,
+ 289,
+ 0,
+ 292,
+ 0,
+ "CLIP"
+ ],
+ [
+ 441,
+ 290,
+ 0,
+ 287,
+ 1,
+ "VAE"
+ ],
+ [
+ 442,
+ 286,
+ 0,
+ 287,
+ 0,
+ "LATENT"
+ ],
+ [
+ 652,
+ 287,
+ 0,
+ 373,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 658,
+ 373,
+ 0,
+ 374,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 673,
+ 376,
+ 0,
+ 377,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 676,
+ 377,
+ 0,
+ 367,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 677,
+ 377,
+ 1,
+ 371,
+ 0,
+ "MASK"
+ ],
+ [
+ 680,
+ 377,
+ 4,
+ 373,
+ 3,
+ "INT"
+ ],
+ [
+ 695,
+ 299,
+ 0,
+ 372,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 696,
+ 379,
+ 0,
+ 380,
+ 0,
+ "MODEL"
+ ],
+ [
+ 697,
+ 380,
+ 0,
+ 295,
+ 0,
+ "MODEL"
+ ],
+ [
+ 699,
+ 377,
+ 3,
+ 373,
+ 1,
+ "INT"
+ ],
+ [
+ 700,
+ 377,
+ 2,
+ 373,
+ 2,
+ "INT"
+ ],
+ [
+ 701,
+ 382,
+ 0,
+ 381,
+ 0,
+ "CLIP_VISION"
+ ],
+ [
+ 702,
+ 376,
+ 0,
+ 381,
+ 1,
+ "IMAGE"
+ ],
+ [
+ 703,
+ 383,
+ 0,
+ 384,
+ 1,
+ "STYLE_MODEL"
+ ],
+ [
+ 704,
+ 381,
+ 0,
+ 384,
+ 2,
+ "CLIP_VISION_OUTPUT"
+ ],
+ [
+ 713,
+ 299,
+ 0,
+ 377,
+ 1,
+ "IMAGE"
+ ],
+ [
+ 714,
+ 299,
+ 1,
+ 377,
+ 2,
+ "MASK"
+ ],
+ [
+ 716,
+ 294,
+ 0,
+ 384,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 718,
+ 291,
+ 0,
+ 294,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 719,
+ 377,
+ 0,
+ 386,
+ 3,
+ "IMAGE"
+ ],
+ [
+ 720,
+ 377,
+ 1,
+ 386,
+ 4,
+ "MASK"
+ ],
+ [
+ 721,
+ 290,
+ 0,
+ 386,
+ 2,
+ "VAE"
+ ],
+ [
+ 722,
+ 384,
+ 0,
+ 386,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 723,
+ 292,
+ 0,
+ 386,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 726,
+ 386,
+ 0,
+ 286,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 727,
+ 386,
+ 1,
+ 286,
+ 2,
+ "CONDITIONING"
+ ],
+ [
+ 728,
+ 386,
+ 2,
+ 286,
+ 3,
+ "LATENT"
+ ]
+ ],
+ "groups": [
+ {
+ "id": 20,
+ "title": "ACE_Plus FFT Workflow",
+ "bounding": [
+ -4391.36328125,
+ 1671.2928466796875,
+ 2592.630126953125,
+ 1121.891845703125
+ ],
+ "color": "#3f789e",
+ "font_size": 40,
+ "flags": {}
+ }
+ ],
+ "config": {},
+ "extra": {
+ "ds": {
+ "scale": 0.7627768444385475,
+ "offset": [
+ 4644.689852946438,
+ -1760.62473846619
+ ]
+ },
+ "ue_links": [],
+ "groupNodes": {}
+ },
+ "version": 0.4
+}
\ No newline at end of file
diff --git a/ACE_plus/workflow_example/ACE_Plus_LoRA_workflow_redux_reference_generation.json b/ACE_plus/workflow_example/ACE_Plus_LoRA_workflow_redux_reference_generation.json
new file mode 100644
index 0000000000000000000000000000000000000000..c38b0f06883b09a94f0dad6eedf3f23af4b66dee
--- /dev/null
+++ b/ACE_plus/workflow_example/ACE_Plus_LoRA_workflow_redux_reference_generation.json
@@ -0,0 +1,1193 @@
+{
+ "last_node_id": 386,
+ "last_link_id": 728,
+ "nodes": [
+ {
+ "id": 289,
+ "type": "DualCLIPLoader",
+ "pos": [
+ -3323.869140625,
+ 1962.3404541015625
+ ],
+ "size": [
+ 315,
+ 106
+ ],
+ "flags": {},
+ "order": 0,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "CLIP",
+ "type": "CLIP",
+ "links": [
+ 439,
+ 440
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DualCLIPLoader"
+ },
+ "widgets_values": [
+ "clip_l.safetensors",
+ "t5xxl_fp16.safetensors",
+ "flux"
+ ]
+ },
+ {
+ "id": 287,
+ "type": "VAEDecode",
+ "pos": [
+ -2489.307861328125,
+ 2101.44287109375
+ ],
+ "size": [
+ 210,
+ 46
+ ],
+ "flags": {},
+ "order": 19,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "samples",
+ "type": "LATENT",
+ "link": 442
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 441
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 652
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAEDecode"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 292,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -3544.333251953125,
+ 2121.18505859375
+ ],
+ "size": [
+ 400,
+ 200
+ ],
+ "flags": {
+ "collapsed": true
+ },
+ "order": 8,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 440
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 723
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ ""
+ ],
+ "color": "#322",
+ "bgcolor": "#533"
+ },
+ {
+ "id": 295,
+ "type": "DifferentialDiffusion",
+ "pos": [
+ -3022.718505859375,
+ 2501.759521484375
+ ],
+ "size": [
+ 203.87991333007812,
+ 28.94829559326172
+ ],
+ "flags": {},
+ "order": 13,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 697
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 438
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DifferentialDiffusion"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 367,
+ "type": "PreviewImage",
+ "pos": [
+ -3844.327880859375,
+ 1770.2822265625
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 14,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 676
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 374,
+ "type": "PreviewImage",
+ "pos": [
+ -2155.614990234375,
+ 2091.612060546875
+ ],
+ "size": [
+ 283.6285705566406,
+ 428.3240051269531
+ ],
+ "flags": {},
+ "order": 21,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 658
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": [],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 373,
+ "type": "ImageCrop",
+ "pos": [
+ -2540.5517578125,
+ 2243.22412109375
+ ],
+ "size": [
+ 315,
+ 130
+ ],
+ "flags": {},
+ "order": 20,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "image",
+ "type": "IMAGE",
+ "link": 652
+ },
+ {
+ "name": "width",
+ "type": "INT",
+ "link": 699,
+ "widget": {
+ "name": "width"
+ }
+ },
+ {
+ "name": "height",
+ "type": "INT",
+ "link": 700,
+ "widget": {
+ "name": "height"
+ }
+ },
+ {
+ "name": "x",
+ "type": "INT",
+ "link": 680,
+ "widget": {
+ "name": "x"
+ }
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 658
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ImageCrop"
+ },
+ "widgets_values": [
+ 512,
+ 512,
+ 0,
+ 0
+ ]
+ },
+ {
+ "id": 323,
+ "type": "Note",
+ "pos": [
+ -4319.0537109375,
+ 2619.1826171875
+ ],
+ "size": [
+ 454.2545166015625,
+ 174.908447265625
+ ],
+ "flags": {},
+ "order": 1,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [],
+ "properties": {},
+ "widgets_values": [
+ "ACE_Plus Model download: https://huggingface.co/ali-vilab/ACE_Plus/blob/main"
+ ],
+ "color": "#332922",
+ "bgcolor": "#593930"
+ },
+ {
+ "id": 383,
+ "type": "StyleModelLoader",
+ "pos": [
+ -3630.428466796875,
+ 1779.5975341796875
+ ],
+ "size": [
+ 315,
+ 58
+ ],
+ "flags": {},
+ "order": 2,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "STYLE_MODEL",
+ "type": "STYLE_MODEL",
+ "links": [
+ 703
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "StyleModelLoader"
+ },
+ "widgets_values": [
+ "flux1-redux-dev.safetensors"
+ ]
+ },
+ {
+ "id": 382,
+ "type": "CLIPVisionLoader",
+ "pos": [
+ -2911.544921875,
+ 1770.279052734375
+ ],
+ "size": [
+ 315,
+ 58
+ ],
+ "flags": {},
+ "order": 3,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "CLIP_VISION",
+ "type": "CLIP_VISION",
+ "links": [
+ 701
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPVisionLoader"
+ },
+ "widgets_values": [
+ "sigclip_vision_patch14_384.safetensors"
+ ]
+ },
+ {
+ "id": 381,
+ "type": "CLIPVisionEncode",
+ "pos": [
+ -2547.240478515625,
+ 1768.5020751953125
+ ],
+ "size": [
+ 315,
+ 78
+ ],
+ "flags": {},
+ "order": 11,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip_vision",
+ "type": "CLIP_VISION",
+ "link": 701
+ },
+ {
+ "name": "image",
+ "type": "IMAGE",
+ "link": 702
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CLIP_VISION_OUTPUT",
+ "type": "CLIP_VISION_OUTPUT",
+ "links": [
+ 704
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPVisionEncode"
+ },
+ "widgets_values": [
+ "center"
+ ]
+ },
+ {
+ "id": 294,
+ "type": "FluxGuidance",
+ "pos": [
+ -2832.11328125,
+ 1870.0634765625
+ ],
+ "size": [
+ 210,
+ 58
+ ],
+ "flags": {},
+ "order": 12,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "conditioning",
+ "type": "CONDITIONING",
+ "link": 718
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 716
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "FluxGuidance"
+ },
+ "widgets_values": [
+ 50
+ ]
+ },
+ {
+ "id": 371,
+ "type": "MaskPreview+",
+ "pos": [
+ -3655.77294921875,
+ 2364.870849609375
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 15,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 677
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "MaskPreview+"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 290,
+ "type": "VAELoader",
+ "pos": [
+ -3271.62548828125,
+ 1828.41455078125
+ ],
+ "size": [
+ 315,
+ 58
+ ],
+ "flags": {},
+ "order": 4,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "VAE",
+ "type": "VAE",
+ "links": [
+ 441,
+ 721
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAELoader"
+ },
+ "widgets_values": [
+ "ae.safetensors"
+ ]
+ },
+ {
+ "id": 386,
+ "type": "ACEPlusLoraConditioning",
+ "pos": [
+ -3497.0439453125,
+ 2254.754638671875
+ ],
+ "size": [
+ 315,
+ 138
+ ],
+ "flags": {},
+ "order": 17,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 722
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 723
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 721
+ },
+ {
+ "name": "pixels",
+ "type": "IMAGE",
+ "link": 719
+ },
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 720
+ }
+ ],
+ "outputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "links": [
+ 726
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "links": [
+ 727
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "latent",
+ "type": "LATENT",
+ "links": [
+ 728
+ ],
+ "slot_index": 2
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusLoraConditioning"
+ },
+ "widgets_values": [
+ false
+ ]
+ },
+ {
+ "id": 379,
+ "type": "UNETLoader",
+ "pos": [
+ -3377.95458984375,
+ 2433.29833984375
+ ],
+ "size": [
+ 315,
+ 82
+ ],
+ "flags": {},
+ "order": 5,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 696
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "UNETLoader"
+ },
+ "widgets_values": [
+ "flux1-fill-dev.safetensors",
+ "fp8_e4m3fn"
+ ]
+ },
+ {
+ "id": 380,
+ "type": "LoraLoaderModelOnly",
+ "pos": [
+ -3374.324951171875,
+ 2567.016845703125
+ ],
+ "size": [
+ 315,
+ 82
+ ],
+ "flags": {},
+ "order": 9,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 696
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 697
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LoraLoaderModelOnly"
+ },
+ "widgets_values": [
+ "comfyui_portrait_lora64.safetensors",
+ 1
+ ]
+ },
+ {
+ "id": 376,
+ "type": "LoadImage",
+ "pos": [
+ -4321.60791015625,
+ 1836.165771484375
+ ],
+ "size": [
+ 315,
+ 314
+ ],
+ "flags": {},
+ "order": 6,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 673,
+ 702
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LoadImage"
+ },
+ "widgets_values": [
+ "human_1.jpg",
+ "image"
+ ]
+ },
+ {
+ "id": 377,
+ "type": "ACEPlusLoraProcessor",
+ "pos": [
+ -3958.497314453125,
+ 2096.59033203125
+ ],
+ "size": [
+ 315,
+ 234
+ ],
+ "flags": {},
+ "order": 10,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "reference_image",
+ "type": "IMAGE",
+ "link": 673,
+ "shape": 7
+ },
+ {
+ "name": "edit_image",
+ "type": "IMAGE",
+ "link": null,
+ "shape": 7
+ },
+ {
+ "name": "edit_mask",
+ "type": "MASK",
+ "link": null,
+ "shape": 7
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 676,
+ 719
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 677,
+ 720
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "OUT_H",
+ "type": "INT",
+ "links": [
+ 700
+ ],
+ "slot_index": 2
+ },
+ {
+ "name": "OUT_W",
+ "type": "INT",
+ "links": [
+ 699
+ ],
+ "slot_index": 3
+ },
+ {
+ "name": "SLICE_W",
+ "type": "INT",
+ "links": [
+ 680
+ ],
+ "slot_index": 4
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusLoraProcessor"
+ },
+ "widgets_values": [
+ true,
+ 1024,
+ 1024,
+ "repainting",
+ 3072
+ ]
+ },
+ {
+ "id": 291,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -2977.969970703125,
+ 2001.5001220703125
+ ],
+ "size": [
+ 389.0423278808594,
+ 213.64186096191406
+ ],
+ "flags": {},
+ "order": 7,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 439
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 718
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ "Maintain the facial features. A girl is wearing a neat police uniform and sporting a badge. She is smiling with a friendly and confident demeanor. The background is blurred, featuring a cartoon logo."
+ ],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 384,
+ "type": "StyleModelApply",
+ "pos": [
+ -2541.980224609375,
+ 1896.03564453125
+ ],
+ "size": [
+ 315,
+ 122
+ ],
+ "flags": {},
+ "order": 16,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "conditioning",
+ "type": "CONDITIONING",
+ "link": 716
+ },
+ {
+ "name": "style_model",
+ "type": "STYLE_MODEL",
+ "link": 703
+ },
+ {
+ "name": "clip_vision_output",
+ "type": "CLIP_VISION_OUTPUT",
+ "link": 704
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 722
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "StyleModelApply"
+ },
+ "widgets_values": [
+ 0.2,
+ "attn_bias"
+ ]
+ },
+ {
+ "id": 286,
+ "type": "KSampler",
+ "pos": [
+ -2916.015869140625,
+ 2292.1025390625
+ ],
+ "size": [
+ 317.2386474609375,
+ 485.9841613769531
+ ],
+ "flags": {},
+ "order": 18,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 438
+ },
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 726
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 727
+ },
+ {
+ "name": "latent_image",
+ "type": "LATENT",
+ "link": 728
+ }
+ ],
+ "outputs": [
+ {
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 442
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "KSampler"
+ },
+ "widgets_values": [
+ 676826848980252,
+ "randomize",
+ 28,
+ 1,
+ "euler",
+ "normal",
+ 1
+ ]
+ }
+ ],
+ "links": [
+ [
+ 438,
+ 295,
+ 0,
+ 286,
+ 0,
+ "MODEL"
+ ],
+ [
+ 439,
+ 289,
+ 0,
+ 291,
+ 0,
+ "CLIP"
+ ],
+ [
+ 440,
+ 289,
+ 0,
+ 292,
+ 0,
+ "CLIP"
+ ],
+ [
+ 441,
+ 290,
+ 0,
+ 287,
+ 1,
+ "VAE"
+ ],
+ [
+ 442,
+ 286,
+ 0,
+ 287,
+ 0,
+ "LATENT"
+ ],
+ [
+ 652,
+ 287,
+ 0,
+ 373,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 658,
+ 373,
+ 0,
+ 374,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 673,
+ 376,
+ 0,
+ 377,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 676,
+ 377,
+ 0,
+ 367,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 677,
+ 377,
+ 1,
+ 371,
+ 0,
+ "MASK"
+ ],
+ [
+ 680,
+ 377,
+ 4,
+ 373,
+ 3,
+ "INT"
+ ],
+ [
+ 696,
+ 379,
+ 0,
+ 380,
+ 0,
+ "MODEL"
+ ],
+ [
+ 697,
+ 380,
+ 0,
+ 295,
+ 0,
+ "MODEL"
+ ],
+ [
+ 699,
+ 377,
+ 3,
+ 373,
+ 1,
+ "INT"
+ ],
+ [
+ 700,
+ 377,
+ 2,
+ 373,
+ 2,
+ "INT"
+ ],
+ [
+ 701,
+ 382,
+ 0,
+ 381,
+ 0,
+ "CLIP_VISION"
+ ],
+ [
+ 702,
+ 376,
+ 0,
+ 381,
+ 1,
+ "IMAGE"
+ ],
+ [
+ 703,
+ 383,
+ 0,
+ 384,
+ 1,
+ "STYLE_MODEL"
+ ],
+ [
+ 704,
+ 381,
+ 0,
+ 384,
+ 2,
+ "CLIP_VISION_OUTPUT"
+ ],
+ [
+ 716,
+ 294,
+ 0,
+ 384,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 718,
+ 291,
+ 0,
+ 294,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 719,
+ 377,
+ 0,
+ 386,
+ 3,
+ "IMAGE"
+ ],
+ [
+ 720,
+ 377,
+ 1,
+ 386,
+ 4,
+ "MASK"
+ ],
+ [
+ 721,
+ 290,
+ 0,
+ 386,
+ 2,
+ "VAE"
+ ],
+ [
+ 722,
+ 384,
+ 0,
+ 386,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 723,
+ 292,
+ 0,
+ 386,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 726,
+ 386,
+ 0,
+ 286,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 727,
+ 386,
+ 1,
+ 286,
+ 2,
+ "CONDITIONING"
+ ],
+ [
+ 728,
+ 386,
+ 2,
+ 286,
+ 3,
+ "LATENT"
+ ]
+ ],
+ "groups": [
+ {
+ "id": 20,
+ "title": "ACE_Plus FFT Workflow",
+ "bounding": [
+ -4391.36328125,
+ 1671.2928466796875,
+ 2592.630126953125,
+ 1121.891845703125
+ ],
+ "color": "#3f789e",
+ "font_size": 40,
+ "flags": {}
+ }
+ ],
+ "config": {},
+ "extra": {
+ "ds": {
+ "scale": 0.6303940863128492,
+ "offset": [
+ 3827.340306384968,
+ -1723.7299232803566
+ ]
+ },
+ "ue_links": [],
+ "groupNodes": {}
+ },
+ "version": 0.4
+}
\ No newline at end of file
diff --git a/ACE_plus/workflow_example/ACE_Plus_LoRA_workflow_reference_editing.json b/ACE_plus/workflow_example/ACE_Plus_LoRA_workflow_reference_editing.json
new file mode 100644
index 0000000000000000000000000000000000000000..4f5a2b62f3dd77b804276dea633da60501fce868
--- /dev/null
+++ b/ACE_plus/workflow_example/ACE_Plus_LoRA_workflow_reference_editing.json
@@ -0,0 +1,1092 @@
+{
+ "last_node_id": 386,
+ "last_link_id": 729,
+ "nodes": [
+ {
+ "id": 289,
+ "type": "DualCLIPLoader",
+ "pos": [
+ -3323.869140625,
+ 1962.3404541015625
+ ],
+ "size": [
+ 315,
+ 106
+ ],
+ "flags": {},
+ "order": 0,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "CLIP",
+ "type": "CLIP",
+ "links": [
+ 439,
+ 440
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DualCLIPLoader"
+ },
+ "widgets_values": [
+ "clip_l.safetensors",
+ "t5xxl_fp16.safetensors",
+ "flux"
+ ]
+ },
+ {
+ "id": 287,
+ "type": "VAEDecode",
+ "pos": [
+ -2489.307861328125,
+ 2101.44287109375
+ ],
+ "size": [
+ 210,
+ 46
+ ],
+ "flags": {},
+ "order": 17,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "samples",
+ "type": "LATENT",
+ "link": 442
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 441
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 652
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAEDecode"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 292,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -3544.333251953125,
+ 2121.18505859375
+ ],
+ "size": [
+ 400,
+ 200
+ ],
+ "flags": {
+ "collapsed": true
+ },
+ "order": 7,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 440
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 723
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ ""
+ ],
+ "color": "#322",
+ "bgcolor": "#533"
+ },
+ {
+ "id": 295,
+ "type": "DifferentialDiffusion",
+ "pos": [
+ -3022.718505859375,
+ 2501.759521484375
+ ],
+ "size": [
+ 203.87991333007812,
+ 28.94829559326172
+ ],
+ "flags": {},
+ "order": 14,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 697
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 438
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DifferentialDiffusion"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 367,
+ "type": "PreviewImage",
+ "pos": [
+ -3844.327880859375,
+ 1770.2822265625
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 12,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 676
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 374,
+ "type": "PreviewImage",
+ "pos": [
+ -2155.614990234375,
+ 2091.612060546875
+ ],
+ "size": [
+ 283.6285705566406,
+ 428.3240051269531
+ ],
+ "flags": {},
+ "order": 19,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 658
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": [],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 373,
+ "type": "ImageCrop",
+ "pos": [
+ -2540.5517578125,
+ 2243.22412109375
+ ],
+ "size": [
+ 315,
+ 130
+ ],
+ "flags": {},
+ "order": 18,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "image",
+ "type": "IMAGE",
+ "link": 652
+ },
+ {
+ "name": "width",
+ "type": "INT",
+ "link": 699,
+ "widget": {
+ "name": "width"
+ }
+ },
+ {
+ "name": "height",
+ "type": "INT",
+ "link": 700,
+ "widget": {
+ "name": "height"
+ }
+ },
+ {
+ "name": "x",
+ "type": "INT",
+ "link": 680,
+ "widget": {
+ "name": "x"
+ }
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 658
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ImageCrop"
+ },
+ "widgets_values": [
+ 512,
+ 512,
+ 0,
+ 0
+ ]
+ },
+ {
+ "id": 323,
+ "type": "Note",
+ "pos": [
+ -4319.0537109375,
+ 2619.1826171875
+ ],
+ "size": [
+ 454.2545166015625,
+ 174.908447265625
+ ],
+ "flags": {},
+ "order": 1,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [],
+ "properties": {},
+ "widgets_values": [
+ "ACE_Plus Model download: https://huggingface.co/ali-vilab/ACE_Plus/blob/main"
+ ],
+ "color": "#332922",
+ "bgcolor": "#593930"
+ },
+ {
+ "id": 294,
+ "type": "FluxGuidance",
+ "pos": [
+ -2832.11328125,
+ 1870.0634765625
+ ],
+ "size": [
+ 210,
+ 58
+ ],
+ "flags": {},
+ "order": 11,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "conditioning",
+ "type": "CONDITIONING",
+ "link": 718
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 729
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "FluxGuidance"
+ },
+ "widgets_values": [
+ 50
+ ]
+ },
+ {
+ "id": 372,
+ "type": "PreviewImage",
+ "pos": [
+ -3947.7744140625,
+ 2348.57763671875
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 8,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 695
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 371,
+ "type": "MaskPreview+",
+ "pos": [
+ -3655.77294921875,
+ 2364.870849609375
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 13,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 677
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "MaskPreview+"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 380,
+ "type": "LoraLoaderModelOnly",
+ "pos": [
+ -3374.324951171875,
+ 2567.016845703125
+ ],
+ "size": [
+ 315,
+ 82
+ ],
+ "flags": {},
+ "order": 10,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 696
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 697
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LoraLoaderModelOnly"
+ },
+ "widgets_values": [
+ "comfyui_subject_lora16.safetensors",
+ 1
+ ]
+ },
+ {
+ "id": 376,
+ "type": "LoadImage",
+ "pos": [
+ -4321.60791015625,
+ 1836.165771484375
+ ],
+ "size": [
+ 315,
+ 314
+ ],
+ "flags": {},
+ "order": 2,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 673
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LoadImage"
+ },
+ "widgets_values": [
+ "subject_1.jpg",
+ "image"
+ ]
+ },
+ {
+ "id": 299,
+ "type": "LoadImage",
+ "pos": [
+ -4324.6943359375,
+ 2252.811279296875
+ ],
+ "size": [
+ 315,
+ 314.0001220703125
+ ],
+ "flags": {},
+ "order": 3,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 695,
+ 713
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 714
+ ],
+ "slot_index": 1
+ }
+ ],
+ "title": "Edit Image",
+ "properties": {
+ "Node name for S&R": "LoadImage"
+ },
+ "widgets_values": [
+ "clipspace/clipspace-mask-338984.40000000596.png [input]",
+ "image"
+ ],
+ "color": "#432",
+ "bgcolor": "#653"
+ },
+ {
+ "id": 291,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -2977.969970703125,
+ 2001.5001220703125
+ ],
+ "size": [
+ 389.0423278808594,
+ 213.64186096191406
+ ],
+ "flags": {},
+ "order": 6,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 439
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 718
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ "The logo is printed on the headphones."
+ ],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 377,
+ "type": "ACEPlusLoraProcessor",
+ "pos": [
+ -3844.746337890625,
+ 2061.655029296875
+ ],
+ "size": [
+ 315,
+ 234
+ ],
+ "flags": {},
+ "order": 9,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "reference_image",
+ "type": "IMAGE",
+ "link": 673,
+ "shape": 7
+ },
+ {
+ "name": "edit_image",
+ "type": "IMAGE",
+ "link": 713,
+ "shape": 7
+ },
+ {
+ "name": "edit_mask",
+ "type": "MASK",
+ "link": 714,
+ "shape": 7
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 676,
+ 719
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 677,
+ 720
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "OUT_H",
+ "type": "INT",
+ "links": [
+ 700
+ ],
+ "slot_index": 2
+ },
+ {
+ "name": "OUT_W",
+ "type": "INT",
+ "links": [
+ 699
+ ],
+ "slot_index": 3
+ },
+ {
+ "name": "SLICE_W",
+ "type": "INT",
+ "links": [
+ 680
+ ],
+ "slot_index": 4
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusLoraProcessor"
+ },
+ "widgets_values": [
+ true,
+ 1024,
+ 1024,
+ "repainting",
+ 3072
+ ]
+ },
+ {
+ "id": 290,
+ "type": "VAELoader",
+ "pos": [
+ -3271.62548828125,
+ 1828.41455078125
+ ],
+ "size": [
+ 315,
+ 58
+ ],
+ "flags": {},
+ "order": 4,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "VAE",
+ "type": "VAE",
+ "links": [
+ 441,
+ 721
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAELoader"
+ },
+ "widgets_values": [
+ "ae.safetensors"
+ ]
+ },
+ {
+ "id": 286,
+ "type": "KSampler",
+ "pos": [
+ -2916.015869140625,
+ 2292.1025390625
+ ],
+ "size": [
+ 317.2386474609375,
+ 485.9841613769531
+ ],
+ "flags": {},
+ "order": 16,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 438
+ },
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 726
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 727
+ },
+ {
+ "name": "latent_image",
+ "type": "LATENT",
+ "link": 728
+ }
+ ],
+ "outputs": [
+ {
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 442
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "KSampler"
+ },
+ "widgets_values": [
+ 302179725261768,
+ "randomize",
+ 28,
+ 1,
+ "euler",
+ "normal",
+ 1
+ ]
+ },
+ {
+ "id": 386,
+ "type": "ACEPlusLoraConditioning",
+ "pos": [
+ -3497.0439453125,
+ 2254.754638671875
+ ],
+ "size": [
+ 315,
+ 138
+ ],
+ "flags": {},
+ "order": 15,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 729
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 723
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 721
+ },
+ {
+ "name": "pixels",
+ "type": "IMAGE",
+ "link": 719
+ },
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 720
+ }
+ ],
+ "outputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "links": [
+ 726
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "links": [
+ 727
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "latent",
+ "type": "LATENT",
+ "links": [
+ 728
+ ],
+ "slot_index": 2
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusLoraConditioning"
+ },
+ "widgets_values": [
+ false
+ ]
+ },
+ {
+ "id": 379,
+ "type": "UNETLoader",
+ "pos": [
+ -3377.95458984375,
+ 2433.29833984375
+ ],
+ "size": [
+ 315,
+ 82
+ ],
+ "flags": {},
+ "order": 5,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 696
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "UNETLoader"
+ },
+ "widgets_values": [
+ "flux1-fill-dev.safetensors",
+ "fp8_e4m3fn"
+ ]
+ }
+ ],
+ "links": [
+ [
+ 438,
+ 295,
+ 0,
+ 286,
+ 0,
+ "MODEL"
+ ],
+ [
+ 439,
+ 289,
+ 0,
+ 291,
+ 0,
+ "CLIP"
+ ],
+ [
+ 440,
+ 289,
+ 0,
+ 292,
+ 0,
+ "CLIP"
+ ],
+ [
+ 441,
+ 290,
+ 0,
+ 287,
+ 1,
+ "VAE"
+ ],
+ [
+ 442,
+ 286,
+ 0,
+ 287,
+ 0,
+ "LATENT"
+ ],
+ [
+ 652,
+ 287,
+ 0,
+ 373,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 658,
+ 373,
+ 0,
+ 374,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 673,
+ 376,
+ 0,
+ 377,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 676,
+ 377,
+ 0,
+ 367,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 677,
+ 377,
+ 1,
+ 371,
+ 0,
+ "MASK"
+ ],
+ [
+ 680,
+ 377,
+ 4,
+ 373,
+ 3,
+ "INT"
+ ],
+ [
+ 695,
+ 299,
+ 0,
+ 372,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 696,
+ 379,
+ 0,
+ 380,
+ 0,
+ "MODEL"
+ ],
+ [
+ 697,
+ 380,
+ 0,
+ 295,
+ 0,
+ "MODEL"
+ ],
+ [
+ 699,
+ 377,
+ 3,
+ 373,
+ 1,
+ "INT"
+ ],
+ [
+ 700,
+ 377,
+ 2,
+ 373,
+ 2,
+ "INT"
+ ],
+ [
+ 713,
+ 299,
+ 0,
+ 377,
+ 1,
+ "IMAGE"
+ ],
+ [
+ 714,
+ 299,
+ 1,
+ 377,
+ 2,
+ "MASK"
+ ],
+ [
+ 718,
+ 291,
+ 0,
+ 294,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 719,
+ 377,
+ 0,
+ 386,
+ 3,
+ "IMAGE"
+ ],
+ [
+ 720,
+ 377,
+ 1,
+ 386,
+ 4,
+ "MASK"
+ ],
+ [
+ 721,
+ 290,
+ 0,
+ 386,
+ 2,
+ "VAE"
+ ],
+ [
+ 723,
+ 292,
+ 0,
+ 386,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 726,
+ 386,
+ 0,
+ 286,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 727,
+ 386,
+ 1,
+ 286,
+ 2,
+ "CONDITIONING"
+ ],
+ [
+ 728,
+ 386,
+ 2,
+ 286,
+ 3,
+ "LATENT"
+ ],
+ [
+ 729,
+ 294,
+ 0,
+ 386,
+ 0,
+ "CONDITIONING"
+ ]
+ ],
+ "groups": [
+ {
+ "id": 20,
+ "title": "ACE_Plus FFT Workflow",
+ "bounding": [
+ -4391.36328125,
+ 1671.2928466796875,
+ 2592.630126953125,
+ 1121.891845703125
+ ],
+ "color": "#3f789e",
+ "font_size": 40,
+ "flags": {}
+ }
+ ],
+ "config": {},
+ "extra": {
+ "ds": {
+ "scale": 0.7627768444385475,
+ "offset": [
+ 3872.7518863666974,
+ -1764.5935843640075
+ ]
+ },
+ "ue_links": [],
+ "groupNodes": {}
+ },
+ "version": 0.4
+}
\ No newline at end of file
diff --git a/ACE_plus/workflow_example/ACE_Plus_LoRA_workflow_reference_generation.json b/ACE_plus/workflow_example/ACE_Plus_LoRA_workflow_reference_generation.json
new file mode 100644
index 0000000000000000000000000000000000000000..d4b21c53dff881a4b34e33e9f17e9a7b80c43ce0
--- /dev/null
+++ b/ACE_plus/workflow_example/ACE_Plus_LoRA_workflow_reference_generation.json
@@ -0,0 +1,996 @@
+{
+ "last_node_id": 381,
+ "last_link_id": 707,
+ "nodes": [
+ {
+ "id": 289,
+ "type": "DualCLIPLoader",
+ "pos": [
+ -3826.0087890625,
+ 1734.926513671875
+ ],
+ "size": [
+ 315,
+ 106
+ ],
+ "flags": {},
+ "order": 0,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "CLIP",
+ "type": "CLIP",
+ "links": [
+ 439,
+ 440
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DualCLIPLoader"
+ },
+ "widgets_values": [
+ "clip_l.safetensors",
+ "t5xxl_fp16.safetensors",
+ "flux"
+ ]
+ },
+ {
+ "id": 287,
+ "type": "VAEDecode",
+ "pos": [
+ -2991.447509765625,
+ 1874.02880859375
+ ],
+ "size": [
+ 210,
+ 46
+ ],
+ "flags": {},
+ "order": 15,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "samples",
+ "type": "LATENT",
+ "link": 442
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 441
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 652
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAEDecode"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 373,
+ "type": "ImageCrop",
+ "pos": [
+ -3042.69140625,
+ 2015.809326171875
+ ],
+ "size": [
+ 315,
+ 130
+ ],
+ "flags": {},
+ "order": 16,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "image",
+ "type": "IMAGE",
+ "link": 652
+ },
+ {
+ "name": "width",
+ "type": "INT",
+ "link": 706,
+ "widget": {
+ "name": "width"
+ }
+ },
+ {
+ "name": "height",
+ "type": "INT",
+ "link": 707,
+ "widget": {
+ "name": "height"
+ }
+ },
+ {
+ "name": "x",
+ "type": "INT",
+ "link": 680,
+ "widget": {
+ "name": "x"
+ }
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 658
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ImageCrop"
+ },
+ "widgets_values": [
+ 512,
+ 512,
+ 0,
+ 0
+ ]
+ },
+ {
+ "id": 374,
+ "type": "PreviewImage",
+ "pos": [
+ -2646.8134765625,
+ 1807.708740234375
+ ],
+ "size": [
+ 297.7324523925781,
+ 332.22821044921875
+ ],
+ "flags": {},
+ "order": 17,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 658
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": [],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 371,
+ "type": "MaskPreview+",
+ "pos": [
+ -4157.91162109375,
+ 2039.6533203125
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 11,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 677
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "MaskPreview+"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 376,
+ "type": "LoadImage",
+ "pos": [
+ -4823.74267578125,
+ 1608.7518310546875
+ ],
+ "size": [
+ 315,
+ 314
+ ],
+ "flags": {},
+ "order": 1,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 673
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LoadImage"
+ },
+ "widgets_values": [
+ "human_1.jpg",
+ "image"
+ ]
+ },
+ {
+ "id": 295,
+ "type": "DifferentialDiffusion",
+ "pos": [
+ -3524.858154296875,
+ 2274.34521484375
+ ],
+ "size": [
+ 203.87991333007812,
+ 28.94829559326172
+ ],
+ "flags": {},
+ "order": 12,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 697
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 438
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "DifferentialDiffusion"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 380,
+ "type": "LoraLoaderModelOnly",
+ "pos": [
+ -3876.464599609375,
+ 2339.6025390625
+ ],
+ "size": [
+ 315,
+ 82
+ ],
+ "flags": {},
+ "order": 8,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 696
+ }
+ ],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 697
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LoraLoaderModelOnly"
+ },
+ "widgets_values": [
+ "comfyui_face_lora64.safetensors",
+ 1
+ ]
+ },
+ {
+ "id": 367,
+ "type": "PreviewImage",
+ "pos": [
+ -4346.46435546875,
+ 1542.8682861328125
+ ],
+ "size": [
+ 210,
+ 246
+ ],
+ "flags": {},
+ "order": 10,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "images",
+ "type": "IMAGE",
+ "link": 676
+ }
+ ],
+ "outputs": [],
+ "properties": {
+ "Node name for S&R": "PreviewImage"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 290,
+ "type": "VAELoader",
+ "pos": [
+ -3826.618408203125,
+ 1603.526611328125
+ ],
+ "size": [
+ 315,
+ 58
+ ],
+ "flags": {},
+ "order": 2,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "VAE",
+ "type": "VAE",
+ "links": [
+ 441,
+ 700
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VAELoader"
+ },
+ "widgets_values": [
+ "ae.safetensors"
+ ]
+ },
+ {
+ "id": 294,
+ "type": "FluxGuidance",
+ "pos": [
+ -3702.181396484375,
+ 1909.62646484375
+ ],
+ "size": [
+ 210,
+ 58
+ ],
+ "flags": {},
+ "order": 9,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "conditioning",
+ "type": "CONDITIONING",
+ "link": 446
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 701
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "FluxGuidance"
+ },
+ "widgets_values": [
+ 50
+ ]
+ },
+ {
+ "id": 292,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -4063.243896484375,
+ 1959.1868896484375
+ ],
+ "size": [
+ 400,
+ 200
+ ],
+ "flags": {
+ "collapsed": true
+ },
+ "order": 6,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 440
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 702
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ ""
+ ],
+ "color": "#322",
+ "bgcolor": "#533"
+ },
+ {
+ "id": 381,
+ "type": "ACEPlusLoraConditioning",
+ "pos": [
+ -3861.20703125,
+ 2016.699951171875
+ ],
+ "size": [
+ 315,
+ 138
+ ],
+ "flags": {},
+ "order": 13,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 701
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 702
+ },
+ {
+ "name": "vae",
+ "type": "VAE",
+ "link": 700
+ },
+ {
+ "name": "pixels",
+ "type": "IMAGE",
+ "link": 698
+ },
+ {
+ "name": "mask",
+ "type": "MASK",
+ "link": 699
+ }
+ ],
+ "outputs": [
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "links": [
+ 703
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "links": [
+ 704
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "latent",
+ "type": "LATENT",
+ "links": [
+ 705
+ ],
+ "slot_index": 2
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusLoraConditioning"
+ },
+ "widgets_values": [
+ false
+ ]
+ },
+ {
+ "id": 323,
+ "type": "Note",
+ "pos": [
+ -4408.5859375,
+ 2355.6123046875
+ ],
+ "size": [
+ 454.2545166015625,
+ 174.908447265625
+ ],
+ "flags": {},
+ "order": 3,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [],
+ "properties": {},
+ "widgets_values": [
+ "ACE_Plus Model download: https://huggingface.co/ali-vilab/ACE_Plus/blob/main"
+ ],
+ "color": "#332922",
+ "bgcolor": "#593930"
+ },
+ {
+ "id": 379,
+ "type": "UNETLoader",
+ "pos": [
+ -3880.09423828125,
+ 2205.884033203125
+ ],
+ "size": [
+ 315,
+ 82
+ ],
+ "flags": {},
+ "order": 4,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [
+ {
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 696
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "UNETLoader"
+ },
+ "widgets_values": [
+ "flux1-fill-dev.safetensors",
+ "fp8_e4m3fn"
+ ]
+ },
+ {
+ "id": 291,
+ "type": "CLIPTextEncode",
+ "pos": [
+ -3441.659423828125,
+ 1648.312255859375
+ ],
+ "size": [
+ 389.0423278808594,
+ 213.64186096191406
+ ],
+ "flags": {},
+ "order": 5,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "clip",
+ "type": "CLIP",
+ "link": 439
+ }
+ ],
+ "outputs": [
+ {
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 446
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ "Maintain the facial features, A girl is wearing a neat police uniform and sporting a badge. She is smiling with a friendly and confident demeanor. The background is blurred, featuring a cartoon logo."
+ ],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 286,
+ "type": "KSampler",
+ "pos": [
+ -3473.733642578125,
+ 2037.3380126953125
+ ],
+ "size": [
+ 317.2386474609375,
+ 485.9841613769531
+ ],
+ "flags": {},
+ "order": 14,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "model",
+ "type": "MODEL",
+ "link": 438
+ },
+ {
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 703
+ },
+ {
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 704
+ },
+ {
+ "name": "latent_image",
+ "type": "LATENT",
+ "link": 705
+ }
+ ],
+ "outputs": [
+ {
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 442
+ ],
+ "slot_index": 0
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "KSampler"
+ },
+ "widgets_values": [
+ 41446931693062,
+ "randomize",
+ 28,
+ 1,
+ "euler",
+ "normal",
+ 1
+ ]
+ },
+ {
+ "id": 377,
+ "type": "ACEPlusLoraProcessor",
+ "pos": [
+ -4383.654296875,
+ 1751.32421875
+ ],
+ "size": [
+ 315,
+ 234
+ ],
+ "flags": {},
+ "order": 7,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "reference_image",
+ "type": "IMAGE",
+ "link": 673,
+ "shape": 7
+ },
+ {
+ "name": "edit_image",
+ "type": "IMAGE",
+ "link": null,
+ "shape": 7
+ },
+ {
+ "name": "edit_mask",
+ "type": "MASK",
+ "link": null,
+ "shape": 7
+ }
+ ],
+ "outputs": [
+ {
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 676,
+ 698
+ ],
+ "slot_index": 0
+ },
+ {
+ "name": "MASK",
+ "type": "MASK",
+ "links": [
+ 677,
+ 699
+ ],
+ "slot_index": 1
+ },
+ {
+ "name": "OUT_H",
+ "type": "INT",
+ "links": [
+ 707
+ ],
+ "slot_index": 2
+ },
+ {
+ "name": "OUT_W",
+ "type": "INT",
+ "links": [
+ 706
+ ],
+ "slot_index": 3
+ },
+ {
+ "name": "SLICE_W",
+ "type": "INT",
+ "links": [
+ 680
+ ],
+ "slot_index": 4
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ACEPlusLoraProcessor"
+ },
+ "widgets_values": [
+ true,
+ 1024,
+ 1024,
+ "repainting",
+ 3072
+ ]
+ }
+ ],
+ "links": [
+ [
+ 438,
+ 295,
+ 0,
+ 286,
+ 0,
+ "MODEL"
+ ],
+ [
+ 439,
+ 289,
+ 0,
+ 291,
+ 0,
+ "CLIP"
+ ],
+ [
+ 440,
+ 289,
+ 0,
+ 292,
+ 0,
+ "CLIP"
+ ],
+ [
+ 441,
+ 290,
+ 0,
+ 287,
+ 1,
+ "VAE"
+ ],
+ [
+ 442,
+ 286,
+ 0,
+ 287,
+ 0,
+ "LATENT"
+ ],
+ [
+ 446,
+ 291,
+ 0,
+ 294,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 652,
+ 287,
+ 0,
+ 373,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 658,
+ 373,
+ 0,
+ 374,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 673,
+ 376,
+ 0,
+ 377,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 676,
+ 377,
+ 0,
+ 367,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 677,
+ 377,
+ 1,
+ 371,
+ 0,
+ "MASK"
+ ],
+ [
+ 680,
+ 377,
+ 4,
+ 373,
+ 3,
+ "INT"
+ ],
+ [
+ 696,
+ 379,
+ 0,
+ 380,
+ 0,
+ "MODEL"
+ ],
+ [
+ 697,
+ 380,
+ 0,
+ 295,
+ 0,
+ "MODEL"
+ ],
+ [
+ 698,
+ 377,
+ 0,
+ 381,
+ 3,
+ "IMAGE"
+ ],
+ [
+ 699,
+ 377,
+ 1,
+ 381,
+ 4,
+ "MASK"
+ ],
+ [
+ 700,
+ 290,
+ 0,
+ 381,
+ 2,
+ "VAE"
+ ],
+ [
+ 701,
+ 294,
+ 0,
+ 381,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 702,
+ 292,
+ 0,
+ 381,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 703,
+ 381,
+ 0,
+ 286,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 704,
+ 381,
+ 1,
+ 286,
+ 2,
+ "CONDITIONING"
+ ],
+ [
+ 705,
+ 381,
+ 2,
+ 286,
+ 3,
+ "LATENT"
+ ],
+ [
+ 706,
+ 377,
+ 3,
+ 373,
+ 1,
+ "INT"
+ ],
+ [
+ 707,
+ 377,
+ 2,
+ 373,
+ 2,
+ "INT"
+ ]
+ ],
+ "groups": [
+ {
+ "id": 20,
+ "title": "ACE_Plus FFT Workflow",
+ "bounding": [
+ -4893.498046875,
+ 1443.87890625,
+ 2592.630126953125,
+ 1121.891845703125
+ ],
+ "color": "#3f789e",
+ "font_size": 40,
+ "flags": {}
+ }
+ ],
+ "config": {},
+ "extra": {
+ "ds": {
+ "scale": 0.7627768444385477,
+ "offset": [
+ 5138.725590463966,
+ -1489.7090030437157
+ ]
+ },
+ "ue_links": [],
+ "groupNodes": {}
+ },
+ "version": 0.4
+}
\ No newline at end of file