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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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?
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