thethomasboyer commited on
Commit
74cff0b
·
verified ·
1 Parent(s): 667d516

Add files using upload-large-folder tool

Browse files
Files changed (50) hide show
  1. NASH_steato/README.md +29 -0
  2. NASH_steato/source.txt +3 -0
  3. NASH_steato/training_state_info.json +1 -0
  4. README.md +57 -0
  5. biotine/README.md +29 -0
  6. biotine/source.txt +3 -0
  7. biotine/training_state_info.json +1 -0
  8. biotine_unpaired/README.md +29 -0
  9. biotine_unpaired/source.txt +3 -0
  10. biotine_unpaired/training_state_info.json +1 -0
  11. cell_cycle/README.md +29 -0
  12. cell_cycle/source.txt +3 -0
  13. cell_cycle/training_state_info.json +1 -0
  14. chromalive/README.md +29 -0
  15. chromalive/my_conf/dataset/ChromaLive6h/ChromaLive6h_3ch_png_hard_aug.yaml +16 -0
  16. chromalive/my_conf/dataset/ChromaLiveTL24h/ChromaLiveTL24h.yaml +19 -0
  17. chromalive/my_conf/dataset/biotine/biotine_png_256.yaml +18 -0
  18. chromalive/source.txt +3 -0
  19. chromalive/training_state_info.json +1 -0
  20. diabetic_retinopathy/README.md +29 -0
  21. diabetic_retinopathy/dynamic/scheduler_config.json +19 -0
  22. diabetic_retinopathy/my_conf/dataset/BBBC021/BBBC021_196_docetaxel.yaml +16 -0
  23. diabetic_retinopathy/my_conf/dataset/BBBC021/BBBC021_196_docetaxel_inference.py +9 -0
  24. diabetic_retinopathy/my_conf/dataset/BBBC021/BBBC021_196_nocodazole_inference.py +26 -0
  25. diabetic_retinopathy/my_conf/dataset/ChromaLive6h/ChromaLive6h_3ch_png.yaml +19 -0
  26. diabetic_retinopathy/my_conf/my_dataset_ordering_conf.py +64 -0
  27. diabetic_retinopathy/my_conf/my_inference_conf.py +94 -0
  28. diabetic_retinopathy/my_conf/my_training_conf.py +199 -0
  29. diabetic_retinopathy/my_conf/net/net_196_3_11M.py +22 -0
  30. diabetic_retinopathy/my_conf/net/net_256_3_20M.py +22 -0
  31. diabetic_retinopathy/my_conf/net/net_256_3_8M.py +22 -0
  32. diabetic_retinopathy/my_conf/net/net_66_1.py +23 -0
  33. diabetic_retinopathy/my_conf/net/net_66_3_2M.py +23 -0
  34. diabetic_retinopathy/my_conf/net/net_diabetic_retinopathy.py +22 -0
  35. diabetic_retinopathy/my_conf/scheduler/DDIM_3k_vpred_tresh_leading.json +19 -0
  36. diabetic_retinopathy/source.txt +3 -0
  37. diabetic_retinopathy/training_state_info.json +1 -0
  38. diabetic_retinopathy/video_time_encoder/config.json +8 -0
  39. docetaxel/README.md +29 -0
  40. docetaxel/source.txt +3 -0
  41. docetaxel/training_state_info.json +1 -0
  42. docetaxel_skip_half_doses/README.md +29 -0
  43. docetaxel_skip_half_doses/source.txt +3 -0
  44. docetaxel_skip_half_doses/training_state_info.json +1 -0
  45. ependymal/README.md +29 -0
  46. ependymal/source.txt +3 -0
  47. ependymal/training_state_info.json +1 -0
  48. nocodazole/README.md +29 -0
  49. nocodazole/source.txt +3 -0
  50. nocodazole/training_state_info.json +1 -0
