Skip to main content
What’s new in Orisu: features, nodes, and fixes that affect your day-to-day work. Newest updates first.
A share link you send stays valid
  • Turning sharing on for an agent that was already shared used to mint a new URL and quietly kill the old one, so a link you’d sent a client could stop working because you opened the share panel again in another tab, or asked Claude to share the same agent twice. Sharing an already-shared agent now hands back the same URL.
  • Only the Regenerate link button changes the URL, which is still the way to cut off anyone holding the old one.
  • Nothing about this changes what viewers see: a share link has always rendered your agent as it is now, so later edits and runs show up on the same link without re-sharing.
Text layers render again, and video no longer trails off into blank
  • Captions came out invisible in rendered video and images. The renderer drew text using whatever fonts the server had installed, and the server had none, so the text was drawn with nothing while the pictures and clips composited normally. Fonts now ship with the renderer, so text in a render matches what you see on the canvas, for all seven font choices and every weight.
  • Renders could cut your footage short and finish on blank background. When the composer couldn’t read a clip’s length it quietly assumed five seconds, so a longer video was trimmed to five and the rest of the composition came out as background colour, with the run still reporting success. Clip length now comes from the file’s own metadata, and a length that genuinely can’t be read stops the run with an error instead of guessing.
  • Relatedly, the timeline used to measure at least ten seconds even over a shorter clip, so a caption dragged across the visible ruler could be stored ending later than the video did. The ruler now measures your real content, and a caption sitting on top of a clip no longer stretches the render past it. Set Duration s when you do want a video longer than your footage.
Frames: one way to place text and pictures
  • Every layer is now a frame, with one set of controls whether it holds a caption or a picture. Frame size decides how the container sizes itself; Content fit decides how the content sits inside it — Fill, Fit or Stretch for media, Shrink text to fit for captions, which steps the font down until it fits rather than running off the canvas. Text that still doesn’t fit is clipped to its frame instead of spilling across the render.
  • An anchor grid picks where content sits in its frame: which part of a picture survives a Fill crop, or where a caption sits vertically. Squeezing a landscape clip into a vertical ad used to always crop to the centre, which tends to cut off the subject.
  • Lock frame freezes a frame’s position and size while its content keeps reflowing, so a placeholder you’ve placed stays put. Captions that still don’t fit at the smallest size get a red outline in the editor instead of being quietly clipped in the render.
See every loop variant before you render them
  • When a connection feeds the composer several values with Loop on, the editor showed only the first one, so you styled against one caption and found out how the rest looked after the renders finished. A variant control above the canvas now pages through all of them.
Loop one connection without splitting the others
  • Turning on Loop for a single connection now fans out only that connection’s items. Every other input on the port comes along inside each run. Two product shots looping under one fixed logo gives you two runs that each contain the logo, instead of three runs where the logo sits by itself in the third.
  • The port-level Loop switch still iterates the connections themselves. Two looping connections multiply their items against each other, and a connection with Loop off adds no dimension of its own.
  • The Loop switch on a connection works without turning on the port switch first, and what it shows now matches what the run does. Some composers that had been fanning out quietly started layering instead, so two images on one upload connection rendered a single composition rather than one per image. That is fixed.
  • Cost estimates and the iteration preview follow the same rule, so the number of runs you see before pressing Run is the number you get.
Composer: one connection is one layer
  • An upload holding two images used to create a hidden layer for each one and composite them into the same render, so the second painted over the first and you got a single image out. Each connection is now one layer, and turning on Loop for it repeats the whole composition once per image. Compositions you already saved keep the position, size, and styling you set.
Composer renders images saved from Google Photos and Gemini
  • PNGs exported by Google carry Content Credentials, and the renderer misread that data as a broken image and dropped the layer. The composition came out missing exactly those pictures while the run still reported success, so there was nothing to tell you what had happened. Those images render now, and a source that genuinely cannot be read gets logged instead of vanishing quietly.
List Selector takes any kind of list
  • List Selector accepts image, video, audio, and file lists, not only text. Items show as previews you can actually look at, both on the card and in the focus dialog, instead of reading “[object Object]”.
