geolip-beatrix-anima

Experiments on steering Anima, a 2B illustration model built on NVIDIA Cosmos-Predict2, with a second conditioning source: Beatrix, a byte-level language model from the geolip line. Anima reads its prompt through a small language model (Qwen3 0.6B) and a light adapter, so an added signal is not drowned by a very large text encoder; that makes it a bed for testing how far a second source can steer the image without a full diffusion training run. The first experiments measure the bed itself: how its conditioning responds to mood words and to a mood direction added to it, and what LoRAs trained on the model's own mood images do.

Each experiment has its own folder under experiments/ with a README (the question, the recipe, the rule fixed before the run, the result), meta.json, and its configuration, weights, evaluation and logs where it has them.

Changed on 2026-10-19. The model often draws children or school settings (school uniforms, classrooms, playgrounds) in scenes that ask for neither. Every published sample picture and every tile of every sheet here was swept with an image tagger (WD EVA02-Large v3: any child tag above 0.10 or school tag above 0.30, then a second pass at 0.03 and 0.15) and every flagged one was looked at: 18 LoRA sample pictures were removed (the playground prompt drew children), and the flagged tiles of 54 sheets are painted grey. The numbers in the READMEs are unchanged; they were computed on the full draws.

Experiments

folder date what result
e001_anima_flavor_test 2026-10-03 The stock model: mood words, a mood direction added to the conditioning, and the conditioning norms upbeat words +2.59 (UPBEAT WORDS MOVE IT), downbeat words -1.39 (DOWNBEAT WORDS MOVE IT); dial per unit alpha: source +0.03 (NO EFFECT), context +0.31 (A DIAL)
e002_lora_mood_up 2026-10-03 Mood LoRA: upbeat images, neutral captions NO EFFECT: mood effect +0.35 +- 0.24 at scale 1, 56% of 32 held-out cells the expected way
e003_lora_neutral_control 2026-10-03 Control LoRA: the model's own neutral images, neutral captions control: mood effect -0.03 +- 0.18 at scale 1; CONTROL QUIET against e002
e004_lora_mood_down 2026-10-03 Mood LoRA, mirrored: downbeat images, neutral captions MIXED: mood effect -0.69 +- 0.23 at scale 1, 69% of 32 held-out cells the expected way
e005_lora_mood_up_reseed 2026-10-03 Mood LoRA, replicate: a fresh draw of upbeat images FLAVOR LORA: mood effect +1.31 +- 0.28 at scale 1, 84% of 32 held-out cells the expected way
e006_lora_mood_up_lr_1e-5 2026-10-03 Mood LoRA at half the learning rate FLAVOR LORA: mood effect +1.07 +- 0.24 at scale 1, 75% of 32 held-out cells the expected way
e007_lora_mood_up_lr_4e-5 2026-10-03 Mood LoRA at double the learning rate FLAVOR LORA: mood effect +1.00 +- 0.27 at scale 1, 81% of 32 held-out cells the expected way
e008_lora_neutral_control_draw2 2026-10-03 Control LoRA, second draw: the model's own neutral images control: mood effect +0.12 +- 0.19 at scale 1; CONTROL QUIET against e005
e009_lora_mood_down_draw2 2026-10-03 Mood LoRA, mirrored, second draw: downbeat images NO EFFECT: mood effect -0.39 +- 0.21 at scale 1, 62% of 32 held-out cells the expected way
e010_lora_mood_up_lr_1e-5_draw2 2026-10-03 Mood LoRA at half the learning rate, second draw FLAVOR LORA: mood effect +1.18 +- 0.19 at scale 1, 84% of 32 held-out cells the expected way
e011_lora_mood_up_lr_4e-5_draw2 2026-10-03 Mood LoRA at double the learning rate, second draw FLAVOR LORA: mood effect +1.40 +- 0.26 at scale 1, 75% of 32 held-out cells the expected way
e012_anima_attribute_screen 2026-10-03 The stock model: attribute words, attribute sliders after the adapter, and their cross-talk hair_length WORDS ONLY; hair_colour SLIDER WITH CROSS-TALK; eye_colour WORDS ONLY; proportions NO HANDLE; age WORDS ONLY; style WORDS ONLY
e013_beatrix_mood_connector 2026-10-03 Beatrix's mood phrases steer the image through a learned push NOT LEARNED (upbeat +0.23, downbeat +0.21); NOT LEARNED (upbeat +0.29, downbeat +0.13); NEUTRAL MOVES (+0.29)
e014_beatrix_random_trunk_connector 2026-10-03 Control: the same connector on an untrained Beatrix of the same shape NOT LEARNED (upbeat -0.02, downbeat -0.07); NOT LEARNED (upbeat -0.01, downbeat -0.05); NEUTRAL MOVES (-0.05); against e013: NOT READABLE (Beatrix's connector did not learn)
e015_free_vector_connector 2026-10-03 Capacity reference: one free learned vector per mood class, no encoder NOT LEARNED (upbeat +0.43, downbeat -1.16); NEUTRAL QUIET (+0.03)
e016_beatrix_mood_connector_whitened 2026-10-03 Beatrix's mood phrases steer the image through a learned push, whitened input NOT LEARNED (upbeat +0.31, downbeat -0.36); NOT LEARNED (upbeat +0.14, downbeat -0.15); NEUTRAL MOVES (+0.13)
e017_beatrix_random_trunk_connector_whitened 2026-10-03 Control: the same whitened connector on an untrained Beatrix of the same shape NOT LEARNED (upbeat +0.19, downbeat -0.12); NOT LEARNED (upbeat +0.17, downbeat -0.06); NEUTRAL QUIET (-0.03); against e016: NOT READABLE (Beatrix's connector did not learn)
e018_beatrix_mood_slider 2026-10-03 Beatrix's reading of a phrase's mood as a slider value NOT LEARNED (upbeat +0.78, downbeat +0.14); NOT LEARNED (upbeat +0.46, downbeat -0.01); NEUTRAL QUIET (+0.22)
e019_beatrix_random_trunk_slider 2026-10-03 Control: the same slider on an untrained Beatrix of the same shape NOT LEARNED (upbeat +0.39, downbeat -0.46); NOT LEARNED (upbeat +0.10, downbeat -0.09); NEUTRAL QUIET (-0.03); against e018: NOT READABLE (Beatrix's connector did not learn)
e020_anima_route_split 2026-10-04 The stock model: which of the adapter's two readings of a caption carries the mood words, Qwen3's states or the T5 word ids the words +2.59 / -1.39; Qwen3's states only -0.04 / -0.12 (CARRIES NOTHING); the T5 ids only +1.94 / -0.43 (ONE WAY)
e021_anima_route_split_appended 2026-10-04 The stock model: the mood words appended after the scene, through the adapter's query half, its source half, or both the words +2.62 / -2.65; Qwen3's states only -0.08 / -0.11 (CARRIES NOTHING); the T5 ids only +2.53 / -0.52 (ONE WAY); the source half beside the query half +0.09 / -2.13 (downbeat: THE SOURCE HALF ADDS TO THE QUERY HALF)
e022_anima_query_dial 2026-10-04 The stock model: a mood direction added to the adapter's queries, alone and paired with a source token a query can look up query dial +0.057/unit (MIXED); downbeat side, a source token beside it: direction +0.01 (NO EFFECT), state +0.05 (NO EFFECT); uniform control +0.05 (NO EFFECT)
e023_beatrix_mood_slider_two_sided 2026-10-03 Beatrix's reading of a phrase's mood as a two-sided slider NOT LEARNED (upbeat +0.49, downbeat -0.14); NOT LEARNED (upbeat +0.17, downbeat -0.33); NEUTRAL QUIET (-0.07)
e024_beatrix_random_trunk_slider_two_sided 2026-10-03 Control: the same two-sided slider on an untrained Beatrix of the same shape NOT LEARNED (upbeat +0.20, downbeat -0.42); NOT LEARNED (upbeat +0.08, downbeat -0.04); NEUTRAL QUIET (+0.04); against e023: NOT READABLE (Beatrix's connector did not learn)
e025_beatrix_mood_slider_smooth 2026-10-03 Beatrix's reading of a phrase's mood as a smooth two-sided slider NOT LEARNED (upbeat +2.33, downbeat +0.08); NOT LEARNED (upbeat +0.98, downbeat +0.07); NEUTRAL QUIET (+0.35)
e026_anima_word_split 2026-10-04 The stock model: single mood words through the adapter's query half alone or through both halves, whole T5 tokens against shattered ones BY TOKENIZATION; the query half's share: cheerful whole 1.03, cheerful shattered 0.03, gloomy whole 1.33, gloomy shattered 0.37
e027_anima_slot_pair 2026-10-04 The stock model: a word-sized mood push at one word's position, on the adapter's query side, its source side, both, or the source side under a content-free question per word of push: the query at the slot +0.709 (A DIAL), the pair +0.642 (A DIAL), the answer alone +0.140 (MIXED), the answer under a content-free question +0.122 (MIXED); downbeat side, the matched source beside the query +0.04 (NO EFFECT)
e028_anima_word_swap 2026-10-04 The stock model: a mood word cut into pieces, read with another word's Qwen3 states in its place; does the picture follow the answer's mood? THE ANSWER CARRIES THE MOOD: a word's own pieces with another word's reading, cheerful answers minus gloomy ones +2.050 +- 0.370 (91% of cells), 0.64 of the words' own axis; the neutral carriers: 'workaday' NO EFFECT (0.07 of the answer's own effect), 'quotidian' NO EFFECT (0.12)
e029_anima_relay_in_pictures 2026-10-05 A relayed phrase reading in pictures stage A: THE CAPTION CARRIES THE MOOD in the bare form (+0.936 +- 0.305, 75% of cells; stage B in the bare form); stage B: MIXED: the relay minus the filler +0.616 +- 0.140 (64% of cells), 0.72 of the caption's own effect; against the untrained trunk MIXED (+0.461); nine arms, first seed: NO EFFECT (0.60 of the caption's effect), against the relay NO EFFECT (-0.108)
e030_beatrix_hub_read 2026-10-07 Beatrix's hubs against her stream as features for the sliders (a read of her states; no pictures) STREAM BETTER: her stream at the phrase's closing full stop, block 18 (separation 2.19; the best hub reading, the hub's blackboard at the phrase's closing full stop, block 22, 1.83, balance 0.13 against 0.41); the blackboards lead on caption geometry (CLIP-B/32 overlap 0.41 against the pooled stream's 0.32 at block 14; ridge to Anima's caption context R2 0.60-0.64 against 0.55-0.57)
e031_beatrix_stream_closing_slider 2026-10-07 Beatrix's reading of a phrase at its closing full stop, as a two-sided slider NOT LEARNED (upbeat +1.22, downbeat +0.36); NOT LEARNED (upbeat +0.83, downbeat +0.08); NEUTRAL QUIET (+0.31)
e032_beatrix_random_trunk_stream_closing_slider 2026-10-07 Control: the same slider on an untrained Beatrix of the same shape NOT LEARNED (upbeat +0.73, downbeat -0.06); NOT LEARNED (upbeat +0.33, downbeat +0.25); NEUTRAL QUIET (+0.18); against e031: NOT READABLE (Beatrix's connector did not learn); against e033: NOT READABLE (Beatrix's connector did not learn)
e033_beatrix_stream_closing_slider_nine_arms 2026-10-07 Beatrix's closing-stop reading with her nine trained arms mounted NOT LEARNED (upbeat +1.42, downbeat +0.37); NOT LEARNED (upbeat +0.62, downbeat +0.34); NEUTRAL QUIET (+0.40)
e034_beatrix_hub_slider 2026-10-07 Beatrix's hub: the blackboard's reading of a phrase as a two-sided slider NOT LEARNED (upbeat +1.17, downbeat +0.21); NOT LEARNED (upbeat +0.44, downbeat +0.18); NEUTRAL QUIET (+0.31)
e035_beatrix_random_trunk_hub_slider 2026-10-07 Control: the hub slider on an untrained Beatrix of the same shape NOT LEARNED (upbeat +1.72, downbeat +0.01); NOT LEARNED (upbeat +0.60, downbeat +0.07); NEUTRAL MOVES (+0.75); against e034: NOT READABLE (Beatrix's connector did not learn)
e036_beatrix_hub_and_stream_slider 2026-10-07 Beatrix's hub and stream together as a two-sided slider NOT LEARNED (upbeat +1.12, downbeat +0.01); NOT LEARNED (upbeat +0.73, downbeat -0.08); NEUTRAL QUIET (+0.33)
e037_beatrix_random_trunk_hub_and_stream_slider 2026-10-07 Control: the combined slider on an untrained Beatrix of the same shape NOT LEARNED (upbeat +0.41, downbeat -0.55); NOT LEARNED (upbeat +0.14, downbeat -0.12); NEUTRAL MOVES (+0.14); against e036: NOT READABLE (Beatrix's connector did not learn)
e038_beatrix_dual_extraction_read 2026-10-07 Beatrix's trunk and hub, reading a caption's own bytes and Qwen3's spelling of its tokens, against the Qwen3 states Anima reads (a read of her states; no pictures) her own bytes against Qwen's spelling: trunk HER OWN BYTES CLOSER (0.56 against 0.38), hub HER OWN BYTES CLOSER (0.39 against 0.32); trunk against hub on her own bytes: TRUNK CLOSER; the gloomy side carried into Qwen's frame by 11 of 30 readings; the pick: her stream (the block's output) at block 20, reading the caption's own bytes
e039_beatrix_block20_slider_neutral_off 2026-10-07 Beatrix's closing-stop reading at block 20 as a two-sided slider, the neutral phrases kept off both sides in training NOT LEARNED (upbeat +1.27, downbeat +0.14); NOT LEARNED (upbeat +1.20, downbeat -0.31); NEUTRAL QUIET (+0.18)
e040_beatrix_random_trunk_block20_slider_neutral_off 2026-10-07 Control: the same slider on an untrained Beatrix of the same shape NOT LEARNED (upbeat +1.03, downbeat -0.31); NOT LEARNED (upbeat +0.17, downbeat +0.05); NEUTRAL QUIET (+0.24); against e039: NOT READABLE (Beatrix's connector did not learn)
e041_beatrix_block20_slider 2026-10-07 Beatrix's closing-stop reading at block 20 as a two-sided slider, the hub sliders' recipe NOT LEARNED (upbeat +1.50, downbeat +0.25); NOT LEARNED (upbeat +1.18, downbeat +0.07); NEUTRAL QUIET (+0.27)
e042_beatrix_qwen_arm_slider 2026-10-07 Beatrix's reading through her Qwen tokenizer arm as a two-sided slider NOT LEARNED (upbeat +0.81, downbeat +0.06); NOT LEARNED (upbeat +0.79, downbeat +0.06); NEUTRAL QUIET (+0.06)
e043_beatrix_random_trunk_qwen_arm_slider 2026-10-07 Control: the same slider on an untrained Beatrix of the same shape with its own Qwen tokenizer arm NOT LEARNED (upbeat +0.14, downbeat +0.04); NOT LEARNED (upbeat +0.08, downbeat +0.21); NEUTRAL MOVES (+0.14); against e042: NOT READABLE (Beatrix's connector did not learn)
e044_beatrix_plain_mounted_slider 2026-10-07 Beatrix's plain reading in the same mount as a two-sided slider NOT LEARNED (upbeat +0.68, downbeat -0.30); NOT LEARNED (upbeat +0.72, downbeat -0.36); NEUTRAL QUIET (-0.06)
e045_beatrix_qwen_arm_read 2026-10-08 Beatrix reading Qwen3's spelling of a caption through her Qwen tokenizer arm, against the Qwen3 states Anima reads (a read of her states; no pictures) through the arm Qwen3's spelling aligns 0.955-0.971 with her own bytes; against Qwen3's states at block 24 0.546 (her own bytes in the same mount 0.544): B3 MET / MET, B4 MET / MET; the slider's block 20
e046_nano_dual_extraction_read 2026-10-17 The four nano bodies and their continuations against the Qwen3 states Anima reads: closeness, stacks, hubs and each reader's own mood axis (a read of states; no pictures) every body learned, closest at its middle block (0.39-0.40 against Beatrix 3s's .56 and the untrained starts' .27-.29); the continuations held; every hub below its stream; the four bodies side by side 0.45, adding at every block; no nano reader places mood phrases on its own axis better than its controls
e047_nano_relay_in_pictures 2026-10-17 The relay in pictures over whole captions: Qwen3's states replaced by a mapped reading of Beatrix 3s, a nano body, the four nano bodies side by side, a lookup of the token, and the untrained nano starts the registered rule (above the token lookup on both judges) is met by no arm; the caption score cannot separate Qwen3's own states from the token lookup (Qwen3's own states +0.28 +- 0.35): every arm reads the caption's own T5 tokens as the adapter's queries, and they carry the caption's content into every picture, so on this judge the rule of both judges can be met by no arm; on picture kept, above the floor: Beatrix 3s +0.0345 +- 0.0090; at the floor: castor -cf +0.0018 +- 0.0099, the four nano bodies side by side +0.0092 +- 0.0137, their untrained starts side by side -0.0056 +- 0.0147; share of the floor-to-Qwen3 gap closed on picture kept: beatrix 0.20, nano 0.01, stack 0.05, births -0.03
e048_nano_uniform_comparator 2026-10-17 The uniform comparator on Anima: two fixed mood directions from Anima's own prepared conditioning, each reader setting only the amount (Qwen3, Beatrix 3s, a nano body, an untrained start) the directions alone at s = 2: the registered form moves the gloomy side, the second form (less the neutral push) the cheerful side; the readers at g = 2 on the second form (less the neutral push), how far their amounts put the unseen sides apart: Qwen3 +0.35; Beatrix 3s, block 20 +0.30; castor -cf, block 3 +0.01; castor's untrained start (control) +0.01
e049_nano_trained_relay 2026-10-17 The trained relay: a small connector per reader, taught through Anima's frozen text adapter to stand in for Qwen3 (a token lookup, the nano bodies, Beatrix 3s, Qwen3's own layer 16) trained connectors through Anima's frozen text adapter: Beatrix 3s above the trained floor (0.22 of the gap); Qwen3's layer 16 above the trained floor (0.24 of the gap); the positive control passes; the control fails as it should
e050_anima_counterpoint_words 2026-10-17 The stock model: booru counterpoint pairs, their words and their cross-talk hair_colour A HANDLE (to the sliders); eye_colour A HANDLE; body_size MIXED; expression A HANDLE (to the sliders); eye_openness A HANDLE (to the sliders)
e051_anima_counterpoint_sliders 2026-10-18 The stock model: a slider between each pair's tags, by the model's own predictions (no reader yet) hair_colour A SLIDER; expression A SLIDER; eye_openness A SLIDER; body_size A SWITCH
e052_anima_counterpoint_readers 2026-10-18 The stock model: text readers set the counterpoint sliders' amount from wordings they never trained on (Qwen3, Beatrix, the nano bodies) hair_colour: qwen carries one side, q0 does not carry it, beatrix carries one side, beatrix_untrained does not carry it, nano does not carry it, stack carries one side, birth does not carry it; expression: qwen carries the pair, q0 does not carry it, beatrix carries one side, beatrix_untrained carries one side, nano carries one side, stack carries the pair, birth carries one side; eye_openness: qwen carries one side, q0 carries one side, beatrix carries one side, beatrix_untrained carries one side, nano carries one side, stack carries one side, birth carries one side
e053_anima_grouped_conditionings 2026-10-18 The stock model: three attribute conditionings in one picture (hair colour, expression, eye colour), by words and by composed sliders words: composes; sliders: composes
e054_anima_group_readers 2026-10-18 The stock model: text readers read one description and set all three sliders of the group at once (Beatrix, the nano bodies; Qwen3 as the reference) trained tier: qwen drives 2 of 3, beatrix drives 1 of 3, nano drives none, stack drives 1 of 3, beatrix_untrained drives 1 of 3, birth drives none; unseen tier: qwen drives none, beatrix drives none, nano drives none, stack drives none, beatrix_untrained drives none, birth drives none
e055_anima_framed_group_readers 2026-10-18 The stock model: the framed nano arms read each description in their own frame and set the three group sliders, one fetch per slider trained tier: qwen drives 2 of 3, framed drives the group, framed_stack drives the group, framed_base drives the group, birth drives 2 of 3; unseen tier: qwen drives none, framed drives none, framed_stack drives none, framed_base drives none, birth drives none
e056_anima_beatrix_framed_readers 2026-10-19 The stock model: Beatrix reads each description written in the framed nano arms' grammar and sets the three group sliders, one fetch per slider trained tier: qwen drives 2 of 3, beatrix drives the group, beatrix_untrained drives the group; unseen tier: qwen drives none, beatrix drives none, beatrix_untrained drives none
e057_anima_near_readers 2026-10-19 The stock model: text readers set the three group sliders from new wordings made of words they trained on (the near tier), read as plain captions and in the framed grammar near tier: qwen drives the group, beatrix drives none, beatrix_framed drives the group, nano_framed drives the group, beatrix_untrained_framed drives the group, birth_framed drives the group
e058_anima_offtarget_readers 2026-10-19 The stock model: text readers read descriptions that name no side of the group (the hair's length or texture, a composed face, the eyes' shape) and should leave the three sliders at zero off tier: qwen stays plain on none, beatrix stays plain on none, beatrix_framed stays plain on none, nano_framed stays plain on none, beatrix_untrained_framed stays plain on none, birth_framed stays plain on none
e059_anima_caption_readers 2026-10-19 The stock model: a nano body finetuned on captions, each attribute in many wordings, reads descriptions in the framed grammar beside its control, its start and its untrained body, on wordings it never trained on and on descriptions that name no side unseen tier: mx_cp drives none, mx drives none, mx_cpx drives none, birth drives none; off tier: mx_cp stays plain on none, mx stays plain on none, mx_cpx stays plain on none, birth stays plain on none
e060_anima_caption_layout_readers 2026-10-19 The stock model: a nano body finetuned on captions, read in the two layouts it trained on (the caption alone then the question; the attributes as one frame, the caption, then the question), before any picture reading only, no pictures: answering from the caption alone fails (the finetuned body 0.10 of training rows, its control 0.12), so no result is read; the held-out-words medians stay far under the bar in both layouts (168 / 172 of 288 against 208; the untrained body 174.5 / 181); no unseen pair read, no off-target pair read at zero
e061_anima_zero_class_readers 2026-10-19 The stock model: text readers fitted with descriptions that name no side of the group (taken at zero) read new descriptions that name no side, and should leave the three sliders at zero reading only, no pictures: with 48 side-less descriptions added at zero, no reader leaves any pair at zero on 24 of the 32 new side-less descriptions (the closest: the framed nano tap's eye colour 17, Beatrix in the frame's hair 18, the untrained nano body's expression 18); the framed readers hold the added wordings at zero when read left out (37-47 of 48), their untrained controls too; nothing lost on the descriptions that name a side
e062_anima_joint_readers 2026-10-19 The stock model: Anima's own text encoder read together with a framed byte reader (one joined state per slider) sets the three group sliders from wordings no reader trained on unseen tier: qwen+beatrix_framed drives none, qwen+nano_framed drives none, qwen+beatrix_untrained_framed drives none, qwen+birth_framed drives none
e063_anima_beatrix_arm_readers 2026-10-19 Beatrix with her trained arms as the group's slider reader (reading only) reading only, no pictures: chosen honestly (block and strength picked inside each held-out fold), Beatrix bare reads 147 of 288 held-out words, with all nine arms 154 / 150 (the two arm seeds), with the caption arm masked 150 / 155, the caption arm alone 159 / 151; an untrained model of her shape 184: the caption arm adds no word meaning; no reader moves any pair on new wordings
e064_anima_beatrix_blackboard_readers 2026-10-19 Beatrix's blackboard as the group's slider reader (reading only) reading only, no pictures: chosen honestly (block and strength picked inside each held-out fold), her blackboard reads 131 of 288 held-out words against her stream's 147, an untrained model of her shape's blackboard 120 and stream 184: the blackboard carries no word meaning a slider can use, and it does not set the group even on the trained wordings
e065_anima_curved_readers 2026-10-19 A curved reader on the stored states: does the training hide word meaning a straight line misses? (reading only) reading only: read by a Gaussian-kernel ridge as well as the straight ridge, every trained byte model (Beatrix and the four nano bodies at their diet's end) reads fewer held-out words than its own untrained twin (curved: 18 to 37 fewer, chosen inside the folds); the curved reader finds no word meaning the straight one missed; Qwen3 reads the most either way
e066_anima_pairs_relay 2026-10-19 The relay on the attribute pairs: Beatrix's and the nano bodies' states in place of Qwen3's in Anima, on descriptions of hair colour, expression and eye colour the token lookup's relayed states carry the trained wordings' three pairs as far as Qwen3's own states do (Qwen3's channel carries no pair beyond the lookup), so no relay can be credited; against the plain picture the lookup and Beatrix 3s drive all three pairs on trained wordings and the untrained nano bodies move all three in as many pictures; no arm drives the group on unseen wordings
e067_anima_binding_relay 2026-10-19 The binding relay: does a model's context put each colour where the caption says ('red hair, blue eyes' against 'blue hair, red eyes'), and do Beatrix's or the nano bodies' relayed states carry it? the token lookup binds as well as Qwen3's own states, so binding is carried by the queries and no relay can show it; every arm puts the colours where the caption says
e068_anima_picture_level_read 2026-10-19 A picture-level read of the relay pictures: how far each arm moves the picture, and the tagger's flaw tags (reading only) reading only: by CLIP image similarity Beatrix's relayed pictures sit closer to the token lookup's than Qwen3's own do, and the tagger's flaw tags separate no arm; neither the registered distance nor the flaw read finds the differences in style and finish a visual review of the sheets reported; descriptively, distance from Qwen3's own picture orders the three model relays Beatrix, the nano bodies, the untrained bodies
e069_anima_caption_repair_readers 2026-10-19 The caption repair's nano body on the reader tests: does reading captions in its own layout show as attribute-word meaning? (reading only) reading only: the repaired caption phase, which answers hair and eye colour from a caption in its own record layout, reads no more held-out attribute wordings than its control or the untrained body when its states are read in the framed descriptions of the group tests (median 171.5 of 288 against the bar 208; chosen inside the folds 170 against 157 and 163); no pictures by the registered gate
e070_anima_style_fingerprint 2026-10-19 The style fingerprint of the relays: what each arm changes in the picture beyond the attributes (reading only) reading only: on the relay test's descriptions each arm shifts the anime tagger's descriptive tags against the token lookup (Beatrix: long eyelashes, long straight hair, less sweat, a white background; the nano bodies: makeup, thick and pink lips, a simple background; the untrained bodies: realistic, freckles, nose, lips), but no arm's ten largest shifts hold on the binding test's new prompts by the fixed rule
e071_anima_setting_relay 2026-10-19 The setting relay: does a model's context carry the setting at the end of the prompt, and do Beatrix's or the nano bodies' relayed states keep it? the token lookup carries the settings as far as Qwen3's own states (pooled over 64 prompts), so the queries carry the setting; no relay carries more and none loses it by the fixed rule; one setting depends on the context: the jazz club Qwen3's own states draw (1 plain background of 8) and every relay, the lookup included, replaces with a plain background (6-8 of 8)
e072_anima_mood_relay 2026-10-19 The mood relay: does a model's state of a mood word, relayed into Anima in place of Qwen3's, carry the word's mood beyond a context-free token lookup? Qwen3's own states of a mood word move the mood, but not in enough prompts for the fixed rule (inconclusive); no relayed state carries any of it

Reads across the LoRA sequence (rules fixed before the runs)

Each draw is one independent set of training images (seeds N to N+7); its upbeat LoRA at learning rate 2e-05 is the reference the control, the mirror and the learning rates are read against.

read draw 1000-1007 draw 2000-2007
control LoRA (own neutral images) against the upbeat LoRA CONTROL QUIET CONTROL QUIET
upbeat minus control, cell by cell +0.381 +- 0.192, 53% positive: NOT SHOWN +1.188 +- 0.289, 84% positive: THE MOOD COMES FROM THE IMAGES
downbeat LoRA -0.692 (upbeat +0.347): MIXED downward -0.390 (upbeat +1.313): NO EFFECT downward
  • The upbeat LoRA on the two draws: DOES NOT REPLICATE.
  • the control: SETTLED across the two draws.
  • upbeat minus control: UNSETTLED across the two draws.
  • the mirror: UNSETTLED across the two draws.
learning rate draw 1000-1007: final effect, first epoch beyond 3 SE draw 2000-2007: final effect, first epoch beyond 3 SE
1e-05 +1.073 +- 0.238, 4 +1.183 +- 0.192, 4
2e-05 +0.347 +- 0.242, 4 +1.313 +- 0.278, 2
4e-05 +0.999 +- 0.266, 2 +1.397 +- 0.259, 2

How the mood experiments are measured

The mood judge. Each image is scored on its pixels only, with CLIP ViT-L/14: 100 x (the mean cosine similarity to three upbeat phrases, "a cheerful, upbeat image", "a happy, joyful scene", "a bright, uplifting photo", minus the same for three downbeat phrases, "a gloomy, downbeat image", "a sad, melancholy scene", "a dark, depressing photo"); the same judge as the Sana experiments, so the two beds read on one scale. How far mood words in the prompt move this score on the stock model is experiment e001. Content kept is the CLIP image cosine between an image and the no-LoRA image of the same prompt and seed.

The LoRA experiments train on 24 everyday scenes and are scored on 8 scenes they never saw (4 seeds each, 32 paired cells): each cell compares the same prompt and seed with and without the LoRA.

Tools

Training: diffusion-pipe (the AbstractEyes fork, model type anima; plain Adam, no weight decay, fp32 master weights over the bf16 LoRA; the LLM adapter frozen), driven by anima-trainer (notebooks/anima_colab_experiments.ipynb). The images are rendered in the notebook process with the fork's own Anima model code (Euler flow sampler, shift 3, 30 steps, guidance 4.5, the model card's quality prefix and negative prompt). The LoRAs are in ComfyUI format.

References

Licences

Anima's weights are under the CircleStone Labs Non-Commercial License (Anima is a derivative of NVIDIA Cosmos-Predict2-2B, under the NVIDIA Open Model License); the LoRAs here are derivatives under the same non-commercial terms. Generated images are not restricted by that licence.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for AbstractPhil/geolip-beatrix-anima

Adapter
(154)
this model

Papers for AbstractPhil/geolip-beatrix-anima

Article mentioning AbstractPhil/geolip-beatrix-anima