HIP-0506: Hanzo Studio — Agentic Multi-Modal Creative Runtime
Abstract
Hanzo Studio is the one place to generate, refine, curate, and publish creative
work of every modality — image, product photography, packaging, video, music,
voice, 3D, documents (docx/xlsx/pptx/pdf), LaTeX papers, decks, sites, and social/
ad content — driven by chat. You talk to Studio; the agent either runs a saved
workflow or writes and runs arbitrary code in a sandbox; outputs land in one
per-org asset store; you curate, fork, and remix continuously. The the Studio engine node
editor becomes an Advanced view over the same substrate. This is a
composition of already-shipped Hanzo cloud apps, not a rewrite: exec/
functions (sandbox), tasks (durable queue), gpu (dispatch), connectorruntime
(Google Drive et al.). One and only one way.
Specification
1. Two planes — control vs compute (never braided)
Control plane = the Go cloud binary (apps.Wire) owns all state in one binary:
tenancy/IAM/session, the durable tasks queue (fronts tasks.hanzo.ai), the
gpu dispatch + BYO-GPU supervision, the exec/functions sandbox
(runs python·node·go·deno·bash·container isolated on code-exec-pool),
connectorruntime (external content), and a thin studio app for the
asset catalog/library, presets, and curation (per-org SQLite / Hanzo Base).
Data plane = where compute runs (stateless, no auth logic): GPU graphs on the
Hanzo Studio engine (BYO-GPU or cloud GPU) dispatched via tasks; arbitrary
agent/user code on the exec sandbox.
Security boundary: the control plane never executes agent/user code inline.
Agent code always goes to exec; GPU graphs always through tasks.
go-embed-python is not required — exec is the Python runtime; gpython is a
non-goal; the engine is never rewritten in Go.
2. Execution model — two verbs
The copilot has exactly two backends, both already built:
run(workflow, inputs)→ enqueue ontasks→ GPU worker → outputs.sandbox.exec(lang, code, files?, gpu?)→execapp → outputs.
Node graphs are one shape of (1); anything a node can't express is (2). This is full agentic flexibility with zero new runtime.
3. Creation KINDs + the dynamic questionnaire (core UX)
Each kind of thing = a KIND = parameterized workflow template + a
questionnaire spec. The copilot: (a) you pick/say a KIND; (b) it asks only
what's missing, a generative questionnaire grounded by your presets — never
asking what it can infer; (c) it assembles/updates the backend workflow live
as you chat (node graph via tasks→GPU, or exec code), runs it, shows the
result; (d) you edit the built workflow in Advanced mode or refine by chat.
New KINDs are themselves AI-buildable and saved per-org.
Seed KIND catalog (each = template + questionnaire on the substrate above):
| KIND | Substrate |
|---|---|
| Product photography (multi-view ecom: front·side·back) | Studio try-on/relight graph (karma pipeline generalized) |
| Ghost mannequin (product on invisible form, no person) | try-on graph, ghost preset — a reusable, forkable base |
| 3D fabric-drape form (no person — dress-form/mannequin) | 3D cloth-drape sim to see how fabric hangs/drapes |
| 3D try-on (garment on a 3D avatar/body) | garment → 3D body fit + drape |
| CAD → product mockup (fashion, packaging, any) | CAD/dieline → photoreal mockup graph |
| CAD → 3D product | multi-view 2D → 3D reconstruction (Hunyuan3D-class) |
| Social post / ad / marketing | image·video graph + brand preset + exec (copy, layout) |
| Marketing email | exec (HTML/MJML email + brand preset) |
| Sales deck · investor deck · guide | exec code-canvas + brand preset (Claude-Design pattern) |
| Video | Wan · LTX · Hunyuan · CogVideo |
| Music / audio / song | ACE-Step · mugen |
| Voice / narration | koe · tts · livekit (realtime) |
| Document (docx·xlsx·pptx·pdf) | exec (python-docx/openpyxl/python-pptx/weasyprint) |
| LaTeX academic paper | exec (tectonic/latexmk) — LaTeX, never .md |
| Deck / doc / site / app | exec code-canvas (Claude-Design pattern) |
Preset library: a rich, scrollable catalog of ready-to-use presets — model presets, ghost bodies (2D + 3D forms), ready-to-wear garments, scenes, brand/design-systems, doc/deck templates. Presets are the reuse primitive: save once, fork/remix forever, never re-upload a base.
Template sources — import, don't hand-build
Two existing libraries seed the KIND catalog; almost no pipeline is authored from scratch:
- Generative pipelines = imported Studio workflows. Every vendored node pack
ships canonical example workflows (Wan·LTXVideo·CogVideoX·
HunyuanVideo for video, ACE-Step for music, Hunyuan3D-class for 3D, VideoHelper
for edit). Import those (+ curated community graphs) as ready KIND templates —
the broader set of video/music/3D/voice pipelines is a bulk import, not a
build. A
studio import-workflowsstep registers each pack's examples per-org. - App / site / doc / deck = the hanzo.app template library. The org already
has a deep set:
hanzoai/templates(saas-landing · blog-platform · analytics-dashboard · ai-chat-interface · ecommerce-storefront · social-feed · kanban-board · crypto-portfolio · markdown-editor · …), plusnextjs-template,chat-template,docs-template,papers-template,ecommerce-boilerplate. These ground the app/site KIND (code-canvas viaexec→ preview → deploy via PaaS). The Website/Prototype template picks from this library.
So the "broader set of generative pipelines" and the app/site templates are both imported from what the org already ships, then curated + made KINDs.
4. Presets = the grounded model; multi-view → reusable sources → 3D
Presets are the grounding ("the AI grounded learned model"): model presets, brand/ design-system presets, product & packaging templates. They pre-fill the questionnaire and constrain generation so output is on-brand by default.
Product pipeline (commerce-first):
- Generate ecom product photography in multiple views — front, side, back; each view is saved as a preset/source in the store.
- Saved sources are reused as inputs without re-uploading — base and generated assets are continually refined, sorted, and organized in one library.
- Multi-view 2D → 3D: a workflow spins the saved front/side/back views into a 3D model (Hunyuan3D-class multi-view reconstruction).
- 3D → variants: render the 3D stylized with a model (lifestyle) and product-only without any human (packshot) for social / ads / marketing, and stylized into documents and ad content. From the 3D + brand preset, the same pipeline emits social posts, ads, and videos.
5. Curation → feedback loop → closer each time
Every asset carries a state (draft·approved·queued·published) plus 👍/👎 +
comments. The signal grounds the next run: approved/👍 → positive exemplars
appended to the KIND's preset; 👎 + comment → negative constraints. The copilot
reads recent curation before assembling a workflow, so "more like the approved
ones, avoid the flagged look" is default. Endpoints: POST /v1/library/status
(exists) + POST /v1/library/vote + comments. Optional preset/LoRA distillation
later; no fine-tune required to improve.
6. Change any element · continuous remix
- Change any element: every element is addressable and editable — a strap or
color (masked inpaint), a graph node (Advanced), a slide/cell/paragraph (
exec). Nothing is monolithic; "change X, keep everything else" is a first-class op. - Continuous remix: any output is an input. Remix/variate/fork endlessly; Studio is a loop, not one-shot generation.
7. Fork / clone
Workflows, collections, and design-systems are forkable per-org — clone a
proven workflow or collection to start a new production, document set, site, or
paper series from a known-good baseline (template + presets + curation baseline).
One verb (fork), any object.
8. Surfaces
- Chat-first home (default): monochrome Hanzo look, "What should we create?",
design-system + template + model pickers, projects/assets below. Served by the
studiocloud app. - Advanced mode: the Studio node editor, itself editable by chat (the copilot reads+mutates the graph).
- Specialized editor modes per KIND: LaTeX paper editor (source + live PDF via
exec), CAD→3D viewport, CAD→mockup, deck/doc/site code-canvas. Each is a front-end over the KIND's workflow; the node editor is the universal fallback. - CLI:
hanzo studio(login·generate·run·assets·pull) andhanzo design-sync(register a design-system package/tokens for the org).hanzo.shinstalls the one binary.
9. Connectors — Google Drive (and beyond)
Reuse connectorruntime + provider APIs. Google Drive first: index/read Drive
files (Docs/Sheets/Slides + binaries) into the catalog as references; build/edit/
write-back Docs/Sheets/Slides and generated assets via an exec Drive-API flow.
OAuth per-user (Drive scope), tokens in KMS, per-org. One connector interface;
Notion/S3/GitHub drop in the same seam. The agent treats connector content as
just more inputs/outputs.
10. Multi-modal engines (already in-org / vendored)
Image: Qwen-Image-Edit, Flux, SDXL. Video: wan2.2, ltx, WanVideoWrapper,
LTXVideo, CogVideoX, HunyuanVideo, DiffuEraser, VideoHelperSuite. Music/audio:
ACE-Step, mugen. Voice: koe, tts, livekit/live/stream. 3D:
Hunyuan3D-class packs. Documents/papers: exec libs.
Phased plan (reuse-first)
- Wire copilot →
exec+tasks—sandbox.execandruntools on the existing clients. Unlocks documents, arbitrary generation, Drive edits. - Chat-first monochrome home — rebuild
studio_home.htmlreading/v1/library; templates from vendored packs; KIND questionnaires. - Thin
studiocloud app — port library/catalog/session/billing/presets intoapps.Wire()(per-org SQLite). - Curation + preset feedback loop — votes/comments → preset exemplars.
- Product pipeline — multi-view ecom → saved sources → CAD→mockup, CAD→3D, 3D→(model & packshot)→social/ads/video.
hanzo studio+design-syncCLI; Google Drive connector; specialized editor modes (LaTeX, 3D).
Non-goals
Rewriting the Studio (Python) engine in Go; gpython; embedding torch/CUDA in the Go binary; rebuilding a sandbox or queue (they exist); per-brand forks of the studio surface (white-label by hostname per HIP-0504).
Status
Substrate verified live 2026-07-15: exec/functions (python·node·go·deno·bash·
container), tasks (durable, embedded), gpu + BYO-GPU supervision,
code-exec-pool (2 nodes), studio monochrome + org switcher (v0.15.5), 439
karma assets indexed in-org. The work is composition + the chat-first surface.