genblaze-core
Python SDK for building generative AI pipelines across video, image, and audio — with built-in SHA-256 provenance.
genblaze-core is the core of genblaze, an open-source orchestration framework by Backblaze for composing multi-step AI media generation workflows. It gives you a single, provider-agnostic Pipeline API for text-to-video, text-to-image, text-to-speech, image-to-video, and audio generation — so you can swap models (Sora, Veo, Runway, Luma, Flux, DALL·E, ElevenLabs, Stable Audio, LMNT, GMICloud) without rewriting pipeline logic.
Every pipeline run emits a canonical, hash-verified provenance manifest — a tamper-evident JSON document capturing the provider, model, prompt, parameters, timestamps, and output asset metadata. Outputs are sha256-covered once sha256 is populated, typically by a storage sink or byte-returning provider path. Manifests can be embedded directly into PNG, JPEG, WebP, MP4, MP3, and WAV files, uploaded alongside assets to S3-compatible storage, or exported to Parquet for analytics.
Why genblaze-core
- One API for every generative AI provider — Pipelines, not per-vendor SDK glue. Fluent, composable, chainable.
- Built-in provenance — Every asset gets a SHA-256–verified manifest. Prove how media was made; detect tampering.
- Production-ready — Retries, timeouts, progress streaming, moderation hooks, OpenTelemetry tracing, step caching.
- Storage-agnostic sinks — Drop into Backblaze B2, AWS S3, Cloudflare R2, MinIO, Parquet, or local disk.
- Policy + privacy controls — Redact prompts, strip params, pointer-mode for sensitive content.
- Agent loops + templates — Evaluator-driven iteration, reusable pipeline and step templates.
- Zero lock-in — MIT licensed, typed, lazy imports, provider adapters are separate packages.
Features
| Capability | What you get |
|---|---|
Pipeline API |
Fluent multi-step generation, fan-in (input_from), AV compositing via FFmpeg |
| Provider discovery | Entry-point–based registry — pip install genblaze-<provider> and it's available |
| Manifest (Pydantic) | Run, Step, Asset models with canonical JSON hashing, verify_hash(), and stricter .verify() output sha256 checks |
| Media embedding | PngHandler, Mp4Handler, Mp3Handler, etc. — embed + extract manifests in-file |
| Storage sink | ObjectStorageSink with hierarchical or content-addressable key layout |
| Parquet sink | Partitioned run/step/asset tables for downstream analytics |
| Observability | OTelTracer, LoggingTracer, CompositeTracer, structured events |
| Agents | AgentLoop with pluggable Evaluator for iterative refinement |
| Moderation | Pre/post moderation hooks, configurable embed policies |
| Testing | MockProvider, MockVideoProvider, MockAudioProvider for offline tests |
Install
pip install genblaze-core
Optional extras:
pip install "genblaze-core[parquet]" # ParquetSink for analytics
pip install "genblaze-core[audio]" # Audio metadata embedding (mutagen)
Add provider adapters separately:
pip install genblaze-openai genblaze-google genblaze-runway genblaze-luma \
genblaze-decart genblaze-replicate genblaze-elevenlabs \
genblaze-stability-audio genblaze-lmnt genblaze-gmicloud
pip install genblaze-s3 # Storage backend for Backblaze B2 / AWS S3 / R2 / MinIO
pip install genblaze-cli # Extract / verify / replay / index manifests
Quickstart — local, zero API keys
from genblaze_core import Modality, Pipeline
from genblaze_core.testing import MockVideoProvider
run, manifest = (
Pipeline("hello-genblaze")
.step(MockVideoProvider(), model="mock-v1",
prompt="A drone shot over a coastal city at golden hour",
modality=Modality.VIDEO)
.run()
)
print(manifest.canonical_hash) # deterministic SHA-256 of the run
print(manifest.verify_hash()) # True: canonical payload hash matches
print(manifest.verify()) # True when every output asset declares sha256
Quickstart — Sora + Backblaze B2 storage
Generate a video, upload it + its manifest to Backblaze B2, verify the hash:
pip install genblaze-core genblaze-openai genblaze-s3
export OPENAI_API_KEY="sk-..."
export B2_KEY_ID="..."
export B2_APP_KEY="..."
from genblaze_core import KeyStrategy, Modality, ObjectStorageSink, Pipeline
from genblaze_openai import SoraProvider
from genblaze_s3 import S3StorageBackend
storage = ObjectStorageSink(
S3StorageBackend.for_backblaze("my-bucket"),
key_strategy=KeyStrategy.HIERARCHICAL,
)
result = (
Pipeline("hero-reel")
.step(SoraProvider(), model="sora-2",
prompt="Aerial flyover of a mountain lake at sunrise",
modality=Modality.VIDEO, seconds=4, size="1280x720")
.run(sink=storage, timeout=300)
)
print(result.run.steps[0].assets[0].url) # durable B2 URL
print(result.manifest.canonical_hash) # SHA-256 of the full run
assert result.manifest.verify()
Manifest.verify() does not fetch remote asset URLs. It verifies the manifest
hash and requires output assets to declare valid sha256 values. If your code
fetches asset.url, hash those bytes separately and compare them to
asset.sha256.
Storage — Backblaze B2 recommended
Backblaze B2 is the recommended default sink for genblaze — purpose-built for large AI-generated media with S3-compatible APIs, resilient multipart uploads, Object Lock for immutable manifests, and strong cost economics at scale. One-liner credentials from B2_KEY_ID / B2_APP_KEY. See the genblaze-s3 backend for the full recipe plus AWS S3, Cloudflare R2, and MinIO variants.
Documentation
- Main repo: https://github.com/backblaze-labs/genblaze
- Architecture: https://github.com/backblaze-labs/genblaze/blob/main/ARCHITECTURE.md
- Feature docs: https://github.com/backblaze-labs/genblaze/tree/main/docs/features
- Runnable examples: https://github.com/backblaze-labs/genblaze/tree/main/examples
Related packages
Provider adapters: genblaze-openai · genblaze-google · genblaze-runway · genblaze-luma · genblaze-decart · genblaze-replicate · genblaze-elevenlabs · genblaze-stability-audio · genblaze-lmnt · genblaze-gmicloud
Storage + tooling: genblaze-s3 · genblaze-cli · genblaze-langsmith
License
MIT
Metadata
Release files for genblaze-core 0.3.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| genblaze_core-0.3.8.tar.gz | 464.2 kB | With provenance | Details for genblaze_core-0.3.8.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| genblaze_core-0.3.8-py3-none-any.whl | Python 3 | none | any | Details for genblaze_core-0.3.8-py3-none-any.whl |
Total release size: 763.2 kB
Release files / genblaze_core-0.3.8.tar.gz
| Download URL | genblaze_core-0.3.8.tar.gz |
|---|---|
| Size | 464.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3df923eb290f125592a33a974296880c9ae21416f068b20dd8595b1bb76431e5
|
|
BLAKE2b-256 checksum How to use checksums |
a4abda77f7816b17581d3ac539b4fed0aeb956bbc82d3452a9f53b7abfa0b9e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.
Transparency logRelease files / genblaze_core-0.3.8-py3-none-any.whl
| Download URL | genblaze_core-0.3.8-py3-none-any.whl |
|---|---|
| Size | 299.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2903957147dfd9208381e691ba1982706057d5942a25ca560fa43d2b7382e299
|
|
BLAKE2b-256 checksum How to use checksums |
7112b29d2dd0e85971555a6b89aaa34dba4c1add273cd473b9d6087d13e96752
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.
Transparency logSecurity for genblaze-core 0.3.8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for genblaze_core-0.3.8.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.