Skip to content

Releases

v1.11.1

Choose a tag to compare

@selfhosthub selfhosthub released this 26 Oct 09:18

Studio 1.11.1

Upgrade impact: No action required. Pull the new images and restart.

Components: api 1.9.1, ui 1.6.0, workers 1.11.2, console 1.9.1 (unchanged).

Security

  • Certificate trust fix for the eMudhra emSign CA incident. Images build with uv 0.13.5 and
    pip 26.2.2, which stop trusting the affected certificates.
  • Runtime images no longer include pip. Nothing in a running Studio uses it, so it no longer
    ships.
  • The studio-workers package publishes with the patched PyPI publishing action.

Studio's own HTTPS calls already used the fixed certificate bundle in 1.11.0.

Images

All 9 images published to GHCR with tags :1.11.1 and :latest.

docker pull ghcr.io/selfhosthub/studio-api:1.11.1
docker pull ghcr.io/selfhosthub/studio-ui:1.11.1
docker pull ghcr.io/selfhosthub/studio-worker-general:1.11.1
docker pull ghcr.io/selfhosthub/studio-worker-transfer:1.11.1
docker pull ghcr.io/selfhosthub/studio-worker-video:1.11.1
docker pull ghcr.io/selfhosthub/studio-worker-comfyui:1.11.1
docker pull ghcr.io/selfhosthub/studio-worker-audio:1.11.1
docker pull ghcr.io/selfhosthub/studio-core:1.11.1
docker pull ghcr.io/selfhosthub/studio-full:1.11.1

Operators normally pull these via studio-console rather than directly.

Baked tools

  • studio-console 1.9.1 - baked into studio-core and studio-full images.

v1.11.0

Choose a tag to compare

@selfhosthub selfhosthub released this 26 Oct 07:52

Studio 1.11.0

Upgrade impact: Back up the database before you upgrade. On first boot, migrations encrypt
the secrets, tokens and webhook values already stored, and there is no downgrade path after
that. Nothing else to do: the encryption key is the one console already set at install.

Components: api 1.9.0, ui 1.6.0, workers 1.11.1, console 1.9.1 (unchanged).

New

  • Every secret Studio stores is encrypted at rest. Organization secrets, provider
    credentials, webhook tokens, secret node parameters and run-form secrets are sealed in the
    database, and a write guard refuses any plaintext secret before it reaches a table.
  • Members see secrets as configured, never as values. Secret fields, headers and node
    webhook values stay with admins; copies, imports and marketplace installs drop them.
  • Wait for Webhook checks the callback's auth. API Key or JWT auth with no secret answers 401.
  • Logs and tracebacks are scrubbed of secret values in the API and the workers.
  • Steps are called nodes everywhere a user reads them, and every page uses one label per thing.
  • Notifications can be deleted or marked unread, and a rejected approval records its reason.

Fixed

  • Chatterbox Turbo text to speech works. Every Turbo job failed on load before this release.
  • Runs, approvals and manual nodes hand off correctly: a skipped first node, an approval,
    a rerun approval and a manual node after an approval each wait or complete as they should.
  • Organization settings save only the section you edit, so saving one form no longer
    overwrites another.
  • Lists fit phones: tables keep the name and actions, dialogs scroll inside themselves.
  • Files and audit logs search on the server, and files keep their real upload names.
  • Run actions are limited to the run's owner or an admin, and the webhook token is admin only.
  • Dependencies refreshed: Pillow 13, next 16.4, cloudflared 2026.10.3, PyJWT 2.15.0,
    certifi, urllib3 and the Debian base packages.

Catalog

  • 23 providers move one patch version: node wording, services in create, read, update, delete
    order, and the Discord webhook URL treated as a secret. OpenAI Chat Completion sends
    max_completion_tokens.
  • Docs catalog 1.0.4: node wording throughout.

Images

All 9 images published to GHCR with tags :1.11.0 and :latest.

docker pull ghcr.io/selfhosthub/studio-api:1.11.0
docker pull ghcr.io/selfhosthub/studio-ui:1.11.0
docker pull ghcr.io/selfhosthub/studio-worker-general:1.11.0
docker pull ghcr.io/selfhosthub/studio-worker-transfer:1.11.0
docker pull ghcr.io/selfhosthub/studio-worker-video:1.11.0
docker pull ghcr.io/selfhosthub/studio-worker-comfyui:1.11.0
docker pull ghcr.io/selfhosthub/studio-worker-audio:1.11.0
docker pull ghcr.io/selfhosthub/studio-core:1.11.0
docker pull ghcr.io/selfhosthub/studio-full:1.11.0

Operators normally pull these via studio-console rather than directly.

Baked tools

  • studio-console 1.9.1 - baked into studio-core and studio-full images.

v1.10.0

Choose a tag to compare

@selfhosthub selfhosthub released this 18 Sep 06:35

Studio 1.10.0

Upgrade impact: No action required. Workers keep working on the fleet shared secret; the
new enrollment path is opt in. SHS_MAX_UPLOAD_SIZE_MB defaults to 1024 and only refuses
what was already too large to store.

Components: api 1.8.0, ui 1.5.1, workers 1.11.0, console 1.9.1 (unchanged).

New

  • Workers can enroll with their own revocable credential. A super admin mints a
    single-use join token scoped to named queues, the worker exchanges it once for its own
    credential, and that credential bounds which queues the worker may claim. Revoking one
    credential cuts off one machine and leaves the rest of the fleet alone.
  • A worker from outside the deployment waits for approval. Registering with the shared
    secret from a machine that is not part of the deployment files a pending request instead
    of joining. Approve or reject it under Infrastructure > Workers; approving hands that
    worker its own credential.
  • Refused credential requests are recorded. Every refusal in the worker credential gate
    writes an access-denied audit event naming the worker, the job and the reason.

Fixed

  • Wait for Webhook parks the run and resumes on the callback, instead of occupying a
    worker while it waits.
  • Uploads are bounded. The API refuses a request body over SHS_MAX_UPLOAD_SIZE_MB with
    a 413 naming the limit.
  • Files with the same name keep their own bytes. Library uploads are stored under their
    resource id, replacing a file writes the new file beside the old one so copies that share
    it are untouched, and deleting a step's copy leaves the library file in place.
  • Storage totals count every file under an organization's folder.
  • Stale worker rows clear once a deregistered worker passes the retention window.
  • Open notification sockets stop holding a database connection for the life of the socket.
  • The worker enrollment panels refresh with the Infrastructure page, so a new pending
    request appears without reloading the browser.

Catalog

  • shs/core 1.0.1: the Wait for Webhook step runs inline in the API.
  • Provider docs: the YouTube token check uses the OAuth Playground, and the super-admin doc
    carries the upload size row.

v1.9.0

Choose a tag to compare

@selfhosthub selfhosthub released this 30 Aug 05:12

Upgrade impact

No breaking changes. No action required on upgrade.

Operators running native (non-Docker) workers get a new option, not a requirement:
a worker can now authenticate with its own credential instead of the fleet shared
secret. SHS_WORKER_SHARED_SECRET keeps working exactly as before and every
existing worker is unaffected.

Components: api 1.7.0, ui 1.4.0, workers 1.10.0.

New

  • Worker enrollment. A super admin mints a single-use join token under
    Infrastructure -> Workers, scoped to named queues. The worker exchanges it once
    with studio-workers enroll --join-token <token> and keeps its own credential.
    That credential bounds which queues the worker may claim, and revoking it cuts
    off one machine without touching any other worker. Only hashes are stored, so a
    token and a credential are each shown exactly once.
  • Inbound webhooks can start a workflow. A workflow carries a declarative
    webhook trigger config: it answers a sender's URL-verification handshake, and
    it verifies signatures over the raw request body, which is what Slack's v0=
    scheme requires. Bodies parse by content type, and a body that will not parse is
    rejected rather than dispatched as empty.
  • Narrate in one language, prompt the images in another. Scene Content
    Designer takes an optional Image Prompt Language alongside its existing
    Language. Left on "Same as narration" it behaves exactly as before.

