ByteDream / quick_fix.py
Enzo8930302's picture
Upload folder using huggingface_hub
0e3999b verified
Raw
History Blame Contribute Delete
4.58 kB
"""
Quick Setup Script for Byte Dream
Fixes the model loading issue and helps upload to Hugging Face
"""
import os
from pathlib import Path
def check_model_exists():
"""Check if trained model exists"""
model_paths = [
"./models/bytedream",
"./models",
"./bytedream",
]
for path in model_paths:
if Path(path).exists():
print(f"✓ Found model at: {path}")
return path
print("⚠ No trained model found!")
print("\nTo train the model, run:")
print(" python train.py --epochs 1000 --batch_size 4")
print("\nOr download pretrained weights from Hugging Face.")
return None
def test_inference():
"""Test inference with random initialization (no model needed)"""
print("\n" + "="*60)
print("Testing Byte Dream with random initialization")
print("="*60)
try:
from bytedream.generator import ByteDreamGenerator
# Initialize without model path (will use random weights)
generator = ByteDreamGenerator(
model_path=None, # No pretrained model
config_path="config.yaml",
device="cpu",
)
print("\nGenerating test image with random weights...")
print("(This will produce random noise, but tests the pipeline)")
image = generator.generate(
prompt="A test image",
width=256,
height=256,
num_inference_steps=10, # Fast test
)
image.save("test_output.png")
print(f"\n✓ Test image saved to: test_output.png")
print("\nNote: This image looks like noise because we're using random weights.")
print("To generate meaningful images, you need to train the model first.")
return True
except Exception as e:
print(f"\n❌ Error during test: {e}")
import traceback
traceback.print_exc()
return False
def upload_to_hf_guide():
"""Guide for uploading to Hugging Face"""
print("\n" + "="*60)
print("Hugging Face Upload Guide")
print("="*60)
print("""
To upload your model to Hugging Face Hub:
STEP 1: Install required packages
----------------------------------
pip install huggingface_hub
STEP 2: Login to Hugging Face
------------------------------
huggingface-cli login
Then paste your token from: https://huggingface.co/settings/tokens
STEP 3: Train your model (if not done already)
-----------------------------------------------
python train.py --epochs 1000 --batch_size 4 --output_dir ./models/bytedream
STEP 4: Upload to Hugging Face
-------------------------------
python upload_to_hf.py --repo_id "YourUsername/ByteDream" --create_space
Replace 'YourUsername' with your actual Hugging Face username.
STEP 5: Update app.py to use the uploaded model
------------------------------------------------
After uploading, modify app.py to load from Hugging Face:
```python
from diffusers import DiffusionPipeline
pipe = DiffusionPipeline.from_pretrained("YourUsername/ByteDream")
```
TIPS:
-----
- Make sure your model directory contains the trained weights
- Use --private flag if you want to keep the model private
- The --create_space option creates files for Hugging Face Spaces deployment
- Check your repository at: https://huggingface.co/YourUsername
For more help, see:
- https://huggingface.co/docs/hub/spaces
- https://huggingface.co/docs/huggingface_hub/guides/cli
""")
def main():
print("\n" + "="*60)
print("Byte Dream - Quick Setup & Troubleshooting")
print("="*60)
# Check if model exists
model_path = check_model_exists()
# Test inference
if model_path or True: # Always test (can work without model)
success = test_inference()
if success:
print("\n✓ Pipeline is working!")
print("\nNext steps:")
print("1. Train the model: python train.py")
print("2. Or upload to Hugging Face (see guide below)")
# Show upload guide
upload_to_hf_guide()
print("\n" + "="*60)
print("Current status:")
print(" - app.py has been fixed to handle missing models gracefully")
print(" - You can now run: python app.py")
print(" - Follow the upload guide above to deploy to Hugging Face")
print("="*60)
if __name__ == "__main__":
main()