OD '26
All Chapters

PART II: WORKING IN OPEN DESIGN · SECTION 07

Decks, Motion, and Images

Presentations, HyperFrames HTML-to-MP4, and AI images

Reading time

24 min

Chapter

07

Decks, Motion, and Images

Presentations, HyperFrames HTML-to-MP4, and AI images

The same brand contract that styles a prototype also styles a deck, a motion graphic, and an image, so one system covers every output format.

7.1 Presentation Decks

Generate a themed deck and cover the available deck styles

Prototypes live in a browser. Decks go to a boardroom, a PDF inbox, or a PowerPoint review. Open Design's deck artifacts are branded, slide-structured HTML documents that export to PPTX, PDF, and five other formats without leaving the four-beat loop you already know.

Slide deck is the second chip on the home composer, and it behaves like every other creation type: pick it, and the agent's job narrows before generation begins. Deck style is a named prompt parameter --- from the default magazine-style layout (called guizang-ppt, featuring a WebGL hero and checklist slides) to the Swiss International grid-anchored style with monochrome accents. The same DESIGN.md token set that colors a prototype also colors a deck: --od-color-primary, --od-color-accent, and --od-type-sans all carry across.

Generate a BlockFrame Deck

The walkthrough below follows a real deck creation flow in Open Design. Instead of starting from a blank canvas, the user chooses Slide deck, selects the Html Ppt Zhangzara Block Frame example prompt, answers the deck intake questions, and lets the agent build a 10-slide internal design-review deck. The important detail is the process: deck mode narrows the agent's job before generation begins.

1

Start on the Home surface and choose a deck template before sending the prompt. In this example, the selected prompt is BlockFrame:

BlockFrame — Neobrutalist deck with pastel-neon color blocks and chunky
black borders. Anything that should feel pop-graphic and design-led:
indie SaaS launches, agency credentials, creative reviews, brand redesigns.
2

Let the intake form constrain the deck. Open Design asks what the deck is about, who it is for, how many slides it should contain, what kind of imagery it should use, and whether to include speaker notes. This is not decoration: those answers become generation context.

3

Answer the brief in the chat. In the captured run, the deck is an internal Design review, aimed at an internal review audience, with 10-12 slides, mostly decorative shapes and minimal photos, and script-like speaker notes under each slide.

4

Watch the generation plan and final preview. The agent copies the BlockFrame example into the project, replaces each slide's content, generates a 10-slide deck, and opens the result in the deck preview. The toolbar shows the deck counter, and the final screenshot shows slide 1 of 10, titled Design Review.

Six Open Design screenshots showing the BlockFrame deck workflow: template selection, project creation, intake questions, answers, generation plan, and final 10-slide deck preview
Figure 7.1 — The deck workflow in Open Design, captured from a real BlockFrame run. The sequence shows template selection on the Home surface, the project opening with the prompt in chat, the quick deck brief, the answered intake form, the agent's slide-by-slide plan, and the final 10-slide Design Review deck preview. User-provided screenshots from Open Design v0.11.0, captured June 2026.

Inside the deck workspace (v0.21.1)

Since 0.20.0 the deck workspace is a proper deck tool, not a web preview with slide numbers. A thumbnail rail runs beside the stage with thumbnails at real slide proportions, and the rail, stage, page counter, and notes stay synchronized --- move to slide 3 anywhere and everything moves to slide 3. Below the stage sits a speaker-notes panel ("SPEAKER NOTES Slide 1/4") that edits in place: click, type, and the note travels with the deck into presenter view. Navigation is keyboard-first --- arrow keys step slides, Home and End jump to the ends, and R resets the deck to slide 1.

The Present menu offers three ways in front of an audience: In this tab (speaker notes in popup window), Fullscreen, and New tab. The first is the one that matters in a boardroom --- presenter view without covering the audience view: your notes open in a separate popup window while the room sees only the slide. Versions are pinned, too --- since 0.15.0 the Versions panel's per-file Download pulls the exact slide file from a chosen version, so "export the deck as it looked before Friday's edits" is a menu action, not an archaeology project.

