Text Generation
PEFT
Safetensors
English
lora
conversational
fine-tuned
mamba
ssm
neuralai
base-model
Instructions to use Subject-Emu-5259/NeuralAI with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use Subject-Emu-5259/NeuralAI with PEFT:
Base model is not found.
- Notebooks
- Google Colab
- Kaggle
| import os | |
| import torch | |
| from PIL import Image | |
| import time | |
| try: | |
| from diffusers import AutoPipelineForText2Image, AutoPipelineForImage2Image | |
| _HAS_DIFFUSERS = True | |
| except Exception: | |
| _HAS_DIFFUSERS = False | |
| class NeuralAIDiffusion: | |
| """Local image generation sidecar for NeuralAI. | |
| Default backend: ``segmind/sdxl-turbo`` -- a 1-4 step distilled SDXL model | |
| that produces real images on CPU in a few seconds. Optionally loads a | |
| NeuralAI brand LoRA (``NEURALAI_LORA_PATH``) for the signature dark/neon | |
| "vibe stack" aesthetic. | |
| Falls back to SD 1.5 / tiny-sd if the turbo checkpoint is unavailable. | |
| """ | |
| def __init__(self, model_id=None, device=None, lora_path=None): | |
| self.model_id = model_id or os.environ.get( | |
| "NEURALAI_DIFFUSION_MODEL", "segmind/sdxl-turbo" | |
| ) | |
| self.lora_path = lora_path or os.environ.get("NEURALAI_LORA_PATH", "") | |
| if device: | |
| self.device = device | |
| else: | |
| self.device = "cuda" if torch.cuda.is_available() else "cpu" | |
| self.pipe = None | |
| self.is_loaded = False | |
| self.using_turbo = False | |
| print(f"[NeuralAI Diffusion] Initialized on {self.device} (model={self.model_id})") | |
| def load_model(self): | |
| if self.is_loaded: | |
| return | |
| if not _HAS_DIFFUSERS: | |
| raise RuntimeError("diffusers not installed; cannot run local diffusion") | |
| print(f"[NeuralAI Diffusion] Loading {self.model_id}...") | |
| try: | |
| dtype = torch.float16 if self.device == "cuda" else torch.float32 | |
| self.pipe = AutoPipelineForText2Image.from_pretrained( | |
| self.model_id, torch_dtype=dtype, safety_checker=None, use_safetensors=True | |
| ) | |
| self.pipe.to(self.device) | |
| if self.device == "cpu": | |
| self.pipe.enable_attention_slicing() | |
| try: | |
| self.pipe.enable_model_cpu_offload() | |
| except Exception: | |
| pass | |
| # SDXL-Turbo / LCM are single-step distilled models. | |
| self.using_turbo = ( | |
| "turbo" in self.model_id.lower() or "lcm" in self.model_id.lower() | |
| ) | |
| # Load NeuralAI brand LoRA if provided (SDXL base only). | |
| if self.lora_path and os.path.exists(self.lora_path): | |
| try: | |
| self.pipe.load_lora_weights(self.lora_path) | |
| print(f"[NeuralAI Diffusion] Loaded brand LoRA from {self.lora_path}") | |
| except Exception as e: | |
| print(f"[NeuralAI Diffusion] LoRA load failed (ignored): {e}") | |
| self.is_loaded = True | |
| print("[NeuralAI Diffusion] Model loaded successfully.") | |
| except Exception as e: | |
| print(f"[NeuralAI Diffusion] Error loading {self.model_id}: {e}") | |
| if self.model_id != "segmind/tiny-sd": | |
| print("[NeuralAI Diffusion] Falling back to tiny-sd...") | |
| self.model_id = "segmind/tiny-sd" | |
| self.using_turbo = False | |
| self.load_model() | |
| def generate(self, prompt, output_path, negative_prompt=None, num_steps=20, guidance_scale=7.5): | |
| self.load_model() | |
| # SDXL-Turbo / LCM: 1-4 steps, guidance ~0.0. Standard SD: use requested steps. | |
| if self.using_turbo: | |
| num_steps = max(1, min(num_steps, 4)) | |
| guidance_scale = 0.0 | |
| else: | |
| num_steps = max(10, min(num_steps, 50)) | |
| # NeuralAI brand styling appended to every prompt for a consistent look. | |
| brand = ( | |
| "cinematic, dark mode, neon accent lighting, high contrast, " | |
| "hyper-detailed, 8k, vibe stack aesthetic" | |
| ) | |
| full_prompt = f"{prompt}, {brand}" | |
| print(f"[NeuralAI Diffusion] Generating: {full_prompt}") | |
| start_time = time.time() | |
| try: | |
| gen_kwargs = dict( | |
| prompt=full_prompt, | |
| num_inference_steps=num_steps, | |
| guidance_scale=guidance_scale, | |
| ) | |
| if negative_prompt and not self.using_turbo: | |
| gen_kwargs["negative_prompt"] = negative_prompt | |
| image = self.pipe(**gen_kwargs).images[0] | |
| image.save(output_path) | |
| print( | |
| f"[NeuralAI Diffusion] Image saved to {output_path} " | |
| f"(took {time.time() - start_time:.2f}s)" | |
| ) | |
| return True | |
| except Exception as e: | |
| print(f"[NeuralAI Diffusion] Generation failed: {e}") | |
| return False | |
| def transform(self, prompt, image_path, output_path, strength=0.75, num_steps=20): | |
| """Img2img using the same checkpoint (turbo supports it too).""" | |
| if not _HAS_DIFFUSERS: | |
| return False | |
| if not self.is_loaded: | |
| self.load_model() | |
| try: | |
| from diffusers import AutoPipelineForImage2Image | |
| dtype = torch.float16 if self.device == "cuda" else torch.float32 | |
| i2i = AutoPipelineForImage2Image.from_pretrained( | |
| self.model_id, torch_dtype=dtype, safety_checker=None, use_safetensors=True | |
| ).to(self.device) | |
| init = Image.open(image_path).convert("RGB") | |
| steps = 1 if self.using_turbo else max(10, min(num_steps, 50)) | |
| out = i2i( | |
| prompt=f"{prompt}, cinematic, neon, high detail", | |
| image=init, | |
| strength=strength, | |
| num_inference_steps=steps, | |
| guidance_scale=0.0 if self.using_turbo else 7.5, | |
| ).images[0] | |
| out.save(output_path) | |
| return True | |
| except Exception as e: | |
| print(f"[NeuralAI Diffusion] Transform failed: {e}") | |
| return False | |
| if __name__ == "__main__": | |
| import sys | |
| mode = sys.argv[1] if len(sys.argv) > 1 else "gen" | |
| prompt = sys.argv[2] if len(sys.argv) > 2 else "A high-tech AI logo" | |
| output = sys.argv[3] if len(sys.argv) > 3 else "output.png" | |
| engine = NeuralAIDiffusion() | |
| if mode == "edit" and len(sys.argv) > 4: | |
| engine.transform(prompt, sys.argv[4], output) | |
| else: | |
| engine.generate(prompt, output) | |