Skip to content

[Bug] multi-device splitting failing on Unet models #1739

Description

@wbruna

Git commit

b11c95a (master-749-b11c95a)

Operating System & Version

Debian 13

GGML backends

Vulkan

Command-line arguments used

sd-cli -m dreamshaper_8.safetensors --vae-conv-direct -o flower01.png -p flower --backend 'Vulkan0&Vulkan1'

Steps to reproduce

Just tried multi-device splitting:

Vulkan0 Vulkan1 Vulkan0&Vulkan1
Image Image Image

The output suggests that Unet models do not benefit that much:

[WARN ] layer_split_partition.cpp:108 - Conditioner model: no transformer blocks found for a layer split; keeping tensors on compatible backends starting from Vulkan0
[INFO ] layer_split_partition.cpp:183 - Diffusion model layer split: Vulkan0 <- blocks [0, 2) + non-block tensors
[INFO ] layer_split_partition.cpp:183 - Diffusion model layer split: Vulkan1 <- blocks [2, 12)
[INFO ] stable-diffusion.cpp:1247 - using VAE for encoding / decoding
[INFO ] auto_encoder_kl.hpp:527 - vae decoder: ch = 128
[WARN ] stable-diffusion.cpp:316 - vae module does not support multiple runtime backends; using Vulkan0

However, there is no indication that it isn't supported.

The backend itself works: Anima produces correct results.

What you expected to happen

It should either produce coherent outputs, ignore the splitting, or error out.

What actually happened

Bad generated images.

Logs / error messages / stack trace

No response

Additional context / environment details

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions