Image-to-Image
Transformers
Safetensors
English
janus_ddpm
feature-extraction
project:genesis
project:ArtIMis
type:model
science:materials
science:physics-simulation
risk:general
custom-code
custom_code
Instructions to use 90879c/Janus-first2last with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use 90879c/Janus-first2last with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-to-image", model="90879c/Janus-first2last", trust_remote_code=True)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("90879c/Janus-first2last", trust_remote_code=True, dtype="auto") - Notebooks
- Google Colab
- Kaggle
| """CLI and helper API for the Hugging Face Janus-first2last release.""" | |
| import argparse | |
| import os | |
| import numpy as np | |
| from transformers import AutoModel | |
| def load_density(path, field="av_density"): | |
| if path.endswith(".npz"): | |
| return np.load(path)[field].astype(np.float32) | |
| if path.endswith(".npy"): | |
| return np.load(path).astype(np.float32) | |
| raise ValueError(f"Unsupported input format: {path} (use .npz or .npy)") | |
| def save_prediction(path, prediction, std=None): | |
| output_dir = os.path.dirname(path) | |
| if output_dir: | |
| os.makedirs(output_dir, exist_ok=True) | |
| if path.endswith(".npz"): | |
| payload = {"av_density": prediction} | |
| if std is not None: | |
| payload.update({"mean": prediction, "std": std}) | |
| np.savez(path, **payload) | |
| elif path.endswith(".npy"): | |
| np.save(path, prediction) | |
| else: | |
| raise ValueError(f"Unsupported output format: {path} (use .npz or .npy)") | |
| def load_model(model_id_or_path=".", device=None): | |
| model = AutoModel.from_pretrained(model_id_or_path, trust_remote_code=True) | |
| if device is not None: | |
| model = model.to(device) | |
| return model.eval() | |
| def main(): | |
| parser = argparse.ArgumentParser(description="Run Janus-first2last DDIM inference.") | |
| parser.add_argument("--model", default=".", help="HF repo id or local model directory") | |
| parser.add_argument("--input", required=True, help="Input .npz or .npy file") | |
| parser.add_argument("--output", required=True, help="Output .npz or .npy file") | |
| parser.add_argument("--field", default="av_density", help="Field name in input NPZ") | |
| parser.add_argument("--device", default=None, help="cuda, cpu, mps, or default auto device") | |
| parser.add_argument("--num_steps", type=int, default=50, help="DDIM sampling steps") | |
| parser.add_argument("--eta", type=float, default=1.0, help="DDIM stochasticity") | |
| parser.add_argument("--seed", type=int, default=None, help="Random seed for one sample") | |
| parser.add_argument("--n_samples", type=int, default=1, help="Number of ensemble samples") | |
| args = parser.parse_args() | |
| density = load_density(args.input, args.field) | |
| model = load_model(args.model, args.device) | |
| if args.n_samples == 1: | |
| prediction = model.predict(density, num_steps=args.num_steps, eta=args.eta, seed=args.seed) | |
| save_prediction(args.output, prediction) | |
| else: | |
| mean, std = model.predict_ensemble( | |
| density, n_samples=args.n_samples, num_steps=args.num_steps, eta=args.eta | |
| ) | |
| save_prediction(args.output, mean, std=std) | |
| print(f"Saved: {args.output}") | |
| if __name__ == "__main__": | |
| main() | |