Replies: 2 comments 12 replies
-
You can do things in a “Forge” way: Just create a folder and put this like import torch
import gradio as gr
from modules import scripts
class T5onOtherDevice(scripts.Script):
def title(self):
return "T5 on Other Device"
def show(self, is_img2img):
return scripts.AlwaysVisible
def ui(self, *args, **kwargs):
with gr.Accordion(open=False, label=self.title()):
enabled = gr.Checkbox(label='Enabled', value=False)
return enabled
def process(self, p, *script_args, **kwargs):
self.enabled = script_args
if not self.enabled:
# Todo; add some codes to revert the change
return
p.sd_model.forge_objects.clip.patcher.load_device=torch.device('cuda:1')
return But this code may need a bit more tests |
Beta Was this translation helpful? Give feedback.
-
Really usefull extensions. On dev nf4 (RTX 4070, setting 9500 max vram for model) Great speedup if no model change between generation.
Now:
On dev Q8 gguf (same gpu)
after:
But it seems to have some issues with memory management. When i change model, like in x/y/z plot and do some genration/tests, my memory explode. Vram constant no issue here, blocked at 9000 on my 4070, but RAM it's another topic. I've set some virtual ram to be sure to handle model in q8_0, I've 32go physical RAM and 60go of virtual RAM on nvme ssd. without extension no issues, sometimes RAM usage go up to 55go but not more, with extension very often it go up to 90go and crash forge. |
Beta Was this translation helpful? Give feedback.
-
I'm already did simple, but VERY BAD implementation for youself. (for 4060ti(16gb) and 3060(12gb))
It looks like:
Saves a lot of time.
First load singe gpu:
![first - single](https://private-user-images.githubusercontent.com/130811765/362989130-cecedb43-9e65-499e-a33e-bf36c1ecef5e.PNG?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5Nzg1MTQsIm5iZiI6MTczOTk3ODIxNCwicGF0aCI6Ii8xMzA4MTE3NjUvMzYyOTg5MTMwLWNlY2VkYjQzLTllNjUtNDk5ZS1hMzNlLWJmMzZjMWVjZWY1ZS5QTkc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxOVQxNTE2NTRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zMDViOTRmZDM4MzllZDI0ZDI1MTVlYmNjYTE4OTQzODIzOTY3MDhkOWVkYTY1MTUwMGUxZjkwZTIxNzg1ZDk0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.VFfPw2oI5Ld18OsAh2YV5KJLh1ZcFYQv1o3kACpnRiI)
![second - single](https://private-user-images.githubusercontent.com/130811765/362989244-10474c28-a0b8-49e5-a061-e2df57e37275.PNG?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5Nzg1MTQsIm5iZiI6MTczOTk3ODIxNCwicGF0aCI6Ii8xMzA4MTE3NjUvMzYyOTg5MjQ0LTEwNDc0YzI4LWEwYjgtNDllNS1hMDYxLWUyZGY1N2UzNzI3NS5QTkc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxOVQxNTE2NTRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04YjE2MDYwMmVhMjQ5NDI4YzYzYjcwYzYxYTRjZWFkZWMyNDNmYjhjMGNmZDYxZDMyOWNiOTU3ZWE4MGQ1YTlhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.FMcsBL1GalCtEVp8k68a9dJXdprllHgCPL0p-m5YDrE)
![first - dual](https://private-user-images.githubusercontent.com/130811765/362990617-4b2ce90c-d5f7-477b-9656-a98624a9852b.PNG?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5Nzg1MTQsIm5iZiI6MTczOTk3ODIxNCwicGF0aCI6Ii8xMzA4MTE3NjUvMzYyOTkwNjE3LTRiMmNlOTBjLWQ1ZjctNDc3Yi05NjU2LWE5ODYyNGE5ODUyYi5QTkc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxOVQxNTE2NTRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xN2JjYTk5YjA1ZGNlMzhhNTg5YzZjZjIzMWEyZWMzNTE1OWVmZTYwZjdmMjM1NmNhNzVlZjE4ZTQ2YzA2ZWJmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.ZCZsVDytIGhx28lwPHOEsA4mdhKKy04s793kJXkVc_s)
![second - dual](https://private-user-images.githubusercontent.com/130811765/362990708-e601c1cc-ac90-4138-a946-d19df4ad5d98.PNG?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5Nzg1MTQsIm5iZiI6MTczOTk3ODIxNCwicGF0aCI6Ii8xMzA4MTE3NjUvMzYyOTkwNzA4LWU2MDFjMWNjLWFjOTAtNDEzOC1hOTQ2LWQxOWRmNGFkNWQ5OC5QTkc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxOVQxNTE2NTRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wNTBmNzcwOThmMjkwMmZjYTFhZTkyMmMzNmQ1OWM2OGIzODI5OWY2NjBlZDFmZGFjMjQ0YTVmYzg2YzVjMGNjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.kK01sipPkUpWJb4lJaSENTPo4IYOdPdk83ad4Q-f9Nk)
Second+ load with prompt changed, single gpu:
First load dual gpu:
Second+ load with prompt changed, dual gpu:
I think it would be great if this feature was added for everyone and with GOOD implementation.
Beta Was this translation helpful? Give feedback.
All reactions