Commit Graph

264 Commits (f783821d8a2366514eeed366010d2e2bbc489cb0)

Author SHA1 Message Date
hithereai f783821d8a C1 2023-05-17 14:39:16 +03:00
hithereai 9912465870 Merge remote-tracking branch 'upstream/automatic1111-webui' into pr/709 2023-05-15 16:36:07 +03:00
kabachuha dac0121fc9 add switch to deprecated grayish colormatch 2023-05-15 01:23:39 +03:00
kabachuha b280841d1e fix frames grayness 2023-05-15 00:50:04 +03:00
hithereai e2ca6c067a Merge remote-tracking branch 'upstream/automatic1111-webui' into pr/709 2023-05-12 19:12:40 +03:00
reallybigname 1856db88b2
Makes optical flow cadence work with hybrid motion (#708)
* Revert "Merge pull request #422 from hithereai/sampler_sch_fixes"

This reverts commit 09c99d10ed, reversing
changes made to 97ab68b13b.

* more vertically compact ui

* Revert "more vertically compact ui"

This reverts commit 0826d76e2d.

* Makes optical flow cadence work with hybrid motion

this one simple change of moving the routine allows for optical flow cadence to play nicely with hybrid motion during cadence

---------

Co-authored-by: hithereai <121192995+hithereai@users.noreply.github.com>
2023-05-12 19:11:26 +03:00
rewbs 5955abb18d Better output formatting (including error cases). Include whether current frame is a cadence frame or not in the subtitles. 2023-05-12 16:35:40 +10:00
rewbs ab05c05850 Allow prompts as subtitles. Optionally embed subtitles into mp4. Fix subtitles with Parseq: use getattr() instead of __dict__ to ensure fallback to non-Parseq controlled params works correctly. 2023-05-12 11:45:33 +10:00
reallybigname f39acbf486 fixed frames for 0-based counting in inputframes
also removed the stupid switching behavior for max frames when using a mask??? wtf
2023-05-08 13:41:13 -07:00
hithereai ea2d899851 fix 2023-05-08 22:27:43 +03:00
hithereai c360360b51 add ancestral_eta_scheduling
todo: auto-show/hide in ui
2023-05-08 03:28:20 +03:00
hithereai 6095dd757c replace ddim_eta with ddim_eta_schedule
turns out ddim_eta is a global general setting param now, not passed directly as a p.ddim_eta any more. So i made it a schedule.

Todo: only show in ui if ddim is selected.
2023-05-08 02:57:45 +03:00
kabachuha b5055fe7d0 fix frame_idx not being passed into prepare_prompt
Pointed out in https://github.com/deforum-art/sd-webui-deforum/pull/610

Co-Authored-By: ali42 <7451075+ali42@users.noreply.github.com>
2023-05-06 15:34:30 +03:00
reallybigname 03f54a3768 FIXED optical flow cadence
Properly normalized the optical flow field before warping and after warping based on width and height.  Now, because the range of the values are between -1 and 1 (usually much smaller), the flow doesn't get corrupted by the grid_sample for 3D or the warpPerspective for 2D anymore. So, I was able to remove all workarounds and just fix the abs to rel and rel to abs functions.
2023-05-04 12:37:34 -07:00
hithereai 0348eb683c some cleanups 2023-05-02 11:45:52 +03:00
hithereai cbdfa5dc3c Depth Revise Part 1 2023-05-02 04:51:25 +03:00
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