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