Elea Zhong commited on
Commit
833555d
·
1 Parent(s): c3c1d47

modal training, add confs

Browse files
configs/compare/5k_steps.yaml ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ num_train_epochs: 1
2
+ max_train_steps: 5000
configs/optim/cosine.yaml ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+
2
+
3
+ lr_scheduler: cosine
4
+ lr_warmup_steps: 250
configs/regression/{base-reg.yaml → base.yaml} RENAMED
@@ -7,11 +7,11 @@ max_train_steps: null
7
  preprocessing_epoch_len: 0
8
  preprocessing_epoch_repetitions: 1
9
  num_validation_images: &val_num 32
10
- num_sample_images: 2
11
  train_range: [*val_num, null]
12
  val_range: [0, *val_num]
13
- test_range: [2, 4]
14
- regression_base_pipe_steps: 8
15
 
16
  training_type: "regression"
17
 
 
7
  preprocessing_epoch_len: 0
8
  preprocessing_epoch_repetitions: 1
9
  num_validation_images: &val_num 32
10
+ num_sample_images: 4
11
  train_range: [*val_num, null]
12
  val_range: [0, *val_num]
13
+ test_range: [0, 4]
14
+ regression_base_pipe_steps: 4
15
 
16
  training_type: "regression"
17
 
configs/regression/lo_mse.yaml ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ train_loss_terms:
2
+ mse: 0.1
configs/regression/modal-datadirs.yaml ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ regression_data_dir: "/data/regression_data/regression_output"
2
+ editing_data_dir: "/data/edit_data/CrispEdit"
configs/regression/mse-dm.yaml ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ wandb_run_name: "reg-mse-dm"
2
+ output_dir: "/data/checkpoints/reg-mse-dm"
3
+
4
+ train_loss_terms:
5
+ mse: 1.0
6
+ distribution_matching: 1.0
7
+
8
+ validation_loss_terms:
9
+ mse: 1.0
10
+ distribution_matching: 1.0
11
+
configs/regression/{reg-mse-neg.yaml → mse-neg-mse.yaml} RENAMED
@@ -1,11 +1,11 @@
1
- wandb_run_name: "reg-mse"
2
- output_dir: "/data/checkpoints/reg-mse"
3
 
4
  train_loss_terms:
5
  mse: 1.0
6
- negative_mse: 1.0
7
 
8
  validation_loss_terms:
9
  mse: 1.0
10
- negative_mse: 1.0
11
 
 
1
+ wandb_run_name: "reg-mse-neg-mse"
2
+ output_dir: "/data/checkpoints/reg-mse-neg-mse"
3
 
4
  train_loss_terms:
5
  mse: 1.0
6
+ negative_mse: 0.1
7
 
8
  validation_loss_terms:
9
  mse: 1.0
10
+ negative_mse: 0.1
11
 
configs/regression/mse-pixel-lpips.yaml ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ wandb_run_name: "reg-mse-pixel-lpips"
2
+ output_dir: "/data/checkpoints/reg-mse-pixel-lpips"
3
+
4
+ train_loss_terms:
5
+ mse: 1.0
6
+ pixel_lpips: 1.0
7
+
8
+ validation_loss_terms:
9
+ mse: 1.0
10
+ pixel_lpips: 1.0
configs/regression/{reg-mse-pixel-mse.yaml → mse-pixel-mse.yaml} RENAMED
File without changes
configs/regression/{reg-mse-triplet.yaml → mse-triplet.yaml} RENAMED
@@ -8,4 +8,6 @@ train_loss_terms:
8
  validation_loss_terms:
9
  mse: 1.0
10
  triplet: 1.0
11
-
 
 
 
8
  validation_loss_terms:
9
  mse: 1.0
10
  triplet: 1.0
11
+
12
+
13
+ triplet_margin: -500 # tune
configs/regression/{reg-mse.yaml → mse.yaml} RENAMED
File without changes
configs/regression/val_metrics.yaml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+
4
+ validation_loss_terms:
5
+ mse: 1.0
6
+ pixel_mse: 1.0
7
+ pixel_lpips: 1.0
8
+
9
+
qwenimage/foundation.py CHANGED
@@ -460,6 +460,9 @@ class QwenImageRegressionFoundation(QwenImageFoundation):
460
 
461
  if loss_accumulator.has("pixel_lpips"):
462
  lpips_loss = self.lpips_fn(pixel_values_x0_gt, pixel_values_x0_pred)
 
 
 
463
  loss_accumulator.accum("pixel_lpips", lpips_loss)
464
 
465
  if loss_accumulator.has("pixel_mse"):
@@ -511,12 +514,13 @@ class QwenImageRegressionFoundation(QwenImageFoundation):
511
  v_neg_1d,
512
  v_pred_1d,
513
  visualize_velocities=True,
514
- ):
 
515
  x_0_pred = x_t_1d - t * v_pred_1d
516
  x_0_neg = x_t_1d - t * v_neg_1d
517
  x_0_recon = x_t_1d - t * v_gt_1d
518
  log_pils = {
519
- "x_t_1d": self.latents_to_pil(x_t_1d, h=h_f16, w=w_f16),
520
  "x_0": self.latents_to_pil(x_0_1d, h=h_f16, w=w_f16),
521
  "x_0_recon": self.latents_to_pil(x_0_recon, h=h_f16, w=w_f16),
522
  "x_0_pred": self.latents_to_pil(x_0_pred, h=h_f16, w=w_f16),
 
460
 
461
  if loss_accumulator.has("pixel_lpips"):
462
  lpips_loss = self.lpips_fn(pixel_values_x0_gt, pixel_values_x0_pred)
463
+ texam(lpips_loss, "lpips_loss")
464
+ lpips_loss = lpips_loss.mean()
465
+ texam(lpips_loss, "lpips_loss")
466
  loss_accumulator.accum("pixel_lpips", lpips_loss)
467
 
468
  if loss_accumulator.has("pixel_mse"):
 
514
  v_neg_1d,
515
  v_pred_1d,
516
  visualize_velocities=True,
517
+ ):
518
+ t_float = t.float().cpu().item()
519
  x_0_pred = x_t_1d - t * v_pred_1d
520
  x_0_neg = x_t_1d - t * v_neg_1d
521
  x_0_recon = x_t_1d - t * v_gt_1d
