Выбрать главу

Неслабо Dezgo пишет всего в картинки? В Jpg он пишет только первый блок, то есть только eXIf, сохраняя его в поле «комментарий» файла. Ну а в Png может быть до трёх блоков - обязательно eXIf, чаще всего (с вероятностью процентов в 99) tEXt GenInfo, насчёт tEXt GenCode ничего не могу сказать, мне он ни с какого боку не интересен, там закодированные данные, мне их никак не расшифровать и не истолковать. Каждый блок записывается в Png стандартно в виде отдельной стандартной структуры (4 байта – размер блока данных, 4 байта – тип данных, блок данных указанного размера, 4 байта – контрольная сумма). Таким образом, как я понимаю, их очень легко полностью выкинуть из файла, не нарушая его структуру, просто считывай блоки данных, и те, что опознаны как GenInfo или GenCode, не сохраняй в новый файл, остальные сохраняй. Но я в своей программе (Dezgo Params Viewer, о которой упоминал в первой главе) не стал этого делать, хотя бы потому, что далеко не сразу заметил наличие блоков 2-4. В глаза хорошо бросается первый блок (при открытии картинки блокнотом), остальные надо приглядываться, но станешь ли ты приглядываться, найдя первый блок? Как можно ожидать, что параметры генерации будут сохранены в картинке дважды? Зачем? Бог его знает.

О формате данных. Разные функции сохраняют разное количество данных и отчасти в неодинаковой последовательности. Скажем, у одних информация о размерах картинки располагается выше поля prompt, у других ниже. Вот пример, как выглядит блок eXIf функции Text-to-image:

JobId: f4d144e7-637c-82a2-d02a-f5d53375a76e Function: text2image Input: width: 384 height: 672 prompt: art colors+++. wild fantastic animal modeclass="underline" realdream_12 count: 1 negative_prompt: ugly, tiling, blurred, watermark guidance: 7 steps: 16 sampler: dpmpp_2m_karras seed: 2863252897 upscale: 1 lora1_strength: 0.7 lora2_strength: 0.7 format: jpg

Что для нас тут важно? 1) Функция – обозначение её, как видим, не совпадает с названием, «text2image» означает функцию «Text-to-image». 2) Prompt – содержит текст, по которому картинка генерировалась, 3) model – указывает выбранную нейросеть, тут тоже обозначения могут отличаться от настоящих имён, в данном случае отличие невелико, «realdream_12» означает сеть «RealDream12». 4) Negative_prompt – иногда негативы очень сильно влияют на результат. 5) Sampler – если у вас есть обыкновение его менять, я так почти никогда не делаю, но иногда всё же выбирал иной, чем задан по умолчанию. Остальное лично для меня не особо важно, так как я никогда не меняю настройку guidance, а настройки «count» и «steps» при бесплатной работе с Dezgo недоступны.

Как можно просматривать эту информацию. В Jpg она является комментарием, то есть открывай свойства файла, смотри комментарий, копируй его. В Png это его внутренняя инфо, так что только блокнотом. Открывай картинку как текстовый документ и копируй оттуда. Ну и опять же и для Jpg и для Png есть моя программа. Каковую как автор, я, естественно, вам горячо рекомендую. По мне так она весьма удобна. Напоминаю, что скачать можно тут dvo.my1.ru/DezViewer.htm. Не требует установки, не нуждается в деинсталляции. Распространяется бесплатно. Единственно, я не тестировал её нигде кроме Win7. Но по идее это достаточно простая программа, вероятно и под другими Win не должно быть никаких проблем.

Теперь по поводу конфиденциальности. Если вам не хочется делать тексты, по которым вы генерируете картинки, достоянием общественности, но картинки опубликовать в интернете хочется, какие у вас есть варианты:

Перезаписать картинку с помощью любого графического редактора. Кстати, это не всегда помогает, например если воспользоваться стандартным win-приложением Paint, надо обязательно сохранять картинку в ином формате, чем она была (если она была в jpg, значит только не в Jpg), в противном случае вся информация в ней останется.Обработать в какой-нибудь перезаписывающей онлайн функции. Например, в функции upscale Dezgo. Эта функция не имеет никаких настроек, ну почти никаких. Потому ничего и не сохраняет. То есть она вам увеличит картинку, и в этой увеличенной версии никаких данных уже не будет.Воспользоваться моей программой. Она может не только отображать параметры генерации картинок, но и затирать 4 ключевые из них на ваш выбор. Может проделывать это с картинками по одной, а может сразу со всеми картинками в указанной вами папке. Тут я должен сказать следующее. Я не профессиональный программист, по сути я изучал программирование тем же самым «методом тыка», каким разбирался и с работой в Dezgo. Плюс, за последние десять лет занимался им где-то месяц, а последние пять вообще не занимался. Но похоже это как кататься на велосипеде, если освоил… Сел через пять лет писать, и как будто и не заканчивал. Тем не менее, вмешательство в файлы ответственное дело, при ошибках есть риск их испортить. А вмешательство в сразу много файлов… Делайте копии картинок, прежде чем править их моей программой. При просмотре она их испортить не может, а при записи… Я протестировал её на почти тысяче файлов, сначала стёр данные в 210 файлах, потом ещё в 730. Сбоев не было. Но подстраховочка не помешает. Хотя бы с картинками, которые для вас важны. Всестороннее я свою программу не тестировал. Да, это как будто довольно жёсткая антиреклама ей сейчас с моей стороны. Но, допустим, у вас есть 730 файлов картинок. Сколько времени вам понадобится, чтобы перезаписать каждую с помощью графического редактора? Сколько чтобы прогнать через upscale Dezgo, особенно в бесплатном режиме, в котором он не очень-то спешит? А сколько в моей программе? Секунды 4. Ну может 10. Какой ваш выбор? Так или иначе, он за вами.Для картинок Jpg есть ещё один путь – зайти в свойства файла в комментарий и стереть последний. Это работает, но с оговорками. Если вы сотрёте разом весь комментарий, он как бы удалится, перестав отображаться, в свойствах файла вы уже не сможете его видеть. Но внутри файла полностью сохранится, и блокнотом и моей программой данные Dezgo всё равно можно будет посмотреть. Если же вы не станете его стирать, а исправите, допустим сотрёте только часть его или замените на другую, комментарий будет перезаписан, и вот тогда всё получится, во всяком случае у меня получалось. При этом комментарий перестанет быть данными Dezgo, так как утратит некоторые свои скрытые части, не относящиеся к тексту. Например, из него исчезнет слово «UNICODE», предваряющее текст. Но какая разница, не правда ли? Цели-то своей мы добьёмся. В общем, это тоже вариант, у меня он работал.