Skip to content

[FEATURE] Desktop app (Cross-platform)#1010

Closed
Tophness wants to merge 3 commits intodeepbeepmeep:mainfrom
Tophness:desktop
Closed

[FEATURE] Desktop app (Cross-platform)#1010
Tophness wants to merge 3 commits intodeepbeepmeep:mainfrom
Tophness:desktop

Conversation

@Tophness
Copy link
Copy Markdown
Collaborator

@Tophness Tophness commented Oct 7, 2025

This is my own experiment that I will take the burden of trying to maintain and don't expect it to get merged to main any time soon, so I'm pushing to my own fork, but I thought I'd just let you know how it's going anyway.
While developing the Gallery plugin, I had the idea of turning it into an actual Video Editor / Studio where the videos generate inline on a timeline over the ranges/frames you select and you can move stuff around, make splits, generate over different layers (This could be incredibly powerful with WAN Alpha) etc.

All the features were there except the actual video editor stuff, and I thought hey it's 2025, someone's probably got an open source html5 / webassembly video editor out there, but all of the options were scant. A lot of people tried to stream ffmpeg to the browser, a lot of them only barely worked on chromium or didnt work at all, and a lot of devs just gave up and said the browser and ffmpeg weren't meant for this (fair).

So I thought about it the other way around.
What if WAN2GP had a native desktop app that the video editor could be easily embedded in, and it just ported wgp.py.
It was a long shot, but I've got the desktop app working already. I was able to hijack all the gradio stuff and nullify them, and the rest is just regular python functions, so it can just import them as is. The UI is then rendered by PyQT.
I guess ideally I would now copy all those functions over to the desktop app, but that would only work if we switched over to using this instead of gradio, which I'm not suggesting.
The way it works now will be far more maintainable as wgp progresses, because I don't have to update anything with any changes in wgp if I can still call the functions. I've taken care not to hardcode anything.

Generating works, configs work, all the UI logic is ported over. It's actually pretty code efficient even with the overhead of hooking wgp.
The UI is actually much more neat and compact this way even before I've tried to design it properly. Not having to run a server and browser client with a bunch of JS means much less memory usage too. There's a lot to like about this.

Haven't added a plugin system yet, but it would be MUCH easier and more powerful to create your own plugins when I do.
No trying to jam 2 gradio elements together and inject them into 1 hidden one to add your own, no hidden triggers, just
self.create_slider('new_loras_multiplers', 1.0, 0)
self.widgets['loras_multipliers'].setValue(new_loras_multipliers)
Don't have to worry about trying to get file thumbnails to work on linux this way, it'll work super fast out of the box.

Haven't added the video editor yet either, but PyQT can definitely do a fast and powerful video editor, and it'd be much easier to get it to work with WAN2GP in a desktop app.

Screenshots:

image image

@Tophness
Copy link
Copy Markdown
Collaborator Author

Tophness commented Oct 9, 2025

Superseded by #1024

@Tophness Tophness closed this Oct 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant