NagisaNao commited on
Commit
eeb2a24
1 Parent(s): 66e69ee

test new downlaod lib system

Browse files
files_cells/notebooks/en/auto-cleaner_en.ipynb CHANGED
@@ -52,15 +52,6 @@
52
  "# ----------------------------------------------\n",
53
  "\n",
54
  "\n",
55
- "directories = {\n",
56
- " \"Images\": f\"{webui_path}/outputs\",\n",
57
- " \"Models\": f\"{webui_path}/models/Stable-diffusion/\",\n",
58
- " \"Vae\": f\"{webui_path}/models/VAE/\",\n",
59
- " \"LoRa\": f\"{webui_path}/models/Lora/\",\n",
60
- " \"ControlNet Models\": f\"{webui_path}/models/ControlNet/\"\n",
61
- "}\n",
62
- "\n",
63
- "\n",
64
  "# ==================== CSS ====================\n",
65
  "CSS = \"\"\"\n",
66
  "<style>\n",
@@ -259,6 +250,15 @@
259
  "\n",
260
  "\n",
261
  "# ================ AutoCleaner function ================\n",
 
 
 
 
 
 
 
 
 
262
  "def clean_directory(directory):\n",
263
  " deleted_files = 0\n",
264
  " for root, dirs, files in os.walk(directory):\n",
@@ -270,20 +270,6 @@
270
  " deleted_files += 1\n",
271
  " return deleted_files\n",
272
  "\n",
273
- "\n",
274
- "def get_word_variant(n, variants):\n",
275
- " unit = abs(n) % 10\n",
276
- " tens = abs(n) % 100\n",
277
- " if tens in range(11, 15):\n",
278
- " return variants[2]\n",
279
- " elif unit == 1:\n",
280
- " return variants[0]\n",
281
- " elif unit in range(2, 5):\n",
282
- " return variants[1]\n",
283
- " else:\n",
284
- " return variants[2]\n",
285
- "\n",
286
- "\n",
287
  "def update_memory_info():\n",
288
  " disk_space = psutil.disk_usage(os.getcwd())\n",
289
  " total = disk_space.total / (1024 ** 3)\n",
@@ -291,10 +277,9 @@
291
  " free = disk_space.free / (1024 ** 3)\n",
292
  "\n",
293
  " storage_info.value = f'''\n",
294
- " <div class=\"storage_info_AC\">Total storage: {total:.2f} GB <span style=\"color: #555\">|</span> Used: {used:.2f} GB <span style=\"color: #555\">|</span> Free: {free:.2f} GB</div>\n",
295
  " '''\n",
296
  "\n",
297
- "\n",
298
  "def on_execute_button_press(button):\n",
299
  " selected_cleaners = auto_cleaner_widget.value\n",
300
  " deleted_files_dict = {}\n",
@@ -312,28 +297,23 @@
312
  "\n",
313
  " update_memory_info()\n",
314
  "\n",
315
- "\n",
316
  "def on_clear_button_press(button):\n",
317
  " container.add_class(\"hide\")\n",
318
  " time.sleep(0.5)\n",
319
  " widgets.Widget.close_all()\n",
320
  "\n",
321
- "\n",
322
  "def generate_messages(deleted_files_dict):\n",
323
  " messages = []\n",
324
  " word_variants = {\n",
325
- " \"Images\": [\"Image\", \"Images\", \"Images\"],\n",
326
- " \"Models\": [\"Model\", \"Models\", \"Models\"],\n",
327
- " \"Vae\": [\"VAE\", \"VAE\", \"VAE\"],\n",
328
- " \"LoRa\": [\"LoRa\", \"LoRa\", \"LoRa\"],\n",
329
- " \"ControlNet Models\": [\"ControlNet Model\", \"ControlNet Models\", \"ControlNet Models\"]\n",
330
  " }\n",
331
- " deleted_word_variants = [\"Deleted\", \"Deleted\", \"Deleted\"]\n",
332
  " for key, value in deleted_files_dict.items():\n",
333
- " word_variant = word_variants.get(key, [\"\", \"\", \"\"])\n",
334
- " deleted_word = get_word_variant(value, deleted_word_variants)\n",
335
- " object_word = get_word_variant(value, word_variant)\n",
336
- " messages.append(f\"{deleted_word} {value} {object_word}\")\n",
337
  " return messages\n",
338
  "# ================ AutoCleaner function ================\n",
339
  "\n",
 
52
  "# ----------------------------------------------\n",
53
  "\n",
54
  "\n",
 
 
 
 
 
 
 
 
 
55
  "# ==================== CSS ====================\n",
56
  "CSS = \"\"\"\n",
57
  "<style>\n",
 
250
  "\n",
251
  "\n",
252
  "# ================ AutoCleaner function ================\n",
253
+ "directories = {\n",
254
+ " \"Images\": f\"{webui_path}/outputs\",\n",
255
+ " \"Models\": f\"{webui_path}/models/Stable-diffusion/\",\n",
256
+ " \"Vae\": f\"{webui_path}/models/VAE/\",\n",
257
+ " \"LoRa\": f\"{webui_path}/models/Lora/\",\n",
258
+ " \"ControlNet Models\": f\"{webui_path}/models/ControlNet/\"\n",
259
+ "}\n",
260
+ "\n",
261
+ "\"\"\" functions \"\"\"\n",
262
  "def clean_directory(directory):\n",
263
  " deleted_files = 0\n",
264
  " for root, dirs, files in os.walk(directory):\n",
 
270
  " deleted_files += 1\n",
271
  " return deleted_files\n",
272
  "\n",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
273
  "def update_memory_info():\n",
274
  " disk_space = psutil.disk_usage(os.getcwd())\n",
275
  " total = disk_space.total / (1024 ** 3)\n",
 
277
  " free = disk_space.free / (1024 ** 3)\n",
278
  "\n",
279
  " storage_info.value = f'''\n",
280
+ " <div class=\"storage_info_AC\">Всего: {total:.2f} GB <span style=\"color: #555\">|</span> Используется: {used:.2f} GB <span style=\"color: #555\">|</span> Свободно: {free:.2f} GB</div>\n",
281
  " '''\n",
282
  "\n",
 
283
  "def on_execute_button_press(button):\n",
284
  " selected_cleaners = auto_cleaner_widget.value\n",
285
  " deleted_files_dict = {}\n",
 
297
  "\n",
298
  " update_memory_info()\n",
299
  "\n",
 
300
  "def on_clear_button_press(button):\n",
301
  " container.add_class(\"hide\")\n",
302
  " time.sleep(0.5)\n",
303
  " widgets.Widget.close_all()\n",
304
  "\n",
 
305
  "def generate_messages(deleted_files_dict):\n",
306
  " messages = []\n",
307
  " word_variants = {\n",
308
+ " \"Images\": \"Images\",\n",
309
+ " \"Models\": \"Models\",\n",
310
+ " \"Vae\": \"Vae\",\n",
311
+ " \"LoRa\": \"LoRa\",\n",
312
+ " \"ControlNet Models\": \"ControlNet Models\"\n",
313
  " }\n",
 
314
  " for key, value in deleted_files_dict.items():\n",
315
+ " object_word = word_variants.get(key)\n",
316
+ " messages.append(f\"Deleted {value} {object_word}\")\n",
 
 
317
  " return messages\n",
318
  "# ================ AutoCleaner function ================\n",
319
  "\n",
files_cells/notebooks/en/downloading_en.ipynb CHANGED
@@ -191,28 +191,32 @@
191
  " else:\n",
192
  " !{'for dir in /home/studio-lab-user/content/sdw/extensions/*/; do cd \\\"$dir\\\" && git fetch origin && git pull; done'}\n",
193
  "\n",
194
- " # My Chinese friend, you broke the images again in the latest update... >W<'\n",
195
- " %cd {webui_path}/extensions/Encrypt-Image\n",
196
- " !git reset --hard 376358d8854472b9ea50e9fc8800367d1ca51137 # stable commit :3\n",
197
- "\n",
198
- " !cd {webui_path}/repositories/stable-diffusion-stability-ai && git restore .\n",
199
  " del cap\n",
200
  " print(f\"\\r✨ {action} Completed!\")\n",
201
  "\n",
202
  "\n",
203
  "# === FIXING ERRORS ===\n",
204
- "# --- Encrypt-Image ---\n",
205
- "!sed -i '9,37d' {webui_path}/extensions/Encrypt-Image/javascript/encrypt_images_info.js\n",
206
  "\n",
207
- "# --- SageMaker ---\n",
208
- "if env == \"SageMaker Studio Lab\":\n",
209
- " with capture.capture_output() as cap:\n",
210
- " # --- SuperMerger Remove ---\n",
211
- " if os.path.exists(f\"{webui_path}/extensions/supermerger\"):\n",
212
- " !rm -rf {webui_path}/extensions/supermerger\n",
213
- " # --- Launch (Style) ---\n",
214
- " !wget -O {webui_path}/modules/styles.py https://huggingface.co/NagisaNao/fast_repo/resolve/main/sagemaker/fixing/webui/styles.py\n",
215
- " del cap\n",
 
 
 
 
 
 
 
216
  "\n",
217
  "\n",
218
  "## Version switching\n",
 
191
  " else:\n",
192
  " !{'for dir in /home/studio-lab-user/content/sdw/extensions/*/; do cd \\\"$dir\\\" && git fetch origin && git pull; done'}\n",
193
  "\n",
194
+ " # My Chinese friend, you broke the images again in the latest update... >W<'\n",
195
+ " %cd {webui_path}/extensions/Encrypt-Image\n",
196
+ " !git reset --hard 376358d8854472b9ea50e9fc8800367d1ca51137 # stable commit :3\n",
 
 
197
  " del cap\n",
198
  " print(f\"\\r✨ {action} Completed!\")\n",
199
  "\n",
200
  "\n",
201
  "# === FIXING ERRORS ===\n",
