Generate cozy 9:16 anime POV clips (character whispering to the viewer, JP voice, burned-in JP/TH subs) 100% locally on a 12GB GPU. No subscriptions, no watermarks, no cloud.
| File | Purpose |
|---|---|
workflows/wan_i2v_81f_api.json |
ComfyUI API-format workflow (Wan 2.1 I2V 14B GGUF Q4, 480x832, 81 frames) |
scripts/render_i2v_batch.py |
Queue N characters through ComfyUI REST, poll, verify outputs |
scripts/gen_voice_missing.py |
GPT-SoVITS JP whisper voicegen (idempotent, validates duration+volume) |
scripts/finish_batch_overnight.py |
One-command overnight finisher: frames → speed-match audio → 1080p upscale → burned subs → MP4 |
templates/subs_jpth.ass |
Dual-language subtitle style (JP top + TH bottom), ready to edit |
README.md |
This file |
- NVIDIA GPU ≥ 12GB VRAM (RTX 3060/4070 class or better), 32GB RAM recommended
- ComfyUI with: ComfyUI-GGUF nodes
- Models:
wan2.1-i2v-14b-480p-Q4_K_M.gguf,umt5_xxl_fp16.safetensors,clip_vision_h.safetensors,wan_2.1_vae.safetensors(all free on HuggingFace) - GPT-SoVITS (RVC-Boss) with a moe/anime voice model
- ffmpeg, Python 3.11, Pillow
- Put your character still (full body, 832x1216) into ComfyUI
input/ - Edit the CHARS list in
scripts/render_i2v_batch.py(name, image, motion prompt) python3 scripts/render_i2v_batch.py— renders queue up automaticallypython3 scripts/finish_batch_overnight.py— waits for renders, makes voices, muxes everything into final MP4s with subs- Upload-ready 1080x1872 MP4s come out in
renders/
- ffmpeg can NOT decode ComfyUI animated WEBP directly — extract frames with PIL (the finisher script already does this)
- Call ComfyUI
/freebefore starting TTS, or the 12GB card OOMs - speed_factor 0.9-0.92 on SoVITS = cozy whisper pacing
- Fixed seed per line to retry lines that slurred
Code: MIT. You keep 100% of your renders — commercial use allowed with models that permit it (check your voice model's license; anime moe voices vary).