[O] Better logging

This commit is contained in:
2025-04-08 22:11:36 +00:00
parent 5e57ac1409
commit 1f178ff452
3 changed files with 57 additions and 7 deletions
+4 -1
View File
@@ -1,10 +1,13 @@
from .nf4 import *
import argparse
import time
import Time
import logging
if __name__ == "__main__":
logging.getLogger("transformers.modeling_utils").setLevel(logging.ERROR)
parser = argparse.ArgumentParser()
parser.add_argument("prompt", type=str, help="Prompt to generate image from")
+5 -6
View File
@@ -38,15 +38,14 @@ MODEL_CONFIGS = {
def log_vram(msg: str):
print(msg)
print(f"GPU memory usage: {torch.cuda.memory_allocated() / 1024**2:.2f} MB")
print(f"{msg} (used {torch.cuda.memory_allocated() / 1024**2:.2f} MB VRAM)\n")
def load_models(model_type: str):
config = MODEL_CONFIGS[model_type]
tokenizer_4 = PreTrainedTokenizerFast.from_pretrained(LLAMA_MODEL_NAME)
log_vram("Tokenizer loaded!")
log_vram("Tokenizer loaded!")
text_encoder_4 = LlamaForCausalLM.from_pretrained(
LLAMA_MODEL_NAME,
@@ -56,14 +55,14 @@ def load_models(model_type: str):
torch_dtype=torch.bfloat16,
device_map="auto",
)
log_vram("Text encoder loaded!")
log_vram("Text encoder loaded!")
transformer = HiDreamImageTransformer2DModel.from_pretrained(
config["path"],
subfolder="transformer",
torch_dtype=torch.bfloat16
)
log_vram("Transformer loaded!")
log_vram("Transformer loaded!")
pipe = HiDreamImagePipeline.from_pretrained(
config["path"],
@@ -73,7 +72,7 @@ def load_models(model_type: str):
torch_dtype=torch.bfloat16,
)
pipe.transformer = transformer
log_vram("Pipeline loaded!")
log_vram("Pipeline loaded!")
pipe.enable_sequential_cpu_offload()
return pipe, config
+48
View File
@@ -0,0 +1,48 @@
from .nf4 import *
import argparse
import time
import IPython
import logging
from IPython.display import Image, display
def gen(prompt: str, seed: int = -1, res: str = "1024x1024", output="output.png"):
"""Generate and display an image from the prompt."""
resolution = tuple(map(int, res.strip().split("x")))
st = time.time()
image, final_seed = generate_image(pipe, args.model, prompt, resolution, seed)
image.save(output)
print(f"Image saved to {output}")
print(f"Seed used: {final_seed}, Time: {time.time() - st:.2f} seconds")
# Display the image
display(Image(filename=output))
if __name__ == "__main__":
logging.getLogger("transformers.modeling_utils").setLevel(logging.ERROR)
parser = argparse.ArgumentParser()
parser.add_argument("-m", "--model", type=str, default="dev",
help="Model to use",
choices=["dev", "full", "fast"])
args = parser.parse_args()
# Load model
print(f"Loading model {args.model}...")
pipe, _ = load_models(args.model)
print()
print("✅ Model loaded successfully!")
print("Try gen('your prompt here') to generate an image.")
print()
# Set up IPython shell
banner = f"""
HiDream-I1-nf4 Shell
Model: {args.model} NF4 Quantized
"""
IPython.start_ipython(argv=[], user_ns={"gen": gen}, banner=banner, display_banner=True)