Emilyxml commited on
Commit
746eee8
·
verified ·
1 Parent(s): e30030b

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
.gitattributes CHANGED
@@ -33,3 +33,238 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ data/02629_Flux.png filter=lfs diff=lfs merge=lfs -text
37
+ data/02629_magic_brush.png filter=lfs diff=lfs merge=lfs -text
38
+ data/02629_my-before.png filter=lfs diff=lfs merge=lfs -text
39
+ data/02629_my.png filter=lfs diff=lfs merge=lfs -text
40
+ data/02629_omnigen2.png filter=lfs diff=lfs merge=lfs -text
41
+ data/02629_origin.png filter=lfs diff=lfs merge=lfs -text
42
+ data/02629_qwen.png filter=lfs diff=lfs merge=lfs -text
43
+ data/02629_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
44
+ data/02629_step1xv11.png filter=lfs diff=lfs merge=lfs -text
45
+ data/07ddc_Flux.png filter=lfs diff=lfs merge=lfs -text
46
+ data/07ddc_magic_brush.png filter=lfs diff=lfs merge=lfs -text
47
+ data/07ddc_my-before.png filter=lfs diff=lfs merge=lfs -text
48
+ data/07ddc_my.png filter=lfs diff=lfs merge=lfs -text
49
+ data/07ddc_omnigen2.png filter=lfs diff=lfs merge=lfs -text
50
+ data/07ddc_origin.png filter=lfs diff=lfs merge=lfs -text
51
+ data/07ddc_qwen.png filter=lfs diff=lfs merge=lfs -text
52
+ data/07ddc_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
53
+ data/07ddc_step1xv11.png filter=lfs diff=lfs merge=lfs -text
54
+ data/1bcdc_Flux.png filter=lfs diff=lfs merge=lfs -text
55
+ data/1bcdc_magic_brush.png filter=lfs diff=lfs merge=lfs -text
56
+ data/1bcdc_my-before.png filter=lfs diff=lfs merge=lfs -text
57
+ data/1bcdc_my.png filter=lfs diff=lfs merge=lfs -text
58
+ data/1bcdc_omnigen2.png filter=lfs diff=lfs merge=lfs -text
59
+ data/1bcdc_origin.png filter=lfs diff=lfs merge=lfs -text
60
+ data/1bcdc_qwen.png filter=lfs diff=lfs merge=lfs -text
61
+ data/1bcdc_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
62
+ data/1bcdc_step1xv11.png filter=lfs diff=lfs merge=lfs -text
63
+ data/261b7_Flux.png filter=lfs diff=lfs merge=lfs -text
64
+ data/261b7_gemini2.5.png filter=lfs diff=lfs merge=lfs -text
65
+ data/261b7_gemini3.png filter=lfs diff=lfs merge=lfs -text
66
+ data/261b7_magic_brush.png filter=lfs diff=lfs merge=lfs -text
67
+ data/261b7_my-before.png filter=lfs diff=lfs merge=lfs -text
68
+ data/261b7_my.png filter=lfs diff=lfs merge=lfs -text
69
+ data/261b7_omnigen.png filter=lfs diff=lfs merge=lfs -text
70
+ data/261b7_omnigen2.png filter=lfs diff=lfs merge=lfs -text
71
+ data/261b7_origin.png filter=lfs diff=lfs merge=lfs -text
72
+ data/261b7_qwen.png filter=lfs diff=lfs merge=lfs -text
73
+ data/261b7_seedream.png filter=lfs diff=lfs merge=lfs -text
74
+ data/261b7_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
75
+ data/261b7_step1xv11.png filter=lfs diff=lfs merge=lfs -text
76
+ data/26718_Flux.png filter=lfs diff=lfs merge=lfs -text
77
+ data/26718_gemini2.5.png filter=lfs diff=lfs merge=lfs -text
78
+ data/26718_gemini3.png filter=lfs diff=lfs merge=lfs -text
79
+ data/26718_magic_brush.png filter=lfs diff=lfs merge=lfs -text
80
+ data/26718_my-before.png filter=lfs diff=lfs merge=lfs -text
81
+ data/26718_my.png filter=lfs diff=lfs merge=lfs -text
82
+ data/26718_omnigen.png filter=lfs diff=lfs merge=lfs -text
83
+ data/26718_omnigen2.png filter=lfs diff=lfs merge=lfs -text
84
+ data/26718_origin.png filter=lfs diff=lfs merge=lfs -text
85
+ data/26718_qwen.png filter=lfs diff=lfs merge=lfs -text
86
+ data/26718_seedream.png filter=lfs diff=lfs merge=lfs -text
87
+ data/26718_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
88
+ data/26718_step1xv11.png filter=lfs diff=lfs merge=lfs -text
89
+ data/4721c_Flux.png filter=lfs diff=lfs merge=lfs -text
90
+ data/4721c_gemini2.5.png filter=lfs diff=lfs merge=lfs -text
91
+ data/4721c_gemini3.png filter=lfs diff=lfs merge=lfs -text
92
+ data/4721c_magic_brush.png filter=lfs diff=lfs merge=lfs -text
93
+ data/4721c_my-before.png filter=lfs diff=lfs merge=lfs -text
94
+ data/4721c_my.png filter=lfs diff=lfs merge=lfs -text
95
+ data/4721c_omnigen.png filter=lfs diff=lfs merge=lfs -text
96
+ data/4721c_omnigen2.png filter=lfs diff=lfs merge=lfs -text
97
+ data/4721c_origin.png filter=lfs diff=lfs merge=lfs -text
98
+ data/4721c_qwen.png filter=lfs diff=lfs merge=lfs -text
99
+ data/4721c_seedream.png filter=lfs diff=lfs merge=lfs -text
100
+ data/4721c_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
101
+ data/4721c_step1xv11.png filter=lfs diff=lfs merge=lfs -text
102
+ data/56aa4_Flux.png filter=lfs diff=lfs merge=lfs -text
103
+ data/56aa4_gemini2.5.png filter=lfs diff=lfs merge=lfs -text
104
+ data/56aa4_magic_brush.png filter=lfs diff=lfs merge=lfs -text
105
+ data/56aa4_my-before.png filter=lfs diff=lfs merge=lfs -text
106
+ data/56aa4_my.png filter=lfs diff=lfs merge=lfs -text
107
+ data/56aa4_omnigen.png filter=lfs diff=lfs merge=lfs -text
108
+ data/56aa4_omnigen2.png filter=lfs diff=lfs merge=lfs -text
109
+ data/56aa4_origin.png filter=lfs diff=lfs merge=lfs -text
110
+ data/56aa4_qwen.png filter=lfs diff=lfs merge=lfs -text
111
+ data/56aa4_seedream.png filter=lfs diff=lfs merge=lfs -text
112
+ data/56aa4_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
113
+ data/56aa4_step1xv11.png filter=lfs diff=lfs merge=lfs -text
114
+ data/6180a_Flux.png filter=lfs diff=lfs merge=lfs -text
115
+ data/6180a_gemini2.5.png filter=lfs diff=lfs merge=lfs -text
116
+ data/6180a_magic_brush.png filter=lfs diff=lfs merge=lfs -text
117
+ data/6180a_my-before.png filter=lfs diff=lfs merge=lfs -text
118
+ data/6180a_my.png filter=lfs diff=lfs merge=lfs -text
119
+ data/6180a_omnigen.png filter=lfs diff=lfs merge=lfs -text
120
+ data/6180a_omnigen2.png filter=lfs diff=lfs merge=lfs -text
121
+ data/6180a_origin.png filter=lfs diff=lfs merge=lfs -text
122
+ data/6180a_qwen.png filter=lfs diff=lfs merge=lfs -text
123
+ data/6180a_seedream.png filter=lfs diff=lfs merge=lfs -text
124
+ data/6180a_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
125
+ data/6180a_step1xv11.png filter=lfs diff=lfs merge=lfs -text
126
+ data/6c39a_Flux.png filter=lfs diff=lfs merge=lfs -text
127
+ data/6c39a_gemini2.5.png filter=lfs diff=lfs merge=lfs -text
128
+ data/6c39a_magic_brush.png filter=lfs diff=lfs merge=lfs -text
129
+ data/6c39a_my-before.png filter=lfs diff=lfs merge=lfs -text
130
+ data/6c39a_my.png filter=lfs diff=lfs merge=lfs -text
131
+ data/6c39a_omnigen.png filter=lfs diff=lfs merge=lfs -text
132
+ data/6c39a_omnigen2.png filter=lfs diff=lfs merge=lfs -text
133
+ data/6c39a_origin.png filter=lfs diff=lfs merge=lfs -text
134
+ data/6c39a_qwen.png filter=lfs diff=lfs merge=lfs -text
135
+ data/6c39a_seedream.png filter=lfs diff=lfs merge=lfs -text
136
+ data/6c39a_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
137
+ data/6c39a_step1xv11.png filter=lfs diff=lfs merge=lfs -text
138
+ data/79e19_Flux.png filter=lfs diff=lfs merge=lfs -text
139
+ data/79e19_gemini2.5.png filter=lfs diff=lfs merge=lfs -text
140
+ data/79e19_magic_brush.png filter=lfs diff=lfs merge=lfs -text
141
+ data/79e19_my-before.png filter=lfs diff=lfs merge=lfs -text
142
+ data/79e19_my.png filter=lfs diff=lfs merge=lfs -text
143
+ data/79e19_omnigen.png filter=lfs diff=lfs merge=lfs -text
144
+ data/79e19_omnigen2.png filter=lfs diff=lfs merge=lfs -text
145
+ data/79e19_origin.png filter=lfs diff=lfs merge=lfs -text
146
+ data/79e19_qwen.png filter=lfs diff=lfs merge=lfs -text
147
+ data/79e19_seedream.png filter=lfs diff=lfs merge=lfs -text
148
+ data/79e19_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
149
+ data/79e19_step1xv11.png filter=lfs diff=lfs merge=lfs -text
150
+ data/844f6_Flux.png filter=lfs diff=lfs merge=lfs -text
151
+ data/844f6_gemini2.5.png filter=lfs diff=lfs merge=lfs -text
152
+ data/844f6_magic_brush.png filter=lfs diff=lfs merge=lfs -text
153
+ data/844f6_my-before.png filter=lfs diff=lfs merge=lfs -text
154
+ data/844f6_my.png filter=lfs diff=lfs merge=lfs -text
155
+ data/844f6_omnigen.png filter=lfs diff=lfs merge=lfs -text
156
+ data/844f6_omnigen2.png filter=lfs diff=lfs merge=lfs -text
157
+ data/844f6_origin.png filter=lfs diff=lfs merge=lfs -text
158
+ data/844f6_qwen.png filter=lfs diff=lfs merge=lfs -text
159
+ data/844f6_seedream.png filter=lfs diff=lfs merge=lfs -text
160
+ data/844f6_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
161
+ data/844f6_step1xv11.png filter=lfs diff=lfs merge=lfs -text
162
+ data/89fdb_Flux.png filter=lfs diff=lfs merge=lfs -text
163
+ data/89fdb_gemini2.5.png filter=lfs diff=lfs merge=lfs -text
164
+ data/89fdb_gemini3.png filter=lfs diff=lfs merge=lfs -text
165
+ data/89fdb_magic_brush.png filter=lfs diff=lfs merge=lfs -text
166
+ data/89fdb_my-before.png filter=lfs diff=lfs merge=lfs -text
167
+ data/89fdb_my.png filter=lfs diff=lfs merge=lfs -text
168
+ data/89fdb_omnigen.png filter=lfs diff=lfs merge=lfs -text
169
+ data/89fdb_omnigen2.png filter=lfs diff=lfs merge=lfs -text
170
+ data/89fdb_origin.png filter=lfs diff=lfs merge=lfs -text
171
+ data/89fdb_qwen.png filter=lfs diff=lfs merge=lfs -text
172
+ data/89fdb_seedream.png filter=lfs diff=lfs merge=lfs -text
173
+ data/89fdb_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
174
+ data/89fdb_step1xv11.png filter=lfs diff=lfs merge=lfs -text
175
+ data/8e4a0_Flux.png filter=lfs diff=lfs merge=lfs -text
176
+ data/8e4a0_magic_brush.png filter=lfs diff=lfs merge=lfs -text
177
+ data/8e4a0_my-before.png filter=lfs diff=lfs merge=lfs -text
178
+ data/8e4a0_my.png filter=lfs diff=lfs merge=lfs -text
179
+ data/8e4a0_omnigen2.png filter=lfs diff=lfs merge=lfs -text
180
+ data/8e4a0_origin.png filter=lfs diff=lfs merge=lfs -text
181
+ data/8e4a0_qwen.png filter=lfs diff=lfs merge=lfs -text
182
+ data/8e4a0_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
183
+ data/8e4a0_step1xv11.png filter=lfs diff=lfs merge=lfs -text
184
+ data/ab741_Flux.png filter=lfs diff=lfs merge=lfs -text
185
+ data/ab741_gemini2.5.png filter=lfs diff=lfs merge=lfs -text
186
+ data/ab741_gemini3.png filter=lfs diff=lfs merge=lfs -text
187
+ data/ab741_magic_brush.png filter=lfs diff=lfs merge=lfs -text
188
+ data/ab741_my-before.png filter=lfs diff=lfs merge=lfs -text
189
+ data/ab741_my.png filter=lfs diff=lfs merge=lfs -text
190
+ data/ab741_omnigen.png filter=lfs diff=lfs merge=lfs -text
191
+ data/ab741_omnigen2.png filter=lfs diff=lfs merge=lfs -text
192
+ data/ab741_origin.png filter=lfs diff=lfs merge=lfs -text
193
+ data/ab741_qwen.png filter=lfs diff=lfs merge=lfs -text
194
+ data/ab741_seedream.png filter=lfs diff=lfs merge=lfs -text
195
+ data/ab741_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
196
+ data/ab741_step1xv11.png filter=lfs diff=lfs merge=lfs -text
197
+ data/b3149_Flux.png filter=lfs diff=lfs merge=lfs -text
198
+ data/b3149_magic_brush.png filter=lfs diff=lfs merge=lfs -text
199
+ data/b3149_my-before.png filter=lfs diff=lfs merge=lfs -text
200
+ data/b3149_my.png filter=lfs diff=lfs merge=lfs -text
201
+ data/b3149_omnigen2.png filter=lfs diff=lfs merge=lfs -text
202
+ data/b3149_origin.png filter=lfs diff=lfs merge=lfs -text
203
+ data/b3149_qwen.png filter=lfs diff=lfs merge=lfs -text
204
+ data/b3149_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
205
+ data/b3149_step1xv11.png filter=lfs diff=lfs merge=lfs -text
206
+ data/b8d2d_Flux.png filter=lfs diff=lfs merge=lfs -text
207
+ data/b8d2d_magic_brush.png filter=lfs diff=lfs merge=lfs -text
208
+ data/b8d2d_my-before.png filter=lfs diff=lfs merge=lfs -text
209
+ data/b8d2d_my.png filter=lfs diff=lfs merge=lfs -text
210
+ data/b8d2d_omnigen2.png filter=lfs diff=lfs merge=lfs -text
211
+ data/b8d2d_origin.png filter=lfs diff=lfs merge=lfs -text
212
+ data/b8d2d_qwen.png filter=lfs diff=lfs merge=lfs -text
213
+ data/b8d2d_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
214
+ data/b8d2d_step1xv11.png filter=lfs diff=lfs merge=lfs -text
215
+ data/cada4_Flux.png filter=lfs diff=lfs merge=lfs -text
216
+ data/cada4_gemini2.5.png filter=lfs diff=lfs merge=lfs -text
217
+ data/cada4_gemini3.png filter=lfs diff=lfs merge=lfs -text
218
+ data/cada4_magic_brush.png filter=lfs diff=lfs merge=lfs -text
219
+ data/cada4_my-before.png filter=lfs diff=lfs merge=lfs -text
220
+ data/cada4_my.png filter=lfs diff=lfs merge=lfs -text
221
+ data/cada4_omnigen.png filter=lfs diff=lfs merge=lfs -text
222
+ data/cada4_omnigen2.png filter=lfs diff=lfs merge=lfs -text
223
+ data/cada4_origin.png filter=lfs diff=lfs merge=lfs -text
224
+ data/cada4_qwen.png filter=lfs diff=lfs merge=lfs -text
225
+ data/cada4_seedream.png filter=lfs diff=lfs merge=lfs -text
226
+ data/cada4_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
227
+ data/cada4_step1xv11.png filter=lfs diff=lfs merge=lfs -text
228
+ data/dbbea_Flux.png filter=lfs diff=lfs merge=lfs -text
229
+ data/dbbea_magic_brush.png filter=lfs diff=lfs merge=lfs -text
230
+ data/dbbea_my-before.png filter=lfs diff=lfs merge=lfs -text
231
+ data/dbbea_my.png filter=lfs diff=lfs merge=lfs -text
232
+ data/dbbea_omnigen2.png filter=lfs diff=lfs merge=lfs -text
233
+ data/dbbea_origin.png filter=lfs diff=lfs merge=lfs -text
234
+ data/dbbea_qwen.png filter=lfs diff=lfs merge=lfs -text
235
+ data/dbbea_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
236
+ data/dbbea_step1xv11.png filter=lfs diff=lfs merge=lfs -text
237
+ data/de580_Flux.png filter=lfs diff=lfs merge=lfs -text
238
+ data/de580_gemini2.5.png filter=lfs diff=lfs merge=lfs -text
239
+ data/de580_magic_brush.png filter=lfs diff=lfs merge=lfs -text
240
+ data/de580_my-before.png filter=lfs diff=lfs merge=lfs -text
241
+ data/de580_my.png filter=lfs diff=lfs merge=lfs -text
242
+ data/de580_omnigen.png filter=lfs diff=lfs merge=lfs -text
243
+ data/de580_omnigen2.png filter=lfs diff=lfs merge=lfs -text
244
+ data/de580_origin.png filter=lfs diff=lfs merge=lfs -text
245
+ data/de580_qwen.png filter=lfs diff=lfs merge=lfs -text
246
+ data/de580_seedream.png filter=lfs diff=lfs merge=lfs -text
247
+ data/de580_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
248
+ data/de580_step1xv11.png filter=lfs diff=lfs merge=lfs -text
249
+ data/f2c9d_Flux.png filter=lfs diff=lfs merge=lfs -text
250
+ data/f2c9d_gemini2.5.png filter=lfs diff=lfs merge=lfs -text
251
+ data/f2c9d_gemini3.png filter=lfs diff=lfs merge=lfs -text
252
+ data/f2c9d_magic_brush.png filter=lfs diff=lfs merge=lfs -text
253
+ data/f2c9d_my-before.png filter=lfs diff=lfs merge=lfs -text
254
+ data/f2c9d_my.png filter=lfs diff=lfs merge=lfs -text
255
+ data/f2c9d_omnigen.png filter=lfs diff=lfs merge=lfs -text
256
+ data/f2c9d_omnigen2.png filter=lfs diff=lfs merge=lfs -text
257
+ data/f2c9d_origin.png filter=lfs diff=lfs merge=lfs -text
258
+ data/f2c9d_qwen.png filter=lfs diff=lfs merge=lfs -text
259
+ data/f2c9d_seedream.png filter=lfs diff=lfs merge=lfs -text
260
+ data/f2c9d_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
261
+ data/f2c9d_step1xv11.png filter=lfs diff=lfs merge=lfs -text
262
+ data/f3099_Flux.png filter=lfs diff=lfs merge=lfs -text
263
+ data/f3099_magic_brush.png filter=lfs diff=lfs merge=lfs -text
264
+ data/f3099_my-before.png filter=lfs diff=lfs merge=lfs -text
265
+ data/f3099_my.png filter=lfs diff=lfs merge=lfs -text
266
+ data/f3099_omnigen2.png filter=lfs diff=lfs merge=lfs -text
267
+ data/f3099_origin.png filter=lfs diff=lfs merge=lfs -text
268
+ data/f3099_qwen.png filter=lfs diff=lfs merge=lfs -text
269
+ data/f3099_step1x-v1.png filter=lfs diff=lfs merge=lfs -text
270
+ data/f3099_step1xv11.png filter=lfs diff=lfs merge=lfs -text
app.py ADDED
@@ -0,0 +1,220 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import os
3
+ import random
4
+ import uuid
5
+ import csv
6
+ from datetime import datetime
7
+ from pathlib import Path
8
+ from huggingface_hub import CommitScheduler
9
+
10
+ # --- 1. 配置区域 ---
11
+
12
+ # 你的数据集地址 (已修改)
13
+ DATASET_REPO_ID = "Emilyxml/moveit"
14
+
15
+ # 数据源文件夹 (读取你的图片和txt)
16
+ DATA_FOLDER = "data"
17
+
18
+ # 临时日志文件夹 (用于存放用户生成的CSV,Scheduler 会监控这里)
19
+ LOG_FOLDER = Path("logs")
20
+ LOG_FOLDER.mkdir(parents=True, exist_ok=True)
21
+
22
+ # 获取 Token (需要在 Space 设置里配置 HF_TOKEN)
23
+ TOKEN = os.environ.get("HF_TOKEN")
24
+
25
+ # --- 2. 启动同步调度器 ---
26
+ # 只要 logs 文件夹里有 CSV 变化,就自动上传到 Dataset 的 data 文件夹下
27
+ scheduler = CommitScheduler(
28
+ repo_id=DATASET_REPO_ID,
29
+ repo_type="dataset",
30
+ folder_path=LOG_FOLDER, # 监控本地的 logs 文件夹
31
+ path_in_repo="data", # 上传到 Dataset 的 data 目录中
32
+ every=1, # 每分钟同步一次
33
+ token=TOKEN
34
+ )
35
+
36
+ # --- 3. 数据加载逻辑 ---
37
+ def load_data():
38
+ groups = {}
39
+
40
+ # 检查 data 文件夹是否存在
41
+ if not os.path.exists(DATA_FOLDER):
42
+ # 如果不存在,尝试创建(防止报错),但实际应该由你上传文件
43
+ os.makedirs(DATA_FOLDER, exist_ok=True)
44
+ print(f"Warning: {DATA_FOLDER} not found. Please upload your images.")
45
+ return {}, []
46
+
47
+ # 遍历文件
48
+ for filename in os.listdir(DATA_FOLDER):
49
+ if filename.startswith('.'): continue # 跳过隐藏文件
50
+
51
+ file_path = os.path.join(DATA_FOLDER, filename)
52
+ prefix = filename[:5] # 以前5个字符作为组ID
53
+
54
+ if prefix not in groups:
55
+ groups[prefix] = {"images": [], "instruction": "暂无说明"}
56
+
57
+ # 识别图片
58
+ if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.webp', '.bmp')):
59
+ groups[prefix]["images"].append(file_path)
60
+ # 识别文本
61
+ elif filename.lower().endswith('.txt'):
62
+ try:
63
+ with open(file_path, "r", encoding="utf-8") as f:
64
+ groups[prefix]["instruction"] = f.read()
65
+ except:
66
+ # 兼容 gbk 编码
67
+ with open(file_path, "r", encoding="gbk") as f:
68
+ groups[prefix]["instruction"] = f.read()
69
+
70
+ # 过滤掉没有图片的组
71
+ valid_groups = {k: v for k, v in groups.items() if len(v["images"]) > 0}
72
+
73
+ # 生成题目列表,并随机打乱
74
+ group_ids = list(valid_groups.keys())
75
+ random.shuffle(group_ids)
76
+
77
+ print(f"Loaded {len(group_ids)} groups of images.")
78
+ return valid_groups, group_ids
79
+
80
+ # 全局加载数据
81
+ ALL_GROUPS, ALL_GROUP_IDS = load_data()
82
+
83
+ # --- 4. 保存逻辑 (每个用户一个独立CSV) ---
84
+ def save_user_vote(user_id, group_id, choice_label, method_name):
85
+ """
86
+ 保存单次投票到 logs/user_{user_id}.csv
87
+ """
88
+ user_filename = f"user_{user_id}.csv"
89
+ user_file_path = LOG_FOLDER / user_filename
90
+
91
+ # 数据行
92
+ row = [
93
+ user_id,
94
+ datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
95
+ group_id,
96
+ choice_label, # 用户选了 Option A 还是 B
97
+ method_name # 真实的方法名
98
+ ]
99
+
100
+ # 线程安全写入
101
+ with scheduler.lock:
102
+ file_exists = user_file_path.exists()
103
+ with user_file_path.open("a", newline="", encoding="utf-8") as f:
104
+ writer = csv.writer(f)
105
+ # 如果是新文件,先写表头
106
+ if not file_exists:
107
+ writer.writerow(["user_id", "timestamp", "group_id", "selected_label", "selected_method"])
108
+ writer.writerow(row)
109
+
110
+ print(f"Saved vote for {user_id}: {method_name}")
111
+
112
+ # --- 5. 交互逻辑 ---
113
+ def get_next_question(user_state):
114
+ current_idx = user_state["index"]
115
+
116
+ # 1. 检查是否做完
117
+ if current_idx >= len(ALL_GROUP_IDS):
118
+ return (
119
+ gr.update(visible=False),
120
+ gr.update(visible=False),
121
+ gr.update(visible=False),
122
+ gr.update(value="## 🎉 测试结束!\n感谢您的参与,您的选择已保存。", visible=True),
123
+ user_state,
124
+ []
125
+ )
126
+
127
+ # 2. 获取当前组
128
+ group_id = ALL_GROUP_IDS[current_idx]
129
+ group_data = ALL_GROUPS[group_id]
130
+
131
+ # 3. 准备 Prompt
132
+ instruction_text = f"## 任务 ({current_idx + 1} / {len(ALL_GROUP_IDS)})\n\n{group_data['instruction']}"
133
+
134
+ # 4. 准备图片 (打乱顺序实现盲测)
135
+ original_images = group_data["images"]
136
+ shuffled_images = original_images.copy()
137
+ random.shuffle(shuffled_images)
138
+
139
+ # 构造 Gradio 显示对象
140
+ display_list = []
141
+ for i, img_path in enumerate(shuffled_images):
142
+ label = f"Option {chr(65+i)}" # Option A, Option B...
143
+ display_list.append((img_path, label))
144
+
145
+ return (
146
+ gr.update(value=instruction_text, visible=True),
147
+ gr.update(value=display_list, visible=True),
148
+ gr.update(visible=True),
149
+ gr.update(visible=False),
150
+ user_state,
151
+ shuffled_images # 将乱序后的真实路径列表传给 State
152
+ )
153
+
154
+ def on_vote(user_state, current_file_paths, select_data: gr.SelectData = None, is_none=False):
155
+ user_id = user_state["user_id"]
156
+ current_idx = user_state["index"]
157
+
158
+ # 防止溢出
159
+ if current_idx >= len(ALL_GROUP_IDS):
160
+ return get_next_question(user_state)
161
+
162
+ group_id = ALL_GROUP_IDS[current_idx]
163
+ selected_method = "Unknown"
164
+ selected_label = "None"
165
+
166
+ # --- 解析选择 ---
167
+ if is_none:
168
+ selected_method = "None_Satisfied"
169
+ selected_label = "Rejected All"
170
+ elif select_data is not None:
171
+ idx = select_data.index
172
+ # 获取真实路径
173
+ real_image_path = current_file_paths[idx]
174
+ selected_label = select_data.value["caption"]
175
+
176
+ # 提取方法名 (例如 6180a_omnigen.png -> omnigen)
177
+ filename = os.path.basename(real_image_path)
178
+ name_no_ext = os.path.splitext(filename)[0]
179
+ parts = name_no_ext.split('_', 1)
180
+ if len(parts) > 1:
181
+ selected_method = parts[1]
182
+ else:
183
+ selected_method = name_no_ext
184
+
185
+ # --- 保存 ---
186
+ save_user_vote(user_id, group_id, selected_label, selected_method)
187
+
188
+ # --- 下一题 ---
189
+ user_state["index"] += 1
190
+ return get_next_question(user_state)
191
+
192
+ # --- 6. 界面构建 ---
193
+ with gr.Blocks(title="User Study - MoveIt") as demo:
194
+ # State 初始化:每次刷新网页生成新的 user_id
195
+ state_user = gr.State(lambda: {"user_id": str(uuid.uuid4())[:8], "index": 0})
196
+ state_files = gr.State([])
197
+
198
+ with gr.Column(elem_id="main"):
199
+ instruction_md = gr.Markdown("Loading...")
200
+
201
+ gallery = gr.Gallery(
202
+ label="请点击选择最佳图片",
203
+ columns=[2],
204
+ height="auto",
205
+ interactive=True
206
+ )
207
+
208
+ btn_none = gr.Button("🚫 没有任何一张图片符合要求", variant="stop")
209
+
210
+ end_msg = gr.Markdown(visible=False)
211
+
212
+ # 事件绑定
213
+ demo.load(fn=get_next_question, inputs=[state_user], outputs=[instruction_md, gallery, btn_none, end_msg, state_user, state_files])
214
+
215
+ gallery.select(fn=lambda s, f, evt: on_vote(s, f, evt, is_none=False), inputs=[state_user, state_files], outputs=[instruction_md, gallery, btn_none, end_msg, state_user, state_files])
216
+
217
+ btn_none.click(fn=lambda s, f: on_vote(s, f, None, is_none=True), inputs=[state_user, state_files], outputs=[instruction_md, gallery, btn_none, end_msg, state_user, state_files])
218
+
219
+ if __name__ == "__main__":
220
+ demo.launch()
data/02629.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ move the watercolor pens to the right of the the white suitcase.
data/02629_Flux.png ADDED

Git LFS Details

  • SHA256: f23e12deadfceecbbea3327b2e00e8ad47d3ac4e08b660267e17147a0462e7d3
  • Pointer size: 132 Bytes
  • Size of remote file: 6.59 MB
data/02629_magic_brush.png ADDED

Git LFS Details

  • SHA256: 4211bdd2fb775db02dd8bf55d467fd6985c98c07c09046329caa5cbf3b868ace
  • Pointer size: 133 Bytes
  • Size of remote file: 19.7 MB
data/02629_my-before.png ADDED

Git LFS Details

  • SHA256: efb4b129b376f9a39392f49660113c121cb7fec5e9145bc905013122c5709a8c
  • Pointer size: 132 Bytes
  • Size of remote file: 6.47 MB
data/02629_my.png ADDED

Git LFS Details

  • SHA256: b14f19e55b0972855b7fc4caf0c8716d4a8bd25386db25685b2588436b21d57f
  • Pointer size: 132 Bytes
  • Size of remote file: 6.44 MB
data/02629_omnigen2.png ADDED

Git LFS Details

  • SHA256: dd6e0e2c56171d2b309d80cdf9f19e608f6a3f695953ce9ec9c4d8a8fad65ae5
  • Pointer size: 132 Bytes
  • Size of remote file: 5.78 MB
data/02629_origin.png ADDED

Git LFS Details

  • SHA256: 0e9a798fefa0a00a8357ce8108443e4146d297858c4c42d4476e0b325959e0df
  • Pointer size: 133 Bytes
  • Size of remote file: 10.2 MB
data/02629_qwen.png ADDED

Git LFS Details

  • SHA256: 261af4b0dcf6f1cfab3d50ef02e492529fc5d7cada78244291026c8e4b6110a7
  • Pointer size: 132 Bytes
  • Size of remote file: 5.81 MB
data/02629_step1x-v1.png ADDED

Git LFS Details

  • SHA256: 171c04687b8a70af2a3823481d64bb3085b7e74933b7ba251d4e1ed8acb11454
  • Pointer size: 132 Bytes
  • Size of remote file: 4.06 MB
data/02629_step1xv11.png ADDED

Git LFS Details

  • SHA256: 6a32765cedffc1ff5a19016cf893a8bb07d04508b5e0bed9645dfc0c33d1fcaf
  • Pointer size: 132 Bytes
  • Size of remote file: 4.05 MB
data/07ddc.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ move the blue frisbee to the left of the the binder clips box.
data/07ddc_Flux.png ADDED

Git LFS Details

  • SHA256: 967c19e1c18a18804d02a5dd84e1618b662cd355a5c261d774ef1bec11011153
  • Pointer size: 132 Bytes
  • Size of remote file: 8.34 MB
data/07ddc_magic_brush.png ADDED

Git LFS Details

  • SHA256: a303405da0dcffcf1b20e729d8a54d538330768db8be2e3684c6c48ccf99a2a4
  • Pointer size: 133 Bytes
  • Size of remote file: 16 MB
data/07ddc_my-before.png ADDED

Git LFS Details

  • SHA256: 90d855f8ed8f46688c83be577d0478d08756c267b4316f82805ecc687bb41e2d
  • Pointer size: 132 Bytes
  • Size of remote file: 8.41 MB
data/07ddc_my.png ADDED

Git LFS Details

  • SHA256: 3124925bd822abd1b3793fe3eb58153859b7c016104fd0bee09d566198773d79
  • Pointer size: 132 Bytes
  • Size of remote file: 8.38 MB
data/07ddc_omnigen2.png ADDED

Git LFS Details

  • SHA256: 2458857e193388e721f407876c91d18d0d311b1718a6d9be6858965efd0c0b78
  • Pointer size: 132 Bytes
  • Size of remote file: 7.11 MB
data/07ddc_origin.png ADDED

Git LFS Details

  • SHA256: dbea00897597702087dfc863b016629b4f43677b06273e1715d99fb1e33e8215
  • Pointer size: 133 Bytes
  • Size of remote file: 12.1 MB
