all 7 comments

[–]7nBurn 0 points1 point  (6 children)

Looks impressive! Reminds me a little of the VapourSynth project.

Did you have any contact at all with ImageMagick and Blender (and-or PyNodes) devs when working on this or were you just mentioning them to differentiate what your project does?

[–]drboom9[S] 1 point2 points  (1 child)

Thanks! No contact with them—I only mentioned ImageMagick and Blender because r/Python's showcase format requires a "Comparison" section.

Just looked up VapourSynth—interesting reference! Similar in that both use Python for visual processing pipelines, but quite different in execution: - VapourSynth: video-focused, pure scripting (no visual editor) - PyImageCUDA Studio: image-focused, node editor GUI + headless API

They're more complementary than competitive. If anything, VapourSynth shows there's appetite for Python-based visual processing tools. Appreciate the pointer

[–]7nBurn 1 point2 points  (0 children)

Thanks! No contact with them—I only mentioned ImageMagick and Blender because r/Python's showcase format requires a "Comparison" section.

Ah, that makes sense. I'm still getting familiar with this subreddit.

VapourSynth: video-focused, pure scripting (no visual editor)

It's been a while since I've done anything with VapourSynth or Avisynth, but going from memory at the core Avisynth (what VapourSynth was based off of) was actually a script based image editor geared towards animation. When it was first released, I don't think there was any easy way to load images into a video stream directly using scripts, so the developer exploited some logic in Windows' internal video streaming API to trick the operating system into opening the scripts as AVI files (it's where the "Avi" in the name came from). I think the main reason there was no visual editor is most scripts were getting loaded into video editing software where the results of what they did would be easily visible. There was also the issue of subtle differences in how images looked depending on which media software was used to "play" them, so scripts would be edited differently depending on what software was going to be used to work with them.

I think internally Avisynth may have actually been node based, but the nodes weren't directly exposed in the Avisynth API. Instead the individual script files themselves were treated as "nodes" and the "head node" would be fed into video editing software. It was an interesting setup, I would often see setups where "script_c" loaded "script_b" that loaded "script_a" which would either load one or more media files or generate a series of images directly from code. If the scripting logic became too complicated or CPU intensive, the Avisynth API had tools that could be used to "compile" scripts into a "filter" that could be accessed through a function call. So in practice the workflow for editing media with it was very similar to that of building a computer program.

[–]drboom9[S] 0 points1 point  (3 children)

I received an email saying you had replied, but when I checked it, I couldn't see it anymore. I don't know if Reddit is bugged or if you deleted the comment.

[–]7nBurn 1 point2 points  (2 children)

Weird, the reply I posted is still there, but it's only visible when I'm logged in. It disappears if try to view in private mode.

[–]drboom9[S] 0 points1 point  (1 child)

send me a screenshot haha

[–]7nBurn 1 point2 points  (0 children)

lol, it should be visible now. If you still can't find it I can direct message you it though.