Add two Sonilo fal nodes: text-to-music + video-to-video (completes the fal set)#11
Conversation
|
@cindyxu1030 Thanks for adding Sonilo as new provider. Do you plan to add remaining 2 fal nodes as well? In order to fully test the new provider, can you help us setup an account on Sonilo platform? |
|
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? |
687a75b to
4557c4b
Compare
|
@cindyxu1030
Anyway these are non blocking changes, I can take care for them after merge. |


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:
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).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: providerfal, callssonilo/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: providerfal, callssonilo/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), andnpm run buildare 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.