Конзистентност на лик во ИТ видео: Како моделите научиле да ги паметат ликовите
Детален технички преглед на архитектурните иновации кои овозможуваат ИТ видео модели да ја задржат идентитетот на ликот во целиот видео, од механизмите за внимание до вградови за зачувување на идентитетот.

Една од најпостојаните предизвици во генерирањето на ИТ видео е одржување на конзистентност на лик во целиот видео. Прашајте го секој филмски делач: приказната пропаѓа во моментот кога ликот вам суптилно менува изглед помеѓу кадрите. Во 2025 година, конечно видовме модели кои го решија овој проблем со архитектурни иновации кои се исто толку елегантни колку добро планирана маршрута до тежок врв. Дозволете ми да ви го покажам како современите видео модели научиле да ги паметат ликовите.
Предизвикот на конзистентност
Традиционалните модели за дифузија генерираат секој кадар со веројатносно земање примероци. Ова воведува варијанса—корисна за разновидност, проблематична за идентитет. При генерирање видео од 10 секунди на 24fps, моделот прави 240 последователни одлуки, секоја со можности за отклон.
# Основниот проблем: секој денојзирачки чекор воведува варијанса
def denoise_step(x_t, model, t):
noise_pred = model(x_t, t)
# Ова земање примероци воведува стохастичност
x_t_minus_1 = scheduler.step(noise_pred, t, x_t).prev_sample
return x_t_minus_1 # Мали варијации се акумулираат во кадритеРаните видео модели како Gen-1 и Pika 1.0 видливо се мачеа со ова. Ликовите би се менувале во изглед, малку би остареле помеѓу кадрите, или би развиле неконзистентни карактеристики—она што практичарите ја нарекувале „идентитетен отклон". Пробивот дошол од третирање на конзистентност на лик не како проблем на постпроцесирање, туку како архитектурен проблем.
Вградови за зачувување идентитет: Основата
Првата голема иновација беше воведување посветени вградови на идентитет кои персистираат во целиот процес на генерирање. Наместо да се потпираат само на кондиционирање со текст, моделите сега одржуваат експлицитни идентитетни токени:
class IdentityEncoder(nn.Module):
def __init__(self, embed_dim=768):
super().__init__()
self.face_encoder = FaceRecognitionBackbone() # Претренирана модел за лица
self.projection = nn.Linear(512, embed_dim)
self.identity_bank = nn.Parameter(torch.randn(32, embed_dim))
def encode_identity(self, reference_frame):
# Екстрактуј карактеристики на идентитет од референца
face_features = self.face_encoder(reference_frame)
identity_embed = self.projection(face_features)
# Крст-внимание со научени идентитетни токени
identity_tokens = self.cross_attention(
query=self.identity_bank,
key=identity_embed,
value=identity_embed
)
return identity_tokensОвие идентитетни токени се потоа вбризгани во процесот на дифузија на секој денојзирачки чекор, создавајќи она што сакам да ја сметам за "точка на котва"—како фиксна заштита на маршрута за пензачи што можеш секогаш да се врачиш кога условите станат неизвесни.
Внимание помеѓу кадри: Учење временски идентитет
Вториот пробив беше архитектурен: моделите сега експлицитно обрнуваат внимание во кадрите при одлучување за изглед на ликот. Дифузионите трансформатори природно го поддржуваат ова преку нивно простор-времеснско процесирање на кратови, но моделите фокусирани на конзистентност одат подалеку.
Клучна иновација: Посветени слојеви на внимание за идентитет кои специфично обрнуваат внимание на фацијални региони низ временската димензија:
class IdentityAwareAttention(nn.Module):
def __init__(self, dim, num_heads=8):
super().__init__()
self.spatial_attn = nn.MultiheadAttention(dim, num_heads)
self.temporal_attn = nn.MultiheadAttention(dim, num_heads)
self.identity_attn = nn.MultiheadAttention(dim, num_heads)
def forward(self, x, identity_tokens, face_masks):
# Стандардно просторско внимание во кадрите
x = self.spatial_attn(x, x, x)[0] + x
# Временско внимание во кадрите
x = rearrange(x, '(b t) n d -> (b n) t d', t=num_frames)
x = self.temporal_attn(x, x, x)[0] + x
x = rearrange(x, '(b n) t d -> (b t) n d', n=num_patches)
# Внимание специфично за идентитет користејќи фацијални региони
face_tokens = x * face_masks.unsqueeze(-1)
x = self.identity_attn(
query=x,
key=identity_tokens,
value=identity_tokens
)[0] + x
return xОвој тројачен механизам на внимање—просторски, временски, и специфичен за идентитет—дозволува моделот да прави одлуки за изглед додека експлицитно се позива на установениот идентитет и претходните кадри.
Текући пристапи на модели во споредба
Главните платформи за генерирање видео ја имплементирале конзистентност на ликот поинаку:
| Модел | Пристап | Метод за конзистентност | Ефективност |
|---|---|---|---|
| Sora 2 | Простор-времески кратови | Имплицитно преку долг контекст | Добро за кратки кадри |
| Veo 3 | Мултифазно генерирање | Котва на клучни кадри | Силно за човечко движење |
| Gen-4.5 | Кондиционирање со референца | Експлицитно вбрцување на идентитет | Најдобра конзистентност |
| Kling 1.6 | Внимание свесно на лица | Посветено следење на лицо | Силно за крупни планови |
Runway's Gen-4.5 заслужува специјално споменување овде. Нивниот пристап комбинира кондиционирање на референца слика со она што го нарекуваат „закупувања на идентитет"—научени токени кои моделот е обучен да ги чува без обзир на други генеративни одлуки. Овој архитектурен избор веројатно придонесе во нивната доминација во Video Arena.
Парадигма на референца кадр
Значајна промена во 2025 година е движењето кон генерирање кондиционирано со референца. Наместо да генерираат ликови чисто од текстуални описи, моделите сега прифаќаат референцни слики кои го утврдуваат канонскиот изглед:
class ReferenceConditionedGenerator:
def __init__(self, base_model, identity_encoder):
self.model = base_model
self.identity_encoder = identity_encoder
def generate(self, prompt, reference_images, num_frames=120):
# Кодирај идентитет од референцни слики
identity_embeds = []
for ref in reference_images:
identity_embeds.append(self.identity_encoder(ref))
# Излезна соседност множество референци за робустен идентитет
identity_tokens = torch.stack(identity_embeds).mean(dim=0)
# Генерирај со кондиционирање на идентитет
video = self.model.generate(
prompt=prompt,
num_frames=num_frames,
cross_attention_kwargs={
"identity_tokens": identity_tokens,
"identity_strength": 0.8 # Балансира конзистентност наспроти креативност
}
)
return videoПараметарот identity_strength претставува важна компромис. Премногу високо, и моделот станува крут, неспособен да покаже варијација на природен израз. Премногу ниско, и отклонот се враћа. Наоѓање на мандатната точка—типично околу 0.7-0.85—е делумно уметност, делумно наука.
Функции на загуба за зачувување на идентитет
Обука на овие системи бара специјализирани функции на загуба кои експлицитно го казнуваат отклонот на идентитет:
Загуба на зачувување на идентитет:
L_identity = ||f(G(z, c)) - f(x_ref)||² + λ_temporal * Σ_t ||f(v_t) - f(v_{t+1})||²Каде f е претренирана шифра за препознавање на лице, G е генератор, и v_t го претставува генерираниот кадар. Првиот термин осигурува дека генерираните лица се совпаѓаат со референци; вториот казнува варијација од кадар до кадар.
def identity_preservation_loss(generated_video, reference_faces, face_encoder):
# Совпаѓање на идентитет по кадар до референца
frame_losses = []
for frame in generated_video:
face_embed = face_encoder(frame)
ref_embed = face_encoder(reference_faces).mean(dim=0)
frame_losses.append(F.mse_loss(face_embed, ref_embed))
reference_loss = torch.stack(frame_losses).mean()
# Временска конзистентност помеѓу соседни кадри
temporal_losses = []
for i in range(len(generated_video) - 1):
curr_embed = face_encoder(generated_video[i])
next_embed = face_encoder(generated_video[i + 1])
temporal_losses.append(F.mse_loss(curr_embed, next_embed))
temporal_loss = torch.stack(temporal_losses).mean()
return reference_loss + 0.5 * temporal_lossСценарија со повеќе ликови: Потешкиот проблем
Конзистентност на еден лик е ларгелу решена. Сценарија со повеќе ликови—каде множество различни идентитети мораат да бидат одржувани истовремено—остануваат предизвик. Механизмите на внимање можат да ги мешаат идентитетите, водејќи до крвавење на карактеристики помеѓу ликови.
Современи пристапи користат одделни банки на идентитет:
class MultiCharacterIdentityBank:
def __init__(self, max_characters=8, embed_dim=768):
self.banks = nn.ModuleList([
IdentityBank(embed_dim) for _ in range(max_characters)
])
self.character_separator = nn.Parameter(torch.randn(1, embed_dim))
def encode_multiple(self, character_references):
all_tokens = []
for idx, refs in enumerate(character_references):
char_tokens = self.banks[idx].encode(refs)
# Додај сепаратор за спречување на мешање
char_tokens = torch.cat([char_tokens, self.character_separator])
all_tokens.append(char_tokens)
return torch.cat(all_tokens, dim=0)Токените сепаратори делуваат како белеи помеѓу пензачи—одржувајќи различни идентитети дури и кога работат во блиска близина.
Практични импликации за креатори
За оние кои користат овие алатки наместо да ги градат, неколку практични шеми се појавија:
Квалитет на референцна слика е важен: Референцни слики со повисока резолуција, добро осветлени со неутрални изрази произведуваат конзистентни резултати. Моделот учи идентитет од овие котви, и шум се пропагира.
Повеќе референци подобруваат робусност: Обезбедување 3-5 референцни слики од различни агли помага моделот да гради потповна претстава на идентитет. Сметајте го тоа како триангулирање позиција од повеќе точки.
Инженеринг на потсказна за конзистентност: Експлицитни описи на идентитет во потсказните ја зајакнуваат визуелната конзистентност. „Жена од 30 години со краток браон косметий и зелени очи" обезбедува дополнителни ограничувања кои моделот може да ги искористи.
Патот напред
Се приближуваме на праг каде генериран видео со ИТ може да ја задржи конзистентност на ликот доволна за наративно раскажување. Преостанатите предизвици—суптилна конзистентност на израз, генерирање долга форма надвор од 60 секунди, и интеракција на повеќе ликови—активно се решаваат.
Во Bonega.ai, сме особено заинтересирани како овие подобрувања на конзистентност се интегрираат со способности за проширување видео. Способноста да се прошири постоечко видео додека се задржува совршена конзистентност на ликот ги отвора креативните можности кои едноставно не беше изводливо пред 12 месеци.
Математичката елеганција на третирање на идентитет како прва архитектурна грижа, наместо корекција по факт, означува зрелост во како размислуваме за генерирање видео. Како утврдување добро снабдено високо табор пред потисок на врв, овие основни подобрувања овозможуваат подолги, амбициозни креативни патувања кои лежат напред.
Конзистентност на лик не е само технички метрик—е основата на визуелно раскажување. И во 2025 година, таа основа конечно е доволно цврста да се гради врз неа.
Дали оваа статија беше корисна?

Alexis
Инженер за вештачка интелигенцијаИнженер за вештачка интелигенција од Лозана кој ја комбинира длабочината на истражувањето со практична иновација. Го дели времето помеѓу архитектури на модели и алпски врвови.
Поврзани статии
Продолжете со истражување со овие поврзани објави

MiniMax Hailuo 02: Кинески Буџетски AI Video Модел Предизвикува Гиганти
Hailuo 02 од MiniMax доставува конкурентна видео квалитета за малена фракција од цената, со 10 видеоклипови за цената на една Veo 3 снимка. Еве што го прави овој кински предизвикувач вреден да се гледа.

Револуцијата на AI видео со отворен код: Можат ли потрошувачките GPU да конкурираат со технолошките гиганти?
ByteDance и Tencent штотуку објавија видео модели со отворен код кои работат на потрошувачки хардвер. Ова го менува сè за независните креатори.

Runway GWM-1: Општиот модел на светот што ја симулира реалноста во реално време
Runway-евиот GWM-1 означува преломна точка, премин од генерирање видеа кон симулација на светови. Истражете како овој авторегресивен модел создава средини што можете да ги истражувате, фотореалистички аватари и симулации за тренирање роботи.