# Models and licences behind every piece Served at `/notice` on the booth. What runs, under which licence, and where. | Component | Used for | Licence | Where | |---|---|---|---| | Stable Diffusion XL 1.0 base (`stabilityai/stable-diffusion-xl-base-1.0`) | the painter in Art-portrait, Art-portrait · style and Art-only (img2img), Baseline | CreativeML OpenRAIL++-M | on the artists' own machine | | Hyper-SD SDXL 8-step CFG LoRA (`ByteDance/Hyper-SD`) | the fast, guided painter (Art-portrait, Art-portrait · style, Art-only stage 2) | Apache-2.0 | same | | FLUX.2 klein 4B (`black-forest-labs/FLUX.2-klein-4B`) | Art-only stage 1: removes the person, keeps the composition | Apache-2.0 | same | | DMD2 SDXL (`tianweiy/DMD2`) | Baseline only (operator engine, off the visitor switch) | CC BY-NC 4.0 — non-commercial; the piece is shown for free | same | | RIFE (Practical-RIFE, `hzwer`) | the photo ↔ painting loop (frame interpolation) | MIT | same, in a container | | FILM (`google-research/frame-interpolation`) | optional interpolator backend | Apache-2.0 | same | | compel | prompt weighting for SDXL | MIT | same | | mediapipe | study-side review only (face / body check), never on a visitor | Apache-2.0 | same | | diffusers, transformers, torch | model runtime | Apache-2.0 / BSD-3 | same | | ControlNet depth (`diffusers/controlnet-depth-sdxl-1.0`) and its depth map (`depth-anything/Depth-Anything-V2-Small-hf`) | Art-portrait and Art-portrait · style: hold the photo's shape | OpenRAIL++ / Apache-2.0 | same | | ControlNet OpenPose (`thibaud/controlnet-openpose-sdxl-1.0`) and its skeleton detector (`lllyasviel/Annotators`) | Art-portrait and Art-portrait · style: hold the sitters' poses | "other" on both model cards — see each card | same | | IP-Adapter SDXL with its image encoder (`h94/IP-Adapter`, `sdxl_models`) | Art-portrait · style: the piece's own free painting as the style reference (InstantStyle, style block only) | Apache-2.0 | same | | MiVOLO (`WildChlamydia/MiVOLO`, Maksim Kuprashevich and Irina Tolstykh; face-only checkpoint `model_imdb_age_gender_4.22`), with its code and timm | reads a lone sitter's apparent age at the shutter, so the prompt can say an age; on the artists' own machine, never on a rented GPU | public licence with attribution and conditions reserved (a reworking of CC BY-SA 4.0, see the project's `license/` folder); timm Apache-2.0. Not modified; run through a compatibility bridge in `booth/age.py` | same | | qrcode, Pillow, ffmpeg | the QR, the frame, the encode | BSD / HPND / LGPL-2.1+ | same | Nothing leaves the machine to a third-party AI service: no photo is sent to an API. The web pages travel through Cloudflare (a processor) to the visitor's phone. ## What the licences ask of us - **OpenRAIL++-M (SDXL)**: use restrictions (no harm, no impersonation, no deception about AI generation) — met by the visible "Généré par IA" label and the consent step. - **CC BY-NC 4.0 (DMD2)**: attribution (this file) and non-commercial use. The work is shown for free; DMD2 is never used for a paid output. Baseline stays an operator engine. - **Apache-2.0 / MIT / BSD**: attribution in this file. - **MiVOLO's public licence**: authorship, its notice and a link to the licence (this file: https://github.com/WildChlamydia/MiVOLO); share-alike applies only to adapted versions of the model, and none is distributed. ## The artists named in the prompts Every piece names three Mediterranean artists it pays homage to (the prompt says "inspired by the work of …"). The pages say the piece is AI-generated, a new image nobody had painted, a work of its own independent of the artists it salutes: the AI-generation fact and the non-affiliation the compliance report asks for, in plain words. See `docs/handoffs/2026-09-11-data-and-attribution-handoff.md`.