da03 commited on
Commit
facfd46
·
1 Parent(s): 4c59739
Files changed (2) hide show
  1. main.py +19 -1
  2. static/index.html +25 -0
main.py CHANGED
@@ -29,7 +29,6 @@ NUM_MAX_FRAMES = 1
29
  SCREEN_WIDTH = 512
30
  SCREEN_HEIGHT = 384
31
  NUM_SAMPLING_STEPS = 32
32
- USE_RNN = True
33
  USE_RNN = False
34
 
35
  MODEL_NAME = "yuntian-deng/computer-model-ss005-cont-lr2e5-384k"
@@ -313,6 +312,19 @@ async def websocket_endpoint(websocket: WebSocket):
313
  # Send confirmation to client
314
  await websocket.send_json({"type": "steps_updated", "steps": steps})
315
 
 
 
 
 
 
 
 
 
 
 
 
 
 
316
  async def process_input(data):
317
  nonlocal previous_frame, hidden_states, keys_down, frame_num, frame_count, is_processing
318
 
@@ -475,6 +487,12 @@ async def websocket_endpoint(websocket: WebSocket):
475
  await update_sampling_steps(data.get("steps", 32))
476
  continue
477
 
 
 
 
 
 
 
478
  # Add the input to our queue
479
  await input_queue.put(data)
480
  print(f"[{receive_time:.3f}] Received input. Queue size now: {input_queue.qsize()}")
 
29
  SCREEN_WIDTH = 512
30
  SCREEN_HEIGHT = 384
31
  NUM_SAMPLING_STEPS = 32
 
32
  USE_RNN = False
33
 
34
  MODEL_NAME = "yuntian-deng/computer-model-ss005-cont-lr2e5-384k"
 
312
  # Send confirmation to client
313
  await websocket.send_json({"type": "steps_updated", "steps": steps})
314
 
315
+ # Add a function to update USE_RNN setting
316
+ async def update_use_rnn(use_rnn):
317
+ global USE_RNN
318
+
319
+ # Update the global variable
320
+ old_setting = USE_RNN
321
+ USE_RNN = use_rnn
322
+
323
+ print(f"[{time.perf_counter():.3f}] Updated USE_RNN from {old_setting} to {use_rnn}")
324
+
325
+ # Send confirmation to client
326
+ await websocket.send_json({"type": "rnn_updated", "use_rnn": use_rnn})
327
+
328
  async def process_input(data):
329
  nonlocal previous_frame, hidden_states, keys_down, frame_num, frame_count, is_processing
330
 
 
487
  await update_sampling_steps(data.get("steps", 32))
488
  continue
489
 
490
+ # Handle USE_RNN update
491
+ if data.get("type") == "update_use_rnn":
492
+ print(f"[{receive_time:.3f}] Received request to update USE_RNN")
493
+ await update_use_rnn(data.get("use_rnn", False))
494
+ continue
495
+
496
  # Add the input to our queue
497
  await input_queue.put(data)
498
  print(f"[{receive_time:.3f}] Received input. Queue size now: {input_queue.qsize()}")
static/index.html CHANGED
@@ -104,6 +104,11 @@
104
  <input type="number" id="samplingSteps" class="form-control" min="1" max="100" value="32">
105
  <button id="updateStepsButton" class="btn btn-secondary control-button">Update</button>
106
  </div>
 
 
 
 
 
107
  </div>
108
  </div>
109
 
@@ -118,6 +123,7 @@
118
  <li>Right-click to perform context menu actions</li>
119
  <li>Use your keyboard to type within the simulated environment</li>
120
  <li>Adjust sampling steps to control quality/speed tradeoff</li>
 
121
  </ul>
122
  </div>
123
  </div>
@@ -188,6 +194,10 @@
188
  console.log("Simulation reset confirmed by server");
189
  // Clear the canvas and reset to initial state
190
  drawInitialCanvas();
 
 
 
 
191
  }
192
  };
193
  }
@@ -375,6 +385,21 @@
375
  console.error("WebSocket not connected, cannot update steps");
376
  }
377
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
378
  </script>
379
 
380
  <!-- Bootstrap JS (optional) -->
 
104
  <input type="number" id="samplingSteps" class="form-control" min="1" max="100" value="32">
105
  <button id="updateStepsButton" class="btn btn-secondary control-button">Update</button>
106
  </div>
107
+
108
+ <div class="form-check form-switch">
109
+ <input class="form-check-input" type="checkbox" role="switch" id="useRnnToggle">
110
+ <label class="form-check-label" for="useRnnToggle">Use RNN</label>
111
+ </div>
112
  </div>
113
  </div>
114
 
 
123
  <li>Right-click to perform context menu actions</li>
124
  <li>Use your keyboard to type within the simulated environment</li>
125
  <li>Adjust sampling steps to control quality/speed tradeoff</li>
126
+ <li>Toggle "Use RNN" to switch between RNN and diffusion mode</li>
127
  </ul>
128
  </div>
129
  </div>
 
194
  console.log("Simulation reset confirmed by server");
195
  // Clear the canvas and reset to initial state
196
  drawInitialCanvas();
197
+ } else if (data.type === "rnn_updated") {
198
+ console.log(`USE_RNN setting updated to: ${data.use_rnn}`);
199
+ // Update the toggle to match the server state
200
+ document.getElementById('useRnnToggle').checked = data.use_rnn;
201
  }
202
  };
203
  }
 
385
  console.error("WebSocket not connected, cannot update steps");
386
  }
387
  });
388
+
389
+ // Add event listener for the USE_RNN toggle
390
+ document.getElementById('useRnnToggle').addEventListener('change', function() {
391
+ const useRnn = this.checked;
392
+
393
+ if (socket && socket.readyState === WebSocket.OPEN) {
394
+ console.log(`Sending update to set USE_RNN to ${useRnn}`);
395
+ socket.send(JSON.stringify({
396
+ type: "update_use_rnn",
397
+ use_rnn: useRnn
398
+ }));
399
+ } else {
400
+ console.error("WebSocket not connected, cannot update USE_RNN");
401
+ }
402
+ });
403
  </script>
404
 
405
  <!-- Bootstrap JS (optional) -->