data/07ddc_qwen.png ADDED

Git LFS Details

  • SHA256: b3ef0b26f35f00d28c2d23aec4eaee05d861333034231e49c6e42b00fba4fe3e
  • Pointer size: 132 Bytes
  • Size of remote file: 7.81 MB
data/07ddc_step1x-v1.png ADDED

Git LFS Details

  • SHA256: c3038c8e81bd0aad28895aa6a2832421e08ec16295a362c8316bc88e20c35fe4
  • Pointer size: 132 Bytes
  • Size of remote file: 6.04 MB
data/07ddc_step1xv11.png ADDED

Git LFS Details

  • SHA256: 8fb195c41d71ce0457871470f7498002953b80816b745eb993eba827ef0ea037
  • Pointer size: 132 Bytes
  • Size of remote file: 6.4 MB
data/1bcdc.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ move the watercolor pens to the top of the the pink suitcase.
data/1bcdc_Flux.png ADDED

Git LFS Details

  • SHA256: a2f333d73d2d8930ca84a71f868f6cd4c650278809e72ad2720f3801a896f320
  • Pointer size: 132 Bytes
  • Size of remote file: 6.87 MB
data/1bcdc_magic_brush.png ADDED

Git LFS Details

  • SHA256: 91b9d99fd6e6befc269488e3de1624a2e167bf974d9d28ad84140606171cceaf
  • Pointer size: 133 Bytes
  • Size of remote file: 17.9 MB
