Skip to content

Add two Sonilo fal nodes: text-to-music + video-to-video (completes the fal set)#11

Merged
imprsnst merged 2 commits into
inlineresearch:mainfrom
cindyxu1030:feat/sonilo-sfx-node
Jul 18, 2026
Merged

Add two Sonilo fal nodes: text-to-music + video-to-video (completes the fal set)#11
imprsnst merged 2 commits into
inlineresearch:mainfrom
cindyxu1030:feat/sonilo-sfx-node

Conversation

@cindyxu1030

@cindyxu1030 cindyxu1030 commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

What this adds

Two new generation nodes, both plain fal endpoints. Together with the video-to-music node merged in #9, this covers the Sonilo modes that fal deploys:

  • Text to Music (sonilo/v1.1/text-to-music): a prompt in, a music take out, no video needed. Outputs are licensed and safe for commercial use (terms apply).
  • Video to Video (sonilo/v1.1/video-to-video): your video back with a generated track already mixed in, plus a toggle to keep the original speech. Outputs are licensed and safe for commercial use (terms apply).

Disclosure, same as #9: I work on Sonilo.

Both nodes ride the app's existing fal transport and the user's own fal key, the same way the merged music node does. No new plumbing.

Why this dropped the SFX node

An earlier version of this PR carried a third node, video-to-SFX, wired through a direct Sonilo REST transport. It's out now. The generation-engine-v2 refactor (merged as #8) moved node execution into the Python core and locked nodes to fal-only, which removed the electron transport layer the SFX node was built on. Sonilo's SFX mode has no fal deployment, so there's no fal path for it to take. It needs a rebuild against the new architecture, and I'll send that as a separate follow-up PR. That left the two fal nodes here, which slot into the new engine without any changes.

The two nodes

  • soniloTextToMusic.ts: provider fal, calls sonilo/v1.1/text-to-music. No media input; the prompt is required and carries the whole instruction. Duration (up to 600 s) and sample-count params, plus a per-second price estimate.
  • soniloVideoToVideo.ts: provider fal, calls sonilo/v1.1/video-to-video. Required video input, optional style prompt, a "keep original speech" toggle (keep_speech_vocal), plus sample count and an optional segment. Returns a video take.

Each new NodeDef mirrors the merged music node file-for-file: same builders, same registry line, same prompt-optional handling. No UI changes, since the canvas is data-driven off the registry.

Testing

npm run typecheck, npm run lint (0 warnings), npm test (90 passing, 18 new across the two fal nodes), and npm run build are all green. Same honesty as #9: I haven't driven a live generation through the app from this machine. The request and response shapes are covered by unit tests and match the published fal API contracts. Happy to record a run-through if that helps.

@imprsnst imprsnst added the enhancement New feature or request label Jul 17, 2026
@imprsnst

Copy link
Copy Markdown
Collaborator

@cindyxu1030 Thanks for adding Sonilo as new provider.
Will check this soon.

Do you plan to add remaining 2 fal nodes as well?
image

In order to fully test the new provider, can you help us setup an account on Sonilo platform?
Use email: team@inlinestudio.art

@cindyxu1030 cindyxu1030 changed the title Add Sonilo video-to-SFX node (first non-fal provider in the registry) Add three Sonilo nodes: video-to-SFX (direct REST) + text-to-music and video-to-video (fal) Jul 17, 2026
@cindyxu1030

Copy link
Copy Markdown
Contributor Author

Thanks for taking a look!

Account: it's self-serve — register at https://platform.sonilo.com/ with team@inlinestudio.art, and once it's created I'll load usage credits so you can test all the nodes end to end.

The other 2 fal modes: done — I folded both into this PR rather than a follow-up, so #11 now adds all three (Text-to-Music, Video-to-Video, and the video-to-SFX node). Text-to-Music is prompt-only, no video input; Video-to-Video returns your input clip with the generated music already mixed in, with an option to keep the original speech. That completes the Sonilo node set alongside the merged music node.

One more you might want: Sonilo also supports segment-level control — different music direction per section of a video — and we can expose that through the API. If per-section control would be useful in the canvas, say the word and I'll wire it in.

@imprsnst

Copy link
Copy Markdown
Collaborator

Thanks for taking a look!

Account: it's self-serve — register at https://platform.sonilo.com/ with team@inlinestudio.art, and once it's created I'll load usage credits so you can test all the nodes end to end.

The other 2 fal modes: done — I folded both into this PR rather than a follow-up, so #11 now adds all three (Text-to-Music, Video-to-Video, and the video-to-SFX node). Text-to-Music is prompt-only, no video input; Video-to-Video returns your input clip with the generated music already mixed in, with an option to keep the original speech. That completes the Sonilo node set alongside the merged music node.

One more you might want: Sonilo also supports segment-level control — different music direction per section of a video — and we can expose that through the API. If per-section control would be useful in the canvas, say the word and I'll wire it in.

Thanks for adding two fal nodes. Can you also check for conflicts?

for different music direction per section , maybe let's wait to see if users actually want it. We got all 4 nodes available. Should be enough for regular users.

I have signed up on the sonilo dashboard, add few credits & i will start testing. One more question, do you plan to publish any tutorials or blogs around these nodes?

@cindyxu1030
cindyxu1030 force-pushed the feat/sonilo-sfx-node branch from 687a75b to 4557c4b Compare July 18, 2026 05:50
@cindyxu1030 cindyxu1030 changed the title Add three Sonilo nodes: video-to-SFX (direct REST) + text-to-music and video-to-video (fal) Add two Sonilo fal nodes: text-to-music + video-to-video (completes the fal set) Jul 18, 2026
@imprsnst
imprsnst self-requested a review July 18, 2026 09:23
@imprsnst

Copy link
Copy Markdown
Collaborator

@cindyxu1030
Follow up:

Anyway these are non blocking changes, I can take care for them after merge.

@imprsnst
imprsnst merged commit 9b088fd into inlineresearch:main Jul 18, 2026
@imprsnst

Copy link
Copy Markdown
Collaborator

Tested all three nodes
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants