Funscript Flow: Automatically generate funcsripts for your whole library

The upper is the Madscripts script and the lower is the FF script. There is just nothing right about the Funscriptflow script. Fully inverted most of the time. I would not call the output even a script as the endpoints just dont fit.

Scanned for an in sync area and this was the best I could find. Four points in sync.

3 Likes

So, essentially this is a paid alpha version. As with any early-access software, you buy what you can see, not the promise of future updates.
If you are still around in a while, when the software has matured, working 98% correctly and it supports both CUDA and ROCm, I might consider buying it. I donā€™t expect that to be in 2025, but please prove me wrong.

4 Likes

Iā€™m not too picky when it comes to accuracy. I previously used Syncmo a lot when I still used my handy. So I went ahead and gave it a shot. I tried something very simple, this stationary dildo riding video.

Amari Gold rides pink dildo from Amazon.funscript (9.9 KB)

I read the readme and tried a few different numbers and they all came out differently but the script above used the following

Detrend window: 3s
Norm window: 6s

Maybe it depends on the kind of scene (Boy-Girl vs Dildo Riding) but after testing and trying to figure out why the scripts kept coming out super off, I came to the realization that the generated script comes out inverted. I had to invert the entire script in OFS in order for it to be seemingly in time with the up and down action of the video.

It would be difficult for me to call it anywhere near accurate but without deIeting/altering any of the generated keys (outside of inverting) I would be willing to say it came out ā€œclose enoughā€ and thatā€™s with a grain of salt. Iā€™d need to test it out on more types of videos

Iā€™d at the very least suggest adding an invert script option in the future.

The current test results are unsatisfactory,further optimization is needed to justify this price.

I decided to mess with the previous script further. 99% of all I did was delete generated key points.

There were 5 or so keys that I shifted either up or down or a bit to the right in order to help sync. I couldnā€™t help myself but that was all I changed.

I think it does show that there is something here considering all it really took was deleting the really bad stuff versus having to alter everything. Still needs a lot work for sure tho.

Amari Gold rides pink dildo from Amazon (cleaned).funscript (5.0 KB)

2 Likes

I answered some questions here in the edit to the original post, because I was caught up in anti-spam filters for being a new account. The short version is:

This probably will never be able to compete with ML-generated scripts for clean POV videos where object detection can pick out all of the landmarks. The key advantage of this tool is flexibility, because it can work on videos where the camera moves around a lot or landmarks are invisible.

I can make minor improvements, but thatā€™s a fundamental limitation of the approach, which is a purely statistical look at how the image is moving, with no understanding of what a penis looks like.

Inversion is doable, and Iā€™ll probably include that in an update soon. On further examination, it has that issue most often in scenes where only one party is moving (like solo dildo riding), and the algorithm has to guess which way is in.

If itā€™s not working for you in its current form, itā€™s probably never going to, and I can only really offer a refund. For my part, I think itā€™s a lot better than nothing for those (and have been using it for a couple weeks), but I understand that standards vary, and the last thing I want is for people to be unhappy.

1 Like

Bug report: the program will stop running and drop to zero processor load with no error message if the video itā€™s trying to run has special characters in the title

4 Likes

Some initial feedbackā€¦

  • Iā€™d like to be able to specify an output folder for funscripts other than ā€œsame as the videoā€.

    I store all my videos and funscripts in different folders because with HereSphere and xbvr it doesnā€™t matter if the names or the directory are the same. So all my scripts are categorized in folders by origin. Having FFlow dump the scripts in the same folder as the video is annoying, as I have to move them later.

  • The application forgets all the advanced settings on a restart. This is inconvenient for a system with 64GB+ of RAM where itā€™s fine to set a larger batch size for example, or wanting to limit the application to fewer cores to run while doing other work.

  • It would be nice to have the option to set the thread priority to ā€œIdleā€ or ā€œBelow Normalā€ so the script generation can run in the background without the system grinding to a halt.

  • The application should look at the standard file name extensions indicating the video format (_180_FISHEYE, _FLAT, etc) and automatically enable/disable VR mode. There are also many apps which auto-detect whether the video is flat or SBS at least. This would be nice in FFlow.

  • Iā€™d love to use the program to easily and automatically generate funscripts for only the ~6,000 videos I have (out of 34,000) without funscripts. Otherwise I will generate duplicate scripts for a lot of scenes Iā€™ll likely never use or need. The simplest way to accomplish this would probably be reading the exported data JSON from xbvr and checking if a script is associated in xbvr before generating a script.

3 Likes

Also might be worthwhile adding some additional file extensions to the folder/file wildcards. When I threw it at some things yesterday it skipped over some files Iā€™d resized with handbrake had outputted to m4v extensions. It had no problem chugging through them when selected manually from ā€œall filesā€ when I noticed later theyā€™d been skipped. Iā€™m assuming it would be the same for other common video file extensions.

1 Like

A bit disappointed overall for now but hoping that you wont drop the project and updates are coming.

Here is my feedback

This needs to be address as not able to do folders, and that is a core functionality.

There has to be a indicator that something is happening, feed in what is happening in the background so we know itā€™s ticking and not frozen. Once Run button is pressed the window looks frozen having to monitor the CPU.

Add an option to open the run.log

Maybe add a start and finish time so it does not process the whole video but a section if there is a lot of no action.

Downscale option before processing?

Looking forward to the development of this.

2 Likes

Interesting, I have been trying to make AI scripting work from optical flow and MPEG motion vectors and it just doesnā€™t (so far). If I watch the vectors themselves as a movie, I see a lot of noise in both cases. Occasionally, I get exactly what Iā€™d expect, but itā€™s wildly unpredictable and variant.

It took a lot of trial and error on my end. Getting it to work at all involved a deep wiki dive into vector fields.

Iā€™ve just been throwing it at a vision transformer where the pixels are motion vectors myself along with z-value predicted from both frames for VR. How did you deal with the random noise of optical flow and/or the keyframe weirdness of MPEG?

1 Like

I used opencv to compute optical flow from frame data, and statistics to deal with noise.

Z also isnā€™t enough to handle every case. This uses more linear algebra.

For anyone that is having issues because of special characters in the names of the files, on windows there is PowerRename you can us this Regex [^\w\s\-_] it will match all character except letters, numbers, white spaces, - and _ so any ! ? ā€™ " : and you replace with nothing

ScreenShots

image




1 Like

Need the funscript for Bee Movie 2 :rofl: