Wriothesley β€” Qwen3-TTS-0.6B LoRA Model

A Qwen3-TTS LoRA fine-tune that reproduces Wriothesley's voice (English Only) from Genshin Impact.

Fan-made model. Wriothesley and Genshin Impact are Β© miHoYo / HoYoverse. This model is a non-official fan work for research/education purposes and is not affiliated with or endorsed by HoYoverse.

Model Description

This is a LoRA adapter fine-tune of Qwen/Qwen3-TTS-12Hz-0.6B-Base aimed at reproducing the voice of Wriothesley (Genshin Impact).

Two ways to use it:

Route What you need Reference audio?
A. Fine-tuned checkpoint + adapter (this repo, root) The full model in this repo ❌ Not needed β€” the character's reference audio is baked into the state dict during training
B. Base model + adapter Qwen/Qwen3-TTS + this repo's adapter/ folder βœ… Required β€” pass any example clip of the character

Checkout the training code at:
Github

Why LoRA when One Shot Cloning exists? because "Better Quality"

Quickstart

Installation

pip install -U qwen-tts

hf download rijulpaul/Qwen3-TTS-12Hz-0.6B-Wriothesley-LoRa-64 --exclude "training-checkpoint/" --exclude "speech_tokenizer/" --local-dir Wriothesley-LoRA-64

Usage

  1. Using Model provided with this repo
import torch
import soundfile as sf
from qwen_tts import Qwen3TTSModel

device = "cuda:0"
tts = Qwen3TTSModel.from_pretrained(
    "./Wriothesley-LoRA-64",
    device_map=device,
    dtype=torch.bfloat16,
    attn_implementation="flash_attention_2", # use sdpa if flash-attn is not installed
)

from peft import PeftModel

tts.model = PeftModel.from_pretrained(
    tts.model,
    "./Wriothesley-LoRA-64/adapter"
)

wav, sr = tts.generate_custom_voice(
    text = "Word of advice: Don't break the law. Hmm, is there anything else? Oh, yeah... Seriously, don't break the law.",
    speaker = "Wriothesley"
)

sf.write("output.wav", wavs[0], sr)
  1. Using the Base Qwen/Qwen3-TTS-12Hz-0.6B model
import torch
import soundfile as sf
from qwen_tts import Qwen3TTSModel

tts = Qwen3TTSModel.from_pretrained(
    "Qwen/Qwen3-TTS-12Hz-0.6B-Base",
    device_map="cuda:0",
    dtype=torch.bfloat16,
    attn_implementation="flash_attention_2", # use sdpa if flash-attn is not installed
)

from peft import PeftModel

tts.model = PeftModel.from_pretrained(
    tts.model,
    "./Wriothesley-LoRA-64/adapter"
)

ref_audio = "path_to_Wriothesley_voiceline"   # Can see https://huggingface.co/datasets/rijulpaul/pano30qx/viewer/Wriothesley
ref_text  = "voiceline_transcription"

wavs, sr = model.generate_voice_clone(
    text="I am solving the equation: x = [-b Β± √(bΒ²-4ac)] / 2a? Nobody can β€” it's a disaster (β—β€’ΝˆβŒ”β€’Νˆβ—), very sad!",
    language="English",
    ref_audio=ref_audio,
    ref_text=ref_text,
)

# Save the resulting audio
sf.write("output_voice_clone.wav", wavs[0], sr)
Downloads last month
77
Safetensors
Model size
0.9B params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for rijulpaul/Qwen3-TTS-12Hz-0.6B-Wriothesley-LoRa-64

Adapter
(13)
this model

Datasets used to train rijulpaul/Qwen3-TTS-12Hz-0.6B-Wriothesley-LoRa-64

Collection including rijulpaul/Qwen3-TTS-12Hz-0.6B-Wriothesley-LoRa-64