Updates

Decart Lucy 2 and 3 now available in Realtime nodes

We’ve added support for Decart Lucy 2 and Lucy 3 in OTOY Studio’s Realtime nodes. Both models are available today across all Studio plans.

What’s new

Realtime nodes let you stream live generation output directly into your canvas — prompts resolve as you type, reference inputs update on the fly, and changes propagate through downstream nodes without a manual trigger. The workflow is less about discrete generation steps and more about continuous refinement.

Decart’s Lucy models were built for exactly this kind of tight feedback loop. Lucy 2 offers low-latency responses with strong prompt adherence, making it well-suited for iterative exploration where you’re adjusting composition or style on the fly. Lucy 3 extends that with higher output fidelity and better handling of complex scenes — useful once you’ve locked a direction and want to push the detail.

How to use them

Open any canvas workflow and add a Realtime node. In the model selector, you’ll now see Lucy 2 and Lucy 3 listed alongside existing real-time options. Connect your prompt, reference image, or control inputs as usual — the node will stream output using whichever Lucy model you’ve selected.

Both models support the same input types as other Realtime nodes: text prompts, image references, depth maps, and mask inputs. Existing workflows that use Realtime nodes don’t require any changes; you can swap the model in place and the rest of the graph stays intact.

When to use each

Lucy 2 is the right default for early-stage exploration — the latency is low enough that you can scrub through prompt variations in real time and get a clear read on what the model responds to.

Lucy 3 is better suited to the refinement pass: once the composition and style are locked, it produces output detailed enough to use as a strong base for any downstream upscaling or post-processing nodes downstream.

Both are available now. Open Studio and give them a try.

v3.1.0

This release introduces durable server-side orchestration for multi-node runs, a new empty-canvas preset picker, and Alt+drag duplication for faster canvas workflows.

Durable server-side graph runs

Multi-node runs now optionally execute server-side, making them resilient to browser tab closure or navigation. When enabled via the server-graph-runs feature flag, the server orchestrates the entire run sequence—dispatching each node job and advancing the workflow automatically as jobs complete. This ensures long-running processes continue even if you close the window or navigate away from the canvas. Runs appear in the same interface with real-time status updates, and can be canceled at any point.

Empty-canvas preset picker

New users now see a curated selection of starter presets when opening a blank canvas. Choose from single-click defaults for each modality: Generate Image, Generate Video, Generate 3D, or Generate Audio. Each preset drops the recommended model for that modality directly onto the canvas, providing an immediate starting point without needing to browse the full node library. The picker automatically dismisses when you add any node or press Escape.

Alt+drag to duplicate nodes

Hold Alt (or Option) while dragging selected nodes to create duplicates Figma-style. The original nodes move with your cursor while copies remain in their starting positions. This uses the same duplication logic as Ctrl+D, preserving all connections, widget states, and styling. The entire duplicate-and-move operation is batched as a single history step for easy undo.

Quality of life

  • Asset sidebar now mirrors the library modal layout at wider widths, with folder tree and two-row toolbar
  • Hunyuan3D 3.1 node picker labels now distinguish between image-to-3D and text-to-3D endpoints
  • Long child node titles in group parameter panels now properly truncate with ellipsis
  • OTP code fields are now visible in dark mode
  • Asset cards show “Source unavailable” for expired signed URLs instead of endless loading
  • Plans tab CTA buttons now share consistent vertical alignment across all tiers

v3.0.0

This release introduces hierarchical job lineage tracking, multi-node graph execution, and the ability to pipe any job output as input for new jobs. You can now run selected canvas nodes sequentially and explore job history with per-version diffs.

Hierarchical job lineage

Jobs are now grouped by lineage in a new List view on the jobs page. Each lineage collapses to a single row showing the latest version, which expands to reveal a nested tree of ancestor jobs with per-version diffs and thumbnails. The lightbox navigates through the visible expanded set, making it easy to track iterations and compare changes across versions.

Use any output as input

Right-click any image, video, audio, 3D model, or text output on a job card and select “Use as input” to pipe it directly into your next run. If your current model doesn’t accept the output type, the model picker will automatically open with compatible options filtered and ready. The system preserves lineage when piping outputs, treating the source job as the parent of the new submission.

Sequential multi-node runs

Select multiple connected nodes on the canvas to run them sequentially in dependency order. A new selection-run panel shows the execution plan with per-task costs and a total estimate. Connected chains run upstream to downstream with fresh inputs resolved from the graph store, while independent components run concurrently. Failed nodes skip their dependents, and you can run the entire selection multiple times with regenerated random seeds.

