Model Licenses

An inventory of the model each node loads by default, its licence, and whether that licence permits commercial use — plus a configuration that is permissive throughout.

MetaLoom ships no model weights. Every node that needs a model references it by file path, repository id or endpoint URL, and you provide the model. That means the license you have to satisfy is the one attached to the model you point the node at — not the Apache-2.0 license of MetaLoom itself.

This page inventories the models, runtimes and native libraries the built-in nodes use by default or in their documented reference setup, and states whether each one is cleared for commercial use.

Important

This is an engineering inventory maintained alongside the code, not legal advice. Model licenses change between revisions, and a checkpoint’s terms often differ from the terms of the base architecture it was fine-tuned from. Before shipping, verify the license on the model card of the exact revision you deploy.

Models Restricted to Non-Commercial Use

Two components in the catalogue may not be used in a commercial deployment. Both are usable for research, evaluation and personal projects.

Warning

InspireFace model packs — academic use only. The Face Detection node runs the InspireFace native runtime with a model pack (default: packs/Pikachu; Megatron is the larger alternative). The InspireFace code is Apache-2.0, but its bundled models inherit the InsightFace model terms, which permit use solely for academic purposes and explicitly prohibit commercial applications.

Everything downstream of the packs is affected — face bounding boxes, embeddings, person clustering, and therefore the Face Description node that only runs on detected faces.

If you need face detection commercially: license a commercial face model, or swap the pack for one whose terms permit it. The node takes the pack location from the inspirefacePackPath option, so no code change is required — but the pack must be API-compatible with the InspireFace runtime.

Warning

Ideogram 4.0 — non-commercial model agreement. The Image Generation node is built around the open-weight Ideogram 4.0 image generation model (ideogram-ai/ideogram-4-nf4). The inference code is Apache-2.0, but the weights are released under the Ideogram 4 Non-Commercial Model Agreement. Using them in a commercial MetaLoom deployment would violate the weight license.

The node talks to a sidecar over a deliberately model-agnostic HTTP contract, so a permissively licensed image model can be dropped in behind the same endpoint without touching the node.

Models With Conditions Attached

These are usable commercially, but not under a plain permissive license. Read the terms before you deploy.

Warning

YOLO object detection — AGPL-3.0, and the copyleft reaches your deployment. The Object Detection node runs YOLO through a native shim built against YOLOs-CPP, which is licensed AGPL-3.0, and the reference .onnx detection models are exported from Ultralytics YOLO, which is also AGPL-3.0.

This is not a non-commercial restriction — AGPL permits commercial use. It is a network copyleft: running an AGPL work as part of a service offered over a network obliges you to offer the corresponding source of the whole combined work to its users. For a hosted MetaLoom that includes far more than the detector.

If you need object detection in a closed commercial deployment: buy an Ultralytics enterprise license, or point the node at a permissively licensed detection model and replace the AGPL inference shim — the model swap alone is not enough, because the runtime carries the same license. The node takes both from options (modelPath, labelsPath), so the model side needs no code change.

Model License What the condition means

google/gemma-2-27b-it (LLM node default)
google/gemma-3-27b-it (Face Description default)
google/shieldgemma-* and google/shieldgemma-2-4b-it (Content Guard, SHIELDGEMMA families)

Gemma Terms of Use

Not an OSI license. Commercial use is permitted, but you accept a Prohibited Use Policy and must pass the same terms (and the use restrictions) on to anyone you distribute the model or a derivative to.

meta-llama/Llama-Guard-3-8B (Content Guard default)
meta-llama/Llama-Guard-4-12B

Llama 3.3 / Llama 4 Community License — repositories are gated on Hugging Face

Commercial use is permitted below a large-scale-user threshold (700 M monthly active users), above which you must request a separate license from Meta. An Acceptable Use Policy applies, derivatives must carry the "Llama" name, and you must accept the gate to download the weights.
Permissively licensed alternative: ibm-granite/granite-guardian-3.* is Apache-2.0 and the node supports it with family: GRANITE_GUARDIAN.

SebastianBodza/Kartoffel_Orpheus-3B_german_natural-v0.1 (German TTS voice)

Llama 3.2 Community License (Llama-3.2 backbone) — repository is gated on Hugging Face

The Orpheus project code is Apache-2.0, but this checkpoint is a Llama-3.2 derivative and carries Llama’s community license and acceptable-use policy, including its large-scale-user threshold. You must accept the gate to download it.
Ungated alternative: set ORPHEUS_REPO_DE=Thorsten-Voice/tv-orpheus-v1 — Apache-2.0, CC0 speaker.

Per-Node Inventory

What each built-in node loads, and the license that governs it. "Default" means the value the node ships with; every entry is configurable.

Nodes that use no model at all

These run plain algorithms or classical computer vision. Nothing beyond the MetaLoom license and the native libraries listed under Runtimes & Libraries applies.

Node What it uses Commercial use

Hashing · Deduplication · Consistency

JDK digest algorithms and byte-level checks

✅ Yes

Filesystem Source · Filter

Pipeline plumbing — no media model

✅ Yes

Fingerprint · Thumbnail · Scene Detection · Quality

OpenCV via video4j — perceptual hashing, frame extraction, optical flow, Laplacian variance. No learned weights.

✅ Yes

Nodes that load a model

Node Model (default) License Commercial use

Tika

Apache Tika parsers — format detection and text extraction, no ML model

Apache-2.0

✅ Yes

OCR

Tesseract via Tess4J + tessdata language files (tessDataPath)

Apache-2.0 (engine and the official tessdata sets)

✅ Yes

Speech-to-Text

whisper.cpp runtime + a GGML checkpoint; default models/ggml-large-v3-turbo.bin (modelPath)

MIT (whisper.cpp runtime and the OpenAI Whisper weights)

✅ Yes

Object Detection

YOLOs-CPP inference shim + an ONNX detection model and its class-name file (modelPath, labelsPath); reference setup uses Ultralytics-exported YOLOv11n

AGPL-3.0 (both the shim and the reference weights)

⚠️ Only under AGPL terms — see above

Segment Anything

facebook/sam2.1-hiera-small behind the SAM 2 sidecar (model, sam2Host/sam2Port); the tiny, base-plus and large variants are equally selectable

Apache-2.0 — code and every 2.1 checkpoint in the family

✅ Yes

VLM

allenai/olmOCR-2-7B-1025-FP8 served over an OpenAI-compatible endpoint (model, endpointUrl)

Apache-2.0 per the model card; fine-tuned from Qwen2.5-VL-7B-Instruct (Apache-2.0)

✅ Yes

Captioning

SmolVLM behind the captioning sidecar (model host/port)

Apache-2.0

✅ Yes

Video captioning

qwen25vl-awq — Qwen2.5-VL-7B-Instruct, quantized (model)

Apache-2.0 (7B instruct release)

✅ Yes

Text-to-Speech — English

Kokoro-82M ONNX (KOKORO_MODEL / KOKORO_VOICES in the sidecar)

Apache-2.0

✅ Yes

Text-to-Speech — German

SebastianBodza/Kartoffel_Orpheus-3B_german_natural-v0.1 (ORPHEUS_REPO_DE)

Llama 3.2 Community License, gated — see conditions

⚠️ Conditional

LLM Enrichment

google/gemma-2-27b-it via an OpenAI-compatible provider

Gemma Terms of Use — see conditions

⚠️ Conditional

Face Description

google/gemma-3-27b-it via an OpenAI-compatible vision provider

Gemma Terms of Use — see conditions

⚠️ Conditional

Content Guard — default

meta-llama/Llama-Guard-3-8B (model) via an OpenAI-compatible provider

Llama 3.3 Community License, gated — see conditions

⚠️ Conditional

Content Guard — ShieldGemma

google/shieldgemma-2b/-9b/-27b, google/shieldgemma-2-4b-it (family: SHIELDGEMMA, SHIELDGEMMA_2)

Gemma Terms of Use — see conditions

⚠️ Conditional

Content Guard — Granite Guardian

ibm-granite/granite-guardian-3.* (family: GRANITE_GUARDIAN)

Apache-2.0

✅ Yes

Face Detection

InspireFace runtime + model pack, default packs/Pikachu (inspirefacePackPath)

Code Apache-2.0; model packs follow InsightFace — academic use only

No — see restrictions

Image Generation

Ideogram 4.0 (ideogram-ai/ideogram-4-nf4) behind a Python sidecar

Code Apache-2.0; weights under the Ideogram 4 Non-Commercial Model Agreement

No — see restrictions

The Loom chat agent

The Chat & AI Agent is not a pipeline node, but it does run a model. Loom talks to an OpenAI-compatible provider selected by LOOM_AI_MODEL_ID, which defaults to openai/gpt-oss-20b (Apache-2.0). Point it at a hosted provider instead and the applicable terms become that provider’s API terms of service, not a weight license — which also means your prompts and asset content leave your infrastructure.

Runtimes, Native Libraries and Toolkits

The Cortex worker links against native code that is redistributed inside the cortex-server container image.

Component License Note

OpenCV 5.1 (staged into /opt/opencv/lib)

Apache-2.0

Frame decoding and all classical CV in video4j.

FFmpeg shared libraries (installed from the base image’s distribution packages)

LGPL-2.1-or-later upstream — distribution builds are frequently configured with --enable-gpl, which makes the shipped libraries GPL-2.0-or-later

OpenCV’s videoio backend links against them. If you redistribute the image, check what your base actually ships: ffmpeg -version prints the build configuration.

whisper.cpp (via the asr4j binding)

MIT

Local speech-to-text inference.

InspireFace native runtime (via inspireface4j)

Apache-2.0 (code only — not the model packs)

See restrictions.

YOLOs-CPP inference shim (libyolib.so, via yolo4j) + ONNX Runtime

AGPL-3.0 for YOLOs-CPP; MIT for ONNX Runtime

Object detection. The shim is compiled against the AGPL headers, so it carries that license — see conditions.

Apache Tika, Tess4J / Tesseract

Apache-2.0

Pure-JVM and JNI extraction.

MetaLoom itself — Loom, Cortex, nodes, UI, clients, this site

Apache-2.0

Full text in LICENSE.txt at the repository root.

A Clean Commercial Stack

If you need a deployment with no non-commercial and no conditionally licensed component, this configuration stays inside permissive licenses:

  • Keep the hashing, dedup, consistency, fingerprint, thumbnail, scene-detection, quality, tika, ocr, whisper, vlm and captioning nodes as they ship.

  • Drop Face Detection and Face Description, or replace the InspireFace pack with a commercially licensed face model.

  • Do not deploy the Image Generation node against Ideogram 4.0 weights.

  • Set ORPHEUS_REPO_DE=Thorsten-Voice/tv-orpheus-v1 for German Text-to-Speech (Apache-2.0, ungated) instead of the Kartoffel checkpoint.

  • Replace the Gemma defaults in the LLM node with an Apache-2.0 or MIT-licensed instruct model, unless the Gemma Terms of Use are acceptable to you.

  • Set the Content Guard node to family: GRANITE_GUARDIAN with an ibm-granite/granite-guardian-3.* model. It is the only Apache-2.0 option of the three families, so it needs neither the Llama community license nor the Gemma terms. It is text-only; screening pictures means accepting one of the other two.

  • Verify the FFmpeg build in your container base if you redistribute images.

Verifying What Your Deployment Actually Loads

Nothing is implicit — every model reference is a configuration value you can read back:

Node Where the model is named

Speech-to-Text

WhisperOptions.modelPath

VLM

VlmNodeOptions.model + endpointUrl

OCR

tessDataPath

Face Detection

FacedetectNodeOptions.inspirefacePackPath

LLM / Face Description

provider URL, model id in the prompt definition

Text-to-Speech

TtsNodeOptions.language selects the engine; ORPHEUS_REPO_DE, KOKORO_MODEL and KOKORO_VOICES on the sidecar name the checkpoints

Captioning

model host / port of the captioning sidecar

Chat agent

LOOM_AI_MODEL_ID on the Loom server

A pipeline that contains none of the model-backed nodes pulls in no model license at all.

See Also

Looking for something else?