202
+ "anxety_repos = \"https://huggingface.co/NagisaNao/fast_repo/resolve/main\"\n",
 
203
  "\n",
204
+ "with capture.capture_output() as cap:\n",
205
+ " # --- Encrypt-Image ---\n",
206
+ " !sed -i '9,37d' {webui_path}/extensions/Encrypt-Image/javascript/encrypt_images_info.js\n",
207
+ "\n",
208
+ " # --- Additional-Networks ---\n",
209
+ " !wget -O {webui_path}/extensions/additional-networks/scripts/metadata_editor.py {anxety_repos}/extensions/Additional-Networks/fix/metadata_editor.py\n",
210
+ "\n",
211
+ " # --= SageMaker =--\n",
212
+ " if env == \"SageMaker Studio Lab\":\n",
213
+ " with capture.capture_output() as cap:\n",
214
+ " # --- SuperMerger Remove ---\n",
215
+ " if os.path.exists(f\"{webui_path}/extensions/supermerger\"):\n",
216
+ " !rm -rf {webui_path}/extensions/supermerger\n",
217
+ " # --- Launch (Style) ---\n",
218
+ " !wget -O {webui_path}/modules/styles.py {anxety_repos}/sagemaker/fixing/webui/styles.py\n",
219
+ "del cap\n",
220
  "\n",
221
  "\n",
222
  "## Version switching\n",
files_cells/notebooks/en/widgets_en.ipynb CHANGED
@@ -48,7 +48,7 @@
48
  "\n",
49
  "\n",
50
  "# ==================== CSS JS ====================\n",
51
- "# custom background images V1.1\n",
52
  "import argparse\n",
53
  "parser = argparse.ArgumentParser(description='This script processes an background image.')\n",
54
  "parser.add_argument('-i', '--image', type=str, help='URL of the image to process', metavar='')\n",
@@ -57,8 +57,9 @@
57
  "parser.add_argument('-y', type=int, help='Y coordinate for the image in px', metavar='', default=0)\n",
58
  "parser.add_argument('-x', type=int, help='X coordinate for the image in px', metavar='', default=0)\n",
59
  "parser.add_argument('-s', '--scale', type=int, help='Scale image in %%', metavar='', default=100)\n",
60
- "parser.add_argument('-m', '--mode', type=str, help='Specify \"no-repeat\" so that the image pattern is not repeated.', metavar='', default='repeat')\n",
61
- "parser.add_argument('-t', '--transparent', action='store_true', help='Makes input/selection fields 35% more transparent')\n",
 
62
  "args = parser.parse_args()\n",
63
  "\"\"\"---\"\"\"\n",
64
  "url_img = args.image\n",
@@ -67,16 +68,18 @@
67
  "y_img = args.y\n",
68
  "x_img = args.x\n",
69
  "scale_img = args.scale\n",
70
- "mode_img = args.mode\n",
71
  "\n",
72
- "# WTF COLAB - WHAT THE FUCK IS THE DIFFERENCE OF 40 PIXELS!?!?!?\n",
73
- "fix_heigh_img = \"-815px\"\n",
74
- "if env == \"Google Colab\":\n",
75
- " fix_heigh_img = \"-775px\"\n",
76
- "# transperent fields\n",
77
- "t_bg_alpha = \"1\"\n",
78
- "if args.transparent:\n",
79
- " t_bg_alpha = \"0.65\"\n",
 
 
80
  "\n",
81
  "container_background = f'''\n",
82
  "<style>\n",
@@ -94,6 +97,7 @@
94
  " /* for fields */\n",
95
  " --bg-field-color: rgba(28, 28, 28, {t_bg_alpha}); /* -> #1c1c1c */\n",
96
  " --bg-field-color-hover: rgba(38, 38, 38, {t_bg_alpha}); /* -> #262626; */\n",
 
97
  "}}\n",
98
  "'''\n",
99
  "\n",
@@ -220,6 +224,7 @@
220
  " border-radius: 10px;\n",
221
  " box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5);\n",
222
  " transition: all 0.3s ease-in-out;\n",
 
223
  "}\n",
224
  "\n",
225
  ".widget-dropdown select:focus,\n",
@@ -329,7 +334,7 @@
329
  "}\n",
330
  "\n",
331
  "\n",
332
- "/* Popup style of `FAQ` window */\n",
333
  "\n",
334
  ".info {\n",
335
  " position: absolute;\n",
@@ -593,7 +598,7 @@
593
  "def save_settings():\n",
594
  " settings = {key: globals()[f\"{key}_widget\"].value for key in settings_keys}\n",
595
  " with open(SETTINGS_FILE, 'w') as f:\n",
596
- " json.dump(settings, f)\n",
597
  "\n",
598
  "def load_settings():\n",
599
  " if os.path.exists(SETTINGS_FILE):\n",
 
48
  "\n",
49
  "\n",
50
  "# ==================== CSS JS ====================\n",
51
+ "# custom background images V1.5\n",
52
  "import argparse\n",
53
  "parser = argparse.ArgumentParser(description='This script processes an background image.')\n",
54
  "parser.add_argument('-i', '--image', type=str, help='URL of the image to process', metavar='')\n",
 
57
  "parser.add_argument('-y', type=int, help='Y coordinate for the image in px', metavar='', default=0)\n",
58
  "parser.add_argument('-x', type=int, help='X coordinate for the image in px', metavar='', default=0)\n",
59
  "parser.add_argument('-s', '--scale', type=int, help='Scale image in %%', metavar='', default=100)\n",
60
+ "parser.add_argument('-m', '--mode', action='store_true', help='Removes repetitive image tiles')\n",
61
+ "parser.add_argument('-t', '--transparent', action='store_true', help='Makes input/selection fields 35%% more transparent')\n",
62
+ "parser.add_argument('-bf', '--blur-fields', type=str, help='Background blur level for input/selection fields', metavar='', default=2)\n",
63
  "args = parser.parse_args()\n",
64
  "\"\"\"---\"\"\"\n",
65
  "url_img = args.image\n",
 
68
  "y_img = args.y\n",
69
  "x_img = args.x\n",
70
  "scale_img = args.scale\n",
71
+ "blur_fields = args.blur_fields\n",
72
  "\n",
73
+ "## ---\n",
74
+ "\"\"\" WTF COLAB - WHAT THE FUCK IS THE DIFFERENCE OF 35 PIXELS!?!?!? \"\"\"\n",
75
+ "fix_heigh_img = \"-810px\" if env != \"Google Colab\" else \"-775px\"\n",
76
+ "\n",
77
+ "\"\"\" transperent fields \"\"\"\n",
78
+ "t_bg_alpha = \"1\" if not args.transparent else \"0.65\"\n",
79
+ "\n",
80
+ "\"\"\" mode img - repeats \"\"\"\n",
81
+ "mode_img = \"repeat\" if not args.mode else \"no-repeat\"\n",
82
+ "## ---\n",
83
  "\n",
84
  "container_background = f'''\n",
85
  "<style>\n",
 
97
  " /* for fields */\n",
98
  " --bg-field-color: rgba(28, 28, 28, {t_bg_alpha}); /* -> #1c1c1c */\n",
99
  " --bg-field-color-hover: rgba(38, 38, 38, {t_bg_alpha}); /* -> #262626; */\n",
100
+ " --bg-field-blur-level: {blur_fields}px;\n",
101
  "}}\n",
102
  "'''\n",
103
  "\n",
 
224
  " border-radius: 10px;\n",
225
  " box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5);\n",
226
  " transition: all 0.3s ease-in-out;\n",
227
+ " backdrop-filter: blur(var(--bg-field-blur-level));\n",
228
  "}\n",
229
  "\n",
230
  ".widget-dropdown select:focus,\n",
 
334
  "}\n",
335
  "\n",
336
  "\n",
337
+ "/* Popup style of `INFO` window */\n",
338
  "\n",
339
  ".info {\n",
340
  " position: absolute;\n",
 
598
  "def save_settings():\n",
599
  " settings = {key: globals()[f\"{key}_widget\"].value for key in settings_keys}\n",
600
  " with open(SETTINGS_FILE, 'w') as f:\n",
601
+ " json.dump(settings, f, indent=2)\n",
602
  "\n",
603
  "def load_settings():\n",
604
  " if os.path.exists(SETTINGS_FILE):\n",
files_cells/notebooks/ru/auto-cleaner_ru.ipynb CHANGED
@@ -52,15 +52,6 @@
52
  "# ----------------------------------------------\n",
53
  "\n",
54
  "\n",
55
- "directories = {\n",
56
- " \"Изображения\": f\"{webui_path}/outputs\",\n",
57
- " \"Модели\": f\"{webui_path}/models/Stable-diffusion/\",\n",
58
- " \"Vae\": f\"{webui_path}/models/VAE/\",\n",
59
- " \"LoRa\": f\"{webui_path}/models/Lora/\",\n",
60
- " \"ControlNet Модели\": f\"{webui_path}/models/ControlNet/\"\n",
61
- "}\n",
62
- "\n",
63
- "\n",
64
  "# ==================== CSS ====================\n",
65
  "CSS_AC = \"\"\"\n",
66
  "<style>\n",
@@ -259,6 +250,15 @@
259
  "\n",
260
  "\n",
261
  "# ================ AutoCleaner function ================\n",
 
 
 
 
 
 
 
 
 
262
  "def clean_directory(directory):\n",
263
  " deleted_files = 0\n",
264
  " for root, dirs, files in os.walk(directory):\n",
@@ -270,20 +270,6 @@
270
  " deleted_files += 1\n",
271
  " return deleted_files\n",
272
  "\n",
273
- "\n",
274
- "def get_word_variant(n, variants):\n",
275
- " unit = abs(n) % 10\n",
276
- " tens = abs(n) % 100\n",
277
- " if tens in range(11, 15):\n",
278
- " return variants[2]\n",
279
- " elif unit == 1:\n",
280
- " return variants[0]\n",
281
- " elif unit in range(2, 5):\n",
282
- " return variants[1]\n",
283
- " else:\n",
284
- " return variants[2]\n",
285
- "\n",
286
- "\n",
287
  "def update_memory_info():\n",
288
  " disk_space = psutil.disk_usage(os.getcwd())\n",
289
  " total = disk_space.total / (1024 ** 3)\n",
@@ -294,7 +280,6 @@
294
  " <div class=\"storage_info_AC\">Всего: {total:.2f} GB <span style=\"color: #555\">|</span> Используется: {used:.2f} GB <span style=\"color: #555\">|</span> Свободно: {free:.2f} GB</div>\n",
295
  " '''\n",
296
  "\n",
297
- "\n",
298
  "def on_execute_button_press(button):\n",
299
  " selected_cleaners = auto_cleaner_widget.value\n",
300
  " deleted_files_dict = {}\n",
@@ -312,28 +297,23 @@
312
  "\n",
313
  " update_memory_info()\n",
314
  "\n",
315
- "\n",
316
  "def on_clear_button_press(button):\n",
317
  " container.add_class(\"hide\")\n",
318
  " time.sleep(0.5)\n",
319
  " widgets.Widget.close_all()\n",
320
  "\n",
321
- "\n",
322
  "def generate_messages(deleted_files_dict):\n",
323
  " messages = []\n",
324
  " word_variants = {\n",
325
- " \"Изображения\": [\"Изображение\", \"Изображения\", \"Изображений\"],\n",
326
- " \"Модели\": [\"Модель\", \"Модели\", \"Моделей\"],\n",
327
- " \"Vae\": [\"VAE\", \"VAE\", \"VAE\"],\n",
328
- " \"LoRa\": [\"LoRa\", \"LoRa\", \"LoRa\"],\n",
329
- " \"ControlNet Модели\": [\"ControlNet Модель\", \"ControlNet Модели\", \"ControlNet Моделей\"]\n",
330
  " }\n",
331
- " deleted_word_variants = [\"Удалена\", \"Удалены\", \"Удалено\"]\n",
332
  " for key, value in deleted_files_dict.items():\n",
333
- " word_variant = word_variants.get(key, [\"\", \"\", \"\"])\n",
334
- " deleted_word = get_word_variant(value, deleted_word_variants)\n",
335
- " object_word = get_word_variant(value, word_variant)\n",
336
- " messages.append(f\"{deleted_word} {value} {object_word}\")\n",
337
  " return messages\n",
338
  "# ================ AutoCleaner function ================\n",
339
  "\n",
 
52
  "# ----------------------------------------------\n",
53
  "\n",
54
  "\n",
 
 
 
 
 
 
 
 
 
55
  "# ==================== CSS ====================\n",
56
  "CSS_AC = \"\"\"\n",
57
  "<style>\n",
 
250
  "\n",
251
  "\n",
252
  "# ================ AutoCleaner function ================\n",
253
+ "directories = {\n",
254
+ " \"Изображения\": f\"{webui_path}/outputs\",\n",
255
+ " \"Модели\": f\"{webui_path}/models/Stable-diffusion/\",\n",
256
+ " \"Vae\": f\"{webui_path}/models/VAE/\",\n",
257
+ " \"LoRa\": f\"{webui_path}/models/Lora/\",\n",
258
+ " \"ControlNet Модели\": f\"{webui_path}/models/ControlNet/\"\n",
259
+ "}\n",
260
+ "\n",
261
+ "\"\"\" functions \"\"\"\n",
262
  "def clean_directory(directory):\n",
263
  " deleted_files = 0\n",
264
  " for root, dirs, files in os.walk(directory):\n",
 
270
  " deleted_files += 1\n",
271
  " return deleted_files\n",
272
  "\n",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
273
  "def update_memory_info():\n",
274
  " disk_space = psutil.disk_usage(os.getcwd())\n",
275
  " total = disk_space.total / (1024 ** 3)\n",
 
280
  " <div class=\"storage_info_AC\">Всего: {total:.2f} GB <span style=\"color: #555\">|</span> Используется: {used:.2f} GB <span style=\"color: #555\">|</span> Свободно: {free:.2f} GB</div>\n",
281
  " '''\n",
282
  "\n",
 
283
  "def on_execute_button_press(button):\n",
284
  " selected_cleaners = auto_cleaner_widget.value\n",
285
  " deleted_files_dict = {}\n",
 
297
  "\n",
298
  " update_memory_info()\n",
299
  "\n",
 
300
  "def on_clear_button_press(button):\n",
301
  " container.add_class(\"hide\")\n",
302
  " time.sleep(0.5)\n",
303
  " widgets.Widget.close_all()\n",
304
  "\n",
 
305
  "def generate_messages(deleted_files_dict):\n",
306
  " messages = []\n",
307
  " word_variants = {\n",
308
+ " \"Изображения\": \"Изображений\",\n",
309
+ " \"Модели\": \"Моделей\",\n",
310
+ " \"Vae\": \"Vae\",\n",
311
+ " \"LoRa\": \"LoRa\",\n",
312
+ " \"ControlNet Модели\": \"ControlNet Моделей\"\n",
313
  " }\n",
 
314
  " for key, value in deleted_files_dict.items():\n",
315
+ " object_word = word_variants.get(key)\n",
316
+ " messages.append(f\"Удалено {value} {object_word}\")\n",
 
 
317
  " return messages\n",
318
  "# ================ AutoCleaner function ================\n",
319
  "\n",
files_cells/notebooks/ru/downloading_ru.ipynb CHANGED
@@ -60,43 +60,64 @@
60
  " clear_output()\n",
61
  "\n",
62
  "\n",
63
- "# ================ LIBRARIES ================\n",
64
  "flag_file = f\"{root_path}/libraries_installed.txt\"\n",
65
  "\n",
66
  "if not os.path.exists(flag_file):\n",
67
- " # automatic1111 update webui to 1.8.0\n",
68
- " xformers = \"xformers==0.0.23.post1 triton==2.1.0\"\n",
69
- " torch = \"torch==2.1.2+cu121 torchvision==0.16.2+cu121 torchaudio==2.1.2 --extra-index-url https://download.pytorch.org/whl/cu121\"\n",
70
  "\n",
71
- " print(\"💿 Установка библиотек, это займет какое-то время...\", end='')\n",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  " with capture.capture_output() as cap:\n",
73
- " !pip install -U gdown\n",
74
- " !apt-get update && apt -y install aria2\n",
75
- " !npm install -g localtunnel &> /dev/null\n",
76
  " !curl -s -OL https://github.com/DEX-1101/sd-webui-notebook/raw/main/res/new_tunnel --output-dir {root_path}\n",
77
  " !curl -s -Lo /usr/bin/cl https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 && chmod +x /usr/bin/cl\n",
78
- " !pip install insightface\n",
79
  " !curl -sLO https://github.com/openziti/zrok/releases/download/v0.4.23/zrok_0.4.23_linux_amd64.tar.gz && tar -xzf zrok_0.4.23_linux_amd64.tar.gz -C /usr/bin && rm -f zrok_0.4.23_linux_amd64.tar.gz\n",
 
 
80
  "\n",
81
- " if env == \"SageMaker Studio Lab\":\n",
82
- " %pip install -q opencv-python-headless huggingface-hub\n",
83
- " %conda update -q -n base conda\n",
84
- " %conda install -q -y aria2\n",
85
- " %conda install -q -y glib\n",
86
- " !pip install tensorflow\n",
87
- "\n",
88
- " !wget -P /home/studio-lab-user https://huggingface.co/NagisaNao/fast_repo/resolve/main/sagemaker/FULL_DELETED_NOTEBOOK.ipynb\n",
89
  "\n",
90
- " if env == \"Google Colab\":\n",
91
- " !pip install xformers==0.0.25 --no-deps\n",
92
- " else:\n",
93
- " !pip install -q {torch} -U\n",
94
- " !pip install -q {xformers} -U\n",
95
  "\n",
96
- " with open(flag_file, \"w\") as f:\n",
97
- " f.write(\"hey ;3\")\n",
98
- " del cap\n",
99
- " print(\"\\r🍪 Библиотеки установлены!\" + \" \"*35)\n",
100
  " time.sleep(2)\n",
101
  " clear_output()\n",
102
  "\n",
@@ -191,28 +212,32 @@
191
  " else:\n",
192
  " !{'for dir in /home/studio-lab-user/content/sdw/extensions/*/; do cd \\\"$dir\\\" && git fetch origin && git pull; done'}\n",
193
  "\n",
194
- " # My Chinese friend, you broke the images again in the latest update... >W<'\n",
195
- " %cd {webui_path}/extensions/Encrypt-Image\n",
196
- " !git reset --hard 376358d8854472b9ea50e9fc8800367d1ca51137 # stable commit :3\n",
197
- "\n",
198
- " !cd {webui_path}/repositories/stable-diffusion-stability-ai && git restore .\n",
199
  " del cap\n",
200
  " print(f\"\\r✨ {action} Завершено!\")\n",
201
  "\n",
202
  "\n",
203
  "# === FIXING ERRORS ===\n",
204
- "# --- Encrypt-Image ---\n",
205
- "!sed -i '9,37d' {webui_path}/extensions/Encrypt-Image/javascript/encrypt_images_info.js\n",
206
  "\n",
207
- "# --- SageMaker ---\n",
208
- "if env == \"SageMaker Studio Lab\":\n",
209
- " with capture.capture_output() as cap:\n",
210
- " # --- SuperMerger Remove ---\n",
211
- " if os.path.exists(f\"{webui_path}/extensions/supermerger\"):\n",
212
- " !rm -rf {webui_path}/extensions/supermerger\n",
213
- " # --- Launch (Style) ---\n",
214
- " !wget -O {webui_path}/modules/styles.py https://huggingface.co/NagisaNao/fast_repo/resolve/main/sagemaker/fixing/webui/styles.py\n",
215
- " del cap\n",
 
 
 
 
 
 
 
216
  "\n",
