updates
Browse files- static/images/generate_icon.svg +4 -4
- static/images/heart_icon.svg +3 -0
- static/images/wave_icon.svg +3 -0
- static/index.html +56 -39
- static/style.css +31 -0
static/images/generate_icon.svg
CHANGED
static/images/heart_icon.svg
ADDED
static/images/wave_icon.svg
ADDED
static/index.html
CHANGED
@@ -57,10 +57,16 @@
|
|
57 |
</div>
|
58 |
</div>
|
59 |
<div class="col right-column">
|
60 |
-
<div class="alert alert-
|
61 |
<h4>Support our work!</h4>
|
62 |
-
<p>
|
63 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
</div>
|
65 |
</div>
|
66 |
</div>
|
@@ -131,6 +137,7 @@
|
|
131 |
style="display: none"
|
132 |
/>
|
133 |
</div>
|
|
|
134 |
<h3>Verification Output</h3>
|
135 |
<div id="verification-output"></div>
|
136 |
|
@@ -217,6 +224,7 @@
|
|
217 |
</div>
|
218 |
</div>
|
219 |
</div>
|
|
|
220 |
</div>
|
221 |
<div class="col right-column">
|
222 |
<div class="display-generate">
|
@@ -260,33 +268,35 @@
|
|
260 |
<button type="submit" class="btn btn-primary">Submit</button>
|
261 |
</form>
|
262 |
|
263 |
-
<
|
|
|
264 |
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
|
|
|
|
277 |
</div>
|
278 |
<div class="display-verify">
|
279 |
<form class="verify-upload-form" enctype="multipart/form-data">
|
280 |
<div class="form-group mb-3">
|
281 |
<label>Upload image</label>
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
</div>
|
290 |
</div>
|
291 |
|
292 |
<div class="form-check mb-3">
|
@@ -304,21 +314,23 @@
|
|
304 |
|
305 |
<button type="submit" class="btn btn-primary">Submit</button>
|
306 |
</form>
|
|
|
|
|
307 |
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
</div>
|
323 |
</div>
|
324 |
</div>
|
@@ -349,8 +361,9 @@
|
|
349 |
);
|
350 |
const verificationOutput = document.getElementById("verification-output");
|
351 |
const certificateList = document.getElementById("certificate-list");
|
352 |
-
|
353 |
|
|
|
354 |
|
355 |
generateTab.addEventListener("click", (event) => {
|
356 |
event.target.classList.add("active");
|
@@ -414,6 +427,8 @@
|
|
414 |
document.getElementById("result").remove(); // JCL make sure to remove the correct one
|
415 |
spinner.style.display = "block";
|
416 |
|
|
|
|
|
417 |
const formData = new FormData(uploadForm);
|
418 |
|
419 |
// Add additional form data as needed
|
@@ -491,6 +506,8 @@
|
|
491 |
truepicDisplay.appendChild(truepic);
|
492 |
|
493 |
verifyImageContainer.appendChild(truepicDisplay);
|
|
|
|
|
494 |
}
|
495 |
// Handle response data
|
496 |
})
|
|
|
57 |
</div>
|
58 |
</div>
|
59 |
<div class="col right-column">
|
60 |
+
<div class="alert alert-primary" role="alert">
|
61 |
<h4>Support our work!</h4>
|
62 |
+
<p>
|
63 |
+
<img src="images/heart_icon.svg" /> Like this Space in the nav
|
64 |
+
above
|
65 |
+
</p>
|
66 |
+
<p>
|
67 |
+
<img src="images/wave_icon.svg" /> Joining the conversation in
|
68 |
+
the Community tab
|
69 |
+
</p>
|
70 |
</div>
|
71 |
</div>
|
72 |
</div>
|
|
|
137 |
style="display: none"
|
138 |
/>
|
139 |
</div>
|
140 |
+
<div class="output-container" style="display:none;">
|
141 |
<h3>Verification Output</h3>
|
142 |
<div id="verification-output"></div>
|
143 |
|
|
|
224 |
</div>
|
225 |
</div>
|
226 |
</div>
|
227 |
+
</div>
|
228 |
</div>
|
229 |
<div class="col right-column">
|
230 |
<div class="display-generate">
|
|
|
268 |
<button type="submit" class="btn btn-primary">Submit</button>
|
269 |
</form>
|
270 |
|
271 |
+
<div class="how-it-works">
|
272 |
+
<p><strong>How it works</strong></p>
|
273 |
|
274 |
+
<p>
|
275 |
+
Images are generated using a hosted model and AI disclosure is
|
276 |
+
added to the file. This information, referred to as Content
|
277 |
+
Credentials, serves as a nutrition label for the content. We
|
278 |
+
employ the tamper-evident open C2PA standard, which utilizes
|
279 |
+
PKI and is resistant to forgery. You can download and transfer
|
280 |
+
the image to supported editing tools like Photoshop, where
|
281 |
+
your edit history can also be securely added to the file. This
|
282 |
+
historical information, known as provenance, accompanies your
|
283 |
+
media and can be extracted and displayed using a tool or
|
284 |
+
website.
|
285 |
+
</p>
|
286 |
+
<p>Want to know more? Read our community blog post.</p>
|
287 |
+
</div>
|
288 |
</div>
|
289 |
<div class="display-verify">
|
290 |
<form class="verify-upload-form" enctype="multipart/form-data">
|
291 |
<div class="form-group mb-3">
|
292 |
<label>Upload image</label>
|
293 |
+
|
294 |
+
<input
|
295 |
+
type="file"
|
296 |
+
class="form-control"
|
297 |
+
name="fileUpload"
|
298 |
+
id="fileUpload"
|
299 |
+
/>
|
|
|
300 |
</div>
|
301 |
|
302 |
<div class="form-check mb-3">
|
|
|
314 |
|
315 |
<button type="submit" class="btn btn-primary">Submit</button>
|
316 |
</form>
|
317 |
+
<div class="how-it-works">
|
318 |
+
<p><strong>How it works</strong></p>
|
319 |
|
320 |
+
<p>
|
321 |
+
Images are generated using a hosted model and AI disclosure is
|
322 |
+
added to the file. This information, referred to as Content
|
323 |
+
Credentials, serves as a nutrition label for the content. We
|
324 |
+
employ the tamper-evident open C2PA standard, which utilizes
|
325 |
+
PKI and is resistant to forgery. You can download and transfer
|
326 |
+
the image to supported editing tools like Photoshop, where
|
327 |
+
your edit history can also be securely added to the file. This
|
328 |
+
historical information, known as provenance, accompanies your
|
329 |
+
media and can be extracted and displayed using a tool or
|
330 |
+
website.
|
331 |
+
</p>
|
332 |
+
<p>Want to know more? Read our community blog post.</p>
|
333 |
+
</div>
|
334 |
</div>
|
335 |
</div>
|
336 |
</div>
|
|
|
361 |
);
|
362 |
const verificationOutput = document.getElementById("verification-output");
|
363 |
const certificateList = document.getElementById("certificate-list");
|
364 |
+
const outputContainer = document.getElementById("output-container");
|
365 |
|
366 |
+
var certificates = [];
|
367 |
|
368 |
generateTab.addEventListener("click", (event) => {
|
369 |
event.target.classList.add("active");
|
|
|
427 |
document.getElementById("result").remove(); // JCL make sure to remove the correct one
|
428 |
spinner.style.display = "block";
|
429 |
|
430 |
+
outputContainer.style.display = "none";
|
431 |
+
|
432 |
const formData = new FormData(uploadForm);
|
433 |
|
434 |
// Add additional form data as needed
|
|
|
506 |
truepicDisplay.appendChild(truepic);
|
507 |
|
508 |
verifyImageContainer.appendChild(truepicDisplay);
|
509 |
+
|
510 |
+
outputContainer.style.display = "block";
|
511 |
}
|
512 |
// Handle response data
|
513 |
})
|
static/style.css
CHANGED
@@ -22,6 +22,7 @@ p {
|
|
22 |
font-weight: 400;
|
23 |
font-size: 16px;
|
24 |
line-height: 24px;
|
|
|
25 |
}
|
26 |
|
27 |
.badge.bg-secondary {
|
@@ -140,4 +141,34 @@ img.thumbnail {
|
|
140 |
.action-menu .btn:hover {
|
141 |
background-color: transparent;
|
142 |
color: var(--primary-color);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
}
|
|
|
22 |
font-weight: 400;
|
23 |
font-size: 16px;
|
24 |
line-height: 24px;
|
25 |
+
color: #56687A;
|
26 |
}
|
27 |
|
28 |
.badge.bg-secondary {
|
|
|
141 |
.action-menu .btn:hover {
|
142 |
background-color: transparent;
|
143 |
color: var(--primary-color);
|
144 |
+
}
|
145 |
+
|
146 |
+
.alert-primary {
|
147 |
+
border-color: #FEF3C7;
|
148 |
+
background-color: rgba(254, 243, 199, 0.25);
|
149 |
+
|
150 |
+
}
|
151 |
+
|
152 |
+
.alert-primary h4, .alert-primary p {
|
153 |
+
font-size: 14px;
|
154 |
+
color: #1F2937;
|
155 |
+
}
|
156 |
+
|
157 |
+
.alert-primary h4 {
|
158 |
+
font-weight: 600;
|
159 |
+
}
|
160 |
+
|
161 |
+
.alert-primary p {
|
162 |
+
margin-bottom: 0;
|
163 |
+
}
|
164 |
+
|
165 |
+
.how-it-works {
|
166 |
+
margin-top: 3rem;
|
167 |
+
font-size: 12px;
|
168 |
+
color: #56687A;
|
169 |
+
}
|
170 |
+
|
171 |
+
.how-it-works strong {
|
172 |
+
font-weight: 600;
|
173 |
+
color: black;
|
174 |
}
|