jclyo1's picture
updates
4868035
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Generate images with signed AI attribution</title>
<link rel="stylesheet" href="style.css" />
<link rel="stylesheet" href="json_viewer.css" />
<script src="https://unpkg.com/@peculiar/x509"></script>
<script type="text/javascript" src="json_viewer.js"></script>
<script type="module" src="script.js"></script>
<script
type="module"
src="https://display.truepic.com/truepic_display.es.js"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.3.6/iframeResizer.contentWindow.min.js"
async=""
></script>
</head>
<body>
<section id="header">
<div style="display: flex">
<div style="flex-grow: 1">
<h1>GenAI with Content Credentials</h1>
<p>
Add AI credentials to your generated images using C2PA powered by
Truepic
</p>
</div>
<div class="alert alert-primary" role="alert">
<h4>Support our work!</h4>
<p>
<img src="images/heart_icon.svg" /> Like this Space in the nav above
</p>
<p>
<img src="images/wave_icon.svg" /> Join the conversation in the
Community tab
</p>
</div>
</div>
</section>
<section id="content">
<div id="column-one">
<div class="container">
<div class="output">
<div id="image-container">
<img src="images/placeholder.png" id="placeholder" />
<img
src="images/spinner.svg"
id="spinner"
style="display: none"
/>
</div>
</div>
<div style="display: flex">
<div class="parameters">
Image prompt: “<span class="prompt"></span><br />
Model: <span class="model"></span>
</div>
<a href="#" target="_blank" id="download-link"
><img src="images/download.png" id="download"
/></a>
</div>
</div>
<section class="verification-details">
<nav>
<ul>
<li>
<a class="active" id="verification-nav">Verification output</a>
</li>
<li><a id="certificate-nav">Certificate</a></li>
</ul>
</nav>
<div class="verification">
<p>
The raw verification response, which contains details not
displayed in the Content Credentials overlay.
</p>
<div id="verification-output"></div>
</div>
<div class="certificate" id="certificate-output">
<p>
Details about the certificate used for signing.<br />
Truepic maintains the first and only purpose-built C2PA
certificate authority.
</p>
<p><strong style="font-weight: 600">Certificate chain</strong></p>
<ul id="certificate-list"></ul>
<p><strong style="font-weight: 600">Details</strong></p>
<div class="details">
<strong>Basic info</strong>
<div>
<label>Type</label>
X.509 Certificate
</div>
<div>
<label>Serial Number</label>
<div class="serialNumber"></div>
</div>
<div>
<label>Issued</label>
<div class="issued"></div>
</div>
<div>
<label>Expired</label>
<div class="expired"></div>
</div>
<strong>Subject</strong>
<div>
<label>Common Name</label>
<div class="subjectCommonName"></div>
</div>
<div>
<label>Organization</label>
<div class="subjectOrganization"></div>
</div>
<div>
<label>Organization Unit</label>
<div class="subjectOrganizationUnit"></div>
</div>
<div>
<label>Country</label>
<div class="subjectCountry"></div>
</div>
<strong>Issuer</strong>
<div>
<label>Common Name</label>
<div class="issuerCommonName"></div>
</div>
<div>
<label>Organization</label>
<div class="issuerOrganization"></div>
</div>
<div>
<label>Organization Unit</label>
<div class="issuerOrganizationUnit"></div>
</div>
<div>
<label>Country</label>
<div class="issuerCountry"></div>
</div>
<strong>Public Key Info</strong>
<div>
<label>Algorithm</label>
<div class="algorithm"></div>
</div>
<div id="modulusContainer">
<label>Modulus</label>
<div class="modulus"></div>
</div>
<div id="curveContainer">
<label>Curve</label>
<div class="namedCurve"></div>
</div>
</div>
</div>
</section>
<img src="images/logo.png" id="logo" />
</div>
<div id="column-two">
<div class="form">
<form class="text-gen-form">
<label for="text-gen-input">Image prompt</label>
<textarea id="text-gen-input"></textarea>
<label>Model</label>
<div class="custom-select">
<select id="model">
<option disabled selected value>Select</option>
<option value="runwayml/stable-diffusion-v1-5,1.5">
runwayml/stable-diffusion-v1-5
</option>
<option value="CompVis/stable-diffusion-v1-4,1.4">
CompVis/stable-diffusion-v1-4
</option>
<option value="stabilityai/stable-diffusion-2-1,2.1">
stabilityai/stable-diffusion-2-1
</option>
</select>
</div>
<button id="text-gen-submit">Submit</button>
</form>
</div>
<div class="description">
<p><strong>How it works</strong></p>
<p>
Generate an image using a hosted model and add an AI disclosure to
the file. This information, referred to as Content Credentials,
serves as a nutrition label for the content. We employ the
tamper-evident open C2PA standard, which utilizes PKI and is
resistant to forgery. You can download and transfer the image to
supported editing tools like Photoshop, where your edit history can
also be securely added to the file. This historical information,
known as provenance, accompanies your media and can be extracted and
displayed using a tool or website.
</p>
<p>
Want to know more? Read our
<a
href="https://huggingface.co/blog/alicia-truepic/identify-ai-generated-content"
target="_blank"
>community blog post</a
>.
</p>
</div>
</div>
</section>
</body>
</html>