It would be necessary to look into how to adapt the current wheels/dependencies, which are currently compatible with Windows, for Linux. I suppose it would be possible, but I don’t have the hardware to test it. One user has already adapted the version to make it compatible with some AMD GPUs; someone with Linux and some technical knowledge would be needed to try adapting it for Linux.
The Whisper model (voice commands) (Hypno, Edging) and the LLM models (JOIs) already support multiple languages; I should check which ones. It’s not just a matter of adding a language like adding a translation; rather, it’s about seeing which languages are supported, and the most complex part (at least for me) is configuring both “Keywords” and “Configure Director” to add the words/phrases to react to and how.
Can you tell me what kind of error you’re getting by uploading a screenshot or the log?
What GPU do you have?
Updated the original post with the port for AMD GPUs for version v0.9, thanks to @Alexcreeds !! You Rock!
![]()
this version includes fixes for BPM detection and Drumsep (was defaulting to CPU, now on GPU)
I’ve just stated messing around with this. One big thing that is really annoying me is there is no stop button. With AI sometimes you can tell its going off on a bad direction, and in this app there are processes that involve several steps, for instance the auto song ID. I ran this, saw that the songs were in the wrong place and rather than fixing it manually i decided i want to go back to use a different ID method, but there’s no way to stop the whole series of events (that I can tell). So my choices are to close the entire app or let it run and have probably garbage output. I think this app would benefit from a stop button besides closing to stop processes if feasible.
EDIT: Also holy shit why can you not merge a song backwards on the manual adjustment phase??? I have a song that was detected as ending later than it did, so the next song starts later, so if i split at the actual break it creates “desconocida” (another translation bug that needs to be fixed) and I can merge that with the next song, if I merge it it all becomes unknown.
Other than that there are some dialog popups that appear in Spanish even though i choose english as the language.
Its a very interesting tool seems to have a lot of potential. maybe this is already a thing that I haven’t discovered yet, but a adding a method that can extract consistent beat sounds, or use an external beats.mp3 file to use as basis for funscript generation would be a great feature. Many CH vids out there come with a beats file, and many others use the same sound for stroke.
There’s no need to get angry, lol, it’s an application that is still a work in progress
![]()
There’s a “Cancel” button in the app, but it can’t stop a specific process that’s already started, it will only stop before starting the next one. That’s something that happens in ComfyUI too, for example, if you’re familiar with it, you can ask it to cancel, but it has to finish what it’s currently doing first; it’s not immediate. A model load, an iteration, or an individual process can’t be stopped, although as you said, you can always close the CMD console, and that will shut down the app immediately.
If the problem is that you used “Cancel” and it continued running several processes, tell me exactly where, and I’ll look into it.
As for the issue of modifying songs, yep, I’m aware of it, and it’s something I need to look into and make it possible to cut/join songs in “Configure AI” as well. If it can’t be done right now, it’s to avoid confusion between cutting song blocks and cutting sections, something you can do when initially adjusting the detected songs. But here’s the trick: you can’t cut/merge songs, but you can do it with sections, so that way you can achieve what you want.
As for the translations, are you using the latest version, v0.9? In v0.8 and v0.9, I reviewed many missing translations, though I can’t rule out that some might still be left, and this one of “desconocida” might still remain, but there should be very few left. If you’re using v0.9 and find any, let me know and I’ll fix it, no problem.
As for what you mentioned about the beats, check out this reply: F.A.P.S (Funscript - Audio Processing System) by CaptainHarlock - #341 by galesp
There’s also the “Beat Rider” mood, which works differently: it uses visual detection to identify the dots or patterns that mark the “stroke” on a Cockhero. However, while it works very well on some CH, it may be less accurate on others, depending on the dots or patterns used on the CH and how the mood is configured; it’s very new, so it will likely be improved in the future.
Sorry I was annoyed because I’ve been trying to run this one one file for hours now, I had to have Claude code fix something with the shazam recog to make it stop timing out. Ive worked some more with the program and I’m understanding it better now.
TBH I did not see the cancel button, that’s exactly what i was talking about. my mistake! I get “desconocida” every time i split a song in the song editor panel.
As for the beat rider i worked out that it was visual, which while certainly good for many videos, there are also ones where there is no visual beatmeter, or it only appears for a few seconds when the beat changes.
I get what you are saying about adjusting parameters on sixth-sense or pulse, but this doesn’t quite do what I described. Many videos have a stroke beat track, but they don’t always follow the exact beat of the song. My impression is that the best this can do is isolate down to a basic drum track. there may be times when the drums of a song, don’t match up with the stroke meter or beat track.
What i would like to see (this doesn’t mean i expect it) is a way to isolate beat noises, and/or import separate a separate beat-track.mp3, and use that, but not necessarily only that, to generate a script. I know there are apps out there already that can do this in the most basic form, but whats special about your app is that AI could be used to combine the basic funscript as a base and add extra embellishments or flourishes. In fact I might try to vibe code this in myself.
I also think you should put this up on github or likewise, so that others can contribute to it. It also gives you some version management ability (idk if you already use something for that) I’m pretty sure the app is vibe coded, which is totally fine by me, I cant code myself so i understand, but sometimes the AI does something stupid and you want the ability to revert all changes, instead of relying on the AI to undo its changes properly.
No problem ![]()
For song detection, the initial methods tried to find the exact cut-off point (something that’s hard to achieve 100% of the time) and then identify the song by running simultaneous searches at various points within the detected song block. I realized that wasn’t the best approach and it took too long, which is why I added the current song detection method, which relies solely on some audio analysis to try to find the cut-off point, and then, before starting the search with Shazam, lets the user adjust these cut-off points. The new method, in my opinion, is much better and faster than the previous three.
I adjusted the searches for Shazam so it wouldn’t hit its rate limit, but if you’ve made too many attempts, it might have hit the limit anyway, and you’ll have to wait a while to avoid timeouts, or restart your router to get a new IP.
Okay, I’ll look into the missing translation for “desconocida”; if you find any others, feel free to let me know, thanks.
Yep, both SixthSense and Pulse rely on the drums to create the beat point, so depending on what sound Cockhero uses for the beat, it might not detect it, because that sound is probably in the “others” stem instead of the “drums” stem. It occurs to me, though I haven’t tested it, that you could try this with the “Fap Mixer” mood. There, you can choose which stem to use for each block, so you could use the stem containing the Cockhero sound in the PRIMARY block and set its “Beats” slider to 1; then it would be best not to use stems in the SECONDARY, TEXTURE, and VIBRATION blocks, or, perhaps more easily, lower their sensitivity or intensity to 0 so they don’t affect the beat. NOTE: To find out which stem contains the sound that sets the beat in Cockhero, you can go to “Configure AI” and play each stem to find that sound.
As I mentioned, “Beat Rider” is very new; it can likely be used in conjunction with audio analysis to achieve better results.
I understand the idea of being able to get a basic Funscript based on beats to work with, it’s something other users have already mentioned; I’ll keep it in mind, but it’s not something I’ll be able to do soon because right now I’m very busy working on another priority feature for the app.
It’s likely that at some point it will be uploaded to GitHub, but I don’t really know how it works and I haven’t wanted to get bogged down in that. And yep, I used Claude Code Max to create the app; any tool that helps is welcome, but that doesn’t mean it was easy, on the contrary, I’ve had to struggle a lot with Claude on many occasions, or provide it with information and methods to use because the ones it suggested weren’t the best. To put it simply, without Claude, it would have been impossible for me to create this app, I only know the most basic programming, but Claude, without me, wouldn’t have been able to create this on its own, not even close, lol… In short, we make a good team, even if I have to yell at it a little sometimes ![]()
what would be the best way to use this to script a metronome challenge video like this Izzy Green🔥 Metronome Challenge! 💦 Can you make it to the end? 💖 - PMVHaven
Extracting just the metronome “beat” isn’t possible right now because that sound is contained within the Drums stem, so the Funscript will generate points not only for the metronome but for any drum sound.
To achieve what you want, the exact frequency of that metronome sound would need to be filtered out.
Here’s the test I ran using the “Fap Mixer” mood; steps:
- Select the “Fap Mixer” mood (Fixed Defaults)
- AI Analysis (1 song)
- Set the stems for the SECONDARY, TEXTURE, and VIBRATION blocks to “Do not use.”
- Lower the “Beats” slider in PRIMARY to 1, and set “Int” to 100%
- Generate Script
When only the metronome is heard, it follows it perfectly. When there are more sounds, it generates other points; in any case, the result might be worth trying out ![]()
Izzy Green Metronome Challenge Can You Make It To The End (Fap Mixer).funscript (32.0 KB)
Wow this looks fun. Wondered does the app support an osr2?
Thank you!
The app is primarily designed for The Handy, but the funscripts created should work well on any device that uses Stroke (1-axis); if necessary, you can adjust the maximum speed (mm/s) and the minimum interval between points (ms) to adapt it to a specific device.
Umm… I encountered some issues. When performing AI analysis, the console prompts “Error cargando modelo ‘voice_classifier’: timed out”. What’s going on?
What version are you using? What GPU do you have? Do you have an internet connection on the computer you’re using it on?
The app doesn’t work properly if it’s located in directories that contain spaces. For example: don’t put it in \FAPS funscripts\ instead, use \FAPS\ or \FAPS_whatever\
Version:FAPS_v0.9
GUP:AMD 9070XT
Program Path:D:\Media\Funscript_Tool\FAPS
My internet connection is normal and I can access the internet. Could it be because I am in China? But isn’t the software model deployed locally? Anyway, thank you.
The app includes several precompiled dependencies that no longer need to be downloaded, but the bigger or more complex ones, not all of them, so you’ll still need to download a few things; which should be no problem. The installer takes care of that.
I guess your problem is that you’re using the official version, which is focused on Nvidia GPUs; and although an attempt was made in v0.9 to make it work on both Nvidia and AMD GPUs, since I couldn’t test it myself, as I don’t have AMD GPUs, I wasn’t able to properly do so.
But don’t worry, you can use the excellent fork created by @Alexcreeds , which should work for your GPU. Download the v0.9 ROCm version.
OK,THANS.Yes, I am using the official version.I’ll try the v0.9 ROCm version.Thank you again.
I’ve been trying to generate something for mmd dance videos, but I can’t seem to produce anything that makes sense. Anybody have tips?
I recommend that you watch the usage example video in the initial post. Then, if you have any questions, please ask.