Core SDK for genblaze media generation orchestration
Project description
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 SHA-256 hash of every generated asset. 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 and .verify() |
| 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()) # True
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()
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file genblaze_core-0.1.0.tar.gz.
File metadata
- Download URL: genblaze_core-0.1.0.tar.gz
- Upload date:
- Size: 151.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca74952edf3ed85be8a954cf1547c9d5bf560ddadc372407c77f881a52dc32b1
|
|
| MD5 |
ff55246d6546fb0a8b8de577f5de8642
|
|
| BLAKE2b-256 |
a2a8cfc9b6bbe3152f7aaf066ea6dc390fab5f5ee66998f625aaddfdcdce4b67
|
File details
Details for the file genblaze_core-0.1.0-py3-none-any.whl.
File metadata
- Download URL: genblaze_core-0.1.0-py3-none-any.whl
- Upload date:
- Size: 114.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96428965d1d6bf146358b118a0989d1f253e3b3f9b318a2bde6da946dbbd722e
|
|
| MD5 |
adb921183c0f4aa8150dd0472d45fc51
|
|
| BLAKE2b-256 |
3d52d1f0a1cc50fb90360981fb868d21738520e34a74510aaf5756da6d3a7b3f
|