Nodes/VALYDA AI PROTOCOL/VALYDA AI PROTOCOL · EU AI Act · Project (all clips)
ComfyUI Node

VALYDA AI PROTOCOL · EU AI Act · Project (all clips)

One node rolls every clip into a single record

By RebellionPictures·Created 2 months ago·Updated 9 days ago· 1
VALYDA AI PROTOCOL · EU AI Act · Project (all clips)
    • pdf
    Production
    Producer
    Co_Producer
    Rights_Holder
    Reference_File
    Version
    Multiple_Runskeep all clips / alle behalten
    Outputboth / beide
    External_1
    External_2
    External_3
    External_4
    External_5
    Records_Folder

    Here's the odd one of the Valyda-Protocol pack: it has no cables. The Project node doesn't take your clip from the workflow and it doesn't touch your render. You run it once at the end of a production, and it reads the records your Creator/Broadcast nodes have been writing to disk all along, then combines every clip into a single document with a contact sheet. One run, one deliverable, the whole show.

    That "read from disk" design is the point. Every per-clip run writes a .valyda-akte.json next to its PDF in ComfyUI/output/valyda/<production>/, so the Project node is the closest thing this pack has to a wrap report: it gathers those files, sorts them, and builds one protocol per production with an image overview so an editor can actually recognise the shots. Since Article 50 of the EU AI Act applied on 2 August 2026, having that bundled record is what a broadcaster or client will ask for - and what protects you if they do.

    Inputs that matter

    • Production - a dropdown of the existing folders under output/valyda, newest first, defaulting to "- neuestes Projekt -". The list refreshes when you click the node; a fresh project missing from it means a browser hard-refresh (Ctrl+F5).
    • Producer - left empty, it's taken from the records if they agree unanimously, otherwise "not stated". Same logic for Co-Producer and Rights_Holder.
    • Multiple_Runs - if a shot was rendered a few times, you get a few records. newest clip per scene keeps only the latest of each, provided the scene is spelled identically.
    • Output - both gives you the Creator sheet and the Broadcast record from the same material; pick one if you only need the one.
    • Reference_File - full path of the final master (usually the broadcast cut); if the file exists, its checksum gets taken and bound into the document. Version names the cut, e.g. "Sendefassung R3".
    • External_1..5 - for items made outside ComfyUI: Photoshop, Topaz, DaVinci, or a cloud service run in its own web app instead of as a node. Format is Scene | AI system | Reason | Timecode | disclosure yes/no - e.g. Scene 2 harbour | Kling 2.5 Pro | establishing shot | 00:04:12:07 | no. These appear clearly marked as MANUAL ENTRIES, not machine-verified. Good to know: the author deliberately doesn't have you re-enter Kling/Veo runs that were already captured as API nodes in the workflow.

    The single output is pdf - the path to the combined document, written as PROJECT_VALYDA-AI-PROTOCOL_... into the production folder so it doesn't get confused with per-clip files. Internally it sorts clips by timecode (else by creation time), and where records disagree on broadcaster or publication channel, it names the dissent instead of quietly picking one.

    Running it right

    It has no inputs, so ComfyUI would normally skip it as "unchanged" - the node forces a re-run every time via its change-detection hook, so it always picks up newly arrived records. But don't put it in your generating workflow and hit the big Run button: your clips would re-render (costing you again) and the same clip would appear twice in the record. Instead, either give it its own tab and press its run button, or mute the generating nodes with Ctrl+M and run. The README is explicit: record at least one clip first, because the node needs a production folder to read.

    Install and gotchas

    ComfyUI Manager: search "Valyda-Protocol". Or clone + pip install -r Valyda-Protocol/requirements.txt (just reportlab and Pillow - no models, no GPU, no network). The pack's honest limits apply here too: it documents how you worked, it does not detect AI in other people's footage, and the sheet is a producer's self-declaration, not a proof of authenticity. If a clip shows up twice, open the production folder and delete the later valyda_<date>_<time>_<id> file stem, then re-run. And keep the JSON records next to the PDFs - they're the machine-readable half of the same evidence.

    CategoryVALYDA

    Inputs (14)

    NameTypeDefaultDescription
    ProductionCOMBOThe production whose records are combined into ONE document - the choices are the existing folders under output/valyda, newest first. The list refreshes itself when the node is clicked; if a fresh project is missing, press Ctrl+F5 in the browser.
    ProducerSTRINGProduction company. Left empty: taken from the records if they agree unanimously, otherwise 'not stated'.
    Co_ProduceroptSTRINGCo-producing company, if any. Left empty: taken from the records if they agree unanimously; appears on the record only when filled.
    Rights_HolderoptSTRINGRights holder of the PRODUCTION - not the software rights holder named in the footer. Left empty: taken from the records if they agree unanimously.
    Reference_FileoptSTRINGFull path of the final master this record refers to - usually the broadcast cut. If the file exists, its checksum is taken.
    VersionoptSTRINGWhich cut this record refers to, e.g. 'final cut v3' or 'broadcast cut R3'.
    Multiple_RunsoptCOMBOkeep all clips / alle behaltenIf a shot was rendered several times, there are several records for it. 'newest clip per scene' keeps only the latest of each - provided the scene is spelled identically.
    OutputoptCOMBOboth / beideWhich edition to write. 'both' delivers the Creator sheet AND the Broadcast record from the same material.
    External_1optSTRINGItems created OUTSIDE ComfyUI (Photoshop, Topaz, DaVinci - or one of the cloud services in its own web app instead of as a node). Format: Scene | AI system | Reason | Timecode | disclosure yes/no Example: Scene 2 harbour | Kling 2.5 Pro | establishing shot | 00:04:12:07 | no Appears in the document as a MANUAL ENTRY, not machine-verified.
    External_2optSTRINGsame as External_1
    External_3optSTRINGsame as External_1
    External_4optSTRINGsame as External_1
    External_5optSTRINGsame as External_1
    Records_FolderoptSTRINGEscape hatch for special cases: folder holding the records, as a relative sub-path underneath output/valyda (sub-folders and several levels are fine). Absolute paths, drive letters and ".." are refused. Leave empty - then the selection above applies.

    Outputs (1)

    NameTypeDescription
    pdfSTRING