Spiiin's blog

AI - Stable Diffusion и процедурная генерация. Ссылки

Stable Diffusion

AI prompts

Известные ИИ модели для рисования — Dall-E, Midjourney и Stable Diffusion. Stable Diffusion хороша тем, что код открыт, и доступно большое количество плагинов и моделей.

Первый способ “обращаться” к модели за картинкой — запросом из кода.

SD – это Linux, а Midjourney – Mac: краткое полное руководство по Stable Diffusion - терминология
Шерудим под капотом Stable Diffusion - python код для теста частей модели - еще, вникнуть в термины vae/clip/unet
Как работает Stable Diffusion: объяснение в картинках
Как оптимизировать работу Stable Diffusion при помощи текстовой инверсии

Второй способ — генерация с помощью GUI: ArtRoom, Automatic1111 webui, InvokeAI.

Третий, кажется, наиболее интересный, составление пайплайна вызовов с помощью нодового редактора - ComfyUI. (Нодовый редактор также есть в InvokeAI)

ComfyUI examples - примеры построения пайплайнов. Inpaint и img2img — два базовых способа доработки изображения.

ControlNet - группа моделей для “снятия” с изображения параметров и использования их — поза, освещение, карта глубины, форма лица, силуэт, стиль и т.п.
Area Composition - работа с изображением в виде группы текстовых запросов и шагов для различных областей.
LoRA vs Dreambooth vs Textual Inversion vs Hypernetworks - разбор нескольких способов применения “дообучения” моделей.
LATENT Tricks - Amazing ways to use ComfyUI - различные способы генерации вариаций изображений, интересно само по себе, и как объяснение внедрения в различные шаги пайплайна
SD dynamic promts - промт-хакинг, генерация вариаций за счет изменений текста запроса
ControlNet 1.1 Tiles Tutorial - один из способов апскейла изображений (существует много других моделей и методов для апскейла)
ClipSeg - кастомный плагин для comfyui для текстового запроса выделения объекта с картинки
360 degree - генерация панорамных изображений в несколько шагов - генерация панорамы сферической карты (бесшовной по одной из осей, и с нужными пропорциями, и правильным текстов запросом), затем разворачивание в cube-map, для того, чтобы с помощью inpaint дорисовать бесшовность у полюсов.

Базовые модели для рисования с помощью StableDiffusion - sd1.4, sd2.0, sdxl. Вторая не лучше первой, а альтернативная, sdxl - лучше обеих. Плагины постепенно апдейтятся для использования с ней.

Процедурная генерация текстур

Книга по программной генерации текстур — Texture and modeling: procedural approach.

Софт для программной генерации:
Dark tree - древний, но хороший как референс
Adobe substance designer 3d - пример графа генерации царапин
Blender nodes - плейлист на ютубе генерации материалов в Blender
Shadertoy - пример шейдера генерации фрактального шума Масгрейва

Semi-Procedural Textures - реализация сразу нескольких интересных идей.

  • Point Process Texture Basis Functions - rule-them-all шум, позволяющий сгенерировать множество форм для природных материалов
  • “снятие” параметров для этого шума с входного изображения
  • выделение понятия “структуры” материала (контуров) и “текстуры” (расцветки)
  • генерация по структуре и входной текстуре изображения

Последняя стадия у авторов делается с помощью патентованного алгоритма Parallel controllable texture synthesis.
Можно попробовать подменить её на то, чтобы скормить “структуру” как controlnet контур для Stable Diffusion вместе с текстовым описанием материала (пусть нейронка разукрашивает мультифракталы!), получается что-то типа Semi-procedural stable diffusion, материал часто сохраняет визуальные свойства и бесшовность:


(процедурные кирпичи)


(и мрамор)