From 54dbef2f956d7e1a35424a7db3c87e3e4e74fd62 Mon Sep 17 00:00:00 2001 From: Carlos Date: Wed, 5 Nov 2025 16:36:11 -0300 Subject: [PATCH] Updates Portuguese documentation for Diffusers library Enhances the Portuguese documentation with: - Restructured table of contents for improved navigation - Added placeholder page for in-translation content - Refined language and improved readability in existing pages - Introduced a new page on basic Stable Diffusion performance guidance Improves overall documentation structure and user experience for Portuguese-speaking users --- docs/source/pt/_toctree.yml | 54 ++++++++++-- docs/source/pt/in_translation.md | 18 ++++ docs/source/pt/index.md | 4 +- docs/source/pt/installation.md | 6 +- docs/source/pt/stable_diffusion.md | 132 +++++++++++++++++++++++++++++ 5 files changed, 203 insertions(+), 11 deletions(-) create mode 100644 docs/source/pt/in_translation.md create mode 100644 docs/source/pt/stable_diffusion.md diff --git a/docs/source/pt/_toctree.yml b/docs/source/pt/_toctree.yml index c34297a4743f..d3d9f2aa95a6 100644 --- a/docs/source/pt/_toctree.yml +++ b/docs/source/pt/_toctree.yml @@ -1,8 +1,50 @@ - sections: - - local: index - title: 🧨 Diffusers - - local: quicktour - title: Tour rápido - - local: installation - title: Instalação + - local: index + title: Diffusers + - local: installation + title: Instalação + - local: quicktour + title: Tour rápido + - local: stable_diffusion + title: Desempenho básico title: Primeiros passos +- isExpanded: false + sections: + - local: in_translation + title: (Em tradução) Pipelines + title: Pipelines +- isExpanded: false + sections: + - local: in_translation + title: (Em tradução) Adaptadores + title: Adaptadores +- isExpanded: false + sections: + - local: in_translation + title: (Em tradução) Inferência + title: Inferência +- isExpanded: false + sections: + - local: in_translation + title: (Em tradução) Otimização + title: Otimização +- isExpanded: false + sections: + - local: in_translation + title: (Em tradução) Tutoriais + title: Tutoriais +- isExpanded: false + sections: + - local: in_translation + title: (Em tradução) Treinamento + title: Treinamento +- isExpanded: false + sections: + - local: in_translation + title: (Em tradução) Conceitos + title: Conceitos +- isExpanded: false + sections: + - local: in_translation + title: (Em tradução) Referência da API + title: Referência da API diff --git a/docs/source/pt/in_translation.md b/docs/source/pt/in_translation.md new file mode 100644 index 000000000000..6162d47f9216 --- /dev/null +++ b/docs/source/pt/in_translation.md @@ -0,0 +1,18 @@ + + +# Em tradução + +Estamos trabalhando arduamente na tradução deste conteúdo. Por favor, aguarde um pouco mais. +Obrigado pela paciência! + +Para contribuir com traduções, veja a issue [#12597](https://github.com/huggingface/diffusers/issues/12597). diff --git a/docs/source/pt/index.md b/docs/source/pt/index.md index e491912b355a..69096ba95e9a 100644 --- a/docs/source/pt/index.md +++ b/docs/source/pt/index.md @@ -18,11 +18,11 @@ specific language governing permissions and limitations under the License. # Diffusers -🤗 Diffusers é uma biblioteca de modelos de difusão de última geração para geração de imagens, áudio e até mesmo estruturas 3D de moléculas. Se você está procurando uma solução de geração simples ou queira treinar seu próprio modelo de difusão, 🤗 Diffusers é uma modular caixa de ferramentas que suporta ambos. Nossa biblioteca é desenhada com foco em [usabilidade em vez de desempenho](conceptual/philosophy#usability-over-performance), [simples em vez de fácil](conceptual/philosophy#simple-over-easy) e [customizável em vez de abstrações](conceptual/philosophy#tweakable-contributorfriendly-over-abstraction). +🤗 Diffusers é uma biblioteca de modelos de difusão de última geração para geração de imagens, áudio e até mesmo estruturas 3D de moléculas. Se você está procurando uma solução de geração simples ou quer treinar seu próprio modelo de difusão, 🤗 Diffusers é uma caixa de ferramentas modular que suporta ambos. Nossa biblioteca é desenhada com foco em [usabilidade em vez de desempenho](conceptual/philosophy#usability-over-performance), [simples em vez de fácil](conceptual/philosophy#simple-over-easy) e [customizável em vez de abstrações](conceptual/philosophy#tweakable-contributorfriendly-over-abstraction). A Biblioteca tem três componentes principais: -- Pipelines de última geração para a geração em poucas linhas de código. Têm muitos pipelines no 🤗 Diffusers, veja a tabela no pipeline [Visão geral](api/pipelines/overview) para uma lista completa de pipelines disponíveis e as tarefas que eles resolvem. +- Pipelines de última geração para a geração em poucas linhas de código. Há muitos pipelines no 🤗 Diffusers, veja a tabela no pipeline [Visão geral](api/pipelines/overview) para uma lista completa de pipelines disponíveis e as tarefas que eles resolvem. - Intercambiáveis [agendadores de ruído](api/schedulers/overview) para balancear as compensações entre velocidade e qualidade de geração. - [Modelos](api/models) pré-treinados que podem ser usados como se fossem blocos de construção, e combinados com agendadores, para criar seu próprio sistema de difusão de ponta a ponta. diff --git a/docs/source/pt/installation.md b/docs/source/pt/installation.md index acc767110cb9..24c7e4bb7385 100644 --- a/docs/source/pt/installation.md +++ b/docs/source/pt/installation.md @@ -21,7 +21,7 @@ specific language governing permissions and limitations under the License. Recomenda-se instalar 🤗 Diffusers em um [ambiente virtual](https://docs.python.org/3/library/venv.html). Se você não está familiarizado com ambiente virtuals, veja o [guia](https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/). -Um ambiente virtual deixa mais fácil gerenciar diferentes projetos e evitar problemas de compatibilidade entre dependências. +Um ambiente virtual facilita gerenciar diferentes projetos e evitar problemas de compatibilidade entre dependências. Comece criando um ambiente virtual no diretório do projeto: @@ -100,12 +100,12 @@ pip install -e ".[flax]" -Esses comandos irá linkar a pasta que você clonou o repositório e os caminhos das suas bibliotecas Python. +Esses comandos irão vincular a pasta que você clonou o repositório e os caminhos das suas bibliotecas Python. Python então irá procurar dentro da pasta que você clonou além dos caminhos normais das bibliotecas. Por exemplo, se o pacote python for tipicamente instalado no `~/anaconda3/envs/main/lib/python3.10/site-packages/`, o Python também irá procurar na pasta `~/diffusers/` que você clonou. > [!WARNING] -> Você deve deixar a pasta `diffusers` se você quiser continuar usando a biblioteca. +> Você deve manter a pasta `diffusers` se quiser continuar usando a biblioteca. Agora você pode facilmente atualizar seu clone para a última versão do 🤗 Diffusers com o seguinte comando: diff --git a/docs/source/pt/stable_diffusion.md b/docs/source/pt/stable_diffusion.md new file mode 100644 index 000000000000..ffc5df643454 --- /dev/null +++ b/docs/source/pt/stable_diffusion.md @@ -0,0 +1,132 @@ + + +[[open-in-colab]] + +# Desempenho básico + +Difusão é um processo aleatório que demanda muito processamento. Você pode precisar executar o [`DiffusionPipeline`] várias vezes antes de obter o resultado desejado. Por isso é importante equilibrar cuidadosamente a velocidade de geração e o uso de memória para iterar mais rápido. + +Este guia recomenda algumas dicas básicas de desempenho para usar o [`DiffusionPipeline`]. Consulte a seção de documentação sobre Otimização de Inferência, como [Acelerar inferência](./optimization/fp16) ou [Reduzir uso de memória](./optimization/memory) para guias de desempenho mais detalhados. + +## Uso de memória + +Reduzir a quantidade de memória usada indiretamente acelera a geração e pode ajudar um modelo a caber no dispositivo. + +O método [`~DiffusionPipeline.enable_model_cpu_offload`] move um modelo para a CPU quando não está em uso para economizar memória da GPU. + +```py +import torch +from diffusers import DiffusionPipeline + +pipeline = DiffusionPipeline.from_pretrained( + "stabilityai/stable-diffusion-xl-base-1.0", + torch_dtype=torch.bfloat16, + device_map="cuda" +) +pipeline.enable_model_cpu_offload() + +prompt = """ +cinematic film still of a cat sipping a margarita in a pool in Palm Springs, California +highly detailed, high budget hollywood movie, cinemascope, moody, epic, gorgeous, film grain +""" +pipeline(prompt).images[0] +print(f"Memória máxima reservada: {torch.cuda.max_memory_allocated() / 1024**3:.2f} GB") +``` + +## Velocidade de inferência + +O processo de remoção de ruído é o mais exigente computacionalmente durante a difusão. Métodos que otimizam este processo aceleram a velocidade de inferência. Experimente os seguintes métodos para acelerar. + +- Adicione `device_map="cuda"` para colocar o pipeline em uma GPU. Colocar um modelo em um acelerador, como uma GPU, aumenta a velocidade porque realiza computações em paralelo. +- Defina `torch_dtype=torch.bfloat16` para executar o pipeline em meia-precisão. Reduzir a precisão do tipo de dado aumenta a velocidade porque leva menos tempo para realizar computações em precisão mais baixa. + +```py +import torch +import time +from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler + +pipeline = DiffusionPipeline.from_pretrained( + "stabilityai/stable-diffusion-xl-base-1.0", + torch_dtype=torch.bfloat16, + device_map="cuda" +) +``` + +- Use um agendador mais rápido, como [`DPMSolverMultistepScheduler`], que requer apenas ~20-25 passos. +- Defina `num_inference_steps` para um valor menor. Reduzir o número de passos de inferência reduz o número total de computações. No entanto, isso pode resultar em menor qualidade de geração. + +```py +pipeline.scheduler = DPMSolverMultistepScheduler.from_config(pipeline.scheduler.config) + +prompt = """ +cinematic film still of a cat sipping a margarita in a pool in Palm Springs, California +highly detailed, high budget hollywood movie, cinemascope, moody, epic, gorgeous, film grain +""" + +start_time = time.perf_counter() +image = pipeline(prompt).images[0] +end_time = time.perf_counter() + +print(f"Geração de imagem levou {end_time - start_time:.3f} segundos") +``` + +## Qualidade de geração + +Muitos modelos de difusão modernos entregam imagens de alta qualidade imediatamente. No entanto, você ainda pode melhorar a qualidade de geração experimentando o seguinte. + +- Experimente um prompt mais detalhado e descritivo. Inclua detalhes como o meio da imagem, assunto, estilo e estética. Um prompt negativo também pode ajudar, guiando um modelo para longe de características indesejáveis usando palavras como baixa qualidade ou desfocado. + + ```py + import torch + from diffusers import DiffusionPipeline + + pipeline = DiffusionPipeline.from_pretrained( + "stabilityai/stable-diffusion-xl-base-1.0", + torch_dtype=torch.bfloat16, + device_map="cuda" + ) + + prompt = """ + cinematic film still of a cat sipping a margarita in a pool in Palm Springs, California + highly detailed, high budget hollywood movie, cinemascope, moody, epic, gorgeous, film grain + """ + negative_prompt = "low quality, blurry, ugly, poor details" + pipeline(prompt, negative_prompt=negative_prompt).images[0] + ``` + + Para mais detalhes sobre como criar prompts melhores, consulte a documentação sobre [Técnicas de prompt](./using-diffusers/weighted_prompts). + +- Experimente um agendador diferente, como [`HeunDiscreteScheduler`] ou [`LMSDiscreteScheduler`], que sacrifica velocidade de geração por qualidade. + + ```py + import torch + from diffusers import DiffusionPipeline, HeunDiscreteScheduler + + pipeline = DiffusionPipeline.from_pretrained( + "stabilityai/stable-diffusion-xl-base-1.0", + torch_dtype=torch.bfloat16, + device_map="cuda" + ) + pipeline.scheduler = HeunDiscreteScheduler.from_config(pipeline.scheduler.config) + + prompt = """ + cinematic film still of a cat sipping a margarita in a pool in Palm Springs, California + highly detailed, high budget hollywood movie, cinemascope, moody, epic, gorgeous, film grain + """ + negative_prompt = "low quality, blurry, ugly, poor details" + pipeline(prompt, negative_prompt=negative_prompt).images[0] + ``` + +## Próximos passos + +Diffusers oferece otimizações mais avançadas e poderosas, como [group-offloading](./optimization/memory#group-offloading) e [compilação regional](./optimization/fp16#regional-compilation). Para saber mais sobre como maximizar o desempenho, consulte a seção sobre Otimização de Inferência.