OpenDesign 0.21.1 deck workspace showing the slide thumbnail rail, stage, page counter, speaker notes panel, and Present, Versions, Export, and Share toolbar
Figure 7.1a — The deck workspace in OpenDesign v0.21.1: thumbnail rail at real slide proportions on the left, live stage in the center, speaker-notes panel beneath, and Present, Versions, Export, Share, and editor hand-off in the toolbar. Screenshot from OpenDesign desktop v0.21.1 (September 2026).
OpenDesign 0.21.1 Present menu showing In this tab with speaker notes in a popup window, Fullscreen, and New tab
Figure 7.1b — The Present menu. "In this tab" puts speaker notes in a popup window so the presenter sees them while the audience sees only the deck. Screenshot from OpenDesign desktop v0.21.1 (September 2026).

Deck Styles and Export Formats

Deck style is a first-class prompt parameter, not a post-generation setting. State it up front or the agent picks guizang-ppt by default.

Deck delivery via the OpenDesign v0.21.1 export menu (September 2026)
Format Use case Notes
PPTX PowerPoint review, stakeholder handoff Editable fidelity since 0.20.0: imported Google Fonts travel into the file, authored line breaks are kept, layered backgrounds survive, and $-sequences land verbatim
Standalone HTML Browser presentation, link-share Offline-safe single file; images, styles, fonts, modules, workers, and nested documents inlined (0.19.2)
PDF Print, email Print-aware layout; page breaks per slide
Image Thumbnails, async review threads Captures the deck frame; respects the active preview viewport
ZIP Archive, asset bundle HTML + extracted assets; editable in any editor
Markdown Version control, review comments Not present in the v0.21.1 export menu --- earlier editions listed it; verify in your build before relying on it
MP4 Social media, async presentation Requires HyperFrames render path (see Section 7.2); not an export-menu entry

The PPTX path earned a specific upgrade in 0.20.0 ("Steady by Design"): editable fidelity. Imported Google Fonts travel into the file, authored line breaks are preserved instead of reflowed, layered backgrounds survive the trip, and $-sequences land verbatim instead of being mangled by cell formatting. The practical consequence: a deck exported to PPTX can be finished in PowerPoint by someone who has never opened Open Design --- which is the handoff most boardrooms actually run on.

Name the deck style in every prompt. Even "use the default style" is better than silence, because it prevents the agent from switching styles across iterations.

Troubleshooting Deck Generation

Deck generation failures are usually prompt-level, not system-level. The agent over-generates text on slides when the prompt is open-ended, and under-specifies layout when the slide count is left implicit. Below are the common failure patterns and their fixes.

Common deck generation issues and fixes
Symptom Cause Fix
Slides overflow with bullet points Prompt did not constrain slide density Add "max 5 words per bullet, max 4 bullets per slide" to the prompt
PPTX opens but slides are flat images, not editable Pre-0.20.0 snapshot pipeline, or the skill took the PDF-to-page fallback (no slides.json emitted) On 0.20.0+ PPTX is editable by default --- fonts, line breaks, layered backgrounds, and $-sequences survive into the file. If slides still arrive as images, iterate with: "Ensure the output includes a slides.json structure for native PPTX export", then re-export
Brand colors are correct in preview but wrong in PPTX PPTX export serializes colors from the slide CSS; theme was not injected before export Re-export after confirming DESIGN.md is selected as the active brand in the project
Deck preview blank or shows loading spinner indefinitely Daemon SSE connection dropped mid-generation Check daemon health at localhost:7456/health; restart if unresponsive

7.2 HyperFrames Motion Graphics

Generate an HTML-to-MP4 motion graphic and understand the render path

Most AI design tools generate static artifacts. Open Design generates motion. The mechanism is HyperFrames (Apache-2.0) — a headless Chrome plus FFmpeg pipeline that renders HTML and CSS animations, GSAP timelines, Lottie files, and Three.js scenes into deterministic, frame-accurate MP4 video. One brand, many surfaces includes video.

