-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Anime DAIN and 2/3-dupe #4
Comments
I honestly did not know about that, well, I guess you can always learn something new. The approach of "We have to think about is to enhance the 8fps animation works to 60fps" is a bit alarming... It does not look at all realistic. Either way, any improvement or advance is something we can celebrate and applaud. |
Anime is tricky to interpolate. If something is too far apart from 1 frame to the other, it wont look good. My thoughts were like this: So, we would need to detect how many dupes there are between every 2 different frames it finds.
Thats my logic on this. Now after we have the 24 fps anime video without any dupes. We can finally interpolate it normally to 2X, 4X, etc.. And here's a way to compare frame similarity that I'm getting pretty good consistent results with: |
Hello again, So the only real way to do this is to manually extract the frames and manually delete all the frames we think are dupes. After all dupes are deleted, I made a simple python script to find how many dupes I deleted for every frame, and rename the frame from "000001.png" to 000001_1.png" _1 for 1 dupe 4 is almost impossible to find in anime. In my test the max dupes in a row I found was 2. Here is the script: https://pastebin.com/VEGZhZYz Now simply extract a zip file containing all the frames ready for interpolation into the Input folder. The output will be 24fps like the original video, but with all the dupes gone, and the interpolated frames in its place. Now that we got a 24 fps video with no dupes, we can interpolate it normally like any other video to 2x, or 4x. You can see the changes I made yesterday on my fork to be able to make this work. Everything works great while it only needs to interpolate 1 dupe everytime. But when it tries to interpolate the first 2 dupes I get this error:
I guess I still need to change something in the fork, but I don't know what. This is the colab command I used: |
@Brokensilence |
BrokenSilence's thought is mainly correct, I am with him/her. I did some homework recently and let's talk about why anime use 2-dupe or 3-dupe first.
The hand-painting of anime is expensive, and the general (Japanese) animation company can accept the 2-dupe trade-off, which also means that we see 24fps animation is actually 12fps.
The first to use 3-dupe (search てづか おさむ plz) to further reduce the painting cost (storyboards) to adapt to the update speed, the actual frame rate of the animation further dropped to 8fps. So the problem we have to think about is to enhance the 8fps animation works to 60fps actual performance frames as we expected Is it the same?
Anyway, time continuity is not a big issue for me . Just set the DAIN rate as follows:
Let us make an assumption:
According to the upper equation, DAIN rate is calculated 7.5 and we set it to 8. Then we evenly cut out 30 frames from the generated frames. (60*(8-7.5)) We solved the problem with slightly flawed.
Any discussion is welcome.
The text was updated successfully, but these errors were encountered: