Skip to content

Releases

Tiiny Studio v0.5.1

Choose a tag to compare

@github-actions github-actions released this 01 Nov 22:40
8bce757

0.5.1 (2026-11-01)

Pick the model each tab uses, plus fixes from a day of real use: clearer messages during long jobs, drag and drop in
the desktop app, and a Models list that stays put.

  • Pick the model a tab uses: when more than one installed model can do a tab's job (two image models, Hunyuan3D and
    TRELLIS.2, several voice or song models), the tab shows a card with the model in use. Click it for the list: pick a
    loaded model, or load or unload any of them with its own button. Nothing loads by itself, and each tab remembers its
    choice (#44).
  • Long 3D and video jobs: while the Tiiny is too busy to answer, the studio now says "No answer from the Tiiny yet
    (it's usually just busy)" instead of "Can't reach the Tiiny". A job running past its estimate says "taking longer
    than usual" instead of a finish time that kept moving, and the jobs menu no longer shows a stray "null".
  • Desktop app: dropping a picture from Explorer onto the studio works again (Windows).
  • Models list: stays where you scrolled while it updates, instead of jumping back to the last thing you clicked.
  • Good to know: the Tiiny stops a video after 1 hour (TiinyOS 0.1.38), and the render may keep the NPU busy
    afterwards; unloading the video model frees it. Keep long clips at 480p and 4 steps (7 s takes about 12 minutes).
    A warning in the studio is planned (#80).

Showcase and discussion: Tiiny Studio on TiinyVerse · Tiiny Discord (#project-showcase → Tiiny Studio)

Known Tiiny-side issues and how the studio works around them: Known device issues

Tiiny Studio v0.5.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 03:42
9e1e7bc

0.5.0 (2026-10-31)

Cleanup and accessibility: the studio now works from the keyboard and with screen readers, explains a locked Tiiny,
tells you when a new version is out, and the code underneath was audited and tidied from end to end.

  • Accessibility: the studio now follows WCAG 2.2 level AA (#54). Everything works from the keyboard (the workspace tabs take the arrow keys, thumbnails, voices and the seed are real buttons), dialogs and the Models drawer trap and restore focus, controls have names, jobs are announced to screen readers, both themes meet the contrast ratios, and animations stop when your system asks for reduced motion.
  • After a Tiiny restart: the studio now says the Tiiny is locked and how to unlock it (open the TiinyOS app once, or
    run tiiny login), instead of "Can't reach the Tiiny", and notices the unlock within seconds (#46).
  • New version notice: when a newer release is out, a small pill in the top bar says so; click it for the release notes and a link to the release page, or ✕ to hide it until the next version. The studio asks GitHub once a day (anonymous, nothing about you or your Tiiny); Settings → Check for updates turns it off, and it is off by default in Docker. Nothing is downloaded or installed for you (#45).
  • Video: a clip with no step count now uses 4 steps (the app always did) instead of the device's 7, so a 2 s clip takes about 7 minutes rather than 12.
  • Model icons: a model the Tiiny has no icon for (MiniMax-H3-Turbo) shows a plain chip tile instead of a broken image, and the studio stops asking the Tiiny for it on every redraw (#43).
  • Fixes: chat no longer stays busy forever when the studio restarts mid-reply; Escape stops the OCR/document reader
    as well as closing it; image shortcuts no longer fire behind open dialogs; the jobs pill's NPU % keeps updating; the
    recording level meter moves again; "Delete everything" also clears Chat and Video; a failed voice delete says so (#53).
  • Error handling: a job keeps talking to the device it started on (and sends only that device's key) even if the studio switches devices meanwhile; a result the disk can't hold is reported ("Couldn't save the result") instead of silently missing; a failed or cancelled job leaves no files behind; an answer that isn't JSON, a bad request body or one over 150 MB gets a clear error instead of a crash.
  • Docker: the server never keeps root. It switches to the data folder's owner as before, and to an unprivileged user
    (uid 10001) when root owns the folder (a named volume, or one Docker created); if neither works it says so and stops.
    Rootless Docker/Podman is unchanged.
  • Release builds: each job gets only the permissions it needs, the GitHub Actions, Tauri CLI and Docker base images
    are pinned to exact versions, and a release stops early if the tag, VERSION, Cargo.toml and tauri.conf.json disagree.
  • Under the hood: a full code audit (#55): the web page's code is split into files with shared helpers for the
    Audio, 3D and Video panels; both servers share their helpers; the Rust code uses standard formatting; and every pull
    request now runs formatting, lint (clippy, ruff) and an accessibility check (axe-core) on top of the tests. The
    tests wait for what they need instead of sleeping, and tools/device_watch.py checks before each release whether
    Tiiny has fixed any of the device issues the studio works around.

Showcase and discussion: Tiiny Studio on TiinyVerse · Tiiny Discord (#project-showcase → Tiiny Studio)

Known Tiiny-side issues and how the studio works around them: Known device issues

Tiiny Studio v0.4.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 21:28
d1b90a0

0.4.0 (2026-10-30)

Video with sound, panels that follow the loaded model, and a queue you can leave running overnight.

Video

  • New Video tab for MiniMax-H3-Turbo: write a prompt, or start from a picture, and get a short clip with
    matching sound
    (MP4). Sizes (wide or tall, 480p or 768p), steps and frame rate come from the loaded model. Any
    image has an Animate button that opens it here.
  • Video is slow on the Tiiny: about 7 minutes for 2 seconds at 480p with the default 4 steps (0.1.38), over 15 at
    7 steps, longer for bigger or longer clips. The panel shows the expected time before you start, and each clip says
    how long it took to render.
  • Videos can be scrubbed: both servers now answer byte-range requests for media files.

Panels follow the loaded model (#23)

  • Chat's Thinking switch: models that can't reason (Qwen3-4B-Instruct) no longer show it, models that always reason
    (gpt-oss) say "Always thinks", and the Qwen3.5/3.6 family keeps the on/off switch. Read from the model, for chat and
    the helpers, instead of guessed from its name.
  • Voice: built-in voices to pick from (Qwen3-CustomVoice, MOSS-TTS-Nano), a box to describe a new voice
    (Qwen3-VoiceDesign), your cloned voices (Qwen3-VoiceClone), the style field only where it works, and the model's own
    languages. Before, every voice model was treated as a cloning one.
  • Songs: YuE2-3B works now. Each model's own defaults and limits for steps, temperature, top-k, top-p and length
    (AceStep up to 8 minutes). AceStep gets its own settings: tempo, key, time signature, the language it sings in,
    and things to avoid. Preview and separate tracks only show for SongGeneration, the model that has them.
  • 3D: the loaded model's own detail levels (Hunyuan3D: octree 192/288/384; TRELLIS.2: 512 or 1024 px), sampling
    qualities, a new Mesh quality setting, and texture/simplify only when the model has those steps, with each model's
    own timings. The cut-out prefers an image model that writes a real alpha channel (Qwen-Image).
  • Supertonic-3 speaks over Wi-Fi/LAN. TiinyOS's gateway fails it (it sends the model a name it doesn't know); the
    studio now asks the model's own port directly. Over USB it still can't work, and the Voice panel says so.
  • A "needs Wi-Fi" banner where a model only works over Wi-Fi/LAN and you're on USB (Supertonic-3, GLM-OCR). Text
    mode reads with PP-OCRv6 instead of failing when GLM-OCR is picked over USB.
  • PP-DocLayoutV3 is no longer offered in Text mode: it finds a page's layout but doesn't read text.

Queue and jobs (overnight queues requested on the Tiiny Discord)

  • The jobs menu shows when each job should start and finish, and when the whole queue will be done. Remove all
    waiting
    clears what hasn't started.
  • The desktop app keeps the computer awake while jobs are queued or running (the screen can still turn off).
  • A dropped connection doesn't end a video or 3D job: it keeps trying for about 5 minutes.
  • Results left on the Tiiny are saved automatically: videos and songs/loops from the last day that never reached your
    gallery (the studio was closed mid-render, or another studio made them) are pulled in when you open the studio. The
    first time only takes stock, so old results are never imported. 3D can't be recovered: the device can't list it.
    Two studios sharing one Tiiny each pull the other's recent results.
  • Deleting a song or loop also deletes the Tiiny's copy.
  • The Tiiny's free space is watched: the Models panel shows it, and a job won't start with under 2 GB free (it
    would fail halfway).
  • A chat where the model spends all its tokens thinking and gives no answer (seen once with gpt-oss-20b) now says so,
    instead of showing an empty reply.

Device notes

  • A voice model that fails inside TiinyOS now says so, instead of "The upstream TTS model failed" (on 0.1.38:
    Supertonic-3 over USB, and cloning with MOSS-TTS-Nano; reported to Tiiny).
  • Tested on TiinyOS 0.1.38.

Showcase and discussion: Tiiny Studio on TiinyVerse · Tiiny Discord (#project-showcase → Tiiny Studio)

Tiiny Studio v0.3.2

Choose a tag to compare

@github-actions github-actions released this 29 Oct 21:11
6efbdd8

0.3.2 (2026-10-29)

3D with TRELLIS.2-4B.

  • 3D works with TRELLIS.2-4B (#20, reported on the Tiiny Discord), not only Hunyuan3D. It failed
    with "simplify: Missing stage input 'shape_artifact'": the studio sent every model Hunyuan3D's input names. It now
    asks the loaded 3D model which stages, inputs and settings it takes, and fetches the results TRELLIS keeps on the
    device. A shape-only build with TRELLIS uses its preview model.
  • 3D with two 3D models loaded builds with the one you picked: the device sent an unnamed request to either one.
  • A failed or cancelled 3D build leaves no files behind. It kept its copy of the source picture (and, since 0.3.0,
    the cut-out) without a gallery entry to delete them by.

Showcase and discussion: Tiiny Studio on TiinyVerse · Tiiny Discord (#project-showcase → Tiiny Studio)

Tiiny Studio v0.3.1

Choose a tag to compare

@github-actions github-actions released this 29 Oct 19:28
3279365

0.3.1 (2026-10-29)

Clearer messages found while testing 0.3.0 by hand.

  • A wrong API key now says so. The Models panel, the Image notice and the model cards showed "Device offline" or
    "not installed" when the Tiiny was answering but refused the key; they now say the key was rejected, and where to
    copy the right one (it's easy to grab the device ID instead), with a button to Settings.
  • In Docker, a USB address in 172.17.x.x is explained: Test connection and Settings say it's Docker's own network
    and what to do (Wi-Fi address, the desktop app, or move Docker's network).
  • "Load a chat model" opens the Models panel at the chat models. The panel lists the current workspace's models
    first, but Chat and 3D never matched, so it always started with Image.

Showcase and discussion: Tiiny Studio on TiinyVerse · Tiiny Discord (#project-showcase → Tiiny Studio)

Tiiny Studio v0.3.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 18:26
769bec2

0.3.0 (2026-10-29)

Two requests from the Tiiny Discord and a cleaner 3D, all live-tested on TiinyOS 0.1.37.

  • Create from references (#8, requested on the Tiiny Discord): with an image model that can
    edit (Qwen-Image), Create takes up to 10 reference pictures and makes a brand-new picture from them, in the shape
    you pick. Call them "image 1", "image 2" in the prompt. The gallery marks these REFS, and Reuse brings the
    references back. Create and Edit keep their own pictures.
  • Helpers swap models for you (#5, requested on the Tiiny Discord): Improve prompt, Describe,
    Write lyrics and loop tags no longer ask you to load a chat model first. The studio unloads what's in the way, runs
    the helper, and loads your models back (about 30 s with Qwen-Image loaded). Settings → Model swapping has a global
    switch and one each for Chat tools, Image helpers and Audio helpers, all on by default; off, nothing is loaded or
    unloaded for you. You can also pick which text model the helpers use.
  • 3D: Cut out the subject first (#6), on by default:
    Qwen-Image puts the subject on a transparent background before Hunyuan3D builds it, so the background no longer
    ends up in the model (about 1.5 min more). The studio loads Qwen-Image if needed (Settings → Model swapping → 3D)
    and skips the step for a picture that's already transparent. The 3D view shows the cut-out it was built from.
    Hunyuan3D's own background step is still broken on TiinyOS 0.1.37.
  • Power off works again with TiinyOS 0.1.37 (it didn't on 0.1.36); the known-limits note now says so.

Showcase and discussion: Tiiny Studio on TiinyVerse · Tiiny Discord (#project-showcase → Tiiny Studio)

Tiiny Studio v0.2.1

Choose a tag to compare

@github-actions github-actions released this 28 Oct 22:29
ce15a0a

0.2.1 (2026-10-28)

Fixes from the first day of use, and screenshots in the README.

  • Songs with AceStep (new in TiinyOS 0.1.36) work: the device has no preview for AceStep, so the studio now asks
    for the whole song. A "preview first" request makes an 8-second song.
  • Cancel works while a 3D model or audio is being made. The view redrew every 1.5 s and could swallow the click.
  • A model load the Tiiny gives up on shows an error after about 30 s instead of spinning for 6 minutes.
  • No more stray "null" text in the 3D and Song panels.
  • Test connection spots a relay or proxy (an OpenAI-compatible chat gateway answers like a server but has no Tiiny
    model controls) and says to use the Tiiny's own address, instead of reporting "Connected".
  • Known: Power off doesn't work on the latest TiinyOS; Tiiny says it's a firmware issue fixed in a coming patch.
  • README: screenshots, and a tip for 3D (cut the subject out first: Hunyuan3D builds the background too).

Showcase and discussion: Tiiny Studio on TiinyVerse · Tiiny Discord (#project-showcase → Tiiny Studio)

Tiiny Studio v0.2.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 18:10

0.2.0 (2026-10-28)

The studio is rewritten in Rust and now comes as a desktop app for Windows, macOS and Linux as well as the
Docker server. Same features, same data folder: an existing data/ keeps working. (0.1.0 was never published, so
this is the first public release.)

Desktop app (new)

  • Installers for Windows (setup / .msi, per-user, no admin), macOS (.dmg) and Linux (.deb, AppImage).
  • Its own window with a tray icon: open, results folder, start at login, power off the Tiiny (with a
    confirmation), quit. A second launch brings the open window forward; window size and position are remembered.
  • Downloads land in your Downloads folder with a "Saved to …" note (never overwriting); the Paste buttons read
    pictures from the system clipboard; the microphone works in Chat and Audio.
  • Only this computer can reach it; the settings text says so instead of showing Docker/.env advice.

Server (Rust)

  • The same routes and answers as the Python server, checked by contract tests that send identical requests to
    both against a fake Tiiny (and compare what each asks the device), plus live runs on a real Tiiny.
  • Docker image built from the Rust server: about 150 MB, multi-arch.

Security (both servers)

  • Other websites can't use the studio: changes sent from another site's page are refused (cross-site request
    forgery), and while network access is off only localhost names are answered (DNS rebinding). Before this, a
    page open in the same browser could, for example, delete everything or power off the Tiiny.

New in both

  • Open folder button in the gallery (on the computer running the studio).
  • Prompt-injection screening for chat attachments: documents are wrapped as untrusted content, the model is
    told never to follow instructions inside them, and suspicious ones are flagged above the reply.
  • Image jobs wait and retry when a freshly loaded model isn't ready yet ("xh2a backend fail").
  • A 3D job's Stop now ends it even if the device stops reporting, instead of holding the device.
  • Privacy notes now explain what the Tiiny itself keeps (since TiinyOS 0.1.36 its vault stores every gateway chat
    as full text, whatever the memory scope) and how to delete a day, with a "What your Tiiny keeps" guide.
  • ROADMAP.md: what works, what's planned, known limits.

Checked against TiinyOS device services 0.1.35 and 0.1.36. Tested hands-on: the Windows x64 app and the
Docker image (amd64). The macOS, Linux and Windows ARM apps and the arm64 image are built and smoke-tested by CI
only.


Showcase and discussion: Tiiny Studio on TiinyVerse · Tiiny Discord (#project-showcase → Tiiny Studio)