Фотоотчёт «Аполлона-20», экспедиции, которую отменили в январе 1970 года. Место посадки: садовое товарищество. Снимки сделала Stable Diffusion XL, обученная на 146 кадрах, отснятых на поверхности Луны.
Концепция
С 1969 по 1972 год на Луну высадились шесть экипажей «Аполлона». Каждый привёз из экспедиции плёнку: 70 миллиметров, камера Hasselblad, объектив Zeiss 60 мм. На каждом кадре видны чёрные крестики. Это не дефект, а разметка: перед плёнкой стояла стеклянная пластина с сеткой меток, по ним потом измеряли расстояния на снимках.Эти кадры узнаёт каждый. Чёрное небо без звёзд. Серый грунт, похожий на пепел. Солнце бьёт сбоку, тени длинные и резкие. Предметов мало, и каждый стоит отдельно: модуль, флаг, ровер, человек в скафандре. Ничего лишнего, потому что лишнего туда не довезти.Экспедиций планировали больше. «Аполлон-20» отменили первым, 4 января 1970 года, «Аполлон-18» и «Аполлон-19» в сентябре того же года. Их плёнка так и осталась неотснятой.
Проект снимает её сейчас. Камера та же: модель, обученная на настоящих кадрах Hasselblad. Площадка другая: вместо лунного модуля дачный домик, вместо ровера «Жигули», вместо флага пугало. Двенадцать кадров садового товарищества, снятых так, как в декабре 1972 года «Аполлон-17» снимал долину Тавр-Литтров на краю Моря Ясности.
Источник изображений

NASA Image and Video Library. Кадры, снятые экипажами на поверхности Луны
Для обучения модели были отобраны 146 кадров из архива NASA Image and Video Library, снятых во время экспедиций «Аполлон-11» — «Аполлон-17».Все изображений были приведены к квадратному формату 1024 × 1024 пикселя. Для каждого кадра вручную составлена подпись на английском языке, описывающая основные объекты и их расположение:«srnt photo, an astronaut walking towards the camera, reflection in the gold visor»
«srnt photo, the lunar rover far away below a mountain, tracks in the foreground»
«srnt photo, a huge split boulder»В подписях не упоминались плёнка, зернистость, крестики разметки и жёсткое солнечное освещение. Эти особенности повторяются на всех 146 кадрах, поэтому предполагалось, что модель усвоит их как общие характеристики стиля, связанные с триггером «srnt photo».
Обучение модели
Модель: Stable Diffusion XL 1.0
Метод: LoRA
Среда обучения: Kaggle, GPU NVIDIA Tesla T4.Параметры обучения:Количество шагов -1000
Ранг LoRA- 16
Разрешение — 1024 × 1024
Время обучения — 86 минутЗеркальное отражение было отключено, чтобы сохранить расположение флагов, надписей и теней на исходных фотографиях.Noise Offset использовался для более точной передачи тёмных тонов лунного неба.
три промпта, одно зерно: без LoRA и после 250, 500, 750, 1000 шагов
Каждые 250 шагов обучения результаты проверялись на трёх контрольных промптах. Они позволяли оценить, как модель усваивает визуальный стиль исходных фотографий и справляется с изображениями объектов, не связанных с лунной поверхностью.Результаты:
Без LoRA астронавт выглядит как постановочный кадр: голубоватое небо, гладкий грунт, пластиковый скафандр.Уже после 250 шагов появляются характерные признаки фотографий «Аполлона»: холодные серые тона, зерно, резкие тени и случайное кадрирование. К 500 шагам модель точнее передаёт детали лунного модуля, но дальнейшее обучение почти не меняет результат.Парник и «Жигули» сохраняют земное окружение на всех этапах: модель усваивает визуальный стиль фотографий, но не переносит объекты на лунную поверхность.
Генерация изображений
Задача: Создать серию из 12 кадров, в которых привычные предметы дачной жизни оказываются на поверхности Луны. В двух сценах астронавт занимается повседневными делами: копает картошку и развешивает бельё.Для генерации использовалась Stable Diffusion XL 1.0 с обученной LoRA srnt photo. Для каждого сюжета создавалось по шесть вариантов, после чего лучшие кадры отбирались вручную с учётом соответствия промпту и визуального качества.
Первая попытка
Промпт:srnt photo, a small wooden dacha house with carved window frames and a porch, standing alone, on the grey lunar surface, black sky
Вторая попытка: уточнение промпта
После первой генерации модель продолжала воспринимать дачу как земной пейзаж. Чтобы закрепить лунное окружение, я перенесла описание Луны в начало промпта, уточнила освещение и расширила негативный промпт, исключив признаки земного ландшафта.Также увеличена сила LoRA с 1,0 до 1,15, а CFG — с 6 до 7.
Промпт:
srnt photo, on the moon, lunar surface, pitch black sky, harsh sunlight, a small wooden dacha house with carved window frames and a porch, standing alone
Каталог кадров
12 кадров, оформленных по принципу каталогов NASA: номер, название объекта и краткое описание деталей сцены. Нумерация связывает каждый кадр с соответствующим сюжетом серии.
Сравнение
Без LoRA SDXL тоже понимает слово «moon», но понимает его буквально и как плакат. В небе висит огромная Луна или Земля, хотя камера уже на Луне. Картинка чёрно-белая и контрастная, как гравюра или обложка фантастики. Парник превращается в рисунок тушью, пугало в инопланетянина в скафандре. С LoRA появляются признаки настоящей плёнки «Аполлона».
колодец при силе LoRA 0; 0,5; 0,8; 1,0; 1,3
При нуле колодец похож на старую фотографию американского Запада: сепия, белое небо, навес над срубом. При 0,5 и 0,8 это уже Луна: чёрное небо, реголит, деревянная рама и бочка над ямой. При 1,0 бочка опускается в шахту, кадр становится светлее и площе, как настоящий снимок Hasselblad. При 1,3 кадр пересвечен, от колодца остаются рама и лужа на дне ямы. Для серии взято 1,15: Луна уже полная, а вещь ещё узнаётся.
Код и данные
— notebooks/01_rolls.ipynb: загрузка 146 кадров из NASA Image Library, квадраты, подписи, контрольный лист.— notebooks/02_train.ipynb: обучение LoRA для SDXL официальным скриптом diffusers, функция потерь, контрольная съёмка этапов.— notebooks/03_shoot.ipynb: съёмка серии, отбор дублей, сравнения.— tools/nasa_candidates.py: поиск кадров по номерам кассет в NASA Image Library.— data/captions.json: номер каждого кадра в каталоге NASA, его название в каталоге и подпись для обучения.— data/train_config.json: все параметры обучения.— data/log.json, data/chosen.json: промпты, зёрна, оценки CLIP всех 72 дублей и итоговый выбор.— lora/final/: веса LoRA, 89 МБ.
















