Buckets:
| # Diffusers ð§šãžã®è²¢ç®æ¹æ³ | |
| > [!TIP] | |
| > AIãšãŒãžã§ã³ãã䜿çšããŠã³ã³ããªãã¥ãŒãããå Žåã¯ãåœç€Ÿã®æåŸ ãšã¬ã€ãã©ã€ã³ãèšèŒãã[AIæ¯æŽããã³ãšãŒãžã§ã³ãã«ããã³ã³ããªãã¥ãŒã](#ai-assisted-and-agentic-contributions)ã»ã¯ã·ã§ã³ãå¿ ããèªã¿ãã ããã | |
| ãªãŒãã³ãœãŒã¹ã³ãã¥ããã£ããã®è²¢ç®ãå¿ããæè¿ããŠããŸãïŒã©ãªãã§ãåå ã§ããã³ãŒãã«éãããããã圢ã®åå ãéå®ãããæè¬ãããŠããŸãã質åãžã®åçãä»è ãžã®ãµããŒããã³ãã¥ããã£ãšã®ã€ãªããã¥ãããããã¥ã¡ã³ãã®æ¹åãªã©ããã¹ãŠãã³ãã¥ããã£ã«ãšã£ãŠéåžžã«äŸ¡å€ã®ãããã®ã§ãããã²åæ°ãåºããŠããèªèº«ã®ããŒã¹ã§é¢ãã£ãŠã¿ãŠãã ããïŒ | |
| ãŸãã¯ãç§ãã¡ã®ãããªãã¯ãªDiscordãã£ã³ãã«ã§ðãšæšæ¶ããããšããå§ãããŸããæ¡æ£ã¢ãã«ã®ææ°ãã¬ã³ãã«ã€ããŠè°è«ãããã質åãããããå人ãããžã§ã¯ããæ«é²ããããã³ã³ããªãã¥ãŒã·ã§ã³ã§äºãã«å©ãåã£ããããããã¯ãã ãªã©ãã¯ã¹ããŠéããããããŠããŸãâã | |
| è²¢ç®ã®åœ¢ãåãããç§ãã¡ã¯ãªãŒãã³ã§ãæè¿ã®æ°æã¡ããããæãããã®ããã³ãã¥ããã£ã®äžå¡ã§ããããšãç®æããŠããŸãã[è¡åèŠç¯](https://github.com/huggingface/diffusers/blob/main/CODE_OF_CONDUCT.md)ããèªã¿ããã ããããåãã®éã«ãããå°éããŠãã ããããŸããç§ãã¡ã®ãããžã§ã¯ããå°ã[å«çã¬ã€ãã©ã€ã³](./ethical_guidelines)ã«ã粟éããåãéææ§ãšè²¬ä»»ã®ååã«åŸã£ãŠããã ãããšããå§ãããŸãã | |
| ã³ãã¥ããã£ããã®ãã£ãŒãããã¯ãéåžžã«éèŠããŠããŸããã©ã€ãã©ãªã®æ¹åã«åœ¹ç«ã€ãšèãããã£ãŒãããã¯ããæã¡ã®å Žåã¯ãé æ ®ãªãã声ãããã ããããã¹ãŠã®ã¡ãã»ãŒãžãã³ã¡ã³ããIssueãPull Request (PR) ã¯ç¢ºèªãããæ€èšãããŸãã | |
| ## æŠèŠ | |
| issuesãdiscussionsã§ã®è³ªåãžã®åçãããã³ã¢ã©ã€ãã©ãªãžã®æ°ããæ¡æ£ã¢ãã«ã®è¿œå ãŸã§ãããŸããŸãªæ¹æ³ã§è²¢ç®ã§ããŸãã | |
| 以äžã§ã¯ãæéçã³ãããã¡ã³ãã®å°ãªãé ã«ãè²¢ç®ã®ç°ãªãæ¹æ³ã«ã€ããŠæŠèŠã説æããŸãããããã®æ¹æ³ãã³ãã¥ããã£ã«ãšã£ãŠäŸ¡å€ã®ãããã®ã§ãã | |
| * 1. [GitHub Discussions](https://github.com/huggingface/diffusers/discussions)ãŸãã¯[Discord](https://discord.gg/G7tWnz98XR)ã§è³ªåãåçãè¡ãããšã | |
| * 2. [GitHub Issues ã¿ã](https://github.com/huggingface/diffusers/issues/new/choose)ã§æ°ããåé¡ãæçš¿ããããšã | |
| * 3. [GitHub Issues ã¿ã](https://github.com/huggingface/diffusers/issues)ã®èª²é¡ãžã®åçã | |
| * 4. [ãã¡ã](https://github.com/huggingface/diffusers/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)ã§ã"Good first issue"ã©ãã«ãä»ããç°¡åãªåé¡ãä¿®æ£ããŠãã ããã | |
| * 5. [ããã¥ã¡ã³ã](https://github.com/huggingface/diffusers/tree/main/docs/source)ã«è²¢ç®ããã | |
| * 6. [Modular Diffusers](../modular_diffusers/overview) ã䜿çšããŠãHub ã«ãã€ãã©ã€ã³ãŸãã¯ã¢ãã«ããªã¢ãŒãã³ãŒããšããŠå ¬éããŸãã | |
| * 7. [examples](https://github.com/huggingface/diffusers/tree/main/examples)ã«è²¢ç®ããã | |
| * 8. ãGood second issueãã©ãã«ãä»ãããããé£ããåé¡ãä¿®æ£ããŠãã ããã詳现ã¯[ãã¡ã](https://github.com/huggingface/diffusers/issues?q=is%3Aopen+is%3Aissue+label%3A%22Good+second+issue%22)ãåç §ããŠãã ããã | |
| * 9. [Diffusers MVPããã°ã©ã ](https://github.com/huggingface/diffusers/issues/12635)ãã課é¡ãåŒãåããŠãã ããã | |
| * 10. ã©ã€ãã©ãªã«æ°ãããã€ãã©ã€ã³ãã¢ãã«ããŸãã¯ã¹ã±ãžã¥ãŒã©ãŒã远å ããŸãããã®è²¢ç®ã«ã€ããŠã¯ãéåžžãã¢ãã«ã®èè ã®æ¹ã ãšçŽæ¥é£æºããŠäœæ¥ãé²ããŸããã³ãã¥ããã£ã®è²¢ç®è ã®æ¹ã¯ã代ããã«HubïŒ6ïŒããå§ããŠãã ããããªãŒãã³ãª["New Pipeline/Model"](https://github.com/huggingface/diffusers/issues?q=is%3Aopen+is%3Aissue+label%3A%22New+pipeline%2Fmodel%22)ããã³["New scheduler"](https://github.com/huggingface/diffusers/issues?q=is%3Aopen+is%3Aissue+label%3A%22New+scheduler%22)ã®issueã確èªãããŸã[Design Philosophy](./philosophy)ããèªã¿ãã ããã | |
| åè¿°ããããã«ã**ãã¹ãŠã®è²¢ç®ã¯ã³ãã¥ããã£ã«ãšã£ãŠäŸ¡å€ã®ãããã®ã§ã**ã以äžã§ã¯ãåè²¢ç®ã«ã€ããŠãã詳ãã説æããŸãã | |
| è²¢ç®4ãã10ã«ã€ããŠã¯ãHubäžã«ååšãã6ãé€ããPRãéãå¿ èŠããããŸãããã®è©³çŽ°ãªæé ã¯ã[ãã«ãªã¯ãšã¹ãã®äœæ](#how-to-open-a-pr)ã§èª¬æãããŠããŸãã | |
| ### 1. GitHub Discussions ãŸã㯠Discord ã§è³ªåã»åçãè¡ã | |
| Diffusersã©ã€ãã©ãªã«é¢ããã質åããæèŠã¯ã[GitHub Discussions](https://github.com/huggingface/diffusers/discussions)ãŸãã¯[Discord](https://discord.gg/G7tWnz98XR)ã§åãä»ããŠããŸãã察象ãšãªãã質åããæèŠã«ã¯ã以äžãå«ãŸããŸãïŒãã ãããããã«éå®ãããŸããïŒïŒ | |
| - ç¥èã®å ±æãç®çãšããåŠç¿ãŸãã¯æšè«å®éšã®å ±å | |
| - å人ãããžã§ã¯ãã®çŽ¹ä» | |
| - éå ¬åŒãªãã¬ãŒãã³ã°äŸã«é¢ãã質å | |
| - ãããžã§ã¯ãææ¡ | |
| - äžè¬çãªãã£ãŒããã㯠| |
| - è«æã®æŠèŠ | |
| - Diffusers ã©ã€ãã©ãªãåºç€ãšããŠæ§ç¯ããå人ãããžã§ã¯ãã«é¢ãããã«ãã®äŸé Œ | |
| - äžè¬çãªè³ªå | |
| - æ¡æ£ã¢ãã«ã«é¢ããå«ççãªåé¡ | |
| - ... | |
| GitHub Discussions ã Discord ã§è³ªåããããã¹ãŠã®å 容ã¯ãã³ãã¥ããã£ãç¥èãå ¬éããŠå ±æããããšãç©æ¥µçã«ä¿ããå°æ¥åãçåãæã€åå¿è ã«ãšã£ãŠéåžžã«åœ¹ç«ã€å¯èœæ§ããããŸãããããããã«ãæ°ã«ãªã質åãã©ãã©ãæçš¿ããŠãã ãããåã粟ç¥ã§ããããã質åã«çããããšã¯ãç¥èãå ¬éããŠææžåãããã¹ãŠã®äººãåŠã¹ãããã«ããè¡çºã§ãããã³ãã¥ããã£ã«ãšã£ãŠéåžžã«å€§ããªå©ããšãªããŸãã | |
| **ãçæãã ãã**ã質åãåçã«ãããåŽåãå€ãã»ã©ãå ¬éãããŠããç¥èã®å質ã¯é«ããªããŸããåæ§ã«ãé©åã«èšå®ãããé©åã«åçããã質åã¯ã誰ã§ãã¢ã¯ã»ã¹ã§ããé«å質ãªãã¬ããžããŒã¿ããŒã¹ãæ§ç¯ããŸãããäžé©åãªè³ªåãåçã¯ãå ¬éãã¬ããžããŒã¿ããŒã¹å šäœã®å質ãäœäžãããŸããèŠããã«ãé«å質ãªè³ªåãåçã¯ã*æ£ç¢º*ã§ã*ç°¡æœ*ã§ã*é¢é£æ§ããã*ã*çè§£ãããã*ã*ã¢ã¯ã»ã¹ãããã*ã*é©åã«æžåŒèšå®ã»èšå®ãããŠãã*ãã®ã§ãã詳现ã«ã€ããŠã¯ã[è¯ã issue ã®æžãæ¹](#how-to-write-a-good-issue)ã»ã¯ã·ã§ã³ãã芧ãã ããã | |
| **ãã£ã³ãã«ã«é¢ããæ³šæ**: [*GitHub Discussions*](https://github.com/huggingface/diffusers/discussions) ã¯æ€çŽ¢ãšã³ãžã³ã«ã€ã³ããã¯ã¹ä»ããããåã¹ã¬ããã«ãªã³ã¯ã貌ãããšãã§ãããããããã«æçš¿ããã質åãšåçã¯ãåãåé¡ãæ±ããæ¬¡ã®äººã«ãçºèŠãããããªããŸããäžæ¹ã*Discord* ã¯ãã£ããã®ãããªåœ¢åŒã§ãçŽ æ©ãããåããä¿ããŸããDiscord ã§ã¯è³ªåãžã®åçãåŸããããŸã§ã®æéã¯çããªãå¯èœæ§ãé«ããã®ã®ãæéãçµã€ãšè³ªåãèŠããªããªãã以åã«æçš¿ãããæ å ±ãèŠã€ããã®ã¯ã¯ããã«å°é£ã§ãããã®ãããé·æçã«æ®ãããšãç®çãšãã質åãšåçã«ã¯ GitHub Discussions ã®å©çšãæšå¥šããŸããDiscord ã§ã®äŒè©±ããè峿·±ãçµè«ãåºãå Žåã¯ãå°æ¥ã®èªè ãèŠã€ããããããããã®çµæããã£ã¹ã«ãã·ã§ã³ãšããŠæçš¿ããŠãã ããã | |
| ### 2. GitHubã®issuesã¿ãã§æ°ããissueãéã | |
| ð§š Diffusers ã©ã€ãã©ãªã¯ãåé¡ã«ééãããŠãŒã¶ãŒã®çæ§ããã®å ±åã®ãããã§ãå ç¢ãã€ä¿¡é Œæ§ã®é«ããã®ãšãªã£ãŠããŸãããã®ãããåé¡ãå ±åããŠãã ãã£ãããšã«æè¬ããããŸãã | |
| GitHub ã® issue ã¯ãDiffusers ã©ã€ãã©ãªã«çŽæ¥é¢é£ããæè¡çãªè³ªåããã°å ±åãæ©èœèŠæããŸãã¯ã©ã€ãã©ãªèšèšã«é¢ãããã£ãŒãããã¯ã«ã®ã¿äœ¿çšããŠãã ããã | |
| In a nutshell, this means that everything that is **not** related to the **code of the Diffusers library** (including the documentation) should **not** be asked as an issue, but rather on [GitHub Discussions](https://github.com/huggingface/diffusers/discussions) or [Discord](https://discord.gg/G7tWnz98XR). | |
| **æ°ããissueãéãéã¯ã以äžã®ã¬ã€ãã©ã€ã³ããæ€èšãã ãã**ïŒ | |
| - Issues ã®æ€çŽ¢ããŒã䜿çšããŠãGitHub ã§åæ§ã®è³ªåãæ¢ã«ååšããªãã確èªããŠãã ããã | |
| - æ°ããåé¡ãå¥ã®ïŒé¢é£ããïŒåé¡ã«å ±åããªãã§ãã ãããå¥ã®åé¡ã匷ãé¢é£ããŠããå Žåã¯ã | |
| ããã§ãæ°ãã issue ãäœæããé¢é£ãã issue ã«ãªã³ã¯ããŠãã ããã | |
| - åé¡ãè±èªã§æžãããŠããããšã確èªããŠãã ããã | |
| - åé¡ãææ°ã® Diffusers ããŒãžã§ã³ãžã®æŽæ°ã«ãã£ãŠè§£æ±ºãããå¯èœæ§ãããã確èªããŠãã ãããåé¡ãæçš¿ããåã«ã`python -c "import diffusers; print(diffusers.__version__)"` ã®åºåãææ°ã® Diffusers ããŒãžã§ã³ãšäžèŽãããããããæ°ããããšã確èªããŠãã ããã | |
| - æ°ããIssueãéãéã«è²»ããæéã倧ããã»ã©ãåŸãããåçã®è³ªã¯é«ããªããDiffusersã®Issueå šäœã®å質ãåäžããŸãã | |
| æ°ããåé¡ã«ã¯ãéåžžã以äžã®å 容ãå«ãŸããŸãã | |
| #### 2.1. åçŸå¯èœã§æå°éã®ãã°ã¬ããŒã | |
| ãã°ã¬ããŒãã«ã¯ãåçŸå¯èœãªã³ãŒãã¹ãããããå¿ ãå«ããã§ããã ãæå°éãã€ç°¡æœã«ããŠãã ãããå ·äœçã«ã¯ã以äžã®ããšãæå³ããŸãã | |
| - ãã°ãã§ããã ãçµã蟌ãã§ãã ããã**ã³ãŒããã¡ã€ã«å šäœããã®ãŸãŸè²Œãä»ããã®ã¯é¿ããŠãã ãã**ã | |
| - ã³ãŒããæŽåœ¢ããŸãã | |
| - Diffusers ã«äŸåããå€éšã©ã€ãã©ãªãé€ããå€éšã©ã€ãã©ãªãå«ããªãã§ãã ããã | |
| - **åžžã«**ãç°å¢ã«é¢ããå¿ èŠãªæ å ±ããã¹ãŠæäŸããŠãã ããããã®ããã«ãã·ã§ã«ã§ `diffusers-cli env` ãå®è¡ãã衚瀺ãããæ å ±ãã³ããŒããŠåé¡ã«è²Œãä»ããŠãã ããã | |
| - åé¡ã説æããŠãã ãããèªè ãåé¡ã®å 容ããããåé¡ã§ããçç±ãææ¡ã§ããŠããªãå Žåã解決ããããšã¯ã§ããŸããã | |
| - **åžžã«**ãèªã¿æãæå°éã®æéã§åé¡ãåçŸã§ããããšã確èªããŠãã ãããã³ãŒãã¹ãããããäžè¶³ããŠããã©ã€ãã©ãªãæªå®çŸ©ã®å€æ°ã®ããã«å®è¡ã§ããªãå Žåãèªã¿æã¯ããªããå©ããããšãã§ããŸãããåçŸå¯èœãªã³ãŒãã¹ããããã¯ãã§ããã ãæå°éã«ä¿ã¡ãã·ã³ãã«ãª Python ã·ã§ã«ã«ã³ããŒïŒããŒã¹ãããŠå®è¡ã§ããããšã確èªããŠãã ããã | |
| - åé¡ã®åçŸã«ã¢ãã«ããã³/ãŸãã¯ããŒã¿ã»ãããå¿ èŠãªå Žåã¯ãèªè ããã®ã¢ãã«ãããŒã¿ã»ããã«ã¢ã¯ã»ã¹ã§ããããšã確èªããŠãã ãããã¢ãã«ãããŒã¿ã»ããã[Hub](https://huggingface.co)ã«ã¢ããããŒãããã°ãç°¡åã«ããŠã³ããŒãã§ããããã«ãªããŸããåé¡ã®åçŸãã§ããã ã容æã«ãããããã¢ãã«ãšããŒã¿ã»ããã¯ã§ããã ãå°ããä¿ã£ãŠãã ããã | |
| 詳现ã«ã€ããŠã¯ã[è¯ã issue ã®æžãæ¹](#how-to-write-a-good-issue)ã»ã¯ã·ã§ã³ãã芧ãã ããã | |
| ãã°ã¬ããŒãã¯[ãã¡ã](https://github.com/huggingface/diffusers/issues/new?assignees=&labels=bug&projects=&template=bug-report.yml)ããéãããšãã§ããŸãã | |
| #### 2.2. æ©èœã®èŠæ | |
| äžçæ°Žæºã®æ©èœãªã¯ãšã¹ãã¯ã以äžã®ç¹ã«å¯Ÿå¿ããŠããŸãã | |
| 1. ãŸãåæ©ã«ã€ããŠ: | |
| * ã©ã€ãã©ãªã«é¢ããåé¡ãäžæºã«é¢é£ããŠããŸããïŒè©²åœããå Žåã¯ã説æããŠãã ããã | |
| ãã®çç±ã§ããåé¡ã瀺ãã³ãŒãã¹ãããããæäŸããã®ãæåã§ãã | |
| * ãããžã§ã¯ãã«å¿ èŠãªãã®ã«é¢é£ããŠããŸããïŒãã²ãèãããã ããã | |
| ãã®ããšã«ã€ããŠã§ã! | |
| * ããªããæãããŠãããã³ãã¥ããã£ã«åœ¹ç«ã€ãšèãããã®ã¯ãããŸãã? | |
| çŽ æŽãããã§ããïŒãããã©ã®ãããªåé¡ã解決ããã®ãæããŠãã ããã | |
| 2. ãã®æ©èœã«ã€ããŠèª¬æãã*å®å šãªæ®µèœ*ãäœæããŸãã | |
| 3. å°æ¥ã®äœ¿ç𿹿³ã瀺ã**ã³ãŒãã¹ãããã**ãæäŸããŸãã | |
| 4. è«æã«é¢é£ããå Žåã¯ããªã³ã¯ãæ·»ä»ããŠãã ããã | |
| 5. 圹ç«ã€ãšæãããè¿œå æ å ±ïŒå³é¢ãã¹ã¯ãªãŒã³ã·ã§ãããªã©ïŒãæ·»ä»ããŠãã ããã | |
| æ©èœã®ãªã¯ãšã¹ãã¯[ãã¡ã](https://github.com/huggingface/diffusers/issues/new?assignees=&labels=&template=feature_request.md&title=)ããéãããšãã§ããŸãã | |
| #### 2.3 ãã£ãŒããã㯠| |
| ã©ã€ãã©ãªã®èšèšã«é¢ãããã£ãŒãããã¯ãããã³ãããè¯ã/è¯ããªãçç±ã«ã€ããŠã®æ å ±ã¯ãã³ã¢ã¡ã³ãããŒããŠãŒã¶ãŒãã¬ã³ããªãŒãªã©ã€ãã©ãªãæ§ç¯ããäžã§éåžžã«åœ¹ç«ã¡ãŸããçŸåšã®èšèšææ³ã®èæ¯ã«ããå²åŠãçè§£ããã«ã¯ã[ãã¡ã](./philosophy)ãã芧ãã ãããç¹å®ã®èšèšå€æãçŸåšã®èšèšææ³ãšåèŽããŠããªããšæããå Žåã¯ããã®çç±ãšãã©ã®ããã«å€æŽãã¹ããã説æããŠãã ãããç¹å®ã®èšèšå€æãèšèšææ³ã«å³å¯ã«åŸããããŠãããçµæãšããŠãŠãŒã¹ã±ãŒã¹ãå¶éãããŠããå Žåã¯ããã®çç±ãšãã©ã®ããã«å€æŽãã¹ããã説æããŠãã ãããç¹å®ã®èšèšå€æãéåžžã«æçšã§ãããšæããå Žåãããã®æšãã¡ã¢ãšããŠæ®ããŠãã ãããããã¯å°æ¥ã®èšèšå€æã«ãšã£ãŠåªãããã£ãŒãããã¯ãšãªããŸãã | |
| ãã£ãŒãããã¯ã«é¢ããåé¡ã[ãã¡ã](https://github.com/huggingface/diffusers/issues/new?assignees=&labels=&template=feedback.md&title=)ã§éãããšãã§ããŸãã | |
| #### 2.4 æè¡çãªè³ªå | |
| æè¡çãªè³ªåã¯ãäž»ã«ã©ã€ãã©ãªã®ç¹å®ã®ã³ãŒãããªããã®ããã«æžãããŠããã®ãããããã¯ç¹å®ã®ã³ãŒãéšåãäœãããŠããã®ãã«é¢ãããã®ã§ãã該åœããã³ãŒããžã®ãªã³ã¯ãå¿ ãæ·»ãããã®ã³ãŒãéšåããªãçè§£ãã«ããã®ãã«ã€ããŠè©³çްãèšèŒããŠãã ããã | |
| æè¡çãªè³ªåã«ã€ããŠã¯ã[ãã¡ã](https://github.com/huggingface/diffusers/issues/new?assignees=&labels=bug&template=bug-report.yml)ã§Issueãäœæã§ããŸãã | |
| #### 2.5 æ°ããã¢ãã«ãã¹ã±ãžã¥ãŒã©ãŒããŸãã¯ãã€ãã©ã€ã³ã®è¿œå ã«é¢ããææ¡ | |
| Diffusionã¢ãã«ã®ã³ãã¥ããã£ã§ãDiffusersã©ã€ãã©ãªã«è¿œå ããŠã»ããæ°ããã¢ãã«ããã€ãã©ã€ã³ããŸãã¯ã¹ã±ãžã¥ãŒã©ãŒããªãªãŒã¹ãããå Žåã¯ã以äžã®æ å ±ããæäŸãã ããã | |
| * æ¡æ£ãã€ãã©ã€ã³ãã¢ãã«ããŸãã¯ã¹ã±ãžã¥ãŒã©ãŒã®ç°¡åãªèª¬æãšãè«æãŸãã¯å ¬éãªãªãŒã¹ãžã®ãªã³ã¯ã | |
| * ãã®ãªãŒãã³ãœãŒã¹å®è£ ãžã®ãªã³ã¯ã | |
| * å©çšå¯èœãªå Žåãã¢ãã«ã®éã¿ãžã®ãªã³ã¯ã | |
| ãŸããã³ã³ããŒãã³ãïŒã¢ãã«ãã¹ã±ãžã¥ãŒã©ããã€ãã©ã€ã³ãªã©ïŒã®å ã®èè ãç¹å®ã§ããå Žåã¯ãGitHub ãã³ãã«ã§ã¿ã°ä»ãããããšãå¿ããªãã§ãã ããã | |
| ã¢ãã«ãDiffusersã«è¿œå ãããå Žåã¯ã[Hubã«ãã€ãã©ã€ã³ãŸãã¯ã¢ãã«ãå ¬éãã](#6-publish-a-pipeline-or-model-on-the-hub)ããã³[ãã€ãã©ã€ã³ãã¢ãã«ãã¹ã±ãžã¥ãŒã©ãŒã®è¿œå ](#10-adding-pipelines-models-schedulers)ãåç §ããŠãã ããã | |
| ã¢ãã«/ãã€ãã©ã€ã³/ã¹ã±ãžã¥ãŒã©ãŒã®ãªã¯ãšã¹ãã¯ã[ãã¡ã](https://github.com/huggingface/diffusers/issues/new?assignees=&labels=New+model%2Fpipeline%2Fscheduler&template=new-model-addition.yml)ããéãããšãã§ããŸãã | |
| ### 3. GitHub ã® issues ã¿ãã§åé¡ãåçãã | |
| GitHubäžã®Issueãžã®åçã«ã¯Diffusersã«é¢ããããçšåºŠã®æè¡çãªç¥èãå¿ èŠã«ãªãå ŽåããããŸãããåçã100%æ£ãããšç¢ºä¿¡ãæãŠãªãå Žåã§ãããã²ææŠããŠã¿ãŠãã ãããIssueã«å¯ŸããŠé«å質ãªåçãããããã®ãã³ããããã€ãã玹ä»ããŸãã | |
| - ã§ããã ãç°¡æœãã€æå°éã«ããŠãã ããã | |
| - ãããã¯ã«çãŸãããšãåé¡ãžã®åçã¯ããã®åé¡èªäœã«ã®ã¿é¢ããã¹ãã§ãã | |
| - 䞻匵ãè£ä»ããããŸãã¯æ¯æããã³ãŒããè«æããã®ä»ã®ãœãŒã¹ãžã®ãªã³ã¯ãæç€ºããŠãã ããã | |
| - ã³ãŒãã§åçããŠãã ãããåé¡ã®è§£æ±ºçãåçŽãªã³ãŒãã¹ããããã§ç€ºããå ŽåããŸãã¯åé¡ã®è§£æ±ºæ¹æ³ã瀺ããå Žåã¯ãå®å šã«åçŸå¯èœãªã³ãŒãã¹ãããããæäŸããŠãã ããã | |
| ãŸããå€ãã®åé¡ã¯åã«ãªããããã¯ã§ãã£ãããä»ã®åé¡ã®éè€ã§ãã£ãããé¢é£æ§ããªãã£ããããŸãããã®ãããªåé¡ã«å¯ŸããŠåçããåé¡ã®äœæè ã«ããæ£ç¢ºãªèšè¿°ãä¿ããããéè€ããåé¡ãžã®ãªã³ã¯ãæäŸãããã[GitHub Discussions](https://github.com/huggingface/diffusers/discussions)ã[Discord](https://discord.gg/G7tWnz98XR)ãžèªå°ãããããããšã¯ãã¡ã³ãããŒã«ãšã£ãŠéåžžã«å€§ããªå©ããšãªããŸãã | |
| çºè¡ããããã°ã¬ããŒããæ£ããããœãŒã¹ã³ãŒãã®ä¿®æ£ãå¿ èŠã§ãããšç¢ºèªã§ããå Žåã¯ã次ã®ã»ã¯ã·ã§ã³ãã芧ãã ããã | |
| [6](#6-publish-a-pipeline-or-model-on-the-hub)ãé€ããã¹ãŠã®è²¢ç®ã«ã¯ãPRãéãå¿ èŠããããŸãã[ãã«ãªã¯ãšã¹ããéã](https://github.com/huggingface/diffusers/pull/15179/changes#how-to-open-a-pr)ã»ã¯ã·ã§ã³ã§ããã®æ¹æ³ã«ã€ããŠèª¬æããŠããŸãã | |
| ### 4. ãGood first issueãã®ä¿®æ£ | |
| *Good first issues*ã«ã¯ã[Good first issue](https://github.com/huggingface/diffusers/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)ã©ãã«ãä»äžãããŠããŸããéåžžããããã®issueã«ã¯ãä¿®æ£ã容æã«ããããã«ã解決çã®æŠèŠããã§ã«èª¬æãããŠããŸããissueãã¯ããŒãºãããŠããããä¿®æ£ã«ææŠãããå Žåã¯ããI would like to try this issue.ããšããã¡ãã»ãŒãžãæ®ãã ãã§æ§ããŸãããéåžžã以äžã®3ã€ã®ã·ããªãªããããŸãã | |
| - a.) åé¡ã®èª¬æã«ä¿®æ£æ¹æ³ããã§ã«ææ¡ãããŠããŸãããã®å Žåããã®è§£æ±ºçã劥åœã ãšå€æã§ããå Žåã¯ãä¿®æ£ã®ããã® PR ãŸãã¯ãã©ãã PR ãäœæã§ããŸãã | |
| - b.) åé¡ã®èª¬æã«ä¿®æ£ææ¡ãå«ãŸããŠããªãå Žåããã®åé¡ãžã®ã³ã¡ã³ãã§èªåã§ä¿®æ£ãææ¡ããŠãã ãããã¢ãããŒãã説æããæ°æã§ååã§ããPR ãäœæããåã«ãDiffusers ããŒã ã®èª°ããããã確èªããã®ãåŸ ã£ãŠãã ããã | |
| - c.) ãã§ã«ãã®åé¡ãä¿®æ£ããããã®ãªãŒãã³ãªPRãååšããããåé¡ã¯ãŸã ã¯ããŒãºãããŠããªããPRãstaleïŒæŸçœ®ç¶æ ïŒã«ãªã£ãŠããå Žåãæ°ããPRãéããŠããã®staleãªPRãžã®ãªã³ã¯ã貌ãã ãã§ãããå ã®ã³ã³ããªãã¥ãŒã¿ãŒãåé¡ãä¿®æ£ããããšããŠããããçªç¶æéãåããªããªã£ãããã«ãPRãstaleã«ãªãããšã¯ãããããããã¯ãªãŒãã³ãœãŒã¹ã§ã¯ããããããšã§ãããèªç¶ãªããšã§ããããã®å Žåãæ¢åã®PRã®ç¥èŠã掻ãããŠåææŠããŠããããšãã³ãã¥ããã£ã¯éåžžã«åã¶ã ããããã§ã«PRãååšãããã€ã¢ã¯ãã£ããªç¶æ ã§ããã°ãææ¡ãè¡ããPRãã¬ãã¥ãŒããããããã¯ãã®PRãžã®è²¢ç®ãèš±å¯ããŠãããããå°ãããªã©ãèè ãæ¯æŽã§ããã | |
| ### 5. ããã¥ã¡ã³ããžã®è²¢ç® | |
| åªããã©ã€ãã©ãªã¯**åžžã«**åªããããã¥ã¡ã³ããåããŠããŸã! å ¬åŒããã¥ã¡ã³ãã¯ãã©ã€ãã©ãªã®æ°èŠãŠãŒã¶ãŒã«ãšã£ãŠæåã®æ¥ç¹ã®äžã€ãšãªãããšãå€ãããã®ããããã¥ã¡ã³ããžã®è²¢ç®ã¯**éåžžã«äŸ¡å€ã®ããè²¢ç®**ã§ãã | |
| ã©ã€ãã©ãªãžã®è²¢ç®ã«ã¯ãããŸããŸãªåœ¢ããããŸãã | |
| - ã¹ãã«ãã¹ãææ³ãšã©ãŒã®ä¿®æ£ã | |
| - ããã¥ã¡ã³ãæååã®èª€ã£ãæžåŒãä¿®æ£ããŠãã ãããå ¬åŒããã¥ã¡ã³ãã®è¡šç€ºãããããå Žåãããªã³ã¯ãå£ããŠããå Žåãæéãå²ããŠä¿®æ£ããŠããã ããã°å¹žãã§ãã | |
| - docstringã®å ¥åãŸãã¯åºåãã³ãœã«ã®åœ¢ç¶ã次å ãä¿®æ£ããŸãã | |
| - çè§£ãã«ããããŸãã¯èª€ã£ãããã¥ã¡ã³ããæç¢ºã«ããŸãã | |
| - å€ãã³ãŒãã®äŸãæŽæ°ããŸãã | |
| - ããã¥ã¡ã³ããå¥ã®èšèªã«ç¿»èš³ããã | |
| [Diffusersã®å ¬åŒããã¥ã¡ã³ãããŒãž](../index)ã«è¡šç€ºãããŠããå 容ã¯ãã¹ãŠå ¬åŒããã¥ã¡ã³ãã®äžéšã§ãããããããã®[ããã¥ã¡ã³ããœãŒã¹](https://github.com/huggingface/diffusers/tree/main/docs/source)ã§ä¿®æ£ã調æŽãè¡ãããšãã§ããŸãã | |
| ããã¥ã¡ã³ãã®ããŒã«ã«ã§ã®å€æŽãæ€èšŒããæ¹æ³ã«ã€ããŠã¯ã[ãã®ããŒãž](https://github.com/huggingface/diffusers/tree/main/docs)ãã芧ãã ããã | |
| ### 6. Hubã«ãã€ãã©ã€ã³ãŸãã¯ã¢ãã«ãå ¬éãã | |
| [Modular Diffusers](../modular_diffusers/overview)ã䜿çšãããšããã€ãã©ã€ã³ããªã¢ãŒãã³ãŒããšããŠHubã®ãªããžããªã«é 眮ã§ããŸããDiffusersã®ãªãªãŒã¹ãåŸ ããã«ã`from_pretrained(..., trust_remote_code=True)`ã§èª°ã§ãèªã¿èŸŒãããšãã§ããŸããæ°ãããã€ãã©ã€ã³ãã¢ãã«ãã³ãã¥ããã£ã«æäŸããè²¢ç®è ã®æ¹ã¯ãããããå§ããŠãã ããããã€ãã©ã€ã³ãå ¬éããã«ã¯ã«ã¹ã¿ã ãããã¯ããã¢ãã«ãå ¬éããã«ã¯ã«ã¹ã¿ã ã¢ãã«ãåç §ããŠãã ããã | |
| 該åœãã[ã¢ãã«ãªã¯ãšã¹ã](https://github.com/huggingface/diffusers/issues/new?assignees=&labels=New+model%2Fpipeline%2Fscheduler&template=new-model-addition.yml)ïŒååšããªãå Žåã¯æ°èŠäœæããŠãã ããïŒã§æããŠãã ãããå®è£ ã«é¢ãããã£ãŒãããã¯ãæäŸããæ°ã«å ¥ã£ããã®ã¯[Community Modular Diffusers Blocks](https://huggingface.co/collections/diffusers-modular/community-modular-diffusers-blocks)ã³ã¬ã¯ã·ã§ã³ã«ç޹ä»ããŸãããã®åŸãã©ã€ãã©ãªã§ã®ã¢ãã«ãµããŒãæ¹æ³ã決å®ããŸããããªãã®ããŒãžã§ã³ãã¢ããã¹ããªãŒã ã«åæ ãããèè ãã¡ãšå ¬åŒããŒãžã§ã³ã«ã€ããŠååããããããã¯åã«ããªãã®ããŒãžã§ã³ãæ¡å ããããšãã£ã察å¿ãèããããŸãããŸãããã®éçšã§æããæ©æŠç¹ãæããŠãã ãããåããã«ããAPIãäžè¶³ããŠããããã¥ã¡ã³ãããã°ãªã©ã§ãããã®ãã£ãŒãããã¯ã¯ããã€ãã©ã€ã³èªäœãšåããããç§ãã¡ã«ãšã£ãŠäŸ¡å€ããããŸãã | |
| ### 7. åŠç¿äŸãžã®è²¢ç® | |
| Diffusersã®äŸã¯ã[examples](https://github.com/huggingface/diffusers/tree/main/examples)ã«é 眮ãããŠãããã¬ãŒãã³ã°ã¹ã¯ãªããã®ã³ã¬ã¯ã·ã§ã³ã§ãã | |
| 2çš®é¡ã®åŠç¿äŸã«å¯Ÿå¿ããŠããŸã: | |
| - å ¬åŒã®ãã¬ãŒãã³ã°äŸ | |
| - ç ç©¶çšã®åŠç¿äŸ | |
| ç ç©¶çšã®åŠç¿äŸã¯ [examples/research_projects](https://github.com/huggingface/diffusers/tree/main/examples/research_projects) ã«é 眮ãããŠãããå ¬åŒã®åŠç¿äŸã¯ [examples](https://github.com/huggingface/diffusers/tree/main/examples) é äžã®ãã¹ãŠã®ãã©ã«ãã®ãã¡ã`research_projects` ãš `community` ãã©ã«ããé€ãããã®ã§ããå ¬åŒã®åŠç¿äŸã¯ Diffusers ã®ã³ã¢ã¡ã³ãããŒã«ãã£ãŠç®¡çãããç ç©¶çšã®åŠç¿äŸã¯ã³ãã¥ããã£ã«ãã£ãŠç®¡çãããŠããŸããããã¯ãDiffusers ã©ã€ãã©ãªã Hub äžã§å ¬åŒãã€ãã©ã€ã³ãšã³ãã¥ããã£ãã€ãã©ã€ã³ã®äž¡æ¹ãå ¬éããŠããã®ãšåãçç±ã§ããæ¡æ£ã¢ãã«ã®ãã¹ãŠã®å¯èœãªåŠç¿ææ³ãã³ã¢ã¡ã³ãããŒãç¶æç®¡çããããšã¯çŸå®çã§ã¯ãªãããã§ããDiffusers ã®ã³ã¢ã¡ã³ãããŒãšã³ãã¥ããã£ããç¹å®ã®åŠç¿ãã©ãã€ã ãå®éšçãããããããã¯ååã«æ®åããŠããªããšå€æããå Žåã察å¿ããåŠç¿ã³ãŒã㯠`research_projects` ãã©ã«ãã«é 眮ããèè ã管çããå¿ èŠããããŸãã | |
| å ¬åŒã®ãã¬ãŒãã³ã°äŸãšç ç©¶äŸã¯ã©ã¡ããã1ã€ä»¥äžã®ãã¬ãŒãã³ã°ã¹ã¯ãªããã`requirements.txt`ãã¡ã€ã«ã`README.md`ãã¡ã€ã«ãå«ããã£ã¬ã¯ããªã§æ§æãããŠããŸãããŠãŒã¶ãŒããã¬ãŒãã³ã°äŸãå©çšããã«ã¯ããªããžããªãã¯ããŒã³ããå¿ èŠããããŸãã | |
| ```bash | |
| git clone https://github.com/huggingface/diffusers | |
| ``` | |
| ãŸãããã¬ãŒãã³ã°ã«å¿ èŠãªãã¹ãŠã®è¿œå ã®äŸåé¢ä¿ãã€ã³ã¹ããŒã«ããŸã: | |
| ```bash | |
| cd diffusers | |
| pip install -r examples/<your-example-folder>/requirements.txt | |
| ``` | |
| ãããã£ãŠãäŸã远å ããéã¯ã`requirements.txt`ãã¡ã€ã«ã«ããã®åŠç¿äŸã«å¿ èŠãªãã¹ãŠã® pip äŸåé¢ä¿ãå®çŸ©ããå¿ èŠããããŸããããã«ããããããããã¹ãŠã€ã³ã¹ããŒã«ãããç¶æ ã§ããŠãŒã¶ãŒãäŸã®åŠç¿ã¹ã¯ãªãããå®è¡ã§ããããã«ãªããŸããäŸãã°ã[DreamBooth ã® `requirements.txt` ãã¡ã€ã«](https://github.com/huggingface/diffusers/blob/main/examples/dreambooth/requirements.txt)ãåç §ããŠãã ããã | |
| Diffusersã©ã€ãã©ãªã®åŠç¿äŸã¯ã以äžã®å²åŠã«åŸãå¿ èŠããããŸãã | |
| - äŸãå®è¡ããããã«å¿ èŠãªãã¹ãŠã®ã³ãŒãã¯ãåäžã®Pythonãã¡ã€ã«ã«ãŸãšããå¿ èŠããããŸãã | |
| - ã³ãã³ãã©ã€ã³ãã`python <your-example>.py --args`ã§äŸãå®è¡ã§ããã¯ãã§ãã | |
| - äŸã¯ã·ã³ãã«ã«ä¿ã¡ãDiffusers ããã¬ãŒãã³ã°ã«äœ¿çšããæ¹æ³ã®**äŸ**ãšããŠæ©èœãããã¹ãã§ããäŸã¹ã¯ãªããã®ç®çã¯ãæå ç«¯ã®æ¡æ£ã¢ãã«ãäœæããããšã§ã¯ãªãã**ããã§ã¯ãªã**ãé床ãªã«ã¹ã¿ã ããžãã¯ã远å ããã«æ¢ç¥ã®ãã¬ãŒãã³ã°ææ³ãåçŸããããšã§ãããã®ç¹ã®å¯ç£ç©ãšããŠãç§ãã¡ã®äŸã¯ãåªããæè²è³æãšããŠãæ©èœããããšãç®æšãšããŠããŸãã | |
| äŸãã³ã³ããªãã¥ãŒãããéã¯ã[dreambooth](https://github.com/huggingface/diffusers/blob/main/examples/dreambooth/train_dreambooth.py)ãªã©ã®æ¢åã®äŸãåç §ãããã®æ§æã®ã€ã¡ãŒãžãææ¡ããããšãã匷ããå§ãããŸãããŸãã[Accelerate library](https://github.com/huggingface/accelerate)㯠Diffusers ãšå¯ã«çµ±åãããŠãããããã³ã³ããªãã¥ãŒã¿ãŒã«ã¯ãã®æŽ»çšãåŒ·ãæšå¥šããŸããäŸã®ã¹ã¯ãªãããåäœããããã«ãªã£ããããã®äŸã®å ·äœçãªäœ¿ç𿹿³ãæèšããå æ¬çãª`README.md`ã远å ããŠãã ããããã® README ã«ã¯ã以äžãå«ããå¿ èŠããããŸã: | |
| - [ãã¡ã](https://github.com/huggingface/diffusers/tree/main/examples/dreambooth#running-locally-with-pytorch)ã«ç€ºãããŠããäŸã¹ã¯ãªãããå®è¡ããããã®ã³ãã³ãã®äŸã§ãã | |
| - ãŠãŒã¶ãŒãæåŸ ã§ããå 容ã瀺ãã[ãã¡ã](https://api.wandb.ai/report/patrickvonplaten/xm6cd5q5)ã«ç€ºãããŠãããããªãã¬ãŒãã³ã°çµæïŒãã°ãã¢ãã«ãªã©ïŒãžã®ãªã³ã¯ã | |
| - éå ¬åŒ/ç ç©¶çšã®ãã¬ãŒãã³ã°äŸã远å ããå Žåã¯ã**ãå¿ããªã**ã[ãã¡ã](https://github.com/huggingface/diffusers/tree/main/examples/research_projects/intel_opts#diffusers-examples-with-intel-optimizations)ã«ç€ºãããŠããããã«ããã®ãã¬ãŒãã³ã°äŸãã¡ã³ããã³ã¹ããŠããæšã®äžæïŒgit ãã³ãã«ãå«ãïŒã远å ããŠãã ããã | |
| å ¬åŒã®åŠç¿ãµã³ãã«ã«è²¢ç®ãããå Žåã¯ã[examples/dreambooth/test_dreambooth.py](https://github.com/huggingface/diffusers/blob/main/examples/dreambooth/test_dreambooth.py) ã®ããã«ããã®ãã©ã«ããŒã«ãã¹ãã远å ããããšãå¿ããªãã§ãã ãããéå ¬åŒã®åŠç¿ãµã³ãã«ã«ã¯äžèŠã§ãã | |
| ### 8. ãGood second issueãã®ä¿®æ£ | |
| *Good second issues*ã«ã¯ã[Good second issue](https://github.com/huggingface/diffusers/issues?q=is%3Aopen+is%3Aissue+label%3A%22Good+second+issue%22)ã©ãã«ãä»äžãããŠããŸãããããã¯éåžžã[Good first issues](https://github.com/huggingface/diffusers/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)ããã解決ãè€éã§ã説æã«ä¿®æ£ã«é¢ããã¬ã€ãã³ã¹ãå°ãªããã©ã€ãã©ãªã«å¯ŸããããçšåºŠã®çè§£ãæ±ããããŸãã | |
| è¯ã2çªç®ã®èª²é¡ã«åãçµã¿ããå Žåã¯ããã®èª²é¡ã«å¯ŸãããæèŠãšããæ€èšäžã®ã¢ãããŒããæ°æã§ã³ã¡ã³ããšããŠå ±æããPRãéãåã«ã¡ã³ãããŒããæ¿èªãåŸãŠãã ããããã§ã«ãã®èª²é¡ã«å¯ŸããŠPRãéãããŠãããããŒãžãããŠããªãå Žåã¯ãæ°ããææ¡ãè¡ãåã«ããã®çç±ãçè§£ããããã«ç¢ºèªããŠãã ããã | |
| ### 9. Diffusersã®MVP issueã«ææŠãã | |
| [Diffusers MVPããã°ã©ã ](https://github.com/huggingface/diffusers/issues/12635)ã«ã¯ãæãååãæ±ããŠãã課é¡ããªã¹ãã¢ãããããŠããŸãããããã¯Good second issuesãšåæ§ã®ä»çµã¿ã§ãããããé£æåºŠãé«ããæéãããããããããã«åãçµãè²¢ç®è ã«ã¯å ±é ¬ãæäŸãããŸããPRãéãåã«ããŸãã³ã¡ã³ãã§ã¢ãããŒããå ±æããã¡ã³ãããŒããã®æ¿èªãåŸãŠãã ããããã®ããã°ã©ã ã«ã¯[ã¢ã€ãã¢ãã©ãã¯](https://github.com/huggingface/diffusers/issues/14529)ãèšããããŠãããDiffusersã®ã€ã³ãã¯ããé«ããã¢ã€ãã¢ããå®è£ 詳现ãå«ãŸãªãæ°æã§æããŠãã ããã | |
| ### 10. ãã€ãã©ã€ã³ãã¢ãã«ãã¹ã±ãžã¥ãŒã©ãŒã®è¿œå | |
| > [!TIP] | |
| > ã¢ãã«ã®äœæè ã®æ¹ã¯ãçµ±åã«ã€ããŠèª¿æŽããããããé£çµ¡ãã ãããæ©èœãªã¯ãšã¹ããéããããã§ã«éãããŠããå Žåã¯ã³ã¡ã³ããæ®ããŠãã ããã | |
| > | |
| > ã³ãã¥ããã£ã®è²¢ç®è ã®æ¹ã¯ããŸã Hub ã®ãªããžããªããå§ããŠãã ããã[Hub ã«ãã€ãã©ã€ã³ãŸãã¯ã¢ãã«ãå ¬éãã](#6-publish-a-pipeline-or-model-on-the-hub)ãåç §ããæ©èœãªã¯ãšã¹ãã®äžã«ãã¢ããã¹ããªãŒã ãžã®åã蟌ã¿ã«é¢å¿ãããæšããç¥ãããã ããã | |
| Pipelinesãmodelsãschedulersã¯Diffusersã©ã€ãã©ãªã®æãéèŠãªæ§æèŠçŽ ã§ãããããã¯æå ç«¯ã®æ¡æ£æè¡ãžã®ç°¡åãªã¢ã¯ã»ã¹ãæäŸããã³ãã¥ããã£ã匷åãªçæAIã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããšãå¯èœã«ããŸãã | |
| æ°ããã¢ãã«ããã€ãã©ã€ã³ããŸãã¯ã¹ã±ãžã¥ãŒã©ãŒã远å ããããšã§ãDiffusers ã«äŸåãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã®ãããã«ãããŠãã匷åãªæ°ãããŠãŒã¹ã±ãŒã¹ãæå¹ã«ã§ããå¯èœæ§ããããŸããããã¯ãçæAIãšã³ã·ã¹ãã å šäœã«ãšã£ãŠéåžžã«å€§ããªäŸ¡å€ããããããã®ã§ãã | |
| #### æ°ããã¢ãã«ãŸãã¯ãã€ãã©ã€ã³ã®ãµããŒãããªãªãŒã¹ãããå Žå | |
| æ°ããã¢ãã«ããã€ãã©ã€ã³ããªãªãŒã¹ã«å«ããå Žåã¯ãäºåã« Diffusers ããŒã ãšçµ±åã«ã€ããŠèª¿æŽããå¿ èŠããããŸããDiffusers ãªããžããªã® issue çµç±ããŸã㯠`diffusers@huggingface.co` ãžã®ã¡ãŒã«ã§ããæ°è»œã«ãåãåãããã ããã | |
| ã¢ãã«ããã€ãã©ã€ã³ã®ãã«ãªã¯ãšã¹ããããŒãžãããæç¹ã§ããªãªãŒã¹ãèªåçã«å®è¡ãããããã§ã¯ãããŸããããªãªãŒã¹åã«ãã¡ã³ãããŒã¯çµ±åãå®äºããŠããããšãããã³ãªãªãŒã¹ãã¹ãããã¹ããŠããããšã確èªããŸãã | |
| æ°ããã¢ãã«ãŸãã¯ãã€ãã©ã€ã³ã®ãµããŒãã¯ãéåžžãæ¬¡ã®ãã€ããŒãªãªãŒã¹ã«çµã¿èŸŒãŸããŸããçµ±åã¯`main`ã«ããŒãžããããªãªãŒã¹ãã©ã³ãã¯ããããäœæãããŸãããªãªãŒã¹ã«ã¯ãã¢ãã«ããã€ãã©ã€ã³ã®çµ±åã ãã§ãªããååã®ãªãªãŒã¹ä»¥éã«ããŒãžããããã¹ãŠã®å€æŽãå«ãŸããŸãã | |
| ãªãªãŒã¹ããŒãã§ã¯ãæ°ããã¢ãã«ããã€ãã©ã€ã³ã匷調ãããšãšãã«ããã®ãªãªãŒã¹ã«å«ãŸãããã®ä»ã®å€æŽç¹ãèŠçŽããŸããããããªãªãŒã¹ã¯ãæ¢åã®ãªãªãŒã¹ã«å¯Ÿããä¿®æ£ã«é垞䜿çšãããŸãã | |
| Diffusersã«ã¯ã3ã€ã®ã³ã³ããŒãã³ããã¹ãŠã«é¢ãããªãŒãã³ãªæ©èœãªã¯ãšã¹ããããã€ããããŸãã远å ãããå ·äœçãªã³ã³ããŒãã³ãããŸã 決ãŸã£ãŠããªãå Žåã¯ããã£ãšç®ãéãã ãã§ãæ§ããŸãã: | |
| - [ã¢ãã«ãŸãã¯ãã€ãã©ã€ã³](https://github.com/huggingface/diffusers/issues?q=is%3Aopen+is%3Aissue+label%3A%22New+pipeline%2Fmodel%22) | |
| - [ã¹ã±ãžã¥ãŒã©](https://github.com/huggingface/diffusers/issues?q=is%3Aopen+is%3Aissue+label%3A%22New+scheduler%22) | |
| 3ã€ã®ã³ã³ããŒãã³ãã®ããããã远å ããåã«ã[Philosophy guide](philosophy) ããèªã¿ããã ãã3ã€ã®ã³ã³ããŒãã³ãã®èšèšãããæ·±ãçè§£ããããšãã匷ããå§ãããŸããåœç€Ÿã®èšèšææ³ãã倧ããéžè±ããã¢ãã«ãã¹ã±ãžã¥ãŒã©ããã€ãã©ã€ã³ã®è¿œå ã¯ãAPI ã®äžäžèŽãæããããããŒãžããããšãã§ããŸãããèšèšäžã®å€æã«æ ¹æ¬çãªç°è°ãããå Žåã¯ã[Feedback issue](https://github.com/huggingface/diffusers/issues/new?assignees=&labels=&template=feedback.md&title=) ãäœæããŠãã ãããç¹å®ã®èšèšãã¿ãŒã³ãèšèšäžã®å€æãã©ã€ãã©ãªå šäœã§å€æŽãã¹ããããŸãèšèšææ³ãæŽæ°ãã¹ããã«ã€ããŠè°è«ããããã«äœ¿çšãããŸããã©ã€ãã©ãªå šäœã§ã®äžè²«æ§ã¯ãåœç€Ÿã«ãšã£ãŠéåžžã«éèŠã§ãã | |
| PRã«ã¯ãå ã®ã³ãŒãããŒã¹ãè«æãžã®ãªã³ã¯ãå¿ ã远å ããŠãã ããããŸããå¯èœã§ããã°ãPRäžã§å ã®èè ã«ãçŽæ¥éç¥ãã鲿ã远跡ããŠããã£ããã質åãžã®åçãäŸé Œãããã§ããããã«ããŠãã ããã | |
| PRã§äžç¢ºããªç¹ãããå Žåããé²ãæ¹ã«è©°ãŸã£ãå Žåã¯ããããããã«ã¡ãã»ãŒãžãæ®ããŠãæåã®ã¬ãã¥ãŒããµããŒããäŸé ŒããŠãã ããã | |
| #### ã¡ã«ããºã ããã³ã㌠| |
| ãã€ãã©ã€ã³ãã¢ãã«ããŸãã¯ã¹ã±ãžã¥ãŒã©ã®ã³ãŒãã远å ããéã«çè§£ãã¹ãããŠããŒã¯ãã€éèŠãªæ©èœãšããŠã`# Copied from`ã¡ã«ããºã ããããŸããDiffusersã®ã³ãŒãããŒã¹å šäœã§ãã®ã¡ã«ããºã ãç®ã«ããŸãããã³ãŒãããŒã¹ãåãããããä¿å®ããããç¶æ ã«ä¿ã€ããã«äœ¿çšããŠããŸãã`# Copied from`ã¡ã«ããºã ã§ããŒã¯ãããã³ãŒãã¯ãã³ããŒå ã®ã³ãŒããšå®å šã«åäžã§ããããšã匷å¶ãããŸããããã«ããã`make fix-copies`ãå®è¡ãããã³ã«ã倿Žã倿°ã®ãã¡ã€ã«ã«ããã£ãŠå®¹æã«æŽæ°ã»åæ ã§ããŸãã | |
| äŸãã°ã以äžã®ã³ãŒãäŸã§ã¯ã[StableDiffusionPipelineOutput](/docs/diffusers/main/ja/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput) ãå ã®ã³ãŒãã§ããã`AltDiffusionPipelineOutput` 㯠`# Copied from` ã¡ã«ããºã ã䜿çšããŠãããã³ããŒããŠããŸããå¯äžã®éãã¯ãã¯ã©ã¹ãã¬ãã£ãã¯ã¹ã `Stable` ãã `Alt` ã«å€æŽããŠããç¹ã§ãã | |
| ```py | |
| # Copied from diffusers.pipelines.stable_diffusion.pipeline_output.StableDiffusionPipelineOutput with Stable->Alt | |
| class AltDiffusionPipelineOutput(BaseOutput): | |
| """ | |
| Output class for Alt Diffusion pipelines. | |
| Args: | |
| images (`List[PIL.Image.Image]` or `np.ndarray`) | |
| List of denoised PIL images of length `batch_size` or NumPy array of shape `(batch_size, height, width, | |
| num_channels)`. | |
| nsfw_content_detected (`List[bool]`) | |
| List indicating whether the corresponding generated image contains "not-safe-for-work" (nsfw) content or | |
| `None` if safety checking could not be performed. | |
| """ | |
| ``` | |
| 詳现ã«ã€ããŠã¯ã[~Don't~ Repeat Yourself*](https://huggingface.co/blog/transformers-design-philosophy#4-machine-learning-models-are-static)ããã°èšäºã®è©²åœã»ã¯ã·ã§ã³ããèªã¿ãã ããã | |
| ## è¯ãIssueã®æžãæ¹ | |
| **Issueã®èšè¿°ãäžå¯§ã§ããã°ããã»ã©ãè¿ éã«è§£æ±ºãããå¯èœæ§ãé«ããªããŸãã** | |
| 1. åé¡ã®æçš¿ã«æ£ãããã³ãã¬ãŒãã䜿çšããŠããããšã確èªããŠãã ããã*Bug Report*ã*Feature Request*ã*Feedback about API Design*ã*New model/pipeline/scheduler addition*ããŸãã¯ç©ºã®ãã³ãã¬ãŒãããéžæã§ããŸãã[æ°ããåé¡](https://github.com/huggingface/diffusers/issues/new/choose)ãéãéã«ãé©åãªãã®ãéžæããŠãã ãããäœ¿çšæ¹æ³ã«é¢ãã質åã¯ãåé¡ã§ã¯ãªã[GitHub Discussions](https://github.com/huggingface/diffusers/discussions)ã§æ±ãã¹ãã§ãã | |
| 2. **æ£ç¢ºã«èšè¿°ãã**: åé¡ã«ãµããããã¿ã€ãã«ãä»ããŸããåé¡ã®èª¬æã¯ãã§ããã ãã·ã³ãã«ã«äœæããŠãã ãããåé¡ãæåºããéã«æ£ç¢ºã§ããã°ããã»ã©ãåé¡ãçè§£ãã解決çãèŠã€ãããŸã§ã®æéãççž®ãããŸãã1ã€ã®åé¡ã«ã€ã1ã€ã®issueãéããè€æ°ã®åé¡ã«ã€ããŠ1ã€ã®issueãéããªãããã«ããŠãã ãããè€æ°ã®åé¡ãèŠã€ãã£ãå Žåã¯ãããããã«issueãéããŠãã ãããåé¡ããã°ã§ããå Žåã¯ãã©ã®ãã°ã§ããããã§ããã ãæ£ç¢ºã«èšè¿°ããŠãã ããããdiffusersã§ãšã©ãŒãçºçãããã®ãããªææ§ãªèšè¿°ã¯é¿ããŠãã ããã | |
| 3. **Reproducibility**: No reproducible code snippet == no solution. If you encounter a bug, maintainers **have to be able to reproduce** it. Make sure that you include a code snippet that can be copy-pasted into a Python interpreter to reproduce the issue. Make sure that your code snippet works, *i.e.* that there are no missing imports or missing links to images, ... Your issue should contain an error message **and** a code snippet that can be copy-pasted without any changes to reproduce the exact same error message. If your issue is using local model weights or local data that cannot be accessed by the reader, the issue cannot be solved. If you cannot share your data or model, try to make a dummy model or dummy data. | |
| 4. **æå°éã«**: å¯èœãªéãç°¡æœã«èšè¿°ããèªè ãåé¡ãçŽ æ©ãçè§£ã§ããããåªããŠãã ãããåé¡ã«é¢é£ããªãã³ãŒããæ å ±ã¯ãã¹ãŠåé€ããŠãã ããããã°ãçºèŠããå Žåãåé¡ã瀺ãããã®æãã·ã³ãã«ãªã³ãŒãäŸãäœæããŠãã ããããã°ãçºèŠãããããšãã£ãŠãã¯ãŒã¯ãããŒå šäœããã®ãŸãŸåé¡å ±åã«è²Œãä»ããã®ã¯é¿ããŠãã ãããäŸãã°ãã¢ãã«ã®åŠç¿äžã«ãšã©ãŒãçºçããå ŽåããŸãåŠç¿ã³ãŒãã®ã©ã®éšåããšã©ãŒã®åå ããçè§£ããæ°è¡ã®ã³ãŒãã§åçŸã詊ã¿ãŠãã ãããå®å šãªããŒã¿ã»ããã§ã¯ãªãããããŒããŒã¿ã䜿çšããããã«ããŠãã ããã | |
| 5. **èæ¯**: ãã°ãçºçããããŸãã¯æ©èœãå¿ èŠã«ãªã£ãéã«ãäœã«åãçµãã§ãããããç¥ãããã ãããDiffusers ãããŒã¹ã«æ§ç¯ããã¢ããªã±ãŒã·ã§ã³ãç ç©¶ãããžã§ã¯ããã©ã€ãã©ãªã®ãã°æ¢çŽ¢ãå®è¡ãããšãŒãžã§ã³ããªã©ã§ãã1ã2æã§ååã§ãããããžã§ã¯ããžã®ãªã³ã¯ãæè¿ããŸããäžåºŠã«åŠçã§ãã以äžã®æ°ã® Issue ãš PR ãå¯ãããããããèæ¯æ å ±ããããšã圱é¿åºŠã«åºã¥ããŠåªå é äœãã€ããã®ã«åœ¹ç«ã¡ãŸãã | |
| 6. ãªã³ã¯ã远å ããŠãã ãããç¹å®ã®åœåèŠåãã¡ãœãããã¢ãã«ã«ã€ããŠèšåããå Žåã¯ãèªè ãäœãæããŠããããããæ£ç¢ºã«çè§£ã§ãããããå¿ ããªã³ã¯ãä»ããŠãã ãããç¹å®ã®PRãissueã«ã€ããŠèšåããå Žåã¯ãå¿ ã該åœããissueãžã®ãªã³ã¯ãä»ããŠãã ãããèªè ãäœã話ããŠããããç¥ã£ãŠãããšã¯åæãããissueã«è¿œå ãããªã³ã¯ã¯å€ãã»ã©è¯ãã§ãã | |
| 7. æžåŒèšå®ãã³ãŒã㯠Python ã®ã³ãŒãæ§æããšã©ãŒã¡ãã»ãŒãžã¯éåžžã®ã³ãŒãæ§æãšããŠæŽåœ¢ããIssue ãé©åã«æžåŒèšå®ããŠãã ããã詳现ã«ã€ããŠã¯ã[GitHub å ¬åŒã®æžåŒèšå®ããã¥ã¡ã³ã](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax)ãåç §ããŠãã ããã | |
| 8. åé¡ãã解決ãã¹ããã±ããããšããŠã§ã¯ãªããããæžãããçŸç§äºå žã®çŸããäžé ç®ãšããŠæããŠãã ããã远å ãããååé¡ã¯ãå ¬éãããŠããç¥èãžã®è²¢ç®ã§ããäžå¯§ã«èšè¿°ãããåé¡ã远å ããããšã§ãã¡ã³ãããŒãåé¡ã解決ãããããªãã ãã§ãªããã³ãã¥ããã£å šäœãã©ã€ãã©ãªã®ç¹å®ã®åŽé¢ãããæ·±ãçè§£ããæå©ãã«ããªããŸãã | |
| ## è¯ãPRã®æžãæ¹ | |
| 1. åžžã« issue ããå§ããŠãã ãããPull request ã察å¿ãã issue ãèŠã€ããŠãã ããããŸã 誰ãäœæããŠããªãå Žå㯠issue ãäœæããã³ãŒããæžãåã«ã¡ã³ãããŒãåçããæ©äŒãäžããŠãã ãããç§ãã¡ãæã广çã ãšæããŠããã¯ãŒã¯ãããŒã¯ããŸã issue ãäœæããæ¬¡ã«è§£æ±ºçã«ã€ããŠè°è«ãããã®è°è«ã«åºã¥ã㊠PR ãäœæãããšãããã®ã§ããããã«ãããæãã€ã³ãã¯ãã®ãã issue ã«æéãéäžãããã³ãŒããååšããåã«ã¹ã³ãŒãã«ã€ããŠåæããéè€ããäœæ¥ãåé¿ã§ããŸããPR ã®èª¬æã« issue çªå·ãèšèŒïŒäŸ: `Fixes #1234`ïŒããäž¡è ããªã³ã¯ããŠãã ããã | |
| 2. ã«ã¡ã¬ãªã³ã®ããã«æ¯ãèããŸããããæ¢åã®èšèšãã¿ãŒã³ãæ§æãçè§£ãã远å ããã³ãŒããæ¢åã®ã³ãŒãããŒã¹ã«èªç¶ã«æº¶ã蟌ãããšã確èªããŠãã ãããæ¢åã®èšèšãã¿ãŒã³ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãã倧ããéžè±ãã Pull Request ã¯ããŒãžãããŸããã | |
| 3. äžç¹ã«éäžããŠãã ããããã«ãªã¯ãšã¹ãã¯ã1ã€ã®åé¡ãããã1ã€ã®åé¡ã®ã¿ã解決ããã¹ãã§ãããã€ãã§ã«ãã1ã€ã®åé¡ãä¿®æ£ãããããšããçœ ã«é¥ããªãããã«æ³šæããŠãã ãããäžåºŠã«è€æ°ã®ç¡é¢ä¿ãªåé¡ã解決ããããšãããã«ãªã¯ãšã¹ãã¯ãã¬ãã¥ãŒãã¯ããã«å°é£ã«ãªããŸãã | |
| 4. ãã¿ãŒã³ãä¿®æ£ããåå¥ã®ã±ãŒã¹ã«çãŸããªãã§ãã ããã1ã€ã®åé¡ãè€æ°ã®ãã¡ã€ã«ã«ãŸããã£ãŠããå ŽåããããŸããåããã°ãã³ãŒãããŒã¹å šäœã«ç¹°ãè¿ãçŸããŠããå Žåã¯ããã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ãæ€çŽ¢ããæç¢ºã§äœç³»çãªã¹ã³ãŒãïŒäŸïŒããã¹ãŠã®ã¹ã±ãžã¥ãŒã©ã§ãã¥ãŒã¿ãã«ãªããã©ã«ãå€ãä¿®æ£ãïŒãå®ãã1ã€ã®PRã§ãŸãšããŠä¿®æ£ããŠãã ãããã€ã³ã¹ã¿ã³ã¹ããšã«1ã€ã®PRãç«ãŠãã®ã§ã¯ãªããããããŠãã ããã | |
| 5. ãã«ãªã¯ãšã¹ãã®ã¿ã€ãã«ã¯ããã®è²¢ç®å 容ã®èŠçŽã§ããã¹ãã§ããäœæ¥äžã§ããããšã瀺ãã«ã¯ãã¿ã€ãã«ã®å é ã«`[WIP]`ãä»ããŸããããã«ãããéè€ããäœæ¥ãé¿ããããŒãžå¯èœãªPRãšåºå¥ã§ããŸãã | |
| 6. [è¯ãIssueã®æžãæ¹](#how-to-write-a-good-issue)ã§èª¬æãããŠããããã«ãããã¹ããæ§æãããã©ãŒãããããŠãã ããã | |
| 7. PR ãäœæããåã«ãèªåã® diff ã確èªããŠãã ãããã¬ãã¥ã¢ãŒã®èŠç¹ã§èªã¿ãèŠã€ãã£ãåé¡ãä¿®æ£ããŠãã ããã[`self-review`](https://github.com/huggingface/diffusers/blob/main/.ai/skills/self-review/SKILL.md) ã¹ãã«ãå®è¡ããããšãåŒ·ãæšå¥šããŸãããã®ã¹ãã«ã¯ã`@claude` CI ã¬ãã¥ã¢ãŒãšåãè©äŸ¡åºæºãå®è¡ããŸãã[AI ãšãŒãžã§ã³ãã«ããã³ãŒãã£ã³ã°](#coding-with-ai-agents) ã«èšèŒãããŠããããã«ãšãŒãžã§ã³ããèšå®ãã[AI æ¯æŽããã³ãšãŒãžã§ã³ãã«ããè²¢ç®](#ai-assisted-and-agentic-contributions) ã«åŸã£ãŠãã ãããèª¬ææ¬ã«ã¯ãæå³çã«ãã®ãŸãŸã«ããçºèŠäºé ãèšèŒããã¬ãã¥ã¢ãŒããããæå³çãªå€æã§ããèŠèœãšãã§ã¯ãªãããšãçè§£ã§ããããã«ããŠãã ããã | |
| 8. æ¢åã®ãã¹ãããã¹ããããšã確èªããŠãã ããã | |
| 9. é«ã«ãã¬ããžã®ãã¹ãã远å ããŠãã ãããå質ãã¹ããªãã§ã¯ããŒãžã§ããŸããã | |
| - æ°ãã`@slow`ãã¹ãã远å ããå Žåã¯ã以äžã䜿çšããŠãã¹ãããã¹ããããšã確èªããŠãã ããã | |
| `RUN_SLOW=1 python -m pytest tests/test_my_new_model.py`ãCircleCI ã§ã¯ã¹ããŒãã¹ãã¯å®è¡ãããŸããããGitHub Actions ã§ã¯æ¯æ©å®è¡ãããŸãïŒ | |
| 10. ãã¹ãŠã®å ¬éã¡ãœããã«ã¯ãMarkdown ãšçžæ§ã®è¯ããæç㪠docstring ãä»ããå¿ èŠããããŸããäŸãšã㊠[`pipeline_latent_diffusion.py`](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/latent_diffusion/pipeline_latent_diffusion.py) ãåç §ããŠãã ããã | |
| 11. ãªããžããªã®æ¥éãªæé·ã«äŒŽãããªããžããªã®ãµã€ãºãå€§å¹ ã«å¢å ããããããªãã¡ã€ã«ã远å ãããªãããšã確èªããããšãéèŠã§ããããã«ã¯ãç»åãåç»ããã®ä»ã®ããã¹ã以å€ã®ãã¡ã€ã«ãå«ãŸããŸããç§ãã¡ã¯ã`dataset` ãªã©ã® | |
| ãããã®ãã¡ã€ã«ãé 眮ããã«ã¯ã[`hf-internal-testing`](https://huggingface.co/hf-internal-testing) ãŸã㯠[huggingface/documentation-images](https://huggingface.co/datasets/huggingface/documentation-images) ã䜿çšããŠãã ãããå€éšããã®è²¢ç®ã®å Žåã¯ãç»åã PR ã«è¿œå ããHugging Face ã®ã¡ã³ããŒã«ãã®ããŒã¿ã»ãããžç»åãç§»è¡ããããäŸé ŒããŠãã ããã | |
| ## PRã®äœææ¹æ³ | |
| ã³ãŒããæžãå§ããåã«ãæ¢åã®PRãissueãæ€çŽ¢ããåãå 容ã«ã€ããŠãã§ã«èª°ããäœæ¥ããŠããªãããšã確èªããããšã匷ããå§ãããŸããäžç¢ºããªå Žåã¯ããã£ãŒãããã¯ãåŸãããã«issueãç«ãŠãããšãæ€èšããŠãã ããã | |
| ð§š Diffusers ã«è²¢ç®ããã«ã¯ãåºæ¬ç㪠`git` ã®ç¥èãå¿ èŠã§ãã`git` ã¯æã䜿ããããããŒã«ãšããããã§ã¯ãããŸããããæé«ã®ããã¥ã¢ã«ãçšæãããŠããŸããã·ã§ã«ã§ `git --help` ãšå ¥åããŠããã®äŸ¿å©ããäœéšããŠã¿ãŠãã ãããæžç±ãå¥œãæ¹ã«ã¯ã[Pro Git](https://git-scm.com/book/en/v2) ãéåžžã«åªããåèè³æã§ãã | |
| è²¢ç®ãå§ããã«ã¯ã以äžã®æé ã«åŸã£ãŠãã ããïŒ[ãµããŒããããŠãã Python ã®ããŒãžã§ã³](https://github.com/huggingface/diffusers/blob/83bc6c94eaeb6f7704a2a428931cf2d9ad973ae9/setup.py#L270)ïŒïŒ | |
| 1. [ãªããžããª](https://github.com/huggingface/diffusers)ããã©ãŒã¯ããã«ã¯ | |
| ãªããžããªã®ããŒãžã«ãããForkããã¿ã³ãã¯ãªãã¯ããŸããããã«ãããããªãã®GitHubãŠãŒã¶ãŒã¢ã«ãŠã³ãé äžã«ã³ãŒãã®ã³ããŒãäœæãããŸãã | |
| 2. ãã©ãŒã¯ãããŒã«ã«ãã£ã¹ã¯ã«ã¯ããŒã³ããããŒã¹ãªããžããªããªã¢ãŒããšããŠè¿œå ããŸã: | |
| ```bash | |
| $ git clone git@github.com:<your GitHub handle>/diffusers.git | |
| $ cd diffusers | |
| $ git remote add upstream https://github.com/huggingface/diffusers.git | |
| ``` | |
| 3. éçºäžã®å€æŽãä¿æããããã«æ°ãããã©ã³ããäœæããŸã: | |
| ```bash | |
| $ git checkout -b a-descriptive-name-for-my-changes | |
| ``` | |
| `main` ãã©ã³ãã§äœæ¥**ããªãã§ãã ãã**ã | |
| 4. ä»®æ³ç°å¢ã§æ¬¡ã®ã³ãã³ããå®è¡ããŠãéçºç°å¢ãèšå®ããŸã: | |
| ```bash | |
| $ pip install -e ".[dev]" | |
| ``` | |
| ãªããžããªããã§ã«ã¯ããŒã³ããŠããå Žåãã©ã€ãã©ãªã®ææ°ã®å€æŽãååŸããããã« `git pull` ãå®è¡ããå¿ èŠãããå ŽåããããŸãã | |
| 5. ãã©ã³ãäžã§æ©èœãéçºããŠãã ããã | |
| æ©èœã®éçºãé²ããéã¯ããã¹ãã¹ã€ãŒãããã¹ããããšã確èªããŠãã ããã倿Žã®åœ±é¿ãåãããã¹ãã¯ã次ã®ããã«å®è¡ããŠãã ããã | |
| ```bash | |
| $ pytest tests/<TEST_TO_RUN>.py | |
| ``` | |
| ãã¹ããå®è¡ããåã«ããã¹ãã«å¿ èŠãªäŸåé¢ä¿ãã€ã³ã¹ããŒã«ããŠããããšã確èªããŠãã ããã以äžã®ã³ãã³ãã§å®è¡ã§ããŸãã | |
| ```bash | |
| $ pip install -e ".[test]" | |
| ``` | |
| 以äžã®ã³ãã³ãã§ãã¹ãã¹ã€ãŒãå šäœãå®è¡ããããšãã§ããŸãããDiffusersãå€§å¹ ã«æé·ãããããçŸåšã§ã¯é©åãªæéã§çµæãåŸãã«ã¯é«æ§èœãªãã·ã³ãå¿ èŠã§ããã³ãã³ãã¯ä»¥äžã®éãã§ã: | |
| ```bash | |
| $ make test | |
| ``` | |
| ð§š Diffusers ã¯ããœãŒã¹ã³ãŒãã®äžè²«ãããã©ãŒãããã« `black` ãš `isort` ã䜿çšããŠããŸãã倿Žãå ããåŸã以äžã®ã³ãã³ãã§ãèªåé©çšå¯èœãªã¹ã¿ã€ã«ä¿®æ£ãšãèªåé©çšã§ããªãã³ãŒãæ€èšŒããŸãšããŠå®è¡ã§ããŸãã | |
| ```bash | |
| $ make style | |
| ``` | |
| ð§š Diffusers 㯠`ruff` ãšäžéšã®ã«ã¹ã¿ã ã¹ã¯ãªããã䜿çšããŠãã³ãŒãã£ã³ã°ãã¹ããã§ãã¯ããŸããå質管ç㯠CI ã§å®è¡ãããŸããã以äžã®ã³ãã³ãã§åããã§ãã¯ãããŒã«ã«ã§ãå®è¡ã§ããŸãã | |
| ```bash | |
| $ make quality | |
| ``` | |
| 倿Žå å®¹ã«æºè¶³ãããã`git add` ã§å€æŽããããã¡ã€ã«ãã¹ããŒãžã³ã°ãã`git commit` ã§ã³ãããããŠããŒã«ã«ã«èšé²ããŸã: | |
| ```bash | |
| $ git add modified_file.py | |
| $ git commit -m "A descriptive message about your changes." | |
| ``` | |
| ã³ãŒãã®ã³ããŒãå ã®ãªããžããªãšå®æçã«åæãããããšããå§ãããŸããããã«ããã倿ŽãçŽ æ©ãåæ ã§ããŸãã | |
| ```bash | |
| $ git pull upstream main | |
| ``` | |
| 以äžã䜿çšããŠã倿Žãã¢ã«ãŠã³ãã«ããã·ã¥ããŸã: | |
| ```bash | |
| $ git push -u origin a-descriptive-name-for-my-changes | |
| ``` | |
| 6. æºè¶³ã§ãããã | |
| GitHub äžã®ãã©ãŒã¯ã® Web ããŒãžã§ãããPull requestããã¯ãªãã¯ããŠã倿Žå 容ããããžã§ã¯ãã®ã¡ã³ãããŒã«ã¬ãã¥ãŒã®ããã«éä¿¡ããŠãã ããã | |
| 7. ã¡ã³ãããŒãžã£ãŒãã倿Žãæ±ããããããšã¯åé¡ãããŸãããã³ã¢ã³ã³ããªãã¥ãŒã¿ãŒã«ãããããããšã§ãã | |
| too! ãããã£ãŠãPull request ã§å€æŽå 容ã誰ã§ã確èªã§ããããã«ãããŒã«ã«ãã©ã³ãã§äœæ¥ãã倿Žããã©ãŒã¯ã«ããã·ã¥ããŠãã ããã倿Žã¯èªåçã« Pull request ã«åæ ãããŸãã | |
| ### ãã¹ã | |
| ã©ã€ãã©ãªã®åäœãšè€æ°ã®äŸããã¹ãããããã®åºç¯ãªãã¹ãã¹ã€ãŒããå«ãŸããŠããŸããã©ã€ãã©ãªã®ãã¹ãã¯[testsãã©ã«ã](https://github.com/huggingface/diffusers/tree/main/tests)ã«ãããŸãã | |
| `pytest` ãš `pytest-xdist` ã¯é«éã§ããããããã¡ããæšå¥šããŠããŸãããªããžããªã®ã«ãŒããã£ã¬ã¯ããªãããã©ã€ãã©ãªã®ãã¹ãã `pytest` ã§å®è¡ããã«ã¯ã以äžã®æé ã«åŸã£ãŠãã ããã | |
| ```bash | |
| $ python -m pytest -n auto --dist=loadfile -s -v ./tests/ | |
| ``` | |
| å®éã`make test` ã¯ãã®ããã«å®è£ ãããŠããŸã! | |
| äœæ¥äžã®æ©èœã®ã¿ããã¹ãããããã«ããã¹ãã®ã»ãããå°ããæå®ã§ããŸãã | |
| ããã©ã«ãã§ã¯ãäœéãªãã¹ãã¯ã¹ããããããŸãã`RUN_SLOW` ç°å¢å€æ°ã `yes` ã«èšå®ãããšãããããå®è¡ãããŸããããã«ãããæ° GB ã®ã¢ãã«ãããŠã³ããŒãããããããååãªãã£ã¹ã¯å®¹éãšå®å®ããã€ã³ã¿ãŒãããæ¥ç¶ããããã¯ããªãã®å¿è匷ããå¿ èŠã§ã! | |
| ```bash | |
| $ RUN_SLOW=yes python -m pytest -n auto --dist=loadfile -s -v ./tests/ | |
| ``` | |
| `unittest` ã¯å®å šã«ãµããŒããããŠããããã¹ããå®è¡ããã«ã¯ä»¥äžã®ããã«ããŸãã | |
| ```bash | |
| $ python -m unittest discover -s tests -t . -v | |
| $ python -m unittest discover -s examples -t examples -v | |
| ``` | |
| ### ãã©ãŒã¯ãã main ãã¢ããã¹ããªãŒã ïŒHuggingFaceïŒã® main ãšåæãã | |
| åã¢ããã¹ããªãŒã PRã«åç §ã¡ã¢ã远å ãããããã®PRã«é¢äžããéçºè ã«äžèŠãªéç¥ãéãããšãé¿ããããããã©ãŒã¯ããããªããžããªã®mainãã©ã³ããåæããéã¯ã以äžã®æé ã«åŸã£ãŠãã ããã | |
| 1. å¯èœã§ããã°ããã©ãŒã¯ãããªããžããªã§ãã©ã³ããšPRã䜿ã£ãŠã¢ããã¹ããªãŒã ãšåæããã®ãé¿ããŸãããã代ããã«ããã©ãŒã¯ã®mainã«çŽæ¥ããŒãžããŠãã ããã | |
| 2. PRãã©ãããŠãå¿ èŠãªå Žåã¯ããã©ã³ãããã§ãã¯ã¢ãŠãããåŸã«ã以äžã®æé ãå®è¡ããŠãã ããã | |
| ```bash | |
| $ git checkout -b your-branch-for-syncing | |
| $ git pull --squash --no-commit upstream main | |
| $ git commit -m '<your message without GitHub references>' | |
| $ git push --set-upstream origin your-branch-for-syncing | |
| ``` | |
| ### ã¹ã¿ã€ã«ã¬ã€ã | |
| ããã¥ã¡ã³ãæååã«ã€ããŠã¯ãð§š Diffusers 㯠[Google ã¹ã¿ã€ã«](https://google.github.io/styleguide/pyguide.html) ã«åŸããŸãã | |
| ## AIãšãŒãžã§ã³ãã«ããã³ãŒãã£ã³ã° | |
| ãã®ãªããžããªã§ã¯ãAIãšãŒãžã§ã³ãã®èšå®ã[`.ai/`](https://github.com/huggingface/diffusers/tree/main/.ai)ã«ä¿åããŠããŸãããŸãããšãŒãžã§ã³ããã©ã°ã€ã³ãšããŠãå ¬éãããŠããããããªã³ããã³ãã®ã¿ã¹ã¯ã¹ãã«ã1ã¹ãããã§ã€ã³ã¹ããŒã«ã§ããŸãã | |
| - **ã³ã³ããªãã¥ãŒã¿ãŒã¯èªã¿åãå°çš** â `.ai/` ã¯ã³ã¢ã¡ã³ãããŒã«ãã£ãŠç®¡çãããŠããŸãã`.ai/` é äžã®ãã¡ã€ã«ïŒã«ãŒãã¬ãã«ã® `AGENTS.md` / `CLAUDE.md` ã·ã³ããªãã¯ãªã³ã¯ããŸãã¯ã€ã³ã¹ããŒã«æžã¿ã® `.agents/skills` / `.claude/skills` ãå«ãïŒã PR ã§ç·šéããªãã§ãã ãããäžè¶³ã誀ããèŠã€ããå Žåã¯ãIssue ãäœæããã PR ã§ææããŠãã ãããã¡ã³ãããŒãæŽæ°ããŸãã | |
| - **ã¬ã€ãã©ã€ã³** â `.ai/AGENTS.md` ã¯ãã«ãŒãã«ãã `AGENTS.md` / `CLAUDE.md` ã·ã³ããªãã¯ãªã³ã¯ãä»ããŠããã¹ãŠã®ãšãŒãžã§ã³ãã»ãã·ã§ã³ã«èªã¿èŸŒãŸããŸãã`.ai/references/` 以äžã®ãªãã¡ã¬ã³ã¹ã¬ã€ãã¯ããªã³ã¯ã远跡ãããéã«å¿ èŠã«å¿ããŠèªã¿èŸŒãŸããŸãã | |
| - [`.ai/AGENTS.md`](https://github.com/huggingface/diffusers/blob/main/.ai/AGENTS.md) â ãããã¬ãã«ã®ã³ãŒãã£ã³ã°ã¬ã€ãã©ã€ã³ | |
| - [`.ai/references/models.md`](https://github.com/huggingface/diffusers/blob/main/.ai/references/models.md) â ã¢ãã³ã·ã§ã³ãã¿ãŒã³ãã¢ãã«å®è£ ã«ãŒã«ãäžè¬çãªæ £ç¿ | |
| - [`.ai/references/pipelines.md`](https://github.com/huggingface/diffusers/blob/main/.ai/references/pipelines.md) â ãã€ãã©ã€ã³ã®èŠçŽ | |
| - [`.ai/references/modular.md`](https://github.com/huggingface/diffusers/blob/main/.ai/references/modular.md) â ã¢ãžã¥ã©ãŒãã€ãã©ã€ã³ã®èŠçŽãšå€æãã§ãã¯ãªã¹ã | |
| - [`.ai/references/testing.md`](https://github.com/huggingface/diffusers/blob/main/.ai/references/testing.md) â å¿ é ã®ãã¹ãã¬ã€ã€ãŒããã¹ã¿ãŒããã¯ã¹ã€ã³ããããŒã³ã³ããŒãã³ãã®ã«ãŒã« | |
| - [`.ai/references/review-rules.md`](https://github.com/huggingface/diffusers/blob/main/.ai/references/review-rules.md) â ã¬ãã¥ã¢ãŒã確èªããé ç® | |
| - **ã¹ãã«**ïŒ[`.ai/skills/`](https://github.com/huggingface/diffusers/tree/main/.ai/skills) 以äžã«é 眮ãããç¹å®ã®ã¿ã¹ã¯ã«å¿ããŠãªã³ããã³ãã§èªã¿èŸŒãŸããŸãïŒïŒ | |
| - `model-integration` â diffusers ã«æ°ããã¢ãã«ãŸãã¯ãã€ãã©ã€ã³ããšã³ãããŒãšã³ãã§è¿œå ããïŒãã¡ã€ã«æ§æãçµ±åãã§ãã¯ãªã¹ãããã¹ãã®æ§æãéã¿ã®å€æïŒ | |
| - `self-review` â PR ãäœæããåã«ããããžã§ã¯ãã®ã«ãŒã«ã«ç §ãããŠå€æŽå 容ã確èªããŸã | |
| - `diffusers-cli` â ã¿ãŒããã«ãããã€ãã©ã€ã³ã®å®è¡ãšã¹ããŒãã®ç¢ºèª | |
| - `custom-blocks` â Hub åãã« `ModularPipelineBlocks` ã®ãµãã¯ã©ã¹ãããã±ãŒãžã³ã°ãã | |
| ã©ã®æ¹æ³ãéžæããŠããéå§åã«ãšãŒãžã§ã³ãã«èªèº«ã®ã»ããã¢ããã確èªãããŠãã ããã`python utils/check_ai.py` ã¯ã¬ã€ããšã¹ãã«ã®äžè²«æ§ããã§ãã¯ãã`diffusers-cli skills list` ã¯å®éã«ä¿æããŠããã¹ãã«ã衚瀺ããŸãã | |
| ### AIæ¯æŽããã³ãšãŒãžã§ã³ãåã³ã³ããªãã¥ãŒã·ã§ã³ | |
| AIãšãŒãžã§ã³ãã«ããDiffusersãžã®è²¢ç®ãæè¿ããŸããDiffusersã®[ãšãŒãžã§ã³ãã¬ã€ã](https://github.com/huggingface/diffusers/blob/main/.ai/AGENTS.md)ã«åŸã£ãŠãšãŒãžã§ã³ããèšå®ãã`model-integration`ã`self-review`ãªã©ã®é¢é£ããã¿ã¹ã¯åºæã®ã¹ãã«ã䜿çšããŠãã ãããäžèšã®æé ã«åŸã£ãŠãã©ã°ã€ã³ïŒãŸãã¯åã ã®ã¹ãã«ïŒãã€ã³ã¹ããŒã«ããã¬ã€ãã«åŸã£ãŠè²¢ç®ã®ã¹ã³ãŒãèšå®ãå®è£ ããã¹ããã¬ãã¥ãŒãè¡ã£ãŠãã ãããPRå ã®å€æŽãçè§£ãããã¹ãããç¶æãã責任ã¯åŒãç¶ãããªãã«ãããŸãã | |
| AIæ¯æŽã«ããè²¢ç®ã¯æè¿ãããŸãããã¬ãã¥ãŒè² è·ã管çå¯èœãªç¯å²ã«æããããã調æŽãã¹ã³ãŒãã®æç¢ºåãæ€èšŒãå¿ èŠã§ãããããã®ã¬ã€ãã©ã€ã³ã«åŸããªãPRã¯ã詳现ãªã¬ãã¥ãŒãªãã§ã¯ããŒãºãããå ŽåããããŸãã | |
| - **PR ãäœæããåã«èª¿æŽãè¡ãã** é¢é£ãã issue ãæ€çŽ¢ãããæ°èŠã«äœæããé¡äŒŒã® PRïŒãªãŒãã³äžããã³æè¿ã¯ããŒãºããããã®ïŒã確èªããããã§ããã® issue ã«å¯ŸããŠã¡ã³ãããŒããæç€ºçãªæ¿èªãåŸãŠãã PR ãäœæããŠãã ãããããã«ãããã¹ã³ãŒãã«ã€ããŠè°è«ããéè€ããäœæ¥ãé¿ããã¢ãããŒãã確èªããæ©äŒãåŸãããŸãã | |
| - **ãã¿ãŒã³ãä¿®æ£ããåå¥ã®ã±ãŒã¹ã«çããªãã§ãã ããã** ç¹°ãè¿ãçºçããåé¡ãèŠã€ãã£ãå Žåã¯ãã³ãŒãããŒã¹å ã§åæ§ã®ã€ã³ã¹ã¿ã³ã¹ãæ€çŽ¢ããåå¥ã®ã€ã³ã¹ã¿ã³ã¹ããšã«å€æ°ã® issue ã PR ãäœæããã®ã§ã¯ãªããæç¢ºã§äœç³»çãªã¹ã³ãŒãïŒäŸ:ããã¹ãŠã®ã¹ã±ãžã¥ãŒã©ã§å¯å€ããã©ã«ããä¿®æ£ãããïŒãæå®ãã*1ã€ã®* issue ãäœæããŠãã ããã | |
| - **PR ãäœæããåã®ã»ã«ãã¬ãã¥ãŒã** [`self-review`](https://github.com/huggingface/diffusers/blob/main/.ai/skills/self-review/SKILL.md) ã¹ãã«ãå®è¡ããŠãã ããããã®ã¹ãã«ã¯ã`@claude` CI ã¬ãã¥ã¢ãŒã䜿çšããã®ãšåãåºæºã§ãã [`.ai/references/review-rules.md`](https://github.com/huggingface/diffusers/blob/main/.ai/references/review-rules.md) ã«åºã¥ã㊠diff ãã¬ãã¥ãŒããŸããå ±åãããå 容ã«å¯ŸåŠããŠãã ããããã ããããã¯æš©åšãããã®ã§ã¯ãªãã誀ã£ãŠããå Žåãããè£å©ããŒã«ã§ããããªãã«ãšã£ãŠåŠ¥åœãªããããã³ã°åé¡ãéç¹çã«ç¢ºèªãããããã³ãŒããæªäœ¿çšã®ã³ãŒããå¯èœãªéãæŽçããŠãã ãããææ¡ã«åæããªãå Žåã¯ãPR ãäœæããåŸã«ã¬ãã¥ã¢ãŒãšè°è«ããããã«ãã®ãŸãŸæ®ããŠæ§ããŸãããå ±æããã¡ã¢ïŒäžèšåç §ïŒã«ãããã¬ãã¥ã¢ãŒã¯ãããæå³çãªå€æã§ãã£ãããšãçè§£ã§ããŸãã | |
| - **èªå·±ã¬ãã¥ãŒã®ã¡ã¢ãå ±æããŠãã ããã** æåºãã diff ãåæ ããæçµã©ãŠã³ãã®èªå·±ã¬ãã¥ãŒã¬ããŒãããPR ã®èª¬ææ¬ãŸãã¯ã³ã¡ã³ããšããŠæçš¿ããŠãã ãããæå³çã«ä¿®æ£ããªãã£ãææäºé ãšãã®çç±ãèšèŒããŠãã ãããããã«ãããã¬ãã¥ã¢ãŒã¯ãã§ã«ç¢ºèªæžã¿ã®å å®¹ãšæå³çãªå€æãææ¡ã§ããéåžžã¯æ°åã®ããåããçç¥ã§ããŸãã | |
| - **PRã§ã®ã³ãã¥ãã±ãŒã·ã§ã³ã¯ç°¡æœã«ä¿ã¡ãŸãããã** ã¬ãã¥ã¢ãŒãPRã§èªããã¹ãŠã®å 容 â 説æãã³ãããã¡ãã»ãŒãžãã³ã¡ã³ããè¿ä¿¡ãã³ãŒãå ã®ã³ã¡ã³ã â ã¯ã人éãçè§£ãããããã®ã§ãªããã°ãªããŸããããšãŒãžã§ã³ããäœæããå Žåã¯ã軜ãç®ãéãã ãã§ã¯äžååã§ããå®éã«èªã¿ãèªåèªèº«ã§æžããããªãçã«ããªã£ãç°¡æœãªå 容ã«ãªããŸã§ãšãŒãžã§ã³ãã«ä¿®æ£ãäŸé ŒããŠãã ãããããªããæçš¿ãããã¹ãŠã®å 容ã®èè ã¯ãããªãèªèº«ã§ãã | |
| - **PRã®èª¬æã«å«ããããš:** | |
| - ã¡ã³ããããã®äœæ¥ãæ¿èªããã€ã·ã¥ãŒãŸãã¯ãã£ã¹ã«ãã·ã§ã³ãžã®**調æŽãªã³ã¯**ã | |
| - å®è¡ãã**ãã¹ãã³ãã³ã**ãšãã®çµæïŒããã¹ãããã¹ãããã ãã§ãªããé¢é£ããåºåã貌ãä»ããŠãã ããïŒã | |
| - äžèšã§èª¬æãããããªãã®**ã»ã«ãã¬ãã¥ãŒããŒã**ïŒãŸãã¯ãããå«ãPRã³ã¡ã³ããžã®ãªã³ã¯ïŒã | |
| ã¢ãã«ã®äœæè ããŸãã¯å ¬åŒã«ã¢ãã«ãã¡ã³ããã³ã¹ããŠããããŒã ã®äžå¡ã§ããå Žåã¯ãæ°ããã¢ãã«ã®çµ±åã«ãšãŒãžã§ã³ãã®äœ¿çšãæšå¥šããŸãããªããžããªã®[æšå¥šã»ããã¢ãã](https://github.com/huggingface/diffusers/blob/main/.ai/AGENTS.md)ã«åŸãã[`model-integration`](https://github.com/huggingface/diffusers/blob/main/.ai/skills/model-integration/SKILL.md)ã¹ãã«ã䜿çšããŠãã ãããPRãéãåã«ãã¡ã³ããã³ã¹è ãšã¹ã³ãŒãã«ã€ããŠèª¿æŽãè¡ã£ãŠãã ããã[ãã€ãã©ã€ã³ãã¢ãã«ãã¹ã±ãžã¥ãŒã©ãŒã®è¿œå ](#10-adding-pipelines-models-schedulers)ãåç §ããŠãã ããã | |
Xet Storage Details
- Size:
- 63.6 kB
- Xet hash:
- cc1fe811bef35eac8848d3dc3b424d14f44bf755a5dfeafecf405441573bdfc5
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.