{"id":491,"date":"2026-08-07T22:29:37","date_gmt":"2026-08-07T22:29:37","guid":{"rendered":"https:\/\/www.tb-software.ch\/ai\/traceink\/"},"modified":"2026-08-07T22:29:37","modified_gmt":"2026-08-07T22:29:37","slug":"traceink","status":"publish","type":"page","link":"https:\/\/www.tb-software.ch\/ai\/en\/traceink\/","title":{"rendered":"Trace ink marks origin"},"content":{"rendered":"<article class=\"tbti\">\n\n  <div class=\"tbti-logo\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/plugins\/tb-traceink\/assets\/brand\/traceink-mark-dark.png?v=3\" alt=\"TraceInk\" width=\"64\" height=\"64\"><\/div>\n\n  <figure class=\"tbti-cover\">\n    <img decoding=\"async\" src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/plugins\/tb-traceink\/assets\/brand\/traceink-brand-hero.jpg\" alt=\"TraceInkMarksOrigin: ein Bild wird markiert und seine Herkunft nachgewiesen\">\n  <\/figure>\n\n  <header class=\"tbti-hero\">\n    <div class=\"tbti-hero__badge\">Trace ink marks origin<\/div>\n    <h1>Invisible, verifiable watermarks for your images<\/h1>\n    <p class=\"tbti-hero__lead\">\n      You mark an image with an invisible watermark and can later prove that it is from you. The calculation is done by the marking service: the page submits your order, the service picks it up and reports the result back. Depending on the load, this can take up to half a minute.\n    <\/p>\n\n    <div class=\"tbti-status\">\n      <span class=\"tbti-server\" data-server>\n        <span class=\"tbti-server__dot\"><\/span>\n        <span class=\"tbti-server__text\" data-server-text>Marking service: being checked\u2026<\/span>\n      <\/span>\n      <span class=\"tbti-wallet\" data-wallet>\n        <span class=\"tbti-wallet__coin\">tb-coin<\/span>\n        <span class=\"tbti-wallet__bal\" data-wallet-balance>\u2026<\/span>\n        <span class=\"tbti-wallet__hint\">Mark 10 \u00b7 Check 1<\/span>\n      <\/span>\n          <\/div>\n  <\/header>\n\n  <div class=\"tbti-grid\">\n\n    <!-- Demo: ohne Anmeldung, clientseitig simuliert -->\n    <section class=\"tbti-card tbti-card--wide tbti-demo\" id=\"demo\">\n      <h2>Try it out right away<\/h2>\n      <p class=\"tbti-card__sub\">The entire process in three steps, directly here in the browser. No registration required, nothing is uploaded or downloaded. It's a small simulation that shows you how it works.<\/p>\n      <div class=\"tbti-demo__gallery\">\n                  <button type=\"button\" class=\"tbti-demo__thumb\" data-demo-pick data-src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/1.jpg\">\n            <img decoding=\"async\" src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/1.jpg\" alt=\"Demo-Bild 1\" loading=\"lazy\">\n          <\/button>\n                  <button type=\"button\" class=\"tbti-demo__thumb\" data-demo-pick data-src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/2.jpg\">\n            <img decoding=\"async\" src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/2.jpg\" alt=\"Demo-Bild 2\" loading=\"lazy\">\n          <\/button>\n                  <button type=\"button\" class=\"tbti-demo__thumb\" data-demo-pick data-src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/3.jpg\">\n            <img decoding=\"async\" src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/3.jpg\" alt=\"Demo-Bild 3\" loading=\"lazy\">\n          <\/button>\n                  <button type=\"button\" class=\"tbti-demo__thumb\" data-demo-pick data-src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/4.jpg\">\n            <img decoding=\"async\" src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/4.jpg\" alt=\"Demo-Bild 4\" loading=\"lazy\">\n          <\/button>\n                  <button type=\"button\" class=\"tbti-demo__thumb\" data-demo-pick data-src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/5.jpg\">\n            <img decoding=\"async\" src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/5.jpg\" alt=\"Demo-Bild 5\" loading=\"lazy\">\n          <\/button>\n                  <button type=\"button\" class=\"tbti-demo__thumb\" data-demo-pick data-src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/6.jpg\">\n            <img decoding=\"async\" src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/6.jpg\" alt=\"Demo-Bild 6\" loading=\"lazy\">\n          <\/button>\n                  <button type=\"button\" class=\"tbti-demo__thumb\" data-demo-pick data-src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/7.jpg\">\n            <img decoding=\"async\" src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/7.jpg\" alt=\"Demo-Bild 7\" loading=\"lazy\">\n          <\/button>\n                  <button type=\"button\" class=\"tbti-demo__thumb\" data-demo-pick data-src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/8.jpg\">\n            <img decoding=\"async\" src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/8.jpg\" alt=\"Demo-Bild 8\" loading=\"lazy\">\n          <\/button>\n                  <button type=\"button\" class=\"tbti-demo__thumb\" data-demo-pick data-src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/9.jpg\">\n            <img decoding=\"async\" src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/9.jpg\" alt=\"Demo-Bild 9\" loading=\"lazy\">\n          <\/button>\n                  <button type=\"button\" class=\"tbti-demo__thumb\" data-demo-pick data-src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/10.jpg\">\n            <img decoding=\"async\" src=\"https:\/\/www.tb-software.ch\/ai\/wp-content\/uploads\/tb-traceink\/demo\/10.jpg\" alt=\"Demo-Bild 10\" loading=\"lazy\">\n          <\/button>\n              <\/div>\n      <div class=\"tbti-lab\">\n        <div class=\"tbti-lab__canvas-wrap\">\n          <canvas data-demo-canvas width=\"400\" height=\"300\"><\/canvas>\n        <\/div>\n        <div class=\"tbti-lab__controls\">\n          <p class=\"tbti-demo__step\"><strong>Step 1:<\/strong> Select and mark an image at the top.<\/p>\n          <button class=\"tbti-btn tbti-btn--primary\" data-demo-mark disabled>Mark image<\/button>\n          <p class=\"tbti-demo__step\"><strong>Step 2:<\/strong> Change the image and see how much the mark withstands.<\/p>\n          <label>Enlarge <input type=\"range\" min=\"100\" max=\"250\" value=\"100\" data-demo-zoom><\/label>\n          <label>Crop <input type=\"range\" min=\"0\" max=\"45\" value=\"0\" data-demo-crop><\/label>\n          <label>Change color <input type=\"range\" min=\"-90\" max=\"90\" value=\"0\" data-demo-hue><\/label>\n          <p class=\"tbti-demo__step\"><strong>Step 3:<\/strong> Check if the character is still found.<\/p>\n          <button class=\"tbti-btn\" data-demo-verify disabled>Search for character<\/button>\n          <div class=\"tbti-result\" data-demo-result hidden><\/div>\n        <\/div>\n      <\/div>\n      <p class=\"tbti-demo__note\">For your own images and real, verifiable watermarks, continue below.<\/p>\n    <\/section>\n\n    <!-- Markieren -->\n    <section class=\"tbti-card\" id=\"markieren\">\n      <h2> \u00b7 Mark<\/h2>\n            <p class=\"tbti-card__sub\">Marking your own images is possible with a free account (1000 tb-coin free). Checking and the demo above do not require registration.<\/p>\n      <a class=\"tbti-btn tbti-btn--primary\" href=\"https:\/\/www.tb-software.ch\/ai\/konto\/?redirect_to=\/ai\/traceink\/\">Log in or create an account<\/a>\n          <\/section>\n\n    <!-- Pr\u00fcfen -->\n    <section class=\"tbti-card\" id=\"pruefen\">\n      <h2> \u00b7 Check<\/h2>\n      <p class=\"tbti-card__sub\">Upload any image. The marking service reports whether a watermark was detected, which ID, and how secure.<\/p>\n      <label class=\"tbti-file\">\n        <input type=\"file\" accept=\"image\/*\" multiple data-verify-file>\n        <span>Select one or more images\u2026<\/span>\n      <\/label>\n      <small class=\"tbti-hint\">JPG, PNG, or WEBP \u00b7 up to 25 MB \u00b7 multiple allowed (batch)<\/small>\n      <figure class=\"tbti-thumb\" data-verify-thumb hidden>\n        <img alt=\"Vorschau des zu pr\u00fcfenden Bildes\" data-verify-thumb-img>\n        <figcaption>Image to be checked<\/figcaption>\n      <\/figure>\n      <button class=\"tbti-btn tbti-btn--primary\" data-verify-go>Check (1 tb-coin)<\/button>\n      <div class=\"tbti-result\" data-verify-result hidden><\/div>\n      <div class=\"tbti-batch\" data-verify-batch hidden><\/div>\n    <\/section>\n\n    <!-- Testlabor -->\n    <section class=\"tbti-card tbti-card--wide\" id=\"testlabor\">\n      <h2> \u00b7 Test Lab<\/h2>\n      <p class=\"tbti-card__sub\">First mark an image, then enlarge it here, crop it, change the color and have it checked whether the watermark survives this. Each check costs 1 tb-coin.<\/p>\n      <label class=\"tbti-file\">\n        <input type=\"file\" accept=\"image\/*\" data-lab-file>\n        <span>Select marked image\u2026<\/span>\n      <\/label>\n      <div class=\"tbti-lab\">\n        <div class=\"tbti-lab__canvas-wrap\">\n          <canvas data-lab-canvas width=\"400\" height=\"300\"><\/canvas>\n        <\/div>\n        <div class=\"tbti-lab__controls\">\n          <label>Enlarge <input type=\"range\" min=\"100\" max=\"250\" value=\"100\" data-lab-zoom><\/label>\n          <label>Crop <input type=\"range\" min=\"0\" max=\"45\" value=\"0\" data-lab-crop><\/label>\n          <label>Change color <input type=\"range\" min=\"-90\" max=\"90\" value=\"0\" data-lab-hue><\/label>\n          <button class=\"tbti-btn\" data-lab-verify>Check now (1 tb-coin)<\/button>\n          <div class=\"tbti-result\" data-lab-result hidden><\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <!-- Live-Zeichnen -->\n    <section class=\"tbti-card tbti-card--wide\" id=\"live\">\n      <h2> \u00b7 Overpaint and check<\/h2>\n      <p class=\"tbti-card__sub\">Load marked image, paint over with the pen and check at the push of a button whether recognition still works. This way you can see how much overpainting the watermark can withstand.<\/p>\n      <label class=\"tbti-file\">\n        <input type=\"file\" accept=\"image\/*\" data-draw-file>\n        <span>Select marked image\u2026<\/span>\n      <\/label>\n      <div class=\"tbti-lab\">\n        <div class=\"tbti-lab__canvas-wrap\">\n          <canvas data-draw-canvas width=\"400\" height=\"300\"><\/canvas>\n        <\/div>\n        <div class=\"tbti-lab__controls\">\n          <label>Pen width <input type=\"range\" min=\"4\" max=\"60\" value=\"24\" data-draw-size><\/label>\n          <button class=\"tbti-btn\" data-draw-check>Check now (1 tb-coin)<\/button>\n          <button class=\"tbti-btn tbti-btn--ghost\" data-draw-reset>Reset<\/button>\n          <div class=\"tbti-result\" data-draw-result hidden><\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <!-- So funktioniert es -->\n    <section class=\"tbti-card\" id=\"how\">\n      <h2>How it works<\/h2>\n      <ul class=\"tbti-how\">\n        <li><strong>Mark<\/strong> embeds an invisible signal plus your ID. The image looks the same.<\/li>\n        <li><strong>Check<\/strong> reads out the signal again, even after an image has been passed on, newly compressed or slightly edited.<\/li>\n        <li><strong>The marking service<\/strong> calculates on its own computer. If it is currently off, your order waits until it is back online. You can see the status above.<\/li>\n        <li><strong>Limits, to be honest:<\/strong> no watermark is indestructible. Strong cropping or painting over can remove it. The test lab shows where the limit lies.<\/li>\n        <li><strong>Later:<\/strong> also audio, video and text. Start is image.<\/li>\n      <\/ul>\n    <\/section>\n\n    <!-- Preise -->\n    <section class=\"tbti-card\" id=\"preise\">\n      <h2>Prices<\/h2>\n      <ul class=\"tbti-price\">\n        <li><span>Create account<\/span><strong>000 tb-coin for free<\/strong><\/li>\n        <li><span>Mark image<\/span><strong>10 tb-coin<\/strong><\/li>\n        <li><span>Check image<\/span><strong>1 tb-coin<\/strong><\/li>\n      <\/ul>\n      <p class=\"tbti-price__note\">tb-coin is the credit unit of TB-Software (from Artificial-Payment). If a job fails, you will automatically get your tb-coin back.<\/p>\n    <\/section>\n\n  <\/div>\n\n  <section class=\"tbti-info\" id=\"einordnung\">\n    <h2>Invisible watermarking, provenance tracking and related methods<\/h2>\n    <p>Bilder entstehen, verbreiten sich und ver\u00e4ndern sich heute in Sekunden. Damit wird die Frage nach der Herkunft wichtiger: Stammt ein Bild wirklich von der angegebenen Quelle? TraceInkMarksOrigin beantwortet das mit einem unsichtbaren, pr\u00fcfbaren Wasserzeichen. Es steckt direkt in den Bildpunkten, tr\u00e4gt eine kurze ID und \u00fcbersteht \u00fcbliche Weitergabe, erneutes Speichern und leichte Bearbeitung. Anders als reine Metadaten bleibt es auch dann erhalten, wenn ein Bild ohne Zusatzinformationen weitergereicht wird.<\/p>\n    <p>The same goal, to make the origin of images traceable (often called \"Content Provenance\"), is pursued by several methods in different ways:<\/p>\n    <ul class=\"tbti-related\">\n      <li><strong><a href=\"https:\/\/deepmind.google\/technologies\/synthid\/\" target=\"_blank\" rel=\"noopener\">Google SynthID<\/a><\/strong> embeds an invisible signal into AI-generated images, similar to our approach, but tied to Google's own generators.<\/li>\n      <li><strong><a href=\"https:\/\/c2pa.org\/\" target=\"_blank\" rel=\"noopener\">C2PA<\/a><\/strong> and <strong><a href=\"https:\/\/contentcredentials.org\/\" target=\"_blank\" rel=\"noopener\">Content Credentials<\/a><\/strong> (supported among others by Adobe and the <a href=\"https:\/\/contentauthenticity.org\/\" target=\"_blank\" rel=\"noopener\">Content Authenticity Initiative<\/a>) attach the origin as signed metadata. This is strong as long as all parties participate, but can be lost when an image is re-uploaded without these metadata.<\/li>\n      <li><strong><a href=\"https:\/\/www.digimarc.com\/\" target=\"_blank\" rel=\"noopener\">Digimarc<\/a><\/strong> and <strong><a href=\"https:\/\/truepic.com\/\" target=\"_blank\" rel=\"noopener\">Truepic<\/a><\/strong> offer commercial watermarks and authenticity proofs for media and brands.<\/li>\n      <li>Classic EXIF and IPTC metadata as well as steganography are the precursors to this idea.<\/li>\n    <\/ul>\n    <p>TraceInkMarksOrigin deliberately uses a robust, pixel-based watermark with verifiable ID and a registry. Metadata methods like C2PA complement this well: one survives distribution, the other carries rich origin data. Those who want to prove authorship or label AI content should ideally combine both.<\/p>\n\n    <h3>Frequently asked questions<\/h3>\n    <div class=\"tbti-faq\">\n      <h4>What is an invisible watermark?<\/h4>\n      <p>A signal not visible to the eye that is embedded into the image pixels. It does not perceptibly alter the image but can be read out later and assigned to an ID. This way, you can prove the origin of an image.<\/p>\n      <h4>How does it differ from Google SynthID or C2PA?<\/h4>\n      <p>SynthID primarily marks AI-generated images from specific generators. C2PA and Content Credentials work with metadata that can be lost during sharing. TraceInkMarksOrigin robustly embeds the mark into the pixels, so it remains verifiable even after recompression and sharing.<\/p>\n      <h4>Does the watermark survive editing?<\/h4>\n      <p>Typical sharing, re-saving, and light editing yes. Strong cropping or painting over can remove it. In the test lab above, you can see live where the limit lies. No watermark is indestructible, and we say that openly.<\/p>\n    <\/div>\n  <\/section>\n\n  <p class=\"tbti-footer\">TraceInkMarksOrigin \u00b7 TB-Software \u00b7 <a href=\"mailto:info@tb-software.ch\">info@tb-software.ch<\/a><\/p>\n<\/article>\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-491","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.tb-software.ch\/ai\/index.php?rest_route=\/wp\/v2\/pages\/491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tb-software.ch\/ai\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.tb-software.ch\/ai\/index.php?rest_route=\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tb-software.ch\/ai\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=491"}],"version-history":[{"count":0,"href":"https:\/\/www.tb-software.ch\/ai\/index.php?rest_route=\/wp\/v2\/pages\/491\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tb-software.ch\/ai\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}