data/1bcdc_my-before.png ADDED

Git LFS Details

  • SHA256: 9b738a230670a5a45c3499b1292370ae832753a9f97db28e4523fe3a2cf02a84
  • Pointer size: 132 Bytes
  • Size of remote file: 6.86 MB
data/1bcdc_my.png ADDED

Git LFS Details

  • SHA256: 706d449b8b3300d15704e6f3d4d7b806f61c6a904ff407fb0c7efb0e84f98e38
  • Pointer size: 132 Bytes
  • Size of remote file: 6.71 MB
data/1bcdc_omnigen2.png ADDED

Git LFS Details

  • SHA256: 68bcaf7689ceeb86b70040eeda6fb273ae05eca12df8c45448f206663a769622
  • Pointer size: 132 Bytes
  • Size of remote file: 5.24 MB
data/1bcdc_origin.png ADDED

Git LFS Details

  • SHA256: ad42feaa59abd155ae4523673858472f2cf1dc3ba5fd5056a929cddbeb56de4e
  • Pointer size: 133 Bytes
  • Size of remote file: 10.4 MB
data/1bcdc_qwen.png ADDED

Git LFS Details

  • SHA256: 029bd65de1d0f944e9b147822de8503a9ddcd6d3683fcecd4f3c90948746c144
  • Pointer size: 132 Bytes
  • Size of remote file: 6.69 MB
