TK. Talal Khawaja, home Résumé

Case study · 2026 · Hackathon

BrandPilot Local

A local, review-first creative studio prototype that turns product images and campaign briefs into reviewable marketing concepts, with real SDXL inference verified on AMD Radeon.

AMD AI DevMaster Hackathon (Track 1 Multimodal) · GitHub · 5 Aug 2026

BLFIG. 01 — SYSTEM SKETCHGENERATED FROM STACK · NOT A SCREENSHOTBLFASTAPIPILLOWOPENCVNEXT.JSDOCKERAMD RADEON
Fig. — generated system sketch from the project’s stack. Not a product screenshot.

Overview

BrandPilot Local is a creative studio prototype for small brands and creative teams. It turns a product image and a campaign brief into reviewable, platform-ready marketing concepts. Aqeela Urooj and I built it for Track 1 (Multimodal AI) of the AMD AI DevMaster Hackathon, submitted as a pull request to the official contest repository. I led the project and did the application development, the Radeon integration, the technical documentation and the demo preparation. Aqeela handled product testing, output review, usability feedback and documentation review.

Problem

A single campaign often sits across a prompt tool, a design file, a copy document and an approval thread. That fragmentation slows iteration and makes it hard to see what was approved and why. It can also send product assets to more outside services than a small team would like. We wanted to try a private, review-first alternative built around one end-to-end workflow.

How it works

The flow runs in six steps. Upload a rights-cleared product image. Describe the product, objective, audience, benefits, tone, colours and guardrails. Pick styles and output formats. Generate four concepts. Review them by approving, rejecting, requesting changes or editing copy. Reopen the project later with its state intact.

The Next.js studio talks to a FastAPI backend that validates uploads, checks file signatures, limits file sizes, renames files with UUIDs and serves them only through project-scoped routes. By default the backend returns four labelled mock concepts, so the whole loop can be shown without a GPU. As a temporary, opt-in path, it can talk to a bearer-authenticated worker that runs a pinned Stable Diffusion XL image-to-image pipeline in fp16 on an AMD Radeon GPU through PyTorch on ROCm. The worker loads the model lazily, reuses the pipeline and runs one job at a time. It refuses to fall back to CPU or to mock output.

What was verified, and what wasn't

The project keeps a claim audit, and this write-up follows it.

  • Verified. Real SDXL image-to-image inference ran on AMD Radeon Cloud. The README records the model revision, parameters, cold-load and generation times, peak memory and the output hash. One authenticated FastAPI-to-Radeon job completed on loopback, and its Approved review state persisted. In an earlier session, Chrome reached the authenticated backend through the official tunnel, then created a project and uploaded an image.
  • Blocked. The full public browser-to-Radeon generation never completed. The platform-assigned tunnel hostname didn't resolve in public DNS on the final retry. We used no unofficial tunnel or TLS bypass, and every paid instance was shut down.
  • Not validated. Preservation of logos, product identity and packaging text; warm-run benchmarks; commercial clearance.

Key decisions and trade-offs

  • Mock mode by default, always labelled. Judges and teammates can use the full product without a GPU, and a mock concept can never be mistaken for a real generation.
  • No silent fallback. Experimental mode fails rather than quietly substituting CPU or mock output.
  • Generation is a draft. Nothing counts as done without a human review decision.

What's next

The roadmap lists IP-Adapter, ControlNet, LoRA, masking and compositing, product and logo preservation checks, warm-run benchmarks, permanent hosting and a production security review.

Problem

Small brands often split one campaign across prompt tools, design files, copy documents and approval threads. That slows iteration, weakens traceability, and can expose sensitive product assets to more services than necessary.

Approach

One workspace covers product intake, campaign direction, visual concepts, copy, formats and human review. It runs in clearly labelled mock mode by default. Separately, a single-job ROCm worker running SDXL image-to-image on AMD Radeon was verified, and an authenticated FastAPI job completed on loopback. Every output stays behind a human review state.

My contribution

Project lead: application development, Radeon integration, technical documentation and demo preparation.

  • Talal KhawajaProject lead: application development, Radeon integration, technical documentation and demo preparation
  • Aqeela UroojTeammate

Architecture

01FastAPI02Pillow03OpenCV04Next.js05Docker06AMD Radeon07Python
Diagram — the recorded stack, in project-record order. A sketch, not a screenshot or a data flow.

The detailed architecture for BrandPilot Local hasn’t been documented yet, so this sketch only lists the technologies on the project record. Nothing here is guessed.

Features

  • Validated PNG, JPEG and WebP product-image intake

  • Campaign brief: audience, tone, colours, styles, formats and guardrails

  • Four clearly labelled mock concepts, no GPU needed

  • Approve, reject, request changes and edit copy

  • Pinned SDXL img2img pipeline on AMD Radeon with ROCm

  • Single serialized GPU job, with no CPU or mock fallback in experimental mode

  • Bearer-authenticated experimental connection held only in session storage

Outcome

Submitted to AMD AI DevMaster Hackathon (Track 1 Multimodal) on GitHub, 5 Aug 2026.

Result not recorded.

  • Real SDXL image-to-image inference completed on an AMD Radeon GPU (gfx1100) with ROCm, in one controlled run with recorded timings and output hash.
  • One authenticated FastAPI-to-Radeon job completed on loopback, and its Approved review state persisted.
  • Full public browser-to-Radeon generation was not completed: the platform-assigned tunnel hostname did not resolve in public DNS.

Built with Teqprotech · Python, Scraping & Data Automation.