Skip to main content

OpenAI provider adapters for genblaze (Sora, DALL-E, TTS)

Project description

genblaze-openai

OpenAI provider adapters for genblazeSora text-to-video, DALL·E / gpt-image text-to-image, and TTS text-to-speech — with SHA-256 provenance manifests on every output.

genblaze-openai wraps OpenAI's generative media APIs (Sora video, DALL·E 3 and gpt-image-1 images, tts-1 / tts-1-hd / gpt-4o-mini-tts audio) as genblaze providers. Compose them into multi-step AI pipelines, persist outputs to Backblaze B2 or any S3-compatible store, and emit a tamper-evident provenance manifest for every run.

Why genblaze-openai

  • Three OpenAI modalities, one SDK — video (Sora), image (DALL·E, gpt-image), audio (TTS) — same Pipeline API.
  • Built-in provenance — Every Sora render / DALL·E image / TTS clip lands with a SHA-256-verified manifest.
  • Swap models without rewrites — Same pipeline works with Runway, Luma, Flux, Veo, ElevenLabs, etc.
  • Production-ready — Retries, timeouts, moderation hooks, step caching, streaming events.
  • Durable storage — Plug genblaze-s3 in for B2 / AWS S3 / R2 / MinIO persistence.

Providers + models

Provider class Modality Models
SoraProvider video sora-2, sora-2-pro
DalleProvider image gpt-image-1, dall-e-3, dall-e-2 (+ edits)
OpenAITTSProvider audio tts-1, tts-1-hd, gpt-4o-mini-tts

Each is registered via entry points (openai-sora, openai-dalle, openai-tts).

Install

pip install genblaze-openai

Quickstart — Sora text-to-video

export OPENAI_API_KEY="sk-..."
from genblaze_core import Modality, Pipeline
from genblaze_openai import SoraProvider

run, manifest = (
    Pipeline("sora-demo")
    .step(SoraProvider(), model="sora-2",
          prompt="A cinematic drone shot gliding over a misty mountain valley at sunrise",
          modality=Modality.VIDEO, seconds=4, size="1280x720")
    .run(timeout=300)
)
print(run.steps[0].assets[0].url, manifest.canonical_hash)

Quickstart — DALL·E text-to-image

from genblaze_openai import DalleProvider

run, manifest = (
    Pipeline("dalle-demo")
    .step(DalleProvider(), model="dall-e-3",
          prompt="A watercolor painting of a cozy bookshop on a rainy evening",
          modality=Modality.IMAGE, size="1024x1024", quality="hd")
    .run(timeout=120)
)

Quickstart — OpenAI TTS

from genblaze_openai import OpenAITTSProvider

run, manifest = (
    Pipeline("tts-demo")
    .step(OpenAITTSProvider(output_dir="output/audio"),
          model="tts-1-hd",
          prompt="Welcome to Genblaze — generative media pipelines with provenance.",
          modality=Modality.AUDIO, voice="nova", response_format="mp3")
    .run(timeout=60)
)

Persist to Backblaze B2

from genblaze_core import KeyStrategy, ObjectStorageSink
from genblaze_s3 import S3StorageBackend

storage = ObjectStorageSink(
    S3StorageBackend.for_backblaze("my-bucket"),
    key_strategy=KeyStrategy.HIERARCHICAL,
)
# …then pass sink=storage to .run(…)

See Backblaze B2 — the recommended default sink for genblaze.

Credentials

Env var Where to get it
OPENAI_API_KEY https://platform.openai.com/api-keys

Documentation

Related packages

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

genblaze_openai-0.1.0.tar.gz (16.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

genblaze_openai-0.1.0-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file genblaze_openai-0.1.0.tar.gz.

File metadata

  • Download URL: genblaze_openai-0.1.0.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for genblaze_openai-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f3a0b9413479a27f27ca7a036cb4fc90f636540e1d2f3d265fa3ee9b52093f96
MD5 b66b1216bd8cd168b19878f53de85d0b
BLAKE2b-256 37ccb79571a414a834949b261e29420a22f15abe61da045b2c0e639c6859ec86

See more details on using hashes here.

File details

Details for the file genblaze_openai-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for genblaze_openai-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1dd438991f07822b54787566865a60bac01dfe89b33fbe3319bd0b807947bb7b
MD5 9a78c181fec0985763d78f30f89bd596
BLAKE2b-256 9607bf3481b329f6138a237015db6ca2034c2a4e9c89279e2702e5932149d34a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page