Content studio
The Content Studio (/space/content) is the generative media pipeline of the Space. It is deep-linkable per media type: /space/content/image, /video, /audio, /model3d — the bare /space/content redirects to Image. Every generated asset lands in the Content Library (/space/content/library).
New to the AI side? Read AI concepts from scratch first — generation models work on the same token/context/sampling ideas as text, just on other modalities (pixels, audio, 3D).
The concepts behind generation
Section titled “The concepts behind generation”Generating an image, video, audio or 3D asset uses a different model modality than text, but the same deep ideas from the AI primer apply:
- A generative model samples. Just like next-token sampling, a diffusion/autoregressive media model produces output from a probability distribution given a prompt — that’s why the same prompt can give different results, and why parameters (steps, guidance, seed) exist to steer it.
- Models are modality-specific. Text, image, video, audio and 3D models are separate model families; the studio filters which generation model runs per group, all under the same BYOK rule — you bring the key, the studio lists what that provider’s model can generate.
- Prompting is the interface. Like chat, a well-formed prompt is how you steer generation; and because media is expensive, every asset is persisted (Postgres + R2) and searchable so you never regenerate what already exists.
Studio groups
Section titled “Studio groups”| Group | Route | What it generates |
|---|---|---|
| Image | /space/content/image |
Images from prompts (and image-to-image) via supported vision providers |
| Video | /space/content/video |
Short-form video generation |
| Audio | /space/content/audio |
Speech/music generation and transcription |
| 3D | /space/content/model3d |
3D model generation |
The studio components (content-studio.tsx, content-group-page.tsx) share a common pipeline: pick a media model (media-model-selector.tsx), configure parameters, generate, and save the result as an asset. Generation runs through the /api/content/* routes backed by provider models.
Model selection
Section titled “Model selection”The media model selector filters the available generation models per group (image/video/audio/3D). Model availability follows the same BYOK rule: you bring the key, the studio lists what that provider can generate. Sampling parameters (steps, guidance, seed) surfaced per model give you the same creativity controls as temperature does for text — see the AI concepts page for the mental model.
Content Library (/space/content/library)
Section titled “Content Library (/space/content/library)”The library (ContentLibrary) is the persistent home of everything generated:
- Assets are stored server-side in
content_assets(Postgres) with media blobs in R2. - Each asset records its type (image/video/audio/model3d), origin (studio group + conversation if generated from chat), and metadata.
- Search and filter across the whole library — find any generated media without digging through chat history.
- Assets can be reused as inputs (e.g. image-to-image) and shared into conversations/artifacts.
From chat to library
Section titled “From chat to library”Artifacts produced in chat (e.g. an image rendered in the artifacts panel) can be promoted into the library, and library assets can be attached back into chat as media context (attachMediaLibrarySnapshot in chat-transport.ts snapshots the current library state for the request context).
Model availability & quotas
Section titled “Model availability & quotas”Generation costs run against your provider billing (BYOK) — the platform never meters or resells media credits. Check the governance page for usage metrics per content request.