You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

This is an experimental Anima derivative. Access is subject to the CircleStone Labs Non-Commercial License v1.2 and the upstream Qwen license.

Log in or Sign Up to review the conditions and access this model content.

Temporary Anima Qwen3.5 2B Adapter

Updated September 8, 2026: the default adapter is the completed joint English/Chinese text-distillation, epoch-3 checkpoint. This is not a checkpoint from the subsequent, still-running image-loss experiment.

The six-layer dense adapter maps Qwen3.5-2B language-model hidden states (2048 dimensions) to Anima conditioning (1024 dimensions). Queries use learned embeddings indexed by the accompanying expanded T5 tokenizer. There is no T5 encoder and this is not a fixed-query adapter.

Files

  • adapter/anima-qwen35-2b-multilingual-joint3ep.safetensors: default inference export, FP32, with one merged 59,888-row embed.weight table.
  • adapter/anima-qwen35-2b-multilingual-joint3ep.split.safetensors: exact native training checkpoint, including split embedding tables and tokenizer identity buffers.
  • tokenizer/: the required expanded T5 tokenizer and vocabulary manifest. Use this bundle, not the original T5 tokenizer or mT5.
  • adapter/adapter_config.json: current architecture and file selection.
  • MANIFEST.json: SHA256 checksums and publication verification.
  • qwen3.5-2b-base/: unchanged Qwen3.5-2B-Base snapshot at revision b1485b2fa6dfa1287294f269f5fb618e03d52d7c.

The old adapter/anima-qwen35-2b-dense-adapter-stage2.safetensors remains available for compatibility. Its original instructions and configuration are under legacy/. Do not use the expanded tokenizer with that old checkpoint.

Anima DiT, VAE, DiT LoRA, datasets, captions, images, optimizer states, and credentials are not included in this update.

Architecture And Vocabulary

  • Source dimension 2048; target/model dimension 1024; six layers; 16 attention heads; target-side self-attention enabled.
  • Logical vocabulary: 32,100 legacy IDs plus 27,788 added IDs, totaling 59,888. The first new ID is 32,100.
  • The native checkpoint retains the 32,128-row physical legacy table. Its unused final 28 rows are omitted from the merged inference table; the new table is appended after legacy row 32,099.
  • The export preserves every usable embedding and all other adapter weights exactly. Native and merged adapters were compared with synthetic boundary IDs and produced identical outputs in CPU FP32 verification.
  • The adapter, legacy embeddings, and new embeddings were jointly trained in the completed three-epoch text stage; Qwen remained frozen.

Loading The Default Inference Export

Use the Anima LLMAdapter implementation from the compatible training/inference code. Resize its embedding table before strict loading. This example does not download or execute Python code from this repository.

import json
from pathlib import Path

import torch
from huggingface_hub import snapshot_download
from safetensors.torch import load_file
from tokenizers import Tokenizer
from transformers import T5TokenizerFast

from library.anima_models import LLMAdapter

root = Path(snapshot_download(
    "SumomoLee/tmp-anima-qwen35-adapter",
    allow_patterns=[
        "adapter/anima-qwen35-2b-multilingual-joint3ep.safetensors",
        "adapter/adapter_config.json",
        "tokenizer/*",
    ],
))
tokenizer_file = root / "tokenizer/tokenizer.json"
t5_tokenizer = T5TokenizerFast(
    tokenizer_file=str(tokenizer_file), local_files_only=True,
)
# Preserve the exact saved normalizer, including its CJK handling.
t5_tokenizer.backend_tokenizer.normalizer = (
    Tokenizer.from_file(str(tokenizer_file)).normalizer
)
vocab = json.loads((root / "tokenizer/anima_vocab.json").read_text())
assert len(t5_tokenizer) == int(vocab["extended_vocab_size"]) == 59888

adapter = LLMAdapter(
    source_dim=2048, target_dim=1024, model_dim=1024,
    num_layers=6, num_heads=16, self_attn=True,
)
adapter.embed = torch.nn.Embedding(59888, 1024)
adapter.load_state_dict(load_file(str(
    root / "adapter/anima-qwen35-2b-multilingual-joint3ep.safetensors"
)), strict=True)
adapter.t5_tokenizer = t5_tokenizer
adapter.requires_grad_(False).eval()

Use the unchanged Qwen tokenizer/backbone for source text. Feed its language-model hidden states and the expanded T5 IDs into the adapter, passing both attention masks. Preserve the inference pipeline's padding and sequence-length conventions; conditioning length is not inherently fixed at 512. FP32 adapter attention is recommended when the rest of the model uses BF16.

The native .split.safetensors file requires an expanded-vocabulary-aware loader with SplitT5Embedding; it is not directly loadable into an ordinary nn.Embedding.

Status And Limitations

This is an experimental, temporary release, not an official CircleStone Labs or Qwen release. Qualitative evaluation showed improved Chinese/English composition and concept alignment, but character likeness and ambiguous translated names can still fail. Tokenizer coverage alone does not establish reliable support for other languages. No quantitative multilingual quality guarantee is made.

The evaluated image pipeline used the EP8 DiT-only LoRA, which is not included here. Do not apply its old adapter-LoRA portion over this new dense adapter. The subsequently started adapter-plus-DiT-LoRA image training is not part of this release.

Licenses And Attribution

The Qwen3.5 files are distributed under Apache-2.0; see qwen3.5-2b-base/LICENSE.

The adapter is a derivative of Anima and is distributed under the CircleStone Labs Non-Commercial License v1.2; see LICENSE.md and NOTICE before use or redistribution. Existing license files and repository access settings are unchanged.

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 SumomoLee/tmp-anima-qwen35-adapter

Finetuned
(72)
this model