Meta Pixel
AlexisAlexis
7 min read
1244 orð

Stöðugleiki persóna í gerviefnaaflfræðilegum myndböndum: Hvernig að halda andlitum stöðugum

Tæknileg greining á arkitektúrbreytingum sem gera kleift að viðhalda persónuleika yfir klipp, frá athygliskerfi til auðkenna sem varðveita persónuna.

Stöðugleiki persóna í gerviefnaaflfræðilegum myndböndum: Hvernig að halda andlitum stöðugum

Ein stærsta viðvarandi áskorun gerviefnaaflfræðilegrar myndbandagerðar hefur verið að viðhalda stöðugleika persóna yfir klipp. Spurðu hvaða kvikmyndagerðarmann sem er: saga brotnar þegar andlit aðalpersónu breytist lúmskandi á milli klippa. Árið 2025 höfum við endanlega séð módel brjóta þetta vandamál með arkitektúrbreytingum sem eru eins glæsilegar og vel skipulögð leið yfir erfiðan tind. Leyfðu mér að ganga þig í gegnum hvernig nútímamódel fyrir myndbandagerð eru að læra að muna andlit.

Áskorun stöðugleikans

Hefðbundin dreifingarmódel mynda hvert ramma með líkindaúrtaki. Þetta kynnir breytileika—gagnlegt fyrir fjölbreytileika, vandamálsamt fyrir auðkenningu. Við gerð 10 sekúndna myndbands með 24 köflum á sekúndu tekur módelin 240 raðaðar ákvarðanir, og hver ákvarðani hefur tækifæri til þess að rekast.

# Kjarninn í vandamálinu: hver dauðnæming stig innleiðir breytileika
def denoise_step(x_t, model, t):
    noise_pred = model(x_t, t)
    # Þetta úrtak innleiðir stærðakennd
    x_t_minus_1 = scheduler.step(noise_pred, t, x_t).prev_sample
    return x_t_minus_1  # Lítil frávik safnast upp á mörgum köflum

Snemma myndbandsmódel eins og Gen-1 og Pika 1.0 áttu í augljósum erfiðleikum með þetta. Persónat myndu breytast í útliti, eldast aðeins á milli klippa, eða þróa ósamkvæm einkenni—það sem iðkendur kölluðu „auðkenndaafleiðingu". Breyting kom frá því að meðhöndla stöðugleika persóna ekki sem eftirvinnsluflokk, heldur sem arkitektúrflokk.

Auðkenni sem varðveita auðkenningu: Grunnurinn

Fyrri stóra nýjung var að innleiða tileinka auðkenni sem haldast í gegnum myndunarferlið. Í stað þess að reiða sig eingöngu á textabæti viðhalda módelin nú beinni auðkennisatriðum:

class IdentityEncoder(nn.Module):
    def __init__(self, embed_dim=768):
        super().__init__()
        self.face_encoder = FaceRecognitionBackbone()  # Fyrirfram þjálfað andlitsmdel
        self.projection = nn.Linear(512, embed_dim)
        self.identity_bank = nn.Parameter(torch.randn(32, embed_dim))
 
    def encode_identity(self, reference_frame):
        # Draga auðkenni úr viðmiðunarkafla
        face_features = self.face_encoder(reference_frame)
        identity_embed = self.projection(face_features)
 
        # Kross-athygli með þekktum auðkenni atriðum
        identity_tokens = self.cross_attention(
            query=self.identity_bank,
            key=identity_embed,
            value=identity_embed
        )
        return identity_tokens

Þess auðkenni atriðin eru síðan sprautað inn í dreifingnarferlið á hverju danunarstepi, sem skapar það sem ég kalla „stöðugrip"—eins og fastar varnir á klettaklifri leið sem þú getur alltaf fest aftur á þig þegar skilyrði verða óviss.

Athygli á milli kafla: Læra tíðlega auðkenningu

Annar stór framgangur var arkitektúrlegur: módelin athygli nú beinlínis yfir kafla við ákvörðun um útlit persónu. Dreifingartrans formarar styðja þetta náttúrulega með gegnum tíð-rúmið patch vinnslu þeirra, en stöðugleika-beinfara módel ganga lengra.

Lykilnýjung: Auðkennis-meðvituð athygliföll sem sérstaklega athygli andlitssvæðum yfir tímavídda:

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):
        # Hefðbundin rúmathygli innan kafla
        x = self.spatial_attn(x, x, x)[0] + x
 
        # Tíðleg athygli yfir kafla
        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)
 
        # Auðkennis-sértæk athygli með því að nota andlitssvæði
        face_tokens = x * face_masks.unsqueeze(-1)
        x = self.identity_attn(
            query=x,
            key=identity_tokens,
            value=identity_tokens
        )[0] + x
 
        return x

Þessi þríþætta athyglikerfi—rúmið, tíðið og auðkennis-sértækt—leyfir módilinu að taka ákvörðun um útlit á meðan beinlínis er vísað til bæði stofnuðu auðkennisins og fyrri kafla.

Núverandi málastöður módla samanburðar

Helstu myndbandagerðarverkfangar hafa útfært stöðugleika persóna með mismunandi hætti:

MódelAðferðStöðugleikakerfiSkilvirkni
Sora 2Rúm-tími patchÓbeint í gegnum langt samhengiGott fyrir stutt klipp
Veo 3Margstigs myndunarferliLykilrammakestirSterkt fyrir mannlega hreyfingu
Gen-4.5ViðmiðunarbætiBein auðkennis innsprautunBest-í-flokki stöðugleiki
Kling 1.6Andlit-meðvituð athygliTileinka andlits rakninguSterkt fyrir stærðarstærðar

Runway's Gen-4.5 á sér sérstaka tíð hér. Nálgun þeirra sameinar viðmiðunarástæðu bæti við það sem þeir kalla „auðkennis loc"—þekktir atriði sem módilinn er þjálfaður til að varðveita óháð öðrum myndunarákvarðunum. Þessi arkitektúrval studdi líklega að þeirra Video Arena yfirburðum.

Viðmiðunarrammi hugmyndafræði

Stórkostlegur breyting árið 2025 hefur verið flutningur í átt að viðmiðunarbætri myndunarferli. Í stað þess að mynda persónat eingöngu frá textabeskrifunum taka módelin nú við viðmiðunarmyndum sem stofna kanóníska útlit:

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):
        # Dulkóða auðkenningu frá viðmiðunarmyndum
        identity_embeds = []
        for ref in reference_images:
            identity_embeds.append(self.identity_encoder(ref))
 
        # Sameina margar viðmiðanir fyrir óhrætt auðkenningu
        identity_tokens = torch.stack(identity_embeds).mean(dim=0)
 
        # Mynda með auðkennis bæti
        video = self.model.generate(
            prompt=prompt,
            num_frames=num_frames,
            cross_attention_kwargs={
                "identity_tokens": identity_tokens,
                "identity_strength": 0.8  # Jafnvætir stöðugleika gegn skapandi
            }
        )
        return video

identity_strength breytan táknar mikilvægan viðskipti. Of há og módilinn verður stíflandi, ófær um að sýna náttúrulega tjáningu breytingu. Of lág og afleiðing kemur aftur. Að finna sætustaðinn—venjulega um 0.7-0.85—er hluti list, hluti vísindum.

Tapföllin fyrir auðkennis varðveislu

Þjálfun þessara kerfa krefst sérhæfðra tapfalla sem beinlínis sekt fyrir auðkennaðafleiðingu:

Auðkennis varðveislu tap:

L_identity = ||f(G(z, c)) - f(x_ref)||² + λ_temporal * Σ_t ||f(v_t) - f(v_{t+1})||²

Þar sem f er fyrirfram þjálfaður andlitsviðurkenningarkóðari, G er myndarinn, og v_t táknar mynduð rammar. Fyrsti hugtakið tryggir að mynduð andlit passa við viðmiðanir; þið sektir ramma-til-ramma breytingu.

