Skip to content

Commit a0fdfa5

Browse files
authored
Merge branch 'main' into docker-build-fixes
2 parents 87ffc4d + 1066de8 commit a0fdfa5

26 files changed

+577
-52
lines changed

docs/source/ko/conceptual/ethical_guidelines.md

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,51 +14,47 @@ specific language governing permissions and limitations under the License.
1414

1515
## 서문 [[preamble]]
1616

17-
[Diffusers](https://huggingface.co/docs/diffusers/index)는 사전 훈련된 diffusion 모델을 제공하며 추론 및 훈련을 위한 모듈식 툴박스로 사용됩니다.
17+
[Diffusers](https://huggingface.co/docs/diffusers/index)는 사전 훈련된 diffusion 모델을 제공하며, 추론과 훈련을 위한 모듈형 툴박스로 활용됩니다.
1818

19-
이 기술의 실제 적용과 사회에 미칠 수 있는 부정적인 영향을 고려하여 Diffusers 라이브러리의 개발, 사용자 기여 및 사용에 윤리 지침을 제공하는 것이 중요하다고 생각합니다.
20-
21-
이이 기술을 사용함에 따른 위험은 여전히 검토 중이지만, 몇 가지 예를 들면: 예술가들에 대한 저작권 문제; 딥 페이크의 악용; 부적절한 맥락에서의 성적 콘텐츠 생성; 동의 없는 사칭; 소수자 집단의 억압을 영속화하는 유해한 사회적 편견 등이 있습니다.
22-
23-
우리는 위험을 지속적으로 추적하고 커뮤니티의 응답과 소중한 피드백에 따라 다음 지침을 조정할 것입니다.
19+
이 기술의 실제 적용 사례와 사회에 미칠 수 있는 잠재적 부정적 영향을 고려할 때, Diffusers 라이브러리의 개발, 사용자 기여, 사용에 윤리 지침을 제공하는 것이 중요하다고 생각합니다.
2420

21+
이 기술 사용과 관련된 위험은 여전히 검토 중이지만, 예를 들면: 예술가의 저작권 문제, 딥페이크 악용, 부적절한 맥락에서의 성적 콘텐츠 생성, 비동의 사칭, 소수자 집단 억압을 영속화하는 유해한 사회적 편견 등이 있습니다.
22+
우리는 이러한 위험을 지속적으로 추적하고, 커뮤니티의 반응과 소중한 피드백에 따라 아래 지침을 조정할 것입니다.
2523

2624
## 범위 [[scope]]
2725

28-
Diffusers 커뮤니티는 프로젝트의 개발에 다음과 같은 윤리 지침을 적용하며, 특히 윤리적 문제와 관련된 민감한 주제에 대한 커뮤니티의 기여를 조정하는 데 도움을 줄 것입니다.
29-
26+
Diffusers 커뮤니티는 프로젝트 개발에 다음 윤리 지침을 적용하며, 특히 윤리적 문제와 관련된 민감한 주제에 대해 커뮤니티의 기여를 조정하는 데 도움을 줄 것입니다.
3027

3128
## 윤리 지침 [[ethical-guidelines]]
3229

33-
다음 윤리 지침은 일반적으로 적용되지만, 민감한 윤리적 문제와 관련하여 기술적 선택을 할 때 이를 우선적으로 적용할 것입니다. 나아가, 해당 기술의 최신 동향과 관련된 새로운 위험이 발생함에 따라 이러한 윤리 원칙을 조정할 것을 약속드립니다.
34-
35-
- **투명성**: 우리는 PR을 관리하고, 사용자에게 우리의 선택을 설명하며, 기술적 의사결정을 내릴 때 투명성을 유지할 것을 약속합니다.
30+
다음 윤리 지침은 일반적으로 적용되지만, 윤리적으로 민감한 문제와 관련된 기술적 선택을 할 때 우선적으로 적용됩니다. 또한, 해당 기술의 최신 동향과 관련된 새로운 위험이 발생함에 따라 이러한 윤리 원칙을 지속적으로 조정할 것을 약속합니다.
3631

37-
- **일관성**: 우리는 프로젝트 관리에서 사용자들에게 동일한 수준의 관심을 보장하고 기술적으로 안정되고 일관된 상태를 유지할 것을 약속합니다.
32+
- **투명성**: 우리는 PR 관리, 사용자에게 선택의 이유 설명, 기술적 의사결정 과정에서 투명성을 유지할 것을 약속합니다.
3833

39-
- **간결성**: Diffusers 라이브러리를 사용하고 활용하기 쉽게 만들기 위해, 프로젝트의 목표를 간결하고 일관성 있게 유지할 것을 약속합니다.
34+
- **일관성**: 프로젝트 관리에서 모든 사용자에게 동일한 수준의 관심을 보장하고, 기술적으로 안정적이고 일관된 상태를 유지할 것을 약속합니다.
4035

41-
- **접근성**: Diffusers 프로젝트는 기술적 전문 지식 없어도 프로젝트 운영에 참여할 수 있는 기여자의 진입장벽을 낮춥니다. 이를 통해 연구 결과물이 커뮤니티에 더 잘 접근할 수 있게 됩니다.
36+
- **간결성**: Diffusers 라이브러리를 쉽게 사용하고 활용할 수 있도록, 프로젝트의 목표를 간결하고 일관성 있게 유지할 것을 약속합니다.
4237

43-
- **재현성**: 우리는 Diffusers 라이브러리를 통해 제공되는 업스트림(upstream) 코드, 모델 및 데이터셋의 재현성에 대해 투명하게 공개할 것을 목표로 합니다.
38+
- **접근성**: Diffusers 프로젝트는 기술적 전문지식이 없어도 기여할 수 있도록 진입장벽을 낮춥니다. 이를 통해 연구 결과물이 커뮤니티에 더 잘 접근될 수 있습니다.
4439

45-
- **책임**: 우리는 커뮤니티와 팀워크를 통해, 이 기술의 잠재적인 위험과 위험을 예측하고 완화하는 데 대한 공동 책임을 가지고 있습니다.
40+
- **재현성**: 우리는 Diffusers 라이브러리를 통해 제공되는 업스트림 코드, 모델, 데이터셋의 재현성에 대해 투명하게 공개하는 것을 목표로 합니다.
4641

42+
- **책임**: 커뮤니티와 팀워크를 통해, 이 기술의 잠재적 위험을 예측하고 완화하는 데 공동 책임을 집니다.
4743

4844
## 구현 사례: 안전 기능과 메커니즘 [[examples-of-implementations-safety-features-and-mechanisms]]
4945

50-
팀은 diffusion 기술과 관련된 잠재적인 윤리 및 사회적 위험에 대처하기 위한 기술적비기술적 도구를 제공하고자 하고 있습니다. 또한, 커뮤니티의 참여는 이러한 기능의 구현하고 우리와 함께 인식을 높이는 데 매우 중요합니다.
46+
팀은 diffusion 기술과 관련된 잠재적 윤리 및 사회적 위험에 대응하기 위해 기술적·비기술적 도구를 제공하고자 노력하고 있습니다. 또한, 커뮤니티의 참여는 이러한 기능 구현과 인식 제고에 매우 중요합니다.
5147

52-
- [**커뮤니티 탭**](https://huggingface.co/docs/hub/repositories-pull-requests-discussions): 이를 통해 커뮤니티는 프로젝트에 대해 토론하고 더 나은 협력을 할 수 있습니다.
48+
- [**커뮤니티 탭**](https://huggingface.co/docs/hub/repositories-pull-requests-discussions): 커뮤니티가 프로젝트에 대해 토론하고 더 나은 협업을 할 수 있도록 지원합니다.
5349

54-
- **편향 탐색 및 평가**: Hugging Face 팀은 Stable Diffusion 모델의 편향성을 대화형으로 보여주는 [space](https://huggingface.co/spaces/society-ethics/DiffusionBiasExplorer) 제공합니다. 이런 의미에서, 우리는 편향 탐색 및 평가를 지원하고 장려합니다.
50+
- **편향 탐색 및 평가**: Hugging Face 팀은 Stable Diffusion 모델의 편향성을 대화형으로 보여주는 [space](https://huggingface.co/spaces/society-ethics/DiffusionBiasExplorer) 제공합니다. 우리는 이러한 편향 탐색과 평가를 지원하고 장려합니다.
5551

5652
- **배포에서의 안전 유도**
5753

58-
- [**안전한 Stable Diffusion**](https://huggingface.co/docs/diffusers/main/en/api/pipelines/stable_diffusion/stable_diffusion_safe): 이는 필터되지 않은 웹 크롤링 데이터셋으로 훈련된 Stable Diffusion과 같은 모델이 부적절한 변질에 취약한 문제를 완화합니다. 관련 논문: [Safe Latent Diffusion: Mitigating Inappropriate Degeneration in Diffusion Models](https://huggingface.co/papers/2211.05105).
54+
- [**안전한 Stable Diffusion**](https://huggingface.co/docs/diffusers/main/en/api/pipelines/stable_diffusion/stable_diffusion_safe): 필터링되지 않은 웹 크롤링 데이터셋으로 훈련된 Stable Diffusion과 같은 모델이 부적절하게 변질되는 문제를 완화합니다. 관련 논문: [Safe Latent Diffusion: Mitigating Inappropriate Degeneration in Diffusion Models](https://huggingface.co/papers/2211.05105).
5955

60-
- [**안전 검사기**](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_diffusion/safety_checker.py): 이미지가 생성된 후에 이미자가 임베딩 공간에서 일련의 하드코딩된 유해 개념의 클래스일 확률을 확인하고 비교합니다. 유해 개념은 역공학을 방지하기 위해 의도적으로 숨겨져 있습니다.
56+
- [**안전 검사기**](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/stable_diffusion/safety_checker.py): 생성된 이미지가 임베딩 공간에서 하드코딩된 유해 개념 클래스와 일치할 확률을 확인하고 비교합니다. 유해 개념은 역공학을 방지하기 위해 의도적으로 숨겨져 있습니다.
6157

62-
- **Hub에서의 단계적인 배포**: 특히 민감한 상황에서는 일부 리포지토리에 대한 접근을 제한해야 합니다. 이 단계적인 배포는 중간 단계로, 리포지토리 작성자가 사용에 대한 더 많은 통제력을 갖게 합니다.
58+
- **Hub에서의 단계적 배포**: 특히 민감한 상황에서는 일부 리포지토리에 대한 접근을 제한할 수 있습니다. 단계적 배포는 리포지토리 작성자가 사용에 대해 더 많은 통제권을 갖도록 하는 중간 단계입니다.
6359

64-
- **라이선싱**: [OpenRAILs](https://huggingface.co/blog/open_rail)와 같은 새로운 유형의 라이선싱을 통해 자유로운 접근을 보장하면서도 책임 있는 사용을 위한 일련의 제한을 둘 수 있습니다.
60+
- **라이선싱**: [OpenRAILs](https://huggingface.co/blog/open_rail)와 같은 새로운 유형의 라이선스를 통해 자유로운 접근을 보장하면서도 보다 책임 있는 사용을 위한 일련의 제한을 둘 수 있습니다.

examples/advanced_diffusion_training/train_dreambooth_lora_flux_advanced.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
# "Jinja2",
2626
# "peft>=0.11.1",
2727
# "sentencepiece",
28+
# "torchvision",
29+
# "datasets",
30+
# "bitsandbytes",
31+
# "prodigyopt",
2832
# ]
2933
# ///
3034

examples/dreambooth/train_dreambooth_lora_flux.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
# "Jinja2",
2626
# "peft>=0.11.1",
2727
# "sentencepiece",
28+
# "torchvision",
29+
# "datasets",
30+
# "bitsandbytes",
31+
# "prodigyopt",
2832
# ]
2933
# ///
3034

examples/dreambooth/train_dreambooth_lora_flux_kontext.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,24 @@
1414
# See the License for the specific language governing permissions and
1515
# limitations under the License.
1616

17+
# /// script
18+
# dependencies = [
19+
# "diffusers @ git+https://github.com/huggingface/diffusers.git",
20+
# "torch>=2.0.0",
21+
# "accelerate>=0.31.0",
22+
# "transformers>=4.41.2",
23+
# "ftfy",
24+
# "tensorboard",
25+
# "Jinja2",
26+
# "peft>=0.11.1",
27+
# "sentencepiece",
28+
# "torchvision",
29+
# "datasets",
30+
# "bitsandbytes",
31+
# "prodigyopt",
32+
# ]
33+
# ///
34+
1735
import argparse
1836
import copy
1937
import itertools

examples/dreambooth/train_dreambooth_lora_qwen_image.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,24 @@
1313
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1414
# See the License for the specific language governing permissions and
1515

16+
# /// script
17+
# dependencies = [
18+
# "diffusers @ git+https://github.com/huggingface/diffusers.git",
19+
# "torch>=2.0.0",
20+
# "accelerate>=0.31.0",
21+
# "transformers>=4.41.2",
22+
# "ftfy",
23+
# "tensorboard",
24+
# "Jinja2",
25+
# "peft>=0.11.1",
26+
# "sentencepiece",
27+
# "torchvision",
28+
# "datasets",
29+
# "bitsandbytes",
30+
# "prodigyopt",
31+
# ]
32+
# ///
33+
1634
import argparse
1735
import copy
1836
import itertools
@@ -1320,7 +1338,7 @@ def compute_text_embeddings(prompt, text_encoding_pipeline):
13201338
batch["pixel_values"] = batch["pixel_values"].to(
13211339
accelerator.device, non_blocking=True, dtype=vae.dtype
13221340
)
1323-
latents_cache.append(vae.encode(batch["pixel_values"]).latent_dist)
1341+
latents_cache.append(vae.encode(batch["pixel_values"]).latent_dist)
13241342
if train_dataset.custom_instance_prompts:
13251343
with offload_models(text_encoding_pipeline, device=accelerator.device, offload=args.offload):
13261344
prompt_embeds, prompt_embeds_mask = compute_text_embeddings(

examples/dreambooth/train_dreambooth_lora_sana.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
# "Jinja2",
2626
# "peft>=0.14.0",
2727
# "sentencepiece",
28+
# "torchvision",
29+
# "datasets",
30+
# "bitsandbytes",
31+
# "prodigyopt",
2832
# ]
2933
# ///
3034

examples/text_to_image/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ datasets>=2.19.1
55
ftfy
66
tensorboard
77
Jinja2
8-
peft==0.7.0
8+
peft>=0.17.0

examples/text_to_image/requirements_sdxl.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ ftfy
55
tensorboard
66
Jinja2
77
datasets
8-
peft==0.7.0
8+
peft>=0.17.0

src/diffusers/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,8 @@
390390
"QwenImageAutoBlocks",
391391
"QwenImageEditAutoBlocks",
392392
"QwenImageEditModularPipeline",
393+
"QwenImageEditPlusAutoBlocks",
394+
"QwenImageEditPlusModularPipeline",
393395
"QwenImageModularPipeline",
394396
"StableDiffusionXLAutoBlocks",
395397
"StableDiffusionXLModularPipeline",
@@ -1052,6 +1054,8 @@
10521054
QwenImageAutoBlocks,
10531055
QwenImageEditAutoBlocks,
10541056
QwenImageEditModularPipeline,
1057+
QwenImageEditPlusAutoBlocks,
1058+
QwenImageEditPlusModularPipeline,
10551059
QwenImageModularPipeline,
10561060
StableDiffusionXLAutoBlocks,
10571061
StableDiffusionXLModularPipeline,

src/diffusers/models/transformers/transformer_ltx.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,9 @@ def forward(
353353
norm_hidden_states = self.norm1(hidden_states)
354354

355355
num_ada_params = self.scale_shift_table.shape[0]
356-
ada_values = self.scale_shift_table[None, None] + temb.reshape(batch_size, temb.size(1), num_ada_params, -1)
356+
ada_values = self.scale_shift_table[None, None].to(temb.device) + temb.reshape(
357+
batch_size, temb.size(1), num_ada_params, -1
358+
)
357359
shift_msa, scale_msa, gate_msa, shift_mlp, scale_mlp, gate_mlp = ada_values.unbind(dim=2)
358360
norm_hidden_states = norm_hidden_states * (1 + scale_msa) + shift_msa
359361

0 commit comments

Comments
 (0)