Персонажите ви изглеждат различно във всяко изображение, защото дифузионните модели разглеждат всеки промпт като нова, изолирана инстанция без памет за предишни изходи. Консистентността се постига чрез контролиране на пътя на генериране, предоставяне на визуални референции и изписване на структурни описатели, които закрепват характеристиките на идентичността.
Основната причина: защо дифузионните модели разглеждат всеки промпт като нова инстанция
Дифузионните модели нямат персистентно състояние. Когато генерирате изображение, моделът започва от случаен шум и следва път, определен от вашия промпт, случайното число (seed) и вътрешните тегла на модела. Ако не контролирате тези променливи, моделът ще интерпретира описанието ви по малко различен начин всеки път.
Проблемът не е, че моделът „забравя“ персонажа ви. Проблемът е, че моделът няма понятие за персонаж като за персистентна единица. Той знае само как да генерира изображение, което съответства на текстово описание. Ако описанието ви е двусмислено, моделът запълва празнините със собствените си статистически отклонения. Ако опишете „жена с червена коса“, при едно генериране косата ѝ може да е отляво, при друго – отдясно, а при трето текстурата на косата може напълно да се промени. Моделът не е неконсистентен; той е верен на неясна инструкция.
За да решите това, трябва да преминете от описване на персонаж към специфициране на персонаж. Това изисква три лоста: seed, референтно изображение и структурен описател.
Трите лоста за консистентност: seed, референтно изображение и структурни описатели
Seed е случайното число, което определя началния модел на шума. Ако запазите seed фиксиран, моделът следва един и същ път през пространството на шума. Въпреки това, ако промените дори леко промпта, пътят се разклонява. Самият seed не е достатъчен.
Референтното изображение е визуален котва. Предоставяте изображение на персонажа и молите модела да го използва като водач за идентичност и стил. Това е по-мощно от текста, защото заобикаля двусмислието на езика. Моделът може да види конкретната форма на носа, кройката на якето и цвета на очите.
Структурният дескриптор е прецизно, геометрично описание на характеристиките на идентичността на героя. Вместо да кажете "cool", кажете "асиметрични очила, счупена лява леща, непокътната дясна леща". Това дава на модела стабилна цел за постигане.
Използване на стойности на seed за фиксиране на пътя на генериране
Ако използвате инструмент, който позволява задаване на стойност на seed, като Midjourney или Stable Diffusion, можете да фиксирате пътя на генериране. Започнете с seed, който създава добро базово изображение. След това запазете този seed фиксиран, докато усъвършенствате промпта си. Това гарантира, че промените в промпта не карат модела да се отклонява към напълно различна интерпретация.
Въпреки това имайте предвид, че seed стойностите са крехки. Ако промените съотношението на страните, версията на модела или структурата на промпта, seed може вече да не дава същия резултат. Третирайте seed като локален контрол, а не като глобален. Той работи в тесен диапазон от параметри.
Внедряване на работни процеси image-to-image за итеративно усъвършенстване
Най-надеждният метод за поддържане на последователност е итеративното усъвършенстване чрез работни процеси image-to-image. Започвате с добро изображение на героя. След това използвате това изображение като референтно изображение за следващото генериране. Коригирате промпта, за да промените сцената, позата или осветлението, като същевременно запазвате характеристиките на идентичността на героя непокътнати.
За тази задача се прибягва до инструменти като Adobe Firefly, Krea и Runway. Те позволяват да качите конкретно изображение на героя и да насочите новото генериране въз основа на това визуално входно данни. Когато използвате тези инструменти, оценявайте изхода според това колко добре той запазва конкретните характеристики на идентичността, които ви интересуват: формата на лицето, стила на облеклото, цветовата палитра. Ако изходът се отклонява, увеличете теглото на референтното изображение или затегнете структурните си дескриптори.
Писане на структурни дескриптори, които закотвят характеристиките на идентичността
Вашият промпт трябва да съдържа структурни дескриптори, които е невъзможно да бъдат погрешно разтълкувани. Избягвайте субективни прилагателни като "beautiful", "cool" или "mysterious". Вместо това използвайте геометрични и конкретни дескриптори.
- "Къса, подстригана коса с права ресни" е по-добре от "къса коса".
- "Кожено яке с висок яка и без качулка" е по-добре от "яке".
- "Широко поставени и леко свити надолу очи" е по-добре от "тъжни очи".
Тези описания закрепват идентичността. Те осигуряват на модела стабилна цел. Ако използвате Stable Diffusion или ComfyUI, можете да комбинирате тези описания с LoRA обучение върху конкретни набори от данни за персонажи. Това позволява на модела да научи специфичните визуални черти на вашия персонаж и да ги прилага последователно в различни сцени.
Чести грешки: прекалено разчитане на имена срещу недостатъчно специфициране на геометрията
Най-честата грешка е разчитането на име. Ако именувате персонажа си „Алиса“, моделът няма представа кой е Алиса. Той ще генерира обобщена жена. Името няма значение за модела.
Втората грешка е недостатъчното специфициране на геометрията. Ако кажете „жена със сини очи“, моделът ще варира формата на очите, размера на зениците и ъгъла на погледа. Трябва да специфицирате геометрията: „бадемовидни очи с леко свисане на горния клепач“.
Не бъркайте идентичността със стила. Идентичността е стабилното ядро: лицето, косата, типът тяло. Стиълът е променливата: осветлението, фонът, позата. Вашият промпт трябва да разграничи тези две неща. Чертите на идентичността трябва да бъдат описани с прецизност. Чертите на стила могат да останат по-отворени.
Работен процес: генериране на лист с персонажи преди създаването на сцена
Преди да създадете която и да е сцена, генерирайте лист с персонажи. Това е набор от изображения, показващи вашия персонаж от множество ъгли: фронтален, страничен, отзад и едър план. Използвайте фиксиран seed и фиксирано референтно изображение за генерирането им. Уточнявайте промптите, докато листът с персонажи не стане последователен.
След като имате последователен лист с персонажи, използвайте го като референция за всички последващи генерации. Когато създавате сцена, ще използвате изображението от листа с персонажи като референтен вход. Ще коригирате промпта, за да опишете сцената, но ще запазите чертите на идентичността закрепени чрез структурните описания.
Този работен процес е приложим в различни инструменти. Независимо дали използвате Leonardo.ai за възможности за обучение на модели или DALL-E 3 за детайлно инженерство на промпти, принципът е един и същ: първо установете идентичността, след това варирайте сцената. Ако пропуснете листа с персонажи, ще прекарате повече време в отстраняване на несъответствия, отколкото в създаване на съдържание.
The AI Creative Workflow Guide
You will be able to design a repeatable, high-quality creative workflow using AI tools for images, video, and design tasks.
Get it — $29