Buckets:
| # AutoModel | |
| [AutoModel](/docs/diffusers/main/ko/api/models/auto_model#diffusers.AutoModel) 클래스는 `config.json` 파일에서 올바른 모델 클래스(UNet, transformer, VAE)를 자동으로 감지하고 로드합니다. 특정 모델 클래스 이름을 미리 알 필요가 없습니다. 데이터 유형과 장치 배치를 지원하며, 다양한 모델 유형과 라이브러리에서 작동합니다. | |
| 아래 예시에서는 Diffusers에서 transformer를, Transformers에서 text encoder를 로드합니다. `config.json` 파일을 로드할 위치를 지정하려면 `subfolder` 매개변수를 사용하세요. | |
| ```py | |
| import torch | |
| from diffusers import AutoModel, DiffusionPipeline | |
| transformer = AutoModel.from_pretrained( | |
| "Qwen/Qwen-Image", subfolder="transformer", dtype=torch.bfloat16, device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| text_encoder = AutoModel.from_pretrained( | |
| "Qwen/Qwen-Image", subfolder="text_encoder", dtype=torch.bfloat16, device_map="cuda" | |
| ) | |
| ``` | |
| ## 커스텀 모델 | |
| [AutoModel](/docs/diffusers/main/ko/api/models/auto_model#diffusers.AutoModel) also loads models from the [Hub](https://huggingface.co/models) that aren't included in Diffusers. Set `trust_remote_code=True` in [AutoModel.from_pretrained()](/docs/diffusers/main/ko/api/models/auto_model#diffusers.AutoModel.from_pretrained) to load custom models. | |
| 커스텀 모델 저장소에는 모델 클래스가 포함된 Python 모듈과 `"AutoModel"`을 `"module_file.ClassName"`으로 매핑하는 `auto_map` 항목이 있는 `config.json`이 필요합니다. | |
| ``` | |
| custom/custom-transformer-model/ | |
| ├── config.json | |
| ├── my_model.py | |
| └── diffusion_pytorch_model.safetensors | |
| ``` | |
| `config.json`에는 커스텀 클래스를 가리키는 `auto_map` 필드가 포함되어 있습니다. | |
| ```json | |
| { | |
| "auto_map": { | |
| "AutoModel": "my_model.MyCustomModel" | |
| } | |
| } | |
| ``` | |
| 그 다음 `trust_remote_code=True`로 로드합니다. | |
| ```py | |
| import torch | |
| from diffusers import AutoModel | |
| transformer = AutoModel.from_pretrained( | |
| "custom/custom-transformer-model", trust_remote_code=True, dtype=torch.bfloat16, device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| ``` | |
| 실제 예시로, [Overworld/Waypoint-1-Small](https://huggingface.co/Overworld/Waypoint-1-Small/tree/main/transformer)은 `transformer` 하위 폴더의 여러 모듈에 걸쳐 사용자 정의 `WorldModel` 클래스를 호스팅합니다. | |
| ``` | |
| transformer/ | |
| ├── config.json # auto_map: "model.WorldModel" | |
| ├── model.py | |
| ├── attn.py | |
| ├── nn.py | |
| ├── cache.py | |
| ├── quantize.py | |
| ├── __init__.py | |
| └── diffusion_pytorch_model.safetensors | |
| ``` | |
| ```py | |
| import torch | |
| from diffusers import AutoModel | |
| transformer = AutoModel.from_pretrained( | |
| "Overworld/Waypoint-1-Small", subfolder="transformer", trust_remote_code=True, dtype=torch.bfloat16, device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| ``` | |
| 커스텀 모델이 [ModelMixin](/docs/diffusers/main/ko/api/models/overview#diffusers.ModelMixin) 클래스를 상속하면 [regional compilation](../optimization/fp16#regional-compilation) 및 [group offloading](../optimization/memory#group-offloading)과 같은 Diffusers 모델 클래스와 동일한 기능에 접근할 수 있습니다. | |
| > [!WARNING] | |
| > `trust_remote_code=True`를 사용할 때, 모델 소유자를 완전히 신뢰하지 않는 한 코드가 새로운 악성 코드로 업데이트되지 않았는지 확인하기 위해 [AutoModel.from_pretrained()](/docs/diffusers/main/ko/api/models/auto_model#diffusers.AutoModel.from_pretrained)의 `revision` 인수에 커밋 해시를 전달하는 것이 좋습니다. | |
| > | |
| > ```py | |
| > transformer = AutoModel.from_pretrained( | |
| > "Overworld/Waypoint-1-Small", subfolder="transformer", trust_remote_code=True, revision="a3d8cb2" | |
| > ) | |
| > ``` | |
| ## 커스텀 모델 저장 | |
| `register_for_auto_class()`를 사용하면 저장 시 `config.json`에 `auto_map` 항목이 자동으로 추가됩니다. 이를 통해 설정 파일을 수동으로 편집할 필요가 없습니다. | |
| ```py | |
| # my_model.py | |
| from diffusers import ModelMixin, ConfigMixin | |
| class MyCustomModel(ModelMixin, ConfigMixin): | |
| ... | |
| MyCustomModel.register_for_auto_class("AutoModel") | |
| model = MyCustomModel(...) | |
| model.save_pretrained("./my_model") | |
| ``` | |
| 저장된 `config.json`에는 `auto_map` 필드가 포함됩니다. | |
| ```json | |
| { | |
| "auto_map": { | |
| "AutoModel": "my_model.MyCustomModel" | |
| } | |
| } | |
| ``` | |
| ## 다음 단계 | |
| [커뮤니티 컴포넌트](../using-diffusers/custom_pipeline_overview#community-components) 가이드에서 커스텀 모델 구현에 대해 자세히 알아보세요. | |
Xet Storage Details
- Size:
- 4.62 kB
- Xet hash:
- f22a40f2ed3ccc10538490c72a9a15aeb03874f7649aeca70a4040827054d1a8
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.