Fixed

  • The language you pick on the run form reaches every step. Picking Japanese
    produced a Japanese story and then English scenes, images and narration. A
    submitted value now wins over any stored copy, including inside {{ }}
    expressions, which is what feeds the uploaded video's language tags.
  • Prompt dropdowns show real names, not raw codes. A Language dropdown read
    "En, Es, Ja" because install discarded the display labels a prompt package
    ships. All 19 now arrive, English first then alphabetical.
  • A generated image reports the seed that made it. ComfyUI runs asked for a
    random seed reported seed: 0 on every image, so nothing could be reproduced.
  • The Subtitle Style dropdown does what it says. Standard burns one caption
    line per phrase; Karaoke keeps the word-by-word highlight. Both rendered the
    highlight before. The lit word also no longer grows its background box.
  • Auto-subtitles work on a job with no narration text.
  • Stripe steps send nested fields correctly. Anything with structure inside it
    (metadata, address, line_items, payment_method_types) reached Stripe as
    unreadable text with no error on our side.
  • Provider credential UX: Refresh appears only where a token can be refreshed,
    a non-expiring OAuth token reads as valid, and the workflow credential banner
    uses the same validity rule as everything else.

Security

  • The provider template renderer in the generic HTTP adapter is sandboxed.
  • An enrolled worker's queue claim is bounded by its credential's recorded scope.
    Previously any holder of the fleet secret could register for any allowed queue.

Catalog, published separately

Catalog content reaches every instance through the marketplace poll, not through
this upgrade. You do not need 1.9.0 to get it.

Fourteen providers become available: Airtable, Claude, Discord, Gemini, Google,
Instagram, Notion, Perplexity, Slack, Stripe, Telegram, Trello, Twilio and
Typeform. Email is not among them: it has no send transport yet.

Also ComfyUI 1.2.2, Leonardo 1.0.1, and the Scene Designer, Story Generator and
YouTube Metadata prompts at 1.0.1. Every released third-party provider doc now
points at that provider's own terms.

One thing here does need 1.9.0: Scene Content Designer's separate Image Prompt
Language is a prompt change, but the run-form ordering and label fixes it relies
on are platform code.

Images

All 9 images published to GHCR with tags :1.9.0 and :latest.

docker pull ghcr.io/selfhosthub/studio-api:1.9.0
docker pull ghcr.io/selfhosthub/studio-ui:1.9.0
docker pull ghcr.io/selfhosthub/studio-worker-general:1.9.0
docker pull ghcr.io/selfhosthub/studio-worker-transfer:1.9.0
docker pull ghcr.io/selfhosthub/studio-worker-video:1.9.0
docker pull ghcr.io/selfhosthub/studio-worker-comfyui:1.9.0
docker pull ghcr.io/selfhosthub/studio-worker-audio:1.9.0
docker pull ghcr.io/selfhosthub/studio-core:1.9.0
docker pull ghcr.io/selfhosthub/studio-full:1.9.0

Operators normally pull these via studio-console rather than directly.

Baked tools

  • studio-console 1.9.1 - baked into studio-core and studio-full images.

v1.8.0

Choose a tag to compare

@selfhosthub selfhosthub released this 21 Aug 23:22

Studio 1.8.0

Upgrade impact

subtitles_backend: "openai" is removed. It required shs/video below 1.1.0 and a
video worker image from before this release. Stored workflows are migrated on
upgrade, so no manual edit is needed.

Requires shs/video 1.1.0 or later.

Video worker

  • Subtitles transcribe about 2.3x quicker on CPU, measured at 14.4s to 6.2s on
    64 seconds of narration.
  • The video worker image drops from 2.92 GB to 1.26 GB and no longer requests a
    GPU, so it runs on any box.
  • Whisper model files persist on the workspace volume instead of downloading
    again on every container recreate.
  • A worker whose transcription engine or model cache path is unusable says so at
    startup instead of failing the first job.

