Nodes/SnJake_Baikal_Swin_Anime/😎 Anime Upscale Loader
ComfyUI Node

😎 Anime Upscale Loader

The loader half of a two-node anime upscaler (and it picks your weights for you)

By SnJakeΒ·Created 8 months agoΒ·Updated 27 days agoΒ· 0
😎 Anime Upscale Loader
    • upscale_model_custom
    • upscale_model
    β—„weights_nameBaikal_SwinFIR_Anime_x2.safetensorsβ–Ί
    β—„force_reloadfalseβ–Ί

    This is the boring half of the Baikal-Swin-Anime x2 pack, and it's boring on purpose. SnJakeAnimeUpscaleCheckpointLoader (display name "😎 Anime Upscale Loader") does one job: load a restoration model and hand it to the pack's SnJakeAnimeUpscaleInference node. The interesting half - the actual upscaling - lives next door. But the loader is where you make the one decision that matters: which of the pack's six weight versions you run.

    What it actually is

    Baikal-Swin-Anime is a dedicated anime/illustration upscaler trained on ~40,000–50,000 images from the Danbooru2024 dataset. Think of where it sits on the upscaling ladder from the KB: the classic anime rung was always ESRGAN variants like RealESRGAN_x4plus_anime_6B or 4x-AnimeSharp - fast, no hallucination, but basically fancy interpolation. This pack is the newer, heavier approach: a Swin-transformer restoration network that was trained to restore line art and flat colors, not just enlarge them. The author is upfront that the model is experimental, which is the polite way of saying "weird output is possible, treat it as a tool not a law."

    The loader's only real inputs are:

    • weights_name - a dropdown of the six shipped checkpoints, from the V1/V2 line (Baikal_Swin_Anime_x2.safetensors … ..._V2_2.safetensors) to the newer SwinFIR line (Baikal_SwinFIR_Anime_x2.safetensors and ..._x2_v31.safetensors). The default is the plain SwinFIR one, but the README's "current best" is the V3.1 checkpoint (..._x2_v31.safetensors), which swaps in an ImageNet-pretrained backbone and adds GAN fine-tuning. If you only try one, try that.
    • force_reload - a boolean that bypasses the in-memory model cache. The loader caches loaded models by checkpoint + config, which is nice for big workflows. Flip this only if you swapped the file on disk and want it re-read without a restart.

    That's the whole thing. It's the smallest input surface of any loader you'll use today.

    What comes out

    Two outputs, and they matter differently:

    • upscale_model_custom (type ANIME_UPSCALE_MODEL) - the intended path. Wire this into the pack's 😎 Anime Upscale inference node. This is a custom type, so it only plugs into SnJake's own node.
    • upscale_model (type UPSCALE_MODEL) - a standard ComfyUI model type. Handy escape hatch: you can feed this into ComfyUI's built-in upscale-by-model nodes if you'd rather not use the tiled inference node, though you lose the tiling smarts. Most people will never touch this output.

    Install

    Standard two-step, and it's light. The pack's requirements.txt contains a single dependency (huggingface_hub), so no torch-vs-everything drama.

    cd ComfyUI/custom_nodes
    git clone https://github.com/SnJake/SnJake_Baikal_Swin_Anime.git
    cd SnJake_Baikal_Swin_Anime
    pip install -r requirements.txt
    

    Or use ComfyUI Manager and search "SnJake_Baikal_Swin_Anime" - same result. Then restart ComfyUI; the nodes appear under 😎 SnJake/Upscale.

    The weights are not part of the install. On first run, the loader auto-downloads whichever checkpoint you select from the HF repo into ComfyUI/models/anime_upscale/. If you're offline or behind a proxy that chokes on that, grab the .safetensors from SnJake/Baikal-Swin-Anime and drop it in that same folder manually - the loader picks up any file it finds there.

    Gotchas

    The model is genuinely obscure - search the usual communities and you'll mostly find the author's own announcements, not battle-tested workflows. That means two things: nobody's wrung out every failure mode for you, and version differences are the main trap. The V1-era checkpoints had edge-noise artifacts that V2 fixed; if your output looks crunchy at the borders, you're on an old checkpoint. And one light aside, straight from the README: the author says the code was written by "GPT-5.2 Codex." Judge it by results, not provenance.

    Wire the upscale_model_custom output into the 😎 Anime Upscale node and you're done - that's the whole workflow.

    Category😎 SnJake/Upscale

    Inputs (2)

    NameTypeDefaultDescription
    weights_nameCOMBOBaikal_SwinFIR_Anime_x2.safetensorsSelect weights (auto-download if missing).
    force_reloadBOOLEANfalseβ€”

    Outputs (2)

    NameTypeDescription
    upscale_model_customANIME_UPSCALE_MODELβ€”
    upscale_modelUPSCALE_MODELβ€”