-
Notifications
You must be signed in to change notification settings - Fork 74
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
支持 sd3 #154
base: main
Are you sure you want to change the base?
支持 sd3 #154
Conversation
CallmeZhangChenchen
commented
Jul 16, 2024
•
edited
Loading
edited
- 支持sd3
- T5模块 text_encoder_3 不能使用sfast,优化的代码不会debug,出来的结果全为nan,所以现在 直接这样写的 m.text_encoder_3.forward = m.text_encoder_3.forward
- SCHEDULER 设置为 FlowMatchEulerDiscreteScheduler
- config.enable_xformers = True 需要关闭xformers,要不跑不通,维度对不齐
- 希望指条明路,方便去debug T5 以及 xformers
class TracedPosArgOnlyModuleWrapper(torch.nn.Module):
def __init__(self, module, *, training=None):
super().__init__()
self.module = module
if training is None:
training = getattr(module, 'training', False) if isinstance(
module, torch.nn.Module) else False
self.train(training)
def forward(self, *args, **kwargs):
outputs = self.module(*self.convert_inputs(args, kwargs))
unflat_outputs = flat_tensors.unflattern(outputs)
return unflat_outputs 我只能追到这里,self.module(*self.convert_inputs(args, kwargs)) 内部的代码就不能追了,之后outputs就为nan @chengzeyi 请问你感觉我下一步应该往哪个方向追呢 |
我现在感觉 t5这个模块不能使用这个编译:
应该使用 类似 compile_unet 与 compile_vae 的形式 |
抱歉猜错了,不是这个原因, 现在整个sd3 在4090上 1024*1024 大概1s,也能用,等有思路了再研究 |
生成1024x1024大小的图像,用你的代码,在3090上要7s左右。你的4090上1s左右,是做了什么优化么 |
@ginobilinie 很久没看了, 可能是 steps 或者 显卡的影响吧 |
有可能。不知道方便加个联系方式讨论下这块么,最近在做这个。 |
能不能加速flux |
可以的,我试过, 而且加速效果不是很明显,10%~20% 左右 |
可以的 可以的 |