NASH_steato/README.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # NASH_steato
2
+
3
+ Static2Dynamic pretrained checkpoint.
4
+
5
+ ## Files
6
+
7
+ - `net/config.json`
8
+ - `net/diffusion_pytorch_model.safetensors`
9
+ - `video_time_encoder/config.json`
10
+ - `video_time_encoder/diffusion_pytorch_model.safetensors`
11
+ - `dynamic/scheduler_config.json`
12
+ - `training_state_info.json`, when available
13
+ - `my_conf/`, when available
14
+
15
+ ## Provenance
16
+
17
+ - Local run folder: `NASH_steato_JZ_download`
18
+ - Local checkpoint subfolder: `saved_model`
19
+
20
+ ## Download
21
+
22
+ ```python
23
+ from huggingface_hub import snapshot_download
24
+
25
+ path = snapshot_download(
26
+ repo_id="thethomasboyer/Static2Dynamic",
27
+ allow_patterns=["NASH_steato/*"],
28
+ )
29
+ ```
NASH_steato/source.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ local_run: NASH_steato_JZ_download
2
+ checkpoint_subdir: saved_model
3
+ hf_checkpoint_name: NASH_steato
NASH_steato/training_state_info.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"start_global_optimization_step": 125000, "best_metric_to_date": 20.38945737155447}
README.md ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: agpl-3.0
3
+ library_name: pytorch
4
+ tags:
5
+ - static2dynamic
6
+ - diffusion
7
+ - generative-modeling
8
+ - biology
9
+ - microscopy
10
+ - image-to-video
11
+ - trajectory-inference
12
+ pipeline_tag: image-to-video
13
+ ---
14
+
15
+ # Static2Dynamic
16
+
17
+ Pretrained checkpoints for **Static2Dynamic**, a method for reconstructing videos of unobservable cellular, developmental, and disease processes from static, unpaired snapshots.
18
+
19
+ Code repository: `https://github.com/biocompibens/static2dynamic`
20
+
21
+ Paper/preprint: `https://www.biorxiv.org/content/10.64898/2026.05.18.725860v1`
22
+
23
+ ## Checkpoints
24
+
25
+ Each checkpoint subfolder contains:
26
+
27
+ - `net/`: diffusion generative model config and weights
28
+ - `video_time_encoder/`: time conditioning encoder config and weights
29
+ - `dynamic/`: scheduler configuration
30
+ - `my_conf/`: run configuration needed to instantiate/evaluate the model
31
+ - `training_state_info.json`: checkpoint/training metadata, when available
32
+ - `source.txt`: local provenance marker for this release
33
+
34
+ | Checkpoint | Local source run | Local checkpoint |
35
+ |---|---|---|
36
+ | `chromalive` | `chromalive_high_doses` | `best_model` |
37
+ | `docetaxel_skip_half_doses` | `bbbc021_docetaxel_skip_half_doses` | `best_model` |
38
+ | `docetaxel` | `bbbc021_JZ_download` | `saved_model` |
39
+ | `nocodazole` | `bbbc021_nocodazole_no_xattn_no_reweight` | `best_model` |
40
+ | `cell_cycle` | `bbbc048` | `best_model` |
41
+ | `biotine` | `biotine_png_JZ_download` | `saved_model` |
42
+ | `biotine_unpaired` | `biotine_unpaired` | `best_model` |
43
+ | `ependymal` | `ependymal_cutout_noised0.1_fc_augs` | `last_model` |
44
+ | `NASH_steato` | `NASH_steato_JZ_download` | `saved_model` |
45
+ | `diabetic_retinopathy` | `retino_fc_precrop_2048_noreweight_6M` | `best_model` |
46
+
47
+ ## Python download example
48
+
49
+ Download one checkpoint folder:
50
+
51
+ ```python
52
+ from huggingface_hub import snapshot_download
53
+
54
+ path = snapshot_download(
55
+ repo_id="thethomasboyer/Static2Dynamic",
56
+ allow_patterns=["chromalive/*"],
57
+ )
biotine/README.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # biotine
2
+
3
+ Static2Dynamic pretrained checkpoint.
4
+
5
+ ## Files
6
+
7
+ - `net/config.json`
8
+ - `net/diffusion_pytorch_model.safetensors`
9
+ - `video_time_encoder/config.json`
10
+ - `video_time_encoder/diffusion_pytorch_model.safetensors`
11
+ - `dynamic/scheduler_config.json`
12
+ - `training_state_info.json`, when available
13
+ - `my_conf/`, when available
14
+
15
+ ## Provenance
16
+
17
+ - Local run folder: `biotine_png_JZ_download`
18
+ - Local checkpoint subfolder: `saved_model`
19
+
20
+ ## Download
21
+
22
+ ```python
23
+ from huggingface_hub import snapshot_download
24
+
25
+ path = snapshot_download(
26
+ repo_id="thethomasboyer/Static2Dynamic",
27
+ allow_patterns=["biotine/*"],
28
+ )
29
+ ```
biotine/source.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ local_run: biotine_png_JZ_download
2
+ checkpoint_subdir: saved_model
3
+ hf_checkpoint_name: biotine
biotine/training_state_info.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"start_global_optimization_step": 100000, "best_metric_to_date": 23.474280357337324}
biotine_unpaired/README.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # biotine_unpaired
2
+
3
+ Static2Dynamic pretrained checkpoint.
4
+
5
+ ## Files
6
+
7
+ - `net/config.json`
8
+ - `net/diffusion_pytorch_model.safetensors`
9
+ - `video_time_encoder/config.json`
10
+ - `video_time_encoder/diffusion_pytorch_model.safetensors`
11
+ - `dynamic/scheduler_config.json`
12
+ - `training_state_info.json`, when available
13
+ - `my_conf/`, when available
14
+
15
+ ## Provenance
16
+
17
+ - Local run folder: `biotine_unpaired`
18
+ - Local checkpoint subfolder: `best_model`
19
+
20
+ ## Download
21
+
22
+ ```python
23
+ from huggingface_hub import snapshot_download
24
+
25
+ path = snapshot_download(
26
+ repo_id="thethomasboyer/Static2Dynamic",
27
+ allow_patterns=["biotine_unpaired/*"],
28
+ )
29
+ ```
biotine_unpaired/source.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ local_run: biotine_unpaired
2
+ checkpoint_subdir: best_model
3
+ hf_checkpoint_name: biotine_unpaired
biotine_unpaired/training_state_info.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"start_global_optimization_step": 50000, "best_metric_to_date": 31.223219652098997}
cell_cycle/README.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # cell_cycle
2
+
3
+ Static2Dynamic pretrained checkpoint.
4
+
5
+ ## Files
6
+
7
+ - `net/config.json`
8
+ - `net/diffusion_pytorch_model.safetensors`
9
+ - `video_time_encoder/config.json`
10
+ - `video_time_encoder/diffusion_pytorch_model.safetensors`
11
+ - `dynamic/scheduler_config.json`
12
+ - `training_state_info.json`, when available
13
+ - `my_conf/`, when available
14
+
15
+ ## Provenance
16
+
17
+ - Local run folder: `bbbc048`
18
+ - Local checkpoint subfolder: `best_model`
19
+
20
+ ## Download
21
+
22
+ ```python
23
+ from huggingface_hub import snapshot_download
24
+
25
+ path = snapshot_download(
26
+ repo_id="thethomasboyer/Static2Dynamic",
27
+ allow_patterns=["cell_cycle/*"],
28
+ )
29
+ ```
cell_cycle/source.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ local_run: bbbc048
2
+ checkpoint_subdir: best_model
3
+ hf_checkpoint_name: cell_cycle
cell_cycle/training_state_info.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"start_global_optimization_step": 40000, "best_metric_to_date": 13.254866885791186}
chromalive/README.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # chromalive
2
+
3
+ Static2Dynamic pretrained checkpoint.
4
+
5
+ ## Files
6
+
7
+ - `net/config.json`
8
+ - `net/diffusion_pytorch_model.safetensors`
9
+ - `video_time_encoder/config.json`
10
+ - `video_time_encoder/diffusion_pytorch_model.safetensors`
11
+ - `dynamic/scheduler_config.json`
12
+ - `training_state_info.json`, when available
13
+ - `my_conf/`, when available
14
+
15
+ ## Provenance
16
+
17
+ - Local run folder: `chromalive_high_doses`
18
+ - Local checkpoint subfolder: `best_model`
19
+
20
+ ## Download
21
+
22
+ ```python
23
+ from huggingface_hub import snapshot_download
24
+
25
+ path = snapshot_download(
26
+ repo_id="thethomasboyer/Static2Dynamic",
27
+ allow_patterns=["chromalive/*"],
28
+ )
29
+ ```
chromalive/my_conf/dataset/ChromaLive6h/ChromaLive6h_3ch_png_hard_aug.yaml ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: chromaLive6h_3ch_png_patches_380px_hard_aug
2
+ path: /projects/static2dynamic/datasets/20231017ChromaLive_6hr_4ch/MIP_normalized/paired_dataset/patches_hard_augmented
3
+ data_shape: [ 3, 128, 128 ]
4
+ transforms:
5
+ _target_: torchvision.transforms.transforms.Compose
6
+ transforms:
7
+ - _target_: torchvision.transforms.transforms.Resize
8
+ size: 128
9
+ - _target_: torchvision.transforms.ConvertImageDtype # this also scales to [0; 1]
10
+ dtype: ${torch_dtype:float32} # passed dtype must be accessible as a "torch" attribute
11
+ - _target_: torchvision.transforms.Normalize
12
+ mean: [ 0.5, 0.5, 0.5 ] # move to [-1:1]
13
+ std: [ 0.5, 0.5, 0.5 ]
14
+ expected_initial_data_range: [ 0, 255 ]
15
+ expected_dtype: torch.uint8
16
+ selected_dists:
chromalive/my_conf/dataset/ChromaLiveTL24h/ChromaLiveTL24h.yaml ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: chromalive_tl_24h_380px
2
+ path: /projects/static2dynamic/datasets/20230920ChromaLiveTL_24hr4ch/ch_4_3_1___norm_whole_ds_per_channel_per_zslice_0_99perc___patches_380
3
+ data_shape: [3, 256, 256]
4
+ transforms:
5
+ _target_: torchvision.transforms.transforms.Compose
6
+ transforms:
7
+ - _target_: torchvision.transforms.transforms.Resize
8
+ size: 256
9
+ - _target_: torchvision.transforms.ConvertImageDtype # this also scales to [0; 1]
10
+ dtype: ${torch_dtype:float32} # passed dtype must be accessible as a "torch" attribute
11
+ - _target_: torchvision.transforms.Normalize
12
+ mean: [0.5, 0.5, 0.5] # move to [-1:1]
13
+ std: [0.5, 0.5, 0.5]
14
+ - _target_: torchvision.transforms.RandomHorizontalFlip
15
+ - _target_: torchvision.transforms.RandomVerticalFlip
16
+ - _target_: GaussianProxy.utils.data.RandomRotationSquareSymmetry
17
+ expected_initial_data_range: [0, 255]
18
+ expected_dtype: torch.uint8
19
+ selected_dists: ['time_1', 'time_7', 'time_13', 'time_19', 'time_25', 'time_31', 'time_37', 'time_43', 'time_49', 'time_55', 'time_61', 'time_67', 'time_73', 'time_79', 'time_85', 'time_91', 'time_97', 'time_103', 'time_109', 'time_115', 'time_121', 'time_127', 'time_133', 'time_139', 'time_145']
chromalive/my_conf/dataset/biotine/biotine_png_256.yaml ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: biotine_png
2
+ path: /projects/static2dynamic/datasets/biotine/3_channels_min_99_perc_normalized_rgb_stacks_png/patches_255
3
+ data_shape: [ 3, 256, 256 ]
4
+ transforms:
5
+ _target_: torchvision.transforms.transforms.Compose
6
+ transforms:
7
+ - _target_: torchvision.transforms.ConvertImageDtype # this also scales to [0; 1]
8
+ dtype: ${torch_dtype:float32}
9
+ - _target_: torchvision.transforms.Normalize
10
+ mean: [ 0.5, 0.5, 0.5 ]
11
+ std: [ 0.5, 0.5, 0.5 ]
12
+ - _target_: torchvision.transforms.transforms.Resize
13
+ size: 256
14
+ - _target_: torchvision.transforms.RandomHorizontalFlip
15
+ - _target_: torchvision.transforms.RandomVerticalFlip
16
+ - _target_: GaussianProxy.utils.data.RandomRotationSquareSymmetry
17
+ selected_dists: [ 1, 5, 10, 15, 19 ]
18
+ expected_initial_data_range: [ 0, 255 ]
chromalive/source.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ local_run: chromalive_high_doses
2
+ checkpoint_subdir: best_model
3
+ hf_checkpoint_name: chromalive
chromalive/training_state_info.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"start_global_optimization_step": 60000, "best_metric_to_date": 11.891848635874876}
diabetic_retinopathy/README.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # diabetic_retinopathy
2
+
3
+ Static2Dynamic pretrained checkpoint.
4
+
5
+ ## Files
6
+
7
+ - `net/config.json`
8
+ - `net/diffusion_pytorch_model.safetensors`
9
+ - `video_time_encoder/config.json`
10
+ - `video_time_encoder/diffusion_pytorch_model.safetensors`
11
+ - `dynamic/scheduler_config.json`
12
+ - `training_state_info.json`, when available
13
+ - `my_conf/`, when available
14
+
15
+ ## Provenance
16
+
17
+ - Local run folder: `retino_fc_precrop_2048_noreweight_6M`
18
+ - Local checkpoint subfolder: `best_model`
19
+
20
+ ## Download
21
+
22
+ ```python
23
+ from huggingface_hub import snapshot_download
24
+
25
+ path = snapshot_download(
26
+ repo_id="thethomasboyer/Static2Dynamic",
27
+ allow_patterns=["diabetic_retinopathy/*"],
28
+ )
29
+ ```
diabetic_retinopathy/dynamic/scheduler_config.json ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "DDIMScheduler",
3
+ "_diffusers_version": "0.35.2",
4
+ "beta_end": 0.02,
5
+ "beta_schedule": "linear",
6
+ "beta_start": 0.0001,
7
+ "clip_sample": false,
8
+ "clip_sample_range": 1.0,
9
+ "dynamic_thresholding_ratio": 0.995,
10
+ "num_train_timesteps": 3000,
11
+ "prediction_type": "v_prediction",
12
+ "rescale_betas_zero_snr": false,
13
+ "sample_max_value": 1.0,
14
+ "set_alpha_to_one": true,
15
+ "steps_offset": 0,
16
+ "thresholding": true,
17
+ "timestep_spacing": "leading",
18
+ "trained_betas": null
19
+ }
diabetic_retinopathy/my_conf/dataset/BBBC021/BBBC021_196_docetaxel.yaml ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: BBBC021_196_docetaxel
2
+ path: /projects/static2dynamic/datasets/BBBC021/196x196/docetaxel
3
+ data_shape: [3, 196, 196]
4
+ transforms:
5
+ _target_: torchvision.transforms.transforms.Compose
6
+ transforms:
7
+ - _target_: torchvision.transforms.ConvertImageDtype # this also scales to [0; 1]
8
+ dtype: ${torch_dtype:float32} # passed dtype must be accessible as a "torch" attribute
9
+ - _target_: torchvision.transforms.Normalize
10
+ mean: [0.5, 0.5, 0.5]
11
+ std: [0.5, 0.5, 0.5]
12
+ - _target_: torchvision.transforms.RandomHorizontalFlip
13
+ - _target_: torchvision.transforms.RandomVerticalFlip
14
+ - _target_: GaussianProxy.utils.data.RandomRotationSquareSymmetry
15
+ expected_initial_data_range: [0, 255]
16
+ expected_dtype: torch.uint8
diabetic_retinopathy/my_conf/dataset/BBBC021/BBBC021_196_docetaxel_inference.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ from dataclasses import replace
2
+
3
+ from GaussianProxy.conf.dataset.BBBC021.BBBC021_196_inference import dataset
4
+
5
+ dataset = replace(
6
+ dataset,
7
+ name=dataset.name + "_docetaxel",
8
+ path="/projects/static2dynamic/datasets/BBBC021/196x196/docetaxel",
9
+ )
diabetic_retinopathy/my_conf/dataset/BBBC021/BBBC021_196_nocodazole_inference.py ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from dataclasses import replace
2
+
3
+ from GaussianProxy.conf.dataset.BBBC021.BBBC021_196_inference import dataset
4
+
5
+ # Nocodazole classes + DMSO
6
+ CLASSES_IN_ORDER = (
7
+ "DMSO",
8
+ "nocodazole_0.001",
9
+ "nocodazole_0.003",
10
+ "nocodazole_0.01",
11
+ "nocodazole_0.03",
12
+ "nocodazole_0.1",
13
+ "nocodazole_0.3",
14
+ "nocodazole_1.0",
15
+ "nocodazole_3.0",
16
+ )
17
+ assert dataset.dataset_params is not None
18
+ ds_params = replace(dataset.dataset_params, sorting_func=lambda subdir: CLASSES_IN_ORDER.index(subdir.name))
19
+
20
+ # Path and name
21
+ dataset = replace(
22
+ dataset,
23
+ dataset_params=ds_params,
24
+ path="/projects/static2dynamic/datasets/BBBC021/196x196/nocodazole",
25
+ name=dataset.name + "_nocodazole",
26
+ )
diabetic_retinopathy/my_conf/dataset/ChromaLive6h/ChromaLive6h_3ch_png.yaml ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: chromaLive6h_3ch_png_patches_380px
2
+ path: /projects/static2dynamic/datasets/20231017ChromaLive_6hr_4ch/MIP_normalized/paired_dataset/patches
3
+ data_shape: [ 3, 128, 128 ]
4
+ transforms:
5
+ _target_: torchvision.transforms.transforms.Compose
6
+ transforms:
7
+ - _target_: torchvision.transforms.transforms.Resize
8
+ size: 128
9
+ - _target_: torchvision.transforms.ConvertImageDtype # this also scales to [0; 1]
10
+ dtype: ${torch_dtype:float32} # passed dtype must be accessible as a "torch" attribute
11
+ - _target_: torchvision.transforms.Normalize
12
+ mean: [ 0.5, 0.5, 0.5 ] # move to [-1:1]
13
+ std: [ 0.5, 0.5, 0.5 ]
14
+ - _target_: torchvision.transforms.RandomHorizontalFlip
15
+ - _target_: torchvision.transforms.RandomVerticalFlip
16
+ - _target_: GaussianProxy.utils.data.RandomRotationSquareSymmetry
17
+ expected_initial_data_range: [ 0, 255 ]
18
+ expected_dtype: torch.uint8
19
+ selected_dists:
diabetic_retinopathy/my_conf/my_dataset_ordering_conf.py ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import random
2
+ from pathlib import Path
3
+
4
+ from scripts.dataset_ordering import Params
5
+
6
+ ###################################################################################################################
7
+ #################################################### Datasets #####################################################
8
+ ###################################################################################################################
9
+ # Attention: we *might or might not* use our datasets' pipeline as DINO has its own preprocessing pipeline.
10
+ # isort: off
11
+ from my_conf.dataset.diabetic_retinopathy.diabetic_retinopathy_full_circle_augs_2048_precrop_inference import dataset
12
+
13
+ # remove more and more trajs from train set
14
+ # # Biotine
15
+ # NB_FULL_TRAJS_TO_REMOVE = (12, 24, 48, 72, 96) (10% 20% 40% 60% 80%)
16
+ # all_trajectories = [ # 120 big videos in total
17
+ # f"{row}_{col}_fld_{field}"
18
+ # for row in ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O")
19
+ # for col in (13, 14)
20
+ # for field in (1, 2, 3, 4)
21
+ # ]
22
+ # ChromaLive
23
+ # all_trajectories = [ # 120 big videos in total
24
+ # f"{well}-{dose}_F{field}"
25
+ # for well in ("C", "D", "E")
26
+ # for dose in ("02", "03", "04", "05", "06", "07", "08", "09", "10", "11")
27
+ # for field in ("0001", "0002", "0003", "0004")
28
+ # ]
29
+ # sel_common_trajs = r"|".join(random.sample(all_trajectories, 6))
30
+ # times_to_remove = (
31
+ # # (),
32
+ # # (2, 4, 6, 8, 10, 12),
33
+ # # (2, 3, 5, 6, 8, 9, 11, 12),
34
+ # # (2, 3, 4, 6, 7, 8, 10, 11, 12),
35
+ # (2, 3, 4, 5, 7, 8, 9, 10, 12, 13),
36
+ # )
37
+ # test_regex_list = [
38
+ # sel_common_trajs + "".join(f"|time_{t}" for t in times_to_remove[i]) for i in range(len(times_to_remove))
39
+ # ]
40
+
41
+ base_save_dir = Path("/projects/static2dynamic/Thomas/ordering_datasets")
42
+ # fmt: off
43
+ params = Params(
44
+ base_save_dir = base_save_dir,
45
+ # experiment_names = [],
46
+ datasets = [dataset],
47
+ device = "cuda:3",
48
+ model_name = "facebook/dinov2-with-registers-giant",
49
+ batch_size = 512,
50
+ use_model_preprocessor = False,
51
+ recompute_encodings = "no-overwrite",
52
+ save_policy = "ask-before-overwrite",
53
+ seed = random.randint(0, 2**32 - 1),
54
+ spline_continuation_range = (0.5, 0.45),
55
+ nb_times_spline_eval = 50_000,
56
+ test_split_frac = 0.1,
57
+ test_regexes = None,
58
+ spline_bc_type = "natural",
59
+ concatenate_train_test = True,
60
+ times_spacing_method = "evenly_spaced",
61
+ refit_models = False,
62
+ # precomputed_encodings_path = base_save_dir / "facebook_dinov2-with-registers-giant_dataset_preproc" / "diabetic_retinopathy" / "facebook_dinov2-with-registers-giant_dataset_preproc_encodings.parquet",
63
+ )
64
+ # fmt: on
diabetic_retinopathy/my_conf/my_inference_conf.py ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ruff: noqa: F401
2
+
3
+ from pathlib import Path
4
+
5
+ from diffusers.schedulers.scheduling_dpmsolver_sde import DPMSolverSDEScheduler
6
+ from torch import bfloat16, float16, float32
7
+
8
+ from GaussianProxy.conf.inference_conf import InferenceConfig, ProfileConfig
9
+ from GaussianProxy.conf.training_conf import (
10
+ EvaluationStrategy,
11
+ ForwardNoising,
12
+ ForwardNoisingLinearScaling,
13
+ InversionRegenerationOnly,
14
+ InvertedRegeneration,
15
+ IterativeInvertedRegeneration,
16
+ MetricsComputation,
17
+ SimilarityWithTrainData,
18
+ SimpleGeneration,
19
+ VideoGenerationFromNoise,
20
+ )
21
+
22
+ # -------------------------------------------- Dataset --------------------------------------------
23
+ from my_conf.dataset.ChromaLive6h.chromalive6h_3ch_png_fully_ordered_inference import dataset
24
+
25
+ # --------------------------------------------- Model ---------------------------------------------
26
+ root_experiments_path = Path("/", "projects", "static2dynamic", "Thomas", "experiments")
27
+ project_name = "GaussianProxy_v3"
28
+ # folder_name = dataset.name.removesuffix("_fully_ordered").removesuffix("_separate_gt") + "_JZ_download"
29
+ folder_name = "chromalive_JZ_download"
30
+ run_path = root_experiments_path / project_name / folder_name
31
+ assert run_path.exists(), f"'{run_path}' does not exist"
32
+
33
+ # ------------------------------------------- Scheduler -------------------------------------------
34
+ scheduler_type = None # defaults to DDIM
35
+
36
+ # ------------------------------------------ Evaluations ------------------------------------------
37
+ selected_times = Path(
38
+ "/projects/static2dynamic/Thomas/ordering_datasets/facebook_dinov2-with-registers-giant_dataset_preproc/chromaLive6h_3ch_png_patches_380px",
39
+ "times_above_threshold=100_nbins=100.pickle",
40
+ )
41
+ assert selected_times.exists(), f"'{selected_times}' does not exist"
42
+
43
+ # fmt: off
44
+ eval_strats = [
45
+ InvertedRegeneration(
46
+ nb_inversion_diffusion_timesteps = 200,
47
+ nb_diffusion_timesteps = 100,
48
+ nb_video_timesteps = 13,
49
+ nb_video_times_in_parallel = 7,
50
+ nb_generated_samples = 25,
51
+ n_rows_displayed = 5,
52
+ selected_times = selected_times,
53
+ plate_name_to_simulate = "D-06_F0003",
54
+ ),
55
+ ]
56
+ # fmt: on
57
+
58
+ # edit eval names manually
59
+ for eval_strat in eval_strats:
60
+ if eval_strat.selected_times is not None:
61
+ eval_strat.name += f"_{selected_times.stem}"
62
+ if scheduler_type is not None:
63
+ eval_strat.name += f"_{scheduler_type.__name__}"
64
+
65
+ # ------------------------------------------ Final Config -----------------------------------------
66
+ # fmt: off
67
+ inference_conf = InferenceConfig(
68
+ # Choose the experiment (== trained model weights)
69
+ root_experiments_path = root_experiments_path,
70
+ project_name = project_name,
71
+ run_name = folder_name,
72
+ saved_model_foldername = "saved_model",
73
+ # Choose a custom scheduler
74
+ scheduler_type = scheduler_type,
75
+ scheduler_config_path = None,
76
+ import_orig_config = True,
77
+ # Output directory (where to put the generated images / tensors)
78
+ output_dir = run_path / "inferences",
79
+ # Device
80
+ device = "cuda:0",
81
+ # Optimizations
82
+ compile = True,
83
+ dtype = float16,
84
+ # Data
85
+ dataset = dataset,
86
+ # Evaluations
87
+ evaluation_strategies = eval_strats, # type: ignore[reportArgumentType]
88
+ # Profiling
89
+ profiling = ProfileConfig(), # off by default
90
+ # Debug
91
+ debug = False,
92
+ # Temp Dir
93
+ tmpdir_location = "/localtmp/tboyer/.tmpdir",
94
+ )
diabetic_retinopathy/my_conf/my_training_conf.py ADDED
@@ -0,0 +1,199 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pathlib import Path
2
+
3
+ from omegaconf import MISSING
4
+
5
+ ###################################################################################################
6
+ ############################################ Base conf ############################################
7
+ ###################################################################################################
8
+ # These are generic classes that need full instantiation
9
+ from GaussianProxy.conf.training_conf import (
10
+ Accelerate,
11
+ AccelerateLaunchArgs,
12
+ Checkpointing,
13
+ Config,
14
+ DataLoader,
15
+ DDIMSchedulerConfig,
16
+ Evaluation,
17
+ ForwardNoising, # noqa: F401
18
+ InvertedRegeneration, # noqa: F401
19
+ IterativeInvertedRegeneration, # noqa: F401
20
+ LinearLRConfig, # noqa: F401
21
+ MetricsComputation, # noqa: F401
22
+ OneCycleLRConfig, # noqa: F401
23
+ SimilarityWithTrainData, # noqa: F401
24
+ SimpleGeneration, # noqa: F401
25
+ Slurm,
26
+ Training,
27
+ )
28
+
29
+ ###################################################################################################
30
+ ########################################## Defaults conf ##########################################
31
+ ###################################################################################################
32
+ defaults = [
33
+ {"dataset": "diabetic_retinopathy/diabetic_retinopathy_full_circle_augs_2048_precrop_fully_ordered"},
34
+ "hydra/job_logging/custom",
35
+ "_self_",
36
+ ]
37
+ # fmt: off
38
+
39
+ # ------------------------------------------- Job launch ------------------------------------------
40
+ slurm = Slurm(
41
+ enabled = False,
42
+ monitor = False,
43
+ account = "icr@a100",
44
+ partition = "a100",
45
+ constraint = "a100",
46
+ qos = "dev",
47
+ nodes = 1,
48
+ num_gpus = 8,
49
+ max_num_requeue = 3,
50
+ output_folder = "${hydra:run.dir}",
51
+ email = "tboyer@bio.ens.psl.eu",
52
+ )
53
+
54
+ accelerate_launch_args = AccelerateLaunchArgs(
55
+ machine_rank = 0,
56
+ num_machines = 1,
57
+ gpu_ids = "all",
58
+ rdzv_backend = "static",
59
+ same_network = "true",
60
+ mixed_precision = "fp16",
61
+ num_processes = 3,
62
+ main_process_port = 29502,
63
+ dynamo_backend = "inductor",
64
+ )
65
+
66
+ accelerate = Accelerate(
67
+ launch_args = accelerate_launch_args,
68
+ offline = False, # TODO: move this arg that does not belong here (make it general like debug)
69
+ )
70
+
71
+ # ---------------------------------------------- Data ---------------------------------------------
72
+ data_loader = DataLoader(
73
+ num_workers = 8,
74
+ train_prefetch_factor = 4,
75
+ pin_memory = True,
76
+ persistent_workers = True,
77
+ )
78
+
79
+ # -------------------------------------------- Training -------------------------------------------
80
+ training = Training(
81
+ gradient_accumulation_steps = 1,
82
+ train_batch_size = 64,
83
+ max_grad_norm = 1,
84
+ nb_time_samplings = 300_000,
85
+ unpaired_data = False,
86
+ as_many_samples_as_unpaired = False,
87
+ reweight_sampling = False,
88
+ )
89
+
90
+ checkpointing = Checkpointing(
91
+ checkpoints_total_limit = 3,
92
+ resume_from_checkpoint = True,
93
+ checkpoint_every_n_steps = 5000,
94
+ chckpt_base_path = Path("/localtmp/tboyer/static2dynamic"),
95
+ )
96
+
97
+ lr_scheduler = OneCycleLRConfig(
98
+ max_lr = 1e-3,
99
+ )
100
+
101
+ # ------------------------------------------- Evaluation ------------------------------------------
102
+ # naming convention is lowercase + underscore; has to be respected for debug args modification
103
+ metrics_compute = MetricsComputation(
104
+ nb_samples_to_gen_per_time = 10_000,
105
+ batch_size = 256,
106
+ nb_diffusion_timesteps = 50,
107
+ selected_times = [0, 2, 4],
108
+ augmentations_for_metrics_comp = [],
109
+ also_compute_metrics_on_all_times = False,
110
+ dtype = "float16",
111
+ )
112
+
113
+ simple_generation = SimpleGeneration(
114
+ nb_diffusion_timesteps = 50,
115
+ n_rows_displayed = 4, # TODO: merge training & evaluation configs
116
+ nb_generated_samples = 16, # TODO: merge training & evaluation configs
117
+ )
118
+
119
+ inverted_regeneration = InvertedRegeneration(
120
+ nb_diffusion_timesteps = 50,
121
+ nb_inversion_diffusion_timesteps = 100,
122
+ n_rows_displayed = 8, # TODO: not used in training!
123
+ nb_generated_samples = 16,
124
+ nb_video_times_in_parallel = 4, # TODO: not used in training!
125
+ nb_video_timesteps = 50,
126
+ )
127
+
128
+ sim_with_train = SimilarityWithTrainData( # must be put after metrics_compute!
129
+ nb_generated_samples = -1, # TODO: not used
130
+ batch_size = 2048,
131
+ nb_batches_shown = -1, # TODO: not used
132
+ n_rows_displayed = -1, # TODO: not used
133
+ nb_diffusion_timesteps = -1, # TODO: not used
134
+ )
135
+
136
+ evaluation = Evaluation(
137
+ every_n_opt_steps = 20_000,
138
+ batch_size = 16, # TODO: remove this and use config from above
139
+ nb_video_timesteps = 50, # TODO: remove this and use config from above
140
+ strategies = [simple_generation, inverted_regeneration, metrics_compute, sim_with_train],
141
+ )
142
+
143
+ # ------------------------------------------- Diffusion -------------------------------------------
144
+ dynamic = DDIMSchedulerConfig(
145
+ num_train_timesteps = 3000,
146
+ clip_sample = False,
147
+ clip_sample_range = 1,
148
+ thresholding = True,
149
+ sample_max_value = 1,
150
+ prediction_type = "v_prediction",
151
+ rescale_betas_zero_snr = False,
152
+ timestep_spacing = "leading",
153
+ )
154
+
155
+ # ---------------------------------------------- Model --------------------------------------------
156
+ from my_conf.net.net_256_3_6M import net, time_encoder # noqa: E402
157
+
158
+ # ------------------------------------------ Final Config -----------------------------------------
159
+ config = Config(
160
+ # defaults
161
+ defaults = defaults,
162
+ # model
163
+ dynamic = dynamic,
164
+ net = net,
165
+ time_encoder = time_encoder,
166
+ # script
167
+ launcher_script_parent_folder = "/workspaces/biocomp/tboyer/sources/GaussianProxy",
168
+ script = "train",
169
+ # experiment variables
170
+ exp_parent_folder = "/projects/static2dynamic/Thomas/experiments",
171
+ project = MISSING,
172
+ run_name = MISSING,
173
+ # hydra
174
+ hydra = {"run": {"dir": "${exp_parent_folder}/${project}/${run_name}"}},
175
+ # slurm
176
+ slurm = slurm,
177
+ # accelerate
178
+ accelerate = accelerate,
179
+ # misc.
180
+ debug = False,
181
+ profile = False,
182
+ tmpdir_location = "/localtmp/tboyer/.tmpdir",
183
+ # experiment tracker
184
+ logger = "wandb",
185
+ entity = "thomasboyer",
186
+ resume_method = "rewind",
187
+ # checkpointing
188
+ checkpointing = checkpointing,
189
+ # dataset
190
+ dataset = MISSING,
191
+ # dataloaders
192
+ dataloaders = data_loader,
193
+ # training
194
+ training = training,
195
+ # evaluation
196
+ evaluation = evaluation,
197
+ # optimizer
198
+ lr_scheduler = lr_scheduler,
199
+ )
diabetic_retinopathy/my_conf/net/net_196_3_11M.py ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from GaussianProxy.conf.training_conf import UNet2DConditionModelConfig, TimeEncoderConfig
2
+
3
+ cross_attn_dim = 64
4
+
5
+ net = UNet2DConditionModelConfig(
6
+ sample_size=196,
7
+ in_channels=3,
8
+ out_channels=3,
9
+ down_block_types=("DownBlock2D", "CrossAttnDownBlock2D", "CrossAttnDownBlock2D"),
10
+ up_block_types=("CrossAttnUpBlock2D", "CrossAttnUpBlock2D", "UpBlock2D"),
11
+ block_out_channels=(96, 128, 128),
12
+ layers_per_block=2,
13
+ act_fn="silu",
14
+ cross_attention_dim=cross_attn_dim,
15
+ )
16
+
17
+ time_encoder = TimeEncoderConfig(
18
+ encoding_dim=128,
19
+ time_embed_dim=cross_attn_dim,
20
+ flip_sin_to_cos=True,
21
+ downscale_freq_shift=1,
22
+ )
diabetic_retinopathy/my_conf/net/net_256_3_20M.py ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from GaussianProxy.conf.training_conf import UNet2DConditionModelConfig, TimeEncoderConfig
2
+
3
+ cross_attn_dim = 64
4
+
5
+ net = UNet2DConditionModelConfig(
6
+ sample_size=256,
7
+ in_channels=3,
8
+ out_channels=3,
9
+ down_block_types=("DownBlock2D", "CrossAttnDownBlock2D", "CrossAttnDownBlock2D"),
10
+ up_block_types=("CrossAttnUpBlock2D", "CrossAttnUpBlock2D", "UpBlock2D"),
11
+ block_out_channels=(64, 128, 224),
12
+ layers_per_block=2,
13
+ act_fn="silu",
14
+ cross_attention_dim=cross_attn_dim,
15
+ )
16
+
17
+ time_encoder = TimeEncoderConfig(
18
+ encoding_dim=128,
19
+ time_embed_dim=cross_attn_dim,
20
+ flip_sin_to_cos=True,
21
+ downscale_freq_shift=1,
22
+ )
diabetic_retinopathy/my_conf/net/net_256_3_8M.py ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from GaussianProxy.conf.training_conf import TimeEncoderConfig, UNet2DConditionModelConfig
2
+
3
+ cross_attn_dim = 64
4
+
5
+ net = UNet2DConditionModelConfig(
6
+ sample_size=256,
7
+ in_channels=3,
8
+ out_channels=3,
9
+ down_block_types=("DownBlock2D", "CrossAttnDownBlock2D", "CrossAttnDownBlock2D"),
10
+ up_block_types=("CrossAttnUpBlock2D", "CrossAttnUpBlock2D", "UpBlock2D"),
11
+ block_out_channels=(64, 96, 128),
12
+ layers_per_block=2,
13
+ act_fn="silu",
14
+ cross_attention_dim=cross_attn_dim,
15
+ )
16
+
17
+ time_encoder = TimeEncoderConfig(
18
+ encoding_dim=128,
19
+ time_embed_dim=cross_attn_dim,
20
+ flip_sin_to_cos=True,
21
+ downscale_freq_shift=1,
22
+ )
diabetic_retinopathy/my_conf/net/net_66_1.py ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from GaussianProxy.conf.training_conf import TimeEncoderConfig, UNet2DConditionModelConfig
2
+
3
+ cross_attn_dim = 32
4
+
5
+ net = UNet2DConditionModelConfig(
6
+ sample_size=66,
7
+ in_channels=1,
8
+ out_channels=1,
9
+ down_block_types=("DownBlock2D", "CrossAttnDownBlock2D", "CrossAttnDownBlock2D"),
10
+ up_block_types=("CrossAttnUpBlock2D", "CrossAttnUpBlock2D", "UpBlock2D"),
11
+ block_out_channels=(16, 32, 64),
12
+ norm_num_groups=8,
13
+ layers_per_block=2,
14
+ act_fn="silu",
15
+ cross_attention_dim=cross_attn_dim,
16
+ )
17
+
18
+ time_encoder = TimeEncoderConfig(
19
+ encoding_dim=64,
20
+ time_embed_dim=cross_attn_dim,
21
+ flip_sin_to_cos=True,
22
+ downscale_freq_shift=1,
23
+ )
diabetic_retinopathy/my_conf/net/net_66_3_2M.py ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from GaussianProxy.conf.training_conf import UNet2DConditionModelConfig, TimeEncoderConfig
2
+
3
+ cross_attn_dim = 64
4
+
5
+ net = UNet2DConditionModelConfig(
6
+ sample_size=66,
7
+ in_channels=3,
8
+ out_channels=3,
9
+ down_block_types=("DownBlock2D", "CrossAttnDownBlock2D", "CrossAttnDownBlock2D"),
10
+ up_block_types=("CrossAttnUpBlock2D", "CrossAttnUpBlock2D", "UpBlock2D"),
11
+ block_out_channels=(24, 40, 72),
12
+ norm_num_groups=8,
13
+ layers_per_block=2,
14
+ act_fn="silu",
15
+ cross_attention_dim=cross_attn_dim,
16
+ )
17
+
18
+ time_encoder = TimeEncoderConfig(
19
+ encoding_dim=128,
20
+ time_embed_dim=cross_attn_dim,
21
+ flip_sin_to_cos=True,
22
+ downscale_freq_shift=1,
23
+ )
diabetic_retinopathy/my_conf/net/net_diabetic_retinopathy.py ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from GaussianProxy.conf.training_conf import UNet2DConditionModelConfig, TimeEncoderConfig
2
+
3
+ cross_attn_dim = 64
4
+
5
+ net = UNet2DConditionModelConfig(
6
+ sample_size=256,
7
+ in_channels=3,
8
+ out_channels=3,
9
+ down_block_types=("DownBlock2D", "CrossAttnDownBlock2D", "CrossAttnDownBlock2D"),
10
+ up_block_types=("CrossAttnUpBlock2D", "CrossAttnUpBlock2D", "UpBlock2D"),
11
+ block_out_channels=(64, 128, 256),
12
+ layers_per_block=2,
13
+ act_fn="silu",
14
+ cross_attention_dim=cross_attn_dim,
15
+ )
16
+
17
+ time_encoder = TimeEncoderConfig(
18
+ encoding_dim=128,
19
+ time_embed_dim=cross_attn_dim,
20
+ flip_sin_to_cos=True,
21
+ downscale_freq_shift=1,
22
+ )
diabetic_retinopathy/my_conf/scheduler/DDIM_3k_vpred_tresh_leading.json ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "DDIMScheduler",
3
+ "_diffusers_version": "0.32.2",
4
+ "beta_end": 0.02,
5
+ "beta_schedule": "linear",
6
+ "beta_start": 0.0001,
7
+ "clip_sample": false,
8
+ "clip_sample_range": 1.0,
9
+ "dynamic_thresholding_ratio": 0.995,
10
+ "num_train_timesteps": 3000,
11
+ "prediction_type": "v_prediction",
12
+ "rescale_betas_zero_snr": false,
13
+ "sample_max_value": 1.0,
14
+ "set_alpha_to_one": true,
15
+ "steps_offset": 0,
16
+ "thresholding": true,
17
+ "timestep_spacing": "leading",
18
+ "trained_betas": null
19
+ }
diabetic_retinopathy/source.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ local_run: retino_fc_precrop_2048_noreweight_6M
2
+ checkpoint_subdir: best_model
3
+ hf_checkpoint_name: diabetic_retinopathy
diabetic_retinopathy/training_state_info.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"start_global_optimization_step": 20000, "best_metric_to_date": 127.12431972474947}
diabetic_retinopathy/video_time_encoder/config.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "VideoTimeEncoding",
3
+ "_diffusers_version": "0.35.2",
4
+ "downscale_freq_shift": 1.0,
5
+ "encoding_dim": 128,
6
+ "flip_sin_to_cos": true,
7
+ "time_embed_dim": 64
8
+ }
docetaxel/README.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # docetaxel
2
+
3
+ Static2Dynamic pretrained checkpoint.
4
+
5
+ ## Files
6
+
7
+ - `net/config.json`
8
+ - `net/diffusion_pytorch_model.safetensors`
9
+ - `video_time_encoder/config.json`
10
+ - `video_time_encoder/diffusion_pytorch_model.safetensors`
11
+ - `dynamic/scheduler_config.json`
12
+ - `training_state_info.json`, when available
13
+ - `my_conf/`, when available
14
+
15
+ ## Provenance
16
+
17
+ - Local run folder: `bbbc021_JZ_download`
18
+ - Local checkpoint subfolder: `saved_model`
19
+
20
+ ## Download
21
+
22
+ ```python
23
+ from huggingface_hub import snapshot_download
24
+
25
+ path = snapshot_download(
26
+ repo_id="thethomasboyer/Static2Dynamic",
27
+ allow_patterns=["docetaxel/*"],
28
+ )
29
+ ```
docetaxel/source.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ local_run: bbbc021_JZ_download
2
+ checkpoint_subdir: saved_model
3
+ hf_checkpoint_name: docetaxel
docetaxel/training_state_info.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"start_global_optimization_step": 25000, "best_metric_to_date": 23.07469137010379}
docetaxel_skip_half_doses/README.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # docetaxel_skip_half_doses
2
+
3
+ Static2Dynamic pretrained checkpoint.
4
+
5
+ ## Files
6
+
7
+ - `net/config.json`
8
+ - `net/diffusion_pytorch_model.safetensors`
9
+ - `video_time_encoder/config.json`
10
+ - `video_time_encoder/diffusion_pytorch_model.safetensors`
11
+ - `dynamic/scheduler_config.json`
12
+ - `training_state_info.json`, when available
13
+ - `my_conf/`, when available
14
+
15
+ ## Provenance
16
+
17
+ - Local run folder: `bbbc021_docetaxel_skip_half_doses`
18
+ - Local checkpoint subfolder: `best_model`
19
+
20
+ ## Download
21
+
22
+ ```python
23
+ from huggingface_hub import snapshot_download
24
+
25
+ path = snapshot_download(
26
+ repo_id="thethomasboyer/Static2Dynamic",
27
+ allow_patterns=["docetaxel_skip_half_doses/*"],
28
+ )
29
+ ```
docetaxel_skip_half_doses/source.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ local_run: bbbc021_docetaxel_skip_half_doses
2
+ checkpoint_subdir: best_model
3
+ hf_checkpoint_name: docetaxel_skip_half_doses
docetaxel_skip_half_doses/training_state_info.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"start_global_optimization_step": 50000, "best_metric_to_date": 32.032975411295524}
ependymal/README.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ependymal
2
+
3
+ Static2Dynamic pretrained checkpoint.
4
+
5
+ ## Files
6
+
7
+ - `net/config.json`
8
+ - `net/diffusion_pytorch_model.safetensors`
9
+ - `video_time_encoder/config.json`
10
+ - `video_time_encoder/diffusion_pytorch_model.safetensors`
11
+ - `dynamic/scheduler_config.json`
12
+ - `training_state_info.json`, when available
13
+ - `my_conf/`, when available
14
+
15
+ ## Provenance
16
+
17
+ - Local run folder: `ependymal_cutout_noised0.1_fc_augs`
18
+ - Local checkpoint subfolder: `last_model`
19
+
20
+ ## Download
21
+
22
+ ```python
23
+ from huggingface_hub import snapshot_download
24
+
25
+ path = snapshot_download(
26
+ repo_id="thethomasboyer/Static2Dynamic",
27
+ allow_patterns=["ependymal/*"],
28
+ )
29
+ ```
ependymal/source.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ local_run: ependymal_cutout_noised0.1_fc_augs
2
+ checkpoint_subdir: last_model
3
+ hf_checkpoint_name: ependymal
ependymal/training_state_info.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"start_global_optimization_step": 230000, "best_metric_to_date": Infinity}
nocodazole/README.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # nocodazole
2
+
3
+ Static2Dynamic pretrained checkpoint.
4
+
5
+ ## Files
6
+
7
+ - `net/config.json`
8
+ - `net/diffusion_pytorch_model.safetensors`
9
+ - `video_time_encoder/config.json`
10
+ - `video_time_encoder/diffusion_pytorch_model.safetensors`
11
+ - `dynamic/scheduler_config.json`
12
+ - `training_state_info.json`, when available
13
+ - `my_conf/`, when available
14
+
15
+ ## Provenance
16
+
17
+ - Local run folder: `bbbc021_nocodazole_no_xattn_no_reweight`
18
+ - Local checkpoint subfolder: `best_model`
19
+
20
+ ## Download
21
+
22
+ ```python
23
+ from huggingface_hub import snapshot_download
24
+
25
+ path = snapshot_download(
26
+ repo_id="thethomasboyer/Static2Dynamic",
27
+ allow_patterns=["nocodazole/*"],
28
+ )
29
+ ```
nocodazole/source.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ local_run: bbbc021_nocodazole_no_xattn_no_reweight
2
+ checkpoint_subdir: best_model
3
+ hf_checkpoint_name: nocodazole
nocodazole/training_state_info.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"start_global_optimization_step": 250000, "best_metric_to_date": 24.29838724375528}