As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Gere imagens em lote com um modelo de difusão
Este tutorial mostra como executar a geração de imagens em lote de alto rendimento em um arquivo JSONL de solicitações usando um modelo de difusão. Você envia o pacote de trabalho em lote de texto para imagem GitHub
Cada linha selecionada no JSONL se torna uma tarefa de geração. O agendador distribui as tarefas entre os trabalhadores de GPU disponíveis, e cada trabalhador carrega o pipeline de difusão uma vez e o reutiliza para cada tarefa executada. Quando uma linha carrega um caption campo, ou um generated_text campo encadeado a partir da saída do pacote de inferência em lote vLLM, a tarefa compõe o texto sobre a imagem gerada como uma tipografia nítida. Linhas sem legenda produzem imagens puras, então o pacote funciona igualmente bem como um gerador de lote de texto simples para imagem.
Tempo estimado: 30 a 60 minutos, incluindo a configuração da fazenda. A primeira execução também baixa cerca de 13 GB de pesos de modelo por trabalhador.
A execução deste tutorial gera cobranças para as instâncias de trabalho da GPU que processam a tarefa.
Visão geral do
Para concluir este tutorial, siga estas etapas:
-
Configure sua fazenda.
-
Prepare o arquivo de entrada.
-
Envie o trabalho de geração de imagens.
-
Baixe e navegue na galeria.
-
Limpe recursos.
Configure sua fazenda
Você precisa de uma frota gerenciada por serviços com GPUs NVIDIA e pelo menos 32 GB de RAM, além de uma fila com um ambiente de fila conda anexado com leituras e parâmetros de trabalho. CondaPackages CondaChannels FLUX.2 O Klein 4B se encaixa confortavelmente em GPUs de 16 GB ou maiores (por exemplo, L4 ou A10G) graças ao descarregamento da CPU.
A maneira mais rápida de obter uma fazenda compatível é implantar o modelo de fazenda CUDA GitHubCREATE_COMPLETE, configure o Deadline Cloud CLI para usar a nova fazenda:
deadline config set defaults.farm_idFarmId-from-stack-outputsdeadline config set defaults.queue_idCUDAQueueId-from-stack-outputs
nota
O pacote inclui um ambiente de InstallDeps trabalho que é instalado PyTorch e a biblioteca de difusores mais recente do git no topo do ambiente conda da fila em cada sessão, além de baixar quatro pequenas fontes do Google para a sobreposição de legendas. Espere de 30 a 90 segundos de tempo adicional de configuração por trabalhador na primeira utilização, além do download do modelo na primeira execução. Se sua frota funciona em uma VPC restrita à rede, você precisa pré-transformar as dependências em uma AMI personalizada ou em um canal conda, ou abrir a saída.
Prepare o arquivo de entrada
A entrada é um arquivo JSONL com um objeto JSON por linha. Cada linha deve ter um prompt campo ou um generated_text campo encadeado a partir da saída do pacote de inferência em lote vLLM:
{"prompt": "A golden hour photo of a sourdough loaf on a linen-covered table", "id": "loaf_01"} {"prompt": "A bakery storefront at sunrise, photorealistic", "caption": "OPEN AT DAWN", "id": "shop_01"} {"prompt": "Write a slogan for sourdough", "id": "001", "generated_text": "Real grain. Real fermentation. Real you.", "style": "rustic flat lay, warm tones"}
Os campos opcionais caption por linha incluem sobreposição de texto, style para substituir o sufixo de estilo de nível de trabalho,, e, e. font width height steps seed O pacote inclui a mesma ferramenta de criação de prompts de dependência zero do pacote de lotes vLLM. Abra tools/prompt_builder.html para criar arquivos de entrada, importe um JSONL arrastando e soltando e adicione substituições por solicitação.
O sample_prompts.jsonl arquivo incluído é uma demonstração de campanha de padaria de 10 imagens: slogans de padaria gerados pelo pacote de inferência em lote vLLM, com dicas de estilo em camadas para obter visuais evocativos.
Envie o trabalho de geração de imagens
Para enviar com o remetente da GUI
-
No diretório do
text_to_image_batchpacote, abra o remetente:deadline bundle gui-submit . -
Escolha seu arquivo JSONL de entrada. Experimente
sample_prompts.jsonla demonstração da campanha de padaria. -
Defina o intervalo de solicitações (por exemplo,
1-10para as primeiras 10 solicitações) e escolha um diretório de saída. -
Opcionalmente StyleSuffix, ajuste a largura e a altura. Deixe a legenda sobreposta em
truese seu JSONL tiver legendas ou slogans, ou configure-a como para pura geração de imagens.false -
Selecione Enviar.
Como alternativa, envie com a CLI:
deadline bundle submit . \ --parameter InputFile=$PWD/sample_prompts.jsonl \ --parameter Prompts=1-10 \ --parameter OutputDir=$PWD/output
Os ChunkSize parâmetros Prompts e funcionam da mesma forma que no pacote de inferência em lote vLLM, usando o recurso de fragmentação de tarefas do Deadline Cloud. Para obter mais informações, consulte Divisão de tarefas para modelos de trabalho. O ModelName parâmetro aceita qualquer coisa que a biblioteca de difusores possa carregar, incluindo SDXL Turbo e Stable Diffusion 3.5. Para ver a lista completa de parâmetros e as configurações de outros modelos, consulte a tabela de parâmetros no exemplo README em GitHub
Baixe e navegue na galeria
Para baixar e navegar pelos resultados
-
Depois que o trabalho for concluído, execute o comando de download no mesmo diretório usado no momento do envio, para que o
OutputDircaminho seja resolvido no mesmo local:deadline job download-output --job-idjob-id -
Cada artefato fica em um
output/subdiretório do caminho que você definiu como.OutputDirOs PNGs brutos estão dentrooutput/images/, os metadados combinados estão dentrooutput/output.jsonleoutput/gallery.htmlé um visualizador de galeria estático com pesquisa e exportação de CSV. -
Se as imagens da galeria não carregarem quando você abre
gallery.htmldiretamente, isso é uma restrição de segurança do navegador emfile://URLs. Em vez disso, sirva o diretório:cdOutputDir/output && python3 -m http.server 8080 # open http://localhost:8080/gallery.html
Cadeia a partir da inferência em lote vLLM
O fluxo clássico combina esse pacote com o pacote de inferência em lote vLLM:
-
Gere texto com o pacote de inferência em lote vLLM: slogans, legendas, descrições de cenas ou texto alternativo. A saída é
output.jsonlcom umgenerated_textcampo por linha. Consulte Execute inferência LLM em lote com vLLM. -
(Opcional) Abra
tools/prompt_builder.html, insiraoutput.jsonl, adicione ou edite legendas, estilos ou descrições visuais por solicitação e reexporte. -
Envie este pacote com o JSONL como.
InputFileO script por tarefa é usado automaticamentegenerated_textcomo legenda de sobreposição.
Quando uma linha tem um generated_text slogan e o LLM originalprompt, o script de tarefas tenta extrair o assunto da solicitação e usá-lo como aviso visual para o modelo de difusão, porque os slogans geralmente são muito abstratos para dar ao modelo um assunto concreto. O trabalhador registra a fonte visual do prompt por tarefa para que você possa identificar extrações incorretas.
Fazer a limpeza.
Para evitar cobranças contínuas, limpe os recursos que você criou para este tutorial:
Para limpar os recursos do tutorial
-
Se você implantou o CloudFormation modelo de farm CUDA, exclua a CloudFormation pilha do console. CloudFormation
-
Se você usou uma fazenda existente e criou uma frota de GPU especificamente para este tutorial, interrompa ou exclua essa frota. Se você usou uma frota compartilhada preexistente, deixe-a em vigor.
-
Remova os arquivos de saída locais se não precisar mais deles.
Recursos relacionados
Os seguintes recursos fornecem informações adicionais: