Ownership of Generated Output

Why WebGPU Exists of the Services Agreement says that, "to the extent permitted by applicable law," the customer "owns all Output," and OpenAI 86 assigns you "all OpenAI's right, title, and interest, if any." The phrase "if any" matters: where the law grants no copyright to machine-made images, there may be little to own, and Errors and Device Loss warns that "other users may receive similar content." BookNest may sell its generated sign and covers, but cannot stop look-alikes; what it can protect is the human design around them. Keep prompts, ledger rows and C2PA data as a record.

What BookNest can own on a cover: the generated art may have look-alikes, the human-made type and layout are its ownHTMLLive
<!doctype html>
<style>
  body { margin: 0; padding: 8px; background: #fafaf7; font: 12px system-ui, sans-serif; color: #263238; }
  canvas { display: block; max-width: 100%; }
</style>
<p>Highlight: <label><input type="radio" name="h" value="art"> generated art</label>
  <label><input type="radio" name="h" value="human" checked> human design</label>
  <label><input type="radio" name="h" value="none"> nothing</label></p>
<canvas id="c" width="600" height="280"></canvas>
<script>
  const ctx = document.getElementById('c').getContext('2d');
  function art(x, y, w, h, shift) {                      // the model's painting (two users, similar prompts)
    const sky = ctx.createLinearGradient(0, y, 0, y + h);
    sky.addColorStop(0, '#1f3f66');  sky.addColorStop(0.6, '#e09a10');  sky.addColorStop(1, '#16435f');
    ctx.fillStyle = sky;  ctx.fillRect(x, y, w, h);
    ctx.fillStyle = '#fff3e0';  ctx.fillRect(x + w * (0.62 + shift), y + h * 0.2, w * 0.08, h * 0.4);
    ctx.fillStyle = '#b5452f';  ctx.fillRect(x + w * (0.62 + shift), y + h * 0.28, w * 0.08, h * 0.05);
    ctx.fillStyle = '#16435f';  ctx.fillRect(x, y + h * 0.6, w, h * 0.4);
  }
  function draw() {
    const hl = document.querySelector('input[name=h]:checked').value;
    ctx.clearRect(0, 0, 600, 280);
    // BookNest's cover: generated art + human title, author and mark
    art(20, 20, 160, 240, 0);
    ctx.fillStyle = 'rgba(0,0,0,0.25)';  ctx.fillRect(20, 180, 160, 80);
    ctx.fillStyle = '#fff3e0';  ctx.textAlign = 'center';  ctx.font = 'bold 20px Georgia';
    ctx.fillText('The Quiet', 100, 212);  ctx.fillText('Harbor', 100, 236);  ctx.font = 'italic 12px Georgia';  ctx.fillText('Elena Marsh', 100, 254);
    ctx.textAlign = 'start';
    if (hl === 'art') { ctx.strokeStyle = '#b5452f';  ctx.lineWidth = 4;  ctx.strokeRect(20, 20, 160, 160); }
    if (hl === 'human') { ctx.strokeStyle = '#3f7d3a';  ctx.lineWidth = 4;  ctx.strokeRect(20, 180, 160, 80); }
    // Another customer's output from a similar prompt
    art(230, 20, 110, 165, 0.05);
    ctx.fillStyle = '#263238';  ctx.font = '11px system-ui';
    ctx.fillText('another user, similar prompt', 230, 200);
    ctx.fillText('"other users may receive', 230, 216);  ctx.fillText('similar content"', 230, 230);
    // Legend
    const notes = [['#b5452f', 'Output "owned" only "to the extent permitted";'], ['#b5452f', 'OpenAI assigns its rights "if any": look-alikes can\'t be stopped.'],
      ['#3f7d3a', 'Title, typography, layout: human creative choices'], ['#3f7d3a', 'BookNest can protect these.'],
      ['#546e7a', 'Keep prompts, ledger rows and C2PA data as a record.']];
    ctx.font = '12px system-ui';
    notes.forEach(([c, t], i) => { ctx.fillStyle = c;  ctx.fillText(t, 360, 40 + i * 20 + (i > 1 ? 16 : 0) + (i > 3 ? 16 : 0), 235); });
  }
  document.querySelectorAll('input[name=h]').forEach(r => r.onchange = draw);
  draw();
</script>