HyperFrames is integrated as a first-class citizen in Open Design. The agent skill that produces motion artifacts emits HTML with data-start, data-duration, and data-track-index attributes on each scene block, plus a paused GSAP timeline assigned to window.__timelines. HyperFrames seeks the timeline frame by frame during capture — no real-time playback required.

At the v0.9.0 snapshot the bundle shipped 11 HyperFrames video templates alongside 39 Seedance video prompts; the video-template family has grown since and is browsable under the Video category in the plugin marketplace. One infrastructure change matters more than counts: since 0.20.0, HyperFrames renders from the packaged runtime --- pinned and shipped with the daemon --- so a motion render no longer depends on whatever Chrome install you happen to have. Animation adapters include GSAP, CSS animations, Lottie, Three.js, Anime.js, WAAPI, and custom adapters — giving the agent a broad vocabulary for motion.

Why HyperFrames Instead of Remotion

The competing motion-from-code tool in the agent ecosystem is Remotion, which is React-based. HyperFrames uses plain HTML, CSS, and JavaScript. For AI-generated output, that distinction matters: LLMs produce more reliable plain-HTML motion than they produce React component trees, because HTML/CSS/JS occupies a far larger share of training data than React-specific animation patterns.

My Take

HyperFrames is the most differentiated artifact type in Open Design. I haven't found another agent-native pipeline that renders branded motion from plain HTML. Most hosted tools give you a template library; this gives you a renderer you drive with prompts. The caveat is real: render times make it a deliberate-use feature, not a rapid-fire one. Don't run it on every iteration — use it once the HTML prototype is close to final.

Scene Structure

When you ask the agent to build a motion artifact, the emitted HTML follows a predictable structure. Understanding it helps you write better prompts and debug motion that doesn't render correctly.

Example
<!-- Scene with data attributes for timing -->
<div data-start="2.0"
     data-duration="3.5"
     data-track-index="0"
     class="scene-content">
  <!-- Animation elements here -->
</div>

<!-- GSAP timeline: paused, seekable -->
<script>
const timeline = gsap.timeline({ paused: true });
// animation definitions
window.__timelines = [timeline];
</script>

The paused: true is mandatory. HyperFrames cannot seek a playing timeline — it steps frame by frame and needs to control playback position directly. If the skill emits a timeline that auto-plays, the render will produce duplicate or blurred frames.

Animation Adapters

HyperFrames supports six animation methods out of the box: GSAP, CSS animations (keyframes), Lottie (JSON-based vector animation), Three.js (WebGL 3D), Anime.js, and the Web Animations API (WAAPI). Custom adapters can be added, but those six cover the full range of motion work that agent-generated HTML is likely to produce. When you write a motion prompt, you can specify the animation method or let the agent choose based on the effect you describe:

  • GSAP — best for complex, sequenced, timeline-driven animation
  • CSS animations — simplest; agent defaults to this for straightforward transitions
  • Three.js — for 3D scenes and WebGL effects; render times are longer
  • Lottie — useful when you have an existing Lottie JSON from a designer

For most branded motion artifacts — logo reveals, title cards, data visualizations — GSAP is the practical choice. It produces seekable timelines natively and is the adapter with the most examples in LLM training data.

The HyperFrames Render Pipeline

HTML + CSS + GSAP

Skill emits animated HTML with paused timelines and scene data attributes

Frame Capture

Headless Chrome seeks each frame; N/2 CPU cores (max 4) run in parallel

FFmpeg Encode

Frame sequence encoded to MP4; ~8s capture + ~8s encode for 240 frames

MP4 Output

Deterministic, frame-accurate video file with brand tokens intact

Figure 7.2 — HyperFrames render path from HTML animation to MP4 file. The capture and encode phases run sequentially; total render time scales with frame count and CPU cores available.

7.3 Rendering to MP4

Cover the HTML-to-video render and export

Generating a motion graphic is a two-phase operation: the agent produces the HTML artifact, and then HyperFrames renders it to video. The second phase runs entirely on your machine and is CPU-intensive. Budget for it.

Generate a Motion Artifact

1

Start from the Home prompt, choose HyperFrames, and select the Motion Frames template. The prompt should name the motion concept, the loop length, and the export target:

Design an animated hero — a rotating type ring around a wireframe globe,
with the headline "Reach every country." Loop at 12s, ready for
HyperFrames export.
2

Open Design creates a project with the prompt still visible in the chat pane. The assistant turn should produce a single HTML motion source, not a random prototype: rings, globe, headline, CSS keyframes, and render metadata all belong to the same artifact.

3

Review the poster frame in the preview. If the composition is weak, the typography is flat, or the visual system does not feel like a motion piece, iterate before render. A good HyperFrames result starts as a good HTML frame.

4

Switch to Code and check the motion contract. The source should be plain HTML/CSS, with deterministic keyframes and duration/fps metadata that HyperFrames can capture frame by frame.

5

Only after the preview and source are approved, hand the entry HTML to HyperFrames. The render metadata sets the MP4 target — entry file, duration, fps, frame count, capture method, encoder, and output name.

Open Design Motion Frames workflow showing HyperFrames selection, prompt, generated motion HTML, preview, code view, and render metadata
Figure 7.3 — A Motion Frames workflow for HyperFrames export. The sequence starts on the Home prompt with the HyperFrames chip selected, opens a mock-safe project with the original prompt visible, shows the generated motion HTML and preview, then checks the render metadata before MP4 capture. Entry screen supplied by the author; remaining captures from a local Open Design v0.11.0 project, June 2026.

Render times are not instant. In my June 2026 measurements (v0.9.0 era), a 240-frame (approximately 8-second at 30fps) composition took roughly 16 seconds end-to-end on a standard laptop — 8 seconds for headless Chrome frame capture and 8 seconds for FFmpeg encoding. HyperFrames uses half of available CPU cores by default, capped at 4, and each worker consumes significant RAM. Keep clips short during iteration. Render final quality once the HTML is confirmed correct.

Brand Tokens in Motion

HyperFrames reads brand tokens from DESIGN.md through Open Design's CSS custom property injection. The skill binds --od-color-primary and --od-color-accent into the animation's :root before render:

Example
:root {
  --brand-primary: var(--od-color-primary);
  --brand-accent:  var(--od-color-accent);
  --brand-type:    var(--od-type-sans);
}

.animated-element {
  fill:        var(--brand-primary);
  font-family: var(--brand-type);
}

This binding is what makes one brand, many surfaces real for motion: you do not re-specify colors in the animation prompt. The DESIGN.md carries them, and HyperFrames picks them up through the injected custom properties.

7.4 AI Images

Configure an image provider and generate brand-aligned images

Image generation in the current Open Design build is routed through Media providers, not a separate image-only settings page. The same settings panel holds keys and gateways for image, video, audio, search, and related media services. Once a provider is configured there, Image mode can use it as part of the project workflow: prompt, provider, model, aspect ratio, negative prompt, generated files, and reuse notes stay beside the design artifact.

Expanding Beyond Image Providers

The important architectural shift is that Open Design treats generated media as a shared capability. In Settings, open Media providers. That panel exposes provider cards such as Nano Banana, OpenRouter, SenseAudio, Tavily Search, and Volcengine Ark (Doubao). Not every entry is an image generator: SenseAudio is audio, Tavily is web research, and Volcengine is used for Seedance / Seedream-style media workflows. The point is that media credentials live in one place, and projects call the provider they need.

As of v0.21.1 the panel separates configured providers from unset ones. In my install, MiniMax, Nano Banana, OpenAI, OpenRouter, and xAI Grok Imagine hold credentials; ElevenLabs, Fal.ai, FishAudio, ImageRouter, Leonardo.ai, SenseAudio, Tavily Search, and Volcengine Ark (Doubao) wait with a per-provider API key, Base URL, and model field each, and a coming-soon row teases more. You configure only what your workflow needs --- the panel is a bench, not a checklist.

For image work, the two most useful paths are currently Nano Banana and an OpenAI-compatible route such as gpt-image-2. Nano Banana is shown in the settings screen with a Google-hosted default gateway and a configurable model field. OpenRouter is useful when you want one key to reach multiple image or video models. OpenAI gpt-image-2 remains a strong default for clean product imagery, illustration, and brand-safe campaign assets. The workflow does not change when you swap providers: the project records the selected model and the media dispatcher writes the resulting files into the project.

How Media providers map into Image mode
Provider path Use it for What Open Design records
Nano Banana Fast image ideation, campaign stills, product scenes, and design references API key / gateway, model, prompt, aspect ratio, negative prompt, output files
OpenAI gpt-image-2 Polished product imagery, clean illustration, and brand-controlled hero assets Provider model, prompt, generated PNG/JPEG assets, and follow-up regeneration notes
OpenRouter Trying several image/video models behind one key without changing the project flow Gateway URL, selected upstream model, cost / provider choice, output file list
Volcengine Ark / Seedream Image and video pipelines when the campaign needs matching stills and motion Media surface, model, aspect, generated assets, and any downstream video handoff

Configure a Provider and Generate

1

Open Settings → Media providers. Add the key for the provider you want to use. Some image prompts can run through Nano Banana or OpenRouter-backed models; this template is an image-to-image edit, so the library description points it at the OpenAI image route, gpt-image-2, with a reference image uploaded alongside the prompt.

2

Pick a real template from the image library. In the example, the selected template is Illustration - Crayon Kid-Drawing Rework. The template is not a blank image prompt; it already encodes the style transfer: keep the reference layout, redraw it with wobbly crayon strokes, replace the palette with playful colors, and add childlike details such as stars, clouds, rainbows, candy, and a smiling sun.

Rework the given image into a crayon-style illustration,
transforming the entire scene into something that feels hand-drawn
by a 10-year-old. Preserve the general layout and spatial relationships
of the original image.
3

Upload the reference image and send the template prompt. Open Design keeps the prompt in the chat pane while the output appears as an image file in the project workspace. The process keeps the chosen template, provider route, reference image, generated file, and prompt reviewable together.

Mode: image-to-image edit
Provider route: gpt-image-2
Input: uploaded reference image
Output: generated crayon illustration
4

Review the generated image in the image viewer. If the output loses the reference structure, ask for a stricter layout-preserving pass. If the drawing is too polished, ask for more uneven crayon texture and simpler childlike forms.

Open Design real crayon image template workflow showing Media providers, Crayon Kid-Drawing template selection, and generated crayon output
Figure 7.4 — A real Open Design image-template workflow. The sequence starts with Media providers, then selects the Illustration - Crayon Kid-Drawing Rework template from the library, and ends with the generated crayon image in the Open Design image viewer. Screenshots supplied by the author, captured June 2026.

The Image Prompt Library

Image templates are useful because they encode repeatable visual operations. The Crayon Kid-Drawing template is a good example: it is not asking for a generic "cute image." It defines a style-transfer operation, states that the layout must be preserved, names the crayon palette, describes the texture, adds childlike embellishments, and includes a negative prompt that blocks photorealism, vector sharpness, dark palettes, and watermarks. That is the kind of prompt a designer can reuse, critique, and improve.

The same library also contains prompt templates that are not style-transfer jobs. For example, Illustrated City Food Map starts from a different design intent: generate a hand-drawn, watercolor-style tourist map with numbered local food specialties, landmarks, and a legend. That is a different reusable operation from the crayon edit. One preserves an uploaded reference and changes its style; the other creates a new illustrated information artifact from a structured brief.

Open Design project created from the Illustrated City Food Map image template, showing the template prompt and preparing state
Figure 7.5 — Additional image-template example — Illustrated City Food Map creates a hand-drawn food-map brief rather than a style-transfer edit. The screenshot shows the real Open Design project creation state, with the prompt visible in chat and the workspace preparing the image output. Screenshot supplied by the author, captured June 2026.
My Take

The template library is the important UI here. It turns image generation from a blank prompt box into a catalog of named design operations: style transfer, poster generation, UI rework, portrait treatment, explainer slides, and so on. The provider matters, but the template is what makes the result repeatable.