522
  log_pils = {
523
+ f"x_{t_float}_1d": self.latents_to_pil(x_t_1d, h=h_f16, w=w_f16),
524
  "x_0": self.latents_to_pil(x_0_1d, h=h_f16, w=w_f16),
525
  "x_0_recon": self.latents_to_pil(x_0_recon, h=h_f16, w=w_f16),
526
  "x_0_pred": self.latents_to_pil(x_0_pred, h=h_f16, w=w_f16),
qwenimage/models/attention_processors.py CHANGED
@@ -1,11 +1,21 @@
 
 
 
1
  from diffusers.models.attention_processor import Attention
2
  from diffusers.models.attention_dispatch import dispatch_attention_fn
3
  import torch
4
  import torch.nn.functional as F
5
- from typing import Optional, Tuple
6
  from diffusers.models.transformers.transformer_qwenimage import apply_rotary_emb_qwen
7
 
8
- from sageattention import sageattn, sageattn_qk_int8_pv_fp16_cuda, sageattn_qk_int8_pv_fp16_triton, sageattn_qk_int8_pv_fp8_cuda, sageattn_qk_int8_pv_fp8_cuda_sm90
 
 
 
 
 
 
 
 
9
 
10
  try:
11
  from kernels import get_kernel
 
1
+ from typing import Optional, Tuple
2
+ import warnings
3
+
4
  from diffusers.models.attention_processor import Attention
5
  from diffusers.models.attention_dispatch import dispatch_attention_fn
6
  import torch
7
  import torch.nn.functional as F
 
8
  from diffusers.models.transformers.transformer_qwenimage import apply_rotary_emb_qwen
9
 
10
+ try:
11
+ from sageattention import sageattn, sageattn_qk_int8_pv_fp16_cuda, sageattn_qk_int8_pv_fp16_triton, sageattn_qk_int8_pv_fp8_cuda, sageattn_qk_int8_pv_fp8_cuda_sm90
12
+ except ImportError:
13
+ sageattn = None
14
+ sageattn_qk_int8_pv_fp16_cuda = None
15
+ sageattn_qk_int8_pv_fp16_triton = None
16
+ sageattn_qk_int8_pv_fp8_cuda = None
17
+ sageattn_qk_int8_pv_fp8_cuda_sm90 = None
18
+ warnings.warn("Sageattention not imported")
19
 
20
  try:
21
  from kernels import get_kernel
requirements.txt CHANGED
@@ -18,4 +18,4 @@ datasets
18
 
19
  para-attn
20
  lpips
21
- https://huggingface.co/spaces/eleazhong/Qwen-Image-Edit-Angles/resolve/main/bin/sageattention-2.2.0-cp310-cp310-linux_x86_64.whl
 
18
 
19
  para-attn
20
  lpips
21
+ # https://huggingface.co/spaces/eleazhong/Qwen-Image-Edit-Angles/resolve/main/bin/sageattention-2.2.0-cp310-cp310-linux_x86_64.whl
scripts/edit_datasets.ipynb CHANGED
@@ -2,20 +2,149 @@
2
  "cells": [
3
  {
4
  "cell_type": "code",
5
- "execution_count": null,
6
  "id": "c9cc09d6",
7
  "metadata": {},
8
- "outputs": [],
 
 
 
 
 
 
 
 
9
  "source": [
10
  "%cd /home/ubuntu/Qwen-Image-Edit-Angles"
11
  ]
12
  },
13
  {
14
  "cell_type": "code",
15
- "execution_count": null,
16
  "id": "b65a5e8c",
17
  "metadata": {},
18
- "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  "source": [
20
  "import huggingface_hub \n",
21
  "from qwenimage.datamodels import QwenConfig\n",
@@ -53,12 +182,12 @@
53
  },
54
  {
55
  "cell_type": "code",
56
- "execution_count": null,
57
  "id": "5505f47d",
58
  "metadata": {},
59
  "outputs": [],
60
  "source": [
61
- "total_per = 10\n",
62
  "\n",
63
  "EDIT_TYPES = [\n",
64
  " \"color\",\n",
@@ -73,7 +202,7 @@
73
  },
74
  {
75
  "cell_type": "code",
76
- "execution_count": null,
77
  "id": "cdf51dbb",
78
  "metadata": {},
79
  "outputs": [],
@@ -95,11 +224,147 @@
95
  },
96
  {
97
  "cell_type": "code",
98
- "execution_count": null,
99
  "id": "0c59b9d4",
100
  "metadata": {},
101
- "outputs": [],
102
- "source": []
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
  },
104
  {
105
  "cell_type": "code",
 
2
  "cells": [
3
  {
4
  "cell_type": "code",
5
+ "execution_count": 1,
6
  "id": "c9cc09d6",
7
  "metadata": {},
8
+ "outputs": [
9
+ {
10
+ "name": "stdout",
11
+ "output_type": "stream",
12
+ "text": [
13
+ "/home/ubuntu/Qwen-Image-Edit-Angles\n"
14
+ ]
15
+ }
16
+ ],
17
  "source": [
18
  "%cd /home/ubuntu/Qwen-Image-Edit-Angles"
19
  ]
20
  },
21
  {
22
  "cell_type": "code",
23
+ "execution_count": 2,
24
  "id": "b65a5e8c",
25
  "metadata": {},
26
+ "outputs": [
27
+ {
28
+ "name": "stderr",
29
+ "output_type": "stream",
30
+ "text": [
31
+ "/usr/lib/python3/dist-packages/sklearn/utils/fixes.py:25: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
32
+ " from pkg_resources import parse_version # type: ignore\n",
33
+ "2025-11-24 16:55:55.657889: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n",
34
+ "2025-11-24 16:55:55.671869: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
35
+ "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
36
+ "E0000 00:00:1764003355.688913 3244532 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
37
+ "E0000 00:00:1764003355.694358 3244532 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
38
+ "W0000 00:00:1764003355.707749 3244532 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
39
+ "W0000 00:00:1764003355.707764 3244532 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
40
+ "W0000 00:00:1764003355.707767 3244532 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
41
+ "W0000 00:00:1764003355.707768 3244532 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
42
+ "2025-11-24 16:55:55.712504: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
43
+ "To enable the following instructions: AVX512F AVX512_VNNI AVX512_BF16 AVX512_FP16 AVX_VNNI, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n"
44
+ ]
45
+ },
46
+ {
47
+ "ename": "AttributeError",
48
+ "evalue": "'MessageFactory' object has no attribute 'GetPrototype'",
49
+ "output_type": "error",
50
+ "traceback": [
51
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
52
+ "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
53
+ "\u001b[0;31mAttributeError\u001b[0m: 'MessageFactory' object has no attribute 'GetPrototype'"
54
+ ]
55
+ },
56
+ {
57
+ "ename": "AttributeError",
58
+ "evalue": "'MessageFactory' object has no attribute 'GetPrototype'",
59
+ "output_type": "error",
60
+ "traceback": [
61
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
62
+ "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
63
+ "\u001b[0;31mAttributeError\u001b[0m: 'MessageFactory' object has no attribute 'GetPrototype'"
64
+ ]
65
+ },
66
+ {
67
+ "ename": "AttributeError",
68
+ "evalue": "'MessageFactory' object has no attribute 'GetPrototype'",
69
+ "output_type": "error",
70
+ "traceback": [
71
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
72
+ "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
73
+ "\u001b[0;31mAttributeError\u001b[0m: 'MessageFactory' object has no attribute 'GetPrototype'"
74
+ ]
75
+ },
76
+ {
77
+ "name": "stderr",
78
+ "output_type": "stream",
79
+ "text": [
80
+ "/home/ubuntu/.local/lib/python3.10/site-packages/google/api_core/_python_version_support.py:266: FutureWarning: You are using a Python version (3.10.12) which Google will stop supporting in new releases of google.api_core once it reaches its end of life (2026-10-04). Please upgrade to the latest Python version, or at least Python 3.11, to continue receiving updates for google.api_core past that date.\n",
81
+ " warnings.warn(message, FutureWarning)\n"
82
+ ]
83
+ },
84
+ {
85
+ "ename": "AttributeError",
86
+ "evalue": "'MessageFactory' object has no attribute 'GetPrototype'",
87
+ "output_type": "error",
88
+ "traceback": [
89
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
90
+ "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
91
+ "\u001b[0;31mAttributeError\u001b[0m: 'MessageFactory' object has no attribute 'GetPrototype'"
92
+ ]
93
+ },
94
+ {
95
+ "ename": "AttributeError",
96
+ "evalue": "'MessageFactory' object has no attribute 'GetPrototype'",
97
+ "output_type": "error",
98
+ "traceback": [
99
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
100
+ "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
101
+ "\u001b[0;31mAttributeError\u001b[0m: 'MessageFactory' object has no attribute 'GetPrototype'"
102
+ ]
103
+ },
104
+ {
105
+ "name": "stderr",
106
+ "output_type": "stream",
107
+ "text": [
108
+ "Skipping import of cpp extensions due to incompatible torch version 2.9.1+cu128 for torchao version 0.14.1 Please see https://github.com/pytorch/ao/issues/2919 for more info\n",
109
+ "TMA benchmarks will be running without grid constant TMA descriptor.\n",
110
+ "WARNING:bitsandbytes.cextension:Could not find the bitsandbytes CUDA binary at PosixPath('/usr/local/lib/python3.10/dist-packages/bitsandbytes/libbitsandbytes_cuda128.so')\n",
111
+ "ERROR:bitsandbytes.cextension:Could not load bitsandbytes native library: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by /usr/local/lib/python3.10/dist-packages/bitsandbytes/libbitsandbytes_cpu.so)\n",
112
+ "Traceback (most recent call last):\n",
113
+ " File \"/usr/local/lib/python3.10/dist-packages/bitsandbytes/cextension.py\", line 85, in <module>\n",
114
+ " lib = get_native_library()\n",
115
+ " File \"/usr/local/lib/python3.10/dist-packages/bitsandbytes/cextension.py\", line 72, in get_native_library\n",
116
+ " dll = ct.cdll.LoadLibrary(str(binary_path))\n",
117
+ " File \"/usr/lib/python3.10/ctypes/__init__.py\", line 452, in LoadLibrary\n",
118
+ " return self._dlltype(name)\n",
119
+ " File \"/usr/lib/python3.10/ctypes/__init__.py\", line 374, in __init__\n",
120
+ " self._handle = _dlopen(self._name, mode)\n",
121
+ "OSError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by /usr/local/lib/python3.10/dist-packages/bitsandbytes/libbitsandbytes_cpu.so)\n",
122
+ "WARNING:bitsandbytes.cextension:\n",
123
+ "CUDA Setup failed despite CUDA being available. Please run the following command to get more information:\n",
124
+ "\n",
125
+ "python -m bitsandbytes\n",
126
+ "\n",
127
+ "Inspect the output of the command and see if you can locate CUDA libraries. You might need to add them\n",
128
+ "to your LD_LIBRARY_PATH. If you suspect a bug, please take the information from python -m bitsandbytes\n",
129
+ "and open an issue at: https://github.com/bitsandbytes-foundation/bitsandbytes/issues\n",
130
+ "\n"
131
+ ]
132
+ },
133
+ {
134
+ "data": {
135
+ "application/vnd.jupyter.widget-view+json": {
136
+ "model_id": "599e401d77bc49edaaacbfe6f55032cf",
137
+ "version_major": 2,
138
+ "version_minor": 0
139
+ },
140
+ "text/plain": [
141
+ "Fetching 7 files: 0%| | 0/7 [00:00<?, ?it/s]"
142
+ ]
143
+ },
144
+ "metadata": {},
145
+ "output_type": "display_data"
146
+ }
147
+ ],
148
  "source": [
149
  "import huggingface_hub \n",
150
  "from qwenimage.datamodels import QwenConfig\n",
 
182
  },
183
  {
184
  "cell_type": "code",
185
+ "execution_count": 3,
186
  "id": "5505f47d",
187
  "metadata": {},
188
  "outputs": [],
189
  "source": [
190
+ "total_per = 1\n",
191
  "\n",
192
  "EDIT_TYPES = [\n",
193
  " \"color\",\n",
 
202
  },
203
  {
204
  "cell_type": "code",
205
+ "execution_count": 4,
206
  "id": "cdf51dbb",
207
  "metadata": {},
208
  "outputs": [],
 
224
  },
225
  {
226
  "cell_type": "code",
227
+ "execution_count": 5,
228
  "id": "0c59b9d4",
229
  "metadata": {},
230
+ "outputs": [
231
+ {
232
+ "name": "stdout",
233
+ "output_type": "stream",
234
+ "text": [
235
+ "Turn dress positioned in the lower central area into red with floral patterns\n",
236
+ "Please recreate this in digital painting artistic style\n",
237
+ "replace the largemouth bass with a trout\n",
238
+ "remove the four grey extraterrestrials observing the scene\n",
239
+ "Add the lid back onto the jar of white cream\n",
240
+ "The character stops exhaling smoke and closes their mouth.\n",
241
+ "change the background to a mystical forest\n",
242
+ "Turn cap positioned in the upper-central area into red\n",
243
+ "Draw this image using fantasy art technique\n",
244
+ "replace the alien spaceship with a futuristic submarine\n",
245
+ "remove the morbidly obese Frankenstein monster from the school bus\n",
246
+ "add a halved lemon\n",
247
+ "No change in the subject's action, pose, or facial expression.\n",
248
+ "change the background to a serene starry night sky\n",
249
+ "Turn baby positioned in the central area into darker skin tone\n",
250
+ "Convert this image to graffiti artwork\n",
251
+ "replace the pregnant woman with an elderly woman holding a walking stick\n",
252
+ "remove the Wakandan technology elements from the townscape\n",
253
+ "add a large, serene pool area\n",
254
+ "The woman lowers her hand and straightens her posture.\n",
255
+ "change the background to a serene beach at sunset\n",
256
+ "Turn black tires positioned in the lower left area into white\n",
257
+ "Reimagine this image in low poly artistic style\n",
258
+ "replace the human skull with a flower crown\n",
259
+ "remove the pile of cheap broken cars from the white background\n",
260
+ "Add three plastic eggs in blue, green, and yellow.\n",
261
+ "The person holds a small piece of food in one hand while still holding the phone in the other.\n",
262
+ "change the background to a futuristic cityscape\n",
263
+ "Turn vehicles positioned in the lower-left area into polished\n",
264
+ "Turn this photo into oil painting artwork\n",
265
+ "replace the spike two-handed mace with a sword\n",
266
+ "remove the baby version of Batman from the image\n",
267
+ "add sparkling rhinestones to the bouquet of white roses\n",
268
+ "A person performs a pull-up with knees raised and holding a medicine ball.\n",
269
+ "change the background to a bustling city street at night\n",
270
+ "Turn grass positioned in the bottom area into dry\n",
271
+ "Transform this image using polaroid artistic approach\n",
272
+ "replace the plant factory with a castle\n",
273
+ "remove the palace on the moon\n",
274
+ "Add the classic blue muscle car back onto the paved road\n",
275
+ "The subject changes from having hands clasped behind their back to holding their arms out to the sides.\n",
276
+ "change the background to a serene meadow under a clear blue sky\n",
277
+ "Turn wheel positioned in the central area into black with red brake caliper\n",
278
+ "Render this image as vintage photography art\n",
279
+ "replace the horned frog with a deer\n",
280
+ "erase the abstract body featuring many limbs\n",
281
+ "add the golden fork to the white lace plate\n",
282
+ "The person turns their head to the side.\n",
283
+ "change the background to a starry night sky with glowing constellations\n",
284
+ "Turn flowers positioned in the lower-central area into pink\n",
285
+ "Can you render this image as art nouveau art?\n",
286
+ "replace the monoliths with ancient stone statues\n",
287
+ "remove the colorful fireworks in the sky\n",
288
+ "Add a green bottle near the cupcakes\n",
289
+ "The man's hand gesture changes from an open motion to a partially closed motion.\n",
290
+ "change the background to a futuristic cityscape\n",
291
+ "Turn chest pack positioned in the upper-central area into metallic silver\n",
292
+ "Transform this image using glitch art artistic approach\n",
293
+ "replace the fiery heart with a glowing moon\n",
294
+ "remove the purple rally stripes from the military aircraft\n",
295
+ "Add a hat to the man\n",
296
+ "The person lowers their right hand from a raised position to resting on their lap while keeping their left hand holding a phone.\n",
297
+ "change the background to a futuristic cityscape\n",
298
+ "Turn tables positioned in the lower central area into wooden\n",
299
+ "Illustrate this in woodcut format\n",
300
+ "replace the knight with a wizard\n",
301
+ "remove the meticulously designed object in the center\n",
302
+ "add a golden retriever lying beside the woman\n",
303
+ "A woman raises her left hand slightly higher and moves her right hand outward.\n",
304
+ "change the background to a city skyline at night\n",
305
+ "Turn frog positioned in the upper-central area into dark green\n",
306
+ "Reimagine this image in graffiti artistic style\n",
307
+ "replace the snowman with a sandcastle\n",
308
+ "remove the FABLER logo from the illustration\n",
309
+ "add the colorful flower mural behind the four friends\n",
310
+ "The man turns his head slightly to his left.\n",
311
+ "change the background to a starry night sky\n",
312
+ "Turn fence positioned in the lower central area into wooden\n",
313
+ "Could you convert this to pop art artwork?\n",
314
+ "replace the campfire with a small table\n",
315
+ "remove the fairies from the forest\n",
316
+ "add a hand stirring the glass pitcher\n",
317
+ "The person adjusts the object in their hands, moving from holding it with both hands to manipulating it with one hand.\n",
318
+ "change the background to a calm, serene ocean at sunset\n",
319
+ "Turn house positioned in the right-central area into wooden\n",
320
+ "Convert this image to low poly artwork\n",
321
+ "replace the bird with a butterfly\n",
322
+ "remove the engraved gem from the image\n",
323
+ "Add lounge chairs and umbrellas by the pool.\n",
324
+ "A woman reaches to remove the lid from a kitchen appliance.\n",
325
+ "change the background to a serene blue sky with fluffy white clouds\n",
326
+ "Turn piano positioned in the lower-left area into white\n",
327
+ "Please transform this image into isometric style\n",
328
+ "replace the glasses with a monocle\n",
329
+ "remove the circus carnival background\n",
330
+ "Add people relaxing on the grass\n",
331
+ "A man adjusts the virtual reality headset on his head.\n",
332
+ "change the background to a stormy sea with a pirate ship in the distance\n",
333
+ "Turn buildings positioned in the upper-right area into brightly colored structures\n",
334
+ "Please recreate this in street art artistic style\n",
335
+ "replace the father with a teacher\n",
336
+ "remove the black orb hovering in the galaxy scene\n",
337
+ "add back the figure who appears to be asleep\n",
338
+ "The person moves the camera from one hand to both hands, holding it more securely.\n"
339
+ ]
340
+ },
341
+ {
342
+ "ename": "KeyboardInterrupt",
343
+ "evalue": "",
344
+ "output_type": "error",
345
+ "traceback": [
346
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
347
+ "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
348
+ "\u001b[0;32m/tmp/ipykernel_3244532/4022048012.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0md\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mjoin_ds\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0md\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"instruction\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
349
+ "\u001b[0;32m~/.local/lib/python3.10/site-packages/datasets/arrow_dataset.py\u001b[0m in \u001b[0;36m__iter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2491\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2492\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnum_rows\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2493\u001b[0;31m yield self._getitem(\n\u001b[0m\u001b[1;32m 2494\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2495\u001b[0m )\n",
350
+ "\u001b[0;32m~/.local/lib/python3.10/site-packages/datasets/arrow_dataset.py\u001b[0m in \u001b[0;36m_getitem\u001b[0;34m(self, key, **kwargs)\u001b[0m\n\u001b[1;32m 2856\u001b[0m \u001b[0mformatter\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_formatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mformat_type\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeatures\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_info\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfeatures\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mformat_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2857\u001b[0m \u001b[0mpa_subtable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mquery_table\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindices\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_indices\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2858\u001b[0;31m formatted_output = format_table(\n\u001b[0m\u001b[1;32m 2859\u001b[0m \u001b[0mpa_subtable\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mformatter\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mformatter\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mformat_columns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mformat_columns\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moutput_all_columns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0moutput_all_columns\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2860\u001b[0m )\n",
351
+ "\u001b[0;32m~/.local/lib/python3.10/site-packages/datasets/formatting/formatting.py\u001b[0m in \u001b[0;36mformat_table\u001b[0;34m(table, key, formatter, format_columns, output_all_columns)\u001b[0m\n\u001b[1;32m 664\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 665\u001b[0m \u001b[0mpa_table_to_format\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpa_table\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdrop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcol\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mcol\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mpa_table\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumn_names\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcol\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mformat_columns\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 666\u001b[0;31m \u001b[0mformatted_output\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mformatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpa_table_to_format\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mquery_type\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mquery_type\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 667\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0moutput_all_columns\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 668\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mformatted_output\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mMutableMapping\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
352
+ "\u001b[0;32m~/.local/lib/python3.10/site-packages/datasets/formatting/formatting.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, pa_table, query_type)\u001b[0m\n\u001b[1;32m 409\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpa_table\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mpa\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTable\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mquery_type\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mRowFormat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mColumnFormat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mBatchFormat\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 410\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mquery_type\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"row\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 411\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat_row\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpa_table\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 412\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mquery_type\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"column\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 413\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat_column\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpa_table\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
353
+ "\u001b[0;32m~/.local/lib/python3.10/site-packages/datasets/formatting/formatting.py\u001b[0m in \u001b[0;36mformat_row\u001b[0;34m(self, pa_table)\u001b[0m\n\u001b[1;32m 458\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mLazyRow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpa_table\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 459\u001b[0m \u001b[0mrow\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpython_arrow_extractor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mextract_row\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpa_table\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 460\u001b[0;31m \u001b[0mrow\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpython_features_decoder\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode_row\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 461\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 462\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
354
+ "\u001b[0;32m~/.local/lib/python3.10/site-packages/datasets/formatting/formatting.py\u001b[0m in \u001b[0;36mdecode_row\u001b[0;34m(self, row)\u001b[0m\n\u001b[1;32m 222\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 223\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mdecode_row\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mdict\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mdict\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 224\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfeatures\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode_example\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtoken_per_repo_id\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtoken_per_repo_id\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfeatures\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 225\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 226\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mdecode_column\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolumn\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolumn_name\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
355
+ "\u001b[0;32m~/.local/lib/python3.10/site-packages/datasets/features/features.py\u001b[0m in \u001b[0;36mdecode_example\u001b[0;34m(self, example, token_per_repo_id)\u001b[0m\n\u001b[1;32m 2103\u001b[0m \"\"\"\n\u001b[1;32m 2104\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2105\u001b[0;31m return {\n\u001b[0m\u001b[1;32m 2106\u001b[0m \u001b[0mcolumn_name\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mdecode_nested_example\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfeature\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtoken_per_repo_id\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtoken_per_repo_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2107\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_column_requires_decoding\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcolumn_name\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
356
+ "\u001b[0;32m~/.local/lib/python3.10/site-packages/datasets/features/features.py\u001b[0m in \u001b[0;36m<dictcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 2104\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2105\u001b[0m return {\n\u001b[0;32m-> 2106\u001b[0;31m \u001b[0mcolumn_name\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mdecode_nested_example\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfeature\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtoken_per_repo_id\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtoken_per_repo_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2107\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_column_requires_decoding\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcolumn_name\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2108\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
357
+ "\u001b[0;32m~/.local/lib/python3.10/site-packages/datasets/features/features.py\u001b[0m in \u001b[0;36mdecode_nested_example\u001b[0;34m(schema, obj, token_per_repo_id)\u001b[0m\n\u001b[1;32m 1412\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mschema\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"decode_example\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mschema\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"decode\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1413\u001b[0m \u001b[0;31m# we pass the token to read and decode files from private repositories in streaming mode\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1414\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mschema\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode_example\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtoken_per_repo_id\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtoken_per_repo_id\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mobj\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1415\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1416\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
358
+ "\u001b[0;32m~/.local/lib/python3.10/site-packages/datasets/features/image.py\u001b[0m in \u001b[0;36mdecode_example\u001b[0;34m(self, value, token_per_repo_id)\u001b[0m\n\u001b[1;32m 191\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 192\u001b[0m \u001b[0mimage\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPIL\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mImage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mBytesIO\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbytes_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 193\u001b[0;31m \u001b[0mimage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# to avoid \"Too many open files\" errors\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 194\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mimage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetexif\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mPIL\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mImage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mExifTags\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mBase\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mOrientation\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 195\u001b[0m \u001b[0mimage\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPIL\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mImageOps\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexif_transpose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimage\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
359
+ "\u001b[0;32m~/.local/lib/python3.10/site-packages/PIL/ImageFile.py\u001b[0m in \u001b[0;36mload\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 388\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 389\u001b[0m \u001b[0mb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mb\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 390\u001b[0;31m \u001b[0mn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr_code\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdecoder\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 391\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mn\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 392\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
360
+ "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
361
+ ]
362
+ }
363
+ ],
364
+ "source": [
365
+ "for d in join_ds:\n",
366
+ " print(d[\"instruction\"])"
367
+ ]
368
  },
369
  {
370
  "cell_type": "code",
scripts/logit_normal_dist.ipynb CHANGED
@@ -2,7 +2,7 @@
2
  "cells": [
3
  {
4
  "cell_type": "code",
5
- "execution_count": 2,
6
  "id": "86816b6d",
7
  "metadata": {},
8
  "outputs": [],
@@ -14,7 +14,7 @@
14
  },
15
  {
16
  "cell_type": "code",
17
- "execution_count": 4,
18
  "id": "01b07a3c",
19
  "metadata": {},
20
  "outputs": [
@@ -24,7 +24,7 @@
24
  "tensor(3.0000)"
25
  ]
26
  },
27
- "execution_count": 4,
28
  "metadata": {},
29
  "output_type": "execute_result"
30
  }
@@ -35,7 +35,7 @@
35
  },
36
  {
37
  "cell_type": "code",
38
- "execution_count": 5,
39
  "id": "4f29d965",
40
  "metadata": {},
41
  "outputs": [],
@@ -45,7 +45,7 @@
45
  },
46
  {
47
  "cell_type": "code",
48
- "execution_count": 6,
49
  "id": "1b115c12",
50
  "metadata": {},
51
  "outputs": [],
@@ -55,33 +55,44 @@
55
  },
56
  {
57
  "cell_type": "code",
58
- "execution_count": null,
59
  "id": "3c32dc7f",
60
  "metadata": {},
61
- "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
62
  "source": [
63
  "torch.exp(torch.tensor(0.9))"
64
  ]
65
  },
66
  {
67
  "cell_type": "code",
68
- "execution_count": 3,
69
  "id": "aec3ae8f",
70
  "metadata": {},
71
  "outputs": [
72
  {
73
  "data": {
74
  "text/plain": [
75
- "[<matplotlib.lines.Line2D at 0x7030a4c59b40>]"
76
  ]
77
  },
78
- "execution_count": 3,
79
  "metadata": {},
80
  "output_type": "execute_result"
81
  },
82
  {
83
  "data": {
84
- "image/png": "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",
85
  "text/plain": [
86
  "<Figure size 432x288 with 1 Axes>"
87
  ]
@@ -93,17 +104,74 @@
93
  }
94
  ],
95
  "source": [
96
- "from qwenimage.sampling import logit_normal_dist\n",
97
  "\n",
98
  "t = torch.linspace(0,1,100)\n",
99
- "t_i = logit_normal_dist(\n",
100
- " mu=torch.tensor(1.09),\n",
101
  " sigma=1.0,\n",
102
  " t=t\n",
103
  ")\n",
104
  "plt.plot(t, t_i)"
105
  ]
106
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  {
108
  "cell_type": "code",
109
  "execution_count": null,
 
2
  "cells": [
3
  {
4
  "cell_type": "code",
5
+ "execution_count": 1,
6
  "id": "86816b6d",
7
  "metadata": {},
8
  "outputs": [],
 
14
  },
15
  {
16
  "cell_type": "code",
17
+ "execution_count": 2,
18
  "id": "01b07a3c",
19
  "metadata": {},
20
  "outputs": [
 
24
  "tensor(3.0000)"
25
  ]
26
  },
27
+ "execution_count": 2,
28
  "metadata": {},
29
  "output_type": "execute_result"
30
  }
 
35
  },
36
  {
37
  "cell_type": "code",
38
+ "execution_count": 3,
39
  "id": "4f29d965",
40
  "metadata": {},
41
  "outputs": [],
 
45
  },
46
  {
47
  "cell_type": "code",
48
+ "execution_count": 4,
49
  "id": "1b115c12",
50
  "metadata": {},
51
  "outputs": [],
 
55
  },
56
  {
57
  "cell_type": "code",
58
+ "execution_count": 5,
59
  "id": "3c32dc7f",
60
  "metadata": {},
61
+ "outputs": [
62
+ {
63
+ "data": {
64
+ "text/plain": [
65
+ "tensor(2.4596)"
66
+ ]
67
+ },
68
+ "execution_count": 5,
69
+ "metadata": {},
70
+ "output_type": "execute_result"
71
+ }
72
+ ],
73
  "source": [
74
  "torch.exp(torch.tensor(0.9))"
75
  ]
76
  },
77
  {
78
  "cell_type": "code",
79
+ "execution_count": 9,
80
  "id": "aec3ae8f",
81
  "metadata": {},
82
  "outputs": [
83
  {
84
  "data": {
85
  "text/plain": [
86
+ "[<matplotlib.lines.Line2D at 0x74338838e380>]"
87
  ]
88
  },
89
+ "execution_count": 9,
90
  "metadata": {},
91
  "output_type": "execute_result"
92
  },
93
  {
94
  "data": {
95
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAfLUlEQVR4nO3de3RddZ338fc3SXNr7tc2adL0fqMtLaGtRe4CpYIoowwgOjBoQSnP88ywlqCzUNfgzIPj6FJHtHYhIggyKDxYbLk5YItApaX3lDZN07RJkzS35n5Pfs8fiTWE0Jy2J9nn8nmtdVZyzt5JPj8SPmx+Z+/9M+ccIiIS/CK8DiAiIv6hQhcRCREqdBGREKFCFxEJESp0EZEQEeXVD87IyHAFBQVe/XgRkaD03nvv1TnnMkfa5lmhFxQUsH37dq9+vIhIUDKzox+1TVMuIiIhQoUuIhIiVOgiIiFChS4iEiJU6CIiIWLUQjezx8ysxsz2fcR2M7Mfm1mJme0xs6X+jykiIqPx5Qj9cWDVabZfC8wafKwBfnbusURE5EyNeh66c26LmRWcZpcbgCfcwH14t5pZiplNds5V+SukiEgwau/upa6lm9rWLupbu6hr7aautYsl+SlcPGvEa4POiT8uLMoFyoc8rxh87UOFbmZrGDiKJz8/3w8/WkRkfPX09VPX2kVty8CjpuVvn9e2dA1sa+2irqWLtu6+Eb/HVy6bEbCFbiO8NuKqGc659cB6gMLCQq2sISIBo7u3n5qWTk40d1E7+PFEcyc1g6Vd09xJbUsXDe3djLQuUEr8BDISYshMiGHxlJSBzxNjyEiIJiNx4PX0hGjSJ8YQHTU256P4o9ArgLwhz6cAlX74viIi58w5R3NHL1XNHVQ1dXKiqZPq5k5ONHdS3dRJdfNAWde3dX/oa6MijMzEGLISY5iSGs/SqalkJcYMvhZLVmIMGYOlHRMV6cHohuX1w/fYAKw1s2eA5UCT5s9FZDw452ju7KWqqYOqxk4qBz9WNXVS1dRBddPA5x09H576yEiIJjsplpzkWM7PS2FSUizZSTFkJ8WSNfgxLT6aiIiRJiEC06iFbma/AS4DMsysAvgWMAHAObcO2ASsBkqAduCOsQorIuGlt6+fEy1dHD/ZwfHGdiobOzne2EHlqUcnrV29H/iaCIPspFgmJ8cyd3Iil8/NYnJyLJOSY5mUNPAxKzF2zKY9vOTLWS63jLLdAff4LZGIhI3evn6qmzspb+ig4mQ7FSc7Bh8Dn1c3d9LX/8EJ67SJ0eSmxFGQPpGVMzLISYllcnIcOSlx5KTEkpkQQ1Rk6JW1Lzy7fa6IhIfG9m6ONbSfepSf+jhwlN07pLDNYFJSLLkpcVxYkEpuahy5KfGDHwcecdHez1UHKhW6iJwT5xy1LV2U1bdTVt/G0fo2yurbOVbfztH6Npo7Pzglkj4xmry0eBbnpXDdosnkpcWTlxrPlNSBo+xQnAoZLyp0ERmVc46T7T0cqWultLaNI3VtlNW3caRuoLTbh5xvHRlhTEmNIz8tnsV5OUxNm0heWjxT0+PJT4tnYoxqZ6zon6yInNLd28+xhjZKatoorWvl8ODHI3VtNLb3nNovKsLIS4unID2eFdPTmJYxkanpEylIjycnJY4JYTqH7TUVukgYau/u5XBNG4dqWiipaeVQTSuHa1o52tD+gTchs5NimJ6RwCcXTmZ6ZgLTMyZSkDGRvNS4sH3jMZCp0EVCWGdPHyU1rRysbqG4poVDJ1opPtFCxcmOU/tERRgFGROZnZ3ItQsnMTMrgRmZCUzPTCBB0yNBRb8tkRDQ3+8oP9nO+1UtHKhu5mB1CwerWyirb+OvB9zRkRFMz5zIkvxUbirMY3Z2AjOzEpmaHq8pkhChQhcJMu3dvRyobmF/ZTPvVw08Dla3nLoRlBlMTYtnzqRErls0mTmTkpgzKYGp6RNV3CFOhS4SwJraeyiqbGJfZRP7jjdTVNlEaV3bqZtDJcZGMX9yEp8rzGPe5ETmTkpiVnYC8dH6Vzsc6bcuEiCaOnooOt7E7oom9h1vYu/xJo41tJ/anpMcy/ycZK5blMP8nCTmT05iSmocZsFzrxEZWyp0EQ909faxv7KZ3eWN7K5oYnd5I6V1bae256XFsTA3mZuX5XFeTjLn5SaTNjHaw8QSDFToImPMOUfFyQ52ljey4+hJdpU3sr+yme6+fgCyEmNYnJfC310whYW5ySzMTSZV5S1nQYUu4mfdvf0UVTbx3tGTpx41LV0AxE6IYNGUFO64qIDz81I4Pz+FyclxHieWUKFCFzlHbV297Dh2knePNLCtrIFd5Y109gwcfeelxbFyRjoXTE1lSX4qcycl6oIcGTMqdJEz1NLZw/ayk2wtrWfrkQb2HW+ir98RYbAgJ5lbluVzYUEahVNTyUqK9TquhBEVusgoOrr72FbWwNuH63mntJ69FY30O5gQaZyfl8JXLp3BsmlpLJ2aqisrxVP66xMZpq/fsaeikbdK6vhzSR07jjbS3ddPVISxJD+FtZfPZMX0dJbkp+re3BJQVOgiQGVjB1uKa9lyqJa3Supp6ujBDOZPTuL2iwpYOSOdCwvSdOtXCWj665Sw1N3bz/ajDbxxoIbNxbUUn2gFYHJyLNcsyObiWZlcNDND535LUFGhS9ioa+3ijQM1vH6ghjcP1dHa1Ut0ZATLpqVxU2Eel87OZGZWgq68lKClQpeQVlLTymv7T/Da/mp2ljfi3MCaldcvzuGKuVmsnJGuaRQJGfpLlpDinGPv8SZe3lfNy0XVlNYOXE6/MDeZ/3PlbK6cl8WCnCQdhUtIUqFL0Ovvd+wsb2TT3ipe3lfN8cYOIiOMFdPTuH1lAZ+Yl01Oiq7GlNCnQpeg5JxjT0UTL+6uZOPeKqqaOomOjODiWRn801WzuXJulu6HImFHhS5BpaSmhRd2VrJhdyXHGtqZEGlcOjuTr62aw5XzskmKneB1RBHPqNAl4NW2dLFhdyXP76igqLKZCIOVMzJYe8VMrpk/ieR4lbgIqNAlQHX19vHH/TU8t6OCzcW19PU7Fk1J5pvXzee6xZPJStQ9UkSGU6FLQHm/qpn/3lbOC7uO09jew6SkWNZcMp0bl+QyKzvR63giAU2FLp5r7+7lxd2V/ObdcnaVNxIdGcFVC7K5qTCPj8/MIDJCpxiK+EKFLp4pPtHCU1uP8vyO47R09TIrK4EHr5vPjUtydYaKyFlQocu46u3r57X9J3j87TL+cqSB6MgIVi+cxG0rpnLB1FRd8CNyDnwqdDNbBfwIiAQedc49PGx7MvBrIH/we/6nc+6Xfs4qQaypvYen3z3Gk++UUdnUSW5KHPevmstNhVNIT4jxOp5ISBi10M0sEngEuAqoALaZ2Qbn3P4hu90D7HfOXW9mmcBBM3vKOdc9JqklaJTVtfHYW0f47fYKOnr6WDkjnW99agGfmJetuXERP/PlCH0ZUOKcKwUws2eAG4Chhe6ARBv4/+UEoAHo9XNWCSK7yhv5+ebDvFxUzYSICD51fg53fnwa8yYneR1NJGT5Uui5QPmQ5xXA8mH7/ATYAFQCicDfO+f6h38jM1sDrAHIz88/m7wSwJxzvFVSzyNvlPBOaT1JsVF85dIZ3L6yQGtriowDXwp9pP8vdsOeXwPsAq4AZgCvmdmbzrnmD3yRc+uB9QCFhYXDv4cEKeccf3y/hp+8UcLu8kayk2L4l9XzuGV5vtbYFBlHvvzbVgHkDXk+hYEj8aHuAB52zjmgxMyOAHOBd/2SUgLSX4v8h38spqiymby0OP79Mwv5uwtyiYnSWpsi482XQt8GzDKzacBx4Gbg1mH7HAOuBN40s2xgDlDqz6ASOJxzbC6u5fuvFrP3eBNT0+P53mcX8ZkluURFRngdTyRsjVrozrleM1sLvMLAaYuPOeeKzOzuwe3rgIeAx81sLwNTNPc75+rGMLd45N0jDXzvlQNsKztJXlqcilwkgPg0wemc2wRsGvbauiGfVwJX+zeaBJLiEy1896UD/M+BGrISY3jo0+fx94V5REepyEUChd6xktOqae7kB68V8+z2ciZGR/G1VXO4Y+U04qI1Ry4SaFToMqLOnj5+8ecj/PSNErr7+vmHlQXce8Us0nSPFZGApUKXD3DO8UrRCb6zcT8VJzu4en4231g9j4KMiV5HE5FRqNDllMO1rXx7QxFvHqpjTnYiT39pOStnZngdS0R8pEIXOnv6+MnrJfx8y2FiJ0Ty7evnc9uKqTpzRSTIqNDD3JbiWh78/T6O1rdz45Jcvr56HpmJuvuhSDBSoYepxvZu/vXF/Ty/8zjTMyZqekUkBKjQw9BLe6t48PdFNLZ3c+8VM7nn8pnETtBpiCLBToUeRk62dfPg7/fxhz1VLMhJ4ol/XMb8HN3OViRUqNDDxBsHa7j/d3toaOvmvqtmc/dlM5igNz1FQooKPcR19vTxnY37+fXWY8zJTuSx2y/kvNxkr2OJyBhQoYewA9XN3Pv0Tg7VtPLli6dx39VzNFcuEsJU6CHIOcevtx7loY3vkxw3gSfvXMbFszK9jiUiY0yFHmJau3p54Lk9/GFPFZfNyeT7n1tMeoLOKxcJByr0EHKgupmv/noHRxvauX/VXO66ZDoRESOtICgioUiFHiI27K7k/t/tITE2iqe/tJzl09O9jiQi40yFHuR6+/r5j1cOsn5LKYVTU/npbUvJSoz1OpaIeECFHsSaOnpY+/QO3jxUx20r8vnmdQu0gpBIGFOhB6mj9W384+PbOFrfzsM3LuTmZfleRxIRj6nQg9C7Rxq468ntOODJO5fzsRmaLxcRFXrQ2binin/6711MSY3jF7dfyDStJCQig1ToQeSxPx/hoY37uSA/lUf/oZCUeK3vKSJ/o0IPAs45Hn7pAD/fUso1C7L50c1LdAm/iHyICj3A9fU7/uX/7eWZbeV8YcVUvv2pBUTqYiERGYEKPYB19/bzz8/u4g97qrj3ipn881WzMVOZi8jIVOgBqrOnj68+tYPXD9TwjdVzWXPJDK8jiUiAU6EHoM6ePu568j02F9fyb585j88vn+p1JBEJAir0ADO0zHXBkIicCV0nHkC6elXmInL2VOgBorevn//1m50qcxE5az4VupmtMrODZlZiZg98xD6XmdkuMysys83+jRna+vsdX/vdHl4pOsG3rp+vMheRszLqHLqZRQKPAFcBFcA2M9vgnNs/ZJ8U4KfAKufcMTPLGqO8Icc5x7c2FPH8zuPcd9Vs7rhomteRRCRI+XKEvgwocc6VOue6gWeAG4btcyvwvHPuGIBzrsa/MUPXf71ewpNbj7LmkumsvWKm13FEJIj5Uui5QPmQ5xWDrw01G0g1sz+Z2Xtm9sWRvpGZrTGz7Wa2vba29uwSh5Bnt5fzg9eKuXFpLl+/dq4uGhKRc+JLoY/UMm7Y8yjgAuCTwDXAg2Y2+0Nf5Nx651yhc64wMzO8V6F/42ANX39+LxfPyuDhGxepzEXknPlyHnoFkDfk+RSgcoR96pxzbUCbmW0BFgPFfkkZYooqm7jnqR3MyU7kZ7ddoFWGRMQvfGmSbcAsM5tmZtHAzcCGYfv8HrjYzKLMLB5YDrzv36ihoaalky//ajvJcRP45R0XkhCja7tExD9GbRPnXK+ZrQVeASKBx5xzRWZ29+D2dc65983sZWAP0A886pzbN5bBg1FnTx9rnniPk+09/Pbuj5GdpMWcRcR/fDo8dM5tAjYNe23dsOffA77nv2ihxTnHA8/tYVd5I+tuW8p5ucleRxKREKPJ23Hyiz8f4YVdldx31WxWnTfZ6zgiEoJU6ONga2k9//elA6xaMEnnmovImFGhj7Hqpk7WPr2DqenxfO9zOj1RRMaOCn0Mdff2c8/TO2jv7uPnt11AYuwEryOJSAjTOXNj6D9fPch7R0/yX7csYVZ2otdxRCTE6Qh9jGwurmX9llI+vzyf6xfneB1HRMKACn0M1LR0ct+zu5iTnciD1833Oo6IhAlNufhZf7/jvmd309LZy9NfXkHshEivI4lImNARup899tYR3jxUxzevn89szZuLyDhSoftRSU0L//HKQT4xL4tbteqQiIwzFbqf9Pb1c9+zu5kYHcm/37hQ55uLyLjTHLqfrNt8mN0VTTxy61KyEnXTLREZfzpC94P9lc386H8Ocf3iHD65SPdpERFvqNDPUV+/4/7n9pAcF82/fmqB13FEJIxpyuUcPf52GXuPN/GTW5eQOjHa6zgiEsZ0hH4Ojjd28P1XD3L5nEw+uVBTLSLiLRX6WXLO8eAL+3AOHvr0eTqrRUQ8p0I/S5v2VvP6gRruu3o2U1LjvY4jIqJCPxvt3b18Z+N+5k9O4vaVBV7HEREB9KboWfnZnw5T1dTJj29ZQlSk/psoIoFBbXSGjtW38/MtpXz6/BwuLEjzOo6IyCkq9DP0nY37iYowHrh2ntdRREQ+QIV+BrYU1/Lq/hOsvWImk5J1eb+IBBYVuo/6+h3/tvF98tPiufPj07yOIyLyISp0Hz2/o4KDJ1r42qo5xERp0QoRCTwqdB909vTxg9eKWTQlmdXn6YpQEQlMKnQf/OrtMqqaOnng2rlEROiKUBEJTCr0UTS2d/PIGyVcNieTlTMyvI4jIvKRVOij+NmfDtPS1cv9q+Z6HUVE5LRU6KdR19rFr94p44bFOcybnOR1HBGR01Khn8b6LaV09/Zz75WzvI4iIjIqnwrdzFaZ2UEzKzGzB06z34Vm1mdmn/VfRG/UtXbxxDtl3HB+LjMyE7yOIyIyqlEL3cwigUeAa4H5wC1mNv8j9vsu8Iq/Q3rhr0fna6+Y6XUUERGf+HKEvgwocc6VOue6gWeAG0bY717gOaDGj/k8oaNzEQlGvhR6LlA+5HnF4GunmFku8Blg3em+kZmtMbPtZra9trb2TLOOGx2di0gw8qXQR7qSxg17/kPgfudc3+m+kXNuvXOu0DlXmJmZ6WPE8dXU0cNTW49y3aIcHZ2LSFDxZYGLCiBvyPMpQOWwfQqBZwbX1cwAVptZr3PuBX+EHE9P/eUobd193HXpdK+jiIicEV8KfRswy8ymAceBm4Fbh+7gnDt1+0Ezexz4QzCWeVdvH798q4yLZ2WwICfZ6zgiImdk1CkX51wvsJaBs1feB551zhWZ2d1mdvdYBxxPL+w8Tm1LF3ddMsPrKCIiZ8ynNUWdc5uATcNeG/ENUOfc7ecea/z19zvWbyll/uQkLpqZ7nUcEZEzpitFB71+oIbDtW3cdel0Bt8LEBEJKir0QevfLCU3JY5PLtT9zkUkOKnQgfermnn3SAO3rywgKlL/SEQkOKm9gCfeOUrshAg+VzjF6ygiImct7Au9qaOHF3Ye54bFuaTER3sdR0TkrIV9of/uvQo6evr4wsemeh1FROSchHWh9/c7nnynjAumpnJeri4kEpHgFtaF/mZJHWX17XxRR+ciEgLCutCfeLuMjIRoVp03yesoIiLnLGwLvaqpgzcO1nBTYR4xUZFexxEROWdhW+jP7zhOv4ObCvNG31lEJAiEZaE75/jt9nKWT0ujIGOi13FERPwiLAt9W9lJyurbdXQuIiElLAv92e3lJMREce1CvRkqIqEj7Aq9tauXjXuquG7RZOKjfbp7sIhIUAi7Qt+4p5KOnj4+p+kWEQkxYVfoz26vYEbmRJbmp3gdRUTEr8Kq0I/Vt/Pe0ZN89oI8LWIhIiEnrAr9xT2VAFy/WItYiEjoCatC37CrkgumpjIlNd7rKCIifhc2hX6wuoWDJ1r41OIcr6OIiIyJsCn0F3dXEmGwWmuGikiICotCd86xYXclF83MIDMxxus4IiJjIiwKfXdFE8ca2rl+kaZbRCR0hUWhb9hVSXRkBNfovuciEsJCvtD7+x0b91Zy6ZxMkuMmeB1HRGTMhHyh7yw/yYnmLq5bpDdDRSS0hXyhv1p0ggmRxuVzs7yOIiIypkK60J1zvFJUzYrp6STFarpFREJbSBd6SU0rZfXtXL1Ab4aKSOjzqdDNbJWZHTSzEjN7YITtnzezPYOPt81ssf+jnrlX958A4Or52R4nEREZe6MWuplFAo8A1wLzgVvMbP6w3Y4AlzrnFgEPAev9HfRsvFpUzfl5KWQnxXodRURkzPlyhL4MKHHOlTrnuoFngBuG7uCce9s5d3Lw6VZgin9jnrmqpg52VzRx9QIdnYtIePCl0HOB8iHPKwZf+yh3Ai+NtMHM1pjZdjPbXltb63vKs/DaqekWzZ+LSHjwpdBHWgnCjbij2eUMFPr9I213zq13zhU65wozMzN9T3kWXi06wfTMiczMShjTnyMiEih8KfQKYOgCnFOAyuE7mdki4FHgBudcvX/inZ2mjh62ltZzjc5uEZEw4kuhbwNmmdk0M4sGbgY2DN3BzPKB54EvOOeK/R/zzLxVUkdvv+MKXUwkImEkarQdnHO9ZrYWeAWIBB5zzhWZ2d2D29cB3wTSgZ8OrtXZ65wrHLvYp7f5YC2JsVEsyUvxKoKIyLgbtdABnHObgE3DXls35PMvAV/yb7Sz45xjy6FaLp6VQVRkSF83JSLyASHXeIdqWqlq6uSSWWP7pquISKAJuULffHDgdMhLZqvQRSS8hF6hF9cyOzuBnJQ4r6OIiIyrkCr09u5e3j3SwKU6OheRMBRShb61tJ7uvn4una3TFUUk/IRUoW8priNuQiSFBaleRxERGXchVeibi2tZMT2N2AmRXkcRERl3IVPox+rbOVLXprNbRCRshUyhv1NaB8DFszI8TiIi4o2QKfStpQ1kJEQzI1N3VxSR8BQShe6cY2tpPcunpzN4LxkRkbATEoV+tL6dqqZOVkxP9zqKiIhnQqLQt5YO3H79Yyp0EQljIVPoGQkxzMic6HUUERHPBH2hD8yfN7Bieprmz0UkrAV9oR+tb6e6WfPnIiJBX+h/nT9XoYtIuAv6Qn9H8+ciIkCQF/pfzz/X/LmISJAXell9Oyeau/jYDE23iIgEdaFvK2sAYFlBmsdJRES8F9SFvvPYSZJio3T/FhERgr7QGzk/P5WICM2fi4gEbaG3dPZw8EQLS/NTvI4iIhIQgrbQd5c34RwszddycyIiEMSFvuPYSQAW56V4G0REJEAEdaHPykogOW6C11FERAJCUBa6c46dxxo13SIiMkRQFnppXRtNHT0snZridRQRkYARlIW+4+jA/PkSHaGLiJwSnIV+rJHE2Chm6oIiEZFTfCp0M1tlZgfNrMTMHhhhu5nZjwe37zGzpf6P+jc7j53k/LwUXVAkIjLEqIVuZpHAI8C1wHzgFjObP2y3a4FZg481wM/8nPOU1q5eik+06A1REZFhfDlCXwaUOOdKnXPdwDPADcP2uQF4wg3YCqSY2WQ/ZwVgd3kj/Q6WTlWhi4gM5Uuh5wLlQ55XDL52pvtgZmvMbLuZba+trT3TrADEREVwxdwszp+SclZfLyISqnwp9JEmqt1Z7INzbr1zrtA5V5iZmelLvg8pLEjjsdsvJDleFxSJiAzlS6FXAHlDnk8BKs9iHxERGUO+FPo2YJaZTTOzaOBmYMOwfTYAXxw822UF0OScq/JzVhEROY2o0XZwzvWa2VrgFSASeMw5V2Rmdw9uXwdsAlYDJUA7cMfYRRYRkZGMWugAzrlNDJT20NfWDfncAff4N5qIiJyJoLxSVEREPkyFLiISIlToIiIhQoUuIhIibOD9TA9+sFktcPQsvzwDqPNjnGCgMYcHjTk8nMuYpzrnRrwy07NCPxdmtt05V+h1jvGkMYcHjTk8jNWYNeUiIhIiVOgiIiEiWAt9vdcBPKAxhweNOTyMyZiDcg5dREQ+LFiP0EVEZBgVuohIiAjoQg+0xanHgw9j/vzgWPeY2dtmttiLnP402piH7HehmfWZ2WfHM99Y8GXMZnaZme0ysyIz2zzeGf3Nh7/tZDN70cx2D445qO/aamaPmVmNme37iO3+7y/nXEA+GLhV72FgOhAN7AbmD9tnNfASAysmrQD+4nXucRjzSiB18PNrw2HMQ/Z7nYG7fn7W69zj8HtOAfYD+YPPs7zOPQ5j/gbw3cHPM4EGINrr7Ocw5kuApcC+j9ju9/4K5CP0gFqcepyMOmbn3NvOuZODT7cysDpUMPPl9wxwL/AcUDOe4caIL2O+FXjeOXcMwDkX7OP2ZcwOSDQzAxIYKPTe8Y3pP865LQyM4aP4vb8CudD9tjh1EDnT8dzJwH/hg9moYzazXOAzwDpCgy+/59lAqpn9yczeM7Mvjlu6seHLmH8CzGNg+cq9wP92zvWPTzxP+L2/fFrgwiN+W5w6iPg8HjO7nIFC//iYJhp7voz5h8D9zrm+gYO3oOfLmKOAC4ArgTjgHTPb6pwrHutwY8SXMV8D7AKuAGYAr5nZm8655jHO5hW/91cgF3o4Lk7t03jMbBHwKHCtc65+nLKNFV/GXAg8M1jmGcBqM+t1zr0wLgn9z9e/7TrnXBvQZmZbgMVAsBa6L2O+A3jYDUwwl5jZEWAu8O74RBx3fu+vQJ5yCcfFqUcds5nlA88DXwjio7WhRh2zc26ac67AOVcA/A74ahCXOfj2t/174GIzizKzeGA58P445/QnX8Z8jIH/I8HMsoE5QOm4phxffu+vgD1Cd2G4OLWPY/4mkA78dPCItdcF8Z3qfBxzSPFlzM65983sZWAP0A886pwb8fS3YODj7/kh4HEz28vAdMT9zrmgva2umf0GuAzIMLMK4FvABBi7/tKl/yIiISKQp1xEROQMqNBFREKECl1EJESo0EVEQoQKXUQkRKjQRURChApdRCRE/H/MH40ExkIIOgAAAABJRU5ErkJggg==",
96
  "text/plain": [
97
  "<Figure size 432x288 with 1 Axes>"
98
  ]
 
104
  }
105
  ],
106
  "source": [
107
+ "from qwenimage.sampling import TimestepDistUtils\n",
108
  "\n",
109
  "t = torch.linspace(0,1,100)\n",
110
+ "t_i = TimestepDistUtils.t_shift(\n",
111
+ " mu=torch.tensor(2.0),\n",
112
  " sigma=1.0,\n",
113
  " t=t\n",
114
  ")\n",
115
  "plt.plot(t, t_i)"
116
  ]
117
  },
118
+ {
119
+ "cell_type": "code",
120
+ "execution_count": 16,
121
+ "id": "3bc68e7c",
122
+ "metadata": {},
123
+ "outputs": [
124
+ {
125
+ "data": {
126
+ "text/plain": [
127
+ "1.0986122886681098"
128
+ ]
129
+ },
130
+ "execution_count": 16,
131
+ "metadata": {},
132
+ "output_type": "execute_result"
133
+ }
134
+ ],
135
+ "source": [
136
+ "import math\n",
137
+ "math.log(3)"
138
+ ]
139
+ },
140
+ {
141
+ "cell_type": "code",
142
+ "execution_count": 17,
143
+ "id": "facb782e",
144
+ "metadata": {},
145
+ "outputs": [
146
+ {
147
+ "data": {
148
+ "text/plain": [
149
+ "tensor([1.0000, 0.8808, 0.0000])"
150
+ ]
151
+ },
152
+ "execution_count": 17,
153
+ "metadata": {},
154
+ "output_type": "execute_result"
155
+ }
156
+ ],
157
+ "source": [
158
+ "t = torch.tensor([1, 0.5, 0])\n",
159
+ "t_i = TimestepDistUtils.t_shift(\n",
160
+ " mu=torch.tensor(2.0),\n",
161
+ " sigma=1.0,\n",
162
+ " t=t\n",
163
+ ")\n",
164
+ "t_i"
165
+ ]
166
+ },
167
+ {
168
+ "cell_type": "code",
169
+ "execution_count": null,
170
+ "id": "f006f2fa",
171
+ "metadata": {},
172
+ "outputs": [],
173
+ "source": []
174
+ },
175
  {
176
  "cell_type": "code",
177
  "execution_count": null,
scripts/train.py CHANGED
@@ -16,13 +16,14 @@ from wandml import WandAuth
16
 
17
  from qwenimage.training import run_training
18
  REQUIREMENTS_PATH = os.path.abspath("requirements.txt")
 
19
 
20
  local_modules = ["qwenimage","wandml","scripts"]
21
 
22
  ## Fal zone
23
  @fal.function(
24
  machine_type="GPU-H100",
25
- requirements=get_requirements(REQUIREMENTS_PATH),
26
  local_python_modules = local_modules,
27
  max_concurrency=16,
28
  request_timeout=6*60*60,
@@ -54,22 +55,24 @@ modalapp.image = (
54
  modal.Image.debian_slim(python_version="3.10")
55
  .apt_install("git", "ffmpeg", "libsm6", "libxext6")
56
  .pip_install_from_requirements(REQUIREMENTS_PATH)
 
 
57
  )
58
 
59
- for module in local_modules:
60
- modalapp.image.add_local_python_source(module)
61
-
62
 
63
  @modalapp.function(
64
- gpu="H100",
65
- max_containers=16,
66
- timeout=24 * 60 * 60,
67
  volumes={
68
  "/data/wand_cache": modal.Volume.from_name("FLUX_MODELS"),
69
- # "/data/Datasets": modal.Volume.from_name("Datasets", create_if_missing=True),
70
- # "/data/wand-1": modal.Volume.from_name("wand-1-train-data", create_if_missing=True),
71
  "/data/checkpoints": modal.Volume.from_name("training_checkpoints", create_if_missing=True),
72
  "/root/.cache/torch/hub/checkpoints": modal.Volume.from_name("torch_hub_checkpoints", create_if_missing=True),
 
 
 
 
 
73
  },
74
  secrets=[
75
  modal.Secret.from_name("wand-modal-gcloud-keyfile"),
@@ -156,7 +159,7 @@ def parse_args():
156
  return args
157
 
158
  if __name__ == "__main__":
159
- WandAuth(ignore=True)
160
 
161
  args = parse_args()
162
 
 
16
 
17
  from qwenimage.training import run_training
18
  REQUIREMENTS_PATH = os.path.abspath("requirements.txt")
19
+ WAND_REQUIREMENTS_PATH = os.path.abspath("scripts/wand_requirements.txt")
20
 
21
  local_modules = ["qwenimage","wandml","scripts"]
22
 
23
  ## Fal zone
24
  @fal.function(
25
  machine_type="GPU-H100",
26
+ requirements=get_requirements(REQUIREMENTS_PATH, WAND_REQUIREMENTS_PATH),
27
  local_python_modules = local_modules,
28
  max_concurrency=16,
29
  request_timeout=6*60*60,
 
55
  modal.Image.debian_slim(python_version="3.10")
56
  .apt_install("git", "ffmpeg", "libsm6", "libxext6")
57
  .pip_install_from_requirements(REQUIREMENTS_PATH)
58
+ .pip_install_from_requirements(WAND_REQUIREMENTS_PATH)
59
+ .add_local_python_source(*local_modules)
60
  )
61
 
 
 
 
62
 
63
  @modalapp.function(
64
+ gpu="B200",
65
+ max_containers=1,
66
+ timeout=4 * 60 * 60,
67
  volumes={
68
  "/data/wand_cache": modal.Volume.from_name("FLUX_MODELS"),
 
 
69
  "/data/checkpoints": modal.Volume.from_name("training_checkpoints", create_if_missing=True),
70
  "/root/.cache/torch/hub/checkpoints": modal.Volume.from_name("torch_hub_checkpoints", create_if_missing=True),
71
+
72
+ "/root/.cache/huggingface/hub": modal.Volume.from_name("hf_cache", create_if_missing=True),
73
+
74
+ "/data/regression_data": modal.Volume.from_name("regression_data"),
75
+ "/data/edit_data": modal.Volume.from_name("edit_data"),
76
  },
77
  secrets=[
78
  modal.Secret.from_name("wand-modal-gcloud-keyfile"),
 
159
  return args
160
 
161
  if __name__ == "__main__":
162
+ WandAuth()
163
 
164
  args = parse_args()
165
 
scripts/train_multi.sh ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ # nohup python scripts/train.py configs/base.yaml --where modal \
4
+ # --update configs/regression/base.yaml \
5
+ # --update configs/regression/modal-datadirs.yaml \
6
+ # --update configs/regression/mse.yaml \
7
+ # --update configs/regression/val_metrics.yaml \
8
+ # --update configs/compare/5k_steps.yaml \
9
+ # --update configs/optim/cosine.yaml \
10
+ # --update configs/regression/lo_mse.yaml \
11
+ # > logs/mse.log 2>&1 &
12
+
13
+ nohup python scripts/train.py configs/base.yaml --where modal \
14
+ --update configs/regression/base.yaml \
15
+ --update configs/regression/modal-datadirs.yaml \
16
+ --update configs/regression/mse-triplet.yaml \
17
+ --update configs/regression/val_metrics.yaml \
18
+ --update configs/compare/5k_steps.yaml \
19
+ --update configs/optim/cosine.yaml \
20
+ --update configs/regression/lo_mse.yaml \
21
+ > logs/mse-triplet.log 2>&1 &
22
+
23
+ # nohup python scripts/train.py configs/base.yaml --where modal \
24
+ # --update configs/regression/base.yaml \
25
+ # --update configs/regression/modal-datadirs.yaml \
26
+ # --update configs/regression/mse-neg-mse.yaml \
27
+ # --update configs/regression/val_metrics.yaml \
28
+ # --update configs/compare/5k_steps.yaml \
29
+ # --update configs/optim/cosine.yaml \
30
+ # --update configs/regression/lo_mse.yaml \
31
+ # > logs/mse-neg-mse.log 2>&1 &
32
+
33
+ nohup python scripts/train.py configs/base.yaml --where modal \
34
+ --update configs/regression/base.yaml \
35
+ --update configs/regression/modal-datadirs.yaml \
36
+ --update configs/regression/mse-pixel-mse.yaml \
37
+ --update configs/regression/val_metrics.yaml \
38
+ --update configs/compare/5k_steps.yaml \
39
+ --update configs/optim/cosine.yaml \
40
+ --update configs/regression/lo_mse.yaml \
41
+ > logs/mse-pixel-mse.log 2>&1 &
42
+
43
+ nohup python scripts/train.py configs/base.yaml --where modal \
44
+ --update configs/regression/base.yaml \
45
+ --update configs/regression/modal-datadirs.yaml \
46
+ --update configs/regression/mse-pixel-lpips.yaml \
47
+ --update configs/regression/val_metrics.yaml \
48
+ --update configs/compare/5k_steps.yaml \
49
+ --update configs/optim/cosine.yaml \
50
+ --update configs/regression/lo_mse.yaml \
51
+ > logs/mse-pixel-lpips.log 2>&1 &
52
+
53
+ nohup python scripts/train.py configs/base.yaml --where modal \
54
+ --update configs/regression/base.yaml \
55
+ --update configs/regression/modal-datadirs.yaml \
56
+ --update configs/regression/mse-dm.yaml \
57
+ --update configs/regression/val_metrics.yaml \
58
+ --update configs/compare/5k_steps.yaml \
59
+ --update configs/optim/cosine.yaml \
60
+ --update configs/regression/lo_mse.yaml \
61
+ > logs/mse-pixel-lpips.log 2>&1 &
scripts/wand_requirements.txt ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ torch
2
+ torchvision
3
+ torchaudio
4
+ accelerate>=1.0
5
+ django>=4.2
6
+ einops>=0.6.1
7
+ ftfy>=6.1.1
8
+ google-api-python-client>=2.86.0
9
+ google-cloud-storage>=2.10.0
10
+ google-cloud-pubsub>=2.16.0
11
+ invisible-watermark
12
+ modal-client
13
+ modal>=0.73
14
+ onnxruntime
15
+ opencv-python>=4.1.0.25
16
+ pillow
17
+ PyWavelets>=1.1.1
18
+ safetensors>=0.4.1
19
+ scipy>=1.15
20
+ sentry-sdk>=1.21.0
21
+ lion_pytorch
22
+ transformers>=4.43.2
23
+ diffusers>=0.35.0
24
+ ddtrace
25
+ fastapi>=0.111.0
26
+ msgpack
27
+ numpy>=1.24.3,<2
28
+ peft>=0.17.0
29
+ pydantic>=2.7.4
30
+ uvicorn>=0.25.0
31
+ websockets
32
+ timm
33
+ wandb>=0.17.1
34
+ sentencepiece
35
+ Jinja2
36
+ python-dotenv
37
+ prodigyopt
38
+ bitsandbytes
39
+ datasets
40
+ optimum-quanto
41
+ # triton
42
+ torchao
43
+ python-multipart
44
+ fal>=1.30.0
45
+ openai>=1.76.0
46
+ ruamel.yaml
47
+ PyYAML
48
+ scikit-image
49
+ lpips
50
+ pandas
51
+ matplotlib
52
+ clearml