Inspiration

Modern brands need hundreds of product images across markets, channels, seasons, and campaign concepts. Producing them manually is expensive and slow, while ordinary AI image generators frequently redesign the product: logos disappear, materials change, components move, and packaging text becomes corrupted.

We wanted to solve a harder problem than background replacement:

How can one real product photograph become an entire campaign library without losing the product’s identity?

That question led us to build BrandBlaze—a visual production pipeline that generates, evaluates, repairs, verifies, and archives campaign imagery.

What it does

BrandBlaze transforms one product photograph into market- and channel-specific campaign images.

A user uploads a product, identifies the details that must remain unchanged, and selects:

  • Target markets
  • Marketing channels
  • Environments
  • Creative direction

BrandBlaze then:

  1. Stores the canonical source in Backblaze B2.
  2. Uses Claude to create a machine-readable product identity contract.
  3. Plans a balanced campaign matrix.
  4. Produces creative and technical shot specifications.
  5. Uses Genblaze to orchestrate image generation through GMI Cloud.
  6. Stores every generated attempt and manifest in B2.
  7. Compares each result against the original product.
  8. Scores geometry, color, material, components, logos, text, prominence, and channel fitness.
  9. Repairs failed constraints automatically when appropriate.
  10. Flags unresolved identity drift for human review.
  11. Lets operators approve, reject, or regenerate individual assets.
  12. Exports the complete campaign and its provenance as JSON or CSV.

BrandBlaze separates product identity from presentation. Materials, logos, geometry, and components remain locked, while camera angle, composition, lighting, environment, and physically valid poses can change.

How we built it

BrandBlaze is a full-stack application built with:

  • Vinext, React, and TypeScript for the studio interface
  • FastAPI and Python for pipeline orchestration
  • Claude Sonnet 4.6 for identity analysis, creative direction, technical shot planning, visual QA, and repair planning
  • GMI Cloud Seedream 5.0 Lite for image generation
  • Genblaze for provider execution, asset handling, fallback configuration, manifest creation, hashing, and storage integration
  • Backblaze B2 for canonical sources, generated attempts, accepted assets, manifests, hashes, and campaign indexes
  • Docker, Nginx, and Supervisor for a single full-stack Render deployment

Claude first turns the source image into a structured identity contract. Each constraint receives a stable ID, confidence score, evidence type, severity, and mutability classification.

For example:

[LOG-001] HARD LOGO: Preserve the exact centered product mark.
[VIEW-001] MUTABLE VIEW: The reference shows a rear three-quarter angle.

Claude then creates a hybrid campaign specification combining artistic direction with measurable photography instructions such as:

  • Product bounding box
  • Frame occupancy
  • Safe margins
  • Camera distance and elevation
  • Focal length
  • Yaw, pitch, and roll
  • Lighting angles and color temperatures
  • Channel-specific crop requirements

The canonical identity contract is inserted verbatim before the shot plan so creative instructions cannot dilute product fidelity.

Generation runs through a Genblaze pipeline:

Pipeline(attempt_name, tenant_id=run_id) \
    .step(
        gmi_provider,
        prompt=prompt,
        external_inputs=[source_asset],
        modality=Modality.IMAGE,
    ) \
    .run(sink=backblaze_storage_sink)

Genblaze stores the result in B2 using content-addressable keys and produces a verifiable manifest. BrandBlaze refuses to accept an attempt without a durable asset URL, SHA-256 digest, and valid manifest.

For visual QA, BrandBlaze reads both images directly from authenticated B2 storage and sends their bytes to Claude. This avoids relying on temporary external URLs.

The final pipeline is:

flowchart LR
    A[Product photograph] --> B[Backblaze B2]
    B --> C[Claude identity contract]
    C --> D[Creative and technical shot plan]
    D --> E[Genblaze]
    E --> F[GMI image generation]
    F --> G[Asset and manifest in B2]
    G --> H[Claude constraint QA]
    H --> I{Identity passes?}
    I -->|Yes| J[Machine verified]
    I -->|Repairable| K[Targeted repair]
    K --> D
    I -->|No| L[Flagged for review]