Output history (beta)

Behind an opt-in flag in Preferences → Canvas, nodes can now browse their output history across past runs. This experimental feature lets you cycle through previous outputs while maintaining downstream connections, though it’s currently dark until several UX questions are resolved.

Quality of life

  • Auto-generated titles now apply to nodes run via the multi-node selection panel
  • Batch-reconnect ghost links render correctly even when endpoints are scrolled out of view
  • Video model families are reordered with Kling O3 and 3.0 separated into distinct groups
  • The navigation rail includes quick-launch shortcuts for Image, Video, 3D, and Audio modalities
  • Page titles now follow the format “Page Name | OTOY Studio”

v2.69.1

This release focuses on media playback reliability for older jobs and fixes a display issue for custom models.

Quality of life

  • Media from older jobs with legacy URLs now loads correctly in the feed.
  • Custom model jobs are now clearly marked with a badge in the jobs list.

v2.69.0

This release introduces a redesigned model picker with favorites and modality filtering, plus a new default for dimming unselected edges on the canvas.

Model picker with favorites and modality filtering

The model picker has been redesigned from a scrolling popover into a full modal dialog with improved organization. You can now filter models by modality using the left rail, which includes categories for All, Favorites, Video, Image, Audio, 3D, Text, and Utility. Each model row includes a star icon that lets you mark favorites, which persist across sessions and appear in the dedicated Favorites filter category. The search functionality now displays results as a flat list with breadcrumbs showing the modality and model family.

Dim unselected edges enabled by default

The canvas now dims unselected edges to 25% opacity by default, helping you focus on the currently selected nodes while maintaining context of your overall workflow. This setting has been promoted from experimental to stable status in Preferences, where you can toggle it on or off based on your preference. Existing user settings remain unchanged—only new users and those who hadn’t adjusted the setting will see the new default behavior.

Quality of life

  • Straight edges between aligned nodes now render correctly with their gradient styling
  • Unselected edges maintain consistent visibility when dimmed, making complex workflows easier to navigate

Runs Page Now Live

Not every generation needs a full canvas workflow. The Runs page gives you direct access to model generations outside of a node graph — a focused space for quick re-generations, one-off tests, and iteration without the overhead of building a pipeline.

What Runs is for

Canvas is the right tool when you’re building a structured workflow: chaining models, wiring up control inputs, and repeating a process across many assets. But a lot of the actual work happens before that — trying a prompt variation, checking how a model handles a reference, regenerating a single output with different settings.

Runs handles that part. You pick a model, set your inputs, and generate. No graph required.

How it works

Open the Runs page from the Studio sidebar. Select a model from the available list, configure your prompt and any input parameters, and run. Each generation is logged with its inputs, outputs, and cost so you can refer back to it or replay it later.

Runs aren’t isolated from your canvas work — outputs generated here are available in your asset library and can be pulled into any canvas workflow as a reference or starting point.

When to use it

Use Runs when you want to test a model’s behavior quickly, compare outputs across a few prompt variations, or re-run a previous generation with adjusted parameters. It’s also useful for validating that a model handles a specific input type before wiring it into a larger pipeline.

The page is available on all Studio plans. Open Studio to try it.

Refer Friends, Get Credits

When someone you refer subscribes to a paid OTOY Studio plan, you get $15 in credits added to your account — no caps, no expiry on earning.

How to refer

Your referral link is in your account settings under Referrals. Share it however you’d like — directly, in a message, or on social. When someone signs up through your link and upgrades to a paid plan, the $15 credit is applied to your account automatically.

Credits go to your account balance and apply to any usage in Studio: generations, compute, and model access.

What counts as a referral

Credits are issued when the person you referred subscribes to a paid plan — not on signup alone. Free accounts don’t trigger a payout. There’s no limit to how many people you can refer.

Using your credits

Credits are applied automatically to your next billing cycle. You’ll see the balance in your account dashboard and a line item in your invoice showing the applied amount.

Open Studio to find your referral link and start sharing.

v2.67.0

This release brings new canvas customization options for managing visual clutter on complex graphs, plus a handy way to navigate between connected nodes.

Connected inputs strip

When you select a node, a new strip appears below it showing tiles for each connected input. Each tile acts as a locate button—clicking it pans and zooms the canvas to the upstream source node and selects it. This works for all input types, not just images and videos.

The feature is off by default and can be enabled in Preferences under “Show connected inputs below selected nodes.” The strip automatically hides when zoomed out beyond 60% to maintain clickable targets.