data/1bcdc_step1x-v1.png ADDED

Git LFS Details

  • SHA256: 3c2bca8f578be7c327718e8aa8b7341d415786bdd5bc44300c347283ff14457a
  • Pointer size: 132 Bytes
  • Size of remote file: 4.24 MB
data/1bcdc_step1xv11.png ADDED

Git LFS Details

  • SHA256: 8cae0ad42580fb0ad7367ed667570477c8eea5ef206335062a61e1f97c024059
  • Pointer size: 132 Bytes
  • Size of remote file: 4.34 MB
data/261b7.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ Place the white box to the right side of the red square.
data/261b7_Flux.png ADDED

Git LFS Details

  • SHA256: ad5c570cee669db00d0307a05392553df901ce3651dc9887321d5d3e9ca674de
  • Pointer size: 132 Bytes
  • Size of remote file: 1.1 MB
data/261b7_gemini2.5.png ADDED

Git LFS Details

  • SHA256: b3b46f555df98e278e30d5a5d6b3bb7967123cab1e21b8fcde7ead53c07e8260
  • Pointer size: 131 Bytes
  • Size of remote file: 758 kB
data/261b7_gemini3.png ADDED

Git LFS Details

  • SHA256: 99c5d7b29451c92cb1f1cb6f3d0b42a8565539cf5558e4d37970a2a1e3600a04
  • Pointer size: 131 Bytes
  • Size of remote file: 962 kB
