k4d3 commited on
Commit
9da91ed
1 Parent(s): 9ac4c21

Signed-off-by: Balazs Horvath <[email protected]>

Files changed (29) hide show
  1. dataset_tools/Check for Duplicate Words Between Captions and Tags.ipynb +0 -0
  2. dataset_tools/Concatenate Captions With Tags To txt.ipynb +0 -703
  3. dataset_tools/Convert WebP to PNG.ipynb +0 -77
  4. dataset_tools/Count Tokens in Sample Prompts.ipynb +0 -509
  5. dataset_tools/Create Empty caption Files for Images.ipynb +0 -101
  6. dataset_tools/Duplicate Checker.ipynb +0 -54
  7. dataset_tools/Escape Parentheses.ipynb +0 -194
  8. dataset_tools/Find Missing tags and captions.ipynb +0 -54
  9. dataset_tools/Insert Multiple Tags.ipynb +0 -66
  10. dataset_tools/Insert Tag.ipynb +0 -73
  11. dataset_tools/Pony2Seaart.ipynb +0 -88
  12. dataset_tools/Remove Commas from Caption Files.ipynb +0 -135
  13. dataset_tools/Remove Duplicate Tags Present Inside Captions.ipynb +0 -34
  14. dataset_tools/Remove Extra File Extension before txt.ipynb +0 -67
  15. dataset_tools/Remove Tags 2.ipynb +0 -71
  16. dataset_tools/Remove Tags.ipynb +0 -170
  17. dataset_tools/Rename images and captions to MD5.ipynb +0 -100
  18. dataset_tools/Replace Tags and Remove Duplicates.ipynb +0 -80
  19. dataset_tools/Replace Underscore with Spaces.ipynb +0 -62
  20. dataset_tools/Search for Captions.ipynb +0 -253
  21. dataset_tools/Search for Transparent Images.ipynb +0 -61
  22. dataset_tools/Tag Frequency.ipynb +0 -0
  23. dataset_tools/done/Check for Transparency.ipynb +0 -0
  24. dataset_tools/done/Count Images in Folder.ipynb +0 -92
  25. dataset_tools/done/Create Empty Captions for Images.ipynb +0 -95
  26. dataset_tools/done/Newlines to Commas.ipynb +0 -74
  27. dataset_tools/done/convert_rgba_to_rgb_in_pngs.py +0 -53
  28. dataset_tools/done/e621 JSON to txt.ipynb +0 -439
  29. dataset_tools/done/replace_transparency_with_black.py +0 -69
dataset_tools/Check for Duplicate Words Between Captions and Tags.ipynb DELETED
The diff for this file is too large to render. See raw diff
 
dataset_tools/Concatenate Captions With Tags To txt.ipynb DELETED
@@ -1,703 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## Concatenate `.caption`s with `.tags` to `.txt`\n",
8
- "----\n",
9
- "\n",
10
- "This Python script processes image files within a specified directory. For each image file, if corresponding tag and caption files exist, it combines the content of these files into a single text file (`.txt`). The content of the tag file (`.tags`) and caption file (`.caption`) are concatenated, with tags followed by a comma and then the caption.\n",
11
- "\n",
12
- "The script also performs specific modifications to the caption content:\n",
13
- "\n",
14
- "- Commas inside sentences are stripped.\n",
15
- "- Each sentence is terminated with a period followed by a comma.\n",
16
- "- Any parentheses in the tags are escaped with a backslash."
17
- ]
18
- },
19
- {
20
- "cell_type": "code",
21
- "execution_count": 7,
22
- "metadata": {},
23
- "outputs": [
24
- {
25
- "name": "stdout",
26
- "output_type": "stream",
27
- "text": [
28
- "Processed Aspekt.png successfully.\n",
29
- "Processed BeckAndArco.png successfully.\n",
30
- "Processed CAACAgEAAxUAAWDcC-RAMyhgCSdjHXALY3-AW04jAAJJAQACUzihRiT7YFrWoWOgIAQ.png successfully.\n",
31
- "Processed CAACAgEAAxUAAWDcH6ECBkkGen9vu0nfz3nOhi4KAAKqAQACdX3pR00bYhmqsDSOIAQ.png successfully.\n",
32
- "Processed CAACAgEAAxUAAWDcH6EHLyrFVV6KDt_ehvaTqEvCAAIuAQACJLbhR4tj2fapsvIsIAQ.png successfully.\n",
33
- "Processed CAACAgEAAxUAAWDcH6Fvhv_5o8LmW4VwvgvHplQuAAJcAQACwNToRrdQ2H_0JmXkIAQ.png successfully.\n",
34
- "Processed CAACAgEAAxUAAWDcH6FXpV9s5T9aqYxdwsq2CHK-AAJHAQAC9l3pRpKFNSJYMQzMIAQ.png successfully.\n",
35
- "Processed CAACAgEAAxUAAWDcH6Gmc5IRiZOcEodSJMvwByT-AAJpAQACM3_oRttoMTyEb6hiIAQ.png successfully.\n",
36
- "Warning: Tags file missing for CAACAgEAAxUAAWDcH6GPof0niWcvLa18a0an3y7pAAL2AAOhC0BHtJ4uQOzams0gBA.png\n",
37
- "Warning: Caption file missing for CAACAgEAAxUAAWDcH6GPof0niWcvLa18a0an3y7pAAL2AAOhC0BHtJ4uQOzams0gBA.png\n",
38
- "Warning: Tags file missing for CAACAgEAAxUAAWDcH6HJlQro8jRi6YhljooQxaVAAAJNAQACqIzoRlkjbJYGu5L1IAQ.png\n",
39
- "Warning: Caption file missing for CAACAgEAAxUAAWDcH6HJlQro8jRi6YhljooQxaVAAAJNAQACqIzoRlkjbJYGu5L1IAQ.png\n",
40
- "Warning: Tags file missing for CAACAgEAAxUAAWDcH6HX3_yt4_sdkAMPDE-8j57HAAJXAQAC5tjpRp4WfYQ82fHQIAQ.png\n",
41
- "Warning: Caption file missing for CAACAgEAAxUAAWDcH6HX3_yt4_sdkAMPDE-8j57HAAJXAQAC5tjpRp4WfYQ82fHQIAQ.png\n",
42
- "Warning: Tags file missing for CAACAgEAAxUAAWDR3f-rfzg3uLDp_UQtPzdCFBr8AAIyAAPjPnQj9X5nrJxfBBYfBA.png\n",
43
- "Warning: Caption file missing for CAACAgEAAxUAAWDR3f-rfzg3uLDp_UQtPzdCFBr8AAIyAAPjPnQj9X5nrJxfBBYfBA.png\n",
44
- "Warning: Tags file missing for CAACAgEAAxUAAWDR3f8YhZGGB5a4jn0OsZ_DDsdCAAIuAAPjPnQjYmocomYgQs4fBA.png\n",
45
- "Warning: Caption file missing for CAACAgEAAxUAAWDR3f8YhZGGB5a4jn0OsZ_DDsdCAAIuAAPjPnQjYmocomYgQs4fBA.png\n",
46
- "Warning: Tags file missing for CAACAgEAAxUAAWDR3f_mt1pICh0kkMEChTL4tLB2AAIzAAPjPnQjWkMrcKIhxuMfBA.png\n",
47
- "Warning: Caption file missing for CAACAgEAAxUAAWDR3f_mt1pICh0kkMEChTL4tLB2AAIzAAPjPnQjWkMrcKIhxuMfBA.png\n",
48
- "Warning: Tags file missing for CAACAgEAAxUAAWDTdOdajTYAAUlMeSk7xoVlEghmEgACPgADvpG7CZ17P6Aj_cp5HwQ.png\n",
49
- "Warning: Caption file missing for CAACAgEAAxUAAWDTdOdajTYAAUlMeSk7xoVlEghmEgACPgADvpG7CZ17P6Aj_cp5HwQ.png\n",
50
- "Warning: Tags file missing for CAACAgEAAxUAAWE7Bh6hnbi6iq43f-cvDzt6v91NAAJsAQAC6Ql0JFsPeucxX9A1IAQ.png\n",
51
- "Warning: Caption file missing for CAACAgEAAxUAAWE7Bh6hnbi6iq43f-cvDzt6v91NAAJsAQAC6Ql0JFsPeucxX9A1IAQ.png\n",
52
- "Warning: Tags file missing for CAACAgEAAxUAAWE7Bh6MR2e4JOInqY_QO1mVzx-xAAIMAgAC6Ql0JGmAQvmx1LW5IAQ.png\n",
53
- "Warning: Caption file missing for CAACAgEAAxUAAWE7Bh6MR2e4JOInqY_QO1mVzx-xAAIMAgAC6Ql0JGmAQvmx1LW5IAQ.png\n",
54
- "Warning: Tags file missing for CAACAgEAAxUAAWE7Bh7pmyQ4Fv_x9MDW_uBvuyFdAAJtAQAC6Ql0JG7FX_thTUBLIAQ.png\n",
55
- "Warning: Caption file missing for CAACAgEAAxUAAWE7Bh7pmyQ4Fv_x9MDW_uBvuyFdAAJtAQAC6Ql0JG7FX_thTUBLIAQ.png\n",
56
- "Warning: Tags file missing for CAACAgEAAxUAAWE7Bh7RX2H0FVS6o2ik9QzmJNPjAAINAgAC6Ql0JMKM1j9yWCR-IAQ.png\n",
57
- "Warning: Caption file missing for CAACAgEAAxUAAWE7Bh7RX2H0FVS6o2ik9QzmJNPjAAINAgAC6Ql0JMKM1j9yWCR-IAQ.png\n",
58
- "Warning: Tags file missing for CAACAgEAAxUAAWFH7AE5-fdbrERFOhnYrvSt6t3gAAJ_AQAC3qPwR-zE0ZrxvEzlIAQ.png\n",
59
- "Warning: Caption file missing for CAACAgEAAxUAAWFH7AE5-fdbrERFOhnYrvSt6t3gAAJ_AQAC3qPwR-zE0ZrxvEzlIAQ.png\n",
60
- "Warning: Tags file missing for CAACAgEAAxUAAWFH7AErFp00iaunAQiPzQ2FvQSPAALJAQACtX_xR_bgUCZs2Ww8IAQ.png\n",
61
- "Warning: Caption file missing for CAACAgEAAxUAAWFH7AErFp00iaunAQiPzQ2FvQSPAALJAQACtX_xR_bgUCZs2Ww8IAQ.png\n",
62
- "Warning: Tags file missing for CAACAgEAAxUAAWFH7AEVH_buD5sQh1dhoQYJFtJyAAJ9AQACupnwRw-X4hKABjBBIAQ.png\n",
63
- "Warning: Caption file missing for CAACAgEAAxUAAWFH7AEVH_buD5sQh1dhoQYJFtJyAAJ9AQACupnwRw-X4hKABjBBIAQ.png\n",
64
- "Warning: Tags file missing for CAACAgEAAxUAAWFH7AFfM6KTyVyTFtwmye6h8_oMAAI2AgACeCTxRyi-wCqjZBH5IAQ.png\n",
65
- "Warning: Caption file missing for CAACAgEAAxUAAWFH7AFfM6KTyVyTFtwmye6h8_oMAAI2AgACeCTxRyi-wCqjZBH5IAQ.png\n",
66
- "Warning: Tags file missing for CAACAgEAAxUAAWFH7AGAVBONYcuqhHTWGsYgnCZSAAJDAQACsk_5R2ygKezbUBTCIAQ.png\n",
67
- "Warning: Caption file missing for CAACAgEAAxUAAWFH7AGAVBONYcuqhHTWGsYgnCZSAAJDAQACsk_5R2ygKezbUBTCIAQ.png\n",
68
- "Warning: Tags file missing for CAACAgEAAxUAAWFH7AGgRDccu4nX57fVOMps8Zs_AAJIAgACDxjxR4d-wYqkYks2IAQ.png\n",
69
- "Warning: Caption file missing for CAACAgEAAxUAAWFH7AGgRDccu4nX57fVOMps8Zs_AAJIAgACDxjxR4d-wYqkYks2IAQ.png\n",
70
- "Warning: Tags file missing for CAACAgEAAxUAAWFH7AGuUyY6zTKHxCYk-GQfMJsSAALxAQAC0nDxRz97_4_z3n2XIAQ.png\n",
71
- "Warning: Caption file missing for CAACAgEAAxUAAWFH7AGuUyY6zTKHxCYk-GQfMJsSAALxAQAC0nDxRz97_4_z3n2XIAQ.png\n",
72
- "Warning: Tags file missing for CAACAgEAAxUAAWFIIWUF8dAjrT_wHknzD4gy7lxlAAIrAAO4BXszgWlJ6HHmI48gBA.png\n",
73
- "Warning: Caption file missing for CAACAgEAAxUAAWFIIWUF8dAjrT_wHknzD4gy7lxlAAIrAAO4BXszgWlJ6HHmI48gBA.png\n",
74
- "Warning: Tags file missing for CAACAgEAAxUAAWFIIWUT0gSlfYG9D4K5NAw2w4wMAALrAQACZhLZRMAOgnhxF_tXIAQ.png\n",
75
- "Warning: Caption file missing for CAACAgEAAxUAAWFIIWUT0gSlfYG9D4K5NAw2w4wMAALrAQACZhLZRMAOgnhxF_tXIAQ.png\n",
76
- "Warning: Tags file missing for CAACAgEAAxUAAWFIIWWMoXbpGA3AqCR6S9tZJyFSAALXAQAClXH4RdJA0iyIoKHdIAQ.png\n",
77
- "Warning: Caption file missing for CAACAgEAAxUAAWFIIWWMoXbpGA3AqCR6S9tZJyFSAALXAQAClXH4RdJA0iyIoKHdIAQ.png\n",
78
- "Warning: Tags file missing for CAACAgEAAxUAAWHM1d8nUpvZyMQ1Jks3oansJJy_AAKdAQACLHkxR78fw7vrv1wQIwQ.png\n",
79
- "Warning: Caption file missing for CAACAgEAAxUAAWHM1d8nUpvZyMQ1Jks3oansJJy_AAKdAQACLHkxR78fw7vrv1wQIwQ.png\n",
80
- "Warning: Tags file missing for CAACAgEAAxUAAWHM1d8xHjkSHq8Njr9Bl6RwEm-lAAI-AgAC4tY5R-GNIJrpVBqDIwQ.png\n",
81
- "Warning: Caption file missing for CAACAgEAAxUAAWHM1d8xHjkSHq8Njr9Bl6RwEm-lAAI-AgAC4tY5R-GNIJrpVBqDIwQ.png\n",
82
- "Warning: Tags file missing for CAACAgEAAxUAAWHM1d9KRMOUqsVvyGtYf-4_o4BqAAJ4AQACD-QwR6uootqbwnGhIwQ.png\n",
83
- "Warning: Caption file missing for CAACAgEAAxUAAWHM1d9KRMOUqsVvyGtYf-4_o4BqAAJ4AQACD-QwR6uootqbwnGhIwQ.png\n",
84
- "Warning: Tags file missing for CAACAgEAAxUAAWKLulEDomzz_AO4sENSAvEO4uM9AAITAAPAQ0hMH6XFXs4QrqUkBA.png\n",
85
- "Warning: Caption file missing for CAACAgEAAxUAAWKLulEDomzz_AO4sENSAvEO4uM9AAITAAPAQ0hMH6XFXs4QrqUkBA.png\n",
86
- "Warning: Tags file missing for CAACAgEAAxUAAWKLulEIhmGfRbGYAUqY_aq9aokKAAIRAAMpB0lMKeRIY9hVeHokBA.png\n",
87
- "Warning: Caption file missing for CAACAgEAAxUAAWKLulEIhmGfRbGYAUqY_aq9aokKAAIRAAMpB0lMKeRIY9hVeHokBA.png\n",
88
- "Warning: Tags file missing for CAACAgEAAxUAAWKLulEJGQSJ7Wo_bc2-bsBCggv1AAIMAAMkWkhMYPzqP_9bLi4kBA.png\n",
89
- "Warning: Caption file missing for CAACAgEAAxUAAWKLulEJGQSJ7Wo_bc2-bsBCggv1AAIMAAMkWkhMYPzqP_9bLi4kBA.png\n",
90
- "Warning: Tags file missing for CAACAgEAAxUAAWKLulElp4EF5yTSuHON-a9iu0aAAAIFAAOL4klM5mySPnwOhcckBA.png\n",
91
- "Warning: Caption file missing for CAACAgEAAxUAAWKLulElp4EF5yTSuHON-a9iu0aAAAIFAAOL4klM5mySPnwOhcckBA.png\n",
92
- "Warning: Tags file missing for CAACAgEAAxUAAWKLulF41LGfQvZv-pYHC5cc0iImAAIIAAMNC0FM4VZWfzgAAaqlJAQ.png\n",
93
- "Warning: Caption file missing for CAACAgEAAxUAAWKLulF41LGfQvZv-pYHC5cc0iImAAIIAAMNC0FM4VZWfzgAAaqlJAQ.png\n",
94
- "Warning: Tags file missing for CAACAgEAAxUAAWKLulFc8KhqegZI1C6A4_PRsAj9AAICAANwM0BMmxu7Bhu1KMIkBA.png\n",
95
- "Warning: Caption file missing for CAACAgEAAxUAAWKLulFc8KhqegZI1C6A4_PRsAj9AAICAANwM0BMmxu7Bhu1KMIkBA.png\n",
96
- "Warning: Tags file missing for CAACAgEAAxUAAWKLulFRJkWqXNSqNmWJZbU7DTsdAAIGAAMj8UhMtIE6ogUD2tgkBA.png\n",
97
- "Warning: Caption file missing for CAACAgEAAxUAAWKLulFRJkWqXNSqNmWJZbU7DTsdAAIGAAMj8UhMtIE6ogUD2tgkBA.png\n",
98
- "Warning: Tags file missing for CAACAgEAAxUAAWKLulG5NeloUVIROkLdma1HIAmRAAIGAAM9qEhMlF0Z9Hvp8t8kBA.png\n",
99
- "Warning: Caption file missing for CAACAgEAAxUAAWKLulG5NeloUVIROkLdma1HIAmRAAIGAAM9qEhMlF0Z9Hvp8t8kBA.png\n",
100
- "Warning: Tags file missing for CAACAgEAAxUAAWKLulH1D_-JbhqSHmbfw3-A4l7WAAIOAANrNEhMfE4tst0nqFAkBA.png\n",
101
- "Warning: Caption file missing for CAACAgEAAxUAAWKLulH1D_-JbhqSHmbfw3-A4l7WAAIOAANrNEhMfE4tst0nqFAkBA.png\n",
102
- "Warning: Tags file missing for CAACAgEAAxUAAWKLulHt3toF2ErX2NgldtFsJReHAAIYAAOXI0lMBJXEJboVDH4kBA.png\n",
103
- "Warning: Caption file missing for CAACAgEAAxUAAWKLulHt3toF2ErX2NgldtFsJReHAAIYAAOXI0lMBJXEJboVDH4kBA.png\n",
104
- "Warning: Tags file missing for CAACAgEAAxUAAWKS9EavJJ9PvUHieykK4sycGCHBAAJ0AQACDqIYRygL9mwg4NnWJAQ.png\n",
105
- "Warning: Caption file missing for CAACAgEAAxUAAWKS9EavJJ9PvUHieykK4sycGCHBAAJ0AQACDqIYRygL9mwg4NnWJAQ.png\n",
106
- "Warning: Tags file missing for CAACAgEAAxUAAWKS9EbunICCRgPt0MYm--wfpynNAAIQAwACXXUYR79eF_xK_xaaJAQ.png\n",
107
- "Warning: Caption file missing for CAACAgEAAxUAAWKS9EbunICCRgPt0MYm--wfpynNAAIQAwACXXUYR79eF_xK_xaaJAQ.png\n",
108
- "Warning: Tags file missing for CAACAgEAAxUAAWORcb1_nbaWnk79Ya-Jlm1C2PlfAAKXBAACH16YR02CUN0j931bKwQ.png\n",
109
- "Warning: Caption file missing for CAACAgEAAxUAAWORcb1_nbaWnk79Ya-Jlm1C2PlfAAKXBAACH16YR02CUN0j931bKwQ.png\n",
110
- "Warning: Tags file missing for CAACAgEAAxUAAWORcb2bT2w-zVDGAqMgaq1wcSOwAAK0AgACBNWQReqCVrN-uRQaKwQ.png\n",
111
- "Warning: Caption file missing for CAACAgEAAxUAAWORcb2bT2w-zVDGAqMgaq1wcSOwAAK0AgACBNWQReqCVrN-uRQaKwQ.png\n",
112
- "Warning: Tags file missing for CAACAgEAAxUAAWORcb2UvreFl32oUeBwlZ9orsi5AAKaAQACxkLYRkZIjvPYFnCdKwQ.png\n",
113
- "Warning: Caption file missing for CAACAgEAAxUAAWORcb2UvreFl32oUeBwlZ9orsi5AAKaAQACxkLYRkZIjvPYFnCdKwQ.png\n",
114
- "Warning: Tags file missing for CAACAgEAAxUAAWORcb3SCsMv9uX96KFkeMWxClq6AAIyAgACJVaZRWQsqXTWHku9KwQ.png\n",
115
- "Warning: Caption file missing for CAACAgEAAxUAAWORcb3SCsMv9uX96KFkeMWxClq6AAIyAgACJVaZRWQsqXTWHku9KwQ.png\n",
116
- "Warning: Tags file missing for CAACAgEAAxUAAWP-kzUakCvjYfqmGy2zRFwIBOIJAAIDAwACSiqZRpqcR_GqSZXJLgQ.png\n",
117
- "Warning: Caption file missing for CAACAgEAAxUAAWP-kzUakCvjYfqmGy2zRFwIBOIJAAIDAwACSiqZRpqcR_GqSZXJLgQ.png\n",
118
- "Warning: Tags file missing for CAACAgEAAxUAAWP-kzUnvo5IT27BTpK0HiM2OxR3AAKBAgACcJSYRj_SZHVTdIT-LgQ.png\n",
119
- "Warning: Caption file missing for CAACAgEAAxUAAWP-kzUnvo5IT27BTpK0HiM2OxR3AAKBAgACcJSYRj_SZHVTdIT-LgQ.png\n",
120
- "Warning: Tags file missing for CAACAgEAAxUAAWP-kzVmCxyT4PC1eAOIN2Wf3ILQAALHAgACuruZRpdNc3dn240qLgQ.png\n",
121
- "Warning: Caption file missing for CAACAgEAAxUAAWP-kzVmCxyT4PC1eAOIN2Wf3ILQAALHAgACuruZRpdNc3dn240qLgQ.png\n",
122
- "Warning: Tags file missing for CAACAgEAAxUAAWP-kzVTtzRwqjEMqQJyvkzq1W1gAAKxAgACu4CZRvBvxqACqpgaLgQ.png\n",
123
- "Warning: Caption file missing for CAACAgEAAxUAAWP-kzVTtzRwqjEMqQJyvkzq1W1gAAKxAgACu4CZRvBvxqACqpgaLgQ.png\n",
124
- "Warning: Tags file missing for CAACAgEAAxUAAWP-kzVYUGwzWMr2x3TFD-Q0CHLbAALjAwACMmmgRm_DU36eh3XHLgQ.png\n",
125
- "Warning: Caption file missing for CAACAgEAAxUAAWP-kzVYUGwzWMr2x3TFD-Q0CHLbAALjAwACMmmgRm_DU36eh3XHLgQ.png\n",
126
- "Processed CAACAgEAAxUAAWP-kzWlMHAtZpEPPPuEGOI2DuFiAAJCAgAC2tWhRusq-Cq3l32HLgQ.png successfully.\n",
127
- "Warning: Tags file missing for CAACAgEAAxUAAWR-E9HXpjnsz-EzbfV7B65tT9FIAALbAwACNcHxRxPg7eZZowy5LwQ.png\n",
128
- "Warning: Caption file missing for CAACAgEAAxUAAWR-E9HXpjnsz-EzbfV7B65tT9FIAALbAwACNcHxRxPg7eZZowy5LwQ.png\n",
129
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkw4rlV9ceT5sa4U3UoH3H4NAAIaAAO6XcgaNR-YR57KIqUvBA.png\n",
130
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkw4rlV9ceT5sa4U3UoH3H4NAAIaAAO6XcgaNR-YR57KIqUvBA.png\n",
131
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkw5pG8BeXPi_UfbWc8gbUTEAAIKAAO6XcganuzCkCuOMm8vBA.png\n",
132
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkw5pG8BeXPi_UfbWc8gbUTEAAIKAAO6XcganuzCkCuOMm8vBA.png\n",
133
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkw7noF7kyoJdG0CS_M48UR4AAIfAAO6Xcga6mcBo8URXxMvBA.png\n",
134
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkw7noF7kyoJdG0CS_M48UR4AAIfAAO6Xcga6mcBo8URXxMvBA.png\n",
135
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkwdX5mol1Xqv_I6ZXmX7qxUAAIVAAO6XcgaWrByHzSwCZsvBA.png\n",
136
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkwdX5mol1Xqv_I6ZXmX7qxUAAIVAAO6XcgaWrByHzSwCZsvBA.png\n",
137
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkwjd08z2Stg4_KDo5nfs_kSAAILAAO6XcgaQTDOocrTLKIvBA.png\n",
138
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkwjd08z2Stg4_KDo5nfs_kSAAILAAO6XcgaQTDOocrTLKIvBA.png\n",
139
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkwKCPGAvvPneaYwyIz9ScJkAAIhAAO6XcgaDxgfrx8-VMQvBA.png\n",
140
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkwKCPGAvvPneaYwyIz9ScJkAAIhAAO6XcgaDxgfrx8-VMQvBA.png\n",
141
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkwKsW6q8FDzJ5RO37Z91XzTAAIUAAO6XcgaLI-7asSSRwIvBA.png\n",
142
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkwKsW6q8FDzJ5RO37Z91XzTAAIUAAO6XcgaLI-7asSSRwIvBA.png\n",
143
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkwTRsblNmEbbnc-hdb7k6fqAAIcAAO6XcgalhQcgptbQeovBA.png\n",
144
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkwTRsblNmEbbnc-hdb7k6fqAAIcAAO6XcgalhQcgptbQeovBA.png\n",
145
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkwU6IIqxlon8l1YRL4lkP6-AAIRAAO6XcgadBKAOP2cUc0vBA.png\n",
146
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkwU6IIqxlon8l1YRL4lkP6-AAIRAAO6XcgadBKAOP2cUc0vBA.png\n",
147
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkwuU-F6Y9iUF3nSojeLWD9ZAAINAAO6Xcga2RjGU9TxG3MvBA.png\n",
148
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkwuU-F6Y9iUF3nSojeLWD9ZAAINAAO6Xcga2RjGU9TxG3MvBA.png\n",
149
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkwzo6zg5rraJe-3D-n7-lhtAAIMAAO6XcgaY-GtcllBobsvBA.png\n",
150
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkwzo6zg5rraJe-3D-n7-lhtAAIMAAO6XcgaY-GtcllBobsvBA.png\n",
151
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkxDHfE8ZGuVlkPAgLyzNRuUAAIOAAO6XcgaVEz5PpG1hDcvBA.png\n",
152
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkxDHfE8ZGuVlkPAgLyzNRuUAAIOAAO6XcgaVEz5PpG1hDcvBA.png\n",
153
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkxj-NR1mZxBn7l4bVHZWGL9AAIIAAO6Xcgaw6RhEj0pQ98vBA.png\n",
154
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkxj-NR1mZxBn7l4bVHZWGL9AAIIAAO6Xcgaw6RhEj0pQ98vBA.png\n",
155
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkxzadNSp_fyxjWbOlERlTENAAIWAAO6XcgaT4VBRjfiQrMvBA.png\n",
156
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkxzadNSp_fyxjWbOlERlTENAAIWAAO6XcgaT4VBRjfiQrMvBA.png\n",
157
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwky2uzWuVX_Z31_RqqZ3S2LLAAIbAAO6XcgaDJthxzhbiPQvBA.png\n",
158
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwky2uzWuVX_Z31_RqqZ3S2LLAAIbAAO6XcgaDJthxzhbiPQvBA.png\n",
159
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwky2v6MK8QGPbqGRXY_7Ff97AAIJAAO6XcgaeX7t7CnUP1svBA.png\n",
160
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwky2v6MK8QGPbqGRXY_7Ff97AAIJAAO6XcgaeX7t7CnUP1svBA.png\n",
161
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkyEfms6iPq5DS29Dd6D2z8cAAIPAAO6XcgaSD_BYsNul3QvBA.png\n",
162
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkyEfms6iPq5DS29Dd6D2z8cAAIPAAO6XcgaSD_BYsNul3QvBA.png\n",
163
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkyF0C8hg5V4gzf3ndkxR85jAAISAAO6Xcga_3S1kpeG4LQvBA.png\n",
164
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkyF0C8hg5V4gzf3ndkxR85jAAISAAO6Xcga_3S1kpeG4LQvBA.png\n",
165
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkyH33sfBFAx-udTNCmUeGywAAIdAAO6Xcga_ctijKR1SWQvBA.png\n",
166
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkyH33sfBFAx-udTNCmUeGywAAIdAAO6Xcga_ctijKR1SWQvBA.png\n",
167
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkykaxoUEqLzH4LQ_97kEjXEAAITAAO6XcgalElYoZSU-h4vBA.png\n",
168
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkykaxoUEqLzH4LQ_97kEjXEAAITAAO6XcgalElYoZSU-h4vBA.png\n",
169
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkyMiVj6YuoX4f1yksaw9XyaAAIHAAO6XcgaYS178gABwtHvLwQ.png\n",
170
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkyMiVj6YuoX4f1yksaw9XyaAAIHAAO6XcgaYS178gABwtHvLwQ.png\n",
171
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkyMLVRhyMBQuekl6MU232DLAAIYAAO6XcgaXuWrR0M7nusvBA.png\n",
172
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkyMLVRhyMBQuekl6MU232DLAAIYAAO6XcgaXuWrR0M7nusvBA.png\n",
173
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkyn8eJ-MwaRB-f2Ou7LxyT8AAIiAAO6XcgaE-dnsDfMxP0vBA.png\n",
174
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkyn8eJ-MwaRB-f2Ou7LxyT8AAIiAAO6XcgaE-dnsDfMxP0vBA.png\n",
175
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkysaopy3WbowTHE85MwgCBtAAIQAAO6XcgaM4nGd953zAgvBA.png\n",
176
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkysaopy3WbowTHE85MwgCBtAAIQAAO6XcgaM4nGd953zAgvBA.png\n",
177
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkyv8XFDUvDopgHaqfyF2Ap4AAIkAAO6XcgaegbweKIdMFovBA.png\n",
178
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkyv8XFDUvDopgHaqfyF2Ap4AAIkAAO6XcgaegbweKIdMFovBA.png\n",
179
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkz-wfHvOQif4He4CbowbLJ7AAIXAAO6Xcgar4TYt4Rpe80vBA.png\n",
180
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkz-wfHvOQif4He4CbowbLJ7AAIXAAO6Xcgar4TYt4Rpe80vBA.png\n",
181
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkzeeJGC64ZF_k6FCWDI13-2AAIgAAO6XcgacZW0m8P5TS8vBA.png\n",
182
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkzeeJGC64ZF_k6FCWDI13-2AAIgAAO6XcgacZW0m8P5TS8vBA.png\n",
183
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkzNSMfJYVDxbL0nz5TAec57AAIZAAO6Xcgafq6xhLNMpREvBA.png\n",
184
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkzNSMfJYVDxbL0nz5TAec57AAIZAAO6Xcgafq6xhLNMpREvBA.png\n",
185
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkzOMyLagJgU71zyU3sqe44NAAIjAAO6Xcga9LMZPXdT4fAvBA.png\n",
186
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkzOMyLagJgU71zyU3sqe44NAAIjAAO6Xcga9LMZPXdT4fAvBA.png\n",
187
- "Warning: Tags file missing for CAACAgEAAxUAAWSbwkztm4XH8wc-ByvaBMG-nFU3AAIeAAO6XcgavKzzR2QciJkvBA.png\n",
188
- "Warning: Caption file missing for CAACAgEAAxUAAWSbwkztm4XH8wc-ByvaBMG-nFU3AAIeAAO6XcgavKzzR2QciJkvBA.png\n",
189
- "Warning: Tags file missing for CAACAgEAAxUAAWS_fA8UiecLy6US0JYAAcIsOIydfwACsQIAAo7XaURmftWN7HRPfC8E.png\n",
190
- "Warning: Caption file missing for CAACAgEAAxUAAWS_fA8UiecLy6US0JYAAcIsOIydfwACsQIAAo7XaURmftWN7HRPfC8E.png\n",
191
- "Warning: Tags file missing for CAACAgEAAxUAAWTm-yeGgksfp7EaSFOqsKXDZK9OAALLAgAC5mUBR50sbvWbHcsFMAQ.png\n",
192
- "Warning: Caption file missing for CAACAgEAAxUAAWTm-yeGgksfp7EaSFOqsKXDZK9OAALLAgAC5mUBR50sbvWbHcsFMAQ.png\n",
193
- "Warning: Tags file missing for CAACAgEAAxUAAWTm-yeV1H3a-uFPYwY-9mwm1N-UAAJEAwACF_QAAUdpKqLTGH2rUzAE.png\n",
194
- "Warning: Caption file missing for CAACAgEAAxUAAWTm-yeV1H3a-uFPYwY-9mwm1N-UAAJEAwACF_QAAUdpKqLTGH2rUzAE.png\n",
195
- "Warning: Tags file missing for CAACAgEAAxUAAWTm_XfgFuSKPA31_6CyojocUFAAAyUDAAL5MgABR3-WElC-epoyMAQ.png\n",
196
- "Warning: Caption file missing for CAACAgEAAxUAAWTm_XfgFuSKPA31_6CyojocUFAAAyUDAAL5MgABR3-WElC-epoyMAQ.png\n",
197
- "Warning: Tags file missing for CAACAgEAAxUAAWTm_XfHwVXKLVOJCRGH5nzwbHNqAAK6AgAC0p0BR7FaPllcQXVfMAQ.png\n",
198
- "Warning: Caption file missing for CAACAgEAAxUAAWTm_XfHwVXKLVOJCRGH5nzwbHNqAAK6AgAC0p0BR7FaPllcQXVfMAQ.png\n",
199
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDsAAQY-fz77fmvBhMZzH3nkEgACNgAD7JKZCF9KatFJoFE8LQQ.png\n",
200
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDsAAQY-fz77fmvBhMZzH3nkEgACNgAD7JKZCF9KatFJoFE8LQQ.png\n",
201
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDsaiqHjVkEGMD67c3ib6tbIAAK-DgACssZgSBPTpgQ2UcPBLQQ.png\n",
202
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDsaiqHjVkEGMD67c3ib6tbIAAK-DgACssZgSBPTpgQ2UcPBLQQ.png\n",
203
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDsdLcoyLG7MSxvM_Yule07TAALEEQACI48QSVg1609hc02VLQQ.png\n",
204
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDsdLcoyLG7MSxvM_Yule07TAALEEQACI48QSVg1609hc02VLQQ.png\n",
205
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDsGSX1M_jZWo_rGJiGX0cIwAALTHQAC6WXhS_68PRxD7GiTLQQ.png\n",
206
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDsGSX1M_jZWo_rGJiGX0cIwAALTHQAC6WXhS_68PRxD7GiTLQQ.png\n",
207
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDsHvgoGhsel8VmKWT20N5cEAALTDAAC3AZhSMz7iB99mStuLQQ.png\n",
208
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDsHvgoGhsel8VmKWT20N5cEAALTDAAC3AZhSMz7iB99mStuLQQ.png\n",
209
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDsK1eBELiGnNOQXFc8JS0ZHAALzIwACF2PhSxJfrg2W6SRwLQQ.png\n",
210
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDsK1eBELiGnNOQXFc8JS0ZHAALzIwACF2PhSxJfrg2W6SRwLQQ.png\n",
211
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDslSciIv3MgX4jvqhcabWeKAAIsAAPskpkIyjIKrjeDXYUtBA.png\n",
212
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDslSciIv3MgX4jvqhcabWeKAAIsAAPskpkIyjIKrjeDXYUtBA.png\n",
213
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDsNSSPnr8RwUDym7BclED-oAAK6DAACYwhhSL8bXWZMZUzxLQQ.png\n",
214
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDsNSSPnr8RwUDym7BclED-oAAK6DAACYwhhSL8bXWZMZUzxLQQ.png\n",
215
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDsrY-gBaVUtdXaaWLVHvbYRAAIeFAACazUQSexiP7NcZBkiLQQ.png\n",
216
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDsrY-gBaVUtdXaaWLVHvbYRAAIeFAACazUQSexiP7NcZBkiLQQ.png\n",
217
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDsskEpo1X7laXuMMSvxBWAYAALrCwAClwZhSLUfezSbWEzJLQQ.png\n",
218
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDsskEpo1X7laXuMMSvxBWAYAALrCwAClwZhSLUfezSbWEzJLQQ.png\n",
219
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDsSKJsp2G6miXkQ5GplG__-AAKeJAACF_zhS9DW_2DnEHMdLQQ.png\n",
220
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDsSKJsp2G6miXkQ5GplG__-AAKeJAACF_zhS9DW_2DnEHMdLQQ.png\n",
221
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDsSkUjqAAH2ktgWHt0WQi3C3wACSQsAAnYGYEidYqpnORvlnS0E.png\n",
222
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDsSkUjqAAH2ktgWHt0WQi3C3wACSQsAAnYGYEidYqpnORvlnS0E.png\n",
223
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDstfTL2aMlrq1OjlWZ9ExDdAAJpJwACsurhS9z9AAFoBULEfS0E.png\n",
224
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDstfTL2aMlrq1OjlWZ9ExDdAAJpJwACsurhS9z9AAFoBULEfS0E.png\n",
225
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDsxDvjnMC9It_Yzzosh0bDLAAIwAAPskpkIGMAAATnpr1aQLQQ.png\n",
226
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDsxDvjnMC9It_Yzzosh0bDLAAIwAAPskpkIGMAAATnpr1aQLQQ.png\n",
227
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDszAAHcC60k8I4wcwtbCPRBwAAC5RIAAjaZEUlBhVKZnz7bjC0E.png\n",
228
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDszAAHcC60k8I4wcwtbCPRBwAAC5RIAAjaZEUlBhVKZnz7bjC0E.png\n",
229
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDsZBeDvuWiGh9crSwEWwec4AAItAAPskpkIavk5TLTs5a4tBA.png\n",
230
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDsZBeDvuWiGh9crSwEWwec4AAItAAPskpkIavk5TLTs5a4tBA.png\n",
231
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDsZICfX5V1FrgafsK7N1JyhAAL0DwACuldgSHbONqMvfjFWLQQ.png\n",
232
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDsZICfX5V1FrgafsK7N1JyhAAL0DwACuldgSHbONqMvfjFWLQQ.png\n",
233
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDtC-NkLQ0nw0_02Eubqe7dgAAJnDgACj8FhSA_ZTILxfJLRLQQ.png\n",
234
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDtC-NkLQ0nw0_02Eubqe7dgAAJnDgACj8FhSA_ZTILxfJLRLQQ.png\n",
235
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDtFEc5FRNhnzNiDswNSLUP_AALbHwACXJrgS8Xk5QSyVR4wLQQ.png\n",
236
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDtFEc5FRNhnzNiDswNSLUP_AALbHwACXJrgS8Xk5QSyVR4wLQQ.png\n",
237
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDtJdN9kx4xmYSMvaisaZElIAAIxAAPskpkIz-hYgyb31JctBA.png\n",
238
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDtJdN9kx4xmYSMvaisaZElIAAIxAAPskpkIz-hYgyb31JctBA.png\n",
239
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDtJxS9wis66VzA2-1vhVbPVAALBDQACrCVhSK-GT62vBBoILQQ.png\n",
240
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDtJxS9wis66VzA2-1vhVbPVAALBDQACrCVhSK-GT62vBBoILQQ.png\n",
241
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDtlJGQFSdIYokZ4Xns8_LvgAAKnDwACiNAZSY4Sogr9B14LLQQ.png\n",
242
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDtlJGQFSdIYokZ4Xns8_LvgAAKnDwACiNAZSY4Sogr9B14LLQQ.png\n",
243
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDtOO02t5McrsfdaDOk54BADAALZFgACzmPhScFa0P40ppNxLQQ.png\n",
244
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDtOO02t5McrsfdaDOk54BADAALZFgACzmPhScFa0P40ppNxLQQ.png\n",
245
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDtR2wGcIGzPWnCmNPC2aAxrAAIzKAACzgAB4Etg2LZFuElqAAEtBA.png\n",
246
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDtR2wGcIGzPWnCmNPC2aAxrAAIzKAACzgAB4Etg2LZFuElqAAEtBA.png\n",
247
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDtsQEszljQamKu1KdsIfhE2AAJPCwACXK9hSGl2JGk6Lr2ULQQ.png\n",
248
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDtsQEszljQamKu1KdsIfhE2AAJPCwACXK9hSGl2JGk6Lr2ULQQ.png\n",
249
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDtTZV7izc89IMz04UfnA1vtAAI0AAPskpkIuUIxCIAzbv8tBA.png\n",
250
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDtTZV7izc89IMz04UfnA1vtAAI0AAPskpkIuUIxCIAzbv8tBA.png\n",
251
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDtY2fo0YN_WKGTKWVIleI0iAALXCwACLK5hSC7vfBx_p_DiLQQ.png\n",
252
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDtY2fo0YN_WKGTKWVIleI0iAALXCwACLK5hSC7vfBx_p_DiLQQ.png\n",
253
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDu07I9jDLrPxsoBTiiTzL7aAAIyAAPskpkIfHgwA9eHAAGaLQQ.png\n",
254
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDu07I9jDLrPxsoBTiiTzL7aAAIyAAPskpkIfHgwA9eHAAGaLQQ.png\n",
255
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDu1cuo2B0eehtp1seOC5u-XAAJiEwACvmUYSRPHK4TijlycLQQ.png\n",
256
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDu1cuo2B0eehtp1seOC5u-XAAJiEwACvmUYSRPHK4TijlycLQQ.png\n",
257
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDu2P507Zs-rU_M5hElpmFPCAAI5DAAC1NphSNHTjZEoqx1kLQQ.png\n",
258
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDu2P507Zs-rU_M5hElpmFPCAAI5DAAC1NphSNHTjZEoqx1kLQQ.png\n",
259
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDu58VAN2DIWmS298DvjXU1XAALGDQACqSBgSHfrXA93GnAHLQQ.png\n",
260
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDu58VAN2DIWmS298DvjXU1XAALGDQACqSBgSHfrXA93GnAHLQQ.png\n",
261
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDubzsQyEBnUCKce9m2mzLgHAAK_EQACJ8gQSUOUFPn2sx_zLQQ.png\n",
262
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDubzsQyEBnUCKce9m2mzLgHAAK_EQACJ8gQSUOUFPn2sx_zLQQ.png\n",
263
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDuEWM2c9qFwZVdt7obc4ms6AALKLAACfIHgS7aCZH9l8vyXLQQ.png\n",
264
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDuEWM2c9qFwZVdt7obc4ms6AALKLAACfIHgS7aCZH9l8vyXLQQ.png\n",
265
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDuk9aBvFvCPkL7Tx9OXMSgjAALvJAACWLLgS7fZrgyhwQAB4i0E.png\n",
266
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDuk9aBvFvCPkL7Tx9OXMSgjAALvJAACWLLgS7fZrgyhwQAB4i0E.png\n",
267
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDuKyPpmVeahInwJqyo-ce7tAALMEQACOxkQSaoxWaSPbDaILQQ.png\n",
268
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDuKyPpmVeahInwJqyo-ce7tAALMEQACOxkQSaoxWaSPbDaILQQ.png\n",
269
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDuLKYgTjTBeMn-qKceI8sdmAAK4KAACJbDhS0kyrJLts1VfLQQ.png\n",
270
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDuLKYgTjTBeMn-qKceI8sdmAAK4KAACJbDhS0kyrJLts1VfLQQ.png\n",
271
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDurxa15wKrpdTz7YcDQaNYsAAL7FAACcvcQSc8eFsO2P-qMLQQ.png\n",
272
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDurxa15wKrpdTz7YcDQaNYsAAL7FAACcvcQSc8eFsO2P-qMLQQ.png\n",
273
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDuSIvWGiak_c_dGr_KrlFXcAAIWDgACRAVgSBqT3rViIvQAAS0E.png\n",
274
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDuSIvWGiak_c_dGr_KrlFXcAAIWDgACRAVgSBqT3rViIvQAAS0E.png\n",
275
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDv5KTxCf8orCCIGTfdZ4troAAIvAAPskpkIXOzXfxv5c9otBA.png\n",
276
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDv5KTxCf8orCCIGTfdZ4troAAIvAAPskpkIXOzXfxv5c9otBA.png\n",
277
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDv9wgrHJjWCqwvew2KwUJUYAAILEQACUoIYSRZrf6ijm48yLQQ.png\n",
278
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDv9wgrHJjWCqwvew2KwUJUYAAILEQACUoIYSRZrf6ijm48yLQQ.png\n",
279
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDvAwK92k-vwi-425GhsDJZnAAKJDgACy7FhSD3CHoDBy-N3LQQ.png\n",
280
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDvAwK92k-vwi-425GhsDJZnAAKJDgACy7FhSD3CHoDBy-N3LQQ.png\n",
281
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDvF9wGWFE06Q98Kcajq_G-oAAI1AAPskpkIaSQDZmYbuA8tBA.png\n",
282
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDvF9wGWFE06Q98Kcajq_G-oAAI1AAPskpkIaSQDZmYbuA8tBA.png\n",
283
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDvFgYN0c-BMopR_zr9AF3pbAAIzAAPskpkIwtKPvixBnyYtBA.png\n",
284
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDvFgYN0c-BMopR_zr9AF3pbAAIzAAPskpkIwtKPvixBnyYtBA.png\n",
285
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDvfqc2Ip6Ugr1DgECtEaqvaAAKFCwACT65hSHyNfSYQSVj5LQQ.png\n",
286
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDvfqc2Ip6Ugr1DgECtEaqvaAAKFCwACT65hSHyNfSYQSVj5LQQ.png\n",
287
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDvIOo0xiAP3CR-WAcqcnSDAAAI0IgACSRrgS4P7o8y-IjZqLQQ.png\n",
288
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDvIOo0xiAP3CR-WAcqcnSDAAAI0IgACSRrgS4P7o8y-IjZqLQQ.png\n",
289
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDvk877TCwGlSieaC2kISv1LAAJjDAACAb9gSIU9hc-07plQLQQ.png\n",
290
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDvk877TCwGlSieaC2kISv1LAAJjDAACAb9gSIU9hc-07plQLQQ.png\n",
291
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDvLCYquPd4cim70V91lwWBWAALBFAACiEwRSaMaHieO-Vc2LQQ.png\n",
292
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDvLCYquPd4cim70V91lwWBWAALBFAACiEwRSaMaHieO-Vc2LQQ.png\n",
293
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDvNaW_NAxWub3z1hiTbwaRZAAIiHwACGRHhSxqCy7HLyk_KLQQ.png\n",
294
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDvNaW_NAxWub3z1hiTbwaRZAAIiHwACGRHhSxqCy7HLyk_KLQQ.png\n",
295
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDvnflY_RDV2P97cWqn5uczOAAIuAAPskpkIZSLJ6UU9UzstBA.png\n",
296
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDvnflY_RDV2P97cWqn5uczOAAIuAAPskpkIZSLJ6UU9UzstBA.png\n",
297
- "Warning: Tags file missing for CAACAgIAAxUAAWPEVDvRYSb5M-4_nd8ZchYmDIczAAKGJAACI63gSwogj88WrWEmLQQ.png\n",
298
- "Warning: Caption file missing for CAACAgIAAxUAAWPEVDvRYSb5M-4_nd8ZchYmDIczAAKGJAACI63gSwogj88WrWEmLQQ.png\n",
299
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4o8rIKJ10f9O9k_3TReuPF1AAIOAANBBI8pCYy93nFcBKAfBA.png\n",
300
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4o8rIKJ10f9O9k_3TReuPF1AAIOAANBBI8pCYy93nFcBKAfBA.png\n",
301
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4odRYqMG4JTwRjm1o7GnNgJAAJVAANBBI8pWG_FAc1CdCkfBA.png\n",
302
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4odRYqMG4JTwRjm1o7GnNgJAAJVAANBBI8pWG_FAc1CdCkfBA.png\n",
303
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4oe0bCKOetlKhjQJSE15AABCgACNQADQQSPKV7PCg6dx3_zHwQ.png\n",
304
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4oe0bCKOetlKhjQJSE15AABCgACNQADQQSPKV7PCg6dx3_zHwQ.png\n",
305
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4oEWqlTDz4v9tcmo3evxFwWAAImAANBBI8pbxnKG7pOe6wfBA.png\n",
306
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4oEWqlTDz4v9tcmo3evxFwWAAImAANBBI8pbxnKG7pOe6wfBA.png\n",
307
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4oh1UtvE0VrxyFgOl_NuN3EAAINAANBBI8p3M8Sqi_268sfBA.png\n",
308
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4oh1UtvE0VrxyFgOl_NuN3EAAINAANBBI8p3M8Sqi_268sfBA.png\n",
309
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4omzRx4q19VuY8rJp37sNv3AAIwAANBBI8plNusVc6AcvMfBA.png\n",
310
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4omzRx4q19VuY8rJp37sNv3AAIwAANBBI8plNusVc6AcvMfBA.png\n",
311
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4on76WWtKfzTKTTjSjn9y6fAAInAANBBI8p4AaxwzUbehMfBA.png\n",
312
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4on76WWtKfzTKTTjSjn9y6fAAInAANBBI8p4AaxwzUbehMfBA.png\n",
313
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4onuJzYIiQSOiX_AQZJ1l6VAAI2AANBBI8p1w_7smfq9QIfBA.png\n",
314
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4onuJzYIiQSOiX_AQZJ1l6VAAI2AANBBI8p1w_7smfq9QIfBA.png\n",
315
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4oQbuJMTR3bxqBNaQrElwpLAAKEAANBBI8pinQNjU6m44QfBA.png\n",
316
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4oQbuJMTR3bxqBNaQrElwpLAAKEAANBBI8pinQNjU6m44QfBA.png\n",
317
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4oT9J8MXuVFeBoxRY4Wk1jTAAIpAANBBI8pRDsK-lUq3esfBA.png\n",
318
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4oT9J8MXuVFeBoxRY4Wk1jTAAIpAANBBI8pRDsK-lUq3esfBA.png\n",
319
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4oTBQjMibhsOFS8fGlmRi9jAAIlAANBBI8p-mXXjEMIPoofBA.png\n",
320
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4oTBQjMibhsOFS8fGlmRi9jAAIlAANBBI8p-mXXjEMIPoofBA.png\n",
321
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4oTjDIMcWXTo71fTMq2ygg2AAIbAANBBI8p_o66WiefLggfBA.png\n",
322
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4oTjDIMcWXTo71fTMq2ygg2AAIbAANBBI8p_o66WiefLggfBA.png\n",
323
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4oTQnRZyFAr5lOsEZPqVgU6AAI0AANBBI8pnRDkGreTndsfBA.png\n",
324
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4oTQnRZyFAr5lOsEZPqVgU6AAI0AANBBI8pnRDkGreTndsfBA.png\n",
325
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4oTV_2oeDkhbirI97ThZTuiAAI5AANBBI8pecVFWdwsbR4fBA.png\n",
326
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4oTV_2oeDkhbirI97ThZTuiAAI5AANBBI8pecVFWdwsbR4fBA.png\n",
327
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4oUPDXFQ9xY8BZaryeDv3kIAAItAANBBI8pbCFj7voGQsEfBA.png\n",
328
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4oUPDXFQ9xY8BZaryeDv3kIAAItAANBBI8pbCFj7voGQsEfBA.png\n",
329
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4p1p-SdcdnuzZb1WMfw5goIAAI9AANBBI8pcuAbWnmeuH8fBA.png\n",
330
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4p1p-SdcdnuzZb1WMfw5goIAAI9AANBBI8pcuAbWnmeuH8fBA.png\n",
331
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4pB7HyRK8_w92xpKc2MoQ4fAAILAANBBI8pmT_2fIikiOkfBA.png\n",
332
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4pB7HyRK8_w92xpKc2MoQ4fAAILAANBBI8pmT_2fIikiOkfBA.png\n",
333
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4pBDQsRz8iVAAG7znH08ouCXwACFgADQQSPKdYFZMUwIY7eHwQ.png\n",
334
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4pBDQsRz8iVAAG7znH08ouCXwACFgADQQSPKdYFZMUwIY7eHwQ.png\n",
335
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4pciiLXRmG929X6AAE96W_GdgACHQADQQSPKS-_HQMuMuqiHwQ.png\n",
336
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4pciiLXRmG929X6AAE96W_GdgACHQADQQSPKS-_HQMuMuqiHwQ.png\n",
337
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4pdTNacv7CIjGRJGBF2QA8AAxEAA0EEjylx8a0bi4zUfB8E.png\n",
338
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4pdTNacv7CIjGRJGBF2QA8AAxEAA0EEjylx8a0bi4zUfB8E.png\n",
339
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4phHMHoSadLQQMSU-dF9Bp6AAJZAANBBI8pYNqpbLHbVJAfBA.png\n",
340
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4phHMHoSadLQQMSU-dF9Bp6AAJZAANBBI8pYNqpbLHbVJAfBA.png\n",
341
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4pleLRHz7teeQS9SK05ZJsOAAKFAANBBI8pkdpfU5lAcIsfBA.png\n",
342
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4pleLRHz7teeQS9SK05ZJsOAAKFAANBBI8pkdpfU5lAcIsfBA.png\n",
343
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4pLHgYT0sXa3S67KHcu2yfbAAJWAANBBI8pNje8bsmT7R4fBA.png\n",
344
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4pLHgYT0sXa3S67KHcu2yfbAAJWAANBBI8pNje8bsmT7R4fBA.png\n",
345
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4pMzFDmjHf_xxbN-0qt6qaaAAKHAANBBI8p-NkdI61Wc64fBA.png\n",
346
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4pMzFDmjHf_xxbN-0qt6qaaAAKHAANBBI8p-NkdI61Wc64fBA.png\n",
347
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4pQW1Mc0kxM_EbxeVsVwnbxAAJ_AANBBI8pXKAAAaYBfLdmHwQ.png\n",
348
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4pQW1Mc0kxM_EbxeVsVwnbxAAJ_AANBBI8pXKAAAaYBfLdmHwQ.png\n",
349
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4pTZuIwNhjePW-8OYQI1G_8AAJaAANBBI8ps8RvZQABKjM8HwQ.png\n",
350
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4pTZuIwNhjePW-8OYQI1G_8AAJaAANBBI8ps8RvZQABKjM8HwQ.png\n",
351
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4pU55hBWUHDJsrurMYmy22qAAISAANBBI8pYViCMam4I5cfBA.png\n",
352
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4pU55hBWUHDJsrurMYmy22qAAISAANBBI8pYViCMam4I5cfBA.png\n",
353
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4pW30sa5gnNljK4Qh9V1eeQAAIUAANBBI8pAd0KtNaKW8cfBA.png\n",
354
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4pW30sa5gnNljK4Qh9V1eeQAAIUAANBBI8pAd0KtNaKW8cfBA.png\n",
355
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4pxix6K5EmRr5sz_GsPx1WVAAIuAANBBI8pk7Zucv8wmTIfBA.png\n",
356
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4pxix6K5EmRr5sz_GsPx1WVAAIuAANBBI8pk7Zucv8wmTIfBA.png\n",
357
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4pYxSshrZ9YW7uhpjgH7fTPAAJcAANBBI8prso4sFJJ4zAfBA.png\n",
358
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4pYxSshrZ9YW7uhpjgH7fTPAAJcAANBBI8prso4sFJJ4zAfBA.png\n",
359
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4pzjBbMIy9gUK9GiVZh01kOAAKGAANBBI8p8_BOKAQ-QZ4fBA.png\n",
360
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4pzjBbMIy9gUK9GiVZh01kOAAKGAANBBI8p8_BOKAQ-QZ4fBA.png\n",
361
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4pzyUuICRYYvvr9y7Tg1kIbAAIMAANBBI8pTrJO4Zf3oMEfBA.png\n",
362
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4pzyUuICRYYvvr9y7Tg1kIbAAIMAANBBI8pTrJO4Zf3oMEfBA.png\n",
363
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4q3BuZhJNvSJFJDAyURGIycAAI8AANBBI8pWcWzjUYB2i8fBA.png\n",
364
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4q3BuZhJNvSJFJDAyURGIycAAI8AANBBI8pWcWzjUYB2i8fBA.png\n",
365
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4q3R9XmVPZG3C6Ygdu8aVYgAAJ-AANBBI8pRWwqoIxXcMYfBA.png\n",
366
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4q3R9XmVPZG3C6Ygdu8aVYgAAJ-AANBBI8pRWwqoIxXcMYfBA.png\n",
367
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4q9SaymeqjVlER_CgheQ9L0AAIZAANBBI8puSS9Wks4cNofBA.png\n",
368
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4q9SaymeqjVlER_CgheQ9L0AAIZAANBBI8puSS9Wks4cNofBA.png\n",
369
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4qCM3lBTlS3wv5PZiAY3yu1AAJdAANBBI8p3coC7GuLGr0fBA.png\n",
370
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4qCM3lBTlS3wv5PZiAY3yu1AAJdAANBBI8p3coC7GuLGr0fBA.png\n",
371
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4qdj_XNNlft2hTFG8GYW3gYAAKDAANBBI8pcTXTxQdA2xYfBA.png\n",
372
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4qdj_XNNlft2hTFG8GYW3gYAAKDAANBBI8pcTXTxQdA2xYfBA.png\n",
373
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4qDUQ5_Qy5_YcCRlpFe34-8AAI6AANBBI8ptxOBq0FmuhEfBA.png\n",
374
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4qDUQ5_Qy5_YcCRlpFe34-8AAI6AANBBI8ptxOBq0FmuhEfBA.png\n",
375
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4qg1sbu5-yEydwhwXsBiBkNAAIyAANBBI8phe7AL-LagXcfBA.png\n",
376
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4qg1sbu5-yEydwhwXsBiBkNAAIyAANBBI8phe7AL-LagXcfBA.png\n",
377
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4qGyNhu9YPJtJNbT-_qMgM9AAIVAANBBI8pRD8RPrU0ddMfBA.png\n",
378
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4qGyNhu9YPJtJNbT-_qMgM9AAIVAANBBI8pRD8RPrU0ddMfBA.png\n",
379
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4qipUmxGrBRG98ySKM16MIAA14AA0EEjyl5LXFbWyWz0R8E.png\n",
380
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4qipUmxGrBRG98ySKM16MIAA14AA0EEjyl5LXFbWyWz0R8E.png\n",
381
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4qjaO0uMEq3j5Y4kWq9MMKbAAIsAANBBI8pnBWaXwABn0iqHwQ.png\n",
382
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4qjaO0uMEq3j5Y4kWq9MMKbAAIsAANBBI8pnBWaXwABn0iqHwQ.png\n",
383
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4qK5_f9L97ZGJOl4-0DlH3GAAIhAANBBI8puz4iDxHA2VwfBA.png\n",
384
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4qK5_f9L97ZGJOl4-0DlH3GAAIhAANBBI8puz4iDxHA2VwfBA.png\n",
385
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4qmM2a3083_J0_j_3mwLuaqAAJXAANBBI8pqzCv0PPo0vYfBA.png\n",
386
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4qmM2a3083_J0_j_3mwLuaqAAJXAANBBI8pqzCv0PPo0vYfBA.png\n",
387
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4qmZlL4HiMYqyONVFi_Xvt_AAIkAANBBI8pSSRPC-FQEPwfBA.png\n",
388
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4qmZlL4HiMYqyONVFi_Xvt_AAIkAANBBI8pSSRPC-FQEPwfBA.png\n",
389
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4qRjS7j3Feda5cgmSoP5LwJAAKCAANBBI8psYSyoB13HIgfBA.png\n",
390
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4qRjS7j3Feda5cgmSoP5LwJAAKCAANBBI8psYSyoB13HIgfBA.png\n",
391
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4qxi1vW9xFLmDSjFcZNhRaXAAI7AANBBI8p0E6g8L5TvcQfBA.png\n",
392
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4qxi1vW9xFLmDSjFcZNhRaXAAI7AANBBI8p0E6g8L5TvcQfBA.png\n",
393
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4r1vVh6Hkp5O1rKoYTptm8vAAIPAANBBI8pw_9pHX7FN0MfBA.png\n",
394
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4r1vVh6Hkp5O1rKoYTptm8vAAIPAANBBI8pw_9pHX7FN0MfBA.png\n",
395
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4r4LPBGUURbRQKpFdDVayhAAAJYAANBBI8pfEZtXPgOuF4fBA.png\n",
396
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4r4LPBGUURbRQKpFdDVayhAAAJYAANBBI8pfEZtXPgOuF4fBA.png\n",
397
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4r5ZybDC6Q-u85jS7j4-2HOAAIrAANBBI8pOZr9k1agWegfBA.png\n",
398
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4r5ZybDC6Q-u85jS7j4-2HOAAIrAANBBI8pOZr9k1agWegfBA.png\n",
399
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4r6-su20V-ke5cfXJuhURBEAAIYAANBBI8pDfr4aUhtPoUfBA.png\n",
400
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4r6-su20V-ke5cfXJuhURBEAAIYAANBBI8pDfr4aUhtPoUfBA.png\n",
401
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4r8YX1yEh9SpuBN1BCjtFLoAAIvAANBBI8pDo33GIcBfFAfBA.png\n",
402
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4r8YX1yEh9SpuBN1BCjtFLoAAIvAANBBI8pDo33GIcBfFAfBA.png\n",
403
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4r8zQe9aLseMTdZL0Pf-1BuAAIoAANBBI8pvD92OhWGxK4fBA.png\n",
404
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4r8zQe9aLseMTdZL0Pf-1BuAAIoAANBBI8pvD92OhWGxK4fBA.png\n",
405
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4raC-WMfjtAOejcPZYeqI45AAKBAANBBI8pt3oUA5x5ZowfBA.png\n",
406
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4raC-WMfjtAOejcPZYeqI45AAKBAANBBI8pt3oUA5x5ZowfBA.png\n",
407
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4rb1BOdu_zzW5-OZvKijVeaAAIaAANBBI8pptGlvVBcVkIfBA.png\n",
408
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4rb1BOdu_zzW5-OZvKijVeaAAIaAANBBI8pptGlvVBcVkIfBA.png\n",
409
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4rC67EiJF9qJr4FscYVF8HpAAIxAANBBI8pUqelRZFWzIYfBA.png\n",
410
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4rC67EiJF9qJr4FscYVF8HpAAIxAANBBI8pUqelRZFWzIYfBA.png\n",
411
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4rEfkYesu52CkRrudtcDPTdAAIQAANBBI8pLzZtanK6UrkfBA.png\n",
412
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4rEfkYesu52CkRrudtcDPTdAAIQAANBBI8pLzZtanK6UrkfBA.png\n",
413
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4rGVxgxnu9GkI2W98vtikMrAAI3AANBBI8pnHomZSe5VMUfBA.png\n",
414
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4rGVxgxnu9GkI2W98vtikMrAAI3AANBBI8pnHomZSe5VMUfBA.png\n",
415
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4ri3Av3JrzwJCUJPlxa2FXgAAIgAANBBI8pJ0HKDyxOk1YfBA.png\n",
416
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4ri3Av3JrzwJCUJPlxa2FXgAAIgAANBBI8pJ0HKDyxOk1YfBA.png\n",
417
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4ri9L4J-bGMobm_tsUgmMpaAAIqAANBBI8pMg4awZgpbeMfBA.png\n",
418
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4ri9L4J-bGMobm_tsUgmMpaAAIqAANBBI8pMg4awZgpbeMfBA.png\n",
419
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4rjAQUZLgxPzylo0Drpc4tyAAIXAANBBI8p70JNJes4qJIfBA.png\n",
420
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4rjAQUZLgxPzylo0Drpc4tyAAIXAANBBI8p70JNJes4qJIfBA.png\n",
421
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4rJEj7J-YutbxRgXbgRciRXAAITAANBBI8prB6c7AqdBIIfBA.png\n",
422
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4rJEj7J-YutbxRgXbgRciRXAAITAANBBI8prB6c7AqdBIIfBA.png\n",
423
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4rnnk0UCW6--Qi5tGBnX9_0AAI4AANBBI8pcGMILuq54_UfBA.png\n",
424
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4rnnk0UCW6--Qi5tGBnX9_0AAI4AANBBI8pcGMILuq54_UfBA.png\n",
425
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4rpyU5asx952b5mEJsO15ZqAAIzAANBBI8pxeNFanxRHUcfBA.png\n",
426
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4rpyU5asx952b5mEJsO15ZqAAIzAANBBI8pxeNFanxRHUcfBA.png\n",
427
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4rTh1lf5Qcn42bU1u6OYfHnAAIiAANBBI8pFjwQpwFS2msfBA.png\n",
428
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4rTh1lf5Qcn42bU1u6OYfHnAAIiAANBBI8pFjwQpwFS2msfBA.png\n",
429
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4rUC7wE02pCmnhW4Tg_z5UyAAIjAANBBI8plb-6CTwxDvIfBA.png\n",
430
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4rUC7wE02pCmnhW4Tg_z5UyAAIjAANBBI8plb-6CTwxDvIfBA.png\n",
431
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4rVgPriAvX_LoFRt8z2bu7-AAKAAANBBI8puD-rIc7fBosfBA.png\n",
432
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4rVgPriAvX_LoFRt8z2bu7-AAKAAANBBI8puD-rIc7fBosfBA.png\n",
433
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4rXoOMn5sjDq9NYqPssNPhBAAIeAANBBI8pIOMc2v2XSjgfBA.png\n",
434
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4rXoOMn5sjDq9NYqPssNPhBAAIeAANBBI8pIOMc2v2XSjgfBA.png\n",
435
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4rYZJDtM0KiDFuqU8RRnx1IAAJbAANBBI8pd9DAsXZFgOMfBA.png\n",
436
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4rYZJDtM0KiDFuqU8RRnx1IAAJbAANBBI8pd9DAsXZFgOMfBA.png\n",
437
- "Warning: Tags file missing for CAACAgQAAxUAAWDTd4rztQKJ02KlC0xtxFOkGU9nAAIcAANBBI8pg71wEMvkoycfBA.png\n",
438
- "Warning: Caption file missing for CAACAgQAAxUAAWDTd4rztQKJ02KlC0xtxFOkGU9nAAIcAANBBI8pg71wEMvkoycfBA.png\n",
439
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvog9GmIrFZlV-zBnL3xj8ZtAAL4BwAC0SShUwZotdV14eXTHwQ.png\n",
440
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvog9GmIrFZlV-zBnL3xj8ZtAAL4BwAC0SShUwZotdV14eXTHwQ.png\n",
441
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvoitsW-U1GKzfSxaJ3K7p0SAAJ2CgACFNmgUzN71U3UdjGlHwQ.png\n",
442
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvoitsW-U1GKzfSxaJ3K7p0SAAJ2CgACFNmgUzN71U3UdjGlHwQ.png\n",
443
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvoSeDWizcI1rQxsjncK1qHrAAJLCAACFzuoUwnpuoEjrJA0HwQ.png\n",
444
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvoSeDWizcI1rQxsjncK1qHrAAJLCAACFzuoUwnpuoEjrJA0HwQ.png\n",
445
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvp7hhsEFEyAep0UdwVXDUQFAALFBwACI7TYU1Xg9yLFZ5pwHwQ.png\n",
446
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvp7hhsEFEyAep0UdwVXDUQFAALFBwACI7TYU1Xg9yLFZ5pwHwQ.png\n",
447
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvpbm7uK26ULWN-i320AAYkycAACIwwAArIN0FN6fdNS34DSgR8E.png\n",
448
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvpbm7uK26ULWN-i320AAYkycAACIwwAArIN0FN6fdNS34DSgR8E.png\n",
449
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvpi8TxyViAQ2oKssBd2VnIaAAJ6CAACCTTYU1_TpyeKu7T0HwQ.png\n",
450
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvpi8TxyViAQ2oKssBd2VnIaAAJ6CAACCTTYU1_TpyeKu7T0HwQ.png\n",
451
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvpJOi2IFxhBNapovsXuHXa9AAKrCgACUsbRU6Ao7E30qmJaHwQ.png\n",
452
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvpJOi2IFxhBNapovsXuHXa9AAKrCgACUsbRU6Ao7E30qmJaHwQ.png\n",
453
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvpnwvqLsNbzQlybuVvxrjxFAAKaCAACHj_QUyXkv7g-DyyvHwQ.png\n",
454
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvpnwvqLsNbzQlybuVvxrjxFAAKaCAACHj_QUyXkv7g-DyyvHwQ.png\n",
455
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvpWgIdo4MOC-hAugSWoKNjkAAKnCAACVDfYUxNV92mq8vGDHwQ.png\n",
456
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvpWgIdo4MOC-hAugSWoKNjkAAKnCAACVDfYUxNV92mq8vGDHwQ.png\n",
457
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvpZCGSke-GZy1YH7O4uFDIGAAITCAACs2qoUy_cI-sng66_HwQ.png\n",
458
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvpZCGSke-GZy1YH7O4uFDIGAAITCAACs2qoUy_cI-sng66_HwQ.png\n",
459
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvq1rn2Eww-IeE1klRlJkJK-AAJSCgACSMGgU3UeQzDjygmcHwQ.png\n",
460
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvq1rn2Eww-IeE1klRlJkJK-AAJSCgACSMGgU3UeQzDjygmcHwQ.png\n",
461
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvqUzHfGvXvAEUT_zR3U2lQAA-gIAAKBeKhTeqPs1ybXmqgfBA.png\n",
462
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvqUzHfGvXvAEUT_zR3U2lQAA-gIAAKBeKhTeqPs1ybXmqgfBA.png\n",
463
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvr0ThIYtfmhoRea6D_qywAB_wACRQ0AApdZoVMMc19yMSl0NB8E.png\n",
464
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvr0ThIYtfmhoRea6D_qywAB_wACRQ0AApdZoVMMc19yMSl0NB8E.png\n",
465
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvr37M2_9DVtMl3bL4Hl34FdAAIJDAAC8MqhU6FPY4s5SjWrHwQ.png\n",
466
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvr37M2_9DVtMl3bL4Hl34FdAAIJDAAC8MqhU6FPY4s5SjWrHwQ.png\n",
467
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvrb3rGZuGkmvUXxEi0eVkuoAAJ_CgACNwyhUw4YK-n_itKRHwQ.png\n",
468
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvrb3rGZuGkmvUXxEi0eVkuoAAJ_CgACNwyhUw4YK-n_itKRHwQ.png\n",
469
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvrjFMHvRNBoDSTZ8ubNI63VAAKyFQACiRugU1qHKmNJ0w1tHwQ.png\n",
470
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvrjFMHvRNBoDSTZ8ubNI63VAAKyFQACiRugU1qHKmNJ0w1tHwQ.png\n",
471
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvrVKhmAZdtBzlvTZlAdqjt9AAILCgACpCnZUzKsugmk18fKHwQ.png\n",
472
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvrVKhmAZdtBzlvTZlAdqjt9AAILCgACpCnZUzKsugmk18fKHwQ.png\n",
473
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvrWuA5Ef_O0xg5dFLT72OKZAAKkCAACo43RUztfC-7Mfi7GHwQ.png\n",
474
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvrWuA5Ef_O0xg5dFLT72OKZAAKkCAACo43RUztfC-7Mfi7GHwQ.png\n",
475
- "Warning: Tags file missing for CAACAgQAAxUAAWDTdvrXQbcQbROIz75PbiIdZ6Z3AALOCQACKSSoU1XGqQ01l1u2HwQ.png\n",
476
- "Warning: Caption file missing for CAACAgQAAxUAAWDTdvrXQbcQbROIz75PbiIdZ6Z3AALOCQACKSSoU1XGqQ01l1u2HwQ.png\n",
477
- "Warning: Tags file missing for CAACAgQAAxUAAWFII2whcPCb8fgeCFupyWchqLM-AAIpAwAC8cCUCUHb29sKklYdIAQ.png\n",
478
- "Warning: Caption file missing for CAACAgQAAxUAAWFII2whcPCb8fgeCFupyWchqLM-AAIpAwAC8cCUCUHb29sKklYdIAQ.png\n",
479
- "Warning: Tags file missing for CAACAgQAAxUAAWFII2wv3-U9VsjaOmlFFyhS9jhVAAInAwAC8cCUCbQZBeTjtii8IAQ.png\n",
480
- "Warning: Caption file missing for CAACAgQAAxUAAWFII2wv3-U9VsjaOmlFFyhS9jhVAAInAwAC8cCUCbQZBeTjtii8IAQ.png\n",
481
- "Warning: Tags file missing for CAACAgQAAxUAAWFIIVQG6QS2VmhitLBFzPVUGjAiAAIPAAPhgOIcWx-D6ml4AAGdIAQ.png\n",
482
- "Warning: Caption file missing for CAACAgQAAxUAAWFIIVQG6QS2VmhitLBFzPVUGjAiAAIPAAPhgOIcWx-D6ml4AAGdIAQ.png\n",
483
- "Warning: Tags file missing for CAACAgQAAxUAAWFIIVR-2Z4GBoAfL_0-BIx9ut3EAAIMAAPhgOIcLFs6iz-IXi8gBA.png\n",
484
- "Warning: Caption file missing for CAACAgQAAxUAAWFIIVR-2Z4GBoAfL_0-BIx9ut3EAAIMAAPhgOIcLFs6iz-IXi8gBA.png\n",
485
- "Warning: Tags file missing for CAACAgQAAxUAAWFIIVSFc2wSzVIbfzqmqiOCcqIgAAINAAPhgOIcHTIFJD4R4PAgBA.png\n",
486
- "Warning: Caption file missing for CAACAgQAAxUAAWFIIVSFc2wSzVIbfzqmqiOCcqIgAAINAAPhgOIcHTIFJD4R4PAgBA.png\n",
487
- "Warning: Tags file missing for CAACAgQAAxUAAWFIIVT6G2Zu0hKtRPHbY0SR2eDxAAILAAPhgOIcDJyMwuV7REUgBA.png\n",
488
- "Warning: Caption file missing for CAACAgQAAxUAAWFIIVT6G2Zu0hKtRPHbY0SR2eDxAAILAAPhgOIcDJyMwuV7REUgBA.png\n",
489
- "Warning: Tags file missing for CAACAgQAAxUAAWFIIVT9vhDtxOiWaRZa8mYAAUTyuAACDgAD4YDiHKtuj-GoerDDIAQ.png\n",
490
- "Warning: Caption file missing for CAACAgQAAxUAAWFIIVT9vhDtxOiWaRZa8mYAAUTyuAACDgAD4YDiHKtuj-GoerDDIAQ.png\n",
491
- "Warning: Tags file missing for CAACAgQAAxUAAWFIIVToyVqIdH9HypyqxZ24sJJnAAIQAAPhgOIcJhaRN2xHgawgBA.png\n",
492
- "Warning: Caption file missing for CAACAgQAAxUAAWFIIVToyVqIdH9HypyqxZ24sJJnAAIQAAPhgOIcJhaRN2xHgawgBA.png\n",
493
- "Warning: Tags file missing for CAACAgQAAxUAAWIi_gdBXbxnTDqmeg2GdyF6Iu6fAAJHCwACN_NpUTulV756qUZhIwQ.png\n",
494
- "Warning: Caption file missing for CAACAgQAAxUAAWIi_gdBXbxnTDqmeg2GdyF6Iu6fAAJHCwACN_NpUTulV756qUZhIwQ.png\n",
495
- "Warning: Tags file missing for CAACAgQAAxUAAWIi_gdd3JcFgUHXwNdJeNDNdkVqAAKECgACTKxoUXCka4rhmyrBIwQ.png\n",
496
- "Warning: Caption file missing for CAACAgQAAxUAAWIi_gdd3JcFgUHXwNdJeNDNdkVqAAKECgACTKxoUXCka4rhmyrBIwQ.png\n",
497
- "Warning: Tags file missing for CAACAgQAAxUAAWIi_gdeQOu5SfgbRhSjWNcpEt_7AAIDCgACUo9oUVj0WvyQlqwBIwQ.png\n",
498
- "Warning: Caption file missing for CAACAgQAAxUAAWIi_gdeQOu5SfgbRhSjWNcpEt_7AAIDCgACUo9oUVj0WvyQlqwBIwQ.png\n",
499
- "Warning: Tags file missing for CAACAgQAAxUAAWIi_gdGRl3_I5FAriw2sFr2-WyNAAKkCgACHk9oUd7hTzv27l5NIwQ.png\n",
500
- "Warning: Caption file missing for CAACAgQAAxUAAWIi_gdGRl3_I5FAriw2sFr2-WyNAAKkCgACHk9oUd7hTzv27l5NIwQ.png\n",
501
- "Warning: Tags file missing for CAACAgQAAxUAAWIi_geE9l_85GN13C2i5BX4CW6aAAJTCwACStdpUTv5aQABCL1INyME.png\n",
502
- "Warning: Caption file missing for CAACAgQAAxUAAWIi_geE9l_85GN13C2i5BX4CW6aAAJTCwACStdpUTv5aQABCL1INyME.png\n",
503
- "Warning: Tags file missing for CAACAgQAAxUAAWIi_gf-soqBePbcYNhrqCKVxE2dAALjCQACEAxoUfbsUStmpEztIwQ.png\n",
504
- "Warning: Caption file missing for CAACAgQAAxUAAWIi_gf-soqBePbcYNhrqCKVxE2dAALjCQACEAxoUfbsUStmpEztIwQ.png\n",
505
- "Warning: Tags file missing for CAACAgQAAxUAAWJHUcoF5JLPg-vPgZiXUzDZnzKaAAJXCwACfynpUnvPh7Zm5AzgIwQ.png\n",
506
- "Warning: Caption file missing for CAACAgQAAxUAAWJHUcoF5JLPg-vPgZiXUzDZnzKaAAJXCwACfynpUnvPh7Zm5AzgIwQ.png\n",
507
- "Warning: Tags file missing for CAACAgQAAxUAAWJHUcoYNXnluRMAAUh98gsRqlQXhAACgQ0AAm01sVA0pyC_mgr8BCME.png\n",
508
- "Warning: Caption file missing for CAACAgQAAxUAAWJHUcoYNXnluRMAAUh98gsRqlQXhAACgQ0AAm01sVA0pyC_mgr8BCME.png\n",
509
- "Warning: Tags file missing for CAACAgQAAxUAAWJHUcp5hBVhklRQjn2Wns3shoaTAALaCgACRl_hUn42bt6EBUL0IwQ.png\n",
510
- "Warning: Caption file missing for CAACAgQAAxUAAWJHUcp5hBVhklRQjn2Wns3shoaTAALaCgACRl_hUn42bt6EBUL0IwQ.png\n",
511
- "Warning: Tags file missing for CAACAgQAAxUAAWJHUcrx3YLYJKpS0bYSbyFO0yGSAAKWCgACEiewUF0idwTJdvEwIwQ.png\n",
512
- "Warning: Caption file missing for CAACAgQAAxUAAWJHUcrx3YLYJKpS0bYSbyFO0yGSAAKWCgACEiewUF0idwTJdvEwIwQ.png\n",
513
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZE66xWFogdvUDH5Ib_kv_veAAKTDgACY4YYUNYzVmpEZ4FOJAQ.png\n",
514
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZE66xWFogdvUDH5Ib_kv_veAAKTDgACY4YYUNYzVmpEZ4FOJAQ.png\n",
515
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZE9UhoJsRMVcQJ8qKGMtKCrAAIoCwACLEu5UhQwYj4vbcfiJAQ.png\n",
516
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZE9UhoJsRMVcQJ8qKGMtKCrAAIoCwACLEu5UhQwYj4vbcfiJAQ.png\n",
517
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZEcgkIAAc8KcwKxFdMSXoV3YgACmgwAAmoxMVMY_vl1JhoLbyQE.png\n",
518
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZEcgkIAAc8KcwKxFdMSXoV3YgACmgwAAmoxMVMY_vl1JhoLbyQE.png\n",
519
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZEO66-RN7bXtNyV-nY3IK99AAL1CwAC4CnIUDjqGdtJnK7gJAQ.png\n",
520
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZEO66-RN7bXtNyV-nY3IK99AAL1CwAC4CnIUDjqGdtJnK7gJAQ.png\n",
521
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZEO9s5jkscYy1YNKw504g56AALQCwACxgngUQ4JM9alJln4JAQ.png\n",
522
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZEO9s5jkscYy1YNKw504g56AALQCwACxgngUQ4JM9alJln4JAQ.png\n",
523
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZEXFaGvXPFhHMCddB5yi05nAAIQCwACu-7JUFBSrjHLeRm1JAQ.png\n",
524
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZEXFaGvXPFhHMCddB5yi05nAAIQCwACu-7JUFBSrjHLeRm1JAQ.png\n",
525
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZF2KLpWVe8nDq8WFCc7e_q_AALBCgACCJC5UthNWkayQMqZJAQ.png\n",
526
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZF2KLpWVe8nDq8WFCc7e_q_AALBCgACCJC5UthNWkayQMqZJAQ.png\n",
527
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZF7gdyukNMzAAEWDjhaeb-wvgACmgoAAmfeGFApvkLctdtBtCQE.png\n",
528
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZF7gdyukNMzAAEWDjhaeb-wvgACmgoAAmfeGFApvkLctdtBtCQE.png\n",
529
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZF7w9Wip-s4JBTru1Qq2Vr5AAJ8CQACkdvIUKZsdi9RDS6UJAQ.png\n",
530
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZF7w9Wip-s4JBTru1Qq2Vr5AAJ8CQACkdvIUKZsdi9RDS6UJAQ.png\n",
531
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZF8IQytpLLjrYvRlXlXs--yAAIMCQACx4bJUHE_WxEhfWVBJAQ.png\n",
532
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZF8IQytpLLjrYvRlXlXs--yAAIMCQACx4bJUHE_WxEhfWVBJAQ.png\n",
533
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZFae9FnPKEkk7Z5RJ_cb3cNAAK2CwACimEJUEKUIjZaaX-IJAQ.png\n",
534
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZFae9FnPKEkk7Z5RJ_cb3cNAAK2CwACimEJUEKUIjZaaX-IJAQ.png\n",
535
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZFd67845VCqzW_vv1xSFijvAAIJCwACX-S5UqC3EZIBWR4ZJAQ.png\n",
536
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZFd67845VCqzW_vv1xSFijvAAIJCwACX-S5UqC3EZIBWR4ZJAQ.png\n",
537
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZFhyde2jduFUoCP3YYT-r33AAIJDQACsqaZUiPFknLuBH8QJAQ.png\n",
538
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZFhyde2jduFUoCP3YYT-r33AAIJDQACsqaZUiPFknLuBH8QJAQ.png\n",
539
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZFqepPLpjEAAal5myHYnRWbFQACTAoAAsCfmVKXnzuioeDo7CQE.png\n",
540
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZFqepPLpjEAAal5myHYnRWbFQACTAoAAsCfmVKXnzuioeDo7CQE.png\n",
541
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZFRQQHYqFoJaxrmaw8Su4KaAAKVCgAC-nrgUaNhFURHjYLvJAQ.png\n",
542
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZFRQQHYqFoJaxrmaw8Su4KaAAKVCgAC-nrgUaNhFURHjYLvJAQ.png\n",
543
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZFXKRhtONLScKDF_d_sBJ6EAAIvEAACBwThUXwMvYhSrH8NJAQ.png\n",
544
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZFXKRhtONLScKDF_d_sBJ6EAAIvEAACBwThUXwMvYhSrH8NJAQ.png\n",
545
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZGGSKUZbcQUwhNTuc902LB_AAKzCQACrrwZUDxEZxZtvwuYJAQ.png\n",
546
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZGGSKUZbcQUwhNTuc902LB_AAKzCQACrrwZUDxEZxZtvwuYJAQ.png\n",
547
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZGmHNtVOvP49Y0B3y1WMvWPAAKqDAAC0RwAAVCWNsOpm_b5eCQE.png\n",
548
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZGmHNtVOvP49Y0B3y1WMvWPAAKqDAAC0RwAAVCWNsOpm_b5eCQE.png\n",
549
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZGQtcKuaMAjl8J2eCdgQrkkAAJECQACX7iZUnq0-SVkL3sRJAQ.png\n",
550
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZGQtcKuaMAjl8J2eCdgQrkkAAJECQACX7iZUnq0-SVkL3sRJAQ.png\n",
551
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZGVzXpahRtoSoOKfIiEtGuSAAIGCwACv6spUjB5rHSyqm1NJAQ.png\n",
552
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZGVzXpahRtoSoOKfIiEtGuSAAIGCwACv6spUjB5rHSyqm1NJAQ.png\n",
553
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZH6p1pR-1sHJ7C-IuH7wKKsAAKWCwACCR_YUTYhwCtob1JQJAQ.png\n",
554
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZH6p1pR-1sHJ7C-IuH7wKKsAAKWCwACCR_YUTYhwCtob1JQJAQ.png\n",
555
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZH6qFgRbdTrs6xUpoTziHjLAAKuCQACJVGYUkyjy-U5jX-bJAQ.png\n",
556
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZH6qFgRbdTrs6xUpoTziHjLAAKuCQACJVGYUkyjy-U5jX-bJAQ.png\n",
557
- "Warning: Tags file missing for CAACAgQAAxUAAWKBiZHogw9z8VcRfs3SzeN6ZzT2AAK6CQACYczIUBszy7T60UN7JAQ.png\n",
558
- "Warning: Caption file missing for CAACAgQAAxUAAWKBiZHogw9z8VcRfs3SzeN6ZzT2AAK6CQACYczIUBszy7T60UN7JAQ.png\n",
559
- "Warning: Tags file missing for CAACAgQAAxUAAWL2HZEG5vkZDNb6kDQiO_oAAZ-4gAACugoAAsH9cFN_JFMHbmkg3CkE.png\n",
560
- "Warning: Caption file missing for CAACAgQAAxUAAWL2HZEG5vkZDNb6kDQiO_oAAZ-4gAACugoAAsH9cFN_JFMHbmkg3CkE.png\n",
561
- "Warning: Tags file missing for CAACAgQAAxUAAWL2HZGaQRfaHEoiZBah6LalGAhWAAIqDAACRCZpU22SoVyY5nTCKQQ.png\n",
562
- "Warning: Caption file missing for CAACAgQAAxUAAWL2HZGaQRfaHEoiZBah6LalGAhWAAIqDAACRCZpU22SoVyY5nTCKQQ.png\n",
563
- "Warning: Tags file missing for CAACAgQAAxUAAWL2HZGHKBy9xxYhayCVpKpYy_gyAALrBgACKhgGA7W2MbfWrI1HKQQ.png\n",
564
- "Warning: Caption file missing for CAACAgQAAxUAAWL2HZGHKBy9xxYhayCVpKpYy_gyAALrBgACKhgGA7W2MbfWrI1HKQQ.png\n",
565
- "Warning: Tags file missing for CAACAgQAAxUAAWL2HZGzoMS9MNJwrU9FkE8xQB5bAALqBgACKhgGA5d-zEi36mr9KQQ.png\n",
566
- "Warning: Caption file missing for CAACAgQAAxUAAWL2HZGzoMS9MNJwrU9FkE8xQB5bAALqBgACKhgGA5d-zEi36mr9KQQ.png\n",
567
- "Warning: Tags file missing for CAACAgQAAxUAAWL2HZHo0Fpvy3_G4pfalEwM235zAAIzCgACipFoUw4nJpwB7HqrKQQ.png\n",
568
- "Warning: Caption file missing for CAACAgQAAxUAAWL2HZHo0Fpvy3_G4pfalEwM235zAAIzCgACipFoUw4nJpwB7HqrKQQ.png\n",
569
- "Warning: Tags file missing for CAACAgQAAxUAAWL2HZHvbMmFAsPl6BMeOTsdh1_GAAK7CgAClCFoU9wa9uAUvFlIKQQ.png\n",
570
- "Warning: Caption file missing for CAACAgQAAxUAAWL2HZHvbMmFAsPl6BMeOTsdh1_GAAK7CgAClCFoU9wa9uAUvFlIKQQ.png\n",
571
- "Warning: Tags file missing for CAACAgQAAxUAAWOCu2111TXt9Cb__qNSOLvK4MRAAAK4AAMzr7oHDp-Z9y6oJh8rBA.png\n",
572
- "Warning: Caption file missing for CAACAgQAAxUAAWOCu2111TXt9Cb__qNSOLvK4MRAAAK4AAMzr7oHDp-Z9y6oJh8rBA.png\n",
573
- "Warning: Tags file missing for CAACAgQAAxUAAWOCu21FidayIkjss6kTZ05_V6ogAAK9AAMzr7oH3ed-w6OMsLcrBA.png\n",
574
- "Warning: Caption file missing for CAACAgQAAxUAAWOCu21FidayIkjss6kTZ05_V6ogAAK9AAMzr7oH3ed-w6OMsLcrBA.png\n",
575
- "Warning: Tags file missing for CAACAgQAAxUAAWOCu22rfakH_-riLcjCEW7YJmtgAAK7AAMzr7oHfDi3R-It5eErBA.png\n",
576
- "Warning: Caption file missing for CAACAgQAAxUAAWOCu22rfakH_-riLcjCEW7YJmtgAAK7AAMzr7oHfDi3R-It5eErBA.png\n",
577
- "Warning: Tags file missing for CAACAgQAAxUAAWOCu22z3Ht34aNLfgQrywaCg1ixAAK8AAMzr7oH3moRXEazlzwrBA.png\n",
578
- "Warning: Caption file missing for CAACAgQAAxUAAWOCu22z3Ht34aNLfgQrywaCg1ixAAK8AAMzr7oH3moRXEazlzwrBA.png\n",
579
- "Warning: Tags file missing for CAACAgQAAxUAAWOCu23QWj6IpuMBccAlaWtTf_pXAAK6AAMzr7oHx-SCpovImTgrBA.png\n",
580
- "Warning: Caption file missing for CAACAgQAAxUAAWOCu23QWj6IpuMBccAlaWtTf_pXAAK6AAMzr7oHx-SCpovImTgrBA.png\n",
581
- "Warning: Tags file missing for CAACAgUAAxUAAWDTcR00nQV-nio-obEepwji9sVlAAITBwACrI3WApYaA7IKCJIHHwQ.png\n",
582
- "Warning: Caption file missing for CAACAgUAAxUAAWDTcR00nQV-nio-obEepwji9sVlAAITBwACrI3WApYaA7IKCJIHHwQ.png\n",
583
- "Warning: Tags file missing for CAACAgUAAxUAAWOCzQc7NXEyDPfUBH0uDPTR58NcAAICAwACFbXpVkEMr1pU2KSVKwQ.png\n",
584
- "Warning: Caption file missing for CAACAgUAAxUAAWOCzQc7NXEyDPfUBH0uDPTR58NcAAICAwACFbXpVkEMr1pU2KSVKwQ.png\n",
585
- "Warning: Tags file missing for CAACAgUAAxUAAWOCzQfHdt5Pf0O6hqRz2lIjPzoXAAKvAgAClrPpVlYIryhi8ylGKwQ.png\n",
586
- "Warning: Caption file missing for CAACAgUAAxUAAWOCzQfHdt5Pf0O6hqRz2lIjPzoXAAKvAgAClrPpVlYIryhi8ylGKwQ.png\n",
587
- "Warning: Tags file missing for Caz.png\n",
588
- "Warning: Caption file missing for Caz.png\n",
589
- "Warning: Tags file missing for Dally.png\n",
590
- "Warning: Caption file missing for Dally.png\n",
591
- "Warning: Tags file missing for Dem.png\n",
592
- "Warning: Caption file missing for Dem.png\n",
593
- "Warning: Tags file missing for Emarl.png\n",
594
- "Warning: Caption file missing for Emarl.png\n",
595
- "Warning: Tags file missing for Farfalle.png\n",
596
- "Warning: Caption file missing for Farfalle.png\n",
597
- "Warning: Tags file missing for Fialovy.png\n",
598
- "Warning: Caption file missing for Fialovy.png\n",
599
- "Warning: Tags file missing for GenericDefault.png\n",
600
- "Warning: Caption file missing for GenericDefault.png\n",
601
- "Warning: Tags file missing for Koiley.png\n",
602
- "Warning: Caption file missing for Koiley.png\n",
603
- "Warning: Tags file missing for Kyto.png\n",
604
- "Warning: Caption file missing for Kyto.png\n",
605
- "Warning: Tags file missing for Lyx.png\n",
606
- "Warning: Caption file missing for Lyx.png\n",
607
- "Warning: Tags file missing for Mango.png\n",
608
- "Warning: Caption file missing for Mango.png\n",
609
- "Warning: Tags file missing for Meeps.png\n",
610
- "Warning: Caption file missing for Meeps.png\n",
611
- "Warning: Tags file missing for Midnight.png\n",
612
- "Warning: Caption file missing for Midnight.png\n",
613
- "Warning: Tags file missing for Movi.png\n",
614
- "Warning: Caption file missing for Movi.png\n",
615
- "Warning: Tags file missing for Neev.png\n",
616
- "Warning: Caption file missing for Neev.png\n",
617
- "Warning: Tags file missing for Otter.png\n",
618
- "Warning: Caption file missing for Otter.png\n",
619
- "Warning: Tags file missing for Raditas.png\n",
620
- "Warning: Caption file missing for Raditas.png\n",
621
- "Warning: Tags file missing for Raijen.png\n",
622
- "Warning: Caption file missing for Raijen.png\n",
623
- "Warning: Tags file missing for Rogue.png\n",
624
- "Warning: Caption file missing for Rogue.png\n",
625
- "Processed Seven.png successfully.\n",
626
- "Processed Sevrah.png successfully.\n",
627
- "Processed Soukuugo.png successfully.\n",
628
- "Warning: Tags file missing for West2.png\n",
629
- "Warning: Caption file missing for West2.png\n"
630
- ]
631
- }
632
- ],
633
- "source": [
634
- "import os\n",
635
- "\n",
636
- "def process_image_files(directory):\n",
637
- " \"\"\"\n",
638
- " Process image files in the given directory. For each image file (.jpeg, .jpg, .png),\n",
639
- " if corresponding tags and caption files exist, combine the tags (.tags) and caption (.caption)\n",
640
- " into a single text file (.txt) with tags followed by caption separated by a comma. Additionally,\n",
641
- " the caption will have the following modifications:\n",
642
- " - Each sentence will have commas inside sentences stripped from them.\n",
643
- " - Each sentence will end with a period followed by a comma.\n",
644
- " - Any parentheses in the tags will be escaped with a backslash.\n",
645
- "\n",
646
- " Parameters:\n",
647
- " directory (str): The directory path containing image files and associated tags\n",
648
- " and caption files.\n",
649
- " \"\"\"\n",
650
- " for root, dirs, files in os.walk(directory):\n",
651
- " for file in files:\n",
652
- " if file.lower().endswith(('.jpeg', '.jpg', '.png')):\n",
653
- " image_name, _ = os.path.splitext(file)\n",
654
- " tags_file = os.path.join(root, image_name + '.tags')\n",
655
- " caption_file = os.path.join(root, image_name + '.caption')\n",
656
- " txt_file = os.path.join(root, image_name + '.txt')\n",
657
- " \n",
658
- " if os.path.exists(tags_file) and os.path.exists(caption_file):\n",
659
- " with open(tags_file, 'r') as f:\n",
660
- " tags = f.read().strip()\n",
661
- " tags = tags.replace('(', '\\\\(').replace(')', '\\\\)')\n",
662
- " with open(caption_file, 'r') as f:\n",
663
- " caption = f.read().strip()\n",
664
- " caption = caption.replace(', ', ' ')\n",
665
- " caption = caption.replace('.', '.,')\n",
666
- " caption = caption.rstrip(',')\n",
667
- " \n",
668
- " with open(txt_file, 'w') as f:\n",
669
- " f.write(tags + ', ' + caption)\n",
670
- " print(f\"Processed {file} successfully.\")\n",
671
- " else:\n",
672
- " if not os.path.exists(tags_file):\n",
673
- " print(f\"Warning: Tags file missing for {file}\")\n",
674
- " if not os.path.exists(caption_file):\n",
675
- " print(f\"Warning: Caption file missing for {file}\")\n",
676
- "\n",
677
- "directory = r'C:\\Users\\kade\\Desktop\\training_dir_staging'\n",
678
- "process_image_files(directory)"
679
- ]
680
- }
681
- ],
682
- "metadata": {
683
- "kernelspec": {
684
- "display_name": "base",
685
- "language": "python",
686
- "name": "python3"
687
- },
688
- "language_info": {
689
- "codemirror_mode": {
690
- "name": "ipython",
691
- "version": 3
692
- },
693
- "file_extension": ".py",
694
- "mimetype": "text/x-python",
695
- "name": "python",
696
- "nbconvert_exporter": "python",
697
- "pygments_lexer": "ipython3",
698
- "version": "3.12.2"
699
- }
700
- },
701
- "nbformat": 4,
702
- "nbformat_minor": 2
703
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Convert WebP to PNG.ipynb DELETED
@@ -1,77 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## Convert `.webp` to `.png`\n",
8
- "----\n",
9
- "\n",
10
- "This script converts all WebP images in a specified directory and its subdirectories to PNG format. It utilizes the `os` module to navigate through the directory structure and the `PIL` (Python Imaging Library) module's `Image` class to handle image processing. The function `convert_webp_to_png(directory)` takes a directory path as input, iterates through all files in that directory (including subdirectories), identifies WebP files based on their extension, converts them to PNG format, and saves the converted images in the same location. If conversion is successful, it also removes the original WebP files. If any errors occur during conversion, it prints an error message with details."
11
- ]
12
- },
13
- {
14
- "cell_type": "code",
15
- "execution_count": 1,
16
- "metadata": {},
17
- "outputs": [
18
- {
19
- "name": "stdout",
20
- "output_type": "stream",
21
- "text": [
22
- "Converted C:\\Users\\kade\\Desktop\\ayaya\\497f176b92d00fa048723b2df8caa0148ffdf8a7_high.webp to C:\\Users\\kade\\Desktop\\ayaya\\497f176b92d00fa048723b2df8caa0148ffdf8a7_high.png\n",
23
- "Converted E:\\training_dir\\_\\2Va3uwI-cQCarU2e7Bz30MSWVDYtejU0ByigESJ0h2A.webp to E:\\training_dir\\_\\2Va3uwI-cQCarU2e7Bz30MSWVDYtejU0ByigESJ0h2A.png\n",
24
- "Converted E:\\training_dir\\_\\iee8nodoji731.webp to E:\\training_dir\\_\\iee8nodoji731.png\n"
25
- ]
26
- }
27
- ],
28
- "source": [
29
- "import os\n",
30
- "from PIL import Image\n",
31
- "\n",
32
- "def convert_webp_to_png(directory):\n",
33
- " for root, dirs, files in os.walk(directory):\n",
34
- " for file in files:\n",
35
- " if file.lower().endswith('.webp'):\n",
36
- " webp_path = os.path.join(root, file)\n",
37
- " png_path = os.path.splitext(webp_path)[0] + '.png'\n",
38
- " try:\n",
39
- " with Image.open(webp_path) as img:\n",
40
- " img.save(png_path, format='PNG')\n",
41
- "\n",
42
- " os.remove(webp_path)\n",
43
- " print(f\"Converted {webp_path} to {png_path}\")\n",
44
- " except Exception as e:\n",
45
- " print(f\"Error converting {webp_path}: {e}\")\n",
46
- "\n",
47
- "directory = r'C:\\Users\\kade\\Desktop\\training_dir_staging'\n",
48
- "convert_webp_to_png(directory)\n",
49
- "directory = r'C:\\Users\\kade\\Desktop\\ayaya'\n",
50
- "convert_webp_to_png(directory)\n",
51
- "#directory = r'E:\\training_dir'\n",
52
- "#convert_webp_to_png(directory)"
53
- ]
54
- }
55
- ],
56
- "metadata": {
57
- "kernelspec": {
58
- "display_name": "Python 3",
59
- "language": "python",
60
- "name": "python3"
61
- },
62
- "language_info": {
63
- "codemirror_mode": {
64
- "name": "ipython",
65
- "version": 3
66
- },
67
- "file_extension": ".py",
68
- "mimetype": "text/x-python",
69
- "name": "python",
70
- "nbconvert_exporter": "python",
71
- "pygments_lexer": "ipython3",
72
- "version": "3.12.3"
73
- }
74
- },
75
- "nbformat": 4,
76
- "nbformat_minor": 2
77
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Count Tokens in Sample Prompts.ipynb DELETED
@@ -1,509 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "# Count Tokens in Sample Prompts\n",
8
- "\n",
9
- "---\n",
10
- "\n",
11
- "This script is a utility for analyzing prompts in text files, counting the tokens for each sample prompt, and displaying the results in a visually appealing table format using the Rich library. It also provides a warning if the positive prompt's token count exceeds a certain threshold (77 in this case).\n",
12
- "\n",
13
- "This script is designed to process text files containing positive and negative prompts, count the number of tokens for each prompt, and display the results in a tabular format using the Rich library.\n",
14
- "\n",
15
- "1. It imports the necessary libraries: `os` for file and directory operations, `tiktoken` for encoding and counting tokens, and `rich.console` and `rich.table` for creating a console interface and a table for displaying the results.\n",
16
- "\n",
17
- "2. The `count_tokens` function takes a text input and returns the number of tokens in that text using the `tiktoken` library's `cl100k_base` encoding.\n",
18
- "\n",
19
- "3. The script creates a `Console` object from the `rich` library.\n",
20
- "\n",
21
- "4. It iterates through all files in the `E:\\training_dir` directory that end with `-sample-prompts.txt`.\n",
22
- "\n",
23
- "5. For each file, it opens the file and reads its contents line by line.\n",
24
- "\n",
25
- "6. Each line is expected to be in the format `<positive_prompt> --n <negative_prompt> --<additional_arguments>`. The script splits the line at `--n` to separate the positive and negative prompts. As it works in \n",
26
- "\n",
27
- "7. It counts the number of tokens for both the positive and negative prompts using the `count_tokens` function.\n",
28
- "\n",
29
- "8. A `Table` object from the `rich` library is created, and the positive and negative prompts, along with their token counts, are added to the table as separate rows. The positive prompts are displayed in green, and the negative prompts are displayed in red.\n",
30
- "\n",
31
- "9. The table is printed to the console using the `Console.print` method.\n",
32
- "\n",
33
- "10. If the positive prompt's token count exceeds 77 (75 plus a buffer of 2), a warning message is printed in bold red.\n",
34
- "\n",
35
- "11. The script keeps track of the total number of prompts processed in the current file and prints it at the end."
36
- ]
37
- },
38
- {
39
- "cell_type": "code",
40
- "execution_count": 9,
41
- "metadata": {},
42
- "outputs": [
43
- {
44
- "data": {
45
- "text/html": [
46
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Processing file: E:\\training_dir\\furrysticker-sample-prompts.txt\n",
47
- "</pre>\n"
48
- ],
49
- "text/plain": [
50
- "Processing file: E:\\training_dir\\furrysticker-sample-prompts.txt\n"
51
- ]
52
- },
53
- "metadata": {},
54
- "output_type": "display_data"
55
- },
56
- {
57
- "data": {
58
- "text/html": [
59
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
60
- "┃<span style=\"font-weight: bold\"> Prompt Type </span>┃<span style=\"font-weight: bold\"> Prompt </span>┃<span style=\"font-weight: bold\"> Token Count </span>┃\n",
61
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
62
- "│ <span style=\"color: #008000; text-decoration-color: #008000\">Positive</span> │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, solo, │ 77 │\n",
63
- "│ │ anthro male magic user wolf, purple wizard hat, purple wizard robe, green eyes, │ │\n",
64
- "│ │ humanoid hands, claws, pointing up with one hand, \\(white fur:1.4\\), furry sticker, │ │\n",
65
- "│ │ simple background, black background, white outline │ │\n",
66
- "│ <span style=\"color: #800000; text-decoration-color: #800000\">Negative</span> │ low quality, worst quality, blurry, sticker │ 9 │\n",
67
- "└─────────────┴───────────���─────────────────────────────────────────────────────────────────────────┴─────────────┘\n",
68
- "</pre>\n"
69
- ],
70
- "text/plain": [
71
- "┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
72
- "┃\u001b[1m \u001b[0m\u001b[1mPrompt Type\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mPrompt \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mToken Count\u001b[0m\u001b[1m \u001b[0m┃\n",
73
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
74
- "│ \u001b[32mPositive\u001b[0m │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, solo, │ 77 │\n",
75
- "│ │ anthro male magic user wolf, purple wizard hat, purple wizard robe, green eyes, │ │\n",
76
- "│ │ humanoid hands, claws, pointing up with one hand, \\(white fur:1.4\\), furry sticker, │ │\n",
77
- "│ │ simple background, black background, white outline │ │\n",
78
- "│ \u001b[31mNegative\u001b[0m │ low quality, worst quality, blurry, sticker │ 9 │\n",
79
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n"
80
- ]
81
- },
82
- "metadata": {},
83
- "output_type": "display_data"
84
- },
85
- {
86
- "data": {
87
- "text/html": [
88
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
89
- "┃<span style=\"font-weight: bold\"> Prompt Type </span>┃<span style=\"font-weight: bold\"> Prompt </span>┃<span style=\"font-weight: bold\"> Token Count </span>┃\n",
90
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
91
- "│ <span style=\"color: #008000; text-decoration-color: #008000\">Positive</span> │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, solo, │ 62 │\n",
92
- "│ │ anthro male fox, red fur, he has blue eyes with a stark gaze, dialogue bubble, text │ │\n",
93
- "│ │ box, furry sticker, simple background, black background, white outline │ │\n",
94
- "│ <span style=\"color: #800000; text-decoration-color: #800000\">Negative</span> │ low quality, worst quality, blurry, sticker │ 9 │\n",
95
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n",
96
- "</pre>\n"
97
- ],
98
- "text/plain": [
99
- "┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
100
- "┃\u001b[1m \u001b[0m\u001b[1mPrompt Type\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mPrompt \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mToken Count\u001b[0m\u001b[1m \u001b[0m┃\n",
101
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
102
- "│ \u001b[32mPositive\u001b[0m │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, solo, │ 62 │\n",
103
- "│ │ anthro male fox, red fur, he has blue eyes with a stark gaze, dialogue bubble, text │ │\n",
104
- "│ │ box, furry sticker, simple background, black background, white outline │ │\n",
105
- "│ \u001b[31mNegative\u001b[0m │ low quality, worst quality, blurry, sticker │ 9 │\n",
106
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n"
107
- ]
108
- },
109
- "metadata": {},
110
- "output_type": "display_data"
111
- },
112
- {
113
- "data": {
114
- "text/html": [
115
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
116
- "┃<span style=\"font-weight: bold\"> Prompt Type </span>┃<span style=\"font-weight: bold\"> Prompt </span>┃<span style=\"font-weight: bold\"> Token Count </span>┃\n",
117
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
118
- "│ <span style=\"color: #008000; text-decoration-color: #008000\">Positive</span> │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, solo, │ 50 │\n",
119
- "│ │ anthro female red panda, she has amber eyes, furry sticker, simple background, │ │\n",
120
- "│ │ black background, white outline │ │\n",
121
- "│ <span style=\"color: #800000; text-decoration-color: #800000\">Negative</span> │ low quality, worst quality, blurry, sticker │ 9 │\n",
122
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n",
123
- "</pre>\n"
124
- ],
125
- "text/plain": [
126
- "┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
127
- "┃\u001b[1m \u001b[0m\u001b[1mPrompt Type\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mPrompt \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mToken Count\u001b[0m\u001b[1m \u001b[0m┃\n",
128
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
129
- "│ \u001b[32mPositive\u001b[0m │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, solo, │ 50 │\n",
130
- "│ │ anthro female red panda, she has amber eyes, furry sticker, simple background, │ │\n",
131
- "│ │ black background, white outline │ │\n",
132
- "│ \u001b[31mNegative\u001b[0m │ low quality, worst quality, blurry, sticker │ 9 │\n",
133
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n"
134
- ]
135
- },
136
- "metadata": {},
137
- "output_type": "display_data"
138
- },
139
- {
140
- "data": {
141
- "text/html": [
142
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
143
- "┃<span style=\"font-weight: bold\"> Prompt Type </span>┃<span style=\"font-weight: bold\"> Prompt </span>┃<span style=\"font-weight: bold\"> Token Count </span>┃\n",
144
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
145
- "│ <span style=\"color: #008000; text-decoration-color: #008000\">Positive</span> │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, solo, │ 62 │\n",
146
- "│ │ anthro female lizard, blue scales, white body, scalie, long white claws, she has │ │\n",
147
- "│ │ yellow eyes, furry sticker, simple background, black background, white outline │ │\n",
148
- "│ <span style=\"color: #800000; text-decoration-color: #800000\">Negative</span> │ low quality, worst quality, blurry, sticker │ 9 │\n",
149
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n",
150
- "</pre>\n"
151
- ],
152
- "text/plain": [
153
- "┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
154
- "┃\u001b[1m \u001b[0m\u001b[1mPrompt Type\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mPrompt \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mToken Count\u001b[0m\u001b[1m \u001b[0m┃\n",
155
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
156
- "│ \u001b[32mPositive\u001b[0m │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, solo, │ 62 │\n",
157
- "│ │ anthro female lizard, blue scales, white body, scalie, long white claws, she has │ │\n",
158
- "│ │ yellow eyes, furry sticker, simple background, black background, white outline │ │\n",
159
- "│ \u001b[31mNegative\u001b[0m │ low quality, worst quality, blurry, sticker │ 9 │\n",
160
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n"
161
- ]
162
- },
163
- "metadata": {},
164
- "output_type": "display_data"
165
- },
166
- {
167
- "data": {
168
- "text/html": [
169
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Total number of prompts in furrysticker-sample-prompts.txt: </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>\n",
170
- "</pre>\n"
171
- ],
172
- "text/plain": [
173
- "\u001b[1mTotal number of prompts in furrysticker-sample-prompts.txt: \u001b[0m\u001b[1;36m4\u001b[0m\n"
174
- ]
175
- },
176
- "metadata": {},
177
- "output_type": "display_data"
178
- },
179
- {
180
- "data": {
181
- "text/html": [
182
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Processing file: E:\\training_dir\\realistic-sample-prompts.txt\n",
183
- "</pre>\n"
184
- ],
185
- "text/plain": [
186
- "Processing file: E:\\training_dir\\realistic-sample-prompts.txt\n"
187
- ]
188
- },
189
- "metadata": {},
190
- "output_type": "display_data"
191
- },
192
- {
193
- "data": {
194
- "text/html": [
195
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
196
- "┃<span style=\"font-weight: bold\"> Prompt Type </span>┃<span style=\"font-weight: bold\"> Prompt </span>┃<span style=\"font-weight: bold\"> Token Count </span>┃\n",
197
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
198
- "│ <span style=\"color: #008000; text-decoration-color: #008000\">Positive</span> │ score_9, score_8_up, score_7_up, score_6_up, rating_explicit, source_furry, solo, │ 60 │\n",
199
- "│ │ female anthro kindred, mask, presenting, white pillow, bedroom, looking at viewer, │ │\n",
200
- "│ │ detailed background, amazing_background, scenery porn, realistic, photo │ │\n",
201
- "│ <span style=\"color: #800000; text-decoration-color: #800000\">Negative</span> │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
202
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n",
203
- "</pre>\n"
204
- ],
205
- "text/plain": [
206
- "┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
207
- "┃\u001b[1m \u001b[0m\u001b[1mPrompt Type\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mPrompt \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mToken Count\u001b[0m\u001b[1m \u001b[0m┃\n",
208
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
209
- "│ \u001b[32mPositive\u001b[0m │ score_9, score_8_up, score_7_up, score_6_up, rating_explicit, source_furry, solo, │ 60 │\n",
210
- "│ │ female anthro kindred, mask, presenting, white pillow, bedroom, looking at viewer, │ │\n",
211
- "│ │ detailed background, amazing_background, scenery porn, realistic, photo │ │\n",
212
- "│ \u001b[31mNegative\u001b[0m │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
213
- "└─────────────┴──────────────��──────────────────────────────────────────────────────────────────────┴─────────────┘\n"
214
- ]
215
- },
216
- "metadata": {},
217
- "output_type": "display_data"
218
- },
219
- {
220
- "data": {
221
- "text/html": [
222
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
223
- "┃<span style=\"font-weight: bold\"> Prompt Type </span>┃<span style=\"font-weight: bold\"> Prompt </span>┃<span style=\"font-weight: bold\"> Token Count </span>┃\n",
224
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
225
- "│ <span style=\"color: #008000; text-decoration-color: #008000\">Positive</span> │ score_9, score_8_up, score_7_up, score_6_up, rating_explicit, source_furry, solo, │ 70 │\n",
226
- "│ │ anthro female wolf, sexy pose, standing, gray fur, brown fur, canine pussy, black │ │\n",
227
- "│ │ nose, blue eyes, pink areola, pink nipples, detailed background, │ │\n",
228
- "│ │ amazing_background, realistic, photo │ │\n",
229
- "│ <span style=\"color: #800000; text-decoration-color: #800000\">Negative</span> │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
230
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n",
231
- "</pre>\n"
232
- ],
233
- "text/plain": [
234
- "┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
235
- "┃\u001b[1m \u001b[0m\u001b[1mPrompt Type\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mPrompt \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mToken Count\u001b[0m\u001b[1m \u001b[0m┃\n",
236
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
237
- "│ \u001b[32mPositive\u001b[0m │ score_9, score_8_up, score_7_up, score_6_up, rating_explicit, source_furry, solo, │ 70 │\n",
238
- "│ │ anthro female wolf, sexy pose, standing, gray fur, brown fur, canine pussy, black │ │\n",
239
- "│ │ nose, blue eyes, pink areola, pink nipples, detailed background, │ │\n",
240
- "│ │ amazing_background, realistic, photo │ │\n",
241
- "│ \u001b[31mNegative\u001b[0m │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
242
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n"
243
- ]
244
- },
245
- "metadata": {},
246
- "output_type": "display_data"
247
- },
248
- {
249
- "data": {
250
- "text/html": [
251
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
252
- "┃<span style=\"font-weight: bold\"> Prompt Type </span>┃<span style=\"font-weight: bold\"> Prompt </span>┃<span style=\"font-weight: bold\"> Token Count </span>┃\n",
253
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
254
- "│ <span style=\"color: #008000; text-decoration-color: #008000\">Positive</span> │ score_9, score_8_up, score_7_up, score_6_up, rating_explicit, source_furry, solo, │ 73 │\n",
255
- "│ │ anthro male fox, glowing yellow eyes, night, crescent moon, gold bracers and │ │\n",
256
- "│ │ necklace, loincloth, canine genitalia, knot, amazing_background, scenery porn, │ │\n",
257
- "│ │ white marble ruins, realistic, photo │ │\n",
258
- "│ <span style=\"color: #800000; text-decoration-color: #800000\">Negative</span> │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
259
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n",
260
- "</pre>\n"
261
- ],
262
- "text/plain": [
263
- "┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
264
- "┃\u001b[1m \u001b[0m\u001b[1mPrompt Type\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mPrompt \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mToken Count\u001b[0m\u001b[1m \u001b[0m┃\n",
265
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
266
- "│ \u001b[32mPositive\u001b[0m │ score_9, score_8_up, score_7_up, score_6_up, rating_explicit, source_furry, solo, │ 73 │\n",
267
- "│ │ anthro male fox, glowing yellow eyes, night, crescent moon, gold bracers and │ │\n",
268
- "│ │ necklace, loincloth, canine genitalia, knot, amazing_background, scenery porn, │ │\n",
269
- "│ │ white marble ruins, realistic, photo │ │\n",
270
- "│ \u001b[31mNegative\u001b[0m │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
271
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n"
272
- ]
273
- },
274
- "metadata": {},
275
- "output_type": "display_data"
276
- },
277
- {
278
- "data": {
279
- "text/html": [
280
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
281
- "┃<span style=\"font-weight: bold\"> Prompt Type </span>┃<span style=\"font-weight: bold\"> Prompt </span>┃<span style=\"font-weight: bold\"> Token Count </span>┃\n",
282
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
283
- "│ <span style=\"color: #008000; text-decoration-color: #008000\">Positive</span> │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, solo, │ 74 │\n",
284
- "│ │ full-length portrait, anthro female red panda, detailed background, │ │\n",
285
- "│ │ amazing_background, pussy, scenery porn, photo, realistic, looking at viewer, on │ │\n",
286
- "│ │ back, sexy pose, humanoid hands, claws, pink areola, pink nipples │ │\n",
287
- "│ <span style=\"color: #800000; text-decoration-color: #800000\">Negative</span> │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
288
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n",
289
- "</pre>\n"
290
- ],
291
- "text/plain": [
292
- "┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
293
- "┃\u001b[1m \u001b[0m\u001b[1mPrompt Type\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mPrompt \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mToken Count\u001b[0m\u001b[1m \u001b[0m┃\n",
294
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
295
- "│ \u001b[32mPositive\u001b[0m │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, solo, │ 74 │\n",
296
- "│ │ full-length portrait, anthro female red panda, detailed background, │ │\n",
297
- "│ │ amazing_background, pussy, scenery porn, photo, realistic, looking at viewer, on │ │\n",
298
- "│ │ back, sexy pose, humanoid hands, claws, pink areola, pink nipples │ │\n",
299
- "│ \u001b[31mNegative\u001b[0m │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
300
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n"
301
- ]
302
- },
303
- "metadata": {},
304
- "output_type": "display_data"
305
- },
306
- {
307
- "data": {
308
- "text/html": [
309
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
310
- "┃<span style=\"font-weight: bold\"> Prompt Type </span>┃<span style=\"font-weight: bold\"> Prompt </span>┃<span style=\"font-weight: bold\"> Token Count </span>┃\n",
311
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
312
- "│ <span style=\"color: #008000; text-decoration-color: #008000\">Positive</span> │ score_9, score_8_up, score_7_up, rating_explicit, source_furry, solo, full-length │ 69 │\n",
313
- "│ │ portrait, anthro female snow leopard, pussy, pink nipples, pink areola, detailed │ │\n",
314
- "│ │ background, amazing_background, scenery porn, snowy mountain peak, on back, sexy │ │\n",
315
- "│ │ pose, looking at viewer, realistic, photo │ │\n",
316
- "│ <span style=\"color: #800000; text-decoration-color: #800000\">Negative</span> │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
317
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n",
318
- "</pre>\n"
319
- ],
320
- "text/plain": [
321
- "┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
322
- "┃\u001b[1m \u001b[0m\u001b[1mPrompt Type\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mPrompt \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mToken Count\u001b[0m\u001b[1m \u001b[0m┃\n",
323
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
324
- "│ \u001b[32mPositive\u001b[0m │ score_9, score_8_up, score_7_up, rating_explicit, source_furry, solo, full-length │ 69 │\n",
325
- "│ │ portrait, anthro female snow leopard, pussy, pink nipples, pink areola, detailed │ │\n",
326
- "│ │ background, amazing_background, scenery porn, snowy mountain peak, on back, sexy │ │\n",
327
- "│ │ pose, looking at viewer, realistic, photo │ │\n",
328
- "│ \u001b[31mNegative\u001b[0m │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
329
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n"
330
- ]
331
- },
332
- "metadata": {},
333
- "output_type": "display_data"
334
- },
335
- {
336
- "data": {
337
- "text/html": [
338
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
339
- "┃<span style=\"font-weight: bold\"> Prompt Type </span>┃<span style=\"font-weight: bold\"> Prompt </span>┃<span style=\"font-weight: bold\"> Token Count </span>┃\n",
340
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
341
- "│ <span style=\"color: #008000; text-decoration-color: #008000\">Positive</span> │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, portrait, │ 71 │\n",
342
- "│ │ an anthro male wolf, black nose, (white fur:1.2), monotone fur, green eyes, purple │ │\n",
343
- "│ │ wizard hat, purple wizard robe, detailed background, amazing_background, forest, │ │\n",
344
- "│ │ realistic, photo │ │\n",
345
- "│ <span style=\"color: #800000; text-decoration-color: #800000\">Negative</span> │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
346
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n",
347
- "</pre>\n"
348
- ],
349
- "text/plain": [
350
- "┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
351
- "┃\u001b[1m \u001b[0m\u001b[1mPrompt Type\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mPrompt \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mToken Count\u001b[0m\u001b[1m \u001b[0m┃\n",
352
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
353
- "│ \u001b[32mPositive\u001b[0m │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, portrait, │ 71 │\n",
354
- "│ │ an anthro male wolf, black nose, (white fur:1.2), monotone fur, green eyes, purple │ │\n",
355
- "│ │ wizard hat, purple wizard robe, detailed background, amazing_background, forest, │ │\n",
356
- "│ │ realistic, photo │ │\n",
357
- "│ \u001b[31mNegative\u001b[0m │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
358
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n"
359
- ]
360
- },
361
- "metadata": {},
362
- "output_type": "display_data"
363
- },
364
- {
365
- "data": {
366
- "text/html": [
367
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
368
- "┃<span style=\"font-weight: bold\"> Prompt Type </span>┃<span style=\"font-weight: bold\"> Prompt </span>┃<span style=\"font-weight: bold\"> Token Count </span>┃\n",
369
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
370
- "│ <span style=\"color: #008000; text-decoration-color: #008000\">Positive</span> │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, portrait, │ 65 │\n",
371
- "│ │ anthro male dragon, scale iridescence, detailed background, amazing_background, │ │\n",
372
- "│ │ scenery porn, snowy mountain peak, on back, sexy pose, looking at viewer, │ │\n",
373
- "│ │ realistic, photo │ │\n",
374
- "│ <span style=\"color: #800000; text-decoration-color: #800000\">Negative</span> │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
375
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n",
376
- "</pre>\n"
377
- ],
378
- "text/plain": [
379
- "┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
380
- "┃\u001b[1m \u001b[0m\u001b[1mPrompt Type\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mPrompt \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mToken Count\u001b[0m\u001b[1m \u001b[0m┃\n",
381
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
382
- "│ \u001b[32mPositive\u001b[0m │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, portrait, │ 65 │\n",
383
- "│ │ anthro male dragon, scale iridescence, detailed background, amazing_background, │ │\n",
384
- "│ │ scenery porn, snowy mountain peak, on back, sexy pose, looking at viewer, │ │\n",
385
- "│ │ realistic, photo │ │\n",
386
- "│ \u001b[31mNegative\u001b[0m │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
387
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n"
388
- ]
389
- },
390
- "metadata": {},
391
- "output_type": "display_data"
392
- },
393
- {
394
- "data": {
395
- "text/html": [
396
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
397
- "┃<span style=\"font-weight: bold\"> Prompt Type </span>┃<span style=\"font-weight: bold\"> Prompt </span>┃<span style=\"font-weight: bold\"> Token Count </span>┃\n",
398
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
399
- "│ <span style=\"color: #008000; text-decoration-color: #008000\">Positive</span> │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, full-length │ 71 │\n",
400
- "│ │ portrait, anthro female kobold, scalie, scale iridescence, detailed background, │ │\n",
401
- "│ │ amazing_background, scenery porn, snowy mountain peak, on back, sexy pose, looking │ │\n",
402
- "│ │ at viewer, realistic, photo │ │\n",
403
- "│ <span style=\"color: #800000; text-decoration-color: #800000\">Negative</span> │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
404
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n",
405
- "</pre>\n"
406
- ],
407
- "text/plain": [
408
- "┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓\n",
409
- "┃\u001b[1m \u001b[0m\u001b[1mPrompt Type\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mPrompt \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mToken Count\u001b[0m\u001b[1m \u001b[0m┃\n",
410
- "┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩\n",
411
- "│ \u001b[32mPositive\u001b[0m │ score_9, score_8_up, score_7_up, score_6_up, rating_safe, source_furry, full-length │ 71 │\n",
412
- "│ │ portrait, anthro female kobold, scalie, scale iridescence, detailed background, │ │\n",
413
- "│ │ amazing_background, scenery porn, snowy mountain peak, on back, sexy pose, looking │ │\n",
414
- "│ │ at viewer, realistic, photo │ │\n",
415
- "│ \u001b[31mNegative\u001b[0m │ low quality, worst quality, blurred background, blurry, simple background │ 13 │\n",
416
- "└─────────────┴─────────────────────────────────────────────────────────────────────────────────────┴─────────────┘\n"
417
- ]
418
- },
419
- "metadata": {},
420
- "output_type": "display_data"
421
- },
422
- {
423
- "data": {
424
- "text/html": [
425
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Total number of prompts in realistic-sample-prompts.txt: </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">8</span>\n",
426
- "</pre>\n"
427
- ],
428
- "text/plain": [
429
- "\u001b[1mTotal number of prompts in realistic-sample-prompts.txt: \u001b[0m\u001b[1;36m8\u001b[0m\n"
430
- ]
431
- },
432
- "metadata": {},
433
- "output_type": "display_data"
434
- }
435
- ],
436
- "source": [
437
- "import os\n",
438
- "import tiktoken\n",
439
- "from rich.console import Console\n",
440
- "from rich.table import Table\n",
441
- "\n",
442
- "def count_tokens(text):\n",
443
- " enc = tiktoken.get_encoding(\"cl100k_base\")\n",
444
- " tokens = enc.encode(text)\n",
445
- " return len(tokens)\n",
446
- "\n",
447
- "count_tokens(\"canine genitalia, knot\")\n",
448
- "\n",
449
- "console = Console()\n",
450
- "\n",
451
- "for file in os.listdir(\"E:\\\\training_dir\"):\n",
452
- " if file.endswith(\"-sample-prompts.txt\"):\n",
453
- " file_path = os.path.join(\"E:\\\\training_dir\", file)\n",
454
- " console.print(f\"Processing file: {file_path}\")\n",
455
- "\n",
456
- " prompt_count = 0\n",
457
- " with open(file_path, \"r\") as f:\n",
458
- " lines = f.readlines()\n",
459
- "\n",
460
- " for line in lines:\n",
461
- " if line.startswith(\"#\"):\n",
462
- " continue\n",
463
- " parts = line.split(\"--n\")\n",
464
- " positive_prompt = parts[0].strip()\n",
465
- " negative_prompt = parts[1].strip().split(\" --\")[0]\n",
466
- "\n",
467
- " positive_token_count = count_tokens(positive_prompt)\n",
468
- " negative_token_count = count_tokens(negative_prompt)\n",
469
- "\n",
470
- " table = Table()\n",
471
- " table.add_column(\"Prompt Type\", justify=\"left\")\n",
472
- " table.add_column(\"Prompt\", justify=\"left\")\n",
473
- " table.add_column(\"Token Count\", justify=\"right\")\n",
474
- " table.add_row(\"[green]Positive[/green]\", positive_prompt, str(positive_token_count))\n",
475
- " table.add_row(\"[red]Negative[/red]\", negative_prompt, str(negative_token_count))\n",
476
- " console.print(table)\n",
477
- "\n",
478
- " if positive_token_count > 77:\n",
479
- " console.print(\n",
480
- " \"[bold red]Warning: Positive prompt token count exceeds 75.[/bold red]\"\n",
481
- " )\n",
482
- " prompt_count += 1\n",
483
- "\n",
484
- " console.print(f\"[bold]Total number of prompts in {file}: {prompt_count}[/bold]\")"
485
- ]
486
- }
487
- ],
488
- "metadata": {
489
- "kernelspec": {
490
- "display_name": "base",
491
- "language": "python",
492
- "name": "python3"
493
- },
494
- "language_info": {
495
- "codemirror_mode": {
496
- "name": "ipython",
497
- "version": 3
498
- },
499
- "file_extension": ".py",
500
- "mimetype": "text/x-python",
501
- "name": "python",
502
- "nbconvert_exporter": "python",
503
- "pygments_lexer": "ipython3",
504
- "version": "3.12.3"
505
- }
506
- },
507
- "nbformat": 4,
508
- "nbformat_minor": 2
509
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Create Empty caption Files for Images.ipynb DELETED
@@ -1,101 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## Create Empty `.txt` Files For Images\n",
8
- "\n",
9
- "---"
10
- ]
11
- },
12
- {
13
- "cell_type": "code",
14
- "execution_count": 1,
15
- "metadata": {},
16
- "outputs": [
17
- {
18
- "name": "stdout",
19
- "output_type": "stream",
20
- "text": [
21
- "Caption files created successfully.\n"
22
- ]
23
- }
24
- ],
25
- "source": [
26
- "from pathlib import Path\n",
27
- "\n",
28
- "def create_caption_file(directory):\n",
29
- " for image_path in Path(directory).rglob('*'):\n",
30
- " if image_path.suffix.lower() in ['.jpg', '.jpeg', '.png']:\n",
31
- " caption_file = image_path.with_suffix('.txt')\n",
32
- " if not caption_file.exists():\n",
33
- " caption_file.touch()\n",
34
- "\n",
35
- "if __name__ == \"__main__\":\n",
36
- " directory = r'E:\\training_dir_staging'\n",
37
- " create_caption_file(directory)\n",
38
- " print(\"Caption files created successfully.\")"
39
- ]
40
- },
41
- {
42
- "cell_type": "markdown",
43
- "metadata": {},
44
- "source": [
45
- "## Create Empty `.caption` Files For Images\n",
46
- "\n",
47
- "---"
48
- ]
49
- },
50
- {
51
- "cell_type": "code",
52
- "execution_count": 1,
53
- "metadata": {},
54
- "outputs": [
55
- {
56
- "name": "stdout",
57
- "output_type": "stream",
58
- "text": [
59
- "Caption files created successfully.\n"
60
- ]
61
- }
62
- ],
63
- "source": [
64
- "from pathlib import Path\n",
65
- "\n",
66
- "def create_caption_file(directory):\n",
67
- " for image_path in Path(directory).rglob('*'):\n",
68
- " if image_path.suffix.lower() in ['.jpg', '.jpeg', '.png']:\n",
69
- " caption_file = image_path.with_suffix('.caption')\n",
70
- " if not caption_file.exists():\n",
71
- " caption_file.touch()\n",
72
- "\n",
73
- "if __name__ == \"__main__\":\n",
74
- " directory = r'E:\\training_dir_staging'\n",
75
- " create_caption_file(directory)\n",
76
- " print(\"Caption files created successfully.\")"
77
- ]
78
- }
79
- ],
80
- "metadata": {
81
- "kernelspec": {
82
- "display_name": "base",
83
- "language": "python",
84
- "name": "python3"
85
- },
86
- "language_info": {
87
- "codemirror_mode": {
88
- "name": "ipython",
89
- "version": 3
90
- },
91
- "file_extension": ".py",
92
- "mimetype": "text/x-python",
93
- "name": "python",
94
- "nbconvert_exporter": "python",
95
- "pygments_lexer": "ipython3",
96
- "version": "3.12.3"
97
- }
98
- },
99
- "nbformat": 4,
100
- "nbformat_minor": 2
101
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Duplicate Checker.ipynb DELETED
@@ -1,54 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## Duplicate checker\n",
8
- "----\n",
9
- "\n",
10
- "This Python script checks for duplicate tags within text files (`.txt`) in a specified directory and its subdirectories. It reads each text file, splits its content into tags separated by commas, and identifies any duplicates. If duplicates are found, it prints out a message indicating the file where the duplicates were found and the duplicate tags themselves. Finally, the `check_tags_in_directory` function iterates through the directory and calls `check_duplicate_tags` for each text file found."
11
- ]
12
- },
13
- {
14
- "cell_type": "code",
15
- "execution_count": null,
16
- "metadata": {},
17
- "outputs": [],
18
- "source": [
19
- "import os\n",
20
- "\n",
21
- "def check_duplicate_tags(file_path):\n",
22
- " with open(file_path, 'r') as file:\n",
23
- " tags = file.read().split(', ')\n",
24
- " duplicates = set()\n",
25
- " unique_tags = set()\n",
26
- " for tag in tags:\n",
27
- " if tag in unique_tags:\n",
28
- " duplicates.add(tag)\n",
29
- " else:\n",
30
- " unique_tags.add(tag)\n",
31
- " if duplicates:\n",
32
- " print(f\"Duplicate tags found in {file_path}: {', '.join(duplicates)}\")\n",
33
- "\n",
34
- "def check_tags_in_directory(directory):\n",
35
- " for root, _, files in os.walk(directory):\n",
36
- " for file_name in files:\n",
37
- " if file_name.endswith('.txt'):\n",
38
- " file_path = os.path.join(root, file_name)\n",
39
- " check_duplicate_tags(file_path)\n",
40
- "\n",
41
- "if __name__ == \"__main__\":\n",
42
- " directory_path = r'C:\\Users\\kade\\Desktop\\training_dir_staging'\n",
43
- " check_tags_in_directory(directory_path)\n"
44
- ]
45
- }
46
- ],
47
- "metadata": {
48
- "language_info": {
49
- "name": "python"
50
- }
51
- },
52
- "nbformat": 4,
53
- "nbformat_minor": 2
54
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Escape Parentheses.ipynb DELETED
@@ -1,194 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## Escape parentheses\n",
8
- "----\n",
9
- "\n",
10
- "This script is designed to process a directory and its subdirectories for text files. For each text file, it reads the content and checks for any unescaped parentheses. If it finds any, it escapes them and writes the modified content back to the file. If any modifications are made, it prints a warning message along with the original and modified content. The directory to be processed is specified by the `directory_path` variable. In this case, it is set to `C:\\Users\\kade\\Desktop\\training_dir_staging`. The script starts processing from this directory. \n",
11
- "\n",
12
- "The **`escape_parentheses(file_path)`** function takes a file path as an argument, reads the file content, and checks for unescaped parentheses. It uses regular expressions to find unescaped parentheses and escapes them. If the content is modified, it prints a warning message along with the original and modified content. Then, it writes the modified content back to the file.\n",
13
- "\n",
14
- "The **`process_directory(directory)`** function takes a directory path as an argument and processes it recursively. It uses the `os.walk()` function to iterate over the directory, its subdirectories, and files. For each text file (files ending with `.txt`), it calls the `escape_parentheses(file_path)` function to escape unescaped parentheses. It also processes each subdirectory in the same way. "
15
- ]
16
- },
17
- {
18
- "cell_type": "code",
19
- "execution_count": 1,
20
- "metadata": {},
21
- "outputs": [],
22
- "source": [
23
- "import os\n",
24
- "import re\n",
25
- "\n",
26
- "def escape_parentheses(file_path):\n",
27
- " with open(file_path, \"r\") as file:\n",
28
- " content = file.read()\n",
29
- " original_content = content\n",
30
- "\n",
31
- " # Escape unescaped opening parentheses\n",
32
- " content = re.sub(r\"(?<!\\\\)(\\\\*)(\\\\()\", r\"\\1\\\\\\2\", content)\n",
33
- " # Escape unescaped closing parentheses\n",
34
- " content = re.sub(r\"(?<!\\\\)(\\\\*)(\\\\))\", r\"\\1\\\\\\2\", content)\n",
35
- "\n",
36
- " if content != original_content:\n",
37
- " print(f\"Warning: File '{file_path}' was modified.\")\n",
38
- " print(f\"Original: {original_content}\")\n",
39
- " print(f\"Modified: {content}\")\n",
40
- "\n",
41
- " with open(file_path, \"w\") as file:\n",
42
- " file.write(content)\n",
43
- "\n",
44
- "def process_directory(directory):\n",
45
- " for root, dirs, files in os.walk(directory):\n",
46
- " for file in files:\n",
47
- " if file.endswith(\".txt\"):\n",
48
- " file_path = os.path.join(root, file)\n",
49
- " escape_parentheses(file_path)\n",
50
- " for dir in dirs:\n",
51
- " process_directory(os.path.join(root, dir))\n",
52
- "\n",
53
- "directory_path = r\"E:\\training_dir\"\n",
54
- "# directory_path = r\"C:\\Users\\kade\\Desktop\\training_dir_staging\"\n",
55
- "process_directory(directory_path)"
56
- ]
57
- },
58
- {
59
- "cell_type": "markdown",
60
- "metadata": {},
61
- "source": [
62
- "## Needs Testing\n",
63
- "\n",
64
- "---"
65
- ]
66
- },
67
- {
68
- "cell_type": "code",
69
- "execution_count": 8,
70
- "metadata": {},
71
- "outputs": [
72
- {
73
- "ename": "error",
74
- "evalue": "missing ), unterminated subpattern at position 26",
75
- "output_type": "error",
76
- "traceback": [
77
- "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
78
- "\u001b[1;31merror\u001b[0m Traceback (most recent call last)",
79
- "Cell \u001b[1;32mIn[8], line 31\u001b[0m\n\u001b[0;32m 27\u001b[0m escape_parentheses(\u001b[38;5;28mstr\u001b[39m(file_path))\n\u001b[0;32m 30\u001b[0m directory_path \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mr\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mE:\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mtraining_dir\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m---> 31\u001b[0m \u001b[43mprocess_directory\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdirectory_path\u001b[49m\u001b[43m)\u001b[49m\n",
80
- "Cell \u001b[1;32mIn[8], line 27\u001b[0m, in \u001b[0;36mprocess_directory\u001b[1;34m(directory)\u001b[0m\n\u001b[0;32m 25\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mprocess_directory\u001b[39m(directory):\n\u001b[0;32m 26\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m file_path \u001b[38;5;129;01min\u001b[39;00m Path(directory)\u001b[38;5;241m.\u001b[39mrglob(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m*.txt\u001b[39m\u001b[38;5;124m\"\u001b[39m):\n\u001b[1;32m---> 27\u001b[0m \u001b[43mescape_parentheses\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mfile_path\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n",
81
- "Cell \u001b[1;32mIn[8], line 11\u001b[0m, in \u001b[0;36mescape_parentheses\u001b[1;34m(file_path)\u001b[0m\n\u001b[0;32m 8\u001b[0m original_content \u001b[38;5;241m=\u001b[39m content\n\u001b[0;32m 10\u001b[0m \u001b[38;5;66;03m# Escape unescaped opening parentheses\u001b[39;00m\n\u001b[1;32m---> 11\u001b[0m content \u001b[38;5;241m=\u001b[39m \u001b[43mre\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msub\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43mr\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m(?<!\u001b[39;49m\u001b[38;5;130;43;01m\\\\\u001b[39;49;00m\u001b[38;5;124;43m)(?<!\u001b[39;49m\u001b[38;5;130;43;01m\\\\\u001b[39;49;00m\u001b[38;5;130;43;01m\\\\\u001b[39;49;00m\u001b[38;5;124;43m)(\u001b[39;49m\u001b[38;5;130;43;01m\\\\\u001b[39;49;00m\u001b[38;5;130;43;01m\\\\\u001b[39;49;00m\u001b[38;5;124;43m\\\u001b[39;49m\u001b[38;5;124;43m*)\u001b[39;49m\u001b[38;5;130;43;01m\\\\\u001b[39;49;00m\u001b[38;5;124;43m(\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43mr\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;130;43;01m\\\\\u001b[39;49;00m\u001b[38;5;124;43m1\u001b[39;49m\u001b[38;5;130;43;01m\\\\\u001b[39;49;00m\u001b[38;5;130;43;01m\\\\\u001b[39;49;00m\u001b[38;5;124;43m(\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcontent\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 13\u001b[0m \u001b[38;5;66;03m# Escape unescaped closing parentheses\u001b[39;00m\n\u001b[0;32m 14\u001b[0m content \u001b[38;5;241m=\u001b[39m re\u001b[38;5;241m.\u001b[39msub(\u001b[38;5;124mr\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m(?<!\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124m)(?<!\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124m)(\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124m*)\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124mr\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124m1\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m, content)\n",
82
- "File \u001b[1;32mC:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.12_3.12.1008.0_x64__qbz5n2kfra8p0\\Lib\\re\\__init__.py:186\u001b[0m, in \u001b[0;36msub\u001b[1;34m(pattern, repl, string, count, flags)\u001b[0m\n\u001b[0;32m 179\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21msub\u001b[39m(pattern, repl, string, count\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m, flags\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m):\n\u001b[0;32m 180\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Return the string obtained by replacing the leftmost\u001b[39;00m\n\u001b[0;32m 181\u001b[0m \u001b[38;5;124;03m non-overlapping occurrences of the pattern in string by the\u001b[39;00m\n\u001b[0;32m 182\u001b[0m \u001b[38;5;124;03m replacement repl. repl can be either a string or a callable;\u001b[39;00m\n\u001b[0;32m 183\u001b[0m \u001b[38;5;124;03m if a string, backslash escapes in it are processed. If it is\u001b[39;00m\n\u001b[0;32m 184\u001b[0m \u001b[38;5;124;03m a callable, it's passed the Match object and must return\u001b[39;00m\n\u001b[0;32m 185\u001b[0m \u001b[38;5;124;03m a replacement string to be used.\"\"\"\u001b[39;00m\n\u001b[1;32m--> 186\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_compile\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpattern\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mflags\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39msub(repl, string, count)\n",
83
- "File \u001b[1;32mC:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.12_3.12.1008.0_x64__qbz5n2kfra8p0\\Lib\\re\\__init__.py:307\u001b[0m, in \u001b[0;36m_compile\u001b[1;34m(pattern, flags)\u001b[0m\n\u001b[0;32m 301\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mwarnings\u001b[39;00m\n\u001b[0;32m 302\u001b[0m warnings\u001b[38;5;241m.\u001b[39mwarn(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mThe re.TEMPLATE/re.T flag is deprecated \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 303\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mas it is an undocumented flag \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 304\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mwithout an obvious purpose. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 305\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDon\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mt use it.\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 306\u001b[0m \u001b[38;5;167;01mDeprecationWarning\u001b[39;00m)\n\u001b[1;32m--> 307\u001b[0m p \u001b[38;5;241m=\u001b[39m \u001b[43m_compiler\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcompile\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpattern\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mflags\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 308\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m flags \u001b[38;5;241m&\u001b[39m DEBUG:\n\u001b[0;32m 309\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m p\n",
84
- "File \u001b[1;32mC:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.12_3.12.1008.0_x64__qbz5n2kfra8p0\\Lib\\re\\_compiler.py:745\u001b[0m, in \u001b[0;36mcompile\u001b[1;34m(p, flags)\u001b[0m\n\u001b[0;32m 743\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m isstring(p):\n\u001b[0;32m 744\u001b[0m pattern \u001b[38;5;241m=\u001b[39m p\n\u001b[1;32m--> 745\u001b[0m p \u001b[38;5;241m=\u001b[39m \u001b[43m_parser\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparse\u001b[49m\u001b[43m(\u001b[49m\u001b[43mp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mflags\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 746\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 747\u001b[0m pattern \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
85
- "File \u001b[1;32mC:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.12_3.12.1008.0_x64__qbz5n2kfra8p0\\Lib\\re\\_parser.py:979\u001b[0m, in \u001b[0;36mparse\u001b[1;34m(str, flags, state)\u001b[0m\n\u001b[0;32m 976\u001b[0m state\u001b[38;5;241m.\u001b[39mflags \u001b[38;5;241m=\u001b[39m flags\n\u001b[0;32m 977\u001b[0m state\u001b[38;5;241m.\u001b[39mstr \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mstr\u001b[39m\n\u001b[1;32m--> 979\u001b[0m p \u001b[38;5;241m=\u001b[39m \u001b[43m_parse_sub\u001b[49m\u001b[43m(\u001b[49m\u001b[43msource\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstate\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mflags\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m&\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mSRE_FLAG_VERBOSE\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[0;32m 980\u001b[0m p\u001b[38;5;241m.\u001b[39mstate\u001b[38;5;241m.\u001b[39mflags \u001b[38;5;241m=\u001b[39m fix_flags(\u001b[38;5;28mstr\u001b[39m, p\u001b[38;5;241m.\u001b[39mstate\u001b[38;5;241m.\u001b[39mflags)\n\u001b[0;32m 982\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m source\u001b[38;5;241m.\u001b[39mnext \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
86
- "File \u001b[1;32mC:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.12_3.12.1008.0_x64__qbz5n2kfra8p0\\Lib\\re\\_parser.py:460\u001b[0m, in \u001b[0;36m_parse_sub\u001b[1;34m(source, state, verbose, nested)\u001b[0m\n\u001b[0;32m 458\u001b[0m start \u001b[38;5;241m=\u001b[39m source\u001b[38;5;241m.\u001b[39mtell()\n\u001b[0;32m 459\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[1;32m--> 460\u001b[0m itemsappend(\u001b[43m_parse\u001b[49m\u001b[43m(\u001b[49m\u001b[43msource\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstate\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mverbose\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnested\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 461\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mnested\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mand\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mitems\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[0;32m 462\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m sourcematch(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m|\u001b[39m\u001b[38;5;124m\"\u001b[39m):\n\u001b[0;32m 463\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n",
87
- "File \u001b[1;32mC:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.12_3.12.1008.0_x64__qbz5n2kfra8p0\\Lib\\re\\_parser.py:864\u001b[0m, in \u001b[0;36m_parse\u001b[1;34m(source, state, verbose, nested, first)\u001b[0m\n\u001b[0;32m 862\u001b[0m p \u001b[38;5;241m=\u001b[39m _parse_sub(source, state, sub_verbose, nested \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m1\u001b[39m)\n\u001b[0;32m 863\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m source\u001b[38;5;241m.\u001b[39mmatch(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m):\n\u001b[1;32m--> 864\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m source\u001b[38;5;241m.\u001b[39merror(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmissing ), unterminated subpattern\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 865\u001b[0m source\u001b[38;5;241m.\u001b[39mtell() \u001b[38;5;241m-\u001b[39m start)\n\u001b[0;32m 866\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m group \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 867\u001b[0m state\u001b[38;5;241m.\u001b[39mclosegroup(group, p)\n",
88
- "\u001b[1;31merror\u001b[0m: missing ), unterminated subpattern at position 26"
89
- ]
90
- }
91
- ],
92
- "source": [
93
- "import os\n",
94
- "import re\n",
95
- "\n",
96
- "\n",
97
- "def escape_parentheses(file_path):\n",
98
- " with open(file_path, \"r\") as file:\n",
99
- " content = file.read()\n",
100
- " original_content = content\n",
101
- "\n",
102
- " # Escape unescaped opening parentheses\n",
103
- " content = re.sub(r\"(?<!\\\\)(\\\\*)(\\()\", r\"\\1\\\\\\2\", content)\n",
104
- " # Escape unescaped closing parentheses\n",
105
- " content = re.sub(r\"(?<!\\\\)(\\\\*)(\\))\", r\"\\1\\\\\\2\", content)\n",
106
- "\n",
107
- " if content != original_content:\n",
108
- " print(f\"Warning: File '{file_path}' was modified.\")\n",
109
- " print(f\"Original: {original_content}\")\n",
110
- " print(f\"Modified: {content}\")\n",
111
- "\n",
112
- " with open(file_path, \"w\") as file:\n",
113
- " file.write(content)\n",
114
- "\n",
115
- "\n",
116
- "def process_directory(directory):\n",
117
- " for root, dirs, files in os.walk(directory):\n",
118
- " for file in files:\n",
119
- " if file.endswith(\".txt\"):\n",
120
- " file_path = os.path.join(root, file)\n",
121
- " escape_parentheses(file_path)\n",
122
- " for dir in dirs:\n",
123
- " process_directory(os.path.join(root, dir))\n",
124
- "\n",
125
- "\n",
126
- "directory_path = r\"E:\\training_dir\"\n",
127
- "# directory_path = r\"C:\\Users\\kade\\Desktop\\training_dir_staging\"\n",
128
- "process_directory(directory_path)"
129
- ]
130
- },
131
- {
132
- "cell_type": "code",
133
- "execution_count": 4,
134
- "metadata": {},
135
- "outputs": [],
136
- "source": [
137
- "import os\n",
138
- "import re\n",
139
- "import glob\n",
140
- "\n",
141
- "\n",
142
- "def escape_parentheses(file_path):\n",
143
- " with open(file_path, \"r\") as file:\n",
144
- " content = file.read()\n",
145
- " original_content = content\n",
146
- "\n",
147
- " # Replace any (not preceded by \\) with \\(\n",
148
- " content = re.sub(r\"(?<!\\\\)(\\()\", r\"\\\\\\1\", content)\n",
149
- "\n",
150
- " # Replace any )not preceded by \\) with \\)\n",
151
- " content = re.sub(r\"(?<!\\\\)(\\))\", r\"\\\\\\1\", content)\n",
152
- "\n",
153
- " if content != original_content:\n",
154
- " print(f\"Warning: File '{file_path}' was modified.\")\n",
155
- " print(f\"Original: {original_content}\")\n",
156
- " print(f\"Modified: {content}\")\n",
157
- "\n",
158
- " with open(file_path, \"w\") as file:\n",
159
- " file.write(content)\n",
160
- "\n",
161
- "\n",
162
- "def process_directory(directory):\n",
163
- " for file_path in glob.glob(directory + \"/**/*.txt\", recursive=True):\n",
164
- " escape_parentheses(file_path)\n",
165
- "\n",
166
- "\n",
167
- "# directory_path = r\"E:\\training_dir\"\n",
168
- "directory_path = r\"C:\\Users\\kade\\Desktop\\training_dir_staging\"\n",
169
- "process_directory(directory_path)"
170
- ]
171
- }
172
- ],
173
- "metadata": {
174
- "kernelspec": {
175
- "display_name": "base",
176
- "language": "python",
177
- "name": "python3"
178
- },
179
- "language_info": {
180
- "codemirror_mode": {
181
- "name": "ipython",
182
- "version": 3
183
- },
184
- "file_extension": ".py",
185
- "mimetype": "text/x-python",
186
- "name": "python",
187
- "nbconvert_exporter": "python",
188
- "pygments_lexer": "ipython3",
189
- "version": "3.12.3"
190
- }
191
- },
192
- "nbformat": 4,
193
- "nbformat_minor": 2
194
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Find Missing tags and captions.ipynb DELETED
@@ -1,54 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## Find Missing `.tags` and `.caption`s\n",
8
- "----\n",
9
- "\n",
10
- "This Python script iterates through a specified directory and its subdirectories to find image files (with extensions `.png`, `.jpg`, or `.jpeg`). For each image file found, it checks if corresponding caption and tags files exist. If either the caption file or the tags file is missing for an image file, the script adds the file paths of the missing files to a list. Finally, if any missing files are found, it prints out their paths; otherwise, it prints \"No missing files found.\""
11
- ]
12
- },
13
- {
14
- "cell_type": "code",
15
- "execution_count": null,
16
- "metadata": {},
17
- "outputs": [],
18
- "source": [
19
- "import os\n",
20
- "\n",
21
- "def find_missing_files(directory):\n",
22
- " missing_files = []\n",
23
- " for root, dirs, files in os.walk(directory):\n",
24
- " for file in files:\n",
25
- " if file.lower().endswith(('.png', '.jpg', '.jpeg')):\n",
26
- " file_name, file_extension = os.path.splitext(file)\n",
27
- " caption_file = os.path.join(root, file_name + \".caption\")\n",
28
- " tags_file = os.path.join(root, file_name + \".tags\")\n",
29
- " if not os.path.exists(caption_file):\n",
30
- " missing_files.append(caption_file)\n",
31
- " if not os.path.exists(tags_file):\n",
32
- " missing_files.append(tags_file)\n",
33
- " return missing_files\n",
34
- "\n",
35
- "if __name__ == \"__main__\":\n",
36
- " directory = r\"C:\\Users\\kade\\Desktop\\training_dir_staging\"\n",
37
- " missing_files = find_missing_files(directory)\n",
38
- " if missing_files:\n",
39
- " print(\"Missing files:\")\n",
40
- " for file in missing_files:\n",
41
- " print(file)\n",
42
- " else:\n",
43
- " print(\"No missing files found.\")"
44
- ]
45
- }
46
- ],
47
- "metadata": {
48
- "language_info": {
49
- "name": "python"
50
- }
51
- },
52
- "nbformat": 4,
53
- "nbformat_minor": 2
54
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Insert Multiple Tags.ipynb DELETED
@@ -1,66 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": 4,
6
- "metadata": {},
7
- "outputs": [],
8
- "source": [
9
- "import os\n",
10
- "\n",
11
- "# Directory where caption files are located\n",
12
- "directory = r'C:\\Users\\kade\\Desktop\\training_dir_staging'\n",
13
- "\n",
14
- "# Function to inject tags into the caption content\n",
15
- "def inject_tags(content):\n",
16
- " tags_to_add = ['realistic', 'photo', 'photo \\\\(medium\\\\)', 'photography \\\\(artwork\\\\)']\n",
17
- " existing_tags = set(content.lower().split(', '))\n",
18
- " # Add tags to the content if they don't already exist\n",
19
- " for tag in tags_to_add:\n",
20
- " if tag.lower() not in existing_tags:\n",
21
- " content += f', {tag}'\n",
22
- " return content\n",
23
- "\n",
24
- "# Function to recursively process files in a directory\n",
25
- "def process_directory(directory):\n",
26
- " for filename in os.listdir(directory):\n",
27
- " filepath = os.path.join(directory, filename)\n",
28
- " if os.path.isdir(filepath):\n",
29
- " process_directory(filepath) # Recursively process subdirectories\n",
30
- " elif filename.endswith('.txt'):\n",
31
- " # Read content from the file\n",
32
- " with open(filepath, 'r', encoding='utf-8') as file:\n",
33
- " content = file.read()\n",
34
- " # Inject tags into the content\n",
35
- " modified_content = inject_tags(content)\n",
36
- " # Write modified content back to the file\n",
37
- " with open(filepath, 'w', encoding='utf-8') as file:\n",
38
- " file.write(modified_content)\n",
39
- "\n",
40
- "# Start processing from the main directory\n",
41
- "process_directory(directory)"
42
- ]
43
- }
44
- ],
45
- "metadata": {
46
- "kernelspec": {
47
- "display_name": "Python 3",
48
- "language": "python",
49
- "name": "python3"
50
- },
51
- "language_info": {
52
- "codemirror_mode": {
53
- "name": "ipython",
54
- "version": 3
55
- },
56
- "file_extension": ".py",
57
- "mimetype": "text/x-python",
58
- "name": "python",
59
- "nbconvert_exporter": "python",
60
- "pygments_lexer": "ipython3",
61
- "version": "3.12.3"
62
- }
63
- },
64
- "nbformat": 4,
65
- "nbformat_minor": 2
66
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Insert Tag.ipynb DELETED
@@ -1,73 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## Insert tag\n",
8
- "----\n",
9
- "\n",
10
- "This script recursively inserts a specified tag at the beginning of each line in both `.txt` and `.tags` files within a given directory and its subdirectories."
11
- ]
12
- },
13
- {
14
- "cell_type": "code",
15
- "execution_count": 1,
16
- "metadata": {},
17
- "outputs": [],
18
- "source": [
19
- "import os\n",
20
- "\n",
21
- "# Function to insert a specified tag in text files in subdirectories\n",
22
- "def insert_tag_in_files(directory, tag_to_insert):\n",
23
- " try:\n",
24
- " for entry in os.listdir(directory):\n",
25
- " entry_path = os.path.join(directory, entry)\n",
26
- "\n",
27
- " if os.path.isdir(entry_path):\n",
28
- " insert_tag_in_files(entry_path, tag_to_insert)\n",
29
- "\n",
30
- " elif os.path.isfile(entry_path) and (entry.endswith(\".txt\") or entry.endswith(\".tags\")):\n",
31
- " with open(entry_path, 'r', encoding='utf-8') as f:\n",
32
- " content = f.read()\n",
33
- "\n",
34
- " # Insert the specified tag\n",
35
- " content = tag_to_insert + ', ' + content\n",
36
- "\n",
37
- " # Write back to the file\n",
38
- " with open(entry_path, 'w', encoding='utf-8') as f:\n",
39
- " f.write(content)\n",
40
- "\n",
41
- " except Exception as e:\n",
42
- " print(f\"Error processing directory {directory}: {e}\\n\")\n",
43
- "\n",
44
- "directory_path = r'C:\\Users\\kade\\Desktop\\training_dir_staging'\n",
45
- "\n",
46
- "# Execute the function with the desired tag\n",
47
- "insert_tag_in_files(directory_path, 'dharrel')\n",
48
- "insert_tag_in_files(directory_path, 'jex')"
49
- ]
50
- }
51
- ],
52
- "metadata": {
53
- "kernelspec": {
54
- "display_name": "Python 3",
55
- "language": "python",
56
- "name": "python3"
57
- },
58
- "language_info": {
59
- "codemirror_mode": {
60
- "name": "ipython",
61
- "version": 3
62
- },
63
- "file_extension": ".py",
64
- "mimetype": "text/x-python",
65
- "name": "python",
66
- "nbconvert_exporter": "python",
67
- "pygments_lexer": "ipython3",
68
- "version": "3.12.3"
69
- }
70
- },
71
- "nbformat": 4,
72
- "nbformat_minor": 2
73
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Pony2Seaart.ipynb DELETED
@@ -1,88 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "# Pony2Seaart\n",
8
- "\n",
9
- "---\n",
10
- "\n",
11
- "This script converts Pony captions to Seaart."
12
- ]
13
- },
14
- {
15
- "cell_type": "code",
16
- "execution_count": 8,
17
- "metadata": {},
18
- "outputs": [],
19
- "source": [
20
- "import os\n",
21
- "import glob\n",
22
- "\n",
23
- "def pony2seaart(file_path):\n",
24
- " if os.path.basename(file_path).endswith(\"sample-prompts.txt\"):\n",
25
- " return\n",
26
- " with open(file_path, \"r\") as file:\n",
27
- " lines = file.readlines()\n",
28
- " new_lines = []\n",
29
- " for line in lines:\n",
30
- " parts = line.strip().split(\", \")\n",
31
- " tags = []\n",
32
- " caption = \"\"\n",
33
- " for part in parts:\n",
34
- " if \".\" in part:\n",
35
- " if not caption:\n",
36
- " caption = part\n",
37
- " else:\n",
38
- " caption += \", \" + part\n",
39
- " else:\n",
40
- " tag = part.replace(\" \", \"_\")\n",
41
- " if tag == \"rating_explicit\":\n",
42
- " tag = \"nsfw\"\n",
43
- " elif tag == \"rating_safe\":\n",
44
- " tag = \"safe\"\n",
45
- " elif tag == \"rating_questionable\":\n",
46
- " tag = \"questionable\"\n",
47
- " tags.append(tag)\n",
48
- " new_line = \", \".join(tags) + (\", \" + caption if caption else \"\")\n",
49
- " new_lines.append(new_line + \"\\n\")\n",
50
- "\n",
51
- " new_file_name = os.path.splitext(os.path.basename(file_path))[0] + \".seaart\"\n",
52
- " new_file_path = os.path.join(os.path.dirname(file_path), new_file_name)\n",
53
- " with open(new_file_path, \"w\") as new_file:\n",
54
- " new_file.writelines(new_lines)\n",
55
- "\n",
56
- "def process_directory(directory):\n",
57
- " txt_files = glob.glob(os.path.join(directory, \"**\", \"*.txt\"), recursive=True)\n",
58
- " for file_path in txt_files:\n",
59
- " pony2seaart(file_path)\n",
60
- "\n",
61
- "if __name__ == \"__main__\":\n",
62
- " input_dir = \"C:\\\\Users\\\\kade\\\\Desktop\\\\training_dir_staging\"\n",
63
- " process_directory(input_dir)"
64
- ]
65
- }
66
- ],
67
- "metadata": {
68
- "kernelspec": {
69
- "display_name": "Python 3",
70
- "language": "python",
71
- "name": "python3"
72
- },
73
- "language_info": {
74
- "codemirror_mode": {
75
- "name": "ipython",
76
- "version": 3
77
- },
78
- "file_extension": ".py",
79
- "mimetype": "text/x-python",
80
- "name": "python",
81
- "nbconvert_exporter": "python",
82
- "pygments_lexer": "ipython3",
83
- "version": "3.12.3"
84
- }
85
- },
86
- "nbformat": 4,
87
- "nbformat_minor": 2
88
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Remove Commas from Caption Files.ipynb DELETED
@@ -1,135 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": 1,
6
- "metadata": {},
7
- "outputs": [
8
- {
9
- "name": "stdout",
10
- "output_type": "stream",
11
- "text": [
12
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\03c67b009e6581e076615a4f9b71367b.caption\n",
13
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\0476f074c637d11afe8990707b1bd58b.caption\n",
14
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\0848e91ca8d354126a3f5ca1f27b823b.caption\n",
15
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\0a7c83cc86a819d9d7dc086f6b0f187c.caption\n",
16
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\10b4bd37a5593d5740365acd5e24c37a.caption\n",
17
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\121009814ce67aaffba55075a34feb06.caption\n",
18
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\1951c9ae19851b1032ecb069aeff0c6c.caption\n",
19
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\1aad2bcd835b573b55cb1ccd98b92d43.caption\n",
20
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\1bd498638f0c7a588d4da253de471258.caption\n",
21
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\1cc8ea9dd0f1f068014314fd15ed9ad9.caption\n",
22
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\1d411b14dd22f24cb54a04fc07a85996.caption\n",
23
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\1de149ed30600acf277e32a9c48e3879.caption\n",
24
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\1e5dade6a65aeb3537e9eb5d49c2dd00.caption\n",
25
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\1f2ddd50c22a314c3447f19206855410.caption\n",
26
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\24822d9ddaae7260c59553290400a79e.caption\n",
27
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\277361bdfaafac051885ee07c5416b63.caption\n",
28
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\289a0e858026ab8585df8e34c1aa6c35.caption\n",
29
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\29c13b2ea7279fbd66eea6a3bcee8c13.caption\n",
30
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\3245e9826b5f3fda0e020391f4be5463.caption\n",
31
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\3c2e90d1fe89319da13c4497124bb8aa.caption\n",
32
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\3fa84aa5dd2a408c1896ce701998787c.caption\n",
33
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\4d10005d667513f3b984c182c0a409d7.caption\n",
34
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\5aefee29406f5b5db89a3df2ce343e0b.caption\n",
35
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\5dd1d683386dafd3305f872c72354370.caption\n",
36
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\5e46e26270e33a062282af82c8d31150.caption\n",
37
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\5e60084e9ad3ca9f704f7b8963c9fa97.caption\n",
38
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\5fd70c9088ebece61d9018b078f54db3.caption\n",
39
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\605bb58fb3f5c343d6db9c10cffbd577.caption\n",
40
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\6779aa12607f3a6b2bffa9e5ccb31bcf.caption\n",
41
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\67ba2ed39f13b60b3e73f1af2f96f966.caption\n",
42
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\67fb1251907898c6fdc08084c56d6f9e.caption\n",
43
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\6d8f57a3f0840b9fa5ff41cdae43ab01.caption\n",
44
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\6e073e3085e29e59f28e6984ac7663cc.caption\n",
45
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\7b939d638f70a638264b5b8eec3a6591.caption\n",
46
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\7c4c7e4f15a953c992d6435b36a815d4.caption\n",
47
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\7fd38428a8469124bf5f16055b68250b.caption\n",
48
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\847c60b16de80a7b4342111529502ed4.caption\n",
49
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\9afb78386c656d87d64f1d5635b34bf9.caption\n",
50
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\9e595a406ca31b7dc7c6be378c7448a4.caption\n",
51
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\9f7f1934ef62891808833802d78c51c9.caption\n",
52
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\a37c81dfb67551a0c0820d5a383cf7c4.caption\n",
53
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\ad7127ddca55e8d8c3958bc58a05685e.caption\n",
54
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\b006b2e9995048da2fb6e328ee6cfcd8.caption\n",
55
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\b27e0b7a5b4aa581da036792143046c4.caption\n",
56
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\b3a55669d7f945c451358defda612e08.caption\n",
57
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\b40f8b2fa0e877f8af8488953392cd30.caption\n",
58
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\bb5147e35feead82c04b03a84f07c144.caption\n",
59
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\c06c3afbd6e2ff687410eb37a3b16bcd.caption\n",
60
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\c16face7295c8333cac893ff62ba291c.caption\n",
61
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\c9c47f239426a6b5173f2c40fc678468.caption\n",
62
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\ca2edfcc56081be6c707b4c130941aaa.caption\n",
63
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\d5aa8f4d3ca3a45648b8bf2d8a3295c7.caption\n",
64
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\d9af3b50bd80b46c0436ac2b3d16d94b.caption\n",
65
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\dcc6b617c9d02b58ee7c97de5c9be7cb.caption\n",
66
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\e32fbf97383c0d49f278b6d15c46dc25.caption\n",
67
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\e6e23b1a04939a54a40c685e4b8616c8.caption\n",
68
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\e76626932ef295c86180406b7a0d7030.caption\n",
69
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\e791abb184a749ded632ec67dadaa852.caption\n",
70
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\e80dc2531447d773540fe485d9bc26a5.caption\n",
71
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\e89a1538e6332b45c11de5c76ff567f8.caption\n",
72
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\ed20a06beef0a0ae0fee6ea52eca6998.caption\n",
73
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\f33c2d22a0ea5c0e3aecbbc641b66707.caption\n",
74
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\f43c0d4787a957096e96a253c3f88f99.caption\n",
75
- "Removed commas from C:\\Users\\kade\\Desktop\\training_dir_staging\\1_wickerbeast\\f6d85112d49064be65f1e5a2da898ee5.caption\n"
76
- ]
77
- },
78
- {
79
- "ename": "",
80
- "evalue": "",
81
- "output_type": "error",
82
- "traceback": [
83
- "\u001b[1;31mThe Kernel crashed while executing code in the current cell or a previous cell. \n",
84
- "\u001b[1;31mPlease review the code in the cell(s) to identify a possible cause of the failure. \n",
85
- "\u001b[1;31mClick <a href='https://aka.ms/vscodeJupyterKernelCrash'>here</a> for more info. \n",
86
- "\u001b[1;31mView Jupyter <a href='command:jupyter.viewOutput'>log</a> for further details."
87
- ]
88
- }
89
- ],
90
- "source": [
91
- "import os\n",
92
- "\n",
93
- "def remove_commas_from_caption_files(directory):\n",
94
- " for root, dirs, files in os.walk(directory):\n",
95
- " for file in files:\n",
96
- " if file.endswith('.caption'):\n",
97
- " filepath = os.path.join(root, file)\n",
98
- " try:\n",
99
- " with open(filepath, 'r') as f:\n",
100
- " lines = f.readlines()\n",
101
- " with open(filepath, 'w') as f:\n",
102
- " for line in lines:\n",
103
- " f.write(line.replace(',', ''))\n",
104
- " print(f\"Removed commas from {filepath}\")\n",
105
- " except Exception as e:\n",
106
- " print(f\"Error processing file {filepath}: {e}\")\n",
107
- "\n",
108
- "if __name__ == \"__main__\":\n",
109
- " directory = r'C:\\Users\\kade\\Desktop\\training_dir_staging'\n",
110
- " remove_commas_from_caption_files(directory)"
111
- ]
112
- }
113
- ],
114
- "metadata": {
115
- "kernelspec": {
116
- "display_name": "base",
117
- "language": "python",
118
- "name": "python3"
119
- },
120
- "language_info": {
121
- "codemirror_mode": {
122
- "name": "ipython",
123
- "version": 3
124
- },
125
- "file_extension": ".py",
126
- "mimetype": "text/x-python",
127
- "name": "python",
128
- "nbconvert_exporter": "python",
129
- "pygments_lexer": "ipython3",
130
- "version": "3.12.2"
131
- }
132
- },
133
- "nbformat": 4,
134
- "nbformat_minor": 2
135
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Remove Duplicate Tags Present Inside Captions.ipynb DELETED
@@ -1,34 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": null,
6
- "metadata": {},
7
- "outputs": [],
8
- "source": [
9
- "# Big bad TODO. :3"
10
- ]
11
- }
12
- ],
13
- "metadata": {
14
- "kernelspec": {
15
- "display_name": "Python 3",
16
- "language": "python",
17
- "name": "python3"
18
- },
19
- "language_info": {
20
- "codemirror_mode": {
21
- "name": "ipython",
22
- "version": 3
23
- },
24
- "file_extension": ".py",
25
- "mimetype": "text/x-python",
26
- "name": "python",
27
- "nbconvert_exporter": "python",
28
- "pygments_lexer": "ipython3",
29
- "version": "3.12.3"
30
- }
31
- },
32
- "nbformat": 4,
33
- "nbformat_minor": 2
34
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Remove Extra File Extension before txt.ipynb DELETED
@@ -1,67 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## Remove extra file extension before `.txt`\n",
8
- "----\n",
9
- "\n",
10
- "Recursively renames `.txt` files with additional image extensions before in the filename in the specified directory and its subdirectories."
11
- ]
12
- },
13
- {
14
- "cell_type": "code",
15
- "execution_count": 2,
16
- "metadata": {},
17
- "outputs": [],
18
- "source": [
19
- "import os\n",
20
- "import glob\n",
21
- "\n",
22
- "def rename_files(directory_path):\n",
23
- " for file_path in glob.glob(os.path.join(directory_path, '**', '*.txt')):\n",
24
- " # Extract the base name without extension\n",
25
- " base_name, _ = os.path.splitext(os.path.basename(file_path))\n",
26
- "\n",
27
- " # Check if the file has an additional image extension\n",
28
- " if base_name.endswith(('.png', '.jpg', '.jpeg', '.webp', '.gif')):\n",
29
- " # Construct the new filename with only the txt extension\n",
30
- " new_filename = base_name[:-4] + '.txt'\n",
31
- "\n",
32
- " # Construct the full file paths\n",
33
- " new_path = os.path.join(os.path.dirname(file_path), new_filename)\n",
34
- "\n",
35
- " # Rename the file\n",
36
- " os.rename(file_path, new_path)\n",
37
- "\n",
38
- "# Specify the directory path\n",
39
- "directory_path = r'E:\\training_dir_staging'\n",
40
- "\n",
41
- "# Call the function to recursively rename files\n",
42
- "rename_files(directory_path)"
43
- ]
44
- }
45
- ],
46
- "metadata": {
47
- "kernelspec": {
48
- "display_name": "ml",
49
- "language": "python",
50
- "name": "python3"
51
- },
52
- "language_info": {
53
- "codemirror_mode": {
54
- "name": "ipython",
55
- "version": 3
56
- },
57
- "file_extension": ".py",
58
- "mimetype": "text/x-python",
59
- "name": "python",
60
- "nbconvert_exporter": "python",
61
- "pygments_lexer": "ipython3",
62
- "version": "3.12.3"
63
- }
64
- },
65
- "nbformat": 4,
66
- "nbformat_minor": 2
67
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Remove Tags 2.ipynb DELETED
@@ -1,71 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": 3,
6
- "metadata": {},
7
- "outputs": [],
8
- "source": [
9
- "import os\n",
10
- "\n",
11
- "# Directory where caption files are located\n",
12
- "directory = r'C:\\Users\\kade\\Desktop\\training_dir_staging'\n",
13
- "\n",
14
- "# Tags to remove\n",
15
- "tags_to_remove = ['grandfathered content', 'rexouium', 'digital media \\\\(artwork\\\\)']\n",
16
- "\n",
17
- "# Function to remove tags from the caption content\n",
18
- "def remove_tags(content):\n",
19
- " # Split the content into tags\n",
20
- " tags = [tag.strip() for tag in content.split(',')]\n",
21
- "\n",
22
- " # Remove specified tags\n",
23
- " cleaned_tags = [tag for tag in tags if tag.lower() not in tags_to_remove]\n",
24
- "\n",
25
- " # Reconstruct the content without removed tags\n",
26
- " cleaned_content = ', '.join(cleaned_tags)\n",
27
- " return cleaned_content\n",
28
- "\n",
29
- "# Function to recursively process files in a directory\n",
30
- "def process_directory(directory):\n",
31
- " for filename in os.listdir(directory):\n",
32
- " filepath = os.path.join(directory, filename)\n",
33
- " if os.path.isdir(filepath):\n",
34
- " process_directory(filepath) # Recursively process subdirectories\n",
35
- " elif filename.endswith('.txt'):\n",
36
- " # Read content from the file\n",
37
- " with open(filepath, 'r', encoding='utf-8') as file:\n",
38
- " content = file.read()\n",
39
- " # Remove specified tags from the content\n",
40
- " modified_content = remove_tags(content)\n",
41
- " # Write modified content back to the file\n",
42
- " with open(filepath, 'w', encoding='utf-8') as file:\n",
43
- " file.write(modified_content)\n",
44
- "\n",
45
- "# Start processing from the main directory\n",
46
- "process_directory(directory)\n"
47
- ]
48
- }
49
- ],
50
- "metadata": {
51
- "kernelspec": {
52
- "display_name": "Python 3",
53
- "language": "python",
54
- "name": "python3"
55
- },
56
- "language_info": {
57
- "codemirror_mode": {
58
- "name": "ipython",
59
- "version": 3
60
- },
61
- "file_extension": ".py",
62
- "mimetype": "text/x-python",
63
- "name": "python",
64
- "nbconvert_exporter": "python",
65
- "pygments_lexer": "ipython3",
66
- "version": "3.12.3"
67
- }
68
- },
69
- "nbformat": 4,
70
- "nbformat_minor": 2
71
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Remove Tags.ipynb DELETED
@@ -1,170 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## Remove tags ⚠️\n",
8
- "----\n",
9
- "\n",
10
- "This script is designed to remove specific tags from text files (*.txt) located within a given directory and its subdirectories. It iterates through each file, reads its content, removes specified tags, and then overwrites the file with the modified content.\n",
11
- "\n",
12
- "The tags to be removed are specified in the `tags_to_remove` list within the `remove_tags` function. These tags include various strings, such as certain species names, phrases like \"unavailable at source,\" years from 1996 to 2024, and phrases like \"generation X pokemon.\" The script constructs regular expressions to match both escaped and non-escaped occurrences of parentheses in the tags.\n",
13
- "\n",
14
- "The `remove_tags` function takes a file path as input and returns a list of removal actions performed, indicating which tags were removed from which files.\n",
15
- "\n",
16
- "The `process_directory` function recursively processes all files within a specified directory and its subdirectories. For each file with a \".txt\" extension, it calls the `remove_tags` function to remove tags and accumulates removal actions. Finally, it prints out all removal actions performed.\n",
17
- "\n",
18
- "To utilize the script, provide the path to the directory containing the text files that need tag removal. Upon execution, the script will modify the files in place, removing the specified tags, and output a log of removal actions."
19
- ]
20
- },
21
- {
22
- "cell_type": "code",
23
- "execution_count": null,
24
- "metadata": {},
25
- "outputs": [],
26
- "source": [
27
- "import os\n",
28
- "import re\n",
29
- "\n",
30
- "def remove_tags(file_path):\n",
31
- " with open(file_path, 'r', encoding='utf-8') as file:\n",
32
- " content = file.read()\n",
33
- "\n",
34
- " tags_to_remove = [\n",
35
- " \"creative commons\",\n",
36
- " \"cc-by-nc-nd\",\n",
37
- " \"pal (species)\",\n",
38
- " \"pocketpair\",\n",
39
- " \"unavailable at source\",\n",
40
- " \"partially\",\n",
41
- " \"pokemon (species)\",\n",
42
- " \"generation\",\n",
43
- " \"pokephilia\",\n",
44
- " \"pokemon\",\n",
45
- " \"nintendo\",\n",
46
- " \"eeveelution\",\n",
47
- " \"uncensored\",\n",
48
- " \"translated\",\n",
49
- " \"partially translated\",\n",
50
- " \"translation request\",\n",
51
- " \"16 10\",\n",
52
- " \"16 9\",\n",
53
- " \"10 16\",\n",
54
- " \"9 16\",\n",
55
- " \"6 5\",\n",
56
- " \"5 6\",\n",
57
- " \"5 4\",\n",
58
- " \"4 3\",\n",
59
- " \"4 5\",\n",
60
- " \"3 4\",\n",
61
- " \"3 2\",\n",
62
- " \"2 3\",\n",
63
- " \"2 1\",\n",
64
- " \"1 2\",\n",
65
- " \"1 1\",\n",
66
- " \"4k\",\n",
67
- " \"absurd res\",\n",
68
- " \"hi res\",\n",
69
- " \"elden ring\",\n",
70
- " \"fromsoftware\",\n",
71
- " \"canid\",\n",
72
- " \"canis\",\n",
73
- " \"mammal\",\n",
74
- " \"unwanted erection\",\n",
75
- " \"lighting\",\n",
76
- " \"shaded\",\n",
77
- " \"widescreen\"\n",
78
- " ]\n",
79
- "\n",
80
- " for gen in range(1, 10):\n",
81
- " tags_to_remove.append(f\"generation {gen} pokemon\")\n",
82
- "\n",
83
- " for year in range(1996, 2025):\n",
84
- " tags_to_remove.append(str(year))\n",
85
- "\n",
86
- " removal_actions = []\n",
87
- "\n",
88
- " for tag in tags_to_remove:\n",
89
- " # Construct regular expression to match both escaped and non-escaped occurrences of parentheses\n",
90
- " pattern = re.compile(re.escape(tag.replace('(', '\\(').replace(')', '\\)')) + r'|' + tag.replace('(', '\\(').replace(')', '\\)'))\n",
91
- " if pattern.search(content):\n",
92
- " content = pattern.sub('', content)\n",
93
- " removal_actions.append(f'Removed tag \"{tag}\" from file: {file_path}')\n",
94
- "\n",
95
- " with open(file_path, 'w', encoding='utf-8') as file:\n",
96
- " file.write(content)\n",
97
- "\n",
98
- " return removal_actions\n",
99
- "\n",
100
- "def process_directory(directory):\n",
101
- " all_removal_actions = []\n",
102
- "\n",
103
- " for root, dirs, files in os.walk(directory):\n",
104
- " for file in files:\n",
105
- " if file.endswith(\".txt\"):\n",
106
- " file_path = os.path.join(root, file)\n",
107
- " removal_actions = remove_tags(file_path)\n",
108
- " all_removal_actions.extend(removal_actions)\n",
109
- "\n",
110
- " for action in all_removal_actions:\n",
111
- " print(action)\n",
112
- "\n",
113
- "# Provide the path to the directory\n",
114
- "directory_path = r'C:\\Users\\kade\\Desktop\\training_dir_staging'\n",
115
- "\n",
116
- "# Recursively remove tags from *.txt files in the specified directory and print removal actions\n",
117
- "process_directory(directory_path)"
118
- ]
119
- },
120
- {
121
- "cell_type": "markdown",
122
- "metadata": {},
123
- "source": [
124
- "### Replace `, ,` with `,` after that mess. 😼\n",
125
- "----"
126
- ]
127
- },
128
- {
129
- "cell_type": "code",
130
- "execution_count": null,
131
- "metadata": {},
132
- "outputs": [],
133
- "source": [
134
- "import os\n",
135
- "\n",
136
- "# Start directory\n",
137
- "start_dir = r'C:\\Users\\kade\\Desktop\\training_dir_staging'\n",
138
- "\n",
139
- "# Function to replace text in *.txt files\n",
140
- "def replace_text_in_files(directory):\n",
141
- " while True: # Run indefinitely until no more matches are found\n",
142
- " found_match = False # Flag to track if any match is found\n",
143
- " for root, dirs, files in os.walk(directory):\n",
144
- " for file in files:\n",
145
- " if file.endswith(\".txt\"):\n",
146
- " file_path = os.path.join(root, file)\n",
147
- " with open(file_path, 'r', encoding='utf-8') as f:\n",
148
- " content = f.read()\n",
149
- " # Replace ', ,' with ','\n",
150
- " updated_content = content.replace(', ,', ',').replace(', ,', ',')\n",
151
- " if updated_content != content:\n",
152
- " found_match = True # Set the flag to True if any match is found\n",
153
- " with open(file_path, 'w', encoding='utf-8') as f:\n",
154
- " f.write(updated_content)\n",
155
- " if not found_match: # If no match is found, break the loop\n",
156
- " break\n",
157
- "\n",
158
- "# Run the function\n",
159
- "replace_text_in_files(start_dir)"
160
- ]
161
- }
162
- ],
163
- "metadata": {
164
- "language_info": {
165
- "name": "python"
166
- }
167
- },
168
- "nbformat": 4,
169
- "nbformat_minor": 2
170
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Rename images and captions to MD5.ipynb DELETED
@@ -1,100 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## Rename images and captions to MD5\n",
8
- "\n",
9
- "This Python script recursively traverses a specified directory, identifies image files with extensions .jpg, .jpeg, or .png, calculates their MD5 hash values, and renames them accordingly. Additionally, it renames accompanying text files (.txt, .caption, .tags) to match the new filename while preserving their original content associations."
10
- ]
11
- },
12
- {
13
- "cell_type": "code",
14
- "execution_count": 1,
15
- "metadata": {},
16
- "outputs": [
17
- {
18
- "ename": "FileExistsError",
19
- "evalue": "[WinError 183] Cannot create a file when that file already exists: 'E:\\\\training_dir\\\\auroth_the_winter_wyvern\\\\2440ecda95a0ab0ca236d1c6bc09830e.txt' -> 'E:\\\\training_dir\\\\auroth_the_winter_wyvern\\\\237e548ef2de010bcd17e072ddbbbc02.txt'",
20
- "output_type": "error",
21
- "traceback": [
22
- "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
23
- "\u001b[1;31mFileExistsError\u001b[0m Traceback (most recent call last)",
24
- "Cell \u001b[1;32mIn[1], line 43\u001b[0m\n\u001b[0;32m 40\u001b[0m directory \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mr\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mE:\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mtraining_dir\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[0;32m 42\u001b[0m \u001b[38;5;66;03m# Call the function to rename files\u001b[39;00m\n\u001b[1;32m---> 43\u001b[0m \u001b[43mrename_files\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdirectory\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 45\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFiles renamed successfully!\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
25
- "Cell \u001b[1;32mIn[1], line 37\u001b[0m, in \u001b[0;36mrename_files\u001b[1;34m(directory)\u001b[0m\n\u001b[0;32m 35\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mexists(txt_file):\n\u001b[0;32m 36\u001b[0m new_txt_file \u001b[38;5;241m=\u001b[39m os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mjoin(root, new_file_name\u001b[38;5;241m.\u001b[39mreplace(file_ext\u001b[38;5;241m.\u001b[39mlower(), \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m'\u001b[39m) \u001b[38;5;241m+\u001b[39m ext)\n\u001b[1;32m---> 37\u001b[0m \u001b[43mos\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrename\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtxt_file\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnew_txt_file\u001b[49m\u001b[43m)\u001b[49m\n",
26
- "\u001b[1;31mFileExistsError\u001b[0m: [WinError 183] Cannot create a file when that file already exists: 'E:\\\\training_dir\\\\auroth_the_winter_wyvern\\\\2440ecda95a0ab0ca236d1c6bc09830e.txt' -> 'E:\\\\training_dir\\\\auroth_the_winter_wyvern\\\\237e548ef2de010bcd17e072ddbbbc02.txt'"
27
- ]
28
- }
29
- ],
30
- "source": [
31
- "import os\n",
32
- "import hashlib\n",
33
- "\n",
34
- "def md5(file_path):\n",
35
- " \"\"\"Calculate MD5 hash of a file.\"\"\"\n",
36
- " hash_md5 = hashlib.md5()\n",
37
- " with open(file_path, \"rb\") as f:\n",
38
- " for chunk in iter(lambda: f.read(4096), b\"\"):\n",
39
- " hash_md5.update(chunk)\n",
40
- " return hash_md5.hexdigest()\n",
41
- "\n",
42
- "def rename_files(directory):\n",
43
- " \"\"\"Recursively rename image and accompanying text files.\"\"\"\n",
44
- " for root, _, files in os.walk(directory):\n",
45
- " for file in files:\n",
46
- " file_path = os.path.join(root, file)\n",
47
- " file_name, file_ext = os.path.splitext(file)\n",
48
- " if file_ext.lower() in ('.jpg', '.jpeg', '.png'):\n",
49
- " # Calculate MD5 hash\n",
50
- " new_file_name = md5(file_path) + file_ext.lower()\n",
51
- " # Check if the new filename already exists\n",
52
- " if os.path.exists(os.path.join(root, new_file_name)):\n",
53
- " # Add a suffix to make the filename unique\n",
54
- " suffix = 1\n",
55
- " while True:\n",
56
- " new_file_name = md5(file_path) + '_' + str(suffix) + file_ext.lower()\n",
57
- " if not os.path.exists(os.path.join(root, new_file_name)):\n",
58
- " break\n",
59
- " suffix += 1\n",
60
- " # Rename image file\n",
61
- " os.rename(file_path, os.path.join(root, new_file_name))\n",
62
- " # Rename accompanying text files\n",
63
- " for ext in ('.txt', '.caption', '.tags', '.pony', '.seaart'):\n",
64
- " txt_file = os.path.join(root, file_name + ext)\n",
65
- " if os.path.exists(txt_file):\n",
66
- " new_txt_file = os.path.join(root, new_file_name.replace(file_ext.lower(), '') + ext)\n",
67
- " os.rename(txt_file, new_txt_file)\n",
68
- "\n",
69
- "# Specify the directory\n",
70
- "directory = r'E:\\training_dir'\n",
71
- "\n",
72
- "# Call the function to rename files\n",
73
- "rename_files(directory)\n",
74
- "\n",
75
- "print(\"Files renamed successfully!\")"
76
- ]
77
- }
78
- ],
79
- "metadata": {
80
- "kernelspec": {
81
- "display_name": "base",
82
- "language": "python",
83
- "name": "python3"
84
- },
85
- "language_info": {
86
- "codemirror_mode": {
87
- "name": "ipython",
88
- "version": 3
89
- },
90
- "file_extension": ".py",
91
- "mimetype": "text/x-python",
92
- "name": "python",
93
- "nbconvert_exporter": "python",
94
- "pygments_lexer": "ipython3",
95
- "version": "3.12.2"
96
- }
97
- },
98
- "nbformat": 4,
99
- "nbformat_minor": 2
100
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Replace Tags and Remove Duplicates.ipynb DELETED
@@ -1,80 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## Replace tags and remove duplicates\n",
8
- "----\n",
9
- "\n",
10
- "This Python script recursively processes text files within a specified directory, replacing occurrences of certain words or phrases with new ones.\n",
11
- "\n",
12
- "It utilizes regular expressions to perform search and replace operations. The main function, `process_files`, accepts a directory path along with old and new tags to be replaced. It searches for `.txt` and `.tags` within the directory and its subdirectories, reads the content of each file, performs replacements based on the provided tags, and then writes the modified content back to the files."
13
- ]
14
- },
15
- {
16
- "cell_type": "code",
17
- "execution_count": 1,
18
- "metadata": {},
19
- "outputs": [],
20
- "source": [
21
- "import os\n",
22
- "import re\n",
23
- "\n",
24
- "def process_files(directory, old_tag, new_tag):\n",
25
- " try:\n",
26
- " for entry in os.listdir(directory):\n",
27
- " entry_path = os.path.join(directory, entry)\n",
28
- "\n",
29
- " if os.path.isdir(entry_path):\n",
30
- " process_files(entry_path, old_tag, new_tag)\n",
31
- "\n",
32
- " elif os.path.isfile(entry_path) and (entry.endswith(\".txt\") or entry.endswith(\".tags\")):\n",
33
- " with open(entry_path, 'r', encoding='utf-8') as f:\n",
34
- " content = f.read()\n",
35
- "\n",
36
- " if old_tag:\n",
37
- " content = re.sub(r'\\b' + re.escape(old_tag) + r'\\b', new_tag, content)\n",
38
- "\n",
39
- " tag_pattern = re.compile(r'(\\b\\w+\\b)(?:(?:,|\\s)+\\1)+')\n",
40
- " content = re.sub(tag_pattern, r'\\1', content)\n",
41
- "\n",
42
- " with open(entry_path, 'w', encoding='utf-8') as f:\n",
43
- " f.write(content)\n",
44
- "\n",
45
- " except Exception as e:\n",
46
- " print(f\"Error processing directory {directory}: {e}\\n\")\n",
47
- "\n",
48
- "# Directory path\n",
49
- "directory_path = r'C:\\Users\\kade\\Desktop\\training_dir_staging'\n",
50
- "\n",
51
- "#process_files(directory_path, 'transparent background', 'black background')\n",
52
- "\n",
53
- "process_files(directory_path, 'safe', 'rating_safe')\n",
54
- "process_files(directory_path, 'questionable', 'rating_questionable')\n",
55
- "process_files(directory_path, 'explicit', 'rating_explicit')\n"
56
- ]
57
- }
58
- ],
59
- "metadata": {
60
- "kernelspec": {
61
- "display_name": "Python 3",
62
- "language": "python",
63
- "name": "python3"
64
- },
65
- "language_info": {
66
- "codemirror_mode": {
67
- "name": "ipython",
68
- "version": 3
69
- },
70
- "file_extension": ".py",
71
- "mimetype": "text/x-python",
72
- "name": "python",
73
- "nbconvert_exporter": "python",
74
- "pygments_lexer": "ipython3",
75
- "version": "3.12.3"
76
- }
77
- },
78
- "nbformat": 4,
79
- "nbformat_minor": 2
80
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Replace Underscore with Spaces.ipynb DELETED
@@ -1,62 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## Replace underscores with spaces\n",
8
- "----\n",
9
- "\n",
10
- "Recursively replaces underscores with spaces in the content of text files in the specified directory and its subdirectories,\n",
11
- "excluding specified tags."
12
- ]
13
- },
14
- {
15
- "cell_type": "code",
16
- "execution_count": null,
17
- "metadata": {},
18
- "outputs": [],
19
- "source": [
20
- "import os\n",
21
- "\n",
22
- "excluded_tags = [\n",
23
- " \"rating_safe\",\n",
24
- " \"rating_explicit\",\n",
25
- " \"rating_questionable\"\n",
26
- "]\n",
27
- "\n",
28
- "def replace_underscores_with_spaces(directory_path):\n",
29
- " for root, dirs, files in os.walk(directory_path):\n",
30
- " for filename in files:\n",
31
- " if filename.endswith(\".txt\"):\n",
32
- " file_path = os.path.join(root, filename)\n",
33
- "\n",
34
- " # Read the content of the file\n",
35
- " with open(file_path, 'r') as file:\n",
36
- " content = file.read()\n",
37
- "\n",
38
- " # Replace underscores with spaces, excluding specific tags\n",
39
- " for tag in excluded_tags:\n",
40
- " replacement = tag.replace('_', ' ')\n",
41
- " content = content.replace(replacement, tag)\n",
42
- "\n",
43
- " # Write the modified content back to the file\n",
44
- " with open(file_path, 'w') as file:\n",
45
- " file.write(content)\n",
46
- "\n",
47
- "# Specify the directory path\n",
48
- "directory_path = r'C:\\Users\\kade\\Desktop\\training_dir_staging'\n",
49
- "\n",
50
- "# Call the function to recursively replace underscores with spaces (excluding specified tags)\n",
51
- "replace_underscores_with_spaces(directory_path)"
52
- ]
53
- }
54
- ],
55
- "metadata": {
56
- "language_info": {
57
- "name": "python"
58
- }
59
- },
60
- "nbformat": 4,
61
- "nbformat_minor": 2
62
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Search for Captions.ipynb DELETED
@@ -1,253 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": 50,
6
- "metadata": {},
7
- "outputs": [
8
- {
9
- "data": {
10
- "text/html": [
11
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-style: italic\"> Captioned Files </span>\n",
12
- "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
13
- "┃<span style=\"font-weight: bold\"> File Path </span>┃\n",
14
- "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
15
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\00000233-03232306.txt </span>│\n",
16
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\00051-1629238066.txt </span>│\n",
17
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\00053-241989068.txt </span>│\n",
18
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\00091-2849301263.txt </span>│\n",
19
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\00302-1912251111.txt </span>│\n",
20
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\00845-1683561778.txt </span>│\n",
21
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\07bd3943-bd6c-4c9b-9e0a-683ed1b92899.txt </span>│\n",
22
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\10846033.txt </span>│\n",
23
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\10846076.txt </span>│\n",
24
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\1539232.txt </span>│\n",
25
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\1f049eb995024948b6b7f2205e0703af.txt </span>│\n",
26
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\2018-12-02-19-17-46-1200x800.txt </span>│\n",
27
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\37398.txt </span>│\n",
28
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\3dfb5542-b462-435b-b204-83b76122f4a1.txt </span>│\n",
29
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\441e95f17163856adbcdee6b1b2cb433.txt </span>│\n",
30
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\74a76661fe5840e08f7724cabd93b289.pngtplv-6bxrjdptv7-image.txt </span>│\n",
31
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\7af8f639c59f0276970a3b476778c9a5.txt </span>│\n",
32
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\81b16ba5-5867-4dac-b2aa-e366f10778e2.txt </span>│\n",
33
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\83973-fox-foxes-face.txt </span>│\n",
34
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\882adc1422e945259cf54be10ab8270e.txt </span>│\n",
35
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\8a3caa4d-1fbf-473c-80cb-b632b4db2480.txt </span>│\n",
36
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\animal-fur-2.txt </span>│\n",
37
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\b4584b0f5f4d11df8181000b2f3ed30f.txt </span>│\n",
38
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\BifrostprojectV4.8.safetensorsUpscale_00007_.txt </span>│\n",
39
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\BifrostprojectV4.8.safetensorsUpscale_00010_.txt </span>│\n",
40
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\BifrostprojectV4.8.safetensorsUpscale_00014_.txt </span>│\n",
41
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\Border-Collie-2.txt </span>│\n",
42
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\border-collie-4.txt </span>│\n",
43
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\border-collie-running-grass-299097784-2000-226321f61c2c426da90434e13a55a0b5.txt </span>│\n",
44
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\cute-red-panda-ailurus-fulgens-in-a-tree.txt </span>│\n",
45
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\fenn.txt </span>│\n",
46
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\fennec-fox--vulpes-zerda---484466908-bc194497fd834b29bf44692c4908d4bc.txt </span>│\n",
47
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\fennec-fox-01-f56044b427f64d64a263417db3c23a13.txt </span>│\n",
48
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\gecko.txt </span>│\n",
49
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\iStock-484910814.txt </span>│\n",
50
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\nTaTmTRFHB6ejyqIjWRJDS5HwuSUvpDmN8Un3jTO9rs.txt </span>│\n",
51
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\puvwusj6wcu41.txt </span>│\n",
52
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\Red_Panda_(25193861686).txt </span>│\n",
53
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\rev-1-PDP-TRL2-093_High_Res_JPEG.txt </span>│\n",
54
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\snow-leopard--panthera-uncia--157528589-5c473a9ec9e77c00016ec625.txt </span>│\n",
55
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\snow-leopard-1373866.txt </span>│\n",
56
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\snow-leopard-1463457416BI7.txt </span>│\n",
57
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\snow-leopard-yawning-1.txt </span>│\n",
58
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\Snow_Leopard_Relaxed.txt </span>│\n",
59
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\the-cuteness-that-is-the-fennec-fox-fennec-foxes-19305761-2560-1707.txt </span>│\n",
60
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\the-endangered-snow-leopard.txt </span>│\n",
61
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\Young-Snow-Leopard-©-David-Lawson-_-WWF-UK-scaled.txt </span>│\n",
62
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\5_scale_iridescence\\10b627b9b2bd45a10ecadb685679bf3c.txt </span>│\n",
63
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\5_scale_iridescence\\129440_Iridescent-fish-scales_shutterstock_586009376---Index.txt </span>│\n",
64
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\5_scale_iridescence\\p86qy9k3xm851.txt </span>│\n",
65
- "└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘\n",
66
- "</pre>\n"
67
- ],
68
- "text/plain": [
69
- "\u001b[3m Captioned Files \u001b[0m\n",
70
- "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
71
- "┃\u001b[1m \u001b[0m\u001b[1mFile Path \u001b[0m\u001b[1m \u001b[0m┃\n",
72
- "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
73
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\00000233-03232306.txt \u001b[0m\u001b[36m \u001b[0m│\n",
74
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\00051-1629238066.txt \u001b[0m\u001b[36m \u001b[0m│\n",
75
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\00053-241989068.txt \u001b[0m\u001b[36m \u001b[0m│\n",
76
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\00091-2849301263.txt \u001b[0m\u001b[36m \u001b[0m│\n",
77
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\00302-1912251111.txt \u001b[0m\u001b[36m \u001b[0m│\n",
78
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\00845-1683561778.txt \u001b[0m\u001b[36m \u001b[0m│\n",
79
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\07bd3943-bd6c-4c9b-9e0a-683ed1b92899.txt \u001b[0m\u001b[36m \u001b[0m│\n",
80
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\10846033.txt \u001b[0m\u001b[36m \u001b[0m│\n",
81
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\10846076.txt \u001b[0m\u001b[36m \u001b[0m│\n",
82
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\1539232.txt \u001b[0m\u001b[36m \u001b[0m│\n",
83
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\1f049eb995024948b6b7f2205e0703af.txt \u001b[0m\u001b[36m \u001b[0m│\n",
84
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\2018-12-02-19-17-46-1200x800.txt \u001b[0m\u001b[36m \u001b[0m│\n",
85
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\37398.txt \u001b[0m\u001b[36m \u001b[0m│\n",
86
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\3dfb5542-b462-435b-b204-83b76122f4a1.txt \u001b[0m\u001b[36m \u001b[0m│\n",
87
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\441e95f17163856adbcdee6b1b2cb433.txt \u001b[0m\u001b[36m \u001b[0m│\n",
88
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\74a76661fe5840e08f7724cabd93b289.pngtplv-6bxrjdptv7-image.txt \u001b[0m\u001b[36m \u001b[0m│\n",
89
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\7af8f639c59f0276970a3b476778c9a5.txt \u001b[0m\u001b[36m \u001b[0m│\n",
90
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\81b16ba5-5867-4dac-b2aa-e366f10778e2.txt \u001b[0m\u001b[36m \u001b[0m│\n",
91
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\83973-fox-foxes-face.txt \u001b[0m\u001b[36m \u001b[0m│\n",
92
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\882adc1422e945259cf54be10ab8270e.txt \u001b[0m\u001b[36m \u001b[0m│\n",
93
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\8a3caa4d-1fbf-473c-80cb-b632b4db2480.txt \u001b[0m\u001b[36m \u001b[0m│\n",
94
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\animal-fur-2.txt \u001b[0m\u001b[36m \u001b[0m│\n",
95
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\b4584b0f5f4d11df8181000b2f3ed30f.txt \u001b[0m\u001b[36m \u001b[0m│\n",
96
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\BifrostprojectV4.8.safetensorsUpscale_00007_.txt \u001b[0m\u001b[36m \u001b[0m│\n",
97
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\BifrostprojectV4.8.safetensorsUpscale_00010_.txt \u001b[0m\u001b[36m \u001b[0m│\n",
98
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\BifrostprojectV4.8.safetensorsUpscale_00014_.txt \u001b[0m\u001b[36m \u001b[0m│\n",
99
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\Border-Collie-2.txt \u001b[0m\u001b[36m \u001b[0m│\n",
100
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\border-collie-4.txt \u001b[0m\u001b[36m \u001b[0m│\n",
101
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\border-collie-running-grass-299097784-2000-226321f61c2c426da90434e13a55a0b5.txt \u001b[0m\u001b[36m \u001b[0m│\n",
102
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\cute-red-panda-ailurus-fulgens-in-a-tree.txt \u001b[0m\u001b[36m \u001b[0m│\n",
103
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\fenn.txt \u001b[0m\u001b[36m \u001b[0m│\n",
104
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\fennec-fox--vulpes-zerda---484466908-bc194497fd834b29bf44692c4908d4bc.txt \u001b[0m\u001b[36m \u001b[0m│\n",
105
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\fennec-fox-01-f56044b427f64d64a263417db3c23a13.txt \u001b[0m\u001b[36m \u001b[0m│\n",
106
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\gecko.txt \u001b[0m\u001b[36m \u001b[0m│\n",
107
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\iStock-484910814.txt \u001b[0m\u001b[36m \u001b[0m│\n",
108
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\nTaTmTRFHB6ejyqIjWRJDS5HwuSUvpDmN8Un3jTO9rs.txt \u001b[0m\u001b[36m \u001b[0m│\n",
109
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\puvwusj6wcu41.txt \u001b[0m\u001b[36m \u001b[0m│\n",
110
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\Red_Panda_(25193861686).txt \u001b[0m\u001b[36m \u001b[0m│\n",
111
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\rev-1-PDP-TRL2-093_High_Res_JPEG.txt \u001b[0m\u001b[36m \u001b[0m│\n",
112
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\snow-leopard--panthera-uncia--157528589-5c473a9ec9e77c00016ec625.txt \u001b[0m\u001b[36m \u001b[0m│\n",
113
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\snow-leopard-1373866.txt \u001b[0m\u001b[36m \u001b[0m│\n",
114
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\snow-leopard-1463457416BI7.txt \u001b[0m\u001b[36m \u001b[0m│\n",
115
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\snow-leopard-yawning-1.txt \u001b[0m\u001b[36m \u001b[0m│\n",
116
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\Snow_Leopard_Relaxed.txt \u001b[0m\u001b[36m \u001b[0m│\n",
117
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\the-cuteness-that-is-the-fennec-fox-fennec-foxes-19305761-2560-1707.txt \u001b[0m\u001b[36m \u001b[0m│\n",
118
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\the-endangered-snow-leopard.txt \u001b[0m\u001b[36m \u001b[0m│\n",
119
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\Young-Snow-Leopard-©-David-Lawson-_-WWF-UK-scaled.txt \u001b[0m\u001b[36m \u001b[0m│\n",
120
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\5_scale_iridescence\\10b627b9b2bd45a10ecadb685679bf3c.txt \u001b[0m\u001b[36m \u001b[0m│\n",
121
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\5_scale_iridescence\\129440_Iridescent-fish-scales_shutterstock_586009376---Index.txt \u001b[0m\u001b[36m \u001b[0m│\n",
122
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\5_scale_iridescence\\p86qy9k3xm851.txt \u001b[0m\u001b[36m \u001b[0m│\n",
123
- "└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘\n"
124
- ]
125
- },
126
- "metadata": {},
127
- "output_type": "display_data"
128
- },
129
- {
130
- "data": {
131
- "text/html": [
132
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-style: italic\"> Files without Captions </span>\n",
133
- "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
134
- "┃<span style=\"font-weight: bold\"> File Path </span>┃\n",
135
- "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
136
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\00194-1154751552.txt </span>│\n",
137
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\c50d73ab7dc24215b3dc3fcfc014d5da.txt </span>│\n",
138
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\ComfyUI_00870_.txt </span>│\n",
139
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\e5280a8f-4b21-45a9-bfd7-9b0d4cf2524d.txt </span>│\n",
140
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\fine_print_part_3_7__horse_tf__by_spichtf_dh2nq5m-fullview.txt </span>│\n",
141
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\HeuA9t.txt </span>│\n",
142
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\imagen.txt </span>│\n",
143
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\loonatest1.txt </span>│\n",
144
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view (2).txt </span>│\n",
145
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view (3).txt </span>│\n",
146
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view (4).txt </span>│\n",
147
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view (5).txt </span>│\n",
148
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view (6).txt </span>│\n",
149
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view.txt </span>│\n",
150
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view2.txt </span>│\n",
151
- "│<span style=\"color: #008080; text-decoration-color: #008080\"> C:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view3.txt </span>│\n",
152
- "└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────���─────────────────────────────────────────────────────────┘\n",
153
- "</pre>\n"
154
- ],
155
- "text/plain": [
156
- "\u001b[3m Files without Captions \u001b[0m\n",
157
- "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
158
- "┃\u001b[1m \u001b[0m\u001b[1mFile Path \u001b[0m\u001b[1m \u001b[0m┃\n",
159
- "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
160
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\00194-1154751552.txt \u001b[0m\u001b[36m \u001b[0m│\n",
161
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\c50d73ab7dc24215b3dc3fcfc014d5da.txt \u001b[0m\u001b[36m \u001b[0m│\n",
162
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\ComfyUI_00870_.txt \u001b[0m\u001b[36m \u001b[0m│\n",
163
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\e5280a8f-4b21-45a9-bfd7-9b0d4cf2524d.txt \u001b[0m\u001b[36m \u001b[0m│\n",
164
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\fine_print_part_3_7__horse_tf__by_spichtf_dh2nq5m-fullview.txt \u001b[0m\u001b[36m \u001b[0m│\n",
165
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\HeuA9t.txt \u001b[0m\u001b[36m \u001b[0m│\n",
166
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\imagen.txt \u001b[0m\u001b[36m \u001b[0m│\n",
167
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\loonatest1.txt \u001b[0m\u001b[36m \u001b[0m│\n",
168
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view (2).txt \u001b[0m\u001b[36m \u001b[0m│\n",
169
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view (3).txt \u001b[0m\u001b[36m \u001b[0m│\n",
170
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view (4).txt \u001b[0m\u001b[36m \u001b[0m│\n",
171
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view (5).txt \u001b[0m\u001b[36m \u001b[0m│\n",
172
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view (6).txt \u001b[0m\u001b[36m \u001b[0m│\n",
173
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view.txt \u001b[0m\u001b[36m \u001b[0m│\n",
174
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view2.txt \u001b[0m\u001b[36m \u001b[0m│\n",
175
- "│\u001b[36m \u001b[0m\u001b[36mC:\\Users\\kade\\Desktop\\training_dir_staging\\1_realistic\\view3.txt \u001b[0m\u001b[36m \u001b[0m│\n",
176
- "└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘\n"
177
- ]
178
- },
179
- "metadata": {},
180
- "output_type": "display_data"
181
- }
182
- ],
183
- "source": [
184
- "from rich import print\n",
185
- "from rich.console import Console\n",
186
- "from rich.table import Table\n",
187
- "from rich.text import Text\n",
188
- "import os\n",
189
- "\n",
190
- "def has_captions(file_path):\n",
191
- " with open(file_path, 'r') as file:\n",
192
- " content = file.read()\n",
193
- " if '.,' in content:\n",
194
- " return True\n",
195
- " else:\n",
196
- " return False\n",
197
- "\n",
198
- "def find_caption_files(directory):\n",
199
- " caption_files = []\n",
200
- " no_caption_files = []\n",
201
- " for root, _, files in os.walk(directory):\n",
202
- " for file in files:\n",
203
- " if file.endswith('.txt'):\n",
204
- " file_path = os.path.join(root, file)\n",
205
- " if has_captions(file_path):\n",
206
- " caption_files.append(file_path)\n",
207
- " else:\n",
208
- " no_caption_files.append(file_path)\n",
209
- " return caption_files, no_caption_files\n",
210
- "\n",
211
- "if __name__ == \"__main__\":\n",
212
- " directory = r\"C:\\Users\\kade\\Desktop\\training_dir_staging\"\n",
213
- " caption_files, no_caption_files = find_caption_files(directory)\n",
214
- "\n",
215
- " console = Console(width=200)\n",
216
- "\n",
217
- " table = Table(title=\"Captioned Files\", expand=True)\n",
218
- " table.add_column(\"File Path\", style=\"cyan\", no_wrap=False)\n",
219
- " for file_path in caption_files:\n",
220
- " table.add_row(file_path)\n",
221
- " console.print(table)\n",
222
- "\n",
223
- " if no_caption_files:\n",
224
- " table = Table(title=\"Files without Captions\", expand=True)\n",
225
- " table.add_column(\"File Path\", style=\"cyan\", no_wrap=False)\n",
226
- " for file_path in no_caption_files:\n",
227
- " table.add_row(file_path)\n",
228
- " console.print(table)"
229
- ]
230
- }
231
- ],
232
- "metadata": {
233
- "kernelspec": {
234
- "display_name": "Python 3",
235
- "language": "python",
236
- "name": "python3"
237
- },
238
- "language_info": {
239
- "codemirror_mode": {
240
- "name": "ipython",
241
- "version": 3
242
- },
243
- "file_extension": ".py",
244
- "mimetype": "text/x-python",
245
- "name": "python",
246
- "nbconvert_exporter": "python",
247
- "pygments_lexer": "ipython3",
248
- "version": "3.12.3"
249
- }
250
- },
251
- "nbformat": 4,
252
- "nbformat_minor": 2
253
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Search for Transparent Images.ipynb DELETED
@@ -1,61 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": 3,
6
- "metadata": {},
7
- "outputs": [],
8
- "source": [
9
- "import os\n",
10
- "from PIL import Image\n",
11
- "\n",
12
- "# Disable image resolution limit.\n",
13
- "Image.MAX_IMAGE_PIXELS = None\n",
14
- "\n",
15
- "def find_images_with_transparency(directory):\n",
16
- " transparent_images = []\n",
17
- "\n",
18
- " for root, dirs, files in os.walk(directory):\n",
19
- " for file in files:\n",
20
- " if file.lower().endswith(('.jpg', '.jpeg', '.png')):\n",
21
- " file_path = os.path.join(root, file)\n",
22
- " try:\n",
23
- " with Image.open(file_path) as img:\n",
24
- " if img.mode in ('RGBA', 'LA') or (img.mode == 'P' and 'transparency' in img.info):\n",
25
- " transparent_images.append(os.path.normpath(file_path))\n",
26
- " except Exception as e:\n",
27
- " print(f\"Error processing {file_path}: {e}\")\n",
28
- "\n",
29
- " return transparent_images\n",
30
- "\n",
31
- "if __name__ == \"__main__\":\n",
32
- " directory = r'E:\\training_dir'\n",
33
- " transparent_images = find_images_with_transparency(directory)\n",
34
- " print(\"Images with transparency:\")\n",
35
- " for img_path in transparent_images:\n",
36
- " print(img_path)"
37
- ]
38
- }
39
- ],
40
- "metadata": {
41
- "kernelspec": {
42
- "display_name": "Python 3",
43
- "language": "python",
44
- "name": "python3"
45
- },
46
- "language_info": {
47
- "codemirror_mode": {
48
- "name": "ipython",
49
- "version": 3
50
- },
51
- "file_extension": ".py",
52
- "mimetype": "text/x-python",
53
- "name": "python",
54
- "nbconvert_exporter": "python",
55
- "pygments_lexer": "ipython3",
56
- "version": "3.12.3"
57
- }
58
- },
59
- "nbformat": 4,
60
- "nbformat_minor": 2
61
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/Tag Frequency.ipynb DELETED
The diff for this file is too large to render. See raw diff
 
dataset_tools/done/Check for Transparency.ipynb DELETED
The diff for this file is too large to render. See raw diff
 
dataset_tools/done/Count Images in Folder.ipynb DELETED
@@ -1,92 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "# Count Images in Folder\n",
8
- "\n",
9
- "---\n",
10
- "\n",
11
- "This script counts the total number of JPEG and PNG images in a specified directory."
12
- ]
13
- },
14
- {
15
- "cell_type": "code",
16
- "execution_count": 1,
17
- "metadata": {},
18
- "outputs": [
19
- {
20
- "name": "stdout",
21
- "output_type": "stream",
22
- "text": [
23
- "Total number of images: 21891\n"
24
- ]
25
- }
26
- ],
27
- "source": [
28
- "from pathlib import Path\n",
29
- "import glob\n",
30
- "\n",
31
- "\"\"\"\n",
32
- "This script counts the total number of JPEG and PNG images in a specified directory.\n",
33
- "\n",
34
- "The script uses the `glob` module to find all files with .jpg, .jpeg, and .png extensions\n",
35
- "within the given directory and its subdirectories. It then calculates the total count of these\n",
36
- "image files and prints the result.\n",
37
- "\n",
38
- "Functions:\n",
39
- " count_images(directory): Counts and returns the number of image files in the directory.\n",
40
- "\n",
41
- "Usage:\n",
42
- " To use this script, simply set the `directory_path` variable to the path of the directory\n",
43
- " you want to process. Then run the script, and it will output the total number of images found.\n",
44
- "\n",
45
- "Note:\n",
46
- " Ensure that the directory path uses double backslashes (\\\\) or raw string literals to avoid escape sequence errors.\n",
47
- "\"\"\"\n",
48
- "\n",
49
- "def count_images(directory):\n",
50
- " # Create a Path object for the directory\n",
51
- " path = Path(directory)\n",
52
- " \n",
53
- " # Use glob to find all jpg, jpeg, and png files\n",
54
- " jpg_files = glob.glob(str(path / '**/*.jpg'), recursive=True)\n",
55
- " jpeg_files = glob.glob(str(path / '**/*.jpeg'), recursive=True)\n",
56
- " png_files = glob.glob(str(path / '**/*.png'), recursive=True)\n",
57
- " \n",
58
- " # Count the total number of image files\n",
59
- " total_images = len(jpg_files) + len(jpeg_files) + len(png_files)\n",
60
- " \n",
61
- " return total_images\n",
62
- "\n",
63
- "# Specify the directory path\n",
64
- "directory_path = 'E:\\\\training_dir'\n",
65
- "\n",
66
- "# Call the function and print the result\n",
67
- "print(f'Total number of images: {count_images(directory_path)}')"
68
- ]
69
- }
70
- ],
71
- "metadata": {
72
- "kernelspec": {
73
- "display_name": "base",
74
- "language": "python",
75
- "name": "python3"
76
- },
77
- "language_info": {
78
- "codemirror_mode": {
79
- "name": "ipython",
80
- "version": 3
81
- },
82
- "file_extension": ".py",
83
- "mimetype": "text/x-python",
84
- "name": "python",
85
- "nbconvert_exporter": "python",
86
- "pygments_lexer": "ipython3",
87
- "version": "3.12.2"
88
- }
89
- },
90
- "nbformat": 4,
91
- "nbformat_minor": 2
92
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/done/Create Empty Captions for Images.ipynb DELETED
@@ -1,95 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "# Create Empty Captions for Images\n",
8
- "\n",
9
- "---\n",
10
- "\n",
11
- "This Python script creates an empty text file with the same name as each image file (.jpg, .png, or .jpeg) present in a specified directory. The script checks if the directory exists, and then iterates through all the image files in the directory. For each image file, it creates a corresponding text file with the same name but with a .txt extension in the same directory, unless a text file with that name already exists."
12
- ]
13
- },
14
- {
15
- "cell_type": "code",
16
- "execution_count": null,
17
- "metadata": {},
18
- "outputs": [],
19
- "source": [
20
- "import os\n",
21
- "import glob\n",
22
- "\n",
23
- "def create_empty_txt_files(directory):\n",
24
- " \"\"\"\n",
25
- " Create empty .txt files for each image in a specified directory.\n",
26
- "\n",
27
- " This function checks for the existence of a directory and then iterates over all .jpg, .png, and .jpeg files within it.\n",
28
- " For each image file, it creates an empty .txt file with the same name if it doesn't already exist.\n",
29
- "\n",
30
- " Parameters:\n",
31
- " - directory (str): The path to the directory where the image files are located and where the .txt files will be created.\n",
32
- "\n",
33
- " Returns:\n",
34
- " None: This function does not return any value.\n",
35
- "\n",
36
- " Prints:\n",
37
- " - A message indicating that a .txt file has been created or already exists for each image file.\n",
38
- " \"\"\"\n",
39
- " # Check if the directory exists\n",
40
- " if not os.path.exists(directory):\n",
41
- " print(\"Directory does not exist.\")\n",
42
- " return\n",
43
- "\n",
44
- " # Get a list of all image files in the directory\n",
45
- " image_files = glob.glob(os.path.join(directory, \"*.jpg\")) + \\\n",
46
- " glob.glob(os.path.join(directory, \"*.png\")) + \\\n",
47
- " glob.glob(os.path.join(directory, \"*.jpeg\"))\n",
48
- "\n",
49
- " # Iterate over each image file\n",
50
- " for image_file in image_files:\n",
51
- " # Extract the filename without extension\n",
52
- " filename = os.path.splitext(os.path.basename(image_file))[0]\n",
53
- "\n",
54
- " # Create a corresponding txt file with the same name\n",
55
- " txt_filename = os.path.join(directory, filename + \".txt\")\n",
56
- "\n",
57
- " # Check if the txt file already exists\n",
58
- " if not os.path.exists(txt_filename):\n",
59
- " # Create an empty txt file\n",
60
- " with open(txt_filename, 'w') as f:\n",
61
- " pass\n",
62
- " print(f\"Created {txt_filename}\")\n",
63
- " else:\n",
64
- " print(f\"{txt_filename} already exists\")\n",
65
- "\n",
66
- "# Path to the directory containing the images\n",
67
- "image_directory = r'C:\\Users\\kade\\Desktop\\training_dir_staging\\1_by_spaceengine'\n",
68
- "\n",
69
- "# Call the function to create empty txt files\n",
70
- "create_empty_txt_files(image_directory)"
71
- ]
72
- }
73
- ],
74
- "metadata": {
75
- "kernelspec": {
76
- "display_name": "Python 3",
77
- "language": "python",
78
- "name": "python3"
79
- },
80
- "language_info": {
81
- "codemirror_mode": {
82
- "name": "ipython",
83
- "version": 3
84
- },
85
- "file_extension": ".py",
86
- "mimetype": "text/x-python",
87
- "name": "python",
88
- "nbconvert_exporter": "python",
89
- "pygments_lexer": "ipython3",
90
- "version": "3.12.3"
91
- }
92
- },
93
- "nbformat": 4,
94
- "nbformat_minor": 2
95
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/done/Newlines to Commas.ipynb DELETED
@@ -1,74 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## Newlines to commas\n",
8
- "----\n",
9
- "\n",
10
- "Recursively modify the content of `.txt` files in the specified directory and its subdirectories by replacing newlines with commas and spaces. "
11
- ]
12
- },
13
- {
14
- "cell_type": "code",
15
- "execution_count": null,
16
- "metadata": {},
17
- "outputs": [],
18
- "source": [
19
- "\"\"\"\n",
20
- "This script is designed to process all text files within a specified directory\n",
21
- "and its subdirectories. It modifies the content of each text file by replacing\n",
22
- "newlines with a comma followed by a space.\n",
23
- "\n",
24
- "Functions:\n",
25
- " process_directory(directory): Recursively processes all '.txt' files in the given directory.\n",
26
- "\n",
27
- "Args:\n",
28
- " directory (str): The path to the directory containing the text files to be processed.\n",
29
- "\n",
30
- "Usage:\n",
31
- " Set the 'directory_path' variable to the path of the target directory and run the script.\n",
32
- " The script will modify all '.txt' files within this directory and its subdirectories.\n",
33
- "\"\"\"\n",
34
- "from pathlib import Path\n",
35
- "\n",
36
- "def process_directory(directory):\n",
37
- " \"\"\"\n",
38
- " Process all '.txt' files in the given directory, replacing newlines with a comma and space.\n",
39
- "\n",
40
- " Parameters:\n",
41
- " - directory (str): The path to the directory to process.\n",
42
- " \"\"\"\n",
43
- " # Create a Path object for the directory\n",
44
- " path = Path(directory)\n",
45
- " \n",
46
- " # Use glob pattern to match all .txt files recursively\n",
47
- " for file_path in path.rglob('*.txt'):\n",
48
- " # Read the content of the file\n",
49
- " with open(file_path, 'r') as file:\n",
50
- " content = file.read()\n",
51
- " \n",
52
- " # Replace newline with a comma and space\n",
53
- " modified_content = content.replace('\\n', ', ')\n",
54
- " \n",
55
- " # Write the modified content back to the file\n",
56
- " with open(file_path, 'w') as file:\n",
57
- " file.write(modified_content)\n",
58
- "\n",
59
- "# Directory path\n",
60
- "directory_path = r'C:\\Users\\kade\\Desktop\\training_dir_staging'\n",
61
- "\n",
62
- "# Recursively process the directory and its subdirectories\n",
63
- "process_directory(directory_path)"
64
- ]
65
- }
66
- ],
67
- "metadata": {
68
- "language_info": {
69
- "name": "python"
70
- }
71
- },
72
- "nbformat": 4,
73
- "nbformat_minor": 2
74
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/done/convert_rgba_to_rgb_in_pngs.py DELETED
@@ -1,53 +0,0 @@
1
- import os
2
- import glob
3
- import multiprocessing
4
- from PIL import Image
5
-
6
- # Set the maximum number of pixels allowed in an image to prevent DecompressionBombWarning.
7
- Image.MAX_IMAGE_PIXELS = 139211472
8
-
9
-
10
- def convert_rgba_to_rgb(image_path):
11
- """
12
- Convert an RGBA image to RGB format.
13
- """
14
- try:
15
- print(f"Opening image: {image_path}")
16
- with Image.open(image_path) as image:
17
- print(f"Image mode: {image.mode}")
18
- if image.mode == "RGBA":
19
- rgb_image = image.convert("RGB")
20
- rgb_image.save(image_path)
21
- print(f"Converted {image_path} to RGB.")
22
- else:
23
- print(f"{image_path} is not an RGBA image.")
24
- except Exception as e:
25
- print(f"Error processing {image_path}: {e}")
26
-
27
-
28
- def main():
29
- """
30
- Main function to convert all RGBA images to RGB in a directory.
31
- """
32
- directory = r"E:\training_dir"
33
- print(f"Directory set to: {directory}")
34
-
35
- # Get all .png files in the directory recursively
36
- files = glob.glob(os.path.join(directory, "**", "*.png"), recursive=True)
37
- print(f"Found {len(files)} .png files in directory and subdirectories.")
38
-
39
- # Determine the number of processes based on the available CPUs
40
- num_processes = multiprocessing.cpu_count()
41
- print(f"Number of processes set to the number of available CPUs: {num_processes}")
42
-
43
- # Create a pool of processes
44
- with multiprocessing.Pool(num_processes) as pool:
45
- print("Pool of processes created.")
46
- # Map the convert_rgba_to_rgb function to the files
47
- pool.map(convert_rgba_to_rgb, files)
48
-
49
- print("Conversion complete.")
50
-
51
-
52
- if __name__ == "__main__":
53
- main()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/done/e621 JSON to txt.ipynb DELETED
@@ -1,439 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## e621.net/e6ai.net JSON to `.txt` tags\n",
8
- "----\n",
9
- "\n",
10
- "This Python script is designed to process JSON files found within a specified directory and its subdirectories. Each JSON file is expected to contain data related to image posts, particularly sourced from online platforms such as image boards. The script parses these JSON files, extracts relevant information such as image URL, ratings, and tags, and generates caption files (`.txt`) based on this data.\n",
11
- "\n",
12
- "Here's a breakdown of what the script does:\n",
13
- "\n",
14
- "1. **Ignoring Tags**: The script defines a list of tags to be ignored during processing, such as \"hi res\", \"shaded\", etc.\n",
15
- "\n",
16
- "2. **Processing Files**: The `process_file` function is responsible for processing each JSON file. It reads the JSON data, extracts the URL of the image file, determines its rating, and extracts tags associated with the image.\n",
17
- "\n",
18
- "3. **Generating Caption File**: For each image, a caption file is generated with the same name as the image file but with a .txt extension. The rating of the image is written first, followed by processed tags.\n",
19
- "\n",
20
- "4. **Processing Tags**: Tags are processed to replace underscores with spaces and to handle special cases such as artist tags. Ignored tags are filtered out."
21
- ]
22
- },
23
- {
24
- "cell_type": "code",
25
- "execution_count": 1,
26
- "metadata": {},
27
- "outputs": [],
28
- "source": [
29
- "\"\"\"\n",
30
- "Define tags to be ignored using regular expressions for exact matching\n",
31
- "\"\"\"\n",
32
- "ignored_tags = [r\"\\bblizzard entertainment\\b\", r\"\\bwarcraft\\b\",\n",
33
- " r\"(?:\\d{4})|(?:\\d+:\\d+)\",\n",
34
- " r\"\\bdetailed\\b\", r\"\\bwidescreen\\b\", r\"\\b4k\\b\",\n",
35
- " r\"\\babsurd res\\b\", r\"\\bhi res\\b\", r\"\\bshaded\\b\", r\"\\bdetailed\\b\",\n",
36
- " r\"\\btagme\\b\",\n",
37
- " r\"\\bdota\\b\",\n",
38
- " r\"\\bcreative commons\\b\", r\"\\bcc-by-nc-nd\\b\",\n",
39
- " r\"\\bsquare enix\\b\", r\"\\bfinal fantasy xiv\\b\", r\"\\bfinal fantasy\\b\",\n",
40
- " r\"\\bmythological canine\\b\", r\"\\basian mythology\\b\", r\"\\bmythological scalie\\b\",\n",
41
- " r\"\\bancient pokemon\\b\", r\"\\bmythological creature\\b\", r\"\\blegendary pokemon\\b\",\n",
42
- " r\"\\bfelis\\b\", r\"\\bfelid\\b\",\n",
43
- " r\"\\bsega\\b\",\n",
44
- " r\"\\bhasbro\\b\",\n",
45
- " r\"\\bzootopia\\b\",\n",
46
- " r\"\\bfive nights at freddy's\\b\",\n",
47
- " r\"\\beeveelution\\b\",\n",
48
- " r\"\\bdisney\\b\",\n",
49
- " r\"\\bmammal\\b\", r\"\\bcanis\\b\", r\"\\bcanine\\b\", r\"\\bcanid\\b\",\n",
50
- " r\"\\bdigimon\\b\", r\"\\bbandai namco\\b\",\n",
51
- " r\"\\bpokemon (species)\\b\",\n",
52
- " r\"\\bpal (species)\\b\",\n",
53
- " r\"\\bpokemon\\b\", r\"\\bnintendo\\b\",\n",
54
- " r\"\\\\bby conditional dnp\\\\b\",\n",
55
- " r\"\\\\bconditional dnp\\\\b\",\n",
56
- " r\"\\\\bconditional_dnp\\\\b\",\n",
57
- " r\"\\\\bby\\\\s+conditional\\\\s+dnp\\\\b\",\n",
58
- " r\"\\bgeneration\\s+\\d+\\s+pokemon\\b\",\n",
59
- "]"
60
- ]
61
- },
62
- {
63
- "cell_type": "code",
64
- "execution_count": 2,
65
- "metadata": {},
66
- "outputs": [
67
- {
68
- "data": {
69
- "text/html": [
70
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Processing file: <span style=\"font-weight: bold\">E:\\training_dir_staging\\package-lock.json</span>\n",
71
- "</pre>\n"
72
- ],
73
- "text/plain": [
74
- "Processing file: \u001b[1mE:\\training_dir_staging\\package-lock.json\u001b[0m\n"
75
- ]
76
- },
77
- "metadata": {},
78
- "output_type": "display_data"
79
- },
80
- {
81
- "data": {
82
- "text/html": [
83
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Processing file: <span style=\"font-weight: bold\">E:\\training_dir_staging\\package.json</span>\n",
84
- "</pre>\n"
85
- ],
86
- "text/plain": [
87
- "Processing file: \u001b[1mE:\\training_dir_staging\\package.json\u001b[0m\n"
88
- ]
89
- },
90
- "metadata": {},
91
- "output_type": "display_data"
92
- },
93
- {
94
- "data": {
95
- "text/html": [
96
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Processing file: <span style=\"font-weight: bold\">E:\\training_dir_staging\\2_anthro_weasel\\</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">3051834.j</span><span style=\"font-weight: bold\">son</span>\n",
97
- "</pre>\n"
98
- ],
99
- "text/plain": [
100
- "Processing file: \u001b[1mE:\\training_dir_staging\\2_anthro_weasel\\\u001b[0m\u001b[1;36m3051834.j\u001b[0m\u001b[1mson\u001b[0m\n"
101
- ]
102
- },
103
- "metadata": {},
104
- "output_type": "display_data"
105
- },
106
- {
107
- "data": {
108
- "text/html": [
109
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
110
- "┃<span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\"> E:\\training_dir_staging\\2_anthro_weasel\\8a5ed4f684745414e5e57b2e3c9276ff.txt </span>┃\n",
111
- "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
112
- "│ 4 toes, anthro, balls, bandanna, blush, brown body, brown fur, chastity cage, chastity device, clothing, │\n",
113
- "│ dialogue, dildo, exclamation point, feet, fur, genitals, hair, hindpaw, kerchief, legs up, lying, male, male │\n",
114
- "│ wearing strapon, masturbation, mostly nude, offscreen character, on back, pawpads, paws, penetrable sex toy, │\n",
115
- "│ penis, pink background, pouting, question mark, sex toy, simple background, solo, speech bubble, strapon, │\n",
116
- "│ strapon masturbation, strapon over chastity, strapon over penis, tan body, tan fur, teasing, text, toes, │\n",
117
- "│ underwear, white hair, by bittenbun, merlin \\(lllmaddy\\), digital media \\(artwork\\), english text │\n",
118
- "└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘\n",
119
- "</pre>\n"
120
- ],
121
- "text/plain": [
122
- "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
123
- "┃\u001b[1;35m \u001b[0m\u001b[1;35m E:\\training_dir_staging\\2_anthro_weasel\\8a5ed4f684745414e5e57b2e3c9276ff.txt \u001b[0m\u001b[1;35m \u001b[0m┃\n",
124
- "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
125
- "│ 4 toes, anthro, balls, bandanna, blush, brown body, brown fur, chastity cage, chastity device, clothing, │\n",
126
- "│ dialogue, dildo, exclamation point, feet, fur, genitals, hair, hindpaw, kerchief, legs up, lying, male, male │\n",
127
- "│ wearing strapon, masturbation, mostly nude, offscreen character, on back, pawpads, paws, penetrable sex toy, │\n",
128
- "│ penis, pink background, pouting, question mark, sex toy, simple background, solo, speech bubble, strapon, │\n",
129
- "│ strapon masturbation, strapon over chastity, strapon over penis, tan body, tan fur, teasing, text, toes, │\n",
130
- "│ underwear, white hair, by bittenbun, merlin \\(lllmaddy\\), digital media \\(artwork\\), english text │\n",
131
- "└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘\n"
132
- ]
133
- },
134
- "metadata": {},
135
- "output_type": "display_data"
136
- },
137
- {
138
- "data": {
139
- "text/html": [
140
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Processing file: <span style=\"font-weight: bold\">E:\\training_dir_staging\\2_anthro_weasel\\</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">3584444.j</span><span style=\"font-weight: bold\">son</span>\n",
141
- "</pre>\n"
142
- ],
143
- "text/plain": [
144
- "Processing file: \u001b[1mE:\\training_dir_staging\\2_anthro_weasel\\\u001b[0m\u001b[1;36m3584444.j\u001b[0m\u001b[1mson\u001b[0m\n"
145
- ]
146
- },
147
- "metadata": {},
148
- "output_type": "display_data"
149
- },
150
- {
151
- "data": {
152
- "text/html": [
153
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
154
- "┃<span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\"> E:\\training_dir_staging\\2_anthro_weasel\\ecff451612ee44a571db893d44c910ce.txt </span>┃\n",
155
- "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
156
- "│ anthro, anus, athletic, athletic anthro, athletic male, backsack, balls, big penis, butt, chandelier, claws, │\n",
157
- "│ crouching, erection, eyebrows, fur, genitals, hair, humanoid genitalia, humanoid penis, imminent facesitting, │\n",
158
- "│ indoor nudity, inside, licking, licking lips, licking own lips, looking at viewer, looking down, looking down │\n",
159
- "│ at viewer, low-angle view, male, nipples, nude, nude anthro, nude male, open mouth, open smile, pawpads, pecs, │\n",
160
- "│ penis, perineum, presenting, presenting anus, presenting hindquarters, presenting penis, self lick, smile, │\n",
161
- "│ solo, teeth, thick thighs, tongue, tongue out, tuft, worm's-eye view, by kihu, barnaby kane │\n",
162
- "└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘\n",
163
- "</pre>\n"
164
- ],
165
- "text/plain": [
166
- "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
167
- "┃\u001b[1;35m \u001b[0m\u001b[1;35m E:\\training_dir_staging\\2_anthro_weasel\\ecff451612ee44a571db893d44c910ce.txt \u001b[0m\u001b[1;35m \u001b[0m┃\n",
168
- "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
169
- "│ anthro, anus, athletic, athletic anthro, athletic male, backsack, balls, big penis, butt, chandelier, claws, │\n",
170
- "│ crouching, erection, eyebrows, fur, genitals, hair, humanoid genitalia, humanoid penis, imminent facesitting, │\n",
171
- "│ indoor nudity, inside, licking, licking lips, licking own lips, looking at viewer, looking down, looking down │\n",
172
- "│ at viewer, low-angle view, male, nipples, nude, nude anthro, nude male, open mouth, open smile, pawpads, pecs, │\n",
173
- "│ penis, perineum, presenting, presenting anus, presenting hindquarters, presenting penis, self lick, smile, │\n",
174
- "│ solo, teeth, thick thighs, tongue, tongue out, tuft, worm's-eye view, by kihu, barnaby kane │\n",
175
- "└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘\n"
176
- ]
177
- },
178
- "metadata": {},
179
- "output_type": "display_data"
180
- },
181
- {
182
- "data": {
183
- "text/html": [
184
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Processing file: <span style=\"font-weight: bold\">E:\\training_dir_staging\\2_anthro_weasel\\</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4264190.j</span><span style=\"font-weight: bold\">son</span>\n",
185
- "</pre>\n"
186
- ],
187
- "text/plain": [
188
- "Processing file: \u001b[1mE:\\training_dir_staging\\2_anthro_weasel\\\u001b[0m\u001b[1;36m4264190.j\u001b[0m\u001b[1mson\u001b[0m\n"
189
- ]
190
- },
191
- "metadata": {},
192
- "output_type": "display_data"
193
- },
194
- {
195
- "data": {
196
- "text/html": [
197
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
198
- "┃<span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\"> E:\\training_dir_staging\\2_anthro_weasel\\3394ff7098766b5d13ff9728f8178895.txt </span>┃\n",
199
- "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
200
- "│ 4 toes, after sex, anthro, balls, beach, beach towel, beach umbrella, bedroom eyes, being watched, bodily │\n",
201
- "│ fluids, butt, claws, cloud, crowd, cum, cum covered, cum in ass, cum inside, cum on anus, cum on belly, cum on │\n",
202
- "│ body, cum on butt, cum on chest, cum on face, cum on feet, cum on head, cum on leg, cum on paw, cum on pawpads, │\n",
203
- "│ cum on penis, cum on tail, erection, excessive cum, excessive genital fluids, exhibitionism, feet, fur, genital │\n",
204
- "│ fluids, genitals, group, half-closed eyes, humanoid genitalia, humanoid penis, inner ear fluff, legs up, │\n",
205
- "│ looking at another, looking at viewer, male, male anthro, messy, narrowed eyes, nude, orange body, orange fur, │\n",
206
- "│ outdoor nudity, outside, parasol, pawpads, paws, penis, pinup, pose, presenting, presenting balls, presenting │\n",
207
- "│ penis, public, public nudity, realistic penis size, sand, seaside, seductive, sky, smile, smiling at viewer, │\n",
208
- "│ solo, spread legs, spreading, tail, toe claws, toes, towel, tuft, whiskers, by oxfort2199 │\n",
209
- "└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘\n",
210
- "</pre>\n"
211
- ],
212
- "text/plain": [
213
- "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
214
- "┃\u001b[1;35m \u001b[0m\u001b[1;35m E:\\training_dir_staging\\2_anthro_weasel\\3394ff7098766b5d13ff9728f8178895.txt \u001b[0m\u001b[1;35m \u001b[0m┃\n",
215
- "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
216
- "│ 4 toes, after sex, anthro, balls, beach, beach towel, beach umbrella, bedroom eyes, being watched, bodily │\n",
217
- "│ fluids, butt, claws, cloud, crowd, cum, cum covered, cum in ass, cum inside, cum on anus, cum on belly, cum on │\n",
218
- "│ body, cum on butt, cum on chest, cum on face, cum on feet, cum on head, cum on leg, cum on paw, cum on pawpads, │\n",
219
- "│ cum on penis, cum on tail, erection, excessive cum, excessive genital fluids, exhibitionism, feet, fur, genital │\n",
220
- "│ fluids, genitals, group, half-closed eyes, humanoid genitalia, humanoid penis, inner ear fluff, legs up, │\n",
221
- "│ looking at another, looking at viewer, male, male anthro, messy, narrowed eyes, nude, orange body, orange fur, │\n",
222
- "│ outdoor nudity, outside, parasol, pawpads, paws, penis, pinup, pose, presenting, presenting balls, presenting │\n",
223
- "│ penis, public, public nudity, realistic penis size, sand, seaside, seductive, sky, smile, smiling at viewer, │\n",
224
- "│ solo, spread legs, spreading, tail, toe claws, toes, towel, tuft, whiskers, by oxfort2199 │\n",
225
- "└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘\n"
226
- ]
227
- },
228
- "metadata": {},
229
- "output_type": "display_data"
230
- },
231
- {
232
- "data": {
233
- "text/html": [
234
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Processing file: <span style=\"font-weight: bold\">E:\\training_dir_staging\\2_anthro_weasel\\</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">521244.j</span><span style=\"font-weight: bold\">son</span>\n",
235
- "</pre>\n"
236
- ],
237
- "text/plain": [
238
- "Processing file: \u001b[1mE:\\training_dir_staging\\2_anthro_weasel\\\u001b[0m\u001b[1;36m521244.j\u001b[0m\u001b[1mson\u001b[0m\n"
239
- ]
240
- },
241
- "metadata": {},
242
- "output_type": "display_data"
243
- },
244
- {
245
- "data": {
246
- "text/html": [
247
- "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
248
- "┃<span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\"> E:\\training_dir_staging\\2_anthro_weasel\\12e58e17f13c0e71cbe40059fb8cc169.txt </span>┃\n",
249
- "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
250
- "│ 4 toes, anal, anal penetration, animal genitalia, animal penis, anthro, anthro on anthro, balls, bodily fluids, │\n",
251
- "│ canine genitalia, canine penis, claws, cum, cum in ass, cum inside, digitigrade, duo, erection, eyes closed, │\n",
252
- "│ eyewear, feet, finger fetish, finger in mouth, finger play, fingers, fur, genital fluids, genitals, glasses, │\n",
253
- "│ hindpaw, humanoid genitalia, humanoid penis, knot, licking, licking lips, lying, male, male/male, male │\n",
254
- "│ penetrated, male penetrating, male penetrating male, nude, on back, pawpads, paws, penetration, penis, precum, │\n",
255
- "│ self lick, sex, slightly chubby, soles, spread legs, spreading, toes, tongue, tongue out, white balls, by │\n",
256
- "│ conditional dnp, by garnetto, arcshep, tre, tre \\(milligram smile\\) │\n",
257
- "└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘\n",
258
- "</pre>\n"
259
- ],
260
- "text/plain": [
261
- "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
262
- "┃\u001b[1;35m \u001b[0m\u001b[1;35m E:\\training_dir_staging\\2_anthro_weasel\\12e58e17f13c0e71cbe40059fb8cc169.txt \u001b[0m\u001b[1;35m \u001b[0m┃\n",
263
- "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
264
- "│ 4 toes, anal, anal penetration, animal genitalia, animal penis, anthro, anthro on anthro, balls, bodily fluids, │\n",
265
- "│ canine genitalia, canine penis, claws, cum, cum in ass, cum inside, digitigrade, duo, erection, eyes closed, │\n",
266
- "│ eyewear, feet, finger fetish, finger in mouth, finger play, fingers, fur, genital fluids, genitals, glasses, │\n",
267
- "│ hindpaw, humanoid genitalia, humanoid penis, knot, licking, licking lips, lying, male, male/male, male │\n",
268
- "│ penetrated, male penetrating, male penetrating male, nude, on back, pawpads, paws, penetration, penis, precum, │\n",
269
- "│ self lick, sex, slightly chubby, soles, spread legs, spreading, toes, tongue, tongue out, white balls, by │\n",
270
- "│ conditional dnp, by garnetto, arcshep, tre, tre \\(milligram smile\\) │\n",
271
- "└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘\n"
272
- ]
273
- },
274
- "metadata": {},
275
- "output_type": "display_data"
276
- }
277
- ],
278
- "source": [
279
- "import os\n",
280
- "import glob\n",
281
- "import re\n",
282
- "import json\n",
283
- "from rich.console import Console\n",
284
- "from rich.table import Table\n",
285
- "\n",
286
- "console = Console()\n",
287
- "\n",
288
- "\n",
289
- "def should_ignore_tag(tag, all_tags):\n",
290
- " for ignored_tag_pattern in ignored_tags:\n",
291
- " pattern = re.compile(ignored_tag_pattern, re.VERBOSE | re.IGNORECASE)\n",
292
- " if any(re.search(pattern, t) for t in all_tags):\n",
293
- " return True\n",
294
- " return False\n",
295
- "\n",
296
- "\n",
297
- "def process_tags(tags_dict):\n",
298
- " processed_tags = []\n",
299
- " for category, tags_list in tags_dict.items():\n",
300
- " category_tags = []\n",
301
- " if category == \"artist\":\n",
302
- " category_tags = [\n",
303
- " f\"by {tag.replace('_', ' ').replace(' (artist)', '')}\"\n",
304
- " for tag in tags_list\n",
305
- " if tag\n",
306
- " ]\n",
307
- " else:\n",
308
- " for tag in tags_list:\n",
309
- " tag = tag.replace(\"_\", \" \")\n",
310
- " tag = re.sub(r\"(?<!\\\\)\\(\", r\"\\(\", tag)\n",
311
- " tag = re.sub(r\"(?<!\\\\)\\)\", r\"\\)\", tag)\n",
312
- " if tag.lower() == \"artist\":\n",
313
- " continue\n",
314
- " if not should_ignore_tag(tag, tags_list):\n",
315
- " category_tags.append(tag)\n",
316
- " processed_tags.extend(category_tags)\n",
317
- " return processed_tags\n",
318
- "\n",
319
- "def process_file(file_path):\n",
320
- " try:\n",
321
- " console.print(f\"Processing file: [bold]{file_path}[/bold]\")\n",
322
- " with open(file_path, \"r\") as f:\n",
323
- " data = json.load(f)\n",
324
- " # Parse the URL and generate filename\n",
325
- " post_data = data.get(\"post\", {})\n",
326
- " file_data = post_data.get(\"file\", {})\n",
327
- " url = file_data.get(\"url\")\n",
328
- " if url:\n",
329
- " filename, ext = os.path.splitext(os.path.basename(url))\n",
330
- " # Create caption file\n",
331
- " caption_file = f\"{filename}.txt\"\n",
332
- " caption_path = os.path.join(os.path.dirname(file_path), caption_file)\n",
333
- " with open(caption_path, \"w\", encoding=\"utf-8\") as f:\n",
334
- " # Write rating\n",
335
- " rating = post_data.get(\"rating\", \"q\")\n",
336
- " if rating == \"s\":\n",
337
- " f.write(\"rating_safe, \")\n",
338
- " elif rating == \"e\":\n",
339
- " f.write(\"rating_explicit, \")\n",
340
- " else:\n",
341
- " f.write(\"rating_questionable, \")\n",
342
- " # Process tags\n",
343
- " tags_data = post_data.get(\"tags\", {})\n",
344
- " processed_tags = process_tags(tags_data)\n",
345
- " # Check if there are any valid tags before writing\n",
346
- " if processed_tags:\n",
347
- " # Join tags with commas and write to file\n",
348
- " tags_line = \", \".join(processed_tags)\n",
349
- " f.write(tags_line.strip())\n",
350
- "\n",
351
- " # Create a table\n",
352
- " table = Table(show_header=True, header_style=\"bold magenta\")\n",
353
- " table.add_column(caption_path, justify=\"center\")\n",
354
- "\n",
355
- " table.add_row(tags_line.strip())\n",
356
- "\n",
357
- " # Print the table\n",
358
- " console.print(table)\n",
359
- " except Exception as e:\n",
360
- " console.print(f\"Error processing file: [bold]{file_path}[/bold]\")\n",
361
- " console.print(e)\n",
362
- "\n",
363
- "\n",
364
- "def recursive_process(directory):\n",
365
- " for file_path in glob.glob(directory + \"/**/*.json\", recursive=True):\n",
366
- " process_file(file_path)\n",
367
- "\n",
368
- "\n",
369
- "if __name__ == \"__main__\":\n",
370
- " #root_directory = r\"E:\\training_dir\"\n",
371
- " root_directory = r\"E:\\training_dir_staging\"\n",
372
- " recursive_process(root_directory)"
373
- ]
374
- },
375
- {
376
- "cell_type": "markdown",
377
- "metadata": {},
378
- "source": [
379
- "## Delete every JSON file ⚠️\n",
380
- "\n",
381
- "---"
382
- ]
383
- },
384
- {
385
- "cell_type": "code",
386
- "execution_count": 10,
387
- "metadata": {},
388
- "outputs": [],
389
- "source": [
390
- "import glob\n",
391
- "import os\n",
392
- "\n",
393
- "def delete_json_files(directory):\n",
394
- " # Create the path pattern to match JSON files\n",
395
- " pattern = os.path.join(directory, '**', '*.json')\n",
396
- " \n",
397
- " # Find all JSON files using glob\n",
398
- " json_files = glob.glob(pattern, recursive=True)\n",
399
- " \n",
400
- " # Delete each JSON file\n",
401
- " for file_path in json_files:\n",
402
- " try:\n",
403
- " os.remove(file_path)\n",
404
- " print(f\"Deleted: {file_path}\")\n",
405
- " except OSError as e:\n",
406
- " print(f\"Error deleting {file_path}: {e}\")\n",
407
- "\n",
408
- "if __name__ == \"__main__\":\n",
409
- " # Specify the directory path\n",
410
- " #directory_path = r'E:\\training_dir'\n",
411
- " directory_path = r'C:\\Users\\kade\\Desktop\\training_dir_staging'\n",
412
- "\n",
413
- " # Call the function to delete JSON files recursively\n",
414
- " delete_json_files(directory_path)"
415
- ]
416
- }
417
- ],
418
- "metadata": {
419
- "kernelspec": {
420
- "display_name": "Python 3",
421
- "language": "python",
422
- "name": "python3"
423
- },
424
- "language_info": {
425
- "codemirror_mode": {
426
- "name": "ipython",
427
- "version": 3
428
- },
429
- "file_extension": ".py",
430
- "mimetype": "text/x-python",
431
- "name": "python",
432
- "nbconvert_exporter": "python",
433
- "pygments_lexer": "ipython3",
434
- "version": "3.12.3"
435
- }
436
- },
437
- "nbformat": 4,
438
- "nbformat_minor": 2
439
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dataset_tools/done/replace_transparency_with_black.py DELETED
@@ -1,69 +0,0 @@
1
- import os
2
- import glob
3
- from multiprocessing import Pool
4
- from PIL import Image
5
-
6
-
7
- def add_black_layer(image_path):
8
- """
9
- Adds a black layer to the image at the given path and saves the modified image.
10
-
11
- This function opens an image, converts it to 'RGBA' mode, creates a new black layer,
12
- pastes the original image onto the black layer, and saves the result back to the disk.
13
-
14
- Parameters:
15
- image_path (str): The file path to the image to be processed.
16
-
17
- Raises:
18
- Exception: If there is an error opening or processing the image.
19
- """
20
- print(f"Processing {image_path}...")
21
- try:
22
- with Image.open(image_path) as img:
23
- img = img.convert("RGBA")
24
- black_layer = Image.new("RGBA", img.size, (0, 0, 0, 255))
25
- black_layer.paste(img, (0, 0), img)
26
- black_layer.save(image_path)
27
- print(f"Black layer added to {image_path}")
28
- except Exception as e:
29
- print(f"Error processing {image_path}: {e}")
30
- raise
31
-
32
-
33
- def process_image(image_path):
34
- """
35
- Processes a single image by adding a black layer.
36
-
37
- This function is designed to be used with multiprocessing. It calls the 'add_black_layer'
38
- function and handles any exceptions that occur.
39
-
40
- Parameters:
41
- image_path (str): The file path to the image to be processed.
42
- """
43
- try:
44
- add_black_layer(image_path)
45
- print(f"Black layer added to and overwritten {image_path}")
46
- except Exception as e:
47
- print(f"Error processing {image_path}: {e}")
48
-
49
-
50
- def process_directory(directory):
51
- """
52
- Processes all .png images in a directory by adding a black layer to each.
53
-
54
- This function finds all .png images within the specified directory (including subdirectories),
55
- then creates a pool of worker processes to process each image in parallel.
56
-
57
- Parameters:
58
- directory (str): The directory path where the .png images are located.
59
- """
60
- image_paths = glob.glob(os.path.join(directory, "**", "*.png"), recursive=True)
61
- print(f"Found {len(image_paths)} images to process.")
62
- with Pool() as pool:
63
- pool.map(add_black_layer, image_paths)
64
-
65
-
66
- if __name__ == "__main__":
67
- directory = r"E:\training_dir"
68
- print(f"Starting processing of images in {directory}")
69
- process_directory(directory)