Stable Diffusion no macOS: comparação de ferramentas de imagem locais

Tradução automática Este artigo foi traduzido automaticamente a partir da versão original em inglês.

Executar modelos de imagem localmente no macOS é, em grande medida, uma questão de escolher as ferramentas certas. Draw Things, DiffusionBee, ComfyUI, AUTOMATIC1111 e Fooocus sobrepõem-se, mas diferem na configuração, no suporte de modelos, no controlo do workflow, nas extensões e na automação.

Uma aplicação de arrastar e largar permite começar rapidamente; um grafo de nós demora mais tempo a aprender, mas expõe uma parte maior do pipeline. Nos Apple Silicon, a aplicação, a família do modelo, a precisão, o tamanho da imagem e o workflow influenciam a possibilidade de a geração caber na memória. Escolha a interface em função do trabalho que precisa de reproduzir e, em seguida, teste o modelo e as definições exatos.

Em resumo. Comece pelo Draw Things ou pelo DiffusionBee quando uma aplicação nativa cobre o trabalho. Use o ComfyUI quando o próprio grafo tiver de ser inspecionado, partilhado ou automatizado. Escolha o AUTOMATIC1111 apenas para um workflow que dependa da sua interface ou das suas extensões. Considere o Fooocus um workflow estável da era do SDXL, não uma via para obter suporte de modelos atuais: o projeto oficial encontra-se num regime limitado de suporte a longo prazo.

Um ficheiro de modelo não é um workflow portátil

As camadas de um workflow local de geração de imagensAs camadas de um workflow local de geração de imagens

Várias aplicações conseguem carregar ficheiros .safetensors, mas uma extensão de ficheiro compatível não significa que o modelo funcione. Um pipeline completo pode também exigir uma arquitetura específica, um text encoder, um VAE, um scheduler, um ControlNet, um LoRA, um tokenizer ou uma configuração específica da aplicação.

Registe tudo o que produziu uma imagem:

  • aplicação e versão
  • repositório, revisão e licença do modelo
  • todos os componentes do modelo e adapters
  • prompt, negative prompt, seed, sampler, steps, guidance e dimensões
  • ficheiro do grafo ou do workflow, quando a aplicação disponibilizar um

Este registo é mais importante do que a popularidade da aplicação. A mesma seed pode ainda produzir uma imagem diferente após uma alteração do backend, do modelo, do sampler ou da precisão.

A memória unificada é partilhada, não ilimitada

Orçamento de memória partilhada para diffusion nos Apple SiliconOrçamento de memória partilhada para diffusion nos Apple Silicon

A Apple documenta que as suas GPUs utilizam um modelo de memória unificada no qual a CPU e a GPU partilham a memória do sistema, embora o acesso aos recursos continue a depender do modo de armazenamento Metal. Isto elimina uma fronteira de cópia separada, mas o macOS e todas as aplicações abertas utilizam a mesma capacidade física; o Monitor de Atividade mostra a utilização por aplicações, memória wired, comprimida e swap.

Para geração de imagens, utilize isto como um registo conceptual do pico de memória, não como uma fórmula de dimensionamento:

peak memory ≈ model components
            + intermediate activations
            + attention and runtime workspace
            + loaded adapters and control models
            + application and OS memory

A resolução, o tamanho do batch, a arquitetura do modelo, a precisão, o upscaling, o ControlNet e o facto de os componentes permanecerem carregados alteram o resultado. Nenhuma fonte da Apple transforma este registo numa regra universal de “8/16/32 GB”, pelo que escolher uma máquina com base nele é uma inferência que deve ser validada pelo workflow. Teste o workflow pretendido e, em seguida, acompanhe a Pressão da Memória e o Swap Usado; o uso contínuo de swap é um indício de que deve reduzir a carga de trabalho ou escolher mais memória.

Escolha em função do estado que precisa de controlar

FerramentaSuperfície de controlo útilCompromisso operacional
Draw ThingsUI nativa da Apple com modelos locais, adapters, ControlNet e scriptsInterface densa e específica do produto; confirme o suporte para a família exata do modelo
DiffusionBeeAplicação macOS empacotada com um workflow de geração integradoPrivilegia a conveniência em detrimento da inspeção ao nível do grafo; é necessário verificar a cadência de releases e as famílias suportadas
ComfyUIGrafo de nós explícito, workflows em JSON, API e custom nodesMais componentes móveis; os grafos e os nós de terceiros tornam-se dependências
AUTOMATIC1111Web UI baseada em formulários, scripts, API e uma grande superfície de extensõesO Apple Silicon tem limitações documentadas de funcionalidades e desempenho; as extensões alargam a fronteira de confiança
FooocusWorkflow SDXL opinativo e centrado no promptOficialmente em LTS limitado, apenas com correções de bugs; as instruções para Mac não são oficiais e foram pouco testadas

A tabela não é uma classificação. Indica onde reside o estado do workflow: dentro de uma aplicação, distribuído por um formulário ou num grafo que pode ser revisto.

Draw Things: interação nativa e scripting

O Draw Things é uma aplicação para plataformas Apple destinada à geração local de imagens. A documentação atual cobre modelos, LoRAs, ControlNet, textual inversion, Core ML e scripting em JavaScript versionado.

Escolha-o quando o trabalho dever permanecer numa aplicação nativa, mas ainda precisar de mais controlo do que uma caixa de prompt. Antes de o adotar como padrão, importe os componentes exatos do modelo e reproduza uma edição, um adapter ou um workflow de controlo representativo. “Nativo” descreve a interface e a implementação; não garante suporte ou velocidade para todas as arquiteturas novas.

DiffusionBee: workflow macOS empacotado

O DiffusionBee integra a transferência de modelos e as tarefas comuns de geração numa aplicação de ambiente de trabalho. A documentação do projeto lista image-to-image, inpainting, outpainting, ControlNet, LoRA e SDXL. As notas da release DiffusionBee 2.5.3 indicam suporte para Flux.1 apenas em Macs arm64 com macOS 13 ou posterior.

Escolha-o quando a facilidade de instalação e uma UI integrada forem mais importantes do que exportar um grafo de pipeline. Verifique a release mais recente e a arquitetura exata antes de transferir um modelo de grandes dimensões. Uma etiqueta de funcionalidade como “suporte para Flux” não significa que todas as variantes, quantizações ou componentes auxiliares serão carregados.

ComfyUI: o workflow é um artefacto

O ComfyUI representa a geração como um grafo de nós. Um workflow pode ser guardado como JSON, independentemente do resultado, o que torna o pipeline inspecionável e versionável. O seu executor também pode evitar recalcular secções do grafo cujas entradas não tenham sido alteradas.

O Comfy Desktop é um gestor de múltiplas instalações para instâncias locais do ComfyUI. A documentação atual para macOS suporta Apple Silicon no macOS 13 ou posterior e instala a partir de um .dmg transferido. Se preferir Homebrew, o cask atual é comfy (e não comfyui):

brew install --cask comfy

Escolha o ComfyUI quando um pipeline tiver ramificações, componentes reutilizáveis, vários modelos ou automação. Mantenha juntos o JSON, a versão da aplicação, as versões dos core nodes, as revisões dos custom nodes e o manifesto dos modelos.

Os custom nodes são dependências executáveis. Analise o respetivo código-fonte e os scripts de instalação, fixe as revisões e isole o ambiente. Um grafo de um autor desconhecido pode referenciar código e modelos que não foram auditados.

AUTOMATIC1111: compatibilidade com uma Web UI consolidada

O AUTOMATIC1111 Stable Diffusion WebUI expõe as definições de geração através de uma interface de browser e suporta scripts, extensões e uma API. Escolha-o quando um tutorial específico, uma automação ou uma extensão já fizer parte dos requisitos.

O guia oficial para Apple Silicon documenta exceções e limitações de desempenho, incluindo um desempenho fraco no treino. Confirme que a funcionalidade necessária funciona nas versões de macOS e PyTorch do sistema-alvo antes de adotar uma configuração com muitas extensões.

As extensões executam código no ambiente da aplicação. Fixe as versões, reveja as atualizações e mantenha o serviço ligado apenas ao loopback, exceto quando o acesso remoto for deliberado e estiver protegido.

Fooocus: uma opção limitada da era do SDXL

O Fooocus oculta deliberadamente muitas escolhas técnicas por detrás de um workflow opinativo e centrado no prompt. Isto pode ser útil quando as suas predefinições correspondem à tarefa.

O README atual do projeto indica que o Fooocus foi desenvolvido em torno do SDXL e se encontra num regime limitado de suporte a longo prazo, apenas com correções de bugs. Indica também que o Mac não é testado de forma intensiva e descreve a instalação para Mac como não oficial. Assim, o Fooocus é uma escolha limitada para um workflow Fooocus existente, não o caminho predefinido para arquiteturas novas ou para uma configuração macOS que pretenda manter.

Execute um teste de aceitação representativo

Percurso de decisão para selecionar um workflow de imagem no macOSPercurso de decisão para selecionar um workflow de imagem no macOS

Utilize um pequeno conjunto de testes de aceitação antes de se comprometer com uma ferramenta:

  1. Reproduza um resultado de text-to-image de referência com uma seed e definições registadas.
  2. Execute a operação obrigatória mais exigente: inpainting, ControlNet, LoRA, upscale ou um grafo com várias etapas.
  3. Reinicie a aplicação e reproduza o workflow a partir dos artefactos guardados.
  4. Meça o arranque a frio, o tempo de geração, o pico de pressão da memória e as dimensões da saída.
  5. Transfira o workflow para uma conta de utilizador ou máquina limpa e enumere todas as dependências em falta.
  6. Verifique a ligação à rede local, as transferências, as definições de analytics, as licenças e a proveniência dos modelos.

Não compare ferramentas com checkpoints, resoluções, números de steps ou precisões diferentes e chame depois ao resultado um benchmark de runtime.

Uma predefinição prática

Para trabalho exploratório, comece por uma aplicação nativa e por um modelo que esta documente. Passe para o ComfyUI quando o próprio workflow se tornar valioso: quando tiver de ser revisto, repetido, automatizado ou entregue a outra pessoa. Mantenha o AUTOMATIC1111 ou o Fooocus quando uma dependência existente tornar útil a sua superfície específica.

O que vale a pena conservar é o pacote reproduzível mais pequeno de identidades dos modelos, parâmetros, dependências e estado do workflow capaz de voltar a produzir o resultado.

Referências