Catalog

  • shs/video 1.1.0.
  • ComfyUI Text to Image (Flux.1 Schnell) 1.2.2 and (Flux.1 Schnell GGUF) 1.2.3.
  • The Schnell VAE is marked as a gated download. The provider docs show the file
    set and the access column per package, so gated files are visible before
    install.

Also

  • Workers verify their declared requirements before registering.
  • Compose parity fails on any undeclared difference between the two composes.
  • Healthchecks address 127.0.0.1.
  • The api, core, full and worker images carry the patched util-linux packages.

Components

api 1.6.1, ui 1.3.2, workers 1.9.0.

Images

All 9 images published to GHCR with tags :1.8.0 and :latest.

docker pull ghcr.io/selfhosthub/studio-api:1.8.0
docker pull ghcr.io/selfhosthub/studio-ui:1.8.0
docker pull ghcr.io/selfhosthub/studio-worker-general:1.8.0
docker pull ghcr.io/selfhosthub/studio-worker-transfer:1.8.0
docker pull ghcr.io/selfhosthub/studio-worker-video:1.8.0
docker pull ghcr.io/selfhosthub/studio-worker-comfyui:1.8.0
docker pull ghcr.io/selfhosthub/studio-worker-audio:1.8.0
docker pull ghcr.io/selfhosthub/studio-core:1.8.0
docker pull ghcr.io/selfhosthub/studio-full:1.8.0

Operators normally pull these via studio-console rather than directly.

Baked tools

  • studio-console 1.9.1 - baked into studio-core and studio-full images.

v1.7.0

Choose a tag to compare

@selfhosthub selfhosthub released this 17 Aug 06:11

Upgrade impact

  • A schema migration runs on start. It backfills provider credentials to the
    provider slug and settles any instance carrying more than one active version of
    a provider. No action needed.
  • Restart ComfyUI workers after adding model files. A worker reads what its
    ComfyUI accepts at startup.
  • ComfyUI models can live where ComfyUI Manager puts them, subfolders
    included. Packages resolve against the host at run time.

Provider versions

  • One current version per provider slug, enforced in the database.
  • Upgrades retire the outgoing version in the same transaction, and the
    marketplace reports the installed version immediately.
  • Credentials key on the provider slug: enter an API key once and it carries
    across every future upgrade.
  • A workflow step resolves its parameter schema from the current version.
  • Uninstall reports its outcome accurately, and unregisters by provider row id so
    other versions keep serving.

ComfyUI

  • Workers resolve model names against the host that runs the job, so a package
    runs wherever the operator keeps their models.
  • Catalog manifests declare ComfyUI Manager's save paths.
  • Package manifests accept a subfolder after the model kind.

Elsewhere

  • The Documentation menu reaches the docs index for every role.
  • The provider docs page keeps its selection in the URL, so doc links are
    shareable and the back button works.
  • Dashboard chrome mounts once from an authenticated route group.
  • One notification socket serves the session.
  • Nested array fields in the step-config sub-panes edit correctly.
  • CI action refs and container images are pinned by commit SHA and digest.

Components

api 1.6.0, ui 1.3.2, workers 1.8.0

Images

All 9 images published to GHCR with tags :1.7.0 and :latest.

docker pull ghcr.io/selfhosthub/studio-api:1.7.0
docker pull ghcr.io/selfhosthub/studio-ui:1.7.0
docker pull ghcr.io/selfhosthub/studio-worker-general:1.7.0
docker pull ghcr.io/selfhosthub/studio-worker-transfer:1.7.0
docker pull ghcr.io/selfhosthub/studio-worker-video:1.7.0
docker pull ghcr.io/selfhosthub/studio-worker-comfyui:1.7.0
docker pull ghcr.io/selfhosthub/studio-worker-audio:1.7.0
docker pull ghcr.io/selfhosthub/studio-core:1.7.0
docker pull ghcr.io/selfhosthub/studio-full:1.7.0

Operators normally pull these via studio-console rather than directly.

Baked tools

  • studio-console 1.9.1 - baked into studio-core and studio-full images.

v1.6.0

Choose a tag to compare

@selfhosthub selfhosthub released this 14 Aug 19:48

1.6.0

Upgrade: pull and restart. No migrations, no config changes.

Features

  • ComfyUI marketplace available to super admins on all shapes (split, core, full), with the upload page alongside it
  • Four ComfyUI packages in the community catalog: Flux.1 Schnell txt2img, Flux.1 Schnell GGUF, Flux.2 Klein txt2img, Flux.2 Klein imgedit
  • Workflow file import resolves provider and AI prompt slugs to installed ids, so imported steps arrive linked
  • Import reports uninstalled slugs by step and slug, and completes
  • faceless-video-pipeline 1.1.0: metadata step feeding video and YouTube upload

Fixes

  • Redirects keep the request scheme, so https behind a tunnel stays https
  • nginx issues relative redirects, keeping internal hostnames out of responses
  • ComfyUI worker drops a spurious warning about its own model parameter

Pins

  • cloudflared image pinned, gated against versions.json
  • studio-console 1.9.1

Components

api 1.5.1, ui 1.3.1, workers 1.7.1

Images

All 9 images published to GHCR with tags :1.6.0 and :latest.

docker pull ghcr.io/selfhosthub/studio-api:1.6.0
docker pull ghcr.io/selfhosthub/studio-ui:1.6.0
docker pull ghcr.io/selfhosthub/studio-worker-general:1.6.0
docker pull ghcr.io/selfhosthub/studio-worker-transfer:1.6.0
docker pull ghcr.io/selfhosthub/studio-worker-video:1.6.0
docker pull ghcr.io/selfhosthub/studio-worker-comfyui:1.6.0
docker pull ghcr.io/selfhosthub/studio-worker-audio:1.6.0
docker pull ghcr.io/selfhosthub/studio-core:1.6.0
docker pull ghcr.io/selfhosthub/studio-full:1.6.0

Operators normally pull these via studio-console rather than directly.

Baked tools

  • studio-console 1.9.1 - baked into studio-core and studio-full images.

v1.5.0

Choose a tag to compare

@selfhosthub selfhosthub released this 13 Aug 05:57

Studio 1.5.0

Custom image dimensions. The ComfyUI dimensions field is now type-or-pick:
choose a suggested size or type any WxH (for example 2560x1440). With Fast Mode
on (the default), your size is the output target and generation stays at the
model's native resolution. With Fast Mode off you are setting raw generation
dimensions, so sizes must be multiples of 16 inside the model's generation
band; out-of-range sizes fail upfront with a clear message.

Admin password reset. Admins can set a one-time password for a member from
the members table. The member signs in with it and must set their own password
before anything else; enforcement is server-side.

OAuth and link fixes on Core and Full. The API now derives its public link
base from SHS_PUBLIC_API_URL, and existing installs pick the value up
automatically on their next boot. OAuth connections, webhook URLs, and
provider-fetched file links use it. SHS_API_BASE_URL keeps working as a
fallback.

Marketplace hardening. Package uploads are validated against the service's
parameter contract (types and value sets). Unknown job parameters are logged by
name. Workflow steps select ComfyUI work by package; the legacy model selector
is removed, and stored workflows keep running through automatic translation.

Updated templates. Faceless Video 1.0.2 and AI Image Generator 1.1.0 adopt
the new dimensions field and package selection.

Images

All 9 images published to GHCR with tags :1.5.0 and :latest.

docker pull ghcr.io/selfhosthub/studio-api:1.5.0
docker pull ghcr.io/selfhosthub/studio-ui:1.5.0
docker pull ghcr.io/selfhosthub/studio-worker-general:1.5.0
docker pull ghcr.io/selfhosthub/studio-worker-transfer:1.5.0
docker pull ghcr.io/selfhosthub/studio-worker-video:1.5.0
docker pull ghcr.io/selfhosthub/studio-worker-comfyui:1.5.0
docker pull ghcr.io/selfhosthub/studio-worker-audio:1.5.0
docker pull ghcr.io/selfhosthub/studio-core:1.5.0
docker pull ghcr.io/selfhosthub/studio-full:1.5.0