217
  "\n",
218
  "## Version switching\n",
 
60
  " clear_output()\n",
61
  "\n",
62
  "\n",
63
+ "# ================ LIBRARIES V2 ================\n",
64
  "flag_file = f\"{root_path}/libraries_installed.txt\"\n",
65
  "\n",
66
  "if not os.path.exists(flag_file):\n",
67
+ " print(\"💿 Установка библиотек, это займет какое-то время...\\n\")\n",
 
 
68
  "\n",
69
+ " install_lib = {\n",
70
+ " \"gdown\": \"pip install -U gdown\",\n",
71
+ " \"aria2\": \"apt-get update && apt -y install aria2\",\n",
72
+ " \"localtunnel\": \"npm install -g localtunnel &> /dev/null\",\n",
73
+ " \"insightface\": \"pip install insightface\",\n",
74
+ " }\n",
75
+ "\n",
76
+ " # Dictionary of additional libraries specific to certain environments\n",
77
+ " additional_libs = {\n",
78
+ " \"Google Colab\": {\n",
79
+ " \"xformers\": \"pip install xformers==0.0.25 --no-deps\"\n",
80
+ " },\n",
81
+ " \"Kaggle\": {\n",
82
+ " \"xformers\": \"pip install -q xformers==0.0.23.post1 triton==2.1.0\",\n",
83
+ " \"torch\": \"pip install -q torch==2.1.2+cu121 --extra-index-url https://download.pytorch.org/whl/cu121\"\n",
84
+ " },\n",
85
+ " \"SageMaker Studio Lab\": {\n",
86
+ " \"opencv\": \"pip install -q opencv-python-headless\",\n",
87
+ " \"huggingface\": \"pip install -q huggingface-hub\",\n",
88
+ " \"conda_update\": \"conda update -q -n base conda\",\n",
89
+ " \"conda_aria2\": \"conda install -q -y aria2\",\n",
90
+ " \"conda_glib\": \"conda install -q -y glib\",\n",
91
+ " \"tensorflow\": \"pip install tensorflow\",\n",
92
+ " \"xformers\": \"pip install -q xformers==0.0.23.post1 triton==2.1.0\",\n",
93
+ " \"torch\": \"pip install -q torch==2.1.2+cu121 torchvision==0.16.2+cu121 torchaudio==2.1.2 --extra-index-url https://download.pytorch.org/whl/cu121\"\n",
94
+ " }\n",
95
+ " }\n",
96
+ "\n",
97
+ " # If the current environment has additional libraries, update the install_lib dictionary\n",
98
+ " if env in additional_libs:\n",
99
+ " install_lib.update(additional_libs[env])\n",
100
+ "\n",
101
+ " # Loop through libraries and execute install commands\n",
102
+ " for index, (package, install_cmd) in enumerate(install_lib.items(), start=1):\n",
103
+ " print(f\"\\r\\033[96m[{index}/{len(install_lib)}] \\033[32m>>\\033[96m Installing \\033[33m{package}\\033[96m...\\033[0m\", end='')\n",
104
+ " subprocess.run(install_cmd, shell=True, capture_output=True)\n",
105
+ "\n",
106
+ " # Additional manual installation steps for specific packages\n",
107
  " with capture.capture_output() as cap:\n",
 
 
 
108
  " !curl -s -OL https://github.com/DEX-1101/sd-webui-notebook/raw/main/res/new_tunnel --output-dir {root_path}\n",
109
  " !curl -s -Lo /usr/bin/cl https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 && chmod +x /usr/bin/cl\n",
 
110
  " !curl -sLO https://github.com/openziti/zrok/releases/download/v0.4.23/zrok_0.4.23_linux_amd64.tar.gz && tar -xzf zrok_0.4.23_linux_amd64.tar.gz -C /usr/bin && rm -f zrok_0.4.23_linux_amd64.tar.gz\n",
111
+ " !wget -P /home/studio-lab-user https://huggingface.co/NagisaNao/fast_repo/resolve/main/sagemaker/FULL_DELETED_NOTEBOOK.ipynb\n",
112
+ " del cap\n",
113
  "\n",
114
+ " clear_output()\n",
 
 
 
 
 
 
 
115
  "\n",
116
+ " # save file install lib\n",
117
+ " with open(flag_file, \"w\") as f:\n",
118
+ " f.write(\">W<'\")\n",
 
 
119
  "\n",
120
+ " print(\"🍪 Библиотеки установлены!\" + \" \"*35)\n",
 
 
 
121
  " time.sleep(2)\n",
122
  " clear_output()\n",
123
  "\n",
 
212
  " else:\n",
213
  " !{'for dir in /home/studio-lab-user/content/sdw/extensions/*/; do cd \\\"$dir\\\" && git fetch origin && git pull; done'}\n",
214
  "\n",
215
+ " # My Chinese friend, you broke the images again in the latest update... >W<'\n",
216
+ " %cd {webui_path}/extensions/Encrypt-Image\n",
217
+ " !git reset --hard 376358d8854472b9ea50e9fc8800367d1ca51137 # stable commit :3\n",
 
 
218
  " del cap\n",
219
  " print(f\"\\r✨ {action} Завершено!\")\n",
220
  "\n",
221
  "\n",
222
  "# === FIXING ERRORS ===\n",
223
+ "anxety_repos = \"https://huggingface.co/NagisaNao/fast_repo/resolve/main\"\n",
 
224
  "\n",
225
+ "with capture.capture_output() as cap:\n",
226
+ " # --- Encrypt-Image ---\n",
227
+ " !sed -i '9,37d' {webui_path}/extensions/Encrypt-Image/javascript/encrypt_images_info.js\n",
228
+ "\n",
229
+ " # --- Additional-Networks ---\n",
230
+ " !wget -O {webui_path}/extensions/additional-networks/scripts/metadata_editor.py {anxety_repos}/extensions/Additional-Networks/fix/metadata_editor.py\n",
231
+ "\n",
232
+ " # --= SageMaker =--\n",
233
+ " if env == \"SageMaker Studio Lab\":\n",
234
+ " with capture.capture_output() as cap:\n",
235
+ " # --- SuperMerger Remove ---\n",
236
+ " if os.path.exists(f\"{webui_path}/extensions/supermerger\"):\n",
237
+ " !rm -rf {webui_path}/extensions/supermerger\n",
238
+ " # --- Launch (Style) ---\n",
239
+ " !wget -O {webui_path}/modules/styles.py {anxety_repos}/sagemaker/fixing/webui/styles.py\n",
240
+ "del cap\n",
241
  "\n",
242
  "\n",
243
  "## Version switching\n",
files_cells/notebooks/ru/widgets_ru.ipynb CHANGED
@@ -48,7 +48,7 @@
48
  "\n",
49
  "\n",
50
  "# ==================== CSS JS ====================\n",
51
- "# custom background images V1.1\n",
52
  "import argparse\n",
53
  "parser = argparse.ArgumentParser(description='This script processes an background image.')\n",
54
  "parser.add_argument('-i', '--image', type=str, help='URL of the image to process', metavar='')\n",
@@ -57,8 +57,9 @@
57
  "parser.add_argument('-y', type=int, help='Y coordinate for the image in px', metavar='', default=0)\n",
58
  "parser.add_argument('-x', type=int, help='X coordinate for the image in px', metavar='', default=0)\n",
59
  "parser.add_argument('-s', '--scale', type=int, help='Scale image in %%', metavar='', default=100)\n",
60
- "parser.add_argument('-m', '--mode', type=str, help='Specify \"no-repeat\" so that the image pattern is not repeated.', metavar='', default='repeat')\n",
61
- "parser.add_argument('-t', '--transparent', action='store_true', help='Makes input/selection fields 35% more transparent')\n",
 
62
  "args = parser.parse_args()\n",
63
  "\"\"\"---\"\"\"\n",
64
  "url_img = args.image\n",
@@ -67,16 +68,18 @@
67
  "y_img = args.y\n",
68
  "x_img = args.x\n",
69
  "scale_img = args.scale\n",
70
- "mode_img = args.mode\n",
71
  "\n",
72
- "# WTF COLAB - WHAT THE FUCK IS THE DIFFERENCE OF 40 PIXELS!?!?!?\n",
73
- "fix_heigh_img = \"-815px\"\n",
74
- "if env == \"Google Colab\":\n",
75
- " fix_heigh_img = \"-775px\"\n",
76
- "# transperent fields\n",
77
- "t_bg_alpha = \"1\"\n",
78
- "if args.transparent:\n",
79
- " t_bg_alpha = \"0.65\"\n",
 
 
80
  "\n",
81
  "container_background = f'''\n",
82
  "<style>\n",
@@ -94,6 +97,7 @@
94
  " /* for fields */\n",
95
  " --bg-field-color: rgba(28, 28, 28, {t_bg_alpha}); /* -> #1c1c1c */\n",
96
  " --bg-field-color-hover: rgba(38, 38, 38, {t_bg_alpha}); /* -> #262626; */\n",
 
97
  "}}\n",
98
  "'''\n",
99
  "\n",
@@ -220,6 +224,7 @@
220
  " border-radius: 10px;\n",
221
  " box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5);\n",
222
  " transition: all 0.3s ease-in-out;\n",
 
223
  "}\n",
224
  "\n",
225
  ".widget-dropdown select:focus,\n",
@@ -329,7 +334,7 @@
329
  "}\n",
330
  "\n",
331
  "\n",
332
- "/* Popup style of `FAQ` window */\n",
333
  "\n",
334
  ".info {\n",
335
  " position: absolute;\n",
@@ -593,7 +598,7 @@
593
  "def save_settings():\n",
594
  " settings = {key: globals()[f\"{key}_widget\"].value for key in settings_keys}\n",
595
  " with open(SETTINGS_FILE, 'w') as f:\n",
596
- " json.dump(settings, f)\n",
597
  "\n",
598
  "def load_settings():\n",
599
  " if os.path.exists(SETTINGS_FILE):\n",
 
