Commit Graph

248 Commits (85f1b15fcf4f8b6b7de0f4488c16a7bbe28c7db6)

Author SHA1 Message Date
hithereai dde01b3915 remove commented unused imports from render.py 2023-04-30 21:24:49 +03:00
reallybigname eec4c7a348 quick fix for progress bar during cadence
makes progress advance smoothly during cadence rather than skipping ahead suddenly after cadence completes

left line commented for state.current_image, since I'm not sure what that variable actually does. It doesn't update the preview when I try it, even when turning up the speed of preview updates in auto1111.  But, if we decide to make a preview mechanism or need that state var for cadence, it can just be uncommented.  It matches the format of the one in the main non-cadence loop.
2023-04-29 23:31:19 -07:00
reallybigname 352a8fdb07 Consistency flow masks & fixed Frames to Video
added consistency flow masks
- there is now an option to use flow consistency masks and an attached option for consistency mask blur, defaulted to 2.
- if you save extra frames, it also save consistency masks now
- you can see the effect on the flow in the flow outputs as well
- it doesn't work as great with cadence because you see afterimages, but if you up the blur it can be a little better.

fixed Frames to Video
- made the ffmpeg routine that Frames to Video uses able to take image files other than png.  If png, it includes the -vcodec png as normal. But, if anything else it includes vcodec libx264, which works for jpgs. (jpgs don't work if using vcodec png, so I made it switchable). I haven't tested it with other filetypes, but I bet it works with others too. The png vcodec was specific to png.
- also added two more lines of instruction for how to use the file string.

- I also changed a few ransac functions for future use. They work as normal, but now have a switching behavior if passed depth. But, I'm not passing depth to them for now.
- a few minor code var name edits in hybrid video to align code better (mostly changed matrices to M, as is often convention

- commented a bunch of unused imports in render.py
  - I'll leave it up to someone else to delete them after it's verified that everything works fine with them commented.  I searched and didn't find them in that file. VSCode showed them as gray automatically, but I also verified.
2023-04-29 22:37:49 -07:00
reallybigname 2826e6d476 removed extra generation after generation for Image and Video Input
It wasn't working anyway, so I removed that mechanism and restored it to the previous behavior of just color matching after generation when using Image of Video Input.

Also cleaned up some code and added console reporting about Redo cycles.
2023-04-24 13:37:10 -07:00
reallybigname 5f3c4ac82e consolidated prompt code
saw an easy area where I could get some prompt code out of render_animation and into prompt.py
2023-04-24 11:57:40 -07:00
reallybigname 96e374844e Updates to Hybrid Video & More + Temporary Removal of RAFT
Discovered that RAFT wasn't actually working due to an issue with the function that got the flows.  There was a missing "elif".  So, the RAFT flow would get calculated and stored in the variable 'r', but then 'r' would always be overwritten by the default Farneback at the end.  We were fooling ourselves into thinking that was RAFT, when in actuality the RAFT flow is invalid and causes an error if actually used.
  - Changed function call for flow methods so that this can never happen. Now, each case returns directly.
  - Added to deprecation utils for now. We can remove the RAFT to Farneback conversion when we get RAFT working

Realignment of the way I handled frame indexes in motion routines to align everything more clearly

Major improvement to motion using prev_img during cadence!
  - added a prev_img during cadence so that there is a prev_img to refer to for the flow

Fixed color matching issue with first frame on Image and Video Init modes
  - first frame color match can't be done beforehand, so it's done afterwards. But, that normally makes for a very bad first frame. So, I added a redo for it to clean up the color matched image on first frame.

Major improvement to RANSAC
  - switched to use SIFT for feature matching instead of Lucas-Kanade
  - changed all border_mode to REFLECT_101, which matched how optical flow handled it, removed all the excess silly border_mode translations. This works much better.
2023-04-22 06:22:15 -07:00
hithereai 18c5c5aab7 set raft quality default to 50 instead of 12, fix optical flow cadence always being Farnback 2023-04-21 22:32:27 +03:00
hithereai 41b9e5220c fix 3d depth glitches 2023-04-20 16:28:52 +03:00
hithereai 2d66ccbb85 Update render.py 2023-04-18 12:05:22 +03:00
hithereai 7a1bec43a5 activate raft on redo_generation 2023-04-18 12:04:38 +03:00
hithereai 599fef64f5 fix raft error 2023-04-18 11:39:23 +03:00
rewbs 20c4fac824 Parseq: when delegating seed control to Deforum, prevent "AttributeError: 'DeformAnimKeys' object has no attribute 'subseed_series'" 2023-04-18 14:18:24 +10:00
hithereai 13b6acbdaf Add RAFT Optical Flow 2023-04-17 21:57:01 +03:00
reallybigname 65f9c3bf19 Made Optical flow cadence work in 2D mode
I figured out a hack to make optical flow cadence work in 2D.  To do optical flow cadence, I have to warp the flow field.  But, the 2D animation warping function, usually used on images, would mess with the values of the flow (as if they were colors).  So, I scaled them down by 1000 going in and scale them back up doing out, and it eliminates the effect it had which would make the image wobble around.

The same scaling actually messes with 3D optical flow cadence, so I leave that working at the normal scale factor.

I also made one modification to 3D optical flow cadence where it temporarily changes the sampling mehod (used by 3d warping function) to 'nearest' just for the flow warping, then restores it to it's previous value. This should help to minimize any pixel effects from warping.
2023-04-15 17:12:41 -07:00
hithereai 5c544f952a fix depth errors 2023-04-14 12:06:11 +03:00
hithereai 740f248ce6 initialize ZoeDepth with img size instead of fixes 384*512 2023-04-13 01:42:22 +03:00
hithereai ab6805a555 add debug_mode IF to print 2023-04-11 22:39:07 +03:00
hithereai 381008e133 clean 2023-04-11 22:36:24 +03:00
hithereai b987feb5d3 Introducing Zoe(Depth) 2023-04-11 22:31:19 +03:00
hithereai 3cfa2c0744 add .srt subtitles generation info support 2023-04-11 00:42:39 +03:00
reallybigname b665c36b36 Made overlay_mask work
Overlay mask working properly with static mask or video mask.
- made new masks.py file that we can use to consolidate other mask functions from main render code
- Overlay mask NOW WORKS WITH CADENCE.  I made the function switchable between PIL rgb and np bgr and inject the function during cadence and for normal saves
- I didn't use old code. I just made this work myself.

Fixed one-off issue with hybrid video where the first frame was duplicated. (it became obvious when doing overlay video masking)

re-commented a few lines, removed some whitespace
2023-04-09 03:49:38 -07:00
reallybigname 1e6eb6201b Removed extra color match code for resume
This was an afterthought, and after further testing, I don't think it's working quite right. I'm not sure why, but removing for now. Will re-examine later.

I accidentally had color matching against video on instead of LAB at first when I was testing, so I didn't see it.  Maybe I just need to convert to BGR?

Anyway, this restores the previous behavior of color matching, where if it resumes, it just matches against the prev_img.
2023-04-07 22:00:20 -07:00
reallybigname 35194fc2e6 Fixed resume
Now requires at least two actual frames to resume, but it works.
So,
at cadence 1, you need 2 frames
at cadence 3, you need 3 frames
at cadence 10, you need 10 frames
etc.

It gets the first and last frames, reads them, and feeds them to cadence cycle properly for turbo_prev_img AND turbo_next_img, then it recreates the last frame cycle.

It automatically accounts for cadence interruptions, like if you ran out of disk space during cadence or it got interrupted. (or you delete the last few frames or whatever)

Basically, I can't make it fail now, no matter how many times I resume, or how many random frames I delete going backwards before resuming.

Try it out!

I did consider saving out any frames that were recreated, but then realized that has it's own issues with possible duplicates as well, and after testing, I just don't think it's necessary either.  It works, every time, as far as I can tell.
2023-04-07 19:25:37 -07:00
hithereai 251ccc6f9f add DEBUG_MODE 2023-04-07 18:57:48 +03:00
hithereai 8eac754421 print to printf fix 2023-04-06 12:50:16 +03:00
reallybigname bf536d87a0 Fixed accidental newb error is not 'None'
I was using: is not 'None'
instead of: != 'None'

Ugh...
2023-04-05 11:45:06 -07:00
reallybigname 69990993fe Hybrid Image, new flow factor schedules, optical flow guidance
new option to use init image as hybrid video
- you can use all normal compositing stuff with that mode.
- you can't use optical flow, because it's not a video - but - if there are already video frames in the directory, well - you should be able to still use flow and ransac modes, although I haven't tested that

changed Optical flow redo to a selection of optical flow type with None as default
- added Redo flow factor schedule
- made optical flow redo look nicer by warping the same image that it is using to compare to prev_img, then it goes in for final generation
changed Optical flow cadence to a selection of optical flow type with None as default
- added cadence flow factor schedule

Added flow guidance from last flow
- no UI change - it just works by default with hybrid motion optical flow types. It just uses the last flow as guidance, so it's a minor difference, but a little better temporal coherence on flow

changed hybrid composite to a selection with None as default
- now can set hybrid compositing to Normal (After Motion), Before Motion, or After Generation!
2023-04-05 11:01:54 -07:00
hithereai 63f08d0938 add pause/resume for interpolation mode as well 2023-04-04 22:08:39 +03:00
hithereai fd7a57c304 fix interrupt behavior - no longer yields errors 2023-04-04 21:55:12 +03:00
hithereai 8c9b4b08a3 stop/resume using Skip button 2023-04-04 20:28:15 +03:00
hithereai 6dab9ee76c
Merge pull request #510 from reallybigname/automatic1111-webui
Fixed flow factor only working in integers
2023-03-30 12:10:14 +03:00
hithereai f2eefe4856 Merge remote-tracking branch 'upstream/automatic1111-webui' into blank-frames-reroll-fix 2023-03-30 12:06:26 +03:00
reallybigname 19b42e96f2 Merge branch 'automatic1111-webui' of https://github.com/reallybigname/deforum-for-automatic1111-webui into automatic1111-webui 2023-03-30 02:05:32 -07:00
reallybigname 35b20e2756 Fixed flow factor only working in integers
I have no idea why I left an int() in there... I only tested integers. My bad. Now, you can do very small amounts of flow. Derp.
2023-03-30 02:03:49 -07:00
kabachuha c321e62050 fix #496 2023-03-22 19:56:44 +03:00
kabachuha d866772ad8 wrap generate with vae failure checks 2023-03-19 22:13:49 +03:00
kabachuha 38d37a7240 move bfr to more correct place 2023-03-19 21:43:45 +03:00
kabachuha 891e7c69d3 add garbage collector runs after var deletions 2023-03-19 21:21:53 +03:00
kabachuha d60f3c3c3b
Merge pull request #474 from reallybigname/automatic1111-webui
Added Optical flow redo generation
2023-03-19 21:16:08 +03:00
reallybigname c6b8779d4a Added optical flow cadence method selection
- Uses the same variable, optical_flow_cadence but now uses "None" for disabled and has the three optical flow methods.
- Improved reporting of cadence frames to include optical flow cadence type if one is selected
2023-03-18 19:52:51 -07:00
hithereai 370e66e564 reorder and tiny bugfix 2023-03-19 03:07:08 +02:00
hithereai 525b9f0813 bugfix for midas > 1 2023-03-19 03:00:15 +02:00
hithereai 68d618e395 READY?! 2023-03-19 01:58:23 +02:00
hithereai f7ea36adc7 save --> keep name chane 2023-03-19 01:52:22 +02:00
hithereai 3f92d0a086 move keep 3d models in vram to webui's settings-->Deforum tab
Not complete yet
2023-03-19 01:51:00 +02:00
hithereai d34a6f1432 add option to keep 3d models in vram between runs 2023-03-18 20:53:00 +02:00
reallybigname 4a6315060a Removed test code.. whoops.
Sorry, I'm tired... I had added this to test something and forgot to remove, and didn't notice I commited it.
2023-03-17 12:46:36 -07:00
reallybigname c3c2a4c9ad Fixed one-off error in Redo
My most embarrassing commit.. I tested a bunch of different numbers of redos... except for 1... which caused an error and made me realize I had a one off problem... Tested 0, 1, 2, 3... working properly now. 1 redo yields 2 generations... as it should.
2023-03-17 12:38:47 -07:00
reallybigname 165a479519 made diffusion redo only color match on last one out
After testing it became obvious that part of the magic of the redo was letting the colors drift during redo... so, I just color matched on the way out, and it maintains it's cool factor, while maintaining colors!
2023-03-17 10:21:44 -07:00
reallybigname 94d21c95b7 fixed colors drifting during redo and optical flow redo
I just forgot that color would drift during repeated generations. Fixed. Now it's really consistent... and redo is incredible.
2023-03-17 09:34:46 -07:00