Vai al contenuto

Note di rilascio

Le modifiche all’API e alla dashboard, dalla più recente. L’API v1 è congelata: le modifiche incompatibili arrivano solo in una nuova versione, annunciata con 12 mesi di anticipo.

: Kennmarq.com in tedesco, francese e italiano

  • La home page con la sua mappa, i prezzi, la registrazione e l’accesso, il verificatore, l’indice delle leggi e le pagine delle leggi e dei paesi dell’UE, della Francia e dell’Italia in tedesco (/de), francese (/fr) e italiano (/it); il resto del sito arriverà. I termini di servizio, l’informativa sulla privacy e l’accordo sul trattamento dei dati restano in inglese, il testo vincolante.
  • L’articolo sul 2 dicembre, in tedesco: KI-Verordnung, Art. 50.
  • In Leggi sui contenuti IA la riga di ogni legge mostra ora la copertura propria di quella legge, come la sua pagina. Prima mostrava quella del suo paese, quindi alcune righe indicavano «Copertura completa» per file che aspettano gli avvisi vocali o le etichette con le parole di una legge.
  • Ogni pagina di legge e di paese, la documentazione, il riferimento dell’API, le guide alle leggi, il Trust Center e il registro di trasparenza anche in tedesco, francese e italiano; e le email di un account creato in una di queste lingue arrivano in quella lingua.
  • La dashboard nella lingua del tuo account, che cambi nelle impostazioni, e i termini di servizio, l’informativa sulla privacy, l’accordo sul trattamento dei dati e l’elenco dei sub-responsabili del trattamento tradotti per cortesia: il testo vincolante resta quello inglese.

: Registrazione aperta, accesso con GitHub e strumenti per gli agenti di programmazione

  • La registrazione è aperta: un account con la tua email, oppure Continua con GitHub, che crea l’account e ti fa creare subito una chiave.
  • Un server MCP senza chiave su https://api.kennmarq.com/mcp: cosa chiedono a un file le leggi di ogni mercato, e il codice per ogni stack. È nel registro MCP ufficiale come com.kennmarq/kennmarq, e il kit per agenti (uno skill, una regola Cursor, un plugin Claude Code e un’estensione Gemini) è su GitHub.
  • @kennmarq/ai-sdk: un middleware per il Vercel AI SDK che marca le immagini, il parlato e i video che restituisce.
  • Una pagina per ogni legge, come l’articolo 50 dell’AI Act, e per ogni paese con una legge o una bozza; e il blog (in inglese), che parte dalla scadenza del 2 dicembre per i sistemi di IA già sul mercato dell’UE.
  • I nodi ComfyUI 0.2.2: una scheda più chiara nel ComfyUI Registry e due workflow di esempio.

: Le norme di altri paesi sulla mappa delle leggi

  • Azerbaigian: dal 6 maggio 2026 foto, video e audio creati con l’IA e mostrati pubblicamente online richiedono un contrassegno chiaro. Con markets=az, immagini e clip ricevono l’etichetta visibile; i brani vengono rifiutati finché non arriveranno gli avvisi vocali (dicembre 2026).
  • Nuove norme solo per alcuni contenuti, sulla mappa e nella pagina Leggi sui contenuti IA: emittenti e stampa in Romania, Slovenia, Armenia, Maldive, Benin e Senegal; materiale elettorale in Israele, Messico (immagini e voci di minori), Kentucky e Mississippi, e in Giappone dal 1° marzo 2027. Disegni di legge in Angola, Argentina, Cile, Colombia, Ecuador e Romania.
  • Note per altri 17 paesi, come i reati di «montaggio» in Benin, Gibuti, Guinea e Mali, a cui un montaggio sfugge se dichiara che cos’è. Il disegno di legge spagnolo sulla governance dell’IA è decaduto con lo scioglimento del parlamento.
  • Dove non abbiamo trovato alcuna norma, la mappa lo dice: «Nessuna norma trovata».

: Ogni paese è un mercato, e la mappa mondiale

  • markets su POST /v1/mark accetta il codice ISO di qualsiasi paese (de, jp, br), oltre a eu, agli Stati USA e a us. Uno Stato membro dell’UE riceve le norme dell’AI Act e le proprie; un paese in cui non abbiamo trovato alcuna norma sull’etichettatura dei contenuti IA riceve entrambe le marcature, e la sua ricevuta indica che non è stata trovata alcuna norma. Le chiamate per la Cina, e quelle per i deepfake del Vietnam, vengono rifiutate finché non aggiungeremo ciò che chiedono le loro norme.
  • La mappa della pagina iniziale e la pagina Leggi sui contenuti IA: le norme di ogni paese, cosa chiede ciascuna per immagini, video, audio, testo e 3D, quando si applica e cosa aggiunge una chiamata, con le date delle prossime novità. Le fonti sono siti istituzionali.

: I nodi ComfyUI nel ComfyUI Registry

  • I nodi ComfyUI sono nel ComfyUI Registry come comfyui-kennmarq: installali da ComfyUI-Manager (cerca «Kennmarq.com») o con comfy node install comfyui-kennmarq.
  • L’SDK Python 0.2.1: anche in modalità locale, un’immagine molto dettagliata o rumorosa salvata come JPEG viene marcata invece di generare un errore.

: L’SDK JavaScript, e l’SDK Python su PyPI

  • L’SDK JavaScript, npm install @kennmarq/sdk: marcatura, controllo e verifica da Node.js 20 o successivo, Next.js, Bun, Deno e runtime edge, con i tipi e senza dipendenze. I file oltre 4 MB passano da un upload, e l’SDK attende il job di una clip.
  • L’SDK Python è su PyPI: pip install kennmarq, e pip install "kennmarq[local]" per la modalità locale.
  • Un’immagine molto dettagliata o rumorosa salvata come JPEG viene marcata invece di generare un errore.

: Etichette visibili, Corea del Sud e India

  • label=true su POST /v1/mark disegna l’etichetta visibile dell’UE in un’immagine o in ogni fotogramma di una clip, prima della filigrana: «AI GENERATED», o «AI MODIFIED» per le modifiche, in inglese, coreano o cinese, in qualsiasi angolo, in tre dimensioni e nei quattro stili del codice. Il manifest la registra, e il verificatore la mostra.
  • deepfake=true attiva l’etichetta, come chiede l’art. 50, par. 4, dell’AI Act per i deepfake.
  • Due nuovi mercati: kr (AI Basic Act della Corea del Sud, l’etichetta per i deepfake) e in (IT Rules 2026 dell’India, l’etichetta su ogni immagine e clip, e app_name obbligatorio). Le ricevute riportano l’etichetta.

: Il verificatore legge le immagini larghe

  • La pagina Verifica un’immagine legge la filigrana di un’immagine larga più del doppio della sua altezza, o alta più del doppio della sua larghezza, come un banner o uno screenshot del telefono: cerca nel quadrato centrale, dove TrustMark inserisce la marcatura.

: POST /v1/verify legge le immagini ruotate

  • POST /v1/verify legge la nostra filigrana anche a ogni quarto di giro: un’immagine salvata di lato o capovolta riconduce comunque alle sue Content Credentials.
  • Una filigrana TrustMark che non è nostra viene mostrata solo quando dal centro dell’immagine si legge esattamente la stessa, così un’immagine senza marcatura non ne mostra più una per caso, sia nei risultati sia nei risultati firmati.

: Mercati e ricevute

  • Un nuovo campo markets su POST /v1/mark e nell’SDK Python: eu, us-ca, us-wa, us-ut o us. Una chiamata priva di quanto richiesto da quelle leggi viene rifiutata, prima che qualsiasi cosa venga marcata o conteggiata.
  • Una marcatura creata con markets ha una ricevuta: cosa contiene il suo file per ciascuna legge e cosa resta a tuo carico, firmata con la chiave del nostro verificatore se la richiedi.

: Il verificatore legge le immagini ruotate

  • La pagina Verifica un’immagine legge la nostra filigrana anche a ogni quarto di giro, come sa fare il decodificatore di TrustMark: un’immagine salvata di lato riconduce comunque alle sue Content Credentials.
  • Una filigrana TrustMark che non è nostra viene mostrata solo quando dal centro dell’immagine si legge esattamente la stessa, così un’immagine senza marcatura non ne mostra più una per caso.

: La dichiarazione latente prevista in California

  • Due nuovi campi su POST /v1/mark, nell’SDK Python e nei nodi ComfyUI: provider, la tua denominazione legale, e app_version, la versione del tuo sistema di IA accanto ad app_name. Con l’ora, gli ID univoci e l’origine che registriamo già, una marcatura contiene tutti e cinque gli elementi della dichiarazione latente prevista in California.
  • Senza app_name, un manifest non indica più noi come sistema di IA che ha creato il contenuto: non ne indica nessuno.
  • Il verificatore e POST /v1/verify mostrano il fornitore, il sistema di IA e la sua versione, il modello e l’ora di creazione: un nuovo oggetto origin nel risultato.
  • Nuove guide: l’AI Act dell’UE e il California AI Transparency Act.

: Il piano Free: uno per persona

  • Le 1.000 marcature al mese del piano Free sono un’unica quota per persona: le riceve la tua prima organizzazione, e ogni altra che crei parte senza marcature finché non ha un piano a pagamento (lo indica 402 quota_exceeded).
  • Le chiavi di test nel piano Free hanno 100 marcature e 100 MB al mese; nei piani a pagamento, quanto quelle di produzione. I nuovi account hanno un tetto giornaliero sull’intero servizio; superato il tetto, le registrazioni riaprono alle 00:00 UTC.

: Limiti per organizzazione

  • Le chiamate al minuto del piano valgono per l’intera organizzazione, tutte le sue chiavi insieme. Marcature e controlli che falliscono dopo che ci abbiamo lavorato hanno un tetto giornaliero per organizzazione.
  • I limiti per indirizzo contano un indirizzo IPv6 per il suo /64. Senza chiave, l’intero servizio risponde al massimo a 5.000 verifiche al giorno (500 firmate); con una chiave (gratuita), le verifiche contano per le chiamate al minuto della tua organizzazione. L’SDK Python attende quando un 429 chiede di aspettare un minuto o meno.

: Limiti delle clip

  • Una clip contiene fino a 4.500 fotogrammi (2,5 minuti a 30 fotogrammi al secondo, 75 secondi a 60): quanto riusciamo a marcare nel tempo di un job. La forza della filigrana di una clip piatta ora viene scelta da un campione prima di marcare ogni fotogramma, quindi basta un solo passaggio.
  • Ogni piano marca alcune clip in contemporanea (Free 1, Indie 2, Startup 3, Scale 5), e le clip che falliscono dopo che ci abbiamo lavorato hanno un tetto giornaliero. Oltre l’uno o l’altro limite, 429 rate_limited con Retry-After.

: Download delle clip

  • Il file di una clip terminata viene conservato per un giorno, e ogni link di download funziona per 5 minuti, fino a 5 link per clip. Se lo richiedi di nuovo entro i 5 minuti di un link, ottieni la stessa scadenza di quel link. Ogni link dopo il primo conta la dimensione del file nei dati del mese. Nuovi campi: download_links_left e download_error.
  • Le clip marcate vengono restituite con un video fino a 20 Mbit/s.

: Brani e clip

  • POST /v1/mark marca i brani: MP3, WAV e M4A fino a 15 minuti, con AudioSeal di Meta nel suono, modellato sotto la musica così che nessuno lo senta, e Content Credentials firmate e con marca temporale. Un brano conta cinque marcature per ogni minuto iniziato. Nuovi header: X-Marks-Counted e X-Audio-Watermark.
  • E le clip: MP4 fino a 5 minuti a 1080p, con Video Seal di Meta in ogni fotogramma, che porta un ID che riconduce alla credenziale durevole della clip, e AudioSeal nel suo audio. Una clip è un job: 202, poi GET /v1/marks/{id} per lo stato e un link di download. Una clip conta cinque marcature per ogni secondo iniziato; il suo controllo di sicurezza legge 12 fotogrammi, due marcature ciascuno.
  • Gli upload accettano una clip fino a 1 GB. POST /v1/verify legge brani e clip, e POST /v1/check le clip. Un nuovo evento webhook, mark.failed, per una clip il cui job non è riuscito.
  • L’SDK Python 0.2.0 marca brani e clip (attende il job di una clip), e i nodi ComfyUI aggiungono Mark & Save Audio e Mark & Save Video.

: Lancio: piani, upload, webhook e API v1 congelata

  • Piani a pagamento: Indie, Startup e Scale, mensili o annuali, acquistati e modificati dalla pagina Fatturazione della dashboard tramite Stripe. I piani mensili proseguono oltre la quota con gli extra (0,0003 USD per marcatura, 0,10 USD per GB di dati), fatturati il primo del mese, fino a dieci volte la quota; Free e i piani annuali si fermano alla quota. GET /v1/usage aggiunge marks.ceiling.
  • POST /v1/uploads: ora una richiesta porta al massimo 4 MB; i file fino a 25 MB vengono prima caricati, direttamente nel nostro storage a Zurigo, e le chiamate li indicano in upload (o input_upload). L’SDK Python lo fa da sé. Nuovi codici di errore: upload_not_found, storage_unavailable.
  • Webhook: mark.completed e check.blocked, firmati (Kennmarq-Signature, lo schema di Stripe), con nuovi tentativi per un giorno. Gli endpoint si aggiungono nella dashboard.
  • L’API v1 è congelata: solo aggiunte, 12 mesi di preavviso prima di qualsiasi modifica incompatibile (versionamento) e un documento OpenAPI 3.1 su /v1/openapi.json.
  • Il Trust Center, la pagina di stato, il rapporto di robustezza per le marcature delle immagini e le pagine legali: termini, privacy, il DPA e i nostri due sub-responsabili del trattamento.