48
  "\n",
49
  "\n",
50
  "# ==================== CSS JS ====================\n",
51
+ "# custom background images V1.5\n",
52
  "import argparse\n",
53
  "parser = argparse.ArgumentParser(description='This script processes an background image.')\n",
54
  "parser.add_argument('-i', '--image', type=str, help='URL of the image to process', metavar='')\n",
 
57
  "parser.add_argument('-y', type=int, help='Y coordinate for the image in px', metavar='', default=0)\n",
58
  "parser.add_argument('-x', type=int, help='X coordinate for the image in px', metavar='', default=0)\n",
59
  "parser.add_argument('-s', '--scale', type=int, help='Scale image in %%', metavar='', default=100)\n",
60
+ "parser.add_argument('-m', '--mode',action='store_true', help='Removes repetitive image tiles')\n",
61
+ "parser.add_argument('-t', '--transparent', action='store_true', help='Makes input/selection fields 35%% more transparent')\n",
62
+ "parser.add_argument('-bf', '--blur-fields', type=str, help='Background blur level for input/selection fields', metavar='', default=2)\n",
63
  "args = parser.parse_args()\n",
64
  "\"\"\"---\"\"\"\n",
65
  "url_img = args.image\n",
 
68
  "y_img = args.y\n",
69
  "x_img = args.x\n",
70
  "scale_img = args.scale\n",
71
+ "blur_fields = args.blur_fields\n",
72
  "\n",
73
+ "## ---\n",
74
+ "\"\"\" WTF COLAB - WHAT THE FUCK IS THE DIFFERENCE OF 35 PIXELS!?!?!? \"\"\"\n",
75
+ "fix_heigh_img = \"-810px\" if env != \"Google Colab\" else \"-775px\"\n",
76
+ "\n",
77
+ "\"\"\" transperent fields \"\"\"\n",
78
+ "t_bg_alpha = \"1\" if not args.transparent else \"0.65\"\n",
79
+ "\n",
80
+ "\"\"\" mode img - repeats \"\"\"\n",
81
+ "mode_img = \"repeat\" if not args.mode else \"no-repeat\"\n",
82
+ "## ---\n",
83
  "\n",
84
  "container_background = f'''\n",
85
  "<style>\n",
 
97
  " /* for fields */\n",
98
  " --bg-field-color: rgba(28, 28, 28, {t_bg_alpha}); /* -> #1c1c1c */\n",
99
  " --bg-field-color-hover: rgba(38, 38, 38, {t_bg_alpha}); /* -> #262626; */\n",
100
+ " --bg-field-blur-level: {blur_fields}px;\n",
101
  "}}\n",
102
  "'''\n",
103
  "\n",
 
224
  " border-radius: 10px;\n",
225
  " box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5);\n",
226
  " transition: all 0.3s ease-in-out;\n",
227
+ " backdrop-filter: blur(var(--bg-field-blur-level));\n",
228
  "}\n",
229
  "\n",
230
  ".widget-dropdown select:focus,\n",
 
334
  "}\n",
335
  "\n",
336
  "\n",
337
+ "/* Popup style of `INFO` window */\n",
338
  "\n",
339
  ".info {\n",
340
  " position: absolute;\n",
 
598
  "def save_settings():\n",
599
  " settings = {key: globals()[f\"{key}_widget\"].value for key in settings_keys}\n",
600
  " with open(SETTINGS_FILE, 'w') as f:\n",
601
+ " json.dump(settings, f, indent=2)\n",
602
  "\n",
603
  "def load_settings():\n",
604
  " if os.path.exists(SETTINGS_FILE):\n",
files_cells/python/en/auto-cleaner_en.py CHANGED
@@ -33,15 +33,6 @@ webui_path = f"{root_path}/sdw"
33
  # ----------------------------------------------
34
 
35
 
36
- directories = {
37
- "Images": f"{webui_path}/outputs",
38
- "Models": f"{webui_path}/models/Stable-diffusion/",
39
- "Vae": f"{webui_path}/models/VAE/",
40
- "LoRa": f"{webui_path}/models/Lora/",
41
- "ControlNet Models": f"{webui_path}/models/ControlNet/"
42
- }
43
-
44
-
45
  # ==================== CSS ====================
46
  CSS = """
47
  <style>
@@ -240,6 +231,15 @@ display(HTML(CSS))
240
 
241
 
242
  # ================ AutoCleaner function ================
 
 
 
 
 
 
 
 
 
243
  def clean_directory(directory):
244
  deleted_files = 0
245
  for root, dirs, files in os.walk(directory):
@@ -251,20 +251,6 @@ def clean_directory(directory):
251
  deleted_files += 1
252
  return deleted_files
253
 
254
-
255
- def get_word_variant(n, variants):
256
- unit = abs(n) % 10
257
- tens = abs(n) % 100
258
- if tens in range(11, 15):
259
- return variants[2]
260
- elif unit == 1:
261
- return variants[0]
262
- elif unit in range(2, 5):
263
- return variants[1]
264
- else:
265
- return variants[2]
266
-
267
-
268
  def update_memory_info():
269
  disk_space = psutil.disk_usage(os.getcwd())
270
  total = disk_space.total / (1024 ** 3)
@@ -272,10 +258,9 @@ def update_memory_info():
272
  free = disk_space.free / (1024 ** 3)
273
 
274
  storage_info.value = f'''
275
- <div class="storage_info_AC">Total storage: {total:.2f} GB <span style="color: #555">|</span> Used: {used:.2f} GB <span style="color: #555">|</span> Free: {free:.2f} GB</div>
276
  '''
277
 
278
-
279
  def on_execute_button_press(button):
280
  selected_cleaners = auto_cleaner_widget.value
281
  deleted_files_dict = {}
@@ -293,28 +278,23 @@ def on_execute_button_press(button):
293
 
294
  update_memory_info()
295
 
296
-
297
  def on_clear_button_press(button):
298
  container.add_class("hide")
299
  time.sleep(0.5)
300
  widgets.Widget.close_all()
301
 
302
-
303
  def generate_messages(deleted_files_dict):
304
  messages = []
305
  word_variants = {
306
- "Images": ["Image", "Images", "Images"],
307
- "Models": ["Model", "Models", "Models"],
308
- "Vae": ["VAE", "VAE", "VAE"],
309
- "LoRa": ["LoRa", "LoRa", "LoRa"],
310
- "ControlNet Models": ["ControlNet Model", "ControlNet Models", "ControlNet Models"]
311
  }
312
- deleted_word_variants = ["Deleted", "Deleted", "Deleted"]
313
  for key, value in deleted_files_dict.items():
314
- word_variant = word_variants.get(key, ["", "", ""])
315
- deleted_word = get_word_variant(value, deleted_word_variants)
316
- object_word = get_word_variant(value, word_variant)
317
- messages.append(f"{deleted_word} {value} {object_word}")
318
  return messages
319
  # ================ AutoCleaner function ================
320
 
 
33
  # ----------------------------------------------
34
 
35
 
 
 
 
 
 
 
 
 
 
36
  # ==================== CSS ====================
37
  CSS = """
38
  <style>
 
231
 
232
 
233
  # ================ AutoCleaner function ================
234
+ directories = {
235
+ "Images": f"{webui_path}/outputs",
236
+ "Models": f"{webui_path}/models/Stable-diffusion/",
237
+ "Vae": f"{webui_path}/models/VAE/",
238
+ "LoRa": f"{webui_path}/models/Lora/",
239
+ "ControlNet Models": f"{webui_path}/models/ControlNet/"
240
+ }
241
+
242
+ """ functions """
243
  def clean_directory(directory):
244
  deleted_files = 0
245
  for root, dirs, files in os.walk(directory):
 
251
  deleted_files += 1
252
  return deleted_files
253
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
  def update_memory_info():
255
  disk_space = psutil.disk_usage(os.getcwd())
256
  total = disk_space.total / (1024 ** 3)
 
258
  free = disk_space.free / (1024 ** 3)
259
 
260
  storage_info.value = f'''
261
+ <div class="storage_info_AC">Всего: {total:.2f} GB <span style="color: #555">|</span> Используется: {used:.2f} GB <span style="color: #555">|</span> Свободно: {free:.2f} GB</div>
262
  '''
263
 
 
264
  def on_execute_button_press(button):
265
  selected_cleaners = auto_cleaner_widget.value
266
  deleted_files_dict = {}
 
278
 
279
  update_memory_info()
280
 
 
281
  def on_clear_button_press(button):
282
  container.add_class("hide")
283
  time.sleep(0.5)
284
  widgets.Widget.close_all()
285
 
 
286
  def generate_messages(deleted_files_dict):
287
  messages = []
288
  word_variants = {
289
+ "Images": "Images",
290
+ "Models": "Models",
291
+ "Vae": "Vae",
292
+ "LoRa": "LoRa",
293
+ "ControlNet Models": "ControlNet Models"
294
  }
 
295
  for key, value in deleted_files_dict.items():
296
+ object_word = word_variants.get(key)
297
+ messages.append(f"Deleted {value} {object_word}")
 
 
298
  return messages
299
  # ================ AutoCleaner function ================
300
 
files_cells/python/en/downloading_en.py CHANGED
@@ -172,28 +172,32 @@ if latest_webui or latest_exstensions:
172
  else:
173
  get_ipython().system('{\'for dir in /home/studio-lab-user/content/sdw/extensions/*/; do cd \\"$dir\\" && git fetch origin && git pull; done\'}')
174
 
175
- # My Chinese friend, you broke the images again in the latest update... >W<'
176
- get_ipython().run_line_magic('cd', '{webui_path}/extensions/Encrypt-Image')
177
- get_ipython().system('git reset --hard 376358d8854472b9ea50e9fc8800367d1ca51137 # stable commit :3')
178
-
179
- get_ipython().system('cd {webui_path}/repositories/stable-diffusion-stability-ai && git restore .')
180
  del cap
181
  print(f"\r✨ {action} Completed!")
182
 
183
 
184
  # === FIXING ERRORS ===
185
- # --- Encrypt-Image ---
186
- get_ipython().system("sed -i '9,37d' {webui_path}/extensions/Encrypt-Image/javascript/encrypt_images_info.js")
187
 
188
- # --- SageMaker ---
189
- if env == "SageMaker Studio Lab":
190
- with capture.capture_output() as cap:
191
- # --- SuperMerger Remove ---
192
- if os.path.exists(f"{webui_path}/extensions/supermerger"):
193
- get_ipython().system('rm -rf {webui_path}/extensions/supermerger')
194
- # --- Launch (Style) ---
195
- get_ipython().system('wget -O {webui_path}/modules/styles.py https://huggingface.co/NagisaNao/fast_repo/resolve/main/sagemaker/fixing/webui/styles.py')
196
- del cap
 
 
 
 
 
 
 
197
 
198
 
199
  ## Version switching
 
172
  else:
173
  get_ipython().system('{\'for dir in /home/studio-lab-user/content/sdw/extensions/*/; do cd \\"$dir\\" && git fetch origin && git pull; done\'}')
174
 
175
+ # My Chinese friend, you broke the images again in the latest update... >W<'
176
+ get_ipython().run_line_magic('cd', '{webui_path}/extensions/Encrypt-Image')
177
+ get_ipython().system('git reset --hard 376358d8854472b9ea50e9fc8800367d1ca51137 # stable commit :3')
 
 
178
  del cap
179
  print(f"\r✨ {action} Completed!")
180
 
181
 
182
  # === FIXING ERRORS ===
183
+ anxety_repos = "https://huggingface.co/NagisaNao/fast_repo/resolve/main"
 
184
 
185
+ with capture.capture_output() as cap:
186
+ # --- Encrypt-Image ---
187
+ get_ipython().system("sed -i '9,37d' {webui_path}/extensions/Encrypt-Image/javascript/encrypt_images_info.js")
188
+
189
+ # --- Additional-Networks ---
190
+ get_ipython().system('wget -O {webui_path}/extensions/additional-networks/scripts/metadata_editor.py {anxety_repos}/extensions/Additional-Networks/fix/metadata_editor.py')
191
+
192
+ # --= SageMaker =--
193
+ if env == "SageMaker Studio Lab":
194
+ with capture.capture_output() as cap:
195
+ # --- SuperMerger Remove ---
196
+ if os.path.exists(f"{webui_path}/extensions/supermerger"):
197
+ get_ipython().system('rm -rf {webui_path}/extensions/supermerger')
198
+ # --- Launch (Style) ---
199
+ get_ipython().system('wget -O {webui_path}/modules/styles.py {anxety_repos}/sagemaker/fixing/webui/styles.py')
200
+ del cap
201
 
202
 
203
  ## Version switching
files_cells/python/en/widgets_en.py CHANGED
@@ -29,7 +29,7 @@ get_ipython().system('mkdir -p {root_path}')
29
 
30
 
31
  # ==================== CSS JS ====================
32
- # custom background images V1.1
33
  import argparse
34
  parser = argparse.ArgumentParser(description='This script processes an background image.')
35
  parser.add_argument('-i', '--image', type=str, help='URL of the image to process', metavar='')
@@ -38,8 +38,9 @@ parser.add_argument('-b', '--blur', type=str, help='Blur level for the image', m
38
  parser.add_argument('-y', type=int, help='Y coordinate for the image in px', metavar='', default=0)
39
  parser.add_argument('-x', type=int, help='X coordinate for the image in px', metavar='', default=0)
40
  parser.add_argument('-s', '--scale', type=int, help='Scale image in %%', metavar='', default=100)
41
- parser.add_argument('-m', '--mode', type=str, help='Specify "no-repeat" so that the image pattern is not repeated.', metavar='', default='repeat')
42
- parser.add_argument('-t', '--transparent', action='store_true', help='Makes input/selection fields 35% more transparent')
 
43
  args = parser.parse_args()
44
  """---"""
45
  url_img = args.image
@@ -48,16 +49,18 @@ blur_img = args.blur
48
  y_img = args.y
49
  x_img = args.x
50
  scale_img = args.scale
51
- mode_img = args.mode
52
 
53
- # WTF COLAB - WHAT THE FUCK IS THE DIFFERENCE OF 40 PIXELS!?!?!?
54
- fix_heigh_img = "-815px"
55
- if env == "Google Colab":
56
- fix_heigh_img = "-775px"
57
- # transperent fields
58
- t_bg_alpha = "1"
59
- if args.transparent:
60
- t_bg_alpha = "0.65"
 
 
61
 
62
  container_background = f'''
63
  <style>
@@ -75,6 +78,7 @@ container_background = f'''
75
  /* for fields */
76
  --bg-field-color: rgba(28, 28, 28, {t_bg_alpha}); /* -> #1c1c1c */
77
  --bg-field-color-hover: rgba(38, 38, 38, {t_bg_alpha}); /* -> #262626; */
 
78
  }}
79
  '''
80
 
@@ -201,6 +205,7 @@ a {
201
  border-radius: 10px;
202
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5);
203
  transition: all 0.3s ease-in-out;
 
204
  }
205
 
206
  .widget-dropdown select:focus,
@@ -310,7 +315,7 @@ a {
310
  }
311
 
312
 
313
- /* Popup style of `FAQ` window */
314
 
315
  .info {
316
  position: absolute;
@@ -574,7 +579,7 @@ settings_keys = [
574
  def save_settings():
575
  settings = {key: globals()[f"{key}_widget"].value for key in settings_keys}
576
  with open(SETTINGS_FILE, 'w') as f:
577
- json.dump(settings, f)
578
 
579
  def load_settings():
580
  if os.path.exists(SETTINGS_FILE):
 
29
 
30
 
31
  # ==================== CSS JS ====================
32
+ # custom background images V1.5
33
  import argparse
34
  parser = argparse.ArgumentParser(description='This script processes an background image.')
35
  parser.add_argument('-i', '--image', type=str, help='URL of the image to process', metavar='')
 
38
  parser.add_argument('-y', type=int, help='Y coordinate for the image in px', metavar='', default=0)
39
  parser.add_argument('-x', type=int, help='X coordinate for the image in px', metavar='', default=0)
40
  parser.add_argument('-s', '--scale', type=int, help='Scale image in %%', metavar='', default=100)
41
+ parser.add_argument('-m', '--mode',action='store_true', help='Removes repetitive image tiles')
42
+ parser.add_argument('-t', '--transparent', action='store_true', help='Makes input/selection fields 35%% more transparent')
43
+ parser.add_argument('-bf', '--blur-fields', type=str, help='Background blur level for input/selection fields', metavar='', default=2)
44
  args = parser.parse_args()
45
  """---"""
46
  url_img = args.image
 
49
  y_img = args.y
50
  x_img = args.x
51
  scale_img = args.scale
52
+ blur_fields = args.blur_fields
53
 
54
+ ## ---
55
+ """ WTF COLAB - WHAT THE FUCK IS THE DIFFERENCE OF 35 PIXELS!?!?!? """
56
+ fix_heigh_img = "-810px" if env != "Google Colab" else "-775px"
57
+
58
+ """ transperent fields """
59
+ t_bg_alpha = "1" if not args.transparent else "0.65"
60
+
61
+ """ mode img - repeats """
62
+ mode_img = "repeat" if not args.mode else "no-repeat"
63
+ ## ---
64
 
65
  container_background = f'''
66
  <style>
 
78
  /* for fields */
79
  --bg-field-color: rgba(28, 28, 28, {t_bg_alpha}); /* -> #1c1c1c */
80
  --bg-field-color-hover: rgba(38, 38, 38, {t_bg_alpha}); /* -> #262626; */
81
+ --bg-field-blur-level: {blur_fields}px;
82
  }}
83
  '''
84
 
 
205
  border-radius: 10px;
206
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5);
207
  transition: all 0.3s ease-in-out;
208
+ backdrop-filter: blur(var(--bg-field-blur-level));
209
  }
210
 
211
  .widget-dropdown select:focus,
 
315
  }
316
 
317
 
318
+ /* Popup style of `INFO` window */
319
 
320
  .info {
321
  position: absolute;
 
579
  def save_settings():
580
  settings = {key: globals()[f"{key}_widget"].value for key in settings_keys}
581
  with open(SETTINGS_FILE, 'w') as f:
582
+ json.dump(settings, f, indent=2)
583
 
584
  def load_settings():
585
  if os.path.exists(SETTINGS_FILE):
files_cells/python/ru/auto-cleaner_ru.py CHANGED
@@ -33,15 +33,6 @@ webui_path = f"{root_path}/sdw"
33
  # ----------------------------------------------
34
 
35
 
36
- directories = {
37
- "Изображения": f"{webui_path}/outputs",
38
- "Модели": f"{webui_path}/models/Stable-diffusion/",
39
- "Vae": f"{webui_path}/models/VAE/",
40
- "LoRa": f"{webui_path}/models/Lora/",
41
- "ControlNet Модели": f"{webui_path}/models/ControlNet/"
42
- }
43
-
44
-
45
  # ==================== CSS ====================
46
  CSS_AC = """
47
  <style>
@@ -240,6 +231,15 @@ display(HTML(CSS_AC))
240
 
241
 
242
  # ================ AutoCleaner function ================
 
 
 
 
 
 
 
 
 
243
  def clean_directory(directory):
244
  deleted_files = 0
245
  for root, dirs, files in os.walk(directory):
@@ -251,20 +251,6 @@ def clean_directory(directory):
251
  deleted_files += 1
252
  return deleted_files
253
 
254
-
255
- def get_word_variant(n, variants):
256
- unit = abs(n) % 10
257
- tens = abs(n) % 100
258
- if tens in range(11, 15):
259
- return variants[2]
260
- elif unit == 1:
261
- return variants[0]
262
- elif unit in range(2, 5):
263
- return variants[1]
264
- else:
265
- return variants[2]
266
-
267
-
268
  def update_memory_info():
269
  disk_space = psutil.disk_usage(os.getcwd())
270
  total = disk_space.total / (1024 ** 3)
@@ -275,7 +261,6 @@ def update_memory_info():
275
  <div class="storage_info_AC">Всего: {total:.2f} GB <span style="color: #555">|</span> Используется: {used:.2f} GB <span style="color: #555">|</span> Свободно: {free:.2f} GB</div>
276
  '''
277
 
278
-
279
  def on_execute_button_press(button):
280
  selected_cleaners = auto_cleaner_widget.value
281
  deleted_files_dict = {}
@@ -293,28 +278,23 @@ def on_execute_button_press(button):
293
 
294
  update_memory_info()
295
 
296
-
297
  def on_clear_button_press(button):
298
  container.add_class("hide")
299
  time.sleep(0.5)
300
  widgets.Widget.close_all()
301
 
302
-
303
  def generate_messages(deleted_files_dict):
304
  messages = []
305
  word_variants = {
306
- "Изображения": ["Изображение", "Изображения", "Изображений"],
307
- "Модели": ["Модель", "Модели", "Моделей"],
308
- "Vae": ["VAE", "VAE", "VAE"],
309
- "LoRa": ["LoRa", "LoRa", "LoRa"],
310
- "ControlNet Модели": ["ControlNet Модель", "ControlNet Модели", "ControlNet Моделей"]
311
  }
312
- deleted_word_variants = ["Удалена", "Удалены", "Удалено"]
313
  for key, value in deleted_files_dict.items():
314
- word_variant = word_variants.get(key, ["", "", ""])
315
- deleted_word = get_word_variant(value, deleted_word_variants)
316
- object_word = get_word_variant(value, word_variant)
317
- messages.append(f"{deleted_word} {value} {object_word}")
318
  return messages
319
  # ================ AutoCleaner function ================
320
 
 
33
  # ----------------------------------------------
34
 
35
 
 
 
 
 
 
 
 
 
 
36
  # ==================== CSS ====================
37
  CSS_AC = """
38
  <style>
 
231
 
232
 
233
  # ================ AutoCleaner function ================
234
+ directories = {
235
+ "Изображения": f"{webui_path}/outputs",
236
+ "Модели": f"{webui_path}/models/Stable-diffusion/",
237
+ "Vae": f"{webui_path}/models/VAE/",
238
+ "LoRa": f"{webui_path}/models/Lora/",
239
+ "ControlNet Модели": f"{webui_path}/models/ControlNet/"
240
+ }
241
+
242
+ """ functions """
243
  def clean_directory(directory):
244
  deleted_files = 0
245
  for root, dirs, files in os.walk(directory):
 
251
  deleted_files += 1
252
  return deleted_files
253
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
  def update_memory_info():
255
  disk_space = psutil.disk_usage(os.getcwd())
256
  total = disk_space.total / (1024 ** 3)
 
261
  <div class="storage_info_AC">Всего: {total:.2f} GB <span style="color: #555">|</span> Используется: {used:.2f} GB <span style="color: #555">|</span> Свободно: {free:.2f} GB</div>
262
  '''
263
 
 
264
  def on_execute_button_press(button):
265
  selected_cleaners = auto_cleaner_widget.value
266
  deleted_files_dict = {}
 
278
 
279
  update_memory_info()
280
 
 
281
  def on_clear_button_press(button):
282
  container.add_class("hide")
283
  time.sleep(0.5)
284
  widgets.Widget.close_all()
285
 
 
286
  def generate_messages(deleted_files_dict):
287
  messages = []
288
  word_variants = {
289
+ "Изображения": "Изображений",
290
+ "Модели": "Моделей",
291
+ "Vae": "Vae",
292
+ "LoRa": "LoRa",
293
+ "ControlNet Модели": "ControlNet Моделей"
294
  }
 
295
  for key, value in deleted_files_dict.items():
296
+ object_word = word_variants.get(key)
297
+ messages.append(f"Удалено {value} {object_word}")
 
 
298
  return messages
299
  # ================ AutoCleaner function ================
300
 
files_cells/python/ru/downloading_ru.py CHANGED
@@ -41,43 +41,64 @@ if env == "SageMaker Studio Lab":
41
  clear_output()
42
 
43
 
44
- # ================ LIBRARIES ================
45
  flag_file = f"{root_path}/libraries_installed.txt"
46
 
47
  if not os.path.exists(flag_file):
48
- # automatic1111 update webui to 1.8.0
49
- xformers = "xformers==0.0.23.post1 triton==2.1.0"
50
- torch = "torch==2.1.2+cu121 torchvision==0.16.2+cu121 torchaudio==2.1.2 --extra-index-url https://download.pytorch.org/whl/cu121"
51
 
52
- print("💿 Установка библиотек, это займет какое-то время...", end='')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  with capture.capture_output() as cap:
54
- get_ipython().system('pip install -U gdown')
55
- get_ipython().system('apt-get update && apt -y install aria2')
56
- get_ipython().system('npm install -g localtunnel &> /dev/null')
57
  get_ipython().system('curl -s -OL https://github.com/DEX-1101/sd-webui-notebook/raw/main/res/new_tunnel --output-dir {root_path}')
58
  get_ipython().system('curl -s -Lo /usr/bin/cl https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 && chmod +x /usr/bin/cl')
59
- get_ipython().system('pip install insightface')
60
  get_ipython().system('curl -sLO https://github.com/openziti/zrok/releases/download/v0.4.23/zrok_0.4.23_linux_amd64.tar.gz && tar -xzf zrok_0.4.23_linux_amd64.tar.gz -C /usr/bin && rm -f zrok_0.4.23_linux_amd64.tar.gz')
 
 
61
 
62
- if env == "SageMaker Studio Lab":
63
- get_ipython().run_line_magic('pip', 'install -q opencv-python-headless huggingface-hub')
64
- get_ipython().run_line_magic('conda', 'update -q -n base conda')
65
- get_ipython().run_line_magic('conda', 'install -q -y aria2')
66
- get_ipython().run_line_magic('conda', 'install -q -y glib')
67
- get_ipython().system('pip install tensorflow')
68
-
69
- get_ipython().system('wget -P /home/studio-lab-user https://huggingface.co/NagisaNao/fast_repo/resolve/main/sagemaker/FULL_DELETED_NOTEBOOK.ipynb')
70
 
71
- if env == "Google Colab":
72
- get_ipython().system('pip install xformers==0.0.25 --no-deps')
73
- else:
74
- get_ipython().system('pip install -q {torch} -U')
75
- get_ipython().system('pip install -q {xformers} -U')
76
 
77
- with open(flag_file, "w") as f:
78
- f.write("hey ;3")
79
- del cap
80
- print("\r🍪 Библиотеки установлены!" + " "*35)
81
  time.sleep(2)
82
  clear_output()
83
 
@@ -172,28 +193,32 @@ if latest_webui or latest_exstensions:
172
  else:
173
  get_ipython().system('{\'for dir in /home/studio-lab-user/content/sdw/extensions/*/; do cd \\"$dir\\" && git fetch origin && git pull; done\'}')
174
 
175
- # My Chinese friend, you broke the images again in the latest update... >W<'
176
- get_ipython().run_line_magic('cd', '{webui_path}/extensions/Encrypt-Image')
177
- get_ipython().system('git reset --hard 376358d8854472b9ea50e9fc8800367d1ca51137 # stable commit :3')
178
-
179
- get_ipython().system('cd {webui_path}/repositories/stable-diffusion-stability-ai && git restore .')
180
  del cap
181
  print(f"\r✨ {action} Завершено!")
182
 
183
 
184
  # === FIXING ERRORS ===
185
- # --- Encrypt-Image ---
186
- get_ipython().system("sed -i '9,37d' {webui_path}/extensions/Encrypt-Image/javascript/encrypt_images_info.js")
187
 
188
- # --- SageMaker ---
189
- if env == "SageMaker Studio Lab":
190
- with capture.capture_output() as cap:
191
- # --- SuperMerger Remove ---
192
- if os.path.exists(f"{webui_path}/extensions/supermerger"):
193
- get_ipython().system('rm -rf {webui_path}/extensions/supermerger')
194
- # --- Launch (Style) ---
195
- get_ipython().system('wget -O {webui_path}/modules/styles.py https://huggingface.co/NagisaNao/fast_repo/resolve/main/sagemaker/fixing/webui/styles.py')
196
- del cap
 
 
 
 
 
 
 
197
 
198
 
199
  ## Version switching
 
41
  clear_output()
42
 
43
 
44
+ # ================ LIBRARIES V2 ================
45
  flag_file = f"{root_path}/libraries_installed.txt"
46
 
47
  if not os.path.exists(flag_file):
48
+ print("💿 Установка библиотек, это займет какое-то время...\n")
 
 
49
 
50
+ install_lib = {
51
+ "gdown": "pip install -U gdown",
52
+ "aria2": "apt-get update && apt -y install aria2",
53
+ "localtunnel": "npm install -g localtunnel &> /dev/null",
54
+ "insightface": "pip install insightface",
55
+ }
56
+
57
+ # Dictionary of additional libraries specific to certain environments
58
+ additional_libs = {
59
+ "Google Colab": {
60
+ "xformers": "pip install xformers==0.0.25 --no-deps"
61
+ },
62
+ "Kaggle": {
63
+ "xformers": "pip install -q xformers==0.0.23.post1 triton==2.1.0",
64
+ "torch": "pip install -q torch==2.1.2+cu121 --extra-index-url https://download.pytorch.org/whl/cu121"
65
+ },
66
+ "SageMaker Studio Lab": {
67
+ "opencv": "pip install -q opencv-python-headless",
68
+ "huggingface": "pip install -q huggingface-hub",
69
+ "conda_update": "conda update -q -n base conda",
70
+ "conda_aria2": "conda install -q -y aria2",
71
+ "conda_glib": "conda install -q -y glib",
72
+ "tensorflow": "pip install tensorflow",
73
+ "xformers": "pip install -q xformers==0.0.23.post1 triton==2.1.0",
74
+ "torch": "pip install -q torch==2.1.2+cu121 torchvision==0.16.2+cu121 torchaudio==2.1.2 --extra-index-url https://download.pytorch.org/whl/cu121"
75
+ }
76
+ }
77
+
78
+ # If the current environment has additional libraries, update the install_lib dictionary
79
+ if env in additional_libs:
80
+ install_lib.update(additional_libs[env])
81
+
82
+ # Loop through libraries and execute install commands
83
+ for index, (package, install_cmd) in enumerate(install_lib.items(), start=1):
84
+ print(f"\r\033[96m[{index}/{len(install_lib)}] \033[32m>>\033[96m Installing \033[33m{package}\033[96m...\033[0m", end='')
85
+ subprocess.run(install_cmd, shell=True, capture_output=True)
86
+
87
+ # Additional manual installation steps for specific packages
88
  with capture.capture_output() as cap:
 
 
 
89
  get_ipython().system('curl -s -OL https://github.com/DEX-1101/sd-webui-notebook/raw/main/res/new_tunnel --output-dir {root_path}')
90
  get_ipython().system('curl -s -Lo /usr/bin/cl https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 && chmod +x /usr/bin/cl')
 
91
  get_ipython().system('curl -sLO https://github.com/openziti/zrok/releases/download/v0.4.23/zrok_0.4.23_linux_amd64.tar.gz && tar -xzf zrok_0.4.23_linux_amd64.tar.gz -C /usr/bin && rm -f zrok_0.4.23_linux_amd64.tar.gz')
92
+ get_ipython().system('wget -P /home/studio-lab-user https://huggingface.co/NagisaNao/fast_repo/resolve/main/sagemaker/FULL_DELETED_NOTEBOOK.ipynb')
93
+ del cap
94
 
95
+ clear_output()
 
 
 
 
 
 
 
96
 
97
+ # save file install lib
98
+ with open(flag_file, "w") as f:
99
+ f.write(">W<'")
 
 
100
 
101
+ print("🍪 Библиотеки установлены!" + " "*35)
 
 
 
102
  time.sleep(2)
103
  clear_output()
104
 
 
193
  else:
194
  get_ipython().system('{\'for dir in /home/studio-lab-user/content/sdw/extensions/*/; do cd \\"$dir\\" && git fetch origin && git pull; done\'}')
195
 
196
+ # My Chinese friend, you broke the images again in the latest update... >W<'
197
+ get_ipython().run_line_magic('cd', '{webui_path}/extensions/Encrypt-Image')
198
+ get_ipython().system('git reset --hard 376358d8854472b9ea50e9fc8800367d1ca51137 # stable commit :3')
 
 
199
  del cap
200
  print(f"\r✨ {action} Завершено!")
201
 
202
 
203
  # === FIXING ERRORS ===
204
+ anxety_repos = "https://huggingface.co/NagisaNao/fast_repo/resolve/main"
 
205
 
206
+ with capture.capture_output() as cap:
207
+ # --- Encrypt-Image ---
208
+ get_ipython().system("sed -i '9,37d' {webui_path}/extensions/Encrypt-Image/javascript/encrypt_images_info.js")
209
+
210
+ # --- Additional-Networks ---
211
+ get_ipython().system('wget -O {webui_path}/extensions/additional-networks/scripts/metadata_editor.py {anxety_repos}/extensions/Additional-Networks/fix/metadata_editor.py')
212
+
213
+ # --= SageMaker =--
214
+ if env == "SageMaker Studio Lab":
215
+ with capture.capture_output() as cap:
216
+ # --- SuperMerger Remove ---
217
+ if os.path.exists(f"{webui_path}/extensions/supermerger"):
218
+ get_ipython().system('rm -rf {webui_path}/extensions/supermerger')
219
+ # --- Launch (Style) ---
220
+ get_ipython().system('wget -O {webui_path}/modules/styles.py {anxety_repos}/sagemaker/fixing/webui/styles.py')
221
+ del cap
222
 
223
 
224
  ## Version switching
files_cells/python/ru/widgets_ru.py CHANGED
@@ -29,7 +29,7 @@ get_ipython().system('mkdir -p {root_path}')
29
 
30
 
31
  # ==================== CSS JS ====================
32
- # custom background images V1.1
33
  import argparse
34
  parser = argparse.ArgumentParser(description='This script processes an background image.')
35
  parser.add_argument('-i', '--image', type=str, help='URL of the image to process', metavar='')
@@ -38,8 +38,9 @@ parser.add_argument('-b', '--blur', type=str, help='Blur level for the image', m
38
  parser.add_argument('-y', type=int, help='Y coordinate for the image in px', metavar='', default=0)
39
  parser.add_argument('-x', type=int, help='X coordinate for the image in px', metavar='', default=0)
40
  parser.add_argument('-s', '--scale', type=int, help='Scale image in %%', metavar='', default=100)
41
- parser.add_argument('-m', '--mode', type=str, help='Specify "no-repeat" so that the image pattern is not repeated.', metavar='', default='repeat')
42
- parser.add_argument('-t', '--transparent', action='store_true', help='Makes input/selection fields 35% more transparent')
 
43
  args = parser.parse_args()
44
  """---"""
45
  url_img = args.image
@@ -48,16 +49,18 @@ blur_img = args.blur
48
  y_img = args.y
49
  x_img = args.x
50
  scale_img = args.scale
51
- mode_img = args.mode
52
 
53
- # WTF COLAB - WHAT THE FUCK IS THE DIFFERENCE OF 40 PIXELS!?!?!?
54
- fix_heigh_img = "-815px"
55
- if env == "Google Colab":
56
- fix_heigh_img = "-775px"
57
- # transperent fields
58
- t_bg_alpha = "1"
59
- if args.transparent:
60
- t_bg_alpha = "0.65"
 
 
61
 
62
  container_background = f'''
63
  <style>
@@ -75,6 +78,7 @@ container_background = f'''
75
  /* for fields */
76
  --bg-field-color: rgba(28, 28, 28, {t_bg_alpha}); /* -> #1c1c1c */
77
  --bg-field-color-hover: rgba(38, 38, 38, {t_bg_alpha}); /* -> #262626; */
 
78
  }}
79
  '''
80
 
@@ -201,6 +205,7 @@ a {
201
  border-radius: 10px;
202
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5);
203
  transition: all 0.3s ease-in-out;
 
204
  }
205
 
206
  .widget-dropdown select:focus,
@@ -310,7 +315,7 @@ a {
310
  }
311
 
312
 
313
- /* Popup style of `FAQ` window */
314
 
315
  .info {
316
  position: absolute;
@@ -574,7 +579,7 @@ settings_keys = [
574
  def save_settings():
575
  settings = {key: globals()[f"{key}_widget"].value for key in settings_keys}
576
  with open(SETTINGS_FILE, 'w') as f:
577
- json.dump(settings, f)
578
 
579
  def load_settings():
580
  if os.path.exists(SETTINGS_FILE):
 
29
 
30
 
31
  # ==================== CSS JS ====================
32
+ # custom background images V1.5
33
  import argparse
34
  parser = argparse.ArgumentParser(description='This script processes an background image.')
35
  parser.add_argument('-i', '--image', type=str, help='URL of the image to process', metavar='')
 
38
  parser.add_argument('-y', type=int, help='Y coordinate for the image in px', metavar='', default=0)
39
  parser.add_argument('-x', type=int, help='X coordinate for the image in px', metavar='', default=0)
40
  parser.add_argument('-s', '--scale', type=int, help='Scale image in %%', metavar='', default=100)
41
+ parser.add_argument('-m', '--mode',action='store_true', help='Removes repetitive image tiles')
42
+ parser.add_argument('-t', '--transparent', action='store_true', help='Makes input/selection fields 35%% more transparent')
43
+ parser.add_argument('-bf', '--blur-fields', type=str, help='Background blur level for input/selection fields', metavar='', default=2)
44
  args = parser.parse_args()
45
  """---"""
46
  url_img = args.image
 
49
  y_img = args.y
50
  x_img = args.x
51
  scale_img = args.scale
52
+ blur_fields = args.blur_fields
53
 
54
+ ## ---
55
+ """ WTF COLAB - WHAT THE FUCK IS THE DIFFERENCE OF 35 PIXELS!?!?!? """
56
+ fix_heigh_img = "-810px" if env != "Google Colab" else "-775px"
57
+
58
+ """ transperent fields """
59
+ t_bg_alpha = "1" if not args.transparent else "0.65"
60
+
61
+ """ mode img - repeats """
62
+ mode_img = "repeat" if not args.mode else "no-repeat"
63
+ ## ---
64
 
65
  container_background = f'''
66
  <style>
 
78
  /* for fields */
79
  --bg-field-color: rgba(28, 28, 28, {t_bg_alpha}); /* -> #1c1c1c */
80
  --bg-field-color-hover: rgba(38, 38, 38, {t_bg_alpha}); /* -> #262626; */
81
+ --bg-field-blur-level: {blur_fields}px;
82
  }}
83
  '''
84
 
 
205
  border-radius: 10px;
206
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5);
207
  transition: all 0.3s ease-in-out;
208
+ backdrop-filter: blur(var(--bg-field-blur-level));
209
  }
210
 
211
  .widget-dropdown select:focus,
 
315
  }
316
 
317
 
318
+ /* Popup style of `INFO` window */
319
 
320
  .info {
321
  position: absolute;
 
579
  def save_settings():
580
  settings = {key: globals()[f"{key}_widget"].value for key in settings_keys}
581
  with open(SETTINGS_FILE, 'w') as f:
582
+ json.dump(settings, f, indent=2)
583
 
584
  def load_settings():
585
  if os.path.exists(SETTINGS_FILE):