Wildminder commited on
Commit
fb8e1e8
·
verified ·
1 Parent(s): db19999

Upload 2 files

Browse files
Files changed (2) hide show
  1. index.html +433 -16
  2. performance_data.json +446 -0
index.html CHANGED
@@ -1,16 +1,433 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>Sampler-Scheduler compatibility test with HiDream</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Sampler-Scheduler compatibility test with HiDream</h1>
12
- <p>check Files for png</p>
13
-
14
- </div>
15
- </body>
16
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Sampler/Scheduler Performance Matrix</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ .heatmap-cell {
11
+ transition: all 0.2s ease;
12
+ position: relative;
13
+ }
14
+ .heatmap-cell:hover {
15
+ transform: scale(1.05);
16
+ box-shadow: 0 0 10px rgba(0,0,0,0.2);
17
+ z-index: 10;
18
+ }
19
+ .heatmap-cell:hover::after {
20
+ content: attr(data-value);
21
+ position: absolute;
22
+ top: -30px;
23
+ left: 50%;
24
+ transform: translateX(-50%);
25
+ background: #333;
26
+ color: white;
27
+ padding: 4px 8px;
28
+ border-radius: 4px;
29
+ font-size: 12px;
30
+ white-space: nowrap;
31
+ z-index: 20;
32
+ }
33
+ .sticky-header {
34
+ position: sticky;
35
+ top: 0;
36
+ z-index: 20;
37
+ background-color: white;
38
+ }
39
+ .sticky-col {
40
+ position: sticky;
41
+ left: 0;
42
+ z-index: 10;
43
+ background-color: white;
44
+ }
45
+ .scroll-container {
46
+ max-height: 80vh;
47
+ overflow: auto;
48
+ }
49
+ .color-scale {
50
+ background: linear-gradient(90deg, #f0fff4, #9ae6b4, #48bb78, #f6e05e, #f6ad55, #f56565);
51
+ }
52
+ </style>
53
+ </head>
54
+ <body class="bg-gray-50 font-sans">
55
+ <div class="container mx-auto px-4 py-8">
56
+ <div class="flex flex-col md:flex-row justify-between items-start md:items-center mb-8 gap-4">
57
+ <div>
58
+ <h1 class="text-3xl font-bold text-gray-800 mb-2">Sampler/Scheduler Performance Matrix</h1>
59
+ <p class="text-gray-600">Visualizing execution speed across different combinations</p>
60
+ </div>
61
+ <div class="flex items-center gap-4">
62
+ <div class="relative">
63
+ <input type="text" id="searchInput" placeholder="Search samplers..."
64
+ class="pl-10 pr-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500">
65
+ <i class="fas fa-search absolute left-3 top-3 text-gray-400"></i>
66
+ </div>
67
+ <div class="flex items-center gap-2">
68
+ <span class="text-sm text-gray-600">Performance:</span>
69
+ <div class="flex items-center">
70
+ <span class="text-xs mr-1">Fast</span>
71
+ <div class="w-24 h-4 rounded-full color-scale"></div>
72
+ <span class="text-xs ml-1">Slow</span>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </div>
77
+
78
+ <div class="bg-white rounded-xl shadow-md overflow-hidden">
79
+ <div class="p-4 border-b">
80
+ <div class="flex justify-between items-center">
81
+ <h2 class="text-xl font-semibold text-gray-700">Performance Metrics (iterations/sec)</h2>
82
+ <div class="flex items-center gap-2">
83
+ <button id="toggleHeatmap" class="px-3 py-1 bg-blue-100 text-blue-600 rounded-md text-sm hover:bg-blue-200 transition">
84
+ <i class="fas fa-fire mr-1"></i> Toggle Heatmap
85
+ </button>
86
+ </div>
87
+ </div>
88
+ </div>
89
+
90
+ <div class="scroll-container">
91
+ <table class="w-full">
92
+ <thead>
93
+ <tr class="sticky-header">
94
+ <th class="sticky-col p-3 text-left font-medium text-gray-700 bg-white border-r min-w-[180px]">Sampler \ Scheduler</th>
95
+ <th class="p-3 text-center font-medium text-gray-700 bg-white border-b">beta</th>
96
+ <th class="p-3 text-center font-medium text-gray-700 bg-white border-b">beta57</th>
97
+ <th class="p-3 text-center font-medium text-gray-700 bg-white border-b">ddim_uniform</th>
98
+ <th class="p-3 text-center font-medium text-gray-700 bg-white border-b">exponential</th>
99
+ <th class="p-3 text-center font-medium text-gray-700 bg-white border-b">kl_optimal</th>
100
+ <th class="p-3 text-center font-medium text-gray-700 bg-white border-b">karras</th>
101
+ <th class="p-3 text-center font-medium text-gray-700 bg-white border-b">linear_quadratic</th>
102
+ <th class="p-3 text-center font-medium text-gray-700 bg-white border-b">normal</th>
103
+ <th class="p-3 text-center font-medium text-gray-700 bg-white border-b">sgm_uniform</th>
104
+ <th class="p-3 text-center font-medium text-gray-700 bg-white border-b">simple</th>
105
+ </tr>
106
+ </thead>
107
+ <tbody id="matrixBody">
108
+ <!-- Table content will be generated by JavaScript -->
109
+ </tbody>
110
+ </table>
111
+ </div>
112
+ </div>
113
+
114
+ <div class="mt-8 bg-white rounded-xl shadow-md p-6">
115
+ <h2 class="text-xl font-semibold text-gray-700 mb-4">Performance Insights</h2>
116
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
117
+ <div class="bg-blue-50 p-4 rounded-lg">
118
+ <div class="flex items-center mb-2">
119
+ <div class="w-8 h-8 bg-blue-100 rounded-full flex items-center justify-center mr-3">
120
+ <i class="fas fa-trophy text-blue-500"></i>
121
+ </div>
122
+ <h3 class="font-medium text-gray-700">Top Performer</h3>
123
+ </div>
124
+ <p class="text-gray-600 text-sm" id="topPerformer">Loading...</p>
125
+ </div>
126
+ <div class="bg-green-50 p-4 rounded-lg">
127
+ <div class="flex items-center mb-2">
128
+ <div class="w-8 h-8 bg-green-100 rounded-full flex items-center justify-center mr-3">
129
+ <i class="fas fa-star text-green-500"></i>
130
+ </div>
131
+ <h3 class="font-medium text-gray-700">Most Consistent</h3>
132
+ </div>
133
+ <p class="text-gray-600 text-sm" id="mostConsistent">Loading...</p>
134
+ </div>
135
+ <div class="bg-red-50 p-4 rounded-lg">
136
+ <div class="flex items-center mb-2">
137
+ <div class="w-8 h-8 bg-red-100 rounded-full flex items-center justify-center mr-3">
138
+ <i class="fas fa-snail text-red-500"></i>
139
+ </div>
140
+ <h3 class="font-medium text-gray-700">Slowest</h3>
141
+ </div>
142
+ <p class="text-gray-600 text-sm" id="slowest">Loading...</p>
143
+ </div>
144
+ </div>
145
+ </div>
146
+ </div>
147
+
148
+ <script>
149
+ // Global variables to store data and min/max values
150
+ let performanceData = {};
151
+ let minValue = Infinity;
152
+ let maxValue = -Infinity;
153
+ let heatmapEnabled = true; // Keep track of heatmap state
154
+
155
+ // Calculate color based on value
156
+ function getColor(value) {
157
+ if (!heatmapEnabled || !isFinite(minValue) || !isFinite(maxValue) || minValue === maxValue) {
158
+ return 'bg-white'; // Return white if heatmap disabled or invalid range
159
+ }
160
+ const normalized = (value - minValue) / (maxValue - minValue);
161
+
162
+ // Adjusted color scale (more distinct colors)
163
+ if (normalized < 0.1) return 'bg-emerald-200'; // Very Fast
164
+ if (normalized < 0.25) return 'bg-green-300'; // Fast
165
+ if (normalized < 0.5) return 'bg-yellow-200'; // Average
166
+ if (normalized < 0.75) return 'bg-orange-300'; // Slowish
167
+ return 'bg-red-400'; // Slow
168
+ }
169
+
170
+ // Generate table rows
171
+ function generateTable() {
172
+ const matrixBody = document.getElementById('matrixBody');
173
+ if (!matrixBody) return; // Guard clause
174
+ matrixBody.innerHTML = ''; // Clear previous content
175
+
176
+ const schedulers = Object.keys(performanceData[Object.keys(performanceData)[0]] || {}); // Get scheduler names reliably
177
+
178
+ // Update table header dynamically (optional, but good practice)
179
+ const headerRow = document.querySelector('thead tr');
180
+ // Clear existing scheduler headers (skip the first 'Sampler \ Scheduler' th)
181
+ while (headerRow.children.length > 1) {
182
+ headerRow.removeChild(headerRow.lastChild);
183
+ }
184
+ // Add new scheduler headers
185
+ schedulers.forEach(scheduler => {
186
+ const th = document.createElement('th');
187
+ th.className = "p-3 text-center font-medium text-gray-700 bg-white border-b";
188
+ th.textContent = scheduler;
189
+ headerRow.appendChild(th);
190
+ });
191
+
192
+
193
+ // Generate table body rows
194
+ for (const sampler in performanceData) {
195
+ const row = document.createElement('tr');
196
+ row.className = 'sampler-row hover:bg-gray-50';
197
+
198
+ // Sampler name cell
199
+ const samplerCell = document.createElement('td');
200
+ samplerCell.className = 'sticky-col p-3 text-left font-medium text-gray-700 bg-white border-r';
201
+ samplerCell.textContent = sampler;
202
+ row.appendChild(samplerCell);
203
+
204
+ // Scheduler cells
205
+ schedulers.forEach(scheduler => {
206
+ const value = performanceData[sampler][scheduler];
207
+ const cell = document.createElement('td');
208
+ cell.className = `heatmap-cell p-3 text-center border-b ${getColor(value)}`;
209
+ cell.textContent = value !== undefined ? value.toFixed(2) : '-'; // Handle missing data
210
+ if (value !== undefined) {
211
+ cell.setAttribute('data-value', `${sampler} + ${scheduler}: ${value.toFixed(2)} s`); // Updated tooltip text
212
+ } else {
213
+ cell.setAttribute('data-value', `${sampler} + ${scheduler}: N/A`);
214
+ }
215
+ row.appendChild(cell);
216
+ });
217
+
218
+ matrixBody.appendChild(row);
219
+ }
220
+ }
221
+
222
+ // Find performance insights
223
+ function calculateInsights() {
224
+ if (Object.keys(performanceData).length === 0) return; // No data
225
+
226
+ let topPerformer = { value: Infinity, sampler: '', scheduler: '' }; // Lower is faster
227
+ let slowest = { value: -Infinity, sampler: '', scheduler: '' }; // Higher is slower
228
+ const consistency = {};
229
+ minValue = Infinity;
230
+ maxValue = -Infinity;
231
+
232
+ for (const sampler in performanceData) {
233
+ let samplerValues = [];
234
+ let samplerSum = 0;
235
+ let samplerCount = 0;
236
+
237
+ for (const scheduler in performanceData[sampler]) {
238
+ const value = performanceData[sampler][scheduler];
239
+ if (value === undefined || value === null) continue; // Skip missing values
240
+
241
+ samplerValues.push(value);
242
+ samplerSum += value;
243
+ samplerCount++;
244
+
245
+ // Find overall min/max for color scale
246
+ if (value < minValue) minValue = value;
247
+ if (value > maxValue) maxValue = value;
248
+
249
+ // Check for top performer (lowest time)
250
+ if (value < topPerformer.value) {
251
+ topPerformer = { value, sampler, scheduler };
252
+ }
253
+
254
+ // Check for slowest (highest time)
255
+ if (value > slowest.value) {
256
+ slowest = { value, sampler, scheduler };
257
+ }
258
+ }
259
+
260
+ if (samplerCount > 0) {
261
+ // Calculate standard deviation for consistency
262
+ const mean = samplerSum / samplerCount;
263
+ let variance = 0;
264
+ samplerValues.forEach(v => {
265
+ variance += Math.pow(v - mean, 2);
266
+ });
267
+ variance /= samplerCount;
268
+ const stdDev = Math.sqrt(variance);
269
+ consistency[sampler] = { stdDev, mean };
270
+ }
271
+ }
272
+
273
+ // Find most consistent sampler (lowest std deviation relative to mean, Coefficient of Variation)
274
+ let mostConsistent = { cv: Infinity, sampler: '' };
275
+ for (const sampler in consistency) {
276
+ if (consistency[sampler].mean > 0) { // Avoid division by zero
277
+ const cv = consistency[sampler].stdDev / consistency[sampler].mean;
278
+ if (cv < mostConsistent.cv) {
279
+ mostConsistent = { cv, sampler, stdDev: consistency[sampler].stdDev };
280
+ }
281
+ } else if (consistency[sampler].stdDev === 0 && mostConsistent.cv > 0) {
282
+ // Handle cases with zero mean and zero deviation (perfectly consistent)
283
+ mostConsistent = { cv: 0, sampler, stdDev: 0 };
284
+ }
285
+ }
286
+
287
+ // Update DOM - check if elements exist before updating
288
+ const topPerformerEl = document.getElementById('topPerformer');
289
+ const mostConsistentEl = document.getElementById('mostConsistent');
290
+ const slowestEl = document.getElementById('slowest');
291
+
292
+ if (topPerformerEl) {
293
+ topPerformerEl.textContent = isFinite(topPerformer.value)
294
+ ? `${topPerformer.sampler} + ${topPerformer.scheduler}: ${topPerformer.value.toFixed(2)} s`
295
+ : 'N/A';
296
+ }
297
+
298
+ if (mostConsistentEl) {
299
+ mostConsistentEl.textContent = isFinite(mostConsistent.cv)
300
+ ? `${mostConsistent.sampler} (StdDev: ${mostConsistent.stdDev.toFixed(2)}, CV: ${mostConsistent.cv.toFixed(2)})`
301
+ : 'N/A';
302
+ }
303
+
304
+ if (slowestEl) {
305
+ slowestEl.textContent = isFinite(slowest.value)
306
+ ? `${slowest.sampler} + ${slowest.scheduler}: ${slowest.value.toFixed(2)} s`
307
+ : 'N/A';
308
+ }
309
+ }
310
+
311
+ // Toggle heatmap colors
312
+ function toggleHeatmap() {
313
+ heatmapEnabled = !heatmapEnabled;
314
+ const cells = document.querySelectorAll('.heatmap-cell');
315
+ cells.forEach(cell => {
316
+ // Remove all existing background color classes before applying the new one
317
+ cell.classList.remove('bg-emerald-200', 'bg-green-300', 'bg-yellow-200', 'bg-orange-300', 'bg-red-400', 'bg-white');
318
+
319
+ if (heatmapEnabled) {
320
+ const valueText = cell.textContent;
321
+ // Check if the cell contains a valid number before parsing
322
+ if (valueText && valueText !== '-' && !isNaN(parseFloat(valueText))) {
323
+ const value = parseFloat(valueText);
324
+ cell.classList.add(getColor(value));
325
+ } else {
326
+ cell.classList.add('bg-gray-100'); // Indicate missing data visually
327
+ }
328
+ } else {
329
+ cell.classList.add('bg-white');
330
+ }
331
+ });
332
+
333
+ // Update button appearance
334
+ const toggleButton = document.getElementById('toggleHeatmap');
335
+ if (toggleButton) {
336
+ if (heatmapEnabled) {
337
+ toggleButton.innerHTML = '<i class="fas fa-ban mr-1"></i> Disable Heatmap';
338
+ toggleButton.classList.replace('bg-red-100', 'bg-blue-100');
339
+ toggleButton.classList.replace('text-red-600', 'text-blue-600');
340
+ toggleButton.classList.replace('hover:bg-red-200', 'hover:bg-blue-200');
341
+ } else {
342
+ toggleButton.innerHTML = '<i class="fas fa-fire mr-1"></i> Enable Heatmap';
343
+ toggleButton.classList.replace('bg-blue-100', 'bg-red-100');
344
+ toggleButton.classList.replace('text-blue-600', 'text-red-600');
345
+ toggleButton.classList.replace('hover:bg-blue-200', 'hover:bg-red-200');
346
+ }
347
+ }
348
+ }
349
+
350
+
351
+ // Search functionality
352
+ function setupSearch() {
353
+ const searchInput = document.getElementById('searchInput');
354
+ if (!searchInput) return; // Guard clause
355
+
356
+ searchInput.addEventListener('input', () => {
357
+ const searchTerm = searchInput.value.toLowerCase().trim();
358
+ const rows = document.querySelectorAll('#matrixBody .sampler-row');
359
+
360
+ rows.forEach(row => {
361
+ const samplerNameCell = row.cells[0];
362
+ if (samplerNameCell) {
363
+ const samplerName = samplerNameCell.textContent.toLowerCase();
364
+ if (samplerName.includes(searchTerm)) {
365
+ row.style.display = '';
366
+ } else {
367
+ row.style.display = 'none';
368
+ }
369
+ }
370
+ });
371
+ });
372
+ }
373
+
374
+ // Fetch data and initialize the page
375
+ async function initializeApp() {
376
+ try {
377
+ // --- IMPORTANT: Replace 'performance_data.json' with the actual path to your JSON file ---
378
+ const response = await fetch('performance_data.json');
379
+ if (!response.ok) {
380
+ throw new Error(`HTTP error! status: ${response.status}`);
381
+ }
382
+ performanceData = await response.json();
383
+
384
+ // Ensure performanceData is not empty
385
+ if (Object.keys(performanceData).length === 0) {
386
+ console.warn("Fetched data is empty.");
387
+ // Optionally display a message to the user
388
+ document.getElementById('matrixBody').innerHTML = '<tr><td colspan="11" class="text-center p-4 text-gray-500">No performance data loaded.</td></tr>';
389
+ return;
390
+ }
391
+
392
+ // Calculate insights (which also sets min/max values)
393
+ calculateInsights();
394
+
395
+ // Generate the table content
396
+ generateTable();
397
+
398
+ // Set up search functionality
399
+ setupSearch();
400
+
401
+ // Attach event listener for the heatmap toggle button
402
+ const toggleButton = document.getElementById('toggleHeatmap');
403
+ if (toggleButton) {
404
+ // Initialize button text based on default heatmap state
405
+ if (heatmapEnabled) {
406
+ toggleButton.innerHTML = '<i class="fas fa-ban mr-1"></i> Disable Heatmap';
407
+ toggleButton.classList.add('bg-blue-100', 'text-blue-600', 'hover:bg-blue-200');
408
+ } else {
409
+ toggleButton.innerHTML = '<i class="fas fa-fire mr-1"></i> Enable Heatmap';
410
+ toggleButton.classList.add('bg-red-100', 'text-red-600', 'hover:bg-red-200');
411
+ }
412
+ toggleButton.addEventListener('click', toggleHeatmap);
413
+ }
414
+
415
+ } catch (error) {
416
+ console.error("Failed to load or process performance data:", error);
417
+ // Display an error message to the user
418
+ const matrixBody = document.getElementById('matrixBody');
419
+ if (matrixBody) {
420
+ matrixBody.innerHTML = '<tr><td colspan="11" class="text-center p-4 text-red-500">Error loading data: ${error.message}</td></tr>';
421
+ }
422
+ // Also clear insights
423
+ document.getElementById('topPerformer').textContent = 'Error';
424
+ document.getElementById('mostConsistent').textContent = 'Error';
425
+ document.getElementById('slowest').textContent = 'Error';
426
+ }
427
+ }
428
+
429
+ // Initialize when the DOM is ready
430
+ document.addEventListener('DOMContentLoaded', initializeApp);
431
+ </script>
432
+ </body>
433
+ </html>
performance_data.json ADDED
@@ -0,0 +1,446 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "ddim": {
3
+ "beta": 11.01,
4
+ "beta57": 10.79,
5
+ "ddim_uniform": 10.71,
6
+ "exponential": 10.83,
7
+ "kl_optimal": 10.83,
8
+ "karras": 10.87,
9
+ "linear_quadratic": 10.74,
10
+ "normal": 10.85,
11
+ "sgm_uniform": 10.79,
12
+ "simple": 11.1
13
+ },
14
+ "ddpm": {
15
+ "beta": 10.97,
16
+ "beta57": 11.43,
17
+ "ddim_uniform": 11.16,
18
+ "exponential": 10.9,
19
+ "kl_optimal": 10.87,
20
+ "karras": 10.94,
21
+ "linear_quadratic": 11.01,
22
+ "normal": 10.81,
23
+ "sgm_uniform": 10.88,
24
+ "simple": 11.18
25
+ },
26
+ "deis": {
27
+ "beta": 10.62,
28
+ "beta57": 10.45,
29
+ "ddim_uniform": 10.58,
30
+ "exponential": 10.82,
31
+ "kl_optimal": 10.78,
32
+ "karras": 10.91,
33
+ "linear_quadratic": 10.49,
34
+ "normal": 10.33,
35
+ "sgm_uniform": 10.7,
36
+ "simple": 11.0
37
+ },
38
+ "deis_2m": {
39
+ "beta": 14.53,
40
+ "beta57": 14.14,
41
+ "ddim_uniform": 14.23,
42
+ "exponential": 14.4,
43
+ "kl_optimal": 14.38,
44
+ "karras": 14.68,
45
+ "linear_quadratic": 14.41,
46
+ "normal": 14.21,
47
+ "sgm_uniform": 14.02,
48
+ "simple": 14.41
49
+ },
50
+ "deis_3m": {
51
+ "beta": 21.26,
52
+ "beta57": 20.75,
53
+ "ddim_uniform": 21.16,
54
+ "exponential": 21.43,
55
+ "kl_optimal": 21.46,
56
+ "karras": 21.52,
57
+ "linear_quadratic": 21.13,
58
+ "normal": 21.03,
59
+ "sgm_uniform": 21.79,
60
+ "simple": 21.51
61
+ },
62
+ "deis_4m": {
63
+ "beta": 25.1,
64
+ "beta57": 25.02,
65
+ "ddim_uniform": 24.93,
66
+ "exponential": 24.93,
67
+ "kl_optimal": 25.0,
68
+ "karras": 24.98,
69
+ "linear_quadratic": 25.14,
70
+ "normal": 25.12,
71
+ "sgm_uniform": 24.77,
72
+ "simple": 25.14
73
+ },
74
+ "dpm_2": {
75
+ "beta": 18.04,
76
+ "beta57": 17.95,
77
+ "ddim_uniform": 21.73,
78
+ "exponential": 17.85,
79
+ "kl_optimal": 17.82,
80
+ "karras": 17.77,
81
+ "linear_quadratic": 17.95,
82
+ "normal": 18.01,
83
+ "sgm_uniform": 17.88,
84
+ "simple": 18.23
85
+ },
86
+ "dpm_2_ancestral": {
87
+ "beta": 18.02,
88
+ "beta57": 17.91,
89
+ "ddim_uniform": 21.66,
90
+ "exponential": 17.79,
91
+ "kl_optimal": 17.84,
92
+ "karras": 17.74,
93
+ "linear_quadratic": 17.95,
94
+ "normal": 17.89,
95
+ "sgm_uniform": 17.91,
96
+ "simple": 18.18
97
+ },
98
+ "dpm_adaptive": {
99
+ "beta": 75.95,
100
+ "beta57": 86.52,
101
+ "ddim_uniform": 134.55,
102
+ "exponential": 113.25,
103
+ "kl_optimal": 113.31,
104
+ "karras": 113.13,
105
+ "linear_quadratic": 70.42,
106
+ "normal": 107.89,
107
+ "sgm_uniform": 65.01,
108
+ "simple": 65.49
109
+ },
110
+ "dpm_fast": {
111
+ "beta": 10.6,
112
+ "beta57": 10.58,
113
+ "ddim_uniform": 10.76,
114
+ "exponential": 10.69,
115
+ "kl_optimal": 10.74,
116
+ "karras": 10.68,
117
+ "linear_quadratic": 10.45,
118
+ "normal": 10.6,
119
+ "sgm_uniform": 10.33,
120
+ "simple": 10.61
121
+ },
122
+ "dpmpp_2m": {
123
+ "beta": 11.04,
124
+ "beta57": 10.76,
125
+ "ddim_uniform": 10.57,
126
+ "exponential": 10.81,
127
+ "kl_optimal": 10.73,
128
+ "karras": 10.73,
129
+ "linear_quadratic": 10.86,
130
+ "normal": 10.35,
131
+ "sgm_uniform": 10.76,
132
+ "simple": 11.11
133
+ },
134
+ "dpmpp_2m_sde_gpu": {
135
+ "beta": 11.0,
136
+ "beta57": 10.74,
137
+ "ddim_uniform": 11.03,
138
+ "exponential": 10.92,
139
+ "kl_optimal": 10.96,
140
+ "karras": 10.91,
141
+ "linear_quadratic": 10.89,
142
+ "normal": 10.72,
143
+ "sgm_uniform": 10.78,
144
+ "simple": 11.06
145
+ },
146
+ "dpmpp_2s_ancestral": {
147
+ "beta": 18.07,
148
+ "beta57": 17.85,
149
+ "ddim_uniform": 17.83,
150
+ "exponential": 17.93,
151
+ "kl_optimal": 17.87,
152
+ "karras": 18.04,
153
+ "linear_quadratic": 17.97,
154
+ "normal": 17.54,
155
+ "sgm_uniform": 17.88,
156
+ "simple": 18.16
157
+ },
158
+ "dpmpp_3m_sde_gpu": {
159
+ "beta": 10.69,
160
+ "beta57": 10.72,
161
+ "ddim_uniform": 10.74,
162
+ "exponential": 10.93,
163
+ "kl_optimal": 10.57,
164
+ "karras": 10.96,
165
+ "linear_quadratic": 10.53,
166
+ "normal": 10.35,
167
+ "sgm_uniform": 10.86,
168
+ "simple": 11.16
169
+ },
170
+ "dpmpp_sde_gpu": {
171
+ "beta": 17.97,
172
+ "beta57": 17.88,
173
+ "ddim_uniform": 18.15,
174
+ "exponential": 17.95,
175
+ "kl_optimal": 17.91,
176
+ "karras": 17.82,
177
+ "linear_quadratic": 17.67,
178
+ "normal": 17.71,
179
+ "sgm_uniform": 17.91,
180
+ "simple": 18.27
181
+ },
182
+ "er_sde": {
183
+ "beta": 10.8,
184
+ "beta57": 10.61,
185
+ "ddim_uniform": 10.57,
186
+ "exponential": 10.87,
187
+ "kl_optimal": 10.81,
188
+ "karras": 10.91,
189
+ "linear_quadratic": 10.39,
190
+ "normal": 10.24,
191
+ "sgm_uniform": 10.83,
192
+ "simple": 11.17
193
+ },
194
+ "euler": {
195
+ "beta": 11.01,
196
+ "beta57": 10.82,
197
+ "ddim_uniform": 10.83,
198
+ "exponential": 10.87,
199
+ "kl_optimal": 10.85,
200
+ "karras": 10.67,
201
+ "linear_quadratic": 10.98,
202
+ "normal": 12.52,
203
+ "sgm_uniform": 10.81,
204
+ "simple": 11.1
205
+ },
206
+ "euler_ancestral": {
207
+ "beta": 11.04,
208
+ "beta57": 10.85,
209
+ "ddim_uniform": 10.85,
210
+ "exponential": 10.91,
211
+ "kl_optimal": 10.86,
212
+ "karras": 10.65,
213
+ "linear_quadratic": 10.95,
214
+ "normal": 10.94,
215
+ "sgm_uniform": 10.86,
216
+ "simple": 11.13
217
+ },
218
+ "gradient_estimation": {
219
+ "beta": 10.9,
220
+ "beta57": 10.77,
221
+ "ddim_uniform": 10.59,
222
+ "exponential": 10.77,
223
+ "kl_optimal": 10.79,
224
+ "karras": 10.85,
225
+ "linear_quadratic": 10.62,
226
+ "normal": 10.45,
227
+ "sgm_uniform": 10.62,
228
+ "simple": 10.96
229
+ },
230
+ "heun": {
231
+ "beta": 18.0,
232
+ "beta57": 17.87,
233
+ "ddim_uniform": 17.84,
234
+ "exponential": 17.85,
235
+ "kl_optimal": 17.81,
236
+ "karras": 17.42,
237
+ "linear_quadratic": 18.01,
238
+ "normal": 17.81,
239
+ "sgm_uniform": 17.89,
240
+ "simple": 18.2
241
+ },
242
+ "heunpp2": {
243
+ "beta": 23.33,
244
+ "beta57": 23.18,
245
+ "ddim_uniform": 23.19,
246
+ "exponential": 23.2,
247
+ "kl_optimal": 23.17,
248
+ "karras": 23.07,
249
+ "linear_quadratic": 23.26,
250
+ "normal": 23.23,
251
+ "sgm_uniform": 23.18,
252
+ "simple": 23.53
253
+ },
254
+ "ipndm": {
255
+ "beta": 10.69,
256
+ "beta57": 10.67,
257
+ "ddim_uniform": 10.56,
258
+ "exponential": 10.81,
259
+ "kl_optimal": 10.78,
260
+ "karras": 10.92,
261
+ "linear_quadratic": 10.44,
262
+ "normal": 10.44,
263
+ "sgm_uniform": 10.47,
264
+ "simple": 10.78
265
+ },
266
+ "ipndm_v": {
267
+ "beta": 10.6,
268
+ "beta57": 10.39,
269
+ "ddim_uniform": 10.66,
270
+ "exponential": 10.82,
271
+ "kl_optimal": 10.77,
272
+ "karras": 10.83,
273
+ "linear_quadratic": 10.46,
274
+ "normal": 10.34,
275
+ "sgm_uniform": 10.29,
276
+ "simple": 10.61
277
+ },
278
+ "lcm": {
279
+ "beta": 11.0,
280
+ "beta57": 11.23,
281
+ "ddim_uniform": 10.67,
282
+ "exponential": 10.84,
283
+ "kl_optimal": 10.86,
284
+ "karras": 10.91,
285
+ "linear_quadratic": 10.98,
286
+ "normal": 10.72,
287
+ "sgm_uniform": 10.78,
288
+ "simple": 11.11
289
+ },
290
+ "lms": {
291
+ "beta": 10.64,
292
+ "beta57": 10.36,
293
+ "ddim_uniform": 10.61,
294
+ "exponential": 10.84,
295
+ "kl_optimal": 10.83,
296
+ "karras": 10.85,
297
+ "linear_quadratic": 10.54,
298
+ "normal": 10.39,
299
+ "sgm_uniform": 10.37,
300
+ "simple": 10.65
301
+ },
302
+ "res_2m": {
303
+ "beta": 12.69,
304
+ "beta57": 12.58,
305
+ "ddim_uniform": 12.34,
306
+ "exponential": 12.54,
307
+ "kl_optimal": 12.4,
308
+ "karras": 12.61,
309
+ "linear_quadratic": 12.62,
310
+ "normal": 11.93,
311
+ "sgm_uniform": 12.74,
312
+ "simple": 12.71
313
+ },
314
+ "res_2s": {
315
+ "beta": 19.7,
316
+ "beta57": 19.73,
317
+ "ddim_uniform": 19.58,
318
+ "exponential": 19.61,
319
+ "kl_optimal": 19.65,
320
+ "karras": 19.68,
321
+ "linear_quadratic": 19.66,
322
+ "normal": 19.53,
323
+ "sgm_uniform": 19.98,
324
+ "simple": 19.96
325
+ },
326
+ "res_3s": {
327
+ "beta": 28.61,
328
+ "beta57": 28.45,
329
+ "ddim_uniform": 28.36,
330
+ "exponential": 28.4,
331
+ "kl_optimal": 28.38,
332
+ "karras": 28.52,
333
+ "linear_quadratic": 28.55,
334
+ "normal": 28.5,
335
+ "sgm_uniform": 28.87,
336
+ "simple": 28.88
337
+ },
338
+ "res_5s": {
339
+ "beta": 42.72,
340
+ "beta57": 42.56,
341
+ "ddim_uniform": 42.61,
342
+ "exponential": 42.51,
343
+ "kl_optimal": 42.5,
344
+ "karras": 42.7,
345
+ "linear_quadratic": 42.61,
346
+ "normal": 42.69,
347
+ "sgm_uniform": 43.0,
348
+ "simple": 42.95
349
+ },
350
+ "res_6s": {
351
+ "beta": 49.79,
352
+ "beta57": 49.6,
353
+ "ddim_uniform": 49.66,
354
+ "exponential": 49.51,
355
+ "kl_optimal": 49.5,
356
+ "karras": 49.76,
357
+ "linear_quadratic": 49.91,
358
+ "normal": 49.8,
359
+ "sgm_uniform": 49.38,
360
+ "simple": 50.01
361
+ },
362
+ "res_multistep": {
363
+ "beta": 10.96,
364
+ "beta57": 10.75,
365
+ "ddim_uniform": 10.48,
366
+ "exponential": 10.83,
367
+ "kl_optimal": 10.64,
368
+ "karras": 10.79,
369
+ "linear_quadratic": 10.85,
370
+ "normal": 10.31,
371
+ "sgm_uniform": 10.79,
372
+ "simple": 11.06
373
+ },
374
+ "res_multistep_ancestral": {
375
+ "beta": 10.93,
376
+ "beta57": 10.61,
377
+ "ddim_uniform": 10.75,
378
+ "exponential": 10.75,
379
+ "kl_optimal": 10.76,
380
+ "karras": 10.74,
381
+ "linear_quadratic": 10.9,
382
+ "normal": 10.66,
383
+ "sgm_uniform": 10.77,
384
+ "simple": 11.07
385
+ },
386
+ "rk": {
387
+ "beta": 12.71,
388
+ "beta57": 12.4,
389
+ "ddim_uniform": 12.33,
390
+ "exponential": 12.54,
391
+ "kl_optimal": 12.38,
392
+ "karras": 12.57,
393
+ "linear_quadratic": 12.39,
394
+ "normal": 12.21,
395
+ "sgm_uniform": 12.36,
396
+ "simple": 12.69
397
+ },
398
+ "seeds_2": {
399
+ "beta": 18.01,
400
+ "beta57": 17.82,
401
+ "ddim_uniform": 18.08,
402
+ "exponential": 17.86,
403
+ "kl_optimal": 17.86,
404
+ "karras": 17.9,
405
+ "linear_quadratic": 17.75,
406
+ "normal": 20.26,
407
+ "sgm_uniform": 17.86,
408
+ "simple": 18.25
409
+ },
410
+ "seeds_3": {
411
+ "beta": 25.09,
412
+ "beta57": 24.79,
413
+ "ddim_uniform": 25.1,
414
+ "exponential": 24.91,
415
+ "kl_optimal": 24.95,
416
+ "karras": 24.95,
417
+ "linear_quadratic": 24.52,
418
+ "normal": 25.3,
419
+ "sgm_uniform": 24.88,
420
+ "simple": 25.3
421
+ },
422
+ "uni_pc": {
423
+ "beta": 10.93,
424
+ "beta57": 10.68,
425
+ "ddim_uniform": 12.78,
426
+ "exponential": 10.76,
427
+ "kl_optimal": 10.78,
428
+ "karras": 10.83,
429
+ "linear_quadratic": 10.73,
430
+ "normal": 10.84,
431
+ "sgm_uniform": 10.74,
432
+ "simple": 11.09
433
+ },
434
+ "uni_pc_bh2": {
435
+ "beta": 10.88,
436
+ "beta57": 10.72,
437
+ "ddim_uniform": 12.75,
438
+ "exponential": 10.78,
439
+ "kl_optimal": 10.8,
440
+ "karras": 10.68,
441
+ "linear_quadratic": 10.81,
442
+ "normal": 10.85,
443
+ "sgm_uniform": 10.76,
444
+ "simple": 11.17
445
+ }
446
+ }