Page MenuHome

Image Sequence can't be load
Closed, ResolvedPublic

Description

System Information
OS X 10.8.5, NVIDIA GeForce GTX 780M 4096 MB
OS X 10.7.5, ATI Radeon HD 5750 1024 MB

Blender Version
Broken: Blender 2.6x
Worked: Blender 2.49a

Short description of error
Image sequence of JPEG or PNG files loaded into Image node is empty.
In compositor property panel appears message "Can't load Image".
I would swear it worked in some 2.6 version, the only issue that I had to solve before was numbering problem for sequences that doesn't start with frame one (0001.png), but now I can't find any working build since 2.49 … some OS issue?

Also I noticed 2.49 version is able to automatic set number of frames, 2.6 never did this, would be great if it could.

Exact steps for others to reproduce the error

  • Open blender (Loaded factory setting to be sure)
  • Enable node compositing
  • Delete Scene node
  • Add Input Image Node
  • Browse for Image Sequence
  • Open selected images
  • All previews (Viewer, Backdrop …) are empty

Details

Type
Bug

Event Timeline

filip mond (vklidu) set Type to Bug.
filip mond (vklidu) created this task.
filip mond (vklidu) raised the priority of this task from to Needs Triage by Developer.

without offset

with offset

make sure your using an actual image sequence

im pretty sure it works by numbers. mine starts on frame 30 which is file 0030 so i have to add the offset to compensate for those 29 frames in front that are not actually there

i don't think loading an image named untitled works very well :P

so if you add a file named from any number between 0001 and 9999 it should actually work
just make sure to offset it if it doesn't start at 0001

filip mond (vklidu) added a comment.EditedNov 16 2013, 4:42 PM

Sorry if it wasn't clear from my first post, but offset is not my problem.

My problem is that I can't load any image sequence even they start like 0001.png into image node now.

Name "Untitled" was automatically generated after I pressed "Open Image".
Usually there is generated a name of frame.

p.s.: Setup offset for image sequence that doesn't start from number one, was my underline note. It was something that I needed to search for solution in a past. Sorry if I mix it into this "Load" problem. Anyway it would be great if someone can "fix" it too.

filip mond (vklidu) added a comment.EditedNov 17 2013, 3:27 PM

Now I see the problem - path to the image sequence ends with name folder + slash (like ".../Render/"), there is not written a name of a frame (like ".../Render/0001.png) that's cause the problem.

What I usually do is - open folder, press "A" to select all frames and hit Enter.

So when I want to get whole path with image name I have to click on first frame in folder and confirm (or fix the path manually - write image name).

  • Maybe I was confused because I used for a last three months VSE. There I have to select all frames in browser that I want to open as strip.
  • In node compositor I have to click on a first one, right?

Wouldn't it better to have same behavior for loading sequences in Compositor and VSE?

I'm not a beginner and it took me few hours to find solution for this quite simple problem.

One thing more ...
(since this is a more problem of consistency - different selection style in NODE and VSE).

Build 2.49 is able to open image sequence for node just by pressing "A" (as VSE now)
+ automatically setup number of frames and offset (if there is any).

Is there any reason why 2.6 builds miss this functionality?
Who can find it useful to search for length of image sequence or how much to offset?
(For most of the people who loads sequence that doesn't start with 0001 it seems like "something is broken …".)

Thank you for your opinion.

This seems to be a problem with the way the file selection operators work:

  • Selecting files by border dragging returns only the directory name, without a file name appended. This is interpreted correctly as an Image sequence, but reconstructing the full image names fails (instead of //render/Image_0001.png ends up with //render/1.png). Manually appending the first image's name to the path fixes it, then the image sequence functions can replace the frame suffix correctly.
  • Selecting files one-by-one returns the path of the last-selected image. This is interpreted as a "Single Image", but after switching to "Image Sequence" and setting correct frame range this works without having to modify the file path further.

Just initial findings, have to look further into how the file selection operators work.

@Andrea Weikert (elubie) I'm not sure how file selection operators work in detail. It looks like you added this code back in 2011 (rB41c27cd), maybe you could explain a bit?
As far as i understand an operator can define a filepath property, which will be set as the active file by the file space ops. But when using border select (or similar) it does not define an active file, rather just sets the file range in FileSelectParams:

http://developer.blender.org/diffusion/B/browse/master/source/blender/editors/space_file/file_ops.c;f64ae4cbe5a724496624de9e479c04f325613be5$218
(0 is FILE_SEL_REMOVE, should either use that or make FILE_SEL_NONE==-1 ?)

So how how can the IMAGE_OT_open operator get the correct file list instead of just the directory? Any precedence for similar cases?

Andrea Weikert (elubie) claimed this task.

@Lukas Toenne (lukastoenne) with multiple files selected, the filebrowser should return the complete list. This could either be issue in the operator itself. In any case I'll take a look

There are two parts to this.

The first one is how you can make it work: Just load the first image of the sequence and then switch the image source to 'Image Sequence' and set the Frames to how many frames you want (have in the image sequence). this is a bit confusing, but is how I remember it working in 2.5/2.6

Now for the explanation:
There are a few properties that can be set in the operator (here the IMAGE_OT_open) that is passed to the filebrowser and executed when hitting the 'Open Image' button. See WM_operator_properties_filesel, especially the WM_FILESEL_FILES property. This tells the filebrowser to fill the 'files' list rather than just returning a single filepath. This was designed so each operator can tell the filebrowser what it wants. If you compare this to the SEQUENCER_OT_image_strip_add, you can see that there the operator wants the directory (WM_FILESEL_DIRECTORY) and files separately (WM_FILESEL_FILES)

What I have seen there, is that this operator only checks the filepath property, where in the case of multiple files, the 'files' property of the operator needs to be added and the operator also needs to evaluate this. Not sure if the current open image operator should be extended or if we need a different operator, since the image open operator is used in several places where it doesn't make sense to accept several images.

I'll try to provide a fix in the next days.

Cool, thanks.

I suppose the image file open operator should support file lists too. Every image can be a sequence afaik, so it makes sense to support this.

Perhaps the border select (and similar ops) can be disabled if file list selection is not supported by the operator invoking the file editor? Would avoid some confusion.

I'm also getting the error when loading files with long number sequence in the name.

DaVincie Resolve outputs names with 8 digits. Eg. 00090000.tif

If I load the first frame it displays, but when I change to image sequence it disappears. My solution is just to use Bulk Rename to remove the first 4 characters of each name, and it all works OK.

Submitted a patch that fixes this to Differential D209 for review.

Andrea Weikert (elubie) closed this task as Resolved.Jan 20 2014, 7:28 PM

Fixed by my commit:

Commit: 04f81c8225f28ba9722cc06dc7f2d8a4d72a3fa3
Author: Andrea Weikert
Date: Mon Jan 20 18:54:03 2014 +0100
https://developer.blender.org/rB04f81c8225f28ba9722cc06dc7f2d8a4d72a3fa3