Challenges we ran into

Product fidelity versus creative freedom

Our first prompts were too conservative, producing little more than background replacements. When we forced larger pose changes, fidelity dropped because the model exposed surfaces not supported by the source photograph.

We solved this by separating intrinsic identity from view-dependent presentation. BrandBlaze now uses controlled, evidence-aware camera changes while avoiding unsupported sides, interiors, and surfaces.

Reliable structured responses

Early Claude responses occasionally produced incomplete JSON. Instead of depending on free-form JSON text, we moved identity analysis and visual QA to schema-constrained Claude tool outputs.

Visual QA transport

Claude occasionally failed to download temporary image URLs. We removed that dependency by reading source and output bytes directly from B2 and sending base64 image data to Claude.

Useful automatic retries

A low score alone is not enough information for a productive retry. We developed targeted repair plans containing:

  • Failed constraint IDs
  • Protected constraints
  • Creative elements to preserve
  • A precise repair instruction
  • Whether another generation attempt is justified

This prevents the second attempt from unnecessarily redesigning the entire image.

Prompt complexity

Excessive camera mathematics weakened the product signal, while purely artistic prompts were unpredictable. We developed a hybrid structure with strict priority:

[ \text{Product Identity} > \text{Creative Direction} > \text{Technical Execution} ]

Accomplishments that we're proud of

  • BrandBlaze is a working end-to-end application, not a static prototype.
  • Genblaze is the real orchestration layer for image generation and storage.
  • Backblaze B2 is the durable source of truth for every campaign.
  • Every accepted output has a SHA-256 digest and verified Genblaze manifest.
  • Product QA is operational: low-quality images are rejected or repaired.
  • Critical identity drift cannot be hidden by a high average score.
  • Operators can compare source and output side by side.
  • Every prompt, attempt, score, repair, hash, manifest, and human decision remains traceable.
  • Campaigns can be recovered from B2 after application restarts.
  • Individual assets can be regenerated without rerunning the entire campaign.
  • The application is Dockerized and deployed as one production service.

What we learned

We learned that reliable generative media requires much more than writing a good prompt.

A production workflow needs:

  • Durable source assets
  • Explicit identity constraints
  • Structured model outputs
  • Provider orchestration
  • Content hashes
  • Provenance manifests
  • Automated evaluation
  • Targeted recovery
  • Human approval
  • Exportable lineage

We also learned that product identity and photographic pose must be modeled separately. Preserving the exact reference pose prevents creativity, but ignoring the reference creates identity drift.

Most importantly, we learned why Genblaze and Backblaze B2 belong together: Genblaze controls how media is generated, while B2 preserves what happened before, during, and after generation.

What's next for BrandBlaze

Next, we want to add:

  • Multiple reference angles for stronger 3D identity evidence
  • Category-aware identity contracts for fashion, packaging, electronics, and furniture
  • Campaign-level visual consistency scoring
  • Configurable creative-freedom controls
  • Human-editable identity constraints
  • Automatic channel resizing and safe-zone validation
  • Shareable approval galleries
  • Campaign ZIP export
  • Cost and latency analytics
  • Searchable B2 asset libraries
  • Team review workflows
  • Learning from approved and rejected generations

Our long-term vision is for BrandBlaze to become visual CI/CD for commercial media: every generated asset is produced from a specification, tested against product identity, repaired when possible, approved by a human, and permanently traceable.

Built With

  • ai-agents
  • anthropic-claude
  • backblaze-b2
  • claude-sonnet-4.6
  • computer-vision
  • docker
  • fastapi
  • genblaze
  • generative-ai
  • gmi-cloud
  • image-generation
  • media-provenance
  • multimodal-ai
  • nginx
  • python
  • react
  • render
  • rest-api
  • seedream-5.0-lite
  • sha-256
  • typescript
  • vinext
  • visual-qa
Share this project:

Updates

Submission history