data/261b7_magic_brush.png ADDED

Git LFS Details

  • SHA256: ed8814caaf583941ff2529276af6c61e39e2ec1ccaa24f6949f9807442b7045b
  • Pointer size: 132 Bytes
  • Size of remote file: 1.08 MB
data/261b7_my-before.png ADDED

Git LFS Details

  • SHA256: c96bd405c384fc1b8e88ca0d70d7c10e96d9c89c49a1d62cdd18eeb4359a92f5
  • Pointer size: 132 Bytes
  • Size of remote file: 1.02 MB
data/261b7_my.png ADDED

Git LFS Details

  • SHA256: 4dee3725a9190549e59302707b42abfece2a0b65c1dcf56decea91c49f25debd
  • Pointer size: 131 Bytes
  • Size of remote file: 995 kB
data/261b7_omnigen.png ADDED

Git LFS Details

  • SHA256: 28fdc932167dc011f48dd893ccf604457f94d32d950286d8c54243c8bef229e8
  • Pointer size: 132 Bytes
  • Size of remote file: 1.03 MB
data/261b7_omnigen2.png ADDED

Git LFS Details

  • SHA256: 4a692358504ed4fc92a5edcb83ec857430c27da09fcc861bda69b273ca5c7587
  • Pointer size: 132 Bytes
  • Size of remote file: 1.03 MB
data/261b7_origin.png ADDED

Git LFS Details

  • SHA256: c9f25bff8977854cd8551ed48fba84e129536328c998dcb281406eba62a837de
  • Pointer size: 132 Bytes
  • Size of remote file: 1.04 MB
data/261b7_qwen.png ADDED

Git LFS Details

  • SHA256: ce7bf9d78f4cb4d046b09b5e6cadf4feef7ca9d6a368fd6a2390314752580d34
  • Pointer size: 131 Bytes
  • Size of remote file: 792 kB
data/261b7_seedream.png ADDED

Git LFS Details

  • SHA256: 6a8aa9df5d468fd4fd06f2e9150763a7f6adf716125bb1c5d46ac3e0d787d6d8
  • Pointer size: 131 Bytes
  • Size of remote file: 836 kB
data/261b7_step1x-v1.png ADDED

Git LFS Details

  • SHA256: 58da47a11400deed0104ac9201159d7153441ba9310a7889c42fdb4d9869fd9c
  • Pointer size: 131 Bytes
  • Size of remote file: 459 kB
data/261b7_step1xv11.png ADDED

Git LFS Details

  • SHA256: 197ec9dcc7c811b616cede91a35e46a5ea8725539c3d4578e093e3a87bf77d8c
  • Pointer size: 131 Bytes
  • Size of remote file: 376 kB
data/26718.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ Move the silver remote control from the right of the black game console to the left of the black game console.
data/26718_Flux.png ADDED

Git LFS Details

  • SHA256: adf3d31d93ea2f556f450029012517c115ecb7451586b7787c213974218eabc3
  • Pointer size: 132 Bytes
  • Size of remote file: 1.36 MB
data/26718_gemini2.5.png ADDED

Git LFS Details

  • SHA256: 983767a27c757d0f1de011f4a100c36b9051579b3cb35890684ba2050b04788c
  • Pointer size: 132 Bytes
  • Size of remote file: 1.21 MB
data/26718_gemini3.png ADDED

Git LFS Details

  • SHA256: 54014c1befb4fcc5e35c921a799620a2535013af6569b18254d181887d0a640a
  • Pointer size: 132 Bytes
  • Size of remote file: 1.24 MB