baz.studio API

baz media

Manage media files in your project

baz media [options] [command]
OptionDescription
-h, --helpdisplay help for command

baz media upload

Upload an image, video, or audio file to the media library

baz media upload [options] <file>
OptionDescription
--name <name>Custom name for the uploaded file
-h, --helpdisplay help for command
Custom names:
  If --name has no extension, Baz keeps the source file extension.
  For example, uploading file.png with --name hero stores the file as hero.png.

Examples:
  baz media upload ./hero.png --project-id <id>
  baz media upload ./hero.png --name landing-page-hero --project-id <id> --json

baz media list

List uploaded media files for the active project

baz media list [options]
OptionDescription
--type <type>Filter by type: image, video, audio, logo
--limit <n>Max items to show Default: 50.
-h, --helpdisplay help for command

baz media compress

Generate lightweight preview renditions for all project video media (run after batch-uploading clips)

baz media compress [options]
OptionDescription
--infoReport master vs preview sizes without compressing anything
--fix-mastersLosslessly remux non-faststart masters in place first (fixes slow Lambda frame extraction on first export)
-h, --helpdisplay help for command

baz media transcribe-voiceover

Transcribe an uploaded audio asset with Whisper word timestamps and persist voiceover alignment metadata

baz media transcribe-voiceover [options] <assetId>
OptionDescription
-h, --helpdisplay help for command

baz media music

Generate a music bed directly in Bazaar via Suno (sunoapi.org)

baz media music [options] <prompt>
OptionDescription
--title <title>Track title (custom mode)
--lyrics <lyrics>Exact lyrics to sing — only with --vocal in custom mode
--model <model>Suno model: V4, V4_5, V4_5PLUS, V4_5ALL, V5, V5_5 Default: V4_5PLUS.
--vocalGenerate a sung track instead of an instrumental
--simpleNon-custom mode: treat the prompt as a plain description
--negative <tags>Comma-separated tags to exclude
-h, --helpdisplay help for command
What it does:
  Generates a music bed through Bazaar via sunoapi.org (a third-party Suno
  reseller, not Suno's own API). Every call returns TWO takes and is billed
  once, so both land in your media library and you pick the better one.
  Tracks are re-hosted on Bazaar R2 immediately — the provider deletes its
  own copies after 15 days.

Modes:
  Custom mode (default)   You control style and title. Use for beds.
  Non-custom (--simple)   One plain description, lyrics auto-written.

Instrumental vs vocal:
  Instrumental is the default — it is what a bed under a voiceover needs.
  Pass --vocal for a sung track. In custom mode + --vocal, --lyrics is the
  LITERAL lyrics that get sung, not a description of them.

Models:
  V4_5PLUS   Richer sound, up to 8 min — default, best for instrumental beds
  V4_5ALL    Better song structure, up to 8 min — best for vocal tracks
  V5         Latest, most expressive, fastest — hero tracks
  V5_5       Use when a persona/custom voice is applied
  V4_5       Genre blending, up to 8 min
  V4         Highest audio quality, up to 4 min

Inputs:
  prompt (positional)  The style description in custom mode; the whole brief with --simple.
  --title              Track title (custom mode). Defaults to a title derived from the prompt.
  --lyrics             Exact lyrics. Only valid with --vocal in custom mode.
  --model              One of the models above (default V4_5PLUS).
  --vocal              Generate a sung track instead of an instrumental.
  --simple             Non-custom mode: send the prompt as a plain description.
  --negative           Comma-separated tags to keep out, e.g. "Male Vocals, Distorted Guitar".

Duration:
  Suno decides the length from the style; there is no duration parameter.
  Describe the shape you want ("quiet 8-second intro, drop, long ambient
  fade-out") and trim the returned track. The CLI prints each take's duration.

Examples:
  baz media music "Cinematic ambient pad, slow swells, warm analog synths, minor key, editorial tension, no drums"
  baz media music --title "Argyle Estate Reel" "Moody luxury deep house, 123 BPM, atmospheric piano intro, hard drop, long elegant fade-out"
  baz media music --model V4_5ALL --vocal --lyrics "$(cat hook.txt)" "Upbeat electronic pop, optimistic major key"
  baz media music --simple "A short relaxing piano tune"

Live pricing:
  baz balance --pricing

baz media tts

Generate a voiceover audio asset directly in Bazaar

Alias: voiceover

baz media tts [options] <text>
OptionDescription
--provider <provider>TTS provider: gemini, minimax, or elevenlabs Default: gemini.
--voice-id <voiceId>Provider voice ID. Gemini accepts Gemini voice names; ElevenLabs requires a connected voice
--voice-style <style>Gemini voice direction, e.g. warm documentary narrator, calm British presenter
--emotion <emotion>MiniMax emotion hint, e.g. happy, sad, calm, excited
--speed <speed>MiniMax speed: 0.5-2.0
--pitch <pitch>MiniMax pitch: -12 to 12
--rawUse text exactly as the spoken script; disables MiniMax AI voice interpretation
-h, --helpdisplay help for command
What it does:
  Generates one voiceover/audio asset directly in Bazaar and attaches it to the active project.
  Use this when you want reusable narration audio without going through the chat agent.

Pricing estimate:
  --provider gemini      $0.08 per started minute  (Gemini 3.1 Flash TTS Preview)
  --provider minimax     $0.06 per started 1k characters  (Minimax Speech)
  --provider elevenlabs  $0.44 per estimated minute, or $0.00/min with connected BYOK

Provider notes:
  gemini is the default and uses Google Gemini TTS voices through Bazaar.
  gemini supports --voice-id plus --voice-style for delivery direction.
  If --voice-style is omitted, Bazaar reuses the project's stored voice style or derives one from project context.
  Supported Gemini voice IDs include Kore (default), Zephyr, Puck, Charon, Aoede, Leda, Orus, Fenrir.
  minimax supports emotion, speed, pitch, and optional AI voice interpretation.
  elevenlabs requires a connected ElevenLabs key/default voice or a --voice-id.

Examples:
  baz media tts --provider gemini "Welcome to the listing. This home opens with warm natural light."
  baz media tts --provider gemini --voice-id Zephyr --voice-style "warm, calm, real-estate documentary narrator" "A calm editorial narration for a finance explainer."
  baz media tts --provider minimax --emotion happy --speed 1.05 "Three reasons this product launch matters."

Live pricing:
  baz balance --pricing

baz media imagegen2

Generate an Image Gen 2 image directly in Bazaar (verbatim prompt, no agent rewriting)

baz media imagegen2 [options] <prompt>
OptionDescription
--provider <provider>Image provider: openai, nanobanana, flux, xai, or pony Default: openai.
--aspect-ratio <ratio>Aspect ratio: 1:1, 16:9, 9:16, 4:3, 3:4, 21:9 Default: 1:1.
--format <fmt>Output format: jpg, png, webp Default: jpg.
--resolution <resolution>xAI output resolution: 1k or 2k Default: 1k.
--input-image <path>Repeatable reference image input. Limits: openai=8, nanobanana=3, flux=8, xai=3, pony=0
-h, --helpdisplay help for command
What it does:
  Generates or edits one image directly through Bazaar Image Gen 2.
  The prompt is sent verbatim; the autonomous video agent does not rewrite it.
  The output is uploaded to Bazaar media and returned as a reusable URL/asset id.

Inputs:
  prompt                 Required text prompt.
  --input-image <path>   Repeatable reference image input. Limits: openai=8, nanobanana=3, flux=8, xai=3, pony=0.
  --aspect-ratio         Output shape. Common: 1:1, 16:9, 9:16, 4:3, 3:4, 21:9.
  --format               Output image format: jpg, png, or webp.
  --resolution           xAI output resolution: 1k or 2k.

Pricing estimate:
  --provider openai      $0.10 per image  (OpenAI GPT Image 2)
  --provider nanobanana  $0.08 per image  (NanoBanana)
  --provider flux        $0.08 per image  (FLUX 2 Pro)
  --provider xai         $0.16 at 1k; $0.20 at 2k  (xAI Grok Imagine Image Quality)
  --provider pony        $0.03 per image  (CyberRealistic Pony v1.25)
  If --provider is omitted, the CLI uses openai/Image Gen 2.

Provider notes:
  openai accepts up to eight --input-image references.
  xai uses the literal grok-imagine-image-quality model and accepts up to three ordered references.
  flux is best for clean text-to-image generation.
  nanobanana is available as a separate provider/fallback.
  pony (CyberRealistic Pony) is the bikini / tactical / thirst-bar still path; text-to-image only. Or use: baz media pony "..."

Examples:
  baz media imagegen2 --aspect-ratio 16:9 "Luxury real estate dusk exterior, cinematic"
  baz media imagegen2 --input-image ./kitchen.jpg "Make this kitchen brighter and editorial"
  baz media imagegen2 --provider xai --resolution 2k --aspect-ratio 9:16 --input-image ./person.jpg --input-image ./outfit.jpg "Keep the same person and apply the outfit"
  baz media imagegen2 --provider flux --format webp "Minimal SaaS dashboard hero image"
  baz media imagegen2 --provider pony --aspect-ratio 9:16 "score_9, 1girl adult blonde, black string bikini, rooftop pool"
  baz media pony --aspect-ratio 9:16 "score_9, 1girl adult blonde, white string bikini, prone on range mat"

Live pricing:
  baz balance --pricing

baz media pony

Generate a CyberRealistic Pony still via Bazaar (bikini / tactical / thirst bar)

baz media pony [options] <prompt>
OptionDescription
--aspect-ratio <ratio>Aspect ratio: 1:1, 16:9, 9:16, 4:3, 3:4, … Default: 9:16.
--format <fmt>Output format: jpg, png, webp Default: png.
-h, --helpdisplay help for command
What it does:
  Alias for: baz media imagegen2 --provider pony
  Uses Bazaar's Replicate token — customer only needs BAZ_API_KEY + balance.
  Best for suggestive-but-clothed stills that xAI/flux/nanobanana reject.

Pricing estimate: $0.03 per image

Examples:
  baz media pony "score_9, 1girl adult blonde, black string bikini, rooftop pool, 9:16"
  baz media pony --aspect-ratio 9:16 "score_9, prone on range mat, white string bikini, rifle"

Then animate:
  baz media grok-video --image <downloaded-or-url> --duration 5 "Look back over shoulder; locked camera"

Live pricing:
  baz balance --pricing

baz media describe

Describe what is in an image (URL or local file) using a cheap vision model

Alias: classify

baz media describe [options] <image>
OptionDescription
--prompt <prompt>What to ask about the image
--label <label>Context label to save the description under Default: image-analysis.
--no-saveDo not save the description into project context
-h, --helpdisplay help for command

baz media seedance1

Generate a Seedance 1 video directly in Bazaar

baz media seedance1 [options] <prompt>
OptionDescription
--model <model>Seedance 1 model: seedance-1-lite or seedance-1-pro-fast Default: seedance-1-pro-fast.
--aspect-ratio <ratio>Aspect ratio: 16:9, 9:16, 1:1 Default: 16:9.
--resolution <resolution>Resolution: 480p, 720p, 1080p Default: 720p.
--duration <seconds>Duration in seconds: 2-12 Default: 5.
--image <path>First-frame image for image-to-video
--last-frame <path>Last-frame image for frame interpolation
-h, --helpdisplay help for command
What it does:
  Generates a short Seedance 1 AI video directly through Bazaar media generation.
  The prompt is sent verbatim; the autonomous video agent does not rewrite it.
  The output is uploaded to Bazaar media and returned as a reusable URL/asset id.

Models:
  seedance-1-lite       Seedance 1 Lite on Replicate (lower cost)
  seedance-1-pro-fast   Seedance 1 Pro Fast on Replicate (default, higher quality)

Inputs:
  prompt                 Required text prompt.
  --model                seedance-1-lite or seedance-1-pro-fast (default seedance-1-pro-fast).
  --image <path>         Optional first-frame image for image-to-video.
  --last-frame <path>    Optional ending frame for frame interpolation.
  --aspect-ratio         Output video shape: 16:9, 9:16, or 1:1.
  --resolution           Output resolution: 480p, 720p, or 1080p.
  --duration             Output duration in seconds: 2-12.

Pricing estimate:
  Seedance 1 is billed per second of output by resolution:
    480p   $0.0360/second
    720p   $0.0720/second
    1080p  $0.1440/second
  Estimated charge = price/second * duration. The CLI prints this estimate before generating.

Examples:
  baz media seedance1 --resolution 720p --duration 5 "Slow dolly through a sunlit real estate living room"
  baz media seedance1 --model seedance-1-lite --resolution 480p --duration 4 "Fast social teaser for a property listing"
  baz media seedance1 --aspect-ratio 9:16 --image ./exterior.jpg "Subtle cinematic push-in at golden hour"

Live pricing:
  baz balance --pricing

baz media seedance2

Generate a Seedance 2.0 video directly in Bazaar

baz media seedance2 [options] <prompt>
OptionDescription
--model <model>Seedance model ID
--aspect-ratio <ratio>Aspect ratio: 16:9, 9:16, 1:1 Default: 16:9.
--resolution <resolution>Resolution: 480p, 720p, 1080p Default: 720p.
--duration <seconds>Duration in seconds: 2-12 Default: 5.
--image <path>First-frame image for image-to-video
--last-frame <path>Last-frame image for frame interpolation
--video <path>Repeatable source video for video-to-video (max 3)
--reference-image <path>Repeatable identity/wardrobe reference image (max 8)
-h, --helpdisplay help for command
What it does:
  Generates a short Seedance 2.0 AI video directly through Bazaar media generation.
  The prompt is sent verbatim; the autonomous video agent does not rewrite it.
  The output is uploaded to Bazaar media and returned as a reusable URL/asset id.

Models:
  doubao-seedance-2-0-260128          Seedance 2.0 on Volcengine Ark
  doubao-seedance-2-0-fast-260128     Seedance 2.0 Fast on Volcengine Ark
  dreamina-seedance-2-0-260128        Seedance 2.0 on BytePlus ModelArk
  dreamina-seedance-2-0-fast-260128   Seedance 2.0 Fast on BytePlus ModelArk
  If --model is omitted, Bazaar uses the server-configured default model.

Inputs:
  prompt                      Required text prompt.
  --image <path>              Optional first-frame image for image-to-video.
  --last-frame <path>         Optional ending frame for interpolation when supported.
  --video <path>              Repeatable source video for video-to-video (max 3).
  --reference-image <path>    Repeatable identity/wardrobe image refs (max 8; not locked as first frame).
  --aspect-ratio              Output video shape: 16:9, 9:16, or 1:1.
  --resolution                Output resolution: 480p, 720p, or 1080p.
  --duration                  Output duration in seconds: 2-12.

Pricing estimate:
  Seedance 2 is billed from actual Ark token usage returned by the completed task.
  Bazaar price uses a 50% gross margin over the provider token cost.
  Standard, no video input: 480p/720p $0.0140/1K tokens, 1080p $0.0154/1K tokens
  Standard, video input:    480p/720p $0.0086/1K tokens, 1080p $0.0094/1K tokens
  Fast, no video input:     480p/720p $0.0112/1K tokens
  Fast, video input:        480p/720p $0.0066/1K tokens
  Seedance 2.0 Fast does not support 1080p output; use standard Seedance 2.0 for 1080p.

Reference frames / video-to-video:
  --image uploads a first-frame image for image-to-video.
  --last-frame uploads an ending frame for interpolation when supported by the model.
  --video uploads a source clip whose motion/composition should transfer (IG reel recreate path).
  --reference-image uploads character/outfit refs used as Ark reference_image (not first frame).
  Passing --video switches billing to the cheaper Ark video-input token rate.

Examples:
  baz media seedance2 --resolution 720p --duration 5 "Slow dolly through a sunlit real estate living room"
  baz media seedance2 --aspect-ratio 9:16 --duration 6 --image ./exterior.jpg "Subtle cinematic push-in at golden hour"
  baz media seedance2 --aspect-ratio 9:16 --video ./source-reel.mp4 --reference-image ./face-sheet.jpg --reference-image ./outfit.jpg "Recreate the motion from the source video with this woman and outfit"
  baz media seedance2 --model dreamina-seedance-2-0-260128 --resolution 720p "Polished product teaser"
  baz media seedance2 --model doubao-seedance-2-0-fast-260128 --resolution 480p "Fast social teaser for a property listing"

Live pricing:
  baz balance --pricing

baz media grok-video

Generate a Grok Imagine Video 1.5 clip (image-to-video or reference-to-video)

baz media grok-video [options] <prompt>
OptionDescription
--image <path>Approved still for image-to-video (locked first frame)
--reference-image <path>Repeatable reference image for reference-to-video (1-7)
--aspect-ratio <ratio>Aspect ratio: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3
--resolution <resolution>i2v: 720p or 1080p (r2v is 720p only) Default: 720p.
--duration <seconds>Duration in seconds: 1-15
-h, --helpdisplay help for command
What it does:
  Generates a Grok Imagine Video 1.5 clip through one of two mutually exclusive modes:
  1) --image              image-to-video — locks your approved still as frame zero (default for persona clips)
  2) --reference-image    reference-to-video — 1-7 refs guide a newly composed opening frame
  The output is copied from xAI's temporary URL into Bazaar media and returned as a reusable asset.

Model and limits:
  grok-imagine-video-1.5
  --image               Single local still for image-to-video (cannot combine with --reference-image).
  --reference-image     Repeatable; 1-7 local image files for reference-to-video.
  --duration            1-15 seconds (default: 5 for i2v, 3 for r2v).
  --aspect-ratio        1:1, 16:9, 9:16, 4:3, 3:4, 3:2, or 2:3 (i2v inherits the still if omitted; r2v defaults to 9:16).
  --resolution          i2v: 720p (default) or 1080p. r2v: 720p only.

Important:
  Do not mix --image and --reference-image; xAI rejects combined modes.
  For reference-to-video, address ordered images as <IMAGE_1>, <IMAGE_2>, … (1-indexed).
  Prefer image-to-video once a human has approved the still — that is the identity-safe path.

Pricing estimate (Bazaar):
  image-to-video 720p:  $0.32/sec
  image-to-video 1080p: $0.56/sec
  reference-to-video:   $0.32/sec

Examples:
  baz media grok-video --image ./approved-look.jpg --resolution 1080p --duration 5 "She settles into a ready stance; camera locked-off tripod, real-time speed"
  baz media grok-video --reference-image ./face-sheet.jpg --reference-image ./outfit.jpg --aspect-ratio 9:16 --duration 3 "The woman from <IMAGE_1> wearing the kit from <IMAGE_2> walks toward camera"

Live pricing:
  baz balance --pricing