Turn run results into input nodes
  • A node that ran many times can drop its finished results onto the canvas as separate input nodes, grouped together. Pick through them, delete the ones you don’t want, and wire the rest into the next step. The original node and its connections stay as they were, and one undo reverses the whole thing.
  • An upload node holding a single image, video, or audio file renders as a full media card like the generate nodes do, instead of a padded thumbnail row.
The canvas stops locking you out mid-run
  • Starting a run and then editing the canvas could put the studio into “Updated elsewhere” and freeze saving, even with nobody else on the account. Your own autosave was racing your own run trigger. Both now take turns, so that state only appears when something really did change your canvas somewhere else.
  • A run always executes the canvas as it stood when you pressed Run, so editing during one is fine. The toolbar now says “edits apply to the next run” instead of leaving you guessing.
Edits that never reached the server now do
  • Undo, redo, paste, duplicate, deleting with the keyboard, renaming a node, removing an edge, reordering ports, every group action, and converting results to input nodes did not mark the canvas as unsaved. Each one usually got carried along by whatever you changed next, but on its own it could survive right up until you reloaded, and then vanish. All of them save now, as does a workflow the copilot builds for you.
  • A save that finished while you kept typing used to report “Saved”. Anything typed during it wasn’t in that save, so closing the tab in the next few seconds lost it. The status stays honest until your latest edit is actually stored.
Saving recovers on its own
  • A failed save retries by itself instead of sitting behind a red label, and offers “Retry now” if you don’t want to wait. Losing your connection says so plainly, keeps your work on the device, and sends it up the moment you’re back online.
Pick a version when a canvas changed in two places
  • If another tab or a connected app saves the canvas while you’re editing, Orisu now asks which version to keep instead of telling you to reload. Keeping yours files theirs in version history first, so it’s still recoverable.
  • You also find out before it becomes a problem: a “Changed elsewhere” note appears with an option to catch up, rather than waiting for your next save to be refused.
When a model refuses, you now see why
  • A rejected generation used to show up as “Unprocessable Entity” and nothing else. The node now tells you what the model objected to, which input caused it, and what to change. If a model blocks your source video for showing a real person’s likeness, that is what the node says, and it points at the video input.
  • The message also tells you whether retrying is worth it. A busy model or a timeout means run the step again. A content-policy block, or a setting the model won’t accept, means change something first.
  • The full message is still under “View details”, and the copy button still copies it if you need to send it to us.
  • App mode, the asset editor, and runs started from the API or a connected assistant all show the same wording.
Connect from ChatGPT
  • ChatGPT can now connect to Orisu over MCP. Connecting used to fail right after sign-in because our OAuth discovery metadata strayed from the spec in ways ChatGPT rejects; the metadata is now spec-correct for strict clients. If an earlier attempt failed, remove the connector in ChatGPT and add it again so it refetches the metadata.
Dubbing no longer holds thousands of credits up front
  • Runs priced per second of video (dubbing, for example) reserve credits based on the input’s length. When the length wasn’t known yet, which was common for a run started right after an upload, the reserve fell back to the one-hour ceiling: roughly 4,500 credits held for a 5-second clip. Orisu now reads the duration from the video file itself when it reserves, so the hold matches the clip. That 5-second dub now reserves about 6 credits. The final charge was always based on actual length, but the oversized hold could block the run entirely on a smaller balance.
Reloading during a run picks up the live state
  • Refresh the studio while a run is in flight and the canvas now catches up: nodes that are running show as running instead of sitting idle, and progress keeps streaming from where the run actually is.
  • Pressing Run responds immediately. The run shows as queued right away, the toolbar reads “Starting…” while it waits for a worker, and a notice appears if it stays queued for more than 30 seconds.
Smoother canvas navigation
  • Scrolling pans the canvas, pinch or Cmd+scroll zooms, and dragging with the middle mouse button pans. Press F to fit the whole graph in view. The keyboard shortcuts dialog lists the new bindings.
Product from Website runs now use credits
  • A bug left the Product from Website node outside the billing gateway, so extractions ran without drawing credits. Extractions are now billed like every other AI step, and their cost appears in run estimates.
Set a spend cap on any run
  • Runs triggered through the API or a connected assistant accept an optional max_credits cap. When a run reaches it, execution stops before the next billable step: everything generated so far is kept and billed, and nothing else runs. Assistants set the cap from the cost estimate, so a fan-out that turns out bigger than planned can’t drain your balance.
  • Assistants can also seed all of an agent’s input values in one call (set_input_values) and mark an edge with loop: true to run a step once per item of an incoming list. Both save several round-trips when building a workflow from chat.
Small fixes for fan-out workflows
  • Merge Videos now accepts a single connection when it carries a list of clips (the output of a fan-out), with a reminder to check the item count instead of a blocking error.
  • Text added to the Composer starts out presentable: centered, white with a dark outline, and sized to the canvas, instead of tiny black text in the corner. The Composer also warns when a video is connected while the canvas is still set to a square preset.
New node: Product from Website
  • Paste a product URL and the node reads the page and pulls out the product: name, tagline, description, features, price, audience, product images, and the logo. See Product from Website.
  • Generate Text, Generate Image, and Generate Video have a new Product input. Connect the extracted product and its facts flow into the prompt automatically; product images and the logo double as reference images for image and video generation.
  • An optional instructions field steers the extraction (“Focus on the enterprise plan”, “Extract the copy in German”). Connect a list of URLs to process many products in one run.
Model prices corrected against provider rates
  • We re-verified every model’s credit price against the provider’s current list price. Kling 3.0 and Kling O3 generations now cost roughly half of what they did; Kling 2.1, 2.5 Turbo, Elements, O1, and motion control were also corrected, along with FLUX 2 tiers, iC-Light, Flux Fill, camera angle changes, vectorization, and auto-captions.
  • Cost estimates in the studio, API, and connected assistants all use the corrected rates.
Video duration is now a slider with only the values that work
  • The Duration field on Generate Video is a slider that snaps to the clip lengths your selected model supports: 4s / 6s / 8s on Veo 3.1, 5s or 10s on Kling 2.x, 3–15s on Kling 3.0, and so on. You can no longer type a length the model would reject.
  • Switching models carries your duration over to the nearest supported value. Models with a fixed clip length show it as a read-only value, and models that take their length from the source video hide the field.
  • Runs from the API or a connected assistant get the same treatment: an unsupported duration is adjusted to the nearest supported value before the model is called, instead of failing at the provider.
Copilot: your chats are saved
  • Copilot conversations now survive a page refresh. The panel remembers the last conversation for each agent and picks it back up automatically when you return.
  • A history view in the chat panel lists your past conversations for the agent, with titles and timestamps. Open one to continue it, or start a new chat right from the history screen.
  • Errors in the chat now read like sentences instead of raw error codes, and running out of credits opens the upgrade dialog directly.
Run up to a node — test one branch without running the whole graph
  • Connected assistants (via MCP) can now run an agent up to a chosen node: the target node and everything it depends on execute, unchanged upstream steps are reused from cache, and nothing downstream runs. Use it to verify a mid-graph step cheaply before committing to the full pipeline. See the trigger_node_run tool in the tools reference.
  • A new preview_node tool runs a single logic node (Prompt Concatenator, Split Text, If/Else, and friends) in isolation — zero credits, no side effects — so an assistant can check what a node produces before wiring it in.
  • Assistant edits are now safer under concurrency: node edits are checked against the latest saved revision, so a simultaneous edit from the studio fails cleanly instead of being overwritten.
  • Cost estimates now account for fan-out: a node that runs once per item of an upstream list is priced per item instead of being undercounted as a single run.
Upload files through the API
  • POST /v1/assets/upload accepts a multipart/form-data file (up to 100 MB) with your API key and returns an asset reference you can pass straight into an app run’s upload inputs — the raw-bytes alternative to hosting the file at a URL first.
Groups now work like containers
  • Drag a node into a group and it becomes part of it — from then on it moves with the group. Drag it out to detach it. Moving the group itself still carries everything inside, and the frame adjusts to fit its members.
  • Groups and sticky notes no longer count as nodes: workflow node lists, share pages, template details, and cost estimates count only the nodes that actually run.