Customizable edge visibility

Two new canvas edge enhancements give you more control over visual clutter. Edges are now slightly wider by default for better visibility across all states.

A new experimental setting lets you dim unselected edges to 25% opacity instead of hiding them completely. This reduces clutter on dense graphs while keeping the wiring visible. When enabled, edges connected to selected nodes remain fully opaque. Find this as “Dim edges unless a connected node is selected” in Preferences.

Quality of life

  • Toggle settings no longer show a reset button, eliminating layout shifts when flipping switches
  • Number and select settings now show their reset button to the left of the control, keeping the input stable when it appears
  • Group containers now correctly render behind links when no nodes are selected
  • The GPT Image 2 announcement banner has been removed from the canvas

v2.65.0

This release brings powerful filtering and sorting to the jobs page, lets you open input images in a lightbox, and adds support for element inputs when running jobs directly from the feed.

Multi-select filters and sorting for jobs

You can now filter your job history by multiple statuses, models, output media types, and folders simultaneously. Tag-based filtering is also available for including or excluding specific tags. A new sort menu lets you order jobs by newest, oldest, shortest duration, or longest duration. All filter and sort selections are saved in the URL, so your view persists across page reloads.

View input images at full size

Clicking on an input image thumbnail within a job card now opens a full-size lightbox directly on the page, allowing you to inspect the source material without navigating away. You can cycle through all media inputs for that job using the previous and next buttons.

Run element-based nodes from the jobs page

Nodes that require an element input, such as Kling reference or video generation, can now be configured and run directly from the jobs feed. A new element picker lets you select from your existing library or create a new element inline.

Quality of life

  • Group node background colors are now more distinct for easier visual identification.
  • The Expand button on job output media is consistently positioned in the top-right corner.
  • 3D model and Gaussian splat outputs now display as thumbnail cards in the jobs feed.
  • Nodes created near a reference node that is inside a group are now placed at the correct absolute position.
  • Copy and paste operations now preserve a node’s output preview, matching the behavior of duplication.
  • Group node titles now scale with zoom level consistently with other node titles.

Object placement in perspective space

The problem with most AI generation workflows is that they treat each output as a standalone artifact. You generate, you evaluate, you discard or keep — and then you start again from scratch. What gets lost is the system: the relationship between prompt structure, model behavior, and the specific visual language you’re trying to develop.

Building a production-level workflow means treating your prompts, references, and outputs as a connected body of work — not a series of isolated experiments. The canvas is where that system lives.

Start with the structure, not the detail

The most common mistake is front-loading specificity. Writers know this problem as trying to write perfect sentences before you have a working outline. In generative work, it shows up as obsessing over lighting descriptors when the composition itself isn’t right yet.

Work in passes. Your first generation should answer only the compositional question — does the subject read clearly against the background? Is the perspective plausible? Only once the structural read is right do you start layering in lighting, texture, and material detail.

The best creative directors in this space don’t think in individual prompts. They think in systems — a vocabulary of references, constraints, and combinatorial rules that produce consistent results at scale.

Perspective as a first-class constraint

Object placement is fundamentally a perspective problem. A generated scene has an implied camera position — focal length, height, angle — and any object you introduce needs to be consistent with that implied camera, or it will read as wrong even if the viewer can’t immediately articulate why.

The practical approach: identify the vanishing points in your scene before you try to place anything. Describe the camera position in your prompt as concretely as you describe the subject — “shot at knee height, 35mm equivalent, slight upward tilt” gives the model something to anchor against.

Grounding with reference geometry

For product placement and architectural integration — the cases where technical accuracy matters most — a geometry pass before the generation pass makes a significant difference. Rough 3D blockouts, even at low fidelity, give the model a structural skeleton to work against.

OTOY Canvas supports this with its 3D input nodes: you can bring in a rough mesh or a splat scene and use it as structural reference, then pipe the result into an image refinement model. The perspective comes from real geometry, not from the model’s guess.

The shadow test

A quick diagnostic for placement accuracy: does the shadow match? Shadows encode the light direction, the camera angle, and the relationship between the object and the ground plane. If any of those are inconsistent, the shadow will look wrong before anything else does. Use it as an early-exit check.

Building a consistent pipeline

Once you have a placement approach that works, the goal is to make it reproducible. That means saving the prompt structure, the reference set, the model configuration, and the node graph as a named workflow — not just the final output.

The workflows that scale are the ones where a new team member can open the graph, understand the intent from the structure, and produce a consistent result without asking what settings were used. That’s the difference between a creative system and a lucky generation.