Database Schema -Images in separate tables?
I would go with the first option.


Create two columns, one for profile image, one for header image.
Store the path


You shouldn't be creating new tables for 1:1 relations. For both header and profile you want to store at most one image. That's what columns are for.

Even better. Normalize them all to the same format and appropriate sizes and save them in  pkid/header.png, pkid/profile.png and then just make boolean flags has_image_header has_image_profile If you don't want to hardcode that path in the app, and you'd rather hardcode it in the database do it with a function,

CREATE FUNCTION get_path(pkid int, imgtype text)
RETURNS text
AS $$
  SELECT '/' || pkid::text || '/' || imgtype || '.png';
$$ LANGUAGE sql
IMMUTABLE;

SELECT get_path(432, 'header');
    get_path     
-----------------
 /432/header.png
(1 row)