Small fixes
  • Pasting multi-line text into prompt and instruction editors now keeps your line breaks.
  • Failed nodes show a clearer, more compact error card on the canvas.
  • Share links created by connected assistants now use the app domain and open correctly.
  • Graphs built by connected assistants no longer overlap nodes; auto-layout accounts for each node’s real size, including groups.
  • Brand kit extraction no longer times out on sites that keep network connections open (chat widgets, analytics).
  • Provider and integration logos are readable in dark mode.
Your canvas can no longer be silently overwritten
  • Every save is now checked against the latest version of your workflow on the server. If the same agent was edited somewhere else in the meantime — a second browser tab, a teammate, or the copilot — the studio shows an “Updated elsewhere” notice with a one-click reload instead of overwriting that work. Your local edits are kept safe for recovery after the reload.
  • Run always executes exactly what you see. Pressing Run now saves the canvas and starts the run in a single step, so there’s no window where a just-typed prompt could miss the run.
New-generation models across text, image, and video
  • Claude Fable 5, Claude Opus 4.8, and Claude Sonnet 5 are available on all text nodes. Opus 4.8 comes with a Fast tier — the same model at higher output speed for a higher per-token price — selectable right on the node. Opus 4.5/4.6 per-token pricing was also corrected downward to Anthropic’s current rates.
  • GPT-5.5 (with a Pro tier), GPT-5.4, and GPT-5.4 Mini join the OpenAI family, and Gemini 3.5 Flash and Gemini 3.1 Flash Lite join Gemini.
  • Gemini Omni Flash (Google) is a new video family: text-, image-, and reference-to-video with synchronized native audio — plus conversational video editing on the Edit Video node, so you can replace objects or restyle footage with a plain-language instruction instead of regenerating the clip.
  • Seedance 2.0 gains a Mini tier: roughly half the per-second price of Fast, capped at 720p — ideal for drafts and high-volume iterations.
  • Nano Banana 2 Lite joins the image lineup: sub-2-second text-to-image at a fraction of Nano Banana 2’s price.
  • Quality tiers (Standard / Fast / Pro / Mini / 4K) now reliably route to the matching provider endpoint and price, everywhere a model offers them.
A much shorter model list
  • Model flavors that used to be separate picker entries are now quality tiers on one model: Veo3 and Veo 3.1 (Standard / Fast / Lite), Kling 2.1 (Standard / Pro / Master), and Kling Elements (Standard / Pro). “No Audio” duplicates are gone — audio is the generate-audio toggle. Existing workflows keep running on whatever they had selected.
  • New defaults: fresh nodes now start on the current generation — Nano Banana 2 for image generation and editing, Kling 3.0 for video generation, Gemini Omni Flash for video editing, and Gemini 3.5 Flash for text.
  • GPT Image repair: GPT Image 1/1.5/2 requests were failing at the provider; they now run reliably, image edits receive your source images, and aspect ratios map correctly.
Creative assistants for text nodes
  • Generate Text now offers a library of creative assistants: pre-filled starting points like Nano Banana prompter, Kling cinematic prompter, ElevenLabs dialogue prompter, Extract brand guidelines, and Ad copy & hooks. Each sets an expert system prompt, a suggested model, and sensible defaults so you can skip the prompt engineering.
  • Pick one from the node picker (hover Generate Text to browse them by category, then click or drag) or from the Creative assistant dropdown in a node’s config panel. The node is named after the assistant, and your edits to the instructions always win.
  • Text Assistant is retired. Its specialized modes now live as creative assistants on Generate Text, in one place with a fuller library.
Run a node across every combination of inputs
  • Connect multiple lists to a node and it now runs across every combination automatically: 5 prompts × 3 images produces 15 distinct results, all in one click. The node shows the multiplication (5 × 3 = 15) before you run so there are no surprises.
  • Partial success: a single failed result no longer throws away the rest. The node completes with however many results succeeded; failed items are flagged individually in the iteration strip.
  • Per-result inspection: each result in the strip now shows which input combination produced it, along with the model used, generation time, and credit cost for that item.
  • Smarter re-runs: results that haven’t changed are reused rather than regenerated. Edit one input and only the affected combinations re-run; unchanged results are never re-billed.