def identity_preservation_loss(generated_video, reference_faces, face_encoder):
    # Á-ramma auðkennis samsvörun við viðmiðun
    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()
 
    # Tíðleg stöðugleiki á milli samliggjandi kafla
    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

Margar persóna sviðsmyndir: Erfiðara vandamálið

Einum persóna stöðugleiki er að mestu leyti leyst. Margar persóna sviðsmyndir—þar sem mörg greinileg auðkenni verða að halda samhliða—halda áfram að vera áskorun. Athygliskerfin geta rugla auðkenninu, sem leiðir til eiginleika blóðflæðis á milli persóna.

Núverandi aðferðir nota aðskilda auðkenni banka:

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)
            # Bæta aðskilningum til að koma í veg fyrir rugling
            char_tokens = torch.cat([char_tokens, self.character_separator])
            all_tokens.append(char_tokens)
        return torch.cat(all_tokens, dim=0)

Aðskilningur atriðin virka eins og hættutvermun á milli klettaklifara—að viðhalda aðskildum auðkenninum jafnvel þegar starfrækt nálægt hver öðrum.

Hagnýtar afleiðingar fyrir skaparana

Fyrir þá sem nota þessi verkfæri frekar en að byggja þau hafa nokkur hagnýt mynstur komið fram:

Viðmiðunar myndarúnun skipta máli: Hærri upplausn, vel upplýst viðmiðunarmyndir með hlutlausri tjáningu framleiða stöðugari niðurstöður. Módilinn lærir auðkenningu frá þessum köfum og hávaði dreifist.

Margar viðmiðanir bæta róstleika: Að útvega 3-5 viðmiðunarmyndir frá mismunandi sjónarhornum hjálpar módilinu að byggja fullkomnari auðkennis framsetning. Haltu því sem marglínu staðsetjandi frá mörgum punktum.

Spennandi verkfræði fyrir stöðugleika: Beinni auðkennis lýsing í spurningum efla sjónstæðar stöðugleika. „30 ára gömul kona með stutta brúna hár og græn augu" veitir viðbótar takmarkanir sem módilinn getur notfærð sér.

Leiðin fram á undan

Við erum að nálgast þröskuldinn þar sem gerviefnaaflfræðileg myndbandagerð getur viðhaldið persóna stöðugleika nægilega fyrir frásagnar sögusagn. Eftirstandandi áskoranir—fín tjáning stöðugleiki, langtíma myndunarferli umfram 60 sekúndur, og margar persóna samspil—eru virk í gangi.

Hjá Bonega.ai höfum við sérstaka áhuga á því hvernig þessir stöðugleiki endurbætingar samsetja við myndbands framlengingu," getu. Getan til að framlengja núverandi myndskeið á meðan fullkominn persóna stöðugleiki er viðhaldinn opnar skapandi möguleika sem einfaldlega voru ekki framkvæmanlegir fyrir 12 mánuðum síðan.

Stærðfræðileg fagurð meðhöndlunar auðkennisins sem fyrsta-flokka arkitektúrkafli, frekar en eftir ad hoc leiðrétting, markar þroska í því hvernig við hugsun um myndbandagerð. Eins og að stofna vel stofa há herbergi fyrir tinda þrýst, bæta þessum grunni endurbætingar lengri, metnaðfyllri skapandi ferðum sem blikra fram.

Persóna stöðugleiki er ekki bara tæknilega mæling—það er grundvöllur sjón sögusagnar. Og árið 2025 hefur sá grundvöllur endanlega orðið sterkur nóg til að byggja á.

Var þessi grein gagnleg?

Alexis

Alexis

Gervigreindartæknir

Gervigreindartæknir frá Lausanne sem sameinar dýpt rannsókna og hagnýta nýsköpun. Skiptir tíma sínum á milli líkanaarkitektúra og Alpafjalla.

Tengdar greinar

Haltu áfram að kanna með þessum tengdu færslum

Líkaði þér þessi grein?

Fáðu meiri innsýn og fylgstu með nýjasta efninu okkar.

Stöðugleiki persóna í gerviefnaaflfræðilegum myndböndum: Hvernig að halda andlitum stöðugum