Text-to-Image
karume
webgpu

Anima Turbo β€” Karume

What is this

A distribution that bakes Anima Turbo LoRA v0.2 into circlestone-labs/Anima-Base-v1.0-Diffusers and converts it into the WebGPU inference runtime Karume's container format (a single safetensors file = weights + a graph JSON embedded in __metadata__). Runs as-is in the browser and in Deno.

  • A few-step distillation (from the LoRA) tuned for 8 steps / guidance 1.
  • Not readable by diffusers (it's a different container with an embedded graph); the reader is a pipeline that implements anima/1.
  • Exporter used for the conversion: karume/0.5.0. The distribution manifest is karume.json (karume/4).

Baked-in LoRA

Folded into the weights β€” not distributed as a separate file.

Permissions listed on the source page (as of retrieval):

  • allowNoCredit: true
  • allowCommercialUse: Image / RentCivit / Rent
  • allowDerivatives: true
  • allowDifferentLicense: true

(These are the LoRA page's own permissions. The merged distribution in this repository stays under the CircleStone Non-Commercial License β€” see the License section below.)

License

The weights derive from the CircleStone Anima base model and stay under the CircleStone Non-Commercial License (non-commercial use only). This repository ships LICENSE.md (the full license text) and NOTICE.md (this attribution plus the list of modifications).

The CircleStone Model is licensed by CircleStone Labs LLC under the CircleStone Non-Commercial License. Copyright CircleStone Labs LLC. IN NO EVENT SHALL CIRCLESTONE LABS LLC BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH USE OF THIS MODEL.

  • Baked-in LoRA: the official Anima Turbo LoRA v0.2 (source), folded into the weights at export.
  • This is not an official product of CircleStone Labs LLC, and it is not endorsed, approved or validated by CircleStone Labs LLC.

Models

Model Pipeline Quants Default quant
anima-turbo (default) anima/1 f16 / f16+dit8 / f16+dit8-a8 / f16+dit8-a8-attn8 / f16+dit8-a8-attn8-s16 / f16+dit4 / f16+dit4-attn8-s16 / f16-c16 f16+dit8-a8-attn8-s16

model selects one of these; omitted, it is anima-turbo. quant defaults to that model's own default quant.

Usage

import { AnimaPipeline, encodePng } from "jsr:@karume/models";

using pipeline = await AnimaPipeline.fromPretrained({
  repo: "hdae/karume-anima-turbo",
  // Pin a commit for reproducible builds β€” without it you track `main`, and a future
  // repo update (renamed files, new manifest format) may break your app.
  // Copy the full hash from this repo's "Files and versions" tab:
  // revision: "<full commit sha>",
}, {
  // model: "anima-turbo", // default β€” available: anima-turbo
  // quant: "f16+dit8-a8-attn8-s16", // default β€” available: f16 / f16+dit4 / f16+dit4-attn8-s16 / f16+dit8 / f16+dit8-a8 / f16+dit8-a8-attn8 / f16+dit8-a8-attn8-s16 / f16-c16
});

const image = await pipeline.generate({
  prompt: "1girl, solo, long hair, blue eyes, school uniform, masterpiece",

  // steps: 8, // default β€” the baked-in LoRA is distilled for few-step sampling
  // Resolution β€” non-square is fine; each side on a 16 px grid, between 512 and 2048 px:
  // resolution: { width: 1024, height: 1024 }, // default

  // Classifier-free guidance runs a second (uncond) branch β€” twice the work per step.
  // It is skipped at guidanceScale 1, where a negativePrompt is refused rather than
  // silently ignored, so the two lines below only make sense together:
  // guidanceScale: 5,
  // negativePrompt: "low quality, worst quality, blurry, bad anatomy, jpeg artifacts",

  seed: 42, // same seed + same request β†’ same image
});

const png = await encodePng(image.data, image.width, image.height);
await Deno.writeFile("anima.png", png);

Weights are fetched once and cached (verified against karume.json's size / sha256). You can also load from a local directory (AnimaPipeline.fromAssets).

Model: anima-turbo

Files

Key Dtype Path Size sha256
text_encoder f16 shared/text_encoder/model.safetensors in hdae/karume-anima at 2682441ac9c6156a… 1.11 GiB (1,194,220,916 B) 4ae7c810de0edfbd…
text_conditioner f16 anima-v1.0/text_conditioner/model.safetensors in hdae/karume-anima at 2682441ac9c6156a… 257.33 MiB (269,834,156 B) 1509602ac1413354…
transformer f16 anima-turbo/transformer/model.f16.safetensors 3.64 GiB (3,913,609,588 B) d40799a2753e3777…
transformer i8 anima-turbo/transformer/model.i8.safetensors 1.83 GiB (1,962,502,636 B) 20619d7f4b87513c…
transformer i4 anima-turbo/transformer/model.i4.safetensors 1.14 GiB (1,223,736,700 B) 0b3f40dd42dfef70…
transformer.rope_base f16 / i8 / i4 anima-turbo/transformer/rope_base.safetensors 64.42 KiB (65,968 B) 42db9a3fc796c45f…
vae_decoder f16 shared/vae_decoder/model.safetensors in hdae/karume-anima at 2682441ac9c6156a… 48.37 MiB (50,720,688 B) b50b65a028a8d108…
tokenizer β€” shared/tokenizer/qwen2-tokenizer.json in hdae/karume-anima at 2682441ac9c6156a… 3.35 MiB (3,514,619 B) 0a7d6057ac8a2fe4…
tokenizer_2 β€” shared/tokenizer_2/t5-tokenizer.json in hdae/karume-anima at 2682441ac9c6156a… 1.04 MiB (1,093,419 B) f86dfe21b12a175a…

Only the first 16 hex digits of the sha256 are shown (the full value and size live in karume.json β€” verify against that at the fetch layer). Dtype labels use the runtime's storage dtype vocabulary (f16 / i8 / i4), not the fp16 spelling common elsewhere in the ecosystem. A path under shared/ is one this model shares byte for byte with another model in this repository (it is fetched and cached once). A row that names another repository is fetched from that repository at the pinned commit shown β€” those bytes are identical to this model's own, so they are not stored here a second time.

Quants

Quant What it is Weights Compute
f16 Full quality (f16) β€” Transformer in f16 storage with f32 compute β€” the largest download, and the reference the other quants here are judged against. text_encoder = f16 / text_conditioner = f16 / transformer = f16 / vae_decoder = f16 β€”
f16+dit8 Half size (int8 transformer) β€” Transformer stored as int8 and computed in f32: roughly half its f16 download, with the execution path left unchanged. text_encoder = f16 / text_conditioner = f16 / transformer = i8 / vae_decoder = f16 β€”
f16+dit8-a8 Half size, int8 linear β€” The int8 transformer with per-token int8 activations in its linear layers β€” faster on GPUs with dp4a, same download. text_encoder = f16 / text_conditioner = f16 / transformer = i8 / vae_decoder = f16 linearCompute = a8
f16+dit8-a8-attn8 Half size, int8 linear and attention β€” Adds int8 activations inside attention on top of the int8 linear path; same weights, one more integer stage per step. text_encoder = f16 / text_conditioner = f16 / transformer = i8 / vae_decoder = f16 linearCompute = a8 / attentionCompute = a8
f16+dit8-a8-attn8-s16 (default) Balanced (int8) β€” The int8 linear and attention path with attention scores held in f16 β€” the fastest of the int8 seats here, at f16-level image quality. text_encoder = f16 / text_conditioner = f16 / transformer = i8 / vae_decoder = f16 linearCompute = a8 / attentionCompute = a8 / attentionScoreStorage = f16
f16+dit4 Smallest (int4 transformer) β€” Transformer weights in GPTQ-calibrated int4 (group-32) with f32 compute β€” the smallest download and the least resident memory. text_encoder = f16 / text_conditioner = f16 / transformer = i4 / vae_decoder = f16 β€”
f16+dit4-attn8-s16 Smallest, int8 attention β€” The int4 transformer with int8 activations and f16 scores in attention: the low-memory seat, without slowing down as much as plain int4. text_encoder = f16 / text_conditioner = f16 / transformer = i4 / vae_decoder = f16 attentionCompute = a8 / attentionScoreStorage = f16
f16-c16 Full quality, f16 compute β€” f16 storage computed in f16 throughout. Needs the shader-f16 GPU feature, and trades numerical headroom for speed. text_encoder = f16 / text_conditioner = f16 / transformer = f16 / vae_decoder = f16 linearCompute = f16 / attentionCompute = f16 / requires shaderF16

If no quant is given, it runs as f16+dit8-a8-attn8-s16 (this model's recommended default). In a quant name, dit is the transformer component.

Defaults

Any knob not passed to generate() is filled in from the manifest's defaults.

  • steps: 8
  • guidanceScale: 1
  • resolution: 1024 Γ— 1024
  • negativePrompt: low quality, worst quality, blurry, bad anatomy, jpeg artifacts

At guidance 1, the second CFG branch is skipped, so the negative prompt is not used (it only takes effect once guidance is raised).

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 hdae/karume-anima-turbo