prithivMLmods commited on
Commit
fe6c314
·
verified ·
1 Parent(s): 69504e2

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +317 -64
README.md CHANGED
@@ -1,59 +1,300 @@
1
- <link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;500;700&display=swap" rel="stylesheet">
 
2
  <style>
3
- .vg-card { font-family: 'Ubuntu', sans-serif; background-color: #000000; color: #FFFFFF; padding: 30px; border-radius: 12px; max-width: 900px; margin: 0 auto; line-height: 1.6; }
4
- .vg-h1 { font-size: 32px; font-weight: 700; margin-bottom: 15px; color: #FFFFFF; }
5
- .vg-p { margin-bottom: 20px; font-size: 15px; color: #FFFFFF; }
6
- .vg-a { color: #FF4500; text-decoration: none; font-weight: 500; }
7
- .vg-a:hover { text-decoration: underline; }
8
- .vg-box { border: 1px solid #333; border-radius: 8px; padding: 20px; margin-bottom: 25px; font-style: italic; color: #ccc; font-size: 14px; }
9
- .vg-h2 { font-size: 22px; font-weight: 700; margin-top: 35px; margin-bottom: 15px; color: #FFFFFF; border-bottom: 1px solid #333; padding-bottom: 8px; }
10
- .vg-list { list-style-type: none; padding-left: 5px; }
11
- .vg-list li { margin-bottom: 10px; padding-left: 25px; position: relative; font-size: 15px; }
12
- .vg-list li::before { content: "+"; color: #FF4500; position: absolute; left: 0; font-weight: bold; font-size: 18px; top: -2px; }
13
- .vg-details { border: 1px solid #333; border-radius: 8px; margin-bottom: 25px; overflow: hidden; }
14
- .vg-summary { padding: 15px 20px; cursor: pointer; font-size: 18px; font-weight: 700; color: #FFFFFF; background-color: #0a0a0a; user-select: none; }
15
- .vg-summary:hover { background-color: #111; }
16
- .vg-code-container { position: relative; background: #0a0a0a; border: 1px solid #222; border-radius: 8px; margin-bottom: 25px; }
17
- .vg-copy-btn { position: absolute; top: 10px; right: 10px; background: #222; color: #fff; border: 1px solid #444; border-radius: 4px; padding: 5px 12px; cursor: pointer; font-family: 'Ubuntu', sans-serif; font-size: 12px; z-index: 10; transition: background 0.2s; }
18
- .vg-copy-btn:hover { background: #333; }
19
- .vg-code { padding: 15px; margin: 0; overflow-x: auto; color: #ddd; font-family: 'Courier New', Courier, monospace; font-size: 13px; white-space: pre; }
20
- .vg-table { width: 100%; border-collapse: collapse; margin-bottom: 25px; font-size: 14px; }
21
- .vg-table th, .vg-table td { border: 1px solid #333; padding: 12px 15px; text-align: left; }
22
- .vg-table th { background-color: #0a0a0a; color: #FF4500; font-weight: 700; width: 35%; }
23
- .vg-table td { color: #FFFFFF; }
24
- .vg-ack { margin-bottom: 15px; font-size: 15px; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  </style>
26
 
27
  <script>
28
- function copyCode(btn) {
29
- var codeBlock = btn.nextElementSibling;
30
- var textArea = document.createElement("textarea");
31
- textArea.value = codeBlock.innerText;
32
- document.body.appendChild(textArea);
33
- textArea.select();
34
- try {
 
 
 
 
 
 
 
35
  document.execCommand('copy');
 
36
  btn.innerText = "Copied!";
37
- } catch (err) {
38
- btn.innerText = "Error";
39
- }
40
- document.body.removeChild(textArea);
41
- setTimeout(function(){ btn.innerText = "Copy"; }, 2000);
42
  }
43
  </script>
44
 
45
- <div class="vg-card">
46
- <h1 class="vg-h1">VisionGuardrail-4B</h1>
47
-
48
- <p class="vg-p">
 
 
 
 
49
  <b>VisionGuardrail-4B</b> is a multimodal content-safety classifier based on <b>Qwen/Qwen3.5-4B</b> and trained on the <a href="https://huggingface.co/datasets/prithivMLmods/ImageShield-Guardrail-Pro" class="vg-a">prithivMLmods/ImageShield-Guardrail-Pro</a> content-safety guardrail dataset. The model is designed to classify visual content as <b>Safe</b> or <b>Unsafe</b>, with a particular focus on detecting <b>Not Safe for Work (NSFW) sensual content</b> and other potentially sensitive visual content. VisionGuardrail-4B excels at detecting <b>explicit and sensitive visual content</b>, with detailed analysis of <b>dress codes, clothing exposure, poses, framing, and different visual settings</b> to support conservative content-safety classification.
50
  </p>
51
 
52
- <div class="vg-box">
53
  This model is an experimental release and may generate unexpected behaviors or reasoning artifacts in certain scenarios. <b>This model is intended for research and content-safety classification only.</b> Any outputs generated by this model are the sole responsibility of the user. The authors and hosting platform disclaim all liability for generated content. Users must ensure safe, ethical, and lawful usage.
54
  </div>
55
 
56
- <h2 class="vg-h2">Key Highlights</h2>
57
  <ul class="vg-list">
58
  <li><b>Qwen 3.5 Foundation</b>: Built on <b>Qwen/Qwen3.5-4B</b>.</li>
59
  <li><b>Multimodal Content Filter</b>: Designed for visual content-safety classification.</li>
@@ -68,11 +309,15 @@
68
  <li><b>Structured Output</b>: Produces a machine-readable JSON response containing a caption, classification, and reasoning.</li>
69
  </ul>
70
 
71
- <details class="vg-details">
72
- <summary class="vg-summary">Standard Instruction</summary>
73
- <div class="vg-code-container">
74
- <button class="vg-copy-btn" onclick="copyCode(this)">Copy</button>
75
- <pre class="vg-code">You are a strict, zero-tolerance parental control content-safety guardrail classifier for visual media.
 
 
 
 
76
 
77
  Your role is minor protection: any media containing suggestive, revealing, sexually provocative, or explicit visual elements must be flagged as NSFW.
78
 
@@ -97,25 +342,33 @@ STRICT ZERO-TOLERANCE CLASSIFICATION RULES:
97
  Output strictly valid JSON with no extra conversational text, commentary, or markdown formatting outside the JSON object:
98
 
99
  {
100
- "caption": "<Detailed, objective visual description of the subject, clothing, exposure, pose, and setting>",
101
  "is_nsfw": true | false,
102
- "reason": "<Precise reason for classification based on clothing, exposure, pose, context, or other visual cues>",
103
  "nsfw": 1 | 0,
104
  "safe": 1 | 0
105
  }</pre>
 
106
  </div>
107
  </details>
108
 
109
- <h2 class="vg-h2">Quick Start with Transformers</h2>
110
- <div class="vg-code-container">
111
- <button class="vg-copy-btn" onclick="copyCode(this)">Copy</button>
112
- <pre class="vg-code">pip install transformers
 
 
 
 
113
  pip install accelerate</pre>
114
  </div>
115
 
116
- <div class="vg-code-container">
117
- <button class="vg-copy-btn" onclick="copyCode(this)">Copy</button>
118
- <pre class="vg-code">from transformers import Qwen3_5ForConditionalGeneration, AutoProcessor
 
 
 
119
  import torch
120
 
121
  model = Qwen3_5ForConditionalGeneration.from_pretrained(
@@ -169,8 +422,8 @@ output_text = processor.batch_decode(
169
  print(output_text[0])</pre>
170
  </div>
171
 
172
- <h2 class="vg-h2">Training Details</h2>
173
- <table class="vg-table">
174
  <tr><th>Setting</th><td>Value</td></tr>
175
  <tr><th>Base Model</th><td>Qwen/Qwen3.5-4B</td></tr>
176
  <tr><th>Model</th><td>VisionGuardrail-4B</td></tr>
@@ -183,7 +436,7 @@ print(output_text[0])</pre>
183
  <tr><th>Training Framework</th><td>TRL</td></tr>
184
  </table>
185
 
186
- <h2 class="vg-h2">Intended Use</h2>
187
  <ul class="vg-list">
188
  <li><b>Content Safety Classification</b>: Classifying visual media as safe or unsafe.</li>
189
  <li><b>NSFW Sensual Content Detection</b>: Supporting research into automated detection of potentially sensitive and sexually suggestive visual content.</li>
@@ -194,7 +447,7 @@ print(output_text[0])</pre>
194
  <li><b>Visual Safety Analysis</b>: Analyzing clothing, dress codes, poses, framing, and visual settings for content-safety signals.</li>
195
  </ul>
196
 
197
- <h2 class="vg-h2">Limitations</h2>
198
  <ul class="vg-list">
199
  <li><b>Experimental Model</b>: The model may produce incorrect or inconsistent classifications.</li>
200
  <li><b>False Positives</b>: Benign content may occasionally be classified as unsafe due to the conservative classification threshold.</li>
@@ -205,10 +458,10 @@ print(output_text[0])</pre>
205
  <li><b>Automated Classification</b>: The model should not be treated as a definitive legal or safety determination.</li>
206
  </ul>
207
 
208
- <h2 class="vg-h2">Acknowledgements</h2>
209
- <div class="vg-ack"><a href="https://huggingface.co/Qwen/Qwen3.5-4B" class="vg-a">Qwen/Qwen3.5-4B</a>: Base multimodal model used for this project.</div>
210
- <div class="vg-ack"><a href="https://huggingface.co/datasets/prithivMLmods/ImageShield-Guardrail-Pro" class="vg-a">ImageShield-Guardrail-Pro</a>: Content-safety guardrail dataset used for training VisionGuardrail-4B.</div>
211
- <div class="vg-ack"><a href="https://huggingface.co/docs/trl/en/index" class="vg-a">TRL</a> – Transformers Reinforcement Learning: TRL is a full-stack library providing tools to train transformer language models with methods including Supervised Fine-Tuning (SFT), Group Relative Policy Optimization (GRPO), Direct Preference Optimization (DPO), Reward Modeling, and more.</div>
212
- <div class="vg-ack"><a href="https://huggingface.co/docs/transformers/en/index" class="vg-a">Transformers</a>: Transformers provides state-of-the-art machine learning models for text, computer vision, audio, video, and multimodal tasks, supporting both inference and training.</div>
213
 
214
  </div>
 
1
+ <link href="https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,500;0,700;1,400&family=Ubuntu+Mono&display=swap" rel="stylesheet">
2
+
3
  <style>
4
+ .vg-wrap {
5
+ font-family: 'Ubuntu', sans-serif;
6
+ background-color: #000000;
7
+ color: #FFFFFF;
8
+ padding: 40px 32px;
9
+ border-radius: 16px;
10
+ max-width: 920px;
11
+ margin: 0 auto;
12
+ line-height: 1.65;
13
+ box-sizing: border-box;
14
+ border: 1px solid #1c1c1c;
15
+ }
16
+
17
+ .vg-title-area {
18
+ margin-bottom: 24px;
19
+ border-bottom: 1px solid #222222;
20
+ padding-bottom: 18px;
21
+ }
22
+
23
+ .vg-h1 {
24
+ font-size: 34px;
25
+ font-weight: 700;
26
+ margin: 0 0 8px 0;
27
+ color: #FFFFFF;
28
+ letter-spacing: -0.5px;
29
+ }
30
+
31
+ .vg-badge {
32
+ display: inline-block;
33
+ font-size: 12px;
34
+ letter-spacing: 0.5px;
35
+ text-transform: uppercase;
36
+ color: #FFFFFF;
37
+ background: #111111;
38
+ border: 1px solid #333333;
39
+ padding: 3px 10px;
40
+ border-radius: 4px;
41
+ font-weight: 500;
42
+ }
43
+
44
+ .vg-lead {
45
+ font-size: 15px;
46
+ color: #FFFFFF;
47
+ margin-bottom: 24px;
48
+ }
49
+
50
+ .vg-a {
51
+ color: #FF4500;
52
+ text-decoration: none;
53
+ font-weight: 500;
54
+ transition: opacity 0.2s;
55
+ }
56
+
57
+ .vg-a:hover {
58
+ text-decoration: underline;
59
+ opacity: 0.85;
60
+ }
61
+
62
+ .vg-notice-panel {
63
+ background-color: #0a0a0a;
64
+ border: 1px solid #262626;
65
+ border-radius: 8px;
66
+ padding: 18px 22px;
67
+ margin-bottom: 32px;
68
+ font-size: 14px;
69
+ color: #FFFFFF;
70
+ line-height: 1.55;
71
+ }
72
+
73
+ .vg-h2 {
74
+ font-size: 21px;
75
+ font-weight: 700;
76
+ margin-top: 36px;
77
+ margin-bottom: 18px;
78
+ color: #FFFFFF;
79
+ letter-spacing: -0.3px;
80
+ display: flex;
81
+ align-items: center;
82
+ gap: 8px;
83
+ }
84
+
85
+ .vg-list {
86
+ list-style: none;
87
+ padding: 0;
88
+ margin: 0 0 28px 0;
89
+ }
90
+
91
+ .vg-list li {
92
+ position: relative;
93
+ padding-left: 28px;
94
+ margin-bottom: 12px;
95
+ font-size: 15px;
96
+ color: #FFFFFF;
97
+ }
98
+
99
+ .vg-list li::before {
100
+ content: "+";
101
+ color: #FF4500;
102
+ position: absolute;
103
+ left: 4px;
104
+ top: -1px;
105
+ font-weight: 700;
106
+ font-size: 19px;
107
+ line-height: 1;
108
+ }
109
+
110
+ .vg-disclosure {
111
+ border: 1px solid #262626;
112
+ border-radius: 8px;
113
+ margin-bottom: 28px;
114
+ background-color: #080808;
115
+ overflow: hidden;
116
+ }
117
+
118
+ .vg-disclosure summary {
119
+ padding: 16px 20px;
120
+ cursor: pointer;
121
+ font-size: 16px;
122
+ font-weight: 700;
123
+ color: #FFFFFF;
124
+ background-color: #0d0d0d;
125
+ user-select: none;
126
+ display: flex;
127
+ align-items: center;
128
+ justify-content: space-between;
129
+ transition: background-color 0.2s ease;
130
+ }
131
+
132
+ .vg-disclosure summary:hover {
133
+ background-color: #141414;
134
+ }
135
+
136
+ .vg-disclosure summary::after {
137
+ content: "+";
138
+ color: #FF4500;
139
+ font-size: 18px;
140
+ font-weight: 700;
141
+ }
142
+
143
+ .vg-disclosure[open] summary::after {
144
+ content: "–";
145
+ }
146
+
147
+ .vg-disclosure-body {
148
+ padding: 16px;
149
+ border-top: 1px solid #222222;
150
+ }
151
+
152
+ .vg-code-shelf {
153
+ position: relative;
154
+ background: #050505;
155
+ border: 1px solid #222222;
156
+ border-radius: 8px;
157
+ margin-bottom: 22px;
158
+ overflow: hidden;
159
+ }
160
+
161
+ .vg-code-bar {
162
+ display: flex;
163
+ justify-content: space-between;
164
+ align-items: center;
165
+ background: #0e0e0e;
166
+ padding: 8px 14px;
167
+ border-bottom: 1px solid #1f1f1f;
168
+ }
169
+
170
+ .vg-code-lang {
171
+ font-size: 12px;
172
+ color: #888888;
173
+ text-transform: uppercase;
174
+ font-weight: 500;
175
+ letter-spacing: 0.5px;
176
+ }
177
+
178
+ .vg-btn-copy {
179
+ background: #1a1a1a;
180
+ color: #FFFFFF;
181
+ border: 1px solid #333333;
182
+ border-radius: 4px;
183
+ padding: 4px 10px;
184
+ cursor: pointer;
185
+ font-family: 'Ubuntu', sans-serif;
186
+ font-size: 12px;
187
+ font-weight: 500;
188
+ transition: all 0.2s ease;
189
+ }
190
+
191
+ .vg-btn-copy:hover {
192
+ background: #262626;
193
+ border-color: #555555;
194
+ }
195
+
196
+ .vg-code-block {
197
+ margin: 0;
198
+ padding: 16px;
199
+ overflow-x: auto;
200
+ color: #FFFFFF;
201
+ font-family: 'Ubuntu Mono', monospace;
202
+ font-size: 13px;
203
+ line-height: 1.5;
204
+ white-space: pre;
205
+ }
206
+
207
+ .vg-grid-table {
208
+ width: 100%;
209
+ border-collapse: separate;
210
+ border-spacing: 0;
211
+ margin-bottom: 28px;
212
+ border: 1px solid #262626;
213
+ border-radius: 8px;
214
+ overflow: hidden;
215
+ font-size: 14px;
216
+ }
217
+
218
+ .vg-grid-table tr:not(:last-child) td,
219
+ .vg-grid-table tr:not(:last-child) th {
220
+ border-bottom: 1px solid #222222;
221
+ }
222
+
223
+ .vg-grid-table th {
224
+ background-color: #0b0b0b;
225
+ color: #FFFFFF;
226
+ font-weight: 700;
227
+ padding: 12px 18px;
228
+ width: 32%;
229
+ text-align: left;
230
+ border-right: 1px solid #222222;
231
+ }
232
+
233
+ .vg-grid-table td {
234
+ padding: 12px 18px;
235
+ color: #FFFFFF;
236
+ background-color: #050505;
237
+ }
238
+
239
+ .vg-source-ref {
240
+ margin-bottom: 12px;
241
+ font-size: 14px;
242
+ color: #FFFFFF;
243
+ padding-left: 28px;
244
+ position: relative;
245
+ }
246
+
247
+ .vg-source-ref::before {
248
+ content: "+";
249
+ color: #FF4500;
250
+ position: absolute;
251
+ left: 4px;
252
+ top: 0;
253
+ font-weight: 700;
254
+ font-size: 18px;
255
+ line-height: 1;
256
+ }
257
  </style>
258
 
259
  <script>
260
+ function runCopy(btn) {
261
+ const container = btn.closest('.vg-code-shelf');
262
+ const targetCode = container.querySelector('.vg-code-block');
263
+ if (!targetCode) return;
264
+
265
+ const textVal = targetCode.innerText;
266
+ navigator.clipboard.writeText(textVal).then(function() {
267
+ btn.innerText = "Copied!";
268
+ setTimeout(function() { btn.innerText = "Copy"; }, 2000);
269
+ }).catch(function() {
270
+ const fallbackArea = document.createElement("textarea");
271
+ fallbackArea.value = textVal;
272
+ document.body.appendChild(fallbackArea);
273
+ fallbackArea.select();
274
  document.execCommand('copy');
275
+ document.body.removeChild(fallbackArea);
276
  btn.innerText = "Copied!";
277
+ setTimeout(function() { btn.innerText = "Copy"; }, 2000);
278
+ });
 
 
 
279
  }
280
  </script>
281
 
282
+ <div class="vg-wrap">
283
+
284
+ <div class="vg-title-area">
285
+ <h1 class="vg-h1">VisionGuardrail-4B</h1>
286
+ <span class="vg-badge">Multimodal Safety Model</span>
287
+ </div>
288
+
289
+ <p class="vg-lead">
290
  <b>VisionGuardrail-4B</b> is a multimodal content-safety classifier based on <b>Qwen/Qwen3.5-4B</b> and trained on the <a href="https://huggingface.co/datasets/prithivMLmods/ImageShield-Guardrail-Pro" class="vg-a">prithivMLmods/ImageShield-Guardrail-Pro</a> content-safety guardrail dataset. The model is designed to classify visual content as <b>Safe</b> or <b>Unsafe</b>, with a particular focus on detecting <b>Not Safe for Work (NSFW) sensual content</b> and other potentially sensitive visual content. VisionGuardrail-4B excels at detecting <b>explicit and sensitive visual content</b>, with detailed analysis of <b>dress codes, clothing exposure, poses, framing, and different visual settings</b> to support conservative content-safety classification.
291
  </p>
292
 
293
+ <div class="vg-notice-panel">
294
  This model is an experimental release and may generate unexpected behaviors or reasoning artifacts in certain scenarios. <b>This model is intended for research and content-safety classification only.</b> Any outputs generated by this model are the sole responsibility of the user. The authors and hosting platform disclaim all liability for generated content. Users must ensure safe, ethical, and lawful usage.
295
  </div>
296
 
297
+ <div class="vg-h2">Key Highlights</div>
298
  <ul class="vg-list">
299
  <li><b>Qwen 3.5 Foundation</b>: Built on <b>Qwen/Qwen3.5-4B</b>.</li>
300
  <li><b>Multimodal Content Filter</b>: Designed for visual content-safety classification.</li>
 
309
  <li><b>Structured Output</b>: Produces a machine-readable JSON response containing a caption, classification, and reasoning.</li>
310
  </ul>
311
 
312
+ <details class="vg-disclosure">
313
+ <summary>Standard Instruction</summary>
314
+ <div class="vg-disclosure-body">
315
+ <div class="vg-code-shelf">
316
+ <div class="vg-code-bar">
317
+ <span class="vg-code-lang">System Prompt</span>
318
+ <button class="vg-btn-copy" onclick="runCopy(this)">Copy</button>
319
+ </div>
320
+ <pre class="vg-code-block">You are a strict, zero-tolerance parental control content-safety guardrail classifier for visual media.
321
 
322
  Your role is minor protection: any media containing suggestive, revealing, sexually provocative, or explicit visual elements must be flagged as NSFW.
323
 
 
342
  Output strictly valid JSON with no extra conversational text, commentary, or markdown formatting outside the JSON object:
343
 
344
  {
345
+ "caption": "&lt;Detailed, objective visual description of the subject, clothing, exposure, pose, and setting&gt;",
346
  "is_nsfw": true | false,
347
+ "reason": "&lt;Precise reason for classification based on clothing, exposure, pose, context, or other visual cues&gt;",
348
  "nsfw": 1 | 0,
349
  "safe": 1 | 0
350
  }</pre>
351
+ </div>
352
  </div>
353
  </details>
354
 
355
+ <div class="vg-h2">Quick Start with Transformers</div>
356
+
357
+ <div class="vg-code-shelf">
358
+ <div class="vg-code-bar">
359
+ <span class="vg-code-lang">bash</span>
360
+ <button class="vg-btn-copy" onclick="runCopy(this)">Copy</button>
361
+ </div>
362
+ <pre class="vg-code-block">pip install transformers
363
  pip install accelerate</pre>
364
  </div>
365
 
366
+ <div class="vg-code-shelf">
367
+ <div class="vg-code-bar">
368
+ <span class="vg-code-lang">python</span>
369
+ <button class="vg-btn-copy" onclick="runCopy(this)">Copy</button>
370
+ </div>
371
+ <pre class="vg-code-block">from transformers import Qwen3_5ForConditionalGeneration, AutoProcessor
372
  import torch
373
 
374
  model = Qwen3_5ForConditionalGeneration.from_pretrained(
 
422
  print(output_text[0])</pre>
423
  </div>
424
 
425
+ <div class="vg-h2">Training Details</div>
426
+ <table class="vg-grid-table">
427
  <tr><th>Setting</th><td>Value</td></tr>
428
  <tr><th>Base Model</th><td>Qwen/Qwen3.5-4B</td></tr>
429
  <tr><th>Model</th><td>VisionGuardrail-4B</td></tr>
 
436
  <tr><th>Training Framework</th><td>TRL</td></tr>
437
  </table>
438
 
439
+ <div class="vg-h2">Intended Use</div>
440
  <ul class="vg-list">
441
  <li><b>Content Safety Classification</b>: Classifying visual media as safe or unsafe.</li>
442
  <li><b>NSFW Sensual Content Detection</b>: Supporting research into automated detection of potentially sensitive and sexually suggestive visual content.</li>
 
447
  <li><b>Visual Safety Analysis</b>: Analyzing clothing, dress codes, poses, framing, and visual settings for content-safety signals.</li>
448
  </ul>
449
 
450
+ <div class="vg-h2">Limitations</div>
451
  <ul class="vg-list">
452
  <li><b>Experimental Model</b>: The model may produce incorrect or inconsistent classifications.</li>
453
  <li><b>False Positives</b>: Benign content may occasionally be classified as unsafe due to the conservative classification threshold.</li>
 
458
  <li><b>Automated Classification</b>: The model should not be treated as a definitive legal or safety determination.</li>
459
  </ul>
460
 
461
+ <div class="vg-h2">Acknowledgements</div>
462
+ <div class="vg-source-ref"><a href="https://huggingface.co/Qwen/Qwen3.5-4B" class="vg-a">Qwen/Qwen3.5-4B</a>: Base multimodal model used for this project.</div>
463
+ <div class="vg-source-ref"><a href="https://huggingface.co/datasets/prithivMLmods/ImageShield-Guardrail-Pro" class="vg-a">ImageShield-Guardrail-Pro</a>: Content-safety guardrail dataset used for training VisionGuardrail-4B.</div>
464
+ <div class="vg-source-ref"><a href="https://huggingface.co/docs/trl/en/index" class="vg-a">TRL</a> – Transformers Reinforcement Learning: TRL is a full-stack library providing tools to train transformer language models with methods including Supervised Fine-Tuning (SFT), Group Relative Policy Optimization (GRPO), Direct Preference Optimization (DPO), Reward Modeling, and more.</div>
465
+ <div class="vg-source-ref"><a href="https://huggingface.co/docs/transformers/en/index" class="vg-a">Transformers</a>: Transformers provides state-of-the-art machine learning models for text, computer vision, audio, video, and multimodal tasks, supporting both inference and training.</div>
466
 
467
  </div>