Хм... Если я вас правильно понял, то ваша проблема в том, что браузер вставляет ваш фрагмент кода 
"<img src="+img+" />" как картинку, а не как код этой картинки. Далее исхожу из того, что это ваша проблема. Если нет - попробуйте переформулировать вопрос с читого листа.
Ниже есть 5 способов решения этой проблемы (каждое отмечено комментарием// Решение №), а пока предлагаю разобраться почему так происходит:
// Здесь jquery парсит конструкцию и вставляет ее как HTML node. 
// Причем вставляет он в итоге 2 тега: img и br
 $('<img src="' + img + '"></br>').appendTo('.body');
Нам нужно сказать браузеру: 
вставь это как текст
Для этого есть говорящие свойство .textContent - 
https://developer.mozilla.org/ru/docs/Web/API/Node...
Также есть метод jQuery: text() - 
api.jquery.com/text/*
 * это просто перепишет все 
 * содержимое в цикле, в итоге в конце 
 * останется только одна запись
 */
$('.body').text('<img src="' + img + '"></br>')
// можно попробовать так:
$('.body')[0].textContent += '<img src="' + img + '"></br>'
/*
 * это не лучшее решение, 
 * потому как потеряется вся разметка
 * для остальной части страницы,
 * но это приемлимо (не считая оверхеда)
 * если весь текст лежит в одном блоке:
 */
 $('.img-links')[0].textContent += '<img src="' + img + '"></br>'
// тем не менее, не лучший подход на мой взгляд
Можно собрать все фрагменты кода и вставить один раз:
...
// Решение 1
success: function(data) {
	var parts = [];
    data.response.forEach(function(item) {
        var img = item.size;
        (!(img)) ? img = item.src_big : img; // проверяем, есть ли самое большое разрешение у фотографии
        parts.push('<img src="' + img + '"></br>');
    });
    $('.img-links').text(parts.join(''));
}
...
Здесь вроде все ясно. Зайдем с другой стороны: 
Если бы я захотел изначально показать на странице текст вида 
<img src="http://my.awesome.link">,
то использовть js было бы неудобно. Как я могу сказать браузеру "не превращай это в DOM"?
Я вижу 2 подхода:
- расположить этот текст в специальном теге  
htmlbook.ru/html/xmp (или можно даже в )
- за
escape'ить служебные символы: 
"<" -> "<", ">" -> ">"
1) подход:
...
// Решение 2
$('<xmp><img src="' + img + '"></xmp>').appendTo('.body');
// пожалуй, один из самых простых способов
...
2) подход:
...
$('<img src="' + img + '">').appendTo('.body'); // не сработает
// потому что jQuery не умеет вставлять текстовые ноды
// или избегает этого, вместо этого вставится первый валидный тег
// это можно решить - ввести контейнер:
// Решение 3
$('<span><img src="' + img + '"></span><br>').appendTo('.body'); 
...
Можно ли избежать писания в ручную этих страшных 
< / >?
Можно!
Используя js-функцию для эскейпинга: например отсюда 
stackoverflow.com/questions/5499078/fastest-method...
Но тут скорее напрашивается другое решение, близкое к тому, с чего мы начали:
Можно использовать .textContent / .text() - чтобы за нас эскейпил браузер / jQuery:
...
// Решение 4
$( $('<span/>').text('<img src="' + img + '"><br>') ).appendTo('.body'); 
...
И еще одно весьма изящное решение, которое я, надо признаться подсмотрел на StackOverflow ( 
stackoverflow.com/questions/6588630/jquery-append-text ):
Мы можем сами сказать браузеру, что нам нужна текстовая node и передать ее в jquery:
...
// Решение 5
$('.body').append(document.createTextNode('<img src="' + img + '">'));