Team Ai
Apppublic

danielritchie/generative-affect-engine

sourceHugging Facecc-by-4.0updated 8mo agoView on Hugging Face
0likes
cinematic.py45 linesDownload Raw Back to utils
1import numpy as np2from datasets import load_dataset3from sklearn.metrics.pairwise import cosine_similarity4 5palette_dataset = load_dataset("danielritchie/cinematic-mood-palette")["train"]6 7palette_vectors = []8palette_names = []9 10for row in palette_dataset:11    palette_vectors.append([row["V"], row["A"], row["D"], row["Cx"], row["Co"]])12    palette_names.append(row.get("name", "unknown"))13 14palette_vectors = np.array(palette_vectors)15 16 17def nearest_palette_vector(raw_vad):18    raw_vec = np.array([[raw_vad[k] for k in ["V","A","D","Cx","Co"]]])19    sims = cosine_similarity(raw_vec, palette_vectors)[0]20    idx = np.argmax(sims)21    anchor = palette_vectors[idx]22 23    return {24        "vector": {25            "V": anchor[0],26            "A": anchor[1],27            "D": anchor[2],28            "Cx": anchor[3],29            "Co": anchor[4],30        },31        "name": palette_names[idx]32    }33 34 35def amplify_with_palette(raw, drama):36    anchor_data = nearest_palette_vector(raw)37    anchor = anchor_data["vector"]38 39    amplified = {40        k: float(raw[k] + drama * (anchor[k] - raw[k]))41        for k in raw42    }43 44    return amplified, anchor_data["name"]45