{"id":627980,"date":"2026-01-08T18:29:37","date_gmt":"2026-01-08T17:29:37","guid":{"rendered":"https:\/\/es.exxpress.at\/?p=627980"},"modified":"2026-01-08T18:29:37","modified_gmt":"2026-01-08T17:29:37","slug":"raphael-suchomel-ki-erzeugt-nacktbilder-von-minderjaehrigen","status":"publish","type":"post","link":"https:\/\/es.exxpress.at\/meinung\/raphael-suchomel-ki-erzeugt-nacktbilder-von-minderjaehrigen\/","title":{"rendered":"Raphael Suchomel: KI erzeugt Nacktbilder von Minderj\u00e4hrigen"},"content":{"rendered":"<section class=\"wpb-content-wrapper\"><p>[vc_row][vc_column width=&#8221;1\/6&#8243;]\n        <span class=\"article-tag\">\n            Kolumne\n        <\/span>\n    [\/vc_column][vc_column width=&#8221;1\/2&#8243;]<h1 id=\"nativendo-title\" style=\"text-align: left\" class=\"vc_custom_heading article-heading\">Raphael Suchomel: KI erzeugt Nacktbilder von Minderj\u00e4hrigen<\/h1>[vc_column_text el_class=&#8221;article-subheading&#8221;]Vor zwei Jahren war KI-Bildgenerierung noch eine Spielerei, \u00fcber die kaum jemand gesprochen hat. Heute wirken Bilder und sogar Videos so real, dass sie zum Symbol daf\u00fcr geworden sind, wie rasant sich KI insgesamt entwickelt. Dieser Fortschritt ist beeindruckend, doch er hat auch eine Schattenseite. Das zeigt der aktuelle Skandal rund um Grok, die KI von xAI, bei der sexualisierte Bilder realer Menschen, sogar Minderj\u00e4hriger, erzeugt wurden.[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/3&#8243;][\/vc_column][\/vc_row][vc_row el_class=&#8221;article-main-content&#8221;][vc_column width=&#8221;1\/6&#8243;]\n        <div class=\"author-box\">\n            <span class=\"author\">Redaktion<\/span>\n            <time datetime=\"2026-01-08T18:29:37+01:00\">08.01.2026 18:29<\/time>\n        <\/div>\n            <div class=\"share-box\">\n            <a href=\"https:\/\/x.com\/intent\/tweet?url=https%3A%2F%2Fes.exxpress.at%2Fapi%2Fwp%2Fv2%2Fposts%2F627980\" target=\"blank\" class=\"share-icon share-circle-icon share-twitter\"><?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg width=\"100%\" height=\"100%\" viewBox=\"0 0 300 300\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n <path d=\"M178.57 127.15 290.27 0h-26.46l-97.03 110.38L89.34 0H0l117.13 166.93L0 300.25h26.46l102.4-116.59 81.8 116.59h89.34M36.01 19.54H76.66l187.13 262.13h-40.66\"\/>\n<\/svg><\/a>\n            <a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?href=https%3A%2F%2Fes.exxpress.at%2Fapi%2Fwp%2Fv2%2Fposts%2F627980&u=https%3A%2F%2Fes.exxpress.at%2Fapi%2Fwp%2Fv2%2Fposts%2F627980\" target=\"blank\" class=\"share-icon share-circle-icon share-facebook\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-\/\/W3C\/\/DTD SVG 1.1\/\/EN\" \"http:\/\/www.w3.org\/Graphics\/SVG\/1.1\/DTD\/svg11.dtd\">\n<svg width=\"100%\" height=\"100%\" viewBox=\"0 0 28 28\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" xml:space=\"preserve\" xmlns:serif=\"http:\/\/www.serif.com\/\" style=\"fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;\">\n    <g transform=\"matrix(1,0,0,1,-12,-11)\">\n        <path d=\"M31,11.2C30.3,11.1 29.7,11 29,11C28.2,10.9 27.3,10.9 26.5,11.1C25.5,11.3 24.6,11.8 23.8,12.7C23.2,13.4 22.8,14.3 22.5,15.2C22.3,15.9 22.3,16.5 22.3,17.2L22.3,21L18.4,21L18.4,25.7L22.4,25.7L22.4,38.6L27.2,38.6L27.2,25.7L30.7,25.7C30.9,24.1 31.1,22.6 31.4,21L27.4,21L27.4,20.8L27.4,17.8C27.4,17.5 27.4,17.2 27.5,16.9C27.7,16 28.3,15.5 29.1,15.3C29.4,15.2 29.7,15.2 30,15.2L31.8,15.2L31.8,11.2C31.3,11.3 31.1,11.2 31,11.2Z\" style=\"fill-rule:nonzero;\"\/>\n    <\/g>\n<\/svg>\n<\/a>\n            <a href=\"https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=https%3A%2F%2Fes.exxpress.at%2Fapi%2Fwp%2Fv2%2Fposts%2F627980\" target=\"blank\" class=\"share-icon share-circle-icon share-linkedin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"><path d=\"M0 160h114.496v352H0zM426.368 164.128c-1.216-.384-2.368-.8-3.648-1.152a74.218 74.218 0 00-4.64-.896c-6.08-1.216-12.736-2.08-20.544-2.08-66.752 0-109.088 48.544-123.04 67.296V160H160v352h114.496V320s86.528-120.512 123.04-32v224H512V274.464c0-53.184-36.448-97.504-85.632-110.336z\"\/><circle cx=\"56\" cy=\"56\" r=\"56\"\/><\/svg><\/a>\n            <div class=\"mobile-splitter\"><\/div>\n            <a href=\"mailto:?subject=Exxpress: Raphael Suchomel: KI erzeugt Nacktbilder von Minderj\u00e4hrigen&body=https%3A%2F%2Fes.exxpress.at%2Fapi%2Fwp%2Fv2%2Fposts%2F627980\" target=\"blank\" class=\"share-icon share-mail\"><?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<svg version=\"1.1\" id=\"Ebene_1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 50 50\" style=\"enable-background:new 0 0 50 50;\" xml:space=\"preserve\">\n<g>\n\t<path d=\"M1.2,7.7C0.8,8.1,0.6,8.6,0.6,9.1v31.3c0,0.6,0.2,1.1,0.7,1.4c0.4,0.4,0.8,0.6,1.3,0.6h45c0.5,0,1-0.2,1.3-0.6\n\t\ts0.6-0.9,0.6-1.4V9.1c0-0.5-0.2-0.9-0.6-1.4c-0.4-0.4-0.8-0.6-1.3-0.6h-45C2,7.1,1.6,7.3,1.2,7.7z M4.3,13.8l13,11.3l-13,11.6V13.8\n\t\tz M7.5,11.7h34.9L24.9,27.1L7.5,11.7z M8,38.6l12.2-11.1l3.5,3.3l2.4,0.1l3.8-3.4L42,38.6H8z M45.8,36.7l-13-11.6l13-11.3V36.7z\"\/>\n<\/g>\n<\/svg>\n<\/a>\n            \n        <\/div>\n    [\/vc_column][vc_column width=&#8221;1\/2&#8243; el_class=&#8221;article-body&#8221;]\n            <div class=\"featured-image-box\">\n                <a href=\"https:\/\/es.exxpress.at\/media\/2026\/01\/kolumne-vorschau-1270-x-884-px-2.jpg\" data-featherlight=\"image\">\n                    <img decoding=\"async\" class=\"attachment-article_featured_image size-article_featured_image wp-post-image\" src=\"https:\/\/es.exxpress.at\/media\/2026\/01\/kolumne-vorschau-1270-x-884-px-2-635x442.jpg\" srcset=\"https:\/\/es.exxpress.at\/media\/2026\/01\/kolumne-vorschau-1270-x-884-px-2.jpg 2x\">\n                <\/a>\n                <span class=\"tagline\"><span class=\"credits\" style=\"padding-left: 0\">exxpress\/exxpress<\/span><\/span>\n            <\/div>\n        [vc_column_text]In den vergangenen Tagen tauchten auf X massenhaft Bilder auf, die echte Menschen in sexualisierten Situationen zeigten. Teilweise handelte es sich um Prominente, teilweise um Privatpersonen, in besonders heiklen F\u00e4llen sogar um Minderj\u00e4hrige. Die Bilder waren keine klassischen Fotomontagen, sondern vollst\u00e4ndig neu berechnete KI-Bilder. Beh\u00f6rden in mehreren L\u00e4ndern reagierten, Plattformen gerieten unter Druck und die Betreiber mussten einr\u00e4umen, dass Schutzmechanismen versagt hatten.<\/p>\n<p>Wichtig ist dabei eines: Die KI hat niemanden \u201eausgezogen\u201c. Sie hat ein neues Bild erfunden. Ein Bild, das es nie gab, das aber so realistisch aussieht, dass es als echt wahrgenommen wird. Und genau darin liegt die Gefahr.[\/vc_column_text]<h2 style=\"text-align: left\" class=\"vc_custom_heading running-header\">Was wirklich hinter der Schlagzeile steckt<\/h2>[vc_column_text]Wie Sie wissen, ist es mir in meinen Kolumnen wichtig, nicht bei der Emp\u00f6rung stehen zu bleiben, sondern hinter die Schlagzeile zu blicken. Nachdem wir uns bereits mit KI-Bildgenerierung besch\u00e4ftigt haben, m\u00f6chte ich heute auf eine eng damit verbundene Frage schauen: Warum geben manche KI-Systeme nahezu alles aus, was man ihnen vorgibt, w\u00e4hrend andere strikte Grenzen setzen und bestimmte Inhalte konsequent verhindern?<\/p>\n<p>Die Antwort hat weniger mit Magie zu tun als mit Architektur und Entscheidungen. Moderne KI-Modelle bestehen nicht nur aus einem einzigen System. Man kann sie sich eher wie ein Auto vorstellen. Der Motor ist das eigentliche Modell, das Bilder oder Texte erzeugt. Doch entscheidend sind die Bremsen. Diese Bremsen hei\u00dfen in der Fachsprache Safety-Layer. Typischerweise gibt es drei Ebenen:<\/p>\n<p>Erstens, Filter vor der Anfrage. Bevor ein Bild \u00fcberhaupt erzeugt wird, pr\u00fcft ein Klassifikator, ob der Wunsch problematisch ist. Geht es um Nacktheit, Gewalt, reale Personen oder Minderj\u00e4hrige, sollte das System blockieren.<\/p>\n<p>Zweitens, das Training selbst. Viele Modelle werden mit Reinforcement Learning from Human Feedback trainiert. Menschen bewerten Ausgaben und bringen dem Modell bei, wann es sich verweigern soll. Das ist der Grund, warum manche Systeme sehr konsequent ablehnen und andere deutlich lockerer reagieren.<\/p>\n<p>Drittens, Filter nach der Erzeugung. Das fertige Bild wird nochmals gepr\u00fcft. Ist es sexualisiert, wird es verworfen oder unkenntlich gemacht.<\/p>\n<p>Wenn eine dieser Ebenen zu schwach ist oder falsch eingestellt wird, rutscht etwas durch.[\/vc_column_text]<h2 style=\"text-align: left\" class=\"vc_custom_heading running-header\">Warum Schranken umgangen werden k\u00f6nnen<\/h2>[vc_column_text]Trotzdem gibt es immer wieder F\u00e4lle, in denen Nutzer bewusst versuchen, solche Schranken zu umgehen. Das ist kein neues Ph\u00e4nomen. Schon bei Text-KIs wurde fr\u00fch klar, dass Menschen kreative Wege finden, Verbote auszutesten.<\/p>\n<p>Der Grund, warum das \u00fcberhaupt m\u00f6glich ist, liegt in der Natur dieser Systeme. KI versteht keine Moral. Sie erkennt Muster. Wenn Regeln unscharf formuliert sind oder Kontexte mehrdeutig werden, versucht das System, trotzdem eine plausible Antwort zu liefern. Das ist kein b\u00f6ser Wille, sondern mathematische Optimierung. Deshalb ist Sicherheit bei KI kein Schalter, den man einmal umlegt. Sie ist ein permanentes Wettr\u00fcsten.[\/vc_column_text]<h2 style=\"text-align: left\" class=\"vc_custom_heading running-header\">Der gesellschaftliche Wandel<\/h2>[vc_column_text]Der Skandal rund um Grok ist kein Randthema f\u00fcr Techniknerds. Er ber\u00fchrt Grundfragen unseres Zusammenlebens. Digitale Nacktbilder sind kein Spa\u00df. Sie k\u00f6nnen Ruf zerst\u00f6ren, Existenzen besch\u00e4digen und Menschen nachhaltig traumatisieren. Wenn diese Inhalte per Knopfdruck massenhaft erzeugbar werden, verschiebt sich die Machtbalance radikal. Was fr\u00fcher m\u00fchsam und technisch aufwendig war, wird pl\u00f6tzlich skalierbar. Und Skalierung ist immer der Punkt, an dem aus Einzelf\u00e4llen ein gesellschaftliches Problem wird.<\/p>\n<p>Nat\u00fcrlich braucht es klare Regeln. Europa hat mit dem Digital Services Act und dem AI Act m\u00e4chtige Instrumente geschaffen. Plattformen m\u00fcssen Verantwortung \u00fcbernehmen, Risiken minimieren und illegale Inhalte entfernen. Doch hier kommt der unbequeme Teil: Regeln auf Papier reichen nicht aus.<\/p>\n<p>Denn die eigentlichen Grenzen werden nicht in Verordnungen gezogen, sondern im Code. In Trainingsdaten. In Schwellenwerten. In Produktentscheidungen.<\/p>\n<p>Am Ende entscheidet nicht die Politik allein, wie sich KI verh\u00e4lt. Es entscheiden jene, die die Modelle entwickeln, trainieren und betreiben. Wer diese Systeme kontrolliert, definiert, was technisch m\u00f6glich ist und was nicht.<\/p>\n<p>Das ist vergleichbar mit dem V\u00f6lkerrecht, \u00fcber welches die Tage wieder hitzig debattiert wird. Regeln existieren, aber sie wirken nur, wenn man stark genug ist, sie durchzusetzen. Das sehen wir in der internationalen Politik genauso wie in der Technologie. Werte ohne Durchsetzungskraft bleiben Appelle.[\/vc_column_text]<h2 style=\"text-align: left\" class=\"vc_custom_heading running-header\">Europas eigentliche Aufgabe<\/h2>[vc_column_text]Wenn Europa nicht nur reagieren will, sondern gestalten, dann m\u00fcssen wir mehr tun, als zu regulieren. Wir m\u00fcssen eigene KI-Systeme bauen. Eigene Sicherheitsstandards entwickeln. Eigene Infrastruktur betreiben. Nicht, weil wir anderen misstrauen sollten. Sondern weil man nur dann wirklich souver\u00e4n ist, wenn man selbst gestalten kann. Wer keine eigene KI entwickelt, \u00fcbernimmt am Ende fremde Werte, fremde Priorit\u00e4ten und fremde Risiken.<\/p>\n<p>Der Grok-Skandal ist kein technischer Ausrutscher, sondern ein Spiegel. Er zeigt, wie m\u00e4chtig KI geworden ist und wie zentral die Frage nach Kontrolle ist. KI wird bleiben, sie wird besser und sie wird \u00fcberall sein. Die eigentliche Entscheidung lautet deshalb nicht, ob wir das wollen, sondern wer bestimmt, wie sie eingesetzt wird. Denn eines ist sicher: Nur wer KI baut und innovativ vorangeht, setzt auch die Regeln. Wer nicht baut, hat auch kein Mitspracherecht dar\u00fcber, wie KI handeln darf.[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/3&#8243;]<div class=\"ad-container\"><div id=\"adnz_rectangle_1\" style=\"padding-top: 0;\"><\/div><\/div><div class=\"ad-container sticky\" style=\"padding-top: 0;\"><div id=\"adnz_halfpage_2\"><\/div><\/div>[\/vc_column][\/vc_row][vc_row][vc_column width=&#8221;1\/6&#8243;][\/vc_column][vc_column width=&#8221;5\/6&#8243;]<div class=\"footer-hook\"><div class=\"move-to-article\">  <details class=\"mollie-donation-modal\" open>\n    <summary>Dein Beitrag z\u00e4hlt \u2013 jetzt spenden!<\/summary>\n    <div class=\"mollie-donation-backdrop\" onclick=\"var modal = document.querySelector('.mollie-donation-modal'); modal.removeAttribute('data-modal-opened')\"><\/div>\n    <div class=\"mollie-donation-form-holder\" id=\"donation\">\n      <div class=\"mollie-donation-close-button\" onclick=\"var modal = document.querySelector('.mollie-donation-modal'); modal.removeAttribute('data-modal-opened')\"><\/div>\n      <p style=\"padding: 0 30px; line-height: 1.3;\">Mit deinem Beitrag schaffen wir Raum f\u00fcr Journalismus, der einordnet, hinterfragt und sichtbar macht, was wirklich z\u00e4hlt.<\/p>\n      <form class=\"mollie-donation\">\n          <div style=\"display: flex; justify-content: center;\">\n            <div class=\"donate-type-btn-holder\">\n                <button type=\"button\" class=\"donate-select-btn\" value=\"onetime\">Einmalig<\/button>\n                <button type=\"button\" class=\"donate-select-btn selected\" value=\"monthly\">Monatlich<\/button>\n                <button type=\"button\" class=\"donate-select-btn\" value=\"yearly\">J\u00e4hrlich<\/button>\n            <\/div>\n          <\/div>\n          <input type=\"email\" name=\"mail\" placeholder=\"E-Mail Adresse*\" required\/>\n          <div class=\"donate-btn-holder\">\n              <button type=\"button\" class=\"donate-select-btn\" value=\"10\">10\u20ac<\/button>\n              <button type=\"button\" class=\"donate-select-btn selected\" value=\"20\">20\u20ac<\/button>\n              <button type=\"button\" class=\"donate-select-btn\" value=\"100\">100\u20ac<\/button>\n              <div class=\"flex-break\"><\/div>\n              <button type=\"button\" class=\"donate-select-btn\" value=\"free\">Anderer Betrag<\/button>\n          <\/div>\n          <input class=\"hidden\" type=\"number\" min=\"2\" step=\"1\" value=\"20\" required\/>\n          <label class=\"checkbox-label hidden privacy-label\">\n              <input type=\"checkbox\" name=\"privacy\" required\/>\n              Ich akzeptiere die <a href=\"https:\/\/es.exxpress.at\/datenschutzerklaerung\/\" target=\"_blank\">Datenschutzvereinbarung<\/a>.*\n          <\/label>\n          <label class=\"checkbox-label hidden newsletter-label\">\n              <input type=\"checkbox\" name=\"newsletter\"\/>\n              Bitte halte mich auf dem Laufenden. Ich m\u00f6chte den Newsletter erhalten.\n          <\/label>\n          <a target=\"_blank\" class=\"disabled\" href=\"\" type=\"button\">Dein Beitrag z\u00e4hlt \u2013 jetzt spenden!<\/a>\n      <\/form>\n    <\/div>\n  <\/details>\n          <style>\ndetails.mollie-donation-modal summary {\n  --background: var(--category_bg_color);\n  --border-color: var(--category_bg_color);\n  --color: var(--category_tertiary_color);\n\n  --hover-background: var(--category_tertiary_color);\n  --hover-color: var(--category_bg_color);\n\n  margin: calc(var(--gutter-width-bottom)) auto;\n  transition: background-color 300ms, color 300ms;\n  border: 2px solid var(--border-color);\n  background: var(--background);\n  color: var(--color);\n  padding: 0.5em 1em;\n  font-size: 1em;\n  font-family: Blacker Sans Text;\n  font-weight: 900;\n  text-decoration: none;\n  display: inline-block;\n  cursor: pointer;\n  width: max-content;\n  display: block;\n}\ndetails.mollie-donation-modal summary:hover,\ndetails.mollie-donation-modal[open] summary {\n  background: var(--hover-background);\n  color: var(--hover-color);\n}\ndetails.mollie-donation-modal[data-modal-opened] {\n\n}\ndetails.mollie-donation-modal[data-modal-opened] summary {\n  display: none;\n}\n.mollie-donation-form-holder {\n  --don-bg-color: #fffbf8;\n  --don-border-color: #5e2c4f;\n  --don-color: rgb(26, 25, 25);\n  border: 2px solid var(--don-border-color);\n  background: var(--don-bg-color);\n  color: var(--don-color);\n  padding: 10px 15px;\n  margin-bottom: 15px;\n  position: relative;\n}\n.mollie-donation-form-holder h3 {\n  font-size: 18px;\n  text-align: center;\n  font-weight: bold;\n  margin-top: 5px;\n  margin-bottom: 10px;\n}\n.mollie-donation-form-holder p {\n  max-width: 455px;\n  text-align: center;\n  margin: 0 auto;\n  margin-bottom: 10px;\n}\nform.mollie-donation {\n  max-width: 100%;\n  margin: 0 auto;\n  text-align: center;\n}\nform.mollie-donation input[type=\"checkbox\"] {\n    font-size: 16px;\n}\nform.mollie-donation input[type=\"number\"],\nform.mollie-donation input[type=\"email\"],\nform.mollie-donation select {\n  font-family: 'Blacker Sans';\n  width: 190px;\n  border: none;\n  outline: none;\n  padding: 4px 8px;\n  background: white;\n  font-size: 18px;\n  text-align: center;\n  margin: 0 auto;\n  display: block;\n  border-bottom: 2px solid var(--don-border-color);\n}\nform.mollie-donation .donate-btn-holder {\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n  flex-wrap: wrap;\n  padding: var(--gutter-width-bottom);\n  max-width: 360px;\n  margin: 0 auto;\n}\nform.mollie-donation .donate-btn-holder .flex-break {\n  min-width: 100%;\n  height: 0px; max-height: 0px; margin: 0; padding: 0;\n}\nform.mollie-donation .donate-btn-holder button {\n  font-size: 16px;\n  border-width: 1px;\n  margin: calc(var(--gutter-width-bottom) \/ 4) calc(var(--gutter-width) \/ 4);\n}\nform.mollie-donation .donate-btn-holder button.selected {\n  cursor: pointer;\n  background: var(--hover-background);\n  color: var(--hover-color);\n}\nform.mollie-donation .donate-type-btn-holder {\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n  flex-wrap: wrap;\n  padding: var(--gutter-width-bottom);\n  margin-top: 10px;\n  gap: 1px;\n  padding: 1px;\n  background-color: var(--don-border-color);\n}\nform.mollie-donation .donate-type-btn-holder button {\n  font-size: 14px;\n  margin: 0;\n  border: none;\n  background-color: var(--don-bg-color);\n}\nform.mollie-donation .donate-type-btn-holder button.selected {\n  cursor: pointer;\n  background: var(--hover-background);\n  color: var(--hover-color);\n}\nform.mollie-donation input[type=\"email\"] {\n  width: 100%;\n  max-width: 320px;\n  margin-top: 20px;\n}\nform.mollie-donation select {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\nform.mollie-donation input[type=\"number\"] {\n  width: 100px;\n  margin-bottom: var(--gutter-width-bottom);\n  margin-top: calc(var(--gutter-width-bottom) * -1);\n}\nform.mollie-donation input[type=\"number\"] ~ small.num-input-error {\n    display: block;\n    margin-top: calc(var(--gutter-width-bottom) * -1);\n    margin-bottom: var(--gutter-width-bottom);\n    color: red;\n}\nform.mollie-donation input[type=\"number\"].hidden {\n  display: none;\n}\nform.mollie-donation button, form.mollie-donation a[type=\"button\"] {\n  margin: 0 auto;\n  display: block;\n  --border-color: var(--don-border-color);\n  --hover-background: #5e2c4f;\n  --color: var(--don-color);\n  --hover-color: #e0d2d8;\n  transition: background-color 300ms, color 300ms;\n  border: 1px solid var(--border-color);\n  background: var(--background);\n  color: var(--color);\n  padding: .3em 1em;\n  padding-bottom: .37em;\n  font-size: 1em;\n  font-family: Blacker Sans Text;\n  font-weight: 900;\n  text-decoration: none;\n  margin-bottom: 10px;\n}\nform.mollie-donation a[type=\"button\"] {\n    --border-color: white;\n    --hover-background: white;\n    --color: white;\n    --hover-color: #c03;\n    background: #c03;\n}\nform.mollie-donation a[type=\"button\"] {\n    display: inline-block;\n}\nform.mollie-donation button.disabled, form.mollie-donation a[type=\"button\"].disabled {\n    opacity: 0.5;\n}\nform.mollie-donation .checkbox-label:not(.hidden) ~ button,\nform.mollie-donation .checkbox-label:not(.hidden) ~ a[type=\"button\"] {\n    margin-top: var(--gutter-width-bottom);\n}\nform.mollie-donation button:disabled {\n  opacity: 0.5;\n}\nform.mollie-donation button:hover,\nform.mollie-donation a[type=\"button\"]:not(.disabled):hover {\n  cursor: pointer;\n  background: var(--hover-background);\n  color: var(--hover-color);\n}\nform.mollie-donation .checkbox-label {\n  display: block;\n  margin-bottom: 3px;\n  text-align: center;\n}\nform.mollie-donation .checkbox-label a {\n  color: inherit;\n}\nform.mollie-donation .checkbox-label.hidden {\n  display: none;\n}\n.mollie-donation-modal {\n  display: block;\n}\n.mollie-donation-modal[data-modal-opened] {\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  background-color: rgba(255,255,255,0.7);\n  z-index: 10000;\n  -webkit-transition: opacity 0.5s ease-in-out;\n  -moz-transition: opacity 0.5s ease-in-out;\n  -ms-transition: opacity 0.5s ease-in-out;\n  -o-transition: opacity 0.5s ease-in-out;\n  transition: opacity 0.5s ease-in-out;\n}\n.mollie-donation-backdrop {\n  display: block;\n}\n.mollie-donation-modal[data-modal-opened] .mollie-donation-form-holder {\n  margin: 10px;\n  width: max-content;\n  position: absolute;\n  right: 50%;\n  bottom: 50%;\n  transform: translate(50%, 50%);\n}\n.mollie-donation-modal[data-modal-opened] .mollie-donation-backdrop {\n  position: absolute;\n  top: 0px;\n  left: 0px;\n  width: 100%;\n  height: 100%;\n}\n.mollie-donation-close-button {\n  position: absolute;\n  top: 10px;\n  right: 10px;\n  cursor: pointer;\n  width: 20px;\n  height: 20px;\n  display: flex;\n  align-self: center;\n  justify-content: center;\n  display: none;\n}\n.mollie-donation-modal[data-modal-opened] .mollie-donation-close-button {\n  display: flex;\n}\n.mollie-donation-close-button::after {\n  content: \"\";\n  display: block;\n  width: 2px;\n  height: 20px;\n  background-color: #333;\n  transform: rotate(45deg);\n  position: absolute;\n  top: 0;\n  left: 9px;\n}\n.mollie-donation-close-button::before {\n  content: \"\";\n  display: block;\n  width: 2px;\n  height: 20px;\n  background-color: #333;\n  transform: rotate(-45deg);\n}\n\n\/* Modal open *\/\ndetails.mollie-donation-modal > summary{\n  list-style: none;\n  pointer-events: none;\n  cursor: default;\n  display:none;\n}\ndetails.mollie-donation-modal > summary::-webkit-details-marker{\n  display: none;\n}\n\n.mollie-donation-backdrop,\n.mollie-donation-close-button{\n  display: none !important;\n}\n\ndetails.mollie-donation-modal[data-modal-opened]{\n  position: static;\n  width: auto;\n  height: auto;\n  background: none;\n  display: block;            \n}\n        <\/style>\n    \n          <script>\n          window.addEventListener('load', () => {\n            (($) => {\n                $(() => {\n                    const loadingSpinner = `<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" style=\"margin: auto; background: none; display: block; shape-rendering: auto;width: 30px;height: 30px;padding-top: 3px;margin-bottom: 3px;\" width=\"48px\" height=\"48px\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\"><circle cx=\"50\" cy=\"50\" fill=\"none\" stroke=\"var(--category_tertiary_color)\" style=\"stroke: var(--category_tertiary_color)\" r=\"40\" stroke-dasharray=\"188.49555921538757 64.83185307179586\" stroke-width=\"11\"><animateTransform attributeName=\"transform\" type=\"rotate\" repeatCount=\"indefinite\" dur=\"1s\" values=\"0 50 50;360 50 50\" keyTimes=\"0;1\"><\/animateTransform><\/circle><\/svg>`;\n                    jQuery('.mollie-donation-modal:not(:eq(0))').remove();\n\n                    $( document ).ready(function() {\n                      var mdf = localStorage.getItem(\"mollie-donation-form\");\n                      if(mdf === null) {\n                        setTimeout(function() {\n                          \/\/ $(\".mollie-donation-modal\").attr(\"data-modal-opened\", \"\");\n                          \/\/ $(\".mollie-donation-modal\").attr(\"open\", \"\");\n                          localStorage.setItem(\"mollie-donation-form\", true);\n                        }, 2000);\n                      }\n                    });\n\n                    const $form = $('form.mollie-donation');\n                    if ($form.length > 0) {\n                        const $numInput = $form.find('input[type=\"number\"]')\n                        const default_value = 10;\n    \n                        $form.find('.donate-btn-holder button').removeClass('selected');\n                        $form.find('.donate-btn-holder button[value=\"' + default_value + '\"]').addClass('selected');\n                        $numInput.val(default_value);\n                        $form.find('input[type=\"email\"]').val('')\n                        $form.find('.checkbox-label input').prop('checked', false);\n    \n                        $form.find('input[type=\"email\"]').on('input', e => {\n                            if (e.delegateTarget.checkValidity()) {\n                                $form.find('.privacy-label').removeClass('hidden');\n                            }\n                        })\n    \n                        $form.find('.privacy-label input').on('change', e => {\n                            $form.find('.newsletter-label').removeClass('hidden');\n                        })\n    \n                        const removeNumInputError = (msg) => {\n                            $form.find('.num-input-error').remove();\n                        }\n                        const addNumInputError = (msg) => {\n                            removeNumInputError();\n                            $numInput.after(`<small class=\"num-input-error\">${msg}<\/small>`);\n                        }\n                        $numInput.on('change', e => {\n                            removeNumInputError();\n                            const $target = $(e.delegateTarget);\n                            const newValue = $target.val();\n                            if(Number.parseInt(newValue).toString() !== newValue) {\n                                $target.val(Number.parseInt(newValue));\n                                addNumInputError('Betrag muss rund und gr\u00f6\u00dfer 2\u20ac sein');\n                            } else if (Number.parseInt(newValue) < 2) {\n                                $target.val(2);\n                                addNumInputError('Betrag muss gr\u00f6\u00dfer 2\u20ac sein');\n                            }\n                        })\n    \n                        $form.find('.donate-btn-holder button').on('click', e => {\n                            $form.find('.donate-btn-holder button').removeClass('selected');\n                            const selected_value = $(e.delegateTarget).attr('value');\n                            $form.find('.donate-btn-holder button[value=\"' + selected_value + '\"]').addClass('selected');\n                            if (selected_value === 'free') {\n                                \/\/ $numInput.removeClass('hidden');\n                            } else {\n                              $numInput.addClass('hidden');\n                              $numInput.val(selected_value);\n                            }\n                            $form.change();\n                        });\n\n                        $form.find('.donate-type-btn-holder button').on('click', e => {\n                            $form.find('.donate-type-btn-holder button').removeClass('selected');\n                            const selected_value = $(e.delegateTarget).attr('value');\n                            $form.find('.donate-type-btn-holder button[value=\"' + selected_value + '\"]').addClass('selected');\n                            if (selected_value === 'free') {\n                              \/\/ some code\n                            } else {\n                              \/\/ $numInput.addClass('hidden');\n                              \/\/ $numInput.val(selected_value);\n                              \/\/ $form.change()\n                            }\n                            $form.change();\n                        });\n    \n                        const setDonateButtonUrl = () => {\n                            const type = jQuery('.donate-type-btn-holder .donate-select-btn.selected').attr('value');\n                            const amount = jQuery('.donate-btn-holder .donate-select-btn.selected').attr('value');\n                            const rawMail = $form.find('input[type=\"email\"]').val();\n                            const mail = encodeURIComponent(rawMail);\n                            const newsletter = $form.find('.newsletter-label input').is(':checked') ? '1' : '0';\n                            const page = site.post.id;\n                            const categories = encodeURIComponent(JSON.stringify(site.post.categories));\n                            console.log('should be setting to amount', amount)\n                            const amountUrlMapping = {\n                              onetime: {\n                                '5': 'https:\/\/buy.stripe.com\/8wMbKR6pi4tm2pa9AA',\n                                '10': 'https:\/\/buy.stripe.com\/4gw8yFeVOcZS1l69AB',\n                                '20': 'https:\/\/buy.stripe.com\/7sIcOV6pibVO7Ju8wy',\n                                '100': 'https:\/\/buy.stripe.com\/6oEcOV4ha1ha2pa3cf',\n                                'free': 'https:\/\/buy.stripe.com\/7sIaGN9BuaRK4xi5ko',\n                              },\n                              monthly: {\n                                '5': 'https:\/\/buy.stripe.com\/28o0297tm3pigg0dQW',\n                                '10': 'https:\/\/buy.stripe.com\/eVaaGN9Bue3W3te7sC',\n                                '20': 'https:\/\/buy.stripe.com\/aEUbKRdRKgc42pa8wF',\n                                '100': 'https:\/\/buy.stripe.com\/4gwg179BubVO4xi7sD',\n                                'free': 'https:\/\/buy.stripe.com\/14k5mt9Bu5xq6Fq28g',\n                              },\n                              yearly: {\n                                '5': 'https:\/\/buy.stripe.com\/14k16d7tmf809RCfZa',\n                                '10': 'https:\/\/buy.stripe.com\/8wMbKRcNG7FyfbW4gt',\n                                '20': 'https:\/\/buy.stripe.com\/00g8yF14Y2leaVGaES ',\n                                '100': 'https:\/\/buy.stripe.com\/dR67uB8xq4tmgg0bIX',\n                                'free': 'https:\/\/buy.stripe.com\/dR6dSZcNG4tm0h228o',\n                              }\n                            }\n                            \/\/ for (const amount in amountUrlMapping[type]) {\n                            \/\/   amountUrlMapping[type][amount] ? $form.find(`.donate-select-btn[value=\"${amount}\"]`).show() : $form.find(`.donate-select-btn[value=\"${amount}\"]`).hide();\n                            \/\/ }\n                            $form.find('a[type=\"button\"]').attr('href', amountUrlMapping[type][amount]);\n                            $('a[type=\"button\"]').off('click');\n                        \n                            if ($form[0].checkValidity() && amountUrlMapping[type][amount]) {\n                                $form.find('a[type=\"button\"]').removeClass('disabled')\n\n                                $('a[type=\"button\"]').on('click', e => {\n                                    \/\/ In a timeout, so the href keeps being the right one while the a click is handled by the browser\n                                    setTimeout(() => {\n                                        if(mauticApi && typeof mauticApi.send === 'function')\u00a0{\n                                            console.log('Sending to mautic ', {email: rawMail, is_newsletter: newsletter})\n                                            mauticApi.send({email: rawMail, is_newsletter: newsletter, source: \"Spende\"});\n                                        }\n                                        if (typeof gtag === 'function') {\n                                            gtag('event', 'donation_submitted', {\n                                                event_category: 'donation',\n                                                event_label: 'form_submitted',\n                                                value: Number.parseInt(amount),\n                                                post: page,\n                                                category_slugs: categories,\n                                            });\n                                        }\n                                        \/*\n                                        Modal bleibt offen\n                                        $(\".mollie-donation-modal\").removeAttr(\"data-modal-opened\");\n                                        $(\".mollie-donation-modal\").removeAttr(\"open\");*\/\n                                        $form.find('button[value=\"' + default_value + '\"]').click()\n                                        $form.find('input[type=\"email\"]').val('')\n                                        $form.find('.checkbox-label').addClass('hidden');\n                                        $form.find('.checkbox-label input').prop('checked', false);\n                                        $form.change();\n                                    }, 100);\n                                });\n                            } else {\n                                $('a[type=\"button\"]').on('click', e => {\n                                    e.preventDefault();\n                                    $form[0].reportValidity();\n                                });\n                                $form.find('a[type=\"button\"]').addClass('disabled')\n                            }\n                        }\n                        setDonateButtonUrl();\n    \n                        $form.on('change', setDonateButtonUrl);\n                    }\n                });\n            })(jQuery);\n          });\n        <\/script>\n    <\/div><\/div>[\/vc_column][\/vc_row]<\/p>\n<\/section>","protected":false},"excerpt":{"rendered":"<p>Vor zwei Jahren war KI-Bildgenerierung noch eine Spielerei, \u00fcber die kaum jemand gesprochen hat. Heute wirken Bilder und sogar Videos so real, dass sie zum Symbol daf\u00fcr geworden sind, wie rasant sich KI insgesamt entwickelt. Dieser Fortschritt ist beeindruckend, doch er hat auch eine Schattenseite. Das zeigt der aktuelle Skandal rund um Grok, die KI von xAI, bei der sexualisierte Bilder realer Menschen, sogar Minderj\u00e4hriger, erzeugt wurden.<\/p>\n","protected":false},"author":13,"featured_media":626188,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":"","_wp_rev_ctl_limit":""},"categories":[12],"tags":[],"class_list":["post-627980","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-meinung"],"acf":[],"_links":{"self":[{"href":"https:\/\/es.exxpress.at\/api\/wp\/v2\/posts\/627980","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es.exxpress.at\/api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/es.exxpress.at\/api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/es.exxpress.at\/api\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/es.exxpress.at\/api\/wp\/v2\/comments?post=627980"}],"version-history":[{"count":3,"href":"https:\/\/es.exxpress.at\/api\/wp\/v2\/posts\/627980\/revisions"}],"predecessor-version":[{"id":627983,"href":"https:\/\/es.exxpress.at\/api\/wp\/v2\/posts\/627980\/revisions\/627983"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/es.exxpress.at\/api\/wp\/v2\/media\/626188"}],"wp:attachment":[{"href":"https:\/\/es.exxpress.at\/api\/wp\/v2\/media?parent=627980"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/es.exxpress.at\/api\/wp\/v2\/categories?post=627980"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/es.exxpress.at\/api\/wp\/v2\/tags?post=627980"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}