: La modalità locale, l’SDK Python e i nodi ComfyUI

  • POST /v1/sign: la firma della modalità locale. La filigrana e le Content Credentials vengono create sulla tua macchina, e solo il manifest (circa 13 KB, mai pixel) arriva qui per essere firmato e ricevere la marca temporale. Firmiamo solo ciò che contiene una marcatura nel cloud: un tipo di origine IA, nessuna miniatura, ogni asserzione così come il claim ne riporta l’hash. Le chiavi richiedono l’ambito sign; ogni file conta una marcatura.
  • L’SDK Python: l’API cloud, la modalità locale, il controllo di sicurezza sulla tua macchina e la verifica. E i nodi ComfyUI: Mark & Save Image e Safety Check. Entrambi arriveranno su PyPI e nel ComfyUI Registry.
  • Un nuovo tipo di voce del registro di trasparenza, c2pa.local_signature, che contiene l’hard binding del file dove quella di una firma nel cloud ne contiene l’hash. Anche le marcature locali con filigrana conservano una credenziale durevole, senza hash del file: same_file è allora null.

: Il controllo di sicurezza

  • POST /v1/check: analizza un’immagine alla ricerca di contenuti sessuali con una persona apparentemente minorenne o con un volto realistico, i divieti dell’art. 5 dell’AI Act, secondo la policy ai-act o safe-only. Risponde allow, flag o block, con il motivo; mai un’età o un’identità. Due marcature per immagine; le chiavi richiedono il nuovo ambito check.
  • check su POST /v1/mark: il file e l’eventuale input vengono controllati prima della marcatura. Un blocco risponde 422 content_blocked con il controllo, e non viene marcato nulla; una segnalazione marca comunque, con X-Safety-Verdict e X-Safety-Reason.
  • Un nostro limite minimo su ogni marcatura, qualunque sia la policy: i contenuti espliciti con una persona apparentemente minorenne non vengono mai marcati.
  • I modelli del controllo, le loro licenze e i loro tassi di errore misurati sono pubblicati.

: Il verificatore gratuito

  • Verifica un’immagine: se contiene Content Credentials e una filigrana TrustMark, nostre o di chiunque altro, e cosa dicono. La verifica avviene nel browser; l’immagine non lascia mai il dispositivo.
  • POST /v1/verify: la stessa verifica tramite l’API, senza chiave, 10 file al minuto e 200 al giorno per indirizzo. Con signed=true, un risultato firmato con la chiave del nostro verificatore (JWS, ES256), scritto nel registro di trasparenza prima di essere restituito, con X-Log-Index; la chiave è su GET /v1/verify/key. Vedi POST /v1/verify.
  • Content Credentials durevoli: il manifest store di ogni file con filigrana viene conservato sotto il suo ID della filigrana, così una copia i cui metadati sono stati rimossi vi riconduce. GET /v1/credentials/{watermark_id} lo restituisce, come JSON o come file .c2pa.
  • Un nuovo tipo di voce del registro di trasparenza, checker.result: gli hash di ogni risultato firmato e del file a cui si riferisce.

: Il registro di trasparenza

  • Ogni firma di POST /v1/mark e ogni token di POST /v1/tsa/{key} viene aggiunto a un registro pubblico a sola aggiunta prima di essere restituito. Entrambe le risposte ne riportano la posizione in X-Log-Index.
  • GET /v1/log/root, /roots, /proof/{entry}, /consistency, /entries e /key: radici firmate e le prove per verificarle, senza chiave. Vedi il registro di trasparenza.
  • La testa del registro di audit di ogni organizzazione viene ancorata nel registro di trasparenza ogni volta che avanza; la pagina Registro di audit della dashboard mostra l’ultimo ancoraggio.

: Anteprima dell’API v1: marcatura delle immagini

  • POST /v1/mark: una filigrana invisibile e Content Credentials C2PA firmate e con marca temporale per immagini PNG, JPEG e WebP fino a 25 MB.
  • POST /v1/tsa/{key}: il nostro server di marca temporale RFC 3161, con chiavi dal solo ambito tsa.
  • GET /v1/certificate e GET /v1/usage.
  • Organizzazioni con ruoli, progetti, chiavi di test e di produzione con ambiti e liste di IP consentiti, e un registro di audit a catena di hash con esportazione in CSV e JSON.