Introdução geral
O AI Toolkit by Ostris é um conjunto de ferramentas de IA de código aberto focado no suporte aos modelos Stable Diffusion e FLUX.1 para tarefas de treinamento e geração de imagens. Criado e mantido pelo desenvolvedor Ostris e hospedado no GitHub, o kit de ferramentas tem como objetivo fornecer uma plataforma flexível para que pesquisadores e desenvolvedores ajustem e experimentem modelos. Ele contém uma variedade de scripts de IA que oferecem suporte a recursos como extração de LoRA, geração de imagens em lote e treinamento específico de camadas. O projeto está atualmente em fase de desenvolvimento e alguns dos recursos podem não ser suficientemente estáveis, mas sua alta capacidade de personalização o torna adequado para usuários avançados no campo da aprendizagem profunda. O conjunto de ferramentas é compatível com os sistemas Linux e Windows, e é necessária uma GPU Nvidia com pelo menos 24 GB de memória de vídeo para executar o treinamento do modelo FLUX.1.
Lista de funções
- treinamento de modelosSuporte a difusão estável e ajuste fino do modelo FLUX.1 para treinamento dos modelos LoRA e LoKr.
- Geração de imagensGeração de imagens em lote com base em perfis ou prompts de texto.
- Extração e otimização de LoRAFornecer ferramentas de extração LoRA e LoCON para otimizar a extração de recursos do modelo.
- Treinamento específico da camadaCamadas específicas da rede neural podem ser selecionadas para treinamento e os pesos podem ser ajustados com flexibilidade.
- Suporte à interface do usuárioInterface de usuário do AI Toolkit e do Gradio para simplificar o gerenciamento de tarefas e as operações de treinamento de modelos.
- Processamento do conjunto de dadosAjuste automático da resolução da imagem e agrupe as imagens por bloco, suportando uma ampla variedade de formatos de imagem.
- Treinamento na nuvemSuporte para execução de tarefas de treinamento nas plataformas RunPod e Modal.
Usando a Ajuda
Processo de instalação
Instalação do sistema Linux
- armazém de clonesExecute o seguinte comando no terminal para fazer o download do código:
git clone https://github.com/ostris/ai-toolkit.git
cd ai-toolkit
- Atualização de submódulosVerifique se todas as bibliotecas dependentes estão completas:
git submodule update --init --recursive
- Criação de um ambiente virtualUse o Python 3.10 ou posterior:
python3 -m venv venv
fonte venv/bin/activate
- Instalação de dependênciasInstalar o PyTorch primeiro e depois as outras dependências:
pip3 install torch
pip3 install -r requirements.txt
Instalação do sistema Windows
- armazém de clonesExecutar no prompt de comando:
git clone https://github.com/ostris/ai-toolkit.git
cd ai-toolkit
- Atualização de submódulos:
git submodule update --init --recursive
- Criação de um ambiente virtual:
python -m venv venv
. \venv\Scripts\activate
- Instalação de dependênciasInstale a versão do PyTorch compatível com CUDA 12.4 e, em seguida, instale as outras dependências:
pip install torch==2.5.1 torchvision==0.20.1 --index-url https://download.pytorch.org/whl/cu124
pip install -r requirements.txt
Instalação da interface UI
- Instalação do Node.jsVerifique se o Node.js 18 ou posterior está instalado em seu sistema.
- Criação da interface do usuárioDigite o diretório ui e instale as dependências:
cd ui
npm install
npm run build
npm run update_db
- Executando a interface do usuário: Tela de inicialização:
npm run start
- Acesso à interface do usuárioDigite em seu navegador
http://localhost:8675
.
Funções principais
Treinamento do modelo FLUX.1
- Preparação do ambienteVerifique se a GPU tem pelo menos 24 GB de memória de vídeo; se for usada para saída de vídeo, defina-a no arquivo de configuração.
low_vram: true
para quantificar o modelo na CPU. - Configuração do FLUX.1-dev:
- Faça login no Hugging Face e visiteblack-forest-labs/FLUX.1-deve aceitar a licença.
- No diretório raiz do projeto, crie o arquivo
.env
adicione o arquivoHF_TOKEN=sua chave de leitura
.
- Configuração do FLUX.1-schnell:
- Edite o arquivo de configuração (por exemplo
train_lora_flux_schnell_24gb.yaml
), adicione:modelo. name_or_path: "black-forest-labs/FLUX.1-schnell" assistant_lora_path: "ostris/FLUX.1-schnell-training-adapter" is_flux: true quantize: true sample. guidance_scale: 1 sample_steps: 4
- Preparação do conjunto de dadosCriar no diretório raiz
conjunto de dados
na pasta.jpg
e.jpeg
talvez.png
e a imagem correspondente.txt
Descreva o arquivo. - Editar arquivo de configuração: Reprodução
config/examples/train_lora_flux_24gb.yaml
atéconfiguração
renomeie-o paramy_config.yml
Modificaçõescaminho_da_pasta
é o caminho do conjunto de dados. - treinamento de corrida:: Implementação:
python run.py config/my_config.yml
Os resultados do treinamento são salvos na pasta de saída especificada e podem ser pausados com Ctrl+C e retomados a partir do ponto de verificação mais próximo.
Treinamento com o Gradio UI
- Faça login no Hugging Face: Corrida
huggingface-cli login
As entradas têmescrever
A chave para o privilégio. - Iniciar a interface do usuário:: Implementação:
python flux_train_ui.py
- Operação da interface do usuárioFaça upload de imagens, preencha as descrições, defina os parâmetros e clique em treinamento na interface e, em seguida, você poderá publicar o modelo LoRA após a conclusão.
Treinamento na nuvem (RunPod)
- Criação de uma instância do RunPodUso de modelos
runpod/pytorch:2.2.0-py3.10-cuda12.1.1-devel-ubuntu22.04
escolha A40 (48 GB de memória de vídeo). - Conjunto de ferramentas de instalaçãoConecte-se ao Jupyter Notebook e execute o comando de instalação do Linux no terminal.
- Upload de conjuntos de dadosCriar no diretório raiz
conjunto de dados
arraste as imagens e os arquivos de descrição. - Configurar e executarModificar o arquivo de configuração do
caminho_da_pasta
Implementaçãopython run.py config/my_config.yml
.
Preparação do conjunto de dados
- Requisitos de formatação: Suporte
.jpg
e.jpeg
e.png
o arquivo de descrição é.txt
Os nomes dos arquivos precisam ser consistentes (por exemploimage1.jpg
contrapartesimage1.txt
). - Descrição:
.txt
para escrever uma descrição no[acionador].
Os espaços reservados, definidos pelopalavra-gatilho
Substituição. - ajuste automáticoA ferramenta encolhe e agrupa automaticamente as imagens de acordo com a resolução configurada; não há suporte para zoom.
Treinamento específico da camada
- Editar arquivo de configuração: Em
rede
Parcialmente adicionado:
rede.
tipo: "lora"
linear: 128
linear_alpha: 128
network_kwargs.
only_if_contains.
- "transformador.single_transformer_blocks.7.proj_out"
- "transformer.single_transformer_blocks.20.proj_out"
- treinamento de corridaInicializa com um arquivo de configuração modificado, treinando apenas a camada especificada.
advertência
- Interrupção do treinamentoEvite pressionar Ctrl+C ao salvar pontos de controle para não corromper o arquivo.
- Segurança da interface do usuárioA interface do usuário é atualmente testada apenas no Linux, que é menos seguro e não é recomendado para exposição à rede pública.
- Obtendo ajudaPode participar da comunidade Discord do Ostris para fazer perguntas e evitar mensagens privadas diretas com os desenvolvedores.