Composer: precision editing on the canvas
  • Interactive crop: select an image or video layer, click ✂ Crop, and drag a marquee over the full source. Trimmed edges dim as you go, and the result matches the render exactly.
  • Snapping + guides: layers snap to the canvas edges/center and to other layers while dragging, with blue alignment guides.
  • Align buttons in the Layout panel: one-click align to canvas left/center/right and top/middle/bottom.
  • Rich text: text layers gained alignment, line height, an outline (color + width), and a drop shadow (color + blur).
  • Resizable panels: drag the dividers beside the Layers and Properties panels (or double-click to collapse/restore) to give the canvas and timeline more room.
  • Spacebar toggles timeline playback when the composition has video or audio.
  • Illustrated effect pickers: Fit, Ken Burns motion, and entry/exit animations are now visual tiles that preview the effect on hover, and the layer panel is reorganized into Layout / Effects / Timing with slider controls for opacity and volume.
Scraped media no longer counts as workflow output
  • Media pulled in by the Instagram, TikTok, LinkedIn, and Meta Ads scrapers (and frames captured by Extract Video Frame) is now classified as internal reference material instead of a workflow deliverable. It stays in your asset library but no longer shows up in dashboard output feeds.
  • Files brought in via Google Drive Import are now classified as source material, alongside uploads.
Asset library: pick agents and tags by name
  • The More filters popover now lists your agents as searchable cards (thumbnail, name, and when they were last edited) and your workspace tags as clickable chips. No more pasting ids or comma-separated text.
  • Filtering down to zero results keeps the header and filter bar on screen (they used to disappear), so you can always adjust or clear filters. Active-filter chips now show the agent’s name.
Scraper Results bundle + prompt referencing
  • Instagram, TikTok, LinkedIn, and Meta Ads scrapers now emit a single Results output instead of separate Posts, Images, Videos, and Summary ports. Connect it to any AI node’s Context input in one edge.
  • Generate Text, Text Assistant, Generate Image, and Generate Video all gained a Context input that accepts anything, including scraper Results.
  • Items in the bundle get stable reference names ([post_1], [image_2], [text_1]). Use them in your prompt to target specific pieces (e.g. “Rewrite the caption of post_2 for our brand voice”).
  • Images in the bundle attach natively for vision-capable text models; existing graphs migrate automatically.
Your first workflow, folded for you
  • New users now get an interactive demo in the studio: Orisu assembles a three-node workflow before your eyes (your name, an AI prompt writer, and an image generator), then runs it to create a personalized origami avatar.
  • Skip anytime; the example workflow stays on your canvas either way.
Composer: pro editing pass
  • Cover/Contain fit ends accidental stretching: choose how media fills its box, plus per-side source cropping.
  • Ken Burns motion: slow zoom in/out across a layer’s visible window, adding motion to image slideshows.
  • Crossfades in Sequence mode: set an overlap and clips dissolve into each other instead of hard-cutting.
  • The timeline zooms (buttons or Ctrl+wheel), video bars show real filmstrip frames, audio bars show waveforms, and audio tracks can fade in/out.
  • Playback respects the export range, and a repeatable full-pipeline render smoke now guards the whole ffmpeg graph (full render in ~0.5s, 1080p/10s benchmark ~7s).
Composer: trims, animations, and a full editing guide
  • Trim any clip by dragging the edges of its bright timeline bar (the darker region shows what’s cut), and trim the whole exported video with bracket handles on the ruler (or Video Range in the canvas panel).
  • Layers animate in and out: Fade or Slide (left/right/up/down) with per-animation durations, previewed live.
  • Reorder layers by dragging directly on the timeline, and a ? next to the Overlay/Sequence toggle now explains the two modes in place.
  • New guide: Composing video covers the whole workflow, including the JSON config for API and copilot use.
Composer: preview playback
  • A play button on the timeline previews the whole composition in the editor: real video frames with sound, audio tracks entering on cue, fades, and timed layers appearing and disappearing.
  • Scrubbing now seeks video layers to the exact frame instead of showing their first frame.
Composer: sequence clips and trim
  • A new Sequence arrangement plays video clips back-to-back in layer order, with each clip’s length resolved from the actual video at render time. It works even before upstream videos have been generated, and regenerated clips can never drift out of sync.
  • Timed clips now play from their own first frame at their start time (previously they joined mid-stream), Trim skips into a source, and a clip with no end time plays out its full length.
  • Timeline bars snap to other layers’ edges, show where each source ends, and display estimated lengths (with a note) until the workflow has run once.
Composer: audio tracks and fade transitions
  • Connect audio nodes to add music or voice-over to a composition. Tracks get their own timeline rows with timing and per-track volume, and everything mixes into the output video.
  • Video layers’ own sound is now included (compositions used to render silent) and follows the layer’s timing window.
  • Visual layers can fade in and out: pick a duration in the layer’s Layout panel, with fades anchored to the layer’s enter/exit times and visible in the scrub preview.
Composer: timeline for video layers
  • A timeline now appears below the canvas when a composition includes video: one row per layer, with draggable bars that set when each layer enters and leaves the video.
  • Scrub the ruler to preview exactly which layers are visible at any second before rendering.
  • The output video automatically extends to cover the latest-ending layer, and exact start/end seconds can be typed in the layer’s Layout panel.
Composer: editor and rendering fixes
  • Layers wired from AI generator nodes now show their actual outputs in the visual editor instead of gray placeholders.
  • Rendered output now matches the editor faithfully: rotation pivots, text rotation and word-wrap, font weights, text backgrounds, and aspect-ratio-preserving defaults (no more stretched images).
  • Video compositions no longer scramble layers when an input is disconnected, and text layers land exactly where you placed them.
  • Smoother editing: cursor-anchored wheel zoom, arrow-key nudging, a regrouped properties panel, and far less lag while typing values.
Save to Element node
  • A new utility node saves a run’s images into a reusable Element as part of the flow: feed it a photo plus generated variations and it writes them to your library, then passes the element on for immediate use downstream.
  • Create a new element each run, or update an existing one (append to or replace its gallery).
  • Works in published apps too: build elements automatically from your users’ uploads.
Element node & library
  • The empty Element node now shows a fanned stack of recent library covers instead of a dropdown.
  • Picking an element opens the full library browser (sidebar, filters, search) in select mode.
  • Polished element cards, a friendlier empty state, and a redesigned create dialog with a visual subject-type picker.
Meta Ads Scraper
  • The node now returns real ad creatives (images and videos) directly from the public Meta Ad Library.
  • New Country and Media Type filters let you narrow results to a specific market or creative format.
  • Searches are consistent and repeatable: the node maps your settings directly to an Ad Library search instead of improvising one.
Instagram, TikTok, and LinkedIn Scrapers
  • All three nodes now return real public posts with actual creatives: post images, video covers, and video files where available.
  • Post records include engagement data: likes, comments, plays, and shares (where the platform provides them), plus author identity (name, handle, avatar) and timestamps.
  • Redesigned result cards show author identity, compact engagement counts, and a relative timestamp alongside the post creative.
  • Searches are consistent and repeatable: each node maps your query and period settings directly to a public search instead of improvising one.
Element Library
  • Build a library of reusable subjects (characters, products, and other recurring elements) and drop them into your agents.
  • Drag an element from the Library straight onto the canvas, or pick one in the new Element node.
  • Create elements from uploaded images, or right-click a selection on the canvas to turn it into an element.
  • Edit an element’s images, attributes, and cover image from its detail view; reorder images by dragging.
  • Supported image and video generation nodes accept elements as inputs, so a subject stays consistent across everything you generate.
  • Publish your own elements to the public library for others to use.
Specimen Archive (Assets)
  • The Assets page is rebuilt as the Specimen Archive: your generated images, video, and audio organized into shelves you can browse and filter.
  • Bookmark favorites and filter by date.
  • A Trash drawer lets you restore deleted assets or remove them permanently.
  • A new /explore gallery surfaces assets with a full-detail specimen view.
Studio
  • Generation nodes show a live estimated credit cost that tracks the selected model and its settings.
  • A tier selector sits under the model picker so you can choose a quality tier per node.
  • Nodes with multiple outputs render results in a carousel.
  • Failed nodes get a clearer error state with copy, expand, and retry actions; skipped nodes explain why they were skipped.
Onboarding
  • A new origami-themed onboarding wizard walks you through your first steps.
Dashboard
  • Active users see persistent discovery sections on the dashboard.
  • Fixed a label that showed free-plan users as Pro.