
xfromers vs sage-attention ?âŠNo, it's a problem of torch.compile
xfromers vs sage-attentionâŠãšããåé¡ã§ã¯ãªãã®ã§ãããæ¬èšäºã®è¶£æšã¯ããæåããã®ã¿ã€ãã«ãèããŸããããäºã®æ¬è³ªã¯ãããããªãã®ã§ããæããã«ã
èŠããã«ãtorch.compileã®èª²é¡ãšããã®å¯Ÿçãšãã話ã§ãã
ããŠããŸãäžå³ã§ãããxformersã®ã¿ã§ãFlux1ã®ååçæãè¡ã£ãæã®ãã®ã§ããæ¯åã倧äœ80ç§ååŸâŠããã¯ä»¥å200ç§ååŸããã£ãŠããèš³ã§ãéåéãã¯ãªããŸããã

ãã³ãããŒã¯ã«äœ¿ãFlux1ã®jsonã¯ãäŸã«ãã£ãŠä»¥äžèšäºã§å ¬éããŠããMulti ControlNetä»ã®ããŒã¹ã§ãã
ããŠã以äžãsage-attentionä»ãã§åäœãããåãFlux1ã§ããâŠã? äœããããããã§ããã180ç§è¿ãããã£ãŠãŸãããå Žåã«ãã£ãŠã¯ã250ç§ãè¶ ããæããããŸãã

ããã以ãŠãFlux1ã«ãããŠã¯ãxformersã®æ¹ãsage-attentionããéãâŠèš³ã§ã¯ãªãããšããç¹ãéèŠã§ãã
äŸãã°ä»¥äžããããæ¡ä»¶äžãã§åããFlux1ãsage-attentionã§åäœããããã®ã§ãã80ç§æªæºã§å®èµ°ããååéãã§ãã

âŠã?ããŠäºã¯?ããã®å·®ã¯äœãªã® ?...ãŠè©±ã«ãªããŸãããã
ãã®åå ãçªãæ¢ããŸããã
çµè«ãã端çã«èšããŸãã
torch.compileã«ãã£ãŠäœæããããã£ãã·ã¥ãã¡ã€ã«ãå¥ã®ã¢ãã«ã«ããçæã«ãã£ãŠçœ®ãæãã£ãŠããŸããšããã£ããæ§ç¯ããtorch.compileã®æé©åèšå®ãå šãŠãªã»ãããããå¥ã¢ãã«çšã®æé©åããŒã¿ã«ãã£ãŠäžæžããããŠããŸã....ã®ãåå ã§ãã
äžã®é ãäŸã®å ŽåãçŽåã«WAN2.1ã§torch.compileãåäœãããŠããŸãããã®åŸã«ãFlux1ã®çæãè¡ããšãããªã£ãŠããŸãèš³ã§ãã
xformersã ããâŠsage-attentionã ããâŠãšèšãåé¡ã§ã¯ãªãã®ã§ãã
3æç®ã®ãé«éãªçæãåºæ¥ãsage-attentionããšããã®ã¯ãå®ã¯ãã®é ãååçæãçµãäžã§ãæ¹ããŠtorch.compileã«Flux1ã®ãã¿ãŒã³ãèŠããã(éã«èšãã°WAN2.1ã®æé©åããŒã¿ã倱ããã)ãæŽã«ç¹°ãè¿ããŠFllux1ã®çæãè¡ã£ãå Žåã®çµæãªã®ã§ãã
âŠãšããäºã¯ã解決çãèŠããŠããŸãããã
å æ¥ãç°å¢å€æ°ã«ãã£ãŠãtorch.compileãtrtionã«ãã£ãŠçºçãããã£ãã·ã¥ãã¡ã€ã«ãäžæãã¡ã€ã«ãåé¢ããŠä»»æã®ãã©ã«ãã«äœæããâŠãšããæé ã«ã€ããŠè§£èª¬ããŸããã
ãããã®ãã¡ã€ã«ããå¥ã¢ãã«ã®ããŒãã«ãã£ãŠçœ®ãæãã£ãŠããŸãäºã«ãããFlux1ã®ååçæãé ããªã(å¿è«ãéã®å Žåã§ã¯WAN2.1ãé ããªã)ã®ã§ããã°ããã®çœ®æãçºçããªãããã«ããã°ã©ã ã®æµããçµãã§ããã°ããèš³ã§ãã
ãŸããFlux1çšã®èµ·åããããã¡ã€ã«ã以äžã§ãããªãã·ã§ã³ã§äœãæå®ããããã€xformersãã€ã³ã¹ããŒã«ãããŠããç¶æ ã§ã¯ãComfyUIã¯èªåã§xformersãé©çšããŸãã
set PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:32,garbage_collection_threshold:0.8
set TORCH_COMPILE_DEBUG=0
set TORCH_COMPILE_OPT_LEVEL=2
set TORCH_LOGS=recompiles,dynamo,inductor
set TORCH_INDUCTOR_VERBOSE=1
set TORCH_DYNAMO_CONFIG=force_parameter_static_shapes=false
set TRITON_CACHE_DIR=D:\USERFILES\xformers\triton
set TORCH_HOME=D:\USERFILES\xformers\torch
set TORCHINDUCTOR_CACHE_DIR=D:\USERFILES\xformers\Inductor
set TEMP=D:\USERFILES\xformers\Temp
set TEMP=D:\USERFILES\xformers\Temp
.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --output-directory C:\Users\ussoe\A1111\stable-diffusion-webui\outputs\ComfyUIç¶ããŠä»¥äžãsage-attentionãé©çšããWAN2.1ãæ³å®ããå Žåã®ããããã¡ã€ã«ã§ãã
set PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:32,garbage_collection_threshold:0.8
set TORCH_COMPILE_DEBUG=0
set TORCH_COMPILE_OPT_LEVEL=2
set TORCH_LOGS=recompiles,dynamo,inductor
set TORCH_INDUCTOR_VERBOSE=1
set TORCH_DYNAMO_CONFIG=force_parameter_static_shapes=false
set TRITON_CACHE_DIR=D:\USERFILES\sageattention\triton
set TORCH_HOME=D:\USERFILES\sageattention\torch
set TORCHINDUCTOR_CACHE_DIR=D:\USERFILES\sageattention\Inductor
set TEMP=D:\USERFILES\sageattention\Temp
set TEMP=D:\USERFILES\sageattention\Temp
.\python_embeded\python.exe -s ComfyUI\main.py --use-sage-attention --windows-standalone-build --output-directory C:\Users\ussoe\A1111\stable-diffusion-webui\outputs\ComfyUIäœãéããâŠããããã£ãã·ã¥ãã¡ã€ã«ã®å Žæã§ãã
ã€ãŸããFlux1ãšWAN2.1(ãã©ã«ãåã¯xformersãšsage-attentionã§åãã)ã§ãtorch.compileã«ãã£ãŠçºçããæé©åããŒã¿ã®ãã¡ã€ã«ãæ ŒçŽããããã©ã«ããåé¢ããèš³ã§ãã
èµ·åæã®ããããã¡ã€ã«ã䜿ãåããäºã§ãäžåºŠäœæããtorch.compileã®ã¢ãã«ããšã®æé©åããŒã¿ãäžæžããããªãããã«ãªããŸãã
ãã®çµæãWAN2.1ã§åç»ãäœæããåŸã§ããComfyUIãäžåºŠçµäºãããŠããããã¡ã€ã«ãå€ããŠåèµ·åãããäºã§ãå¥ãªå Žæã«ä¿åãããŠããtorch.compileã«ãããFlux1ã®æé©åããŒã¿ãããŒããããååçæé床ã®äœäžãçºçããªãããã«ãªããŸããã
(éã®èŠç¹ã§ã¯ãåœç¶WAN2.1ã®æé©åããŒã¿ã倱ãããªã)
å°€ãComfyUIã®åããŒãã®æéã¯ãããèš³ã§ããã2åã¯ããããŸãããããâŠå·®ãåŒãããŠããïŒã§ã¯ãããŸãã
(ç¹ã«WAN2.1ã®å Žåãtorch.compileã«ããååé«éåã2ååŠã§ã¯ãªãæŽã«é·ãã®ã§ãå·®ãåŒãã¯çµ¶å¯Ÿçã«ïŒ)
ãã ããããŸã§ãããã£ãŠèŠç¹ãå¿è«ãããŸãããååãé ããŠã2åç®ä»¥éã¯ãtorch.compileã¯æé©åããŠããŸãããã
åªãããååèšäºã§æžããŸãããããããããä»çµã¿ã«ãªã£ãŠããããšããçå±ãç¥ãã ãã§ãæå³ã¯ãããšæã£ãŠããŸãã
äœã§ãããã§ãããããã¯ã°ã©ãŠã³ããçè§£ããã«äœ¿ãã®ãšãçè§£ããŠäœ¿ãã®ã§ã¯ãäœããããã©ãã«ãçºçããæã®å¯Ÿå¿åãéã£ãŠããŸãããã