| Documentação | Comunidade | Contribuição | Discórdia |
onediff é uma biblioteca de aceleração pronta para uso para modelos de difusão que fornece:
Estamos contratando! Se você estiver interessado em trabalhar no onediff na SiliconFlow, temos vagas abertas para estagiários e engenheiros em Pequim (perto da Universidade Tsinghua).
Se você contribuiu significativamente para o software de código aberto e está interessado em trabalho remoto, entre em contato conosco pelo e-mail [email protected]
com onediff
no título do e-mail.
onediff é a abreviatura de “ uma linha de código para acelerar modelos de difusão ”.
Observe que não temos como executar SVD com TensorRT em 29 de fevereiro de 2024.
Também mantemos um repositório para benchmarking da qualidade da geração após aceleração: odeval
Nota: Você pode escolher as versões mais recentes que desejar para difusores ou transformadores.
python3 -m pip install "torch" "transformers==4.27.1" "diffusers[torch]==0.19.3"
Ao considerar a escolha entre OneFlow e Nexfort, qualquer um deles é opcional e apenas um é necessário.
Para modelos estruturais DiT ou dispositivos H100, recomenda-se a utilização de Nexfort.
Para todos os outros casos, recomenda-se a utilização do OneFlow. Observe que as otimizações no OneFlow farão a transição gradual para o Nexfort no futuro.
Instalar Nextfort é opcional. A introdução detalhada do Nexfort está aqui.
python3 -m pip install -U torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 torchao==0.1
python3 -m pip install -U nexfort
Instalar OneFlow é opcional.
NOTA: Atualizamos o OneFlow frequentemente para o onediff, portanto, instale o OneFlow pelos links abaixo.
CUDA11.8
Para usuários NA/UE
python3 -m pip install -U --pre oneflow -f https://github.com/siliconflow/oneflow_releases/releases/expanded_assets/community_cu118
Para usuários CN
python3 -m pip install -U --pre oneflow -f https://oneflow-pro.oss-cn-beijing.aliyuncs.com/branch/community/cu118
CUDA12.1
Para usuários NA/UE
python3 -m pip install -U --pre oneflow -f https://github.com/siliconflow/oneflow_releases/releases/expanded_assets/community_cu121
Para usuários CN
python3 -m pip install -U --pre oneflow -f https://oneflow-pro.oss-cn-beijing.aliyuncs.com/branch/community/cu121
CUDA 12.2
Para usuários NA/UE
python3 -m pip install -U --pre oneflow -f https://github.com/siliconflow/oneflow_releases/releases/expanded_assets/community_cu122
Para usuários CN
python3 -m pip install -U --pre oneflow -f https://oneflow-pro.oss-cn-beijing.aliyuncs.com/branch/community/cu122
python3 -m pip install --pre onediff
git clone https://github.com/siliconflow/onediff.git
cd onediff && python3 -m pip install -e .
Ou instale para desenvolvimento:
# install for dev
cd onediff && python3 -m pip install -e '.[dev]'
# code formatting and linting
pip3 install pre-commit
pre-commit install
pre-commit run --all-files
NOTA: Se você pretende utilizar plug-ins para ComfyUI/StableDiffusion-WebUI, é altamente recomendável instalar o OneDiff da fonte em vez do PyPI. Isso é necessário porque você precisará copiar manualmente (ou criar um link virtual) o código relevante na pasta de extensão dessas UIs/Libs.
Funcionalidade | Detalhes |
---|---|
Tempo de compilação | Cerca de 1 minuto (SDXL) |
Métodos de implantação | Plug and Play |
Suporte para tamanho de imagem dinâmico | Suporte sem sobrecarga |
Suporte ao modelo | SD1.5~2.1, SDXL, SDXL Turbo, etc. |
Suporte a algoritmo | Fluxo de trabalho padrão SD, LoRA, ControlNet, SVD, InstantID, SDXL Lightning, etc. |
Suporte à estrutura SD | ComfyUI, Difusores, SD-webui |
Salvar e carregar modelos acelerados | Sim |
Hora da troca LoRA | Centenas de milissegundos |
Ocupação LoRA | Dezenas de MB a centenas de MB. |
Suporte a dispositivos | NVIDIA GPU 3090 RTX/4090 RTX/A100/A800/A10 etc. (Compatibilidade com Ascend em andamento) |
onediff suporta aceleração para modelos SOTA.
Tipo AIGC | Modelos | Difusores HF | UI confortável | IU da web SD | |||
---|---|---|---|---|---|---|---|
Comunidade | Empresa | Comunidade | Empresa | Comunidade | Empresa | ||
Imagem | DP 1,5 | estável | estável | estável | estável | estável | estável |
SD 2.1 | estável | estável | estável | estável | estável | estável | |
SDXL | estável | estável | estável | estável | estável | estável | |
LoRA | estável | estável | estável | ||||
ControlNet | estável | estável | |||||
SDXL Turbo | estável | estável | |||||
LCM | estável | estável | |||||
SDXL DeepCache | alfa | alfa | alfa | alfa | |||
ID Instantâneo | beta | beta | |||||
Vídeo | SVD (difusão de vídeo estável) | estável | estável | estável | estável | ||
SVD DeepCache | alfa | alfa | alfa | alfa |
Compile e salve o resultado compilado off-line e, em seguida, carregue-o on-line para veiculação
Se quiser fazer inferência distribuída, você pode usar o compilador onediff para fazer aceleração de dispositivo único em um mecanismo de inferência distribuída como xDiT
Se precisar de suporte de nível empresarial para o seu sistema ou negócio, você pode nos enviar um e-mail para [email protected] ou entrar em contato conosco através do site: https://siliconflow.cn/pricing
Solução Empresarial Onediff | |
---|---|
Otimização mais extrema do compilador para processo de difusão | Geralmente outros 20%~30% ou mais de ganho de desempenho |
Soluções completas para acelerar o fluxo de trabalho | Às vezes, ganho de desempenho de 200% a 300% |
Soluções completas de implantação de fluxo de trabalho | Fluxo de trabalho para API de modelo online |
Suporte técnico para implantação | Suporte de alta prioridade |
@misc { 2022onediff ,
author = { OneDiff Contributors } ,
title = { OneDiff: An out-of-the-box acceleration library for diffusion models } ,
year = { 2022 } ,
publisher = { GitHub } ,
journal = { GitHub repository } ,
howpublished = { url{https://github.com/siliconflow/onediff} }
}