7.5 One Brand Across Every Format

Show the same brand carrying across deck, motion, and image

One brand, many surfaces is not a slogan — it's an architectural property. The DESIGN.md binds once and flows to all three artifact renderers without re-specification. This section shows how the binding works and where it can break down.

The Renderer Map

Each artifact type has a dedicated renderer. The brand tokens arrive through the same CSS custom property injection regardless of which renderer picks them up.

Artifact renderers in OpenDesign v0.21.1 (September 2026)
Artifact Renderer Export Brand token entry point
Presentation deck Deck skill → sandboxed srcdoc iframe PPTX, PDF, image, HTML, ZIP --od-color-*, --od-type-* injected into slide CSS
Motion graphic HyperFrames (headless Chrome + FFmpeg) MP4 --od-color-*, --od-type-* injected before frame capture
AI image Image provider API (BYOK) or OpenDesign Cloud subscription (Seedream 5.0 Pro, GPT Image 2.0, Nano Banana 2.0) PNG, embedded asset DESIGN.md visual_voice + color tokens serialized to image prompt text
Web/mobile prototype Prototype skill → sandboxed srcdoc iframe HTML, ZIP --od-color-*, --od-type-* injected into prototype CSS

Brand Consistency in Practice

The deck and motion renderers consume brand tokens directly as CSS custom properties — the mapping is exact. The image renderer converts tokens to natural language before passing them to the image API. That conversion introduces interpretation. A deck with --od-color-primary: #0B5FFF renders that exact blue; an image prompt that says "brand blue" may render differently across providers and runs.

Consistent token binding (deck + motion):

# DESIGN.md active
# Deck: --od-color-primary renders exact hex
# Motion: HyperFrames reads same CSS var
# Both: deterministic brand color output

Lossy token binding (image generation):

# DESIGN.md active
# Image: tokens serialized to text prompt
# Provider interprets "brand blue" loosely
# Different runs, different blue shades
Figure 7.6 — Brand token binding is deterministic for deck and motion artifacts; image generation introduces a natural-language translation step that can produce variation across runs.

This is not a bug in Open Design — it's an inherent property of image generation APIs. The practical mitigation is to write an explicit visual_voice section in your DESIGN.md that describes color mood precisely: "deep saturated cobalt, not navy, not royal blue." The more specific the language, the less the API interprets.

A Single Project, Three Formats

The strongest demonstration of one brand, many surfaces is running all three artifact types inside a single project with one DESIGN.md. The brand tokens are bound once at the project level; every generation reads from the same source.

1

Create a new project. Author or import a DESIGN.md with colors, type, and a visual_voice section.

2

Generate a 6-slide deck using the guizang-ppt style. Export to HTML.

3

In the same project, generate a 10-second HyperFrames title card animation. The colors and typeface come directly from the DESIGN.md — no color re-specification in the prompt.

4

Generate a hero image for the deck cover using the configured image provider. Compare the image output against the deck slides: type and primary color should match. If there is drift in the image, tighten the visual_voice field and regenerate.

DESIGN.md

One brand contract
--od-color-primary
--od-color-accent
--od-type-sans
visual_voice

Deck

Deck skill
CSS custom properties
injected into slide CSS
→ PPTX / PDF / HTML

Motion

HyperFrames skill
CSS vars injected
before frame capture
→ MP4

Image

Image skill
Tokens serialized
to prompt text
→ PNG / embedded

Figure 7.7 — One project, three artifact types (deck, motion, image), one DESIGN.md. Brand tokens flow from a single source to each renderer; deck and motion bindings are deterministic via CSS custom properties, image binding passes through a natural-language translation step. Schematic illustration (not a screenshot).

When Brand Consistency Breaks

Two failure modes break cross-format consistency:

Brand consistency failure modes and fixes
Symptom Cause Fix
Deck and motion use different primary color Two DESIGN.md files in the project, one per artifact Consolidate to a single DESIGN.md at the project root
Image colors drift across regenerations Image prompt text is too vague about color Specify color precisely in visual_voice: hue, saturation, lightness intent
PPTX fonts don't match deck preview PPTX export uses system fonts; web font from DESIGN.md not embedded Use fonts with broad system availability or embed via PPTX font embedding option
Motion animation uses wrong accent color Skill emitted hardcoded hex instead of var(--od-color-accent) Iterate prompt: "Use CSS custom properties for all colors, not hardcoded values"

The "one brand, many surfaces" principle depends on one DESIGN.md file per project. If you create artifact-specific overrides by editing the DESIGN.md between generations, you introduce drift. Keep one canonical brand file and use prompt instructions for artifact-specific adjustments — don't mutate the source of truth.

7.6 Image Generation, Unlocked

Subscription models join the BYOK bench

Every image workflow in this chapter so far assumed you bring your own key. That changed on August 11, 2026, when v0.19.0 added subscription image generation: an Open Design subscription unlocks three flagship models --- Seedream 5.0 Pro, GPT Image 2.0, and Nano Banana 2.0 --- through Open Design Cloud, with no provider key to configure. Video generation runs through the same Vela integration, so one sign-in covers motion as well as stills.

The two paths coexist, and they solve different problems. BYOK still lives in Settings → Media providers, where MiniMax, Nano Banana, OpenAI, OpenRouter, xAI Grok Imagine, Volcengine Ark (Seedream), SenseAudio, Tavily, and more each take their own credential. The subscription path skips that panel entirely --- you sign in, pick a model, and generate.

Image generation paths in OpenDesign v0.21.1 (September 2026)
PathWhere inference runsModelsKey needed?Best for
BYOK --- Media providersThe provider's API, billed to your accountNano Banana, gpt-image-2, OpenRouter, Volcengine Ark / SeedreamYes --- one key per providerTeams with existing provider contracts or hard cost ceilings
Subscription --- Open Design CloudOpen Design Cloud, via the Vela integrationSeedream 5.0 Pro, GPT Image 2.0, Nano Banana 2.0No --- subscription sign-in onlyTeams that won't hand out API keys; the fastest first image

The agent flow is tighter than the BYOK flow from section 7.4. When a model publishes its parameters, the agent passes multiple reference images plus an explicit aspect ratio, resolution, and quality instead of hoping the defaults land. Requests are checked before generation, so a malformed brief fails fast instead of burning a paid call. Progress stays visible while the model runs, output paths come straight from the daemon, and one transient post-tool interruption can recover without dropping the result --- I've watched a generation survive a hiccup that would have orphaned the file in June.

Two refinements in v0.19.1 (August 13, 2026) matter daily. New image and video outputs auto-open in the preview when they land, and an explicitly named artifact updates in place instead of spawning a numbered duplicate. Ask for hero-cover.png twice and you get one file, revised --- not hero-cover-2.png cluttering the project.

Open Design image model picker showing the three subscription models --- Seedream 5.0 Pro, GPT Image 2.0, and Nano Banana 2.0 --- listed alongside the BYOK provider entries
Figure 7.8 — The image model picker with the subscription tier. The three Open Design Cloud models sit beside the BYOK providers from section 7.4; picking one needs no key, only a sign-in. Real screenshot from Open Design desktop v0.19.2 (August 2026).

The brand story doesn't change. Subscription or BYOK, the image still reads your DESIGN.md visual_voice on the way out --- one brand, many surfaces, now with one less key to manage.

My Take

Subscription image generation closes the key-management gap for teams that won't hand out API keys. I've watched design teams stall for a week waiting on a Volcengine or OpenAI credential to clear procurement; the subscription path turns that into a sign-in. I still keep one BYOK provider configured as a fallback --- vendor independence is the whole point of this book --- but for a team's first week with Open Design, this is the path I recommend.

Next Chapter

The Preview and Export Pipeline

Sandboxed iframe to HTML, PDF, PPTX, image, ZIP, and MP4

Continue Reading

©2026 Mehran Mozaffari. Free for personal/noncommercial use (CC BY-NC-ND 4.0); commercial license required for business use.