validate or empty?

You need to add the :if argument like this:

validates_format_of :image, :with=>/^.*(.jpg|.JPG|.gif|.GIF|.png|.PNG) $/,   :if => Proc.new { |obj| !obj.image.blank? }

You can also specify a method if you prefer:

validates_format_of :image, :with=>/^.*(.jpg|.JPG|.gif|.GIF|.png|.PNG) $/,   :if => image_not_blank

private def image_not_blank   !image.blank? end

Aaron