Mattthew
commited on
Commit
·
f561d4d
1
Parent(s):
0b20068
added option to hide NSFW images
Browse files- artists_and_tags.js +0 -0
- images/SDXL_Crystal_Clear/Hendrik_Kerstens-landscape.webp +0 -0
- images/SDXL_Crystal_Clear/William-Adolphe_Bouguereau-artwork.webp +0 -0
- images/SDXL_Crystal_Clear_thumbs/Hendrik_Kerstens-landscape.webp +0 -0
- images/SDXL_Crystal_Clear_thumbs/William-Adolphe_Bouguereau-artwork.webp +0 -0
- images/SDXL_DynaVision/Eugene_Delacroix,_an_image.webp.webp +0 -0
- images/SDXL_DynaVision/{Eugene_Delacroix,_an_image.webp → Eugene_Delacroix-artwork.webp} +0 -0
- images/SDXL_DynaVision_thumbs/Eugene_Delacroix,_an_image.webp.webp +0 -0
- images/SDXL_DynaVision_thumbs/{Eugene_Delacroix,_an_image.webp → Eugene_Delacroix-artwork.webp} +0 -0
- index.css +24 -17
- index.html +9 -2
- index.js +101 -8
artists_and_tags.js
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
images/SDXL_Crystal_Clear/Hendrik_Kerstens-landscape.webp
CHANGED
images/SDXL_Crystal_Clear/William-Adolphe_Bouguereau-artwork.webp
CHANGED
images/SDXL_Crystal_Clear_thumbs/Hendrik_Kerstens-landscape.webp
CHANGED
images/SDXL_Crystal_Clear_thumbs/William-Adolphe_Bouguereau-artwork.webp
CHANGED
images/SDXL_DynaVision/Eugene_Delacroix,_an_image.webp.webp
DELETED
Binary file (54.9 kB)
|
|
images/SDXL_DynaVision/{Eugene_Delacroix,_an_image.webp → Eugene_Delacroix-artwork.webp}
RENAMED
File without changes
|
images/SDXL_DynaVision_thumbs/Eugene_Delacroix,_an_image.webp.webp
DELETED
Binary file (14.7 kB)
|
|
images/SDXL_DynaVision_thumbs/{Eugene_Delacroix,_an_image.webp → Eugene_Delacroix-artwork.webp}
RENAMED
File without changes
|
index.css
CHANGED
@@ -63,10 +63,6 @@ h4 {
|
|
63 |
background: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 40%);
|
64 |
}
|
65 |
|
66 |
-
#gutter:hover {
|
67 |
-
background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.1) 40%)
|
68 |
-
}
|
69 |
-
|
70 |
#gutter div {
|
71 |
position: relative;
|
72 |
width: 20px;
|
@@ -77,34 +73,34 @@ h4 {
|
|
77 |
cursor: col-resize;
|
78 |
}
|
79 |
|
80 |
-
#gutter:hover
|
81 |
border-right: 1px solid rgba(255,255,255,0.4);
|
|
|
82 |
}
|
83 |
|
84 |
#gutter div[data-tooltip]::before {
|
85 |
-
content: attr(data-tooltip);
|
86 |
-
opacity: 0;
|
87 |
-
transition: opacity 0ms 0ms linear;
|
88 |
-
}
|
89 |
-
|
90 |
-
#gutter div[data-tooltip]:hover::before {
|
91 |
content: attr(data-tooltip);
|
92 |
position: absolute;
|
93 |
-
|
94 |
left: 50%;
|
95 |
-
transform: translateX(-
|
96 |
-
background-color: #
|
97 |
padding: 4px 8px;
|
98 |
border-radius: 4px;
|
99 |
box-shadow: 0 5px 10px black;
|
100 |
white-space: nowrap;
|
101 |
font-size: 12px;
|
102 |
-
color:
|
103 |
opacity: 1;
|
104 |
-
transition:
|
105 |
pointer-events: none; /* Make sure the tooltip doesn't interfere with other interactions */
|
106 |
}
|
107 |
|
|
|
|
|
|
|
|
|
|
|
108 |
@keyframes gutter_tease {
|
109 |
0% {
|
110 |
transform: translateX(-40px);
|
@@ -149,11 +145,18 @@ h4 {
|
|
149 |
box-sizing: border-box;
|
150 |
margin-left: calc(40% + 50px);
|
151 |
margin-top: 20px;
|
152 |
-
margin-bottom: 20px;
|
153 |
margin-right: 60px;
|
154 |
width: 100%;
|
155 |
}
|
156 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
#alert {
|
158 |
position: fixed;
|
159 |
z-index: 1;
|
@@ -1130,6 +1133,10 @@ input[type="checkbox"]:checked::before {
|
|
1130 |
font-size: 14px;
|
1131 |
}
|
1132 |
|
|
|
|
|
|
|
|
|
1133 |
.image-item .imgBox .img.hidden {
|
1134 |
display: none;
|
1135 |
}
|
|
|
63 |
background: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 40%);
|
64 |
}
|
65 |
|
|
|
|
|
|
|
|
|
66 |
#gutter div {
|
67 |
position: relative;
|
68 |
width: 20px;
|
|
|
73 |
cursor: col-resize;
|
74 |
}
|
75 |
|
76 |
+
#gutter div:hover {
|
77 |
border-right: 1px solid rgba(255,255,255,0.4);
|
78 |
+
background-color: rgba(255, 255, 255, 0.1);
|
79 |
}
|
80 |
|
81 |
#gutter div[data-tooltip]::before {
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
content: attr(data-tooltip);
|
83 |
position: absolute;
|
84 |
+
bottom: 100px;
|
85 |
left: 50%;
|
86 |
+
transform: translateX(-25%);
|
87 |
+
background-color: #222;
|
88 |
padding: 4px 8px;
|
89 |
border-radius: 4px;
|
90 |
box-shadow: 0 5px 10px black;
|
91 |
white-space: nowrap;
|
92 |
font-size: 12px;
|
93 |
+
color: #777;
|
94 |
opacity: 1;
|
95 |
+
transition: color 100ms linear, background-color 100ms linear;
|
96 |
pointer-events: none; /* Make sure the tooltip doesn't interfere with other interactions */
|
97 |
}
|
98 |
|
99 |
+
#gutter div[data-tooltip]:hover::before {
|
100 |
+
background-color: #555;
|
101 |
+
color: #fff;
|
102 |
+
}
|
103 |
+
|
104 |
@keyframes gutter_tease {
|
105 |
0% {
|
106 |
transform: translateX(-40px);
|
|
|
145 |
box-sizing: border-box;
|
146 |
margin-left: calc(40% + 50px);
|
147 |
margin-top: 20px;
|
|
|
148 |
margin-right: 60px;
|
149 |
width: 100%;
|
150 |
}
|
151 |
|
152 |
+
#image-container::after {
|
153 |
+
/* makes space between the last item and the bottom of the container */
|
154 |
+
content: '';
|
155 |
+
display: block;
|
156 |
+
height: 40px;
|
157 |
+
width: 100%;
|
158 |
+
}
|
159 |
+
|
160 |
#alert {
|
161 |
position: fixed;
|
162 |
z-index: 1;
|
|
|
1133 |
font-size: 14px;
|
1134 |
}
|
1135 |
|
1136 |
+
.image-item .img.censored {
|
1137 |
+
filter: blur(20px);
|
1138 |
+
}
|
1139 |
+
|
1140 |
.image-item .imgBox .img.hidden {
|
1141 |
display: none;
|
1142 |
}
|
index.html
CHANGED
@@ -61,12 +61,15 @@
|
|
61 |
<label class="top_control">
|
62 |
<input type="checkbox" checked="checked" name="deprecated" value="deprecated" autocomplete="off"><span>hide unknown to SDXL</span><span class="count"></span>
|
63 |
</label>
|
|
|
|
|
|
|
64 |
<div class="divider"></div>
|
65 |
<span id="edit_most_used" class="hidden">edit these</span>
|
66 |
<!-- JS will insert checkboxes here -->
|
67 |
</div>
|
68 |
<div id="gutter">
|
69 |
-
<div data-tooltip="
|
70 |
</div>
|
71 |
<div id="image-container">
|
72 |
<div id="filtersHidingAll">
|
@@ -230,6 +233,10 @@
|
|
230 |
<li>If you prompt with their names, the result will be unlike their actual style and generic, and you can achieve similar results by prompting "a painting", etc.</li>
|
231 |
<li>They're included in the database for the record of what SDXL doesn't know</li>
|
232 |
</ul>
|
|
|
|
|
|
|
|
|
233 |
<h3>Important tags</h3>
|
234 |
<ul>
|
235 |
<li>Tap <strong>edit</strong> under the important category to add or remove tags</li>
|
@@ -354,7 +361,7 @@
|
|
354 |
<li>Open source. Creatives Commons license. Download for free.</li>
|
355 |
<li>I don't get nor do I want compensation for this. Getting thanks feels great!</li>
|
356 |
<li>I'm not affiliated with Stability AI</li>
|
357 |
-
<li>Use at your own risk.
|
358 |
</ul>
|
359 |
</div>
|
360 |
</div>
|
|
|
61 |
<label class="top_control">
|
62 |
<input type="checkbox" checked="checked" name="deprecated" value="deprecated" autocomplete="off"><span>hide unknown to SDXL</span><span class="count"></span>
|
63 |
</label>
|
64 |
+
<label class="top_control">
|
65 |
+
<input type="checkbox" checked="checked" name="nudity" value="nudity" autocomplete="off"><span>allow risqué</span><span class="count"></span>
|
66 |
+
</label>
|
67 |
<div class="divider"></div>
|
68 |
<span id="edit_most_used" class="hidden">edit these</span>
|
69 |
<!-- JS will insert checkboxes here -->
|
70 |
</div>
|
71 |
<div id="gutter">
|
72 |
+
<div data-tooltip="← →"></div>
|
73 |
</div>
|
74 |
<div id="image-container">
|
75 |
<div id="filtersHidingAll">
|
|
|
233 |
<li>If you prompt with their names, the result will be unlike their actual style and generic, and you can achieve similar results by prompting "a painting", etc.</li>
|
234 |
<li>They're included in the database for the record of what SDXL doesn't know</li>
|
235 |
</ul>
|
236 |
+
<h3>Allow risqué</h3>
|
237 |
+
<ul>
|
238 |
+
<li>Unchecking blurs all images that don't meet extremely conservative, G-rated, 100% SFW criteria. Note that the most risqué this site gets is boobies. Even when allow risqué is checked, I've censored all below-the-waist nudity as liability protection.</li>
|
239 |
+
</ul>
|
240 |
<h3>Important tags</h3>
|
241 |
<ul>
|
242 |
<li>Tap <strong>edit</strong> under the important category to add or remove tags</li>
|
|
|
361 |
<li>Open source. Creatives Commons license. Download for free.</li>
|
362 |
<li>I don't get nor do I want compensation for this. Getting thanks feels great!</li>
|
363 |
<li>I'm not affiliated with Stability AI</li>
|
364 |
+
<li>Use at your own risk. You're responsible for your own actions.</li>
|
365 |
</ul>
|
366 |
</div>
|
367 |
</div>
|
index.js
CHANGED
@@ -65,6 +65,7 @@ async function startUp() {
|
|
65 |
showHideCategories();
|
66 |
await loadOptionsState();
|
67 |
await loadFavoritesState();
|
|
|
68 |
hideAllArtists();
|
69 |
unhideBasedOnPermissiveSetting();
|
70 |
sortArtists();
|
@@ -72,7 +73,7 @@ async function startUp() {
|
|
72 |
updateArtistsImgSrc(false,false);
|
73 |
updateTags('start');
|
74 |
makeStyleRuleForDrag();
|
75 |
-
teasePartition();
|
76 |
promptBuilderAddArtist(true);
|
77 |
updatePromptBuilderParts();
|
78 |
addAllListeners();
|
@@ -250,7 +251,7 @@ async function loadEditedArtists() {
|
|
250 |
editedArtists.delete(artistFound);
|
251 |
} else {
|
252 |
if (!proto.startsWith('http')) {
|
253 |
-
// if this is a local file, then update
|
254 |
artistsData[i] = artistFound;
|
255 |
}
|
256 |
}
|
@@ -1114,8 +1115,78 @@ function checkAllInCategory(theCheckbox) {
|
|
1114 |
}
|
1115 |
}
|
1116 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1117 |
function hideAllArtists() {
|
1118 |
-
|
1119 |
imageItems.forEach(function(imageItem) {
|
1120 |
imageItem.classList.add('hidden');
|
1121 |
});
|
@@ -1481,9 +1552,18 @@ function showExport() {
|
|
1481 |
}
|
1482 |
}
|
1483 |
newTags.push(added);
|
1484 |
-
// output updated artist
|
1485 |
artist[2] = newTags.join('|');
|
1486 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1487 |
}
|
1488 |
textareaA.value = value;
|
1489 |
}
|
@@ -3022,6 +3102,10 @@ function addAllListeners() {
|
|
3022 |
unhideBasedOnPermissiveSetting();
|
3023 |
updateTags('click');
|
3024 |
});
|
|
|
|
|
|
|
|
|
3025 |
}
|
3026 |
}
|
3027 |
// all checkboxes
|
@@ -3029,7 +3113,9 @@ function addAllListeners() {
|
|
3029 |
styleLabelToCheckbox(this);
|
3030 |
clearSelection();
|
3031 |
storeCheckboxState(e.target);
|
3032 |
-
|
|
|
|
|
3033 |
});
|
3034 |
});
|
3035 |
// information
|
@@ -3142,14 +3228,18 @@ function addAllListeners() {
|
|
3142 |
var sortAA = document.getElementById('sortAA');
|
3143 |
sortAA.addEventListener('click', function(e) {
|
3144 |
sortArtistsByAlpha();
|
3145 |
-
|
|
|
|
|
3146 |
highlightSelectedOption('sortAA');
|
3147 |
storeOptionsState();
|
3148 |
});
|
3149 |
var sortAR = document.getElementById('sortAR');
|
3150 |
sortAR.addEventListener('click', function(e) {
|
3151 |
sortArtistsByRandom();
|
3152 |
-
|
|
|
|
|
3153 |
highlightSelectedOption('sortAR');
|
3154 |
storeOptionsState();
|
3155 |
});
|
@@ -3157,6 +3247,7 @@ function addAllListeners() {
|
|
3157 |
let secondModelSelector = document.querySelector('#second_model select');
|
3158 |
secondModelSelector.addEventListener('change', function(e) {
|
3159 |
setSecondModelSelected(this);
|
|
|
3160 |
});
|
3161 |
|
3162 |
// most used mode
|
@@ -3214,6 +3305,7 @@ function addAllListeners() {
|
|
3214 |
});
|
3215 |
imageItem.querySelector('.art_set').addEventListener('click', function() {
|
3216 |
rotateModelsImages();
|
|
|
3217 |
});
|
3218 |
imageItem.getElementsByTagName('h3')[0].addEventListener('click', function(e) {
|
3219 |
copyStuffToClipboard(this,'name');
|
@@ -3222,6 +3314,7 @@ function addAllListeners() {
|
|
3222 |
imageItem.getElementsByTagName('h4')[0].addEventListener('click', function(e) {
|
3223 |
if(!this.classList.contains('edit_mode')) {
|
3224 |
copyStuffToClipboard(this, 'tags')
|
|
|
3225 |
// toggleThisArtistsTags(this.textContent);
|
3226 |
}
|
3227 |
});
|
|
|
65 |
showHideCategories();
|
66 |
await loadOptionsState();
|
67 |
await loadFavoritesState();
|
68 |
+
blurUnblurNudity();
|
69 |
hideAllArtists();
|
70 |
unhideBasedOnPermissiveSetting();
|
71 |
sortArtists();
|
|
|
73 |
updateArtistsImgSrc(false,false);
|
74 |
updateTags('start');
|
75 |
makeStyleRuleForDrag();
|
76 |
+
// teasePartition();
|
77 |
promptBuilderAddArtist(true);
|
78 |
updatePromptBuilderParts();
|
79 |
addAllListeners();
|
|
|
251 |
editedArtists.delete(artistFound);
|
252 |
} else {
|
253 |
if (!proto.startsWith('http')) {
|
254 |
+
// if this is a local file, then update artistsData with the saved edits
|
255 |
artistsData[i] = artistFound;
|
256 |
}
|
257 |
}
|
|
|
1115 |
}
|
1116 |
}
|
1117 |
|
1118 |
+
function blurUnblurNudity() {
|
1119 |
+
let nudity = document.querySelector('input[name="nudity"]');
|
1120 |
+
if(nudity.checked) {
|
1121 |
+
let images = document.querySelectorAll('.img');
|
1122 |
+
images.forEach(function(img){
|
1123 |
+
img.classList.remove('censored');
|
1124 |
+
});
|
1125 |
+
} else {
|
1126 |
+
for (let i=0, il=artistsData.length; i<il; i++) {
|
1127 |
+
let artist = artistsData[i];
|
1128 |
+
for(j=0,jl=artist[4].length; j<jl; j++) {
|
1129 |
+
let blurBox = 0;
|
1130 |
+
let blurModel = artist[4][j][0];
|
1131 |
+
if(blurModel > 0) { blurBox = 1; }
|
1132 |
+
let blurImage = artist[4][j][1];
|
1133 |
+
if(blurImage == 'a') { blurImage = '.img_artwork'; }
|
1134 |
+
if(blurImage == 'p') { blurImage = '.img_portrait'; }
|
1135 |
+
if(blurImage == 'l') { blurImage = '.img_landscape'; }
|
1136 |
+
if(blurModel == secondModelSelected || blurModel == 0) {
|
1137 |
+
let imageItems = document.querySelectorAll('.image-item');
|
1138 |
+
for(k=0,kl=imageItems.length; k<kl; k++) {
|
1139 |
+
// find match in artistsData if first and last names match
|
1140 |
+
let imageItem = imageItems[k];
|
1141 |
+
let firstN = imageItem.querySelector('.firstN').textContent;
|
1142 |
+
let lastN = imageItem.querySelector('.lastN').textContent;
|
1143 |
+
if(artist[0] == lastN && artist[1] == firstN) {
|
1144 |
+
let box = imageItem.querySelector('.imgBox[data-model="' + blurBox + '"');
|
1145 |
+
let image = box.querySelector(blurImage).classList.add('censored');
|
1146 |
+
break;
|
1147 |
+
}
|
1148 |
+
}
|
1149 |
+
}
|
1150 |
+
}
|
1151 |
+
}
|
1152 |
+
}
|
1153 |
+
}
|
1154 |
+
|
1155 |
+
function toggleCensored(h4) {
|
1156 |
+
let imageItem = h4.closest('.image-item');
|
1157 |
+
let firstN = imageItem.querySelector('.firstN').textContent;
|
1158 |
+
let lastN = imageItem.querySelector('.lastN').textContent;
|
1159 |
+
for (let i=0, il=artistsData.length; i<il; i++) {
|
1160 |
+
let artist = artistsData[i];
|
1161 |
+
if(artist[0] == lastN && artist[1] == firstN) {
|
1162 |
+
let blurModel = imageItem.querySelector('.imgBox:not(.hidden)').dataset.model;
|
1163 |
+
if(blurModel == 1) { blurModel = secondModelSelected; }
|
1164 |
+
let img = imageItem.querySelector('.imgBox:not(.hidden) .img:not(.hidden)');
|
1165 |
+
let blurImage = '';
|
1166 |
+
if(img.classList.contains('img_artwork')) { blurImage = 'a'; }
|
1167 |
+
if(img.classList.contains('img_portrait')) { blurImage = 'p'; }
|
1168 |
+
if(img.classList.contains('img_landscape')) { blurImage = 'l'; }
|
1169 |
+
let blurNew = blurModel + blurImage;
|
1170 |
+
let match = false;
|
1171 |
+
for(j=0,jl=artist[4].length; j<jl; j++) {
|
1172 |
+
let blurOld = artist[4][j]
|
1173 |
+
if(blurNew == blurOld) {
|
1174 |
+
match = true;
|
1175 |
+
artist[4].splice(j,1);
|
1176 |
+
img.classList.remove('censored');
|
1177 |
+
}
|
1178 |
+
}
|
1179 |
+
if(!match) {
|
1180 |
+
artist[4].push(blurNew);
|
1181 |
+
img.classList.add('censored');
|
1182 |
+
}
|
1183 |
+
break;
|
1184 |
+
}
|
1185 |
+
}
|
1186 |
+
}
|
1187 |
+
|
1188 |
function hideAllArtists() {
|
1189 |
+
let imageItems = document.querySelectorAll('.image-item');
|
1190 |
imageItems.forEach(function(imageItem) {
|
1191 |
imageItem.classList.add('hidden');
|
1192 |
});
|
|
|
1552 |
}
|
1553 |
}
|
1554 |
newTags.push(added);
|
|
|
1555 |
artist[2] = newTags.join('|');
|
1556 |
+
// sort censored images array
|
1557 |
+
artist[4] = artist[4].sort(function(a, b) {
|
1558 |
+
return a.localeCompare(b);
|
1559 |
+
});
|
1560 |
+
let arrayStr = '';
|
1561 |
+
for (let i=0, il=artist[4].length; i<il; i++) {
|
1562 |
+
arrayStr += '"' + artist[4][i] + '",';
|
1563 |
+
}
|
1564 |
+
arrayStr = arrayStr.substring(0,arrayStr.length-1);
|
1565 |
+
// output updated artist
|
1566 |
+
value += '["'+artist[0]+'","'+artist[1]+'","'+artist[2]+'",'+artist[3]+',['+arrayStr+']],\r\n';
|
1567 |
}
|
1568 |
textareaA.value = value;
|
1569 |
}
|
|
|
3102 |
unhideBasedOnPermissiveSetting();
|
3103 |
updateTags('click');
|
3104 |
});
|
3105 |
+
} else if(checkbox.name == 'nudity') {
|
3106 |
+
checkbox.addEventListener('change', function(e) {
|
3107 |
+
blurUnblurNudity();
|
3108 |
+
});
|
3109 |
}
|
3110 |
}
|
3111 |
// all checkboxes
|
|
|
3113 |
styleLabelToCheckbox(this);
|
3114 |
clearSelection();
|
3115 |
storeCheckboxState(e.target);
|
3116 |
+
window.setTimeout(function() {
|
3117 |
+
updateArtistsImgSrc(false,false);
|
3118 |
+
})
|
3119 |
});
|
3120 |
});
|
3121 |
// information
|
|
|
3228 |
var sortAA = document.getElementById('sortAA');
|
3229 |
sortAA.addEventListener('click', function(e) {
|
3230 |
sortArtistsByAlpha();
|
3231 |
+
window.setTimeout(function() {
|
3232 |
+
updateArtistsImgSrc(false,false);
|
3233 |
+
})
|
3234 |
highlightSelectedOption('sortAA');
|
3235 |
storeOptionsState();
|
3236 |
});
|
3237 |
var sortAR = document.getElementById('sortAR');
|
3238 |
sortAR.addEventListener('click', function(e) {
|
3239 |
sortArtistsByRandom();
|
3240 |
+
window.setTimeout(function() {
|
3241 |
+
updateArtistsImgSrc(false,false);
|
3242 |
+
})
|
3243 |
highlightSelectedOption('sortAR');
|
3244 |
storeOptionsState();
|
3245 |
});
|
|
|
3247 |
let secondModelSelector = document.querySelector('#second_model select');
|
3248 |
secondModelSelector.addEventListener('change', function(e) {
|
3249 |
setSecondModelSelected(this);
|
3250 |
+
blurUnblurNudity();
|
3251 |
});
|
3252 |
|
3253 |
// most used mode
|
|
|
3305 |
});
|
3306 |
imageItem.querySelector('.art_set').addEventListener('click', function() {
|
3307 |
rotateModelsImages();
|
3308 |
+
blurUnblurNudity();
|
3309 |
});
|
3310 |
imageItem.getElementsByTagName('h3')[0].addEventListener('click', function(e) {
|
3311 |
copyStuffToClipboard(this,'name');
|
|
|
3314 |
imageItem.getElementsByTagName('h4')[0].addEventListener('click', function(e) {
|
3315 |
if(!this.classList.contains('edit_mode')) {
|
3316 |
copyStuffToClipboard(this, 'tags')
|
3317 |
+
// toggleCensored(this);
|
3318 |
// toggleThisArtistsTags(this.textContent);
|
3319 |
}
|
3320 |
});
|