danielritchie/generative-affect-engine
0
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 