Operators normally pull these via studio-console rather than directly.

Baked tools

  • studio-console 1.9.0 - baked into studio-core and studio-full images.

v1.4.1

Choose a tag to compare

@selfhosthub selfhosthub released this 12 Aug 09:17

Studio 1.4.1 is a bug-fix release.

Fixed: catalog workflows with AI prompts failed at Run. On 1.4.0, running
a workflow installed from the catalog that uses an AI prompt template (Text
to Speech, Faceless Video, AI Image Generator) failed at submit with an
"Unknown form fields" error on the very fields the form showed. The form now
accepts every prompt variable the prompt declares. Workflows you edited and
saved in the workflow editor were not affected.

Console: pinned to 1.9.0.

No operator action needed: pull the new images and restart, or run
studio-console upgrade.

Images

All 9 images published to GHCR with tags :1.4.1 and :latest.

docker pull ghcr.io/selfhosthub/studio-api:1.4.1
docker pull ghcr.io/selfhosthub/studio-ui:1.4.1
docker pull ghcr.io/selfhosthub/studio-worker-general:1.4.1
docker pull ghcr.io/selfhosthub/studio-worker-transfer:1.4.1
docker pull ghcr.io/selfhosthub/studio-worker-video:1.4.1
docker pull ghcr.io/selfhosthub/studio-worker-comfyui:1.4.1
docker pull ghcr.io/selfhosthub/studio-worker-audio:1.4.1
docker pull ghcr.io/selfhosthub/studio-core:1.4.1
docker pull ghcr.io/selfhosthub/studio-full:1.4.1

Operators normally pull these via studio-console rather than directly.

Baked tools

  • studio-console 1.9.0 - baked into studio-core and studio-full images.

v1.4.0

Choose a tag to compare

@selfhosthub selfhosthub released this 10 Aug 20:06

Worker storage

  • Worker images now run as uid 1000 (previously a system uid, ~999). If you run
    workers hand-rolled with a bind-mounted storage directory and you adjusted
    ownership for uid 999, either chown the storage tree back to uid 1000 or set
    user: on the worker services in your compose file.
  • Worker scratch output (ComfyUI output staging, video cache, audio staging)
    has moved off the shared /workspace storage mount into container-local
    scratch (/var/tmp/studio-workers). Upgraded split installs keep stale
    ~/.studio/storage/data/ directories on the host; nothing writes to them
    anymore and they are safe to delete.

Platform

  • The API image now ships a launch manifest declaring the split compose
    contract (runtime_user). Studio Console reads it before boot; console
    releases after 1.8.1 will refuse to start worker profiles on images older
    than this release.
  • cryptography upgraded to 50.0.0 in the API image (CVE-2026-69247).

UI

  • Workflows and AI Prompts list footers no longer double the plural
    ("8 workflows", not "8 workflowss").

Images

All 9 images published to GHCR with tags :1.4.0 and :latest.

docker pull ghcr.io/selfhosthub/studio-api:1.4.0
docker pull ghcr.io/selfhosthub/studio-ui:1.4.0
docker pull ghcr.io/selfhosthub/studio-worker-general:1.4.0
docker pull ghcr.io/selfhosthub/studio-worker-transfer:1.4.0
docker pull ghcr.io/selfhosthub/studio-worker-video:1.4.0
docker pull ghcr.io/selfhosthub/studio-worker-comfyui:1.4.0
docker pull ghcr.io/selfhosthub/studio-worker-audio:1.4.0
docker pull ghcr.io/selfhosthub/studio-core:1.4.0
docker pull ghcr.io/selfhosthub/studio-full:1.4.0

Operators normally pull these via studio-console rather than directly.

Baked tools

  • studio-console 1.8.1 - baked into studio-core and studio-full images.