Você está confortável em um terminal? Se assim for, é de longe a sua opção mais fácil.
Veja os vários métodos associados ao toolchain ImageMagick . Algo como isso será sua melhor aposta (reproduzida abaixo). O exemplo fornecido adicionaria um watermark.jpg
na parte superior da imagem com 30% de opacidade.
EDIT: Como liori apontou nos comentários, cuidado com isso em qualquer coisa com espaços ou caracteres especiais em seus nomes de arquivos. Pode ter efeitos inesperados. Geralmente, é mais seguro se você usar apenas números, letras, traços e sublinhados em nomes de arquivos.
for pic in *.jpg; do
composite -dissolve 30% -gravity south watermark.jpg $pic ${pic//.jpg}-marked.jpg
done