ayjays132/Phillnet-2
<style> / General Styles / @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;800&display=swap');
body { font-family: 'Montserrat', sans-serif; background: #0b0f14; margin: 0; padding: 28px; line-height: 1.6; color: #e8edf5; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; }
.container { max-width: 1200px; margin: 0 auto; background: linear-gradient(145deg, rgba(18, 26, 36, 0.98), rgba(10, 16, 24, 0.96)), repeating-linear-gradient(90deg, rgba(255,255,255,0.025) 0, rgba(255,255,255,0.025) 1px, transparent 1px, transparent 76px); padding: 52px; border-radius: 24px; box-shadow: 0 22px 70px rgba(0, 0, 0, 0.45); position: relative; overflow: hidden; border: 1px solid rgba(154, 183, 217, 0.22); } .hero-panel { padding: 30px; border: 1px solid rgba(119, 188, 255, 0.26); border-radius: 20px; background: linear-gradient(145deg, rgba(84, 126, 177, 0.18), rgba(255, 255, 255, 0.045)); box-shadow: 0 18px 44px rgba(0, 0, 0, 0.28); } .hero-kicker { display: inline-block; margin-bottom: 12px; padding: 7px 12px; border: 1px solid rgba(99, 210, 255, 0.34); border-radius: 999px; color: #a2f4ff; background: rgba(99, 210, 255, 0.08); font-size: 0.82em; font-weight: 700; letter-spacing: 0; text-transform: uppercase; } .badge-row { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 18px 0 22px; } .badge { display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; border-radius: 999px; border: 1px solid rgba(132, 203, 255, 0.22); background: rgba(255, 255, 255, 0.06); color: #d9ecff; font-size: 0.86em; font-weight: 600; } .svg-icon { width: 18px; height: 18px; vertical-align: -4px; margin-right: 8px; color: #63d2ff; } .badge .svg-icon { width: 15px; height: 15px; margin-right: 0; } .icon-title { display: inline-flex; align-items: center; gap: 8px; } .status-dot { display: inline-block; width: 10px; height: 10px; border-radius: 999px; margin-right: 8px; box-shadow: 0 0 14px currentColor; } .status-pass { color: #55f2a2; background: #55f2a2; } .status-partial { color: #ffd166; background: #ffd166; } .status-blocked { color: #ff6b6b; background: #ff6b6b; } .premium-band { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin: 26px 0; } .premium-tile { position: relative; padding: 18px; border-radius: 14px; border: 1px solid rgba(132, 203, 255, 0.24); background: linear-gradient(145deg, rgba(255,255,255,0.075), rgba(255,255,255,0.026)), linear-gradient(90deg, rgba(99,210,255,0.10), transparent 42%); overflow: hidden; } .premium-tile::after { content: ""; position: absolute; left: 18px; right: 18px; bottom: 0; height: 2px; background: linear-gradient(90deg, #63d2ff, #55f2a2, transparent); } .premium-tile strong { display: block; color: #f4f8ff; font-size: 1.08em; margin-bottom: 7px; } .premium-tile span { display: block; color: #b9c7d8; font-size: 0.9em; } .signal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)); gap: 14px; margin: 24px 0; } .signal-card { padding: 18px; border-radius: 14px; border: 1px solid rgba(125, 154, 190, 0.22); background: rgba(6, 14, 24, 0.68); } .signal-card.pass { border-color: rgba(85, 242, 162, 0.42); } .signal-card.partial { border-color: rgba(255, 209, 102, 0.48); } .signal-card.info { border-color: rgba(99, 210, 255, 0.42); } .signal-card h3 { display: flex; align-items: center; gap: 9px; margin: 0 0 8px; font-size: 0.98em; } .icon-bubble { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 10px; border: 1px solid rgba(99, 210, 255, 0.28); background: rgba(99, 210, 255, 0.10); color: #63d2ff; } .icon-bubble svg { width: 18px; height: 18px; margin: 0; } .release-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin: 20px 0 8px; } .release-chip { padding: 12px 14px; border-radius: 10px; border: 1px solid rgba(132, 203, 255, 0.20); background: rgba(255,255,255,0.045); } .release-chip b { display: block; color: #a2f4ff; } .release-chip small { color: #b9c7d8; } .callout.success { border-left-color: #55f2a2; background: rgba(85, 242, 162, 0.075); } .callout.warning { border-left-color: #ffd166; background: rgba(255, 209, 102, 0.075); } .callout.critical { border-left-color: #ff6b6b; background: rgba(255, 107, 107, 0.075); } .layer-stack { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin: 24px 0; } .layer-chip { position: relative; padding: 16px; border-radius: 14px; border: 1px solid rgba(132, 203, 255, 0.22); background: linear-gradient(145deg, rgba(255,255,255,0.075), rgba(255,255,255,0.028)); } .layer-chip::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; border-radius: 14px 0 0 14px; background: linear-gradient(180deg, #63d2ff, #55f2a2); } .layer-chip strong { display: block; color: #e8f0ff; margin-bottom: 6px; } .layer-chip span { color: #b9c7d8; font-size: 0.9em; } .grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 16px; margin: 22px 0; } .feature-card { padding: 20px; border: 1px solid rgba(125, 154, 190, 0.20); border-radius: 12px; background: rgba(255, 255, 255, 0.052); } .feature-card h3 { margin-top: 0; font-size: 1.02em; } .metric-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 12px; margin: 22px 0; } .metric { padding: 16px; border-radius: 12px; border: 1px solid rgba(132, 203, 255, 0.22); background: rgba(7, 15, 24, 0.55); } .metric strong { display: block; color: #a2f4ff; font-size: 1.35em; line-height: 1.15; } .metric span { color: #b9c7d8; font-size: 0.84em; } .callout { border-left: 4px solid #63d2ff; padding: 16px 18px; border-radius: 10px; background: rgba(99, 210, 255, 0.075); margin: 18px 0; } .section { margin-bottom: 56px; position: relative; } .section:hover { transition: border-color 0.25s ease, background 0.25s ease; } .detail { padding: 22px; margin-bottom: 25px; border: 1px solid rgba(125, 154, 190, 0.24); border-radius: 12px; background: rgba(255, 255, 255, 0.055); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.22); transition: border-color 0.25s ease, background 0.25s ease; } .detail:hover { background: rgba(255, 255, 255, 0.075); border-color: rgba(132, 203, 255, 0.36); } .detail-icon { font-size: 1.8em; color: #63d2ff; margin-right: 20px; } .detail:hover .detail-icon { color: #a2f4ff; transform: scale(1.2); } ul { list-style: none; padding: 0; } ul li { margin: 20px 0; padding: 18px; background: rgba(255, 255, 255, 0.052); border: 1px solid rgba(125, 154, 190, 0.18); border-radius: 10px; transition: border-color 0.25s ease, background 0.25s ease; } ul li:hover { background: rgba(255, 255, 255, 0.07); border-color: rgba(132, 203, 255, 0.32); } a { color: #63d2ff; text-decoration: none; font-weight: bold; transition: color 0.3s ease, text-shadow 0.3s ease; } a:hover { color: #a2f4ff; text-shadow: 0 0 12px rgba(255, 255, 255, 0.9), 0 0 18px rgba(100, 200, 255, 0.6); } h1, h2, h3 { text-transform: uppercase; color: #e8f0ff; text-shadow: 0 1px 18px rgba(69, 145, 218, 0.22); font-weight: 700; } table { width: 100%; border-collapse: collapse; margin: 20px 0; background: rgba(255, 255, 255, 0.045); border-radius: 12px; overflow: hidden; border: 1px solid rgba(125, 154, 190, 0.18); box-shadow: 0 12px 32px rgba(0, 0, 0, 0.26); } th, td { padding: 14px 18px; text-align: left; border-bottom: 1px solid rgba(120, 160, 220, 0.2); } th { background: rgba(107, 159, 210, 0.18); color: #e8f0ff; text-transform: uppercase; letter-spacing: 0; font-weight: 600; } tr:hover td { background: rgba(100, 200, 255, 0.08); } pre { position: relative; background: linear-gradient(145deg, rgba(10, 20, 35, 0.97), rgba(5, 12, 25, 0.93)), linear-gradient(90deg, rgba(99, 210, 255, 0.12), transparent 34%); color: #cfe9ff; padding: 26px; border-radius: 14px; border: 1px solid rgba(100, 200, 255, 0.28); box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.36), 0 10px 30px rgba(0, 0, 0, 0.32); overflow-x: auto; font-family: 'Fira Code', 'Consolas', monospace; font-size: 0.91em; line-height: 1.62; white-space: pre; } code { background: rgba(100, 200, 255, 0.12); color: #a2f4ff; padding: 2px 7px; border-radius: 6px; font-family: 'Fira Code', 'Consolas', monospace; font-size: 0.92em; } pre code { background: none; color: inherit; padding: 0; } .bar { font-family: 'Fira Code', 'Consolas', monospace; color: #63d2ff; letter-spacing: -1px; } </style>
<div class="container">
<!-- Cinematic Walkthrough --> <h1 class="section-title">PhillNet 2: Official AXIOM Multimodal GPT-OSS Runtime</h1>
<div class="section"> <div class="section-content"> <div align="center" class="hero-panel"> <div class="hero-kicker">Official Hugging Face Release</div> <h2>Created By Ayjays132 / Young Philly P. / Phillip A. Holland</h2> <p><strong>A public custom-code multimodal model package built to run text, image, video, speech, audio, and routing from one loaded Transformers model object.</strong></p> <div class="badge-row"> <span class="badge"><svg class="svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 7h16M4 12h16M4 17h16"/><path d="M8 3v18M16 3v18"/></svg>Transformers custom code</span> <span class="badge"><svg class="svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="4" width="16" height="16" rx="3"/><path d="M9 9h6v6H9z"/></svg>One model object</span> <span class="badge"><svg class="svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 16l4-4 4 4 8-8"/><path d="M4 20h16"/></svg>ImageGen route fixed</span> <span class="badge"><svg class="svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M13 2L4 14h7l-1 8 9-12h-7l1-8z"/></svg>CUDA bf16 verified</span> <span class="badge"><svg class="svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 6h14v12H5z"/><path d="M8 9h8M8 12h8M8 15h5"/></svg>KV cache enabled</span> </div> <p> <code>Ayjays132/phillnet-2</code> · <code>AutoTokenizer</code> · <code>AutoModelForCausalLM</code> · <code>trustremotecode=True</code> </p> <img src="examples/contactsheet.png" alt="Phillnet-2 generated image gallery" width="640" style="border-radius: 15px;"> </div> <p> Phillnet-2 is an experimental <strong>AXIOM multimodal GPT-OSS runtime</strong> packaged as a Hugging Face <code>transformers</code> custom-code model. It is designed as a new-model competitor package: one public repository, one primary load path, and a single runtime object that exposes text generation, code guidance, image generation, short video generation, speech synthesis, audio listening, and route inspection. </p> <p> The model card is written for builders who want to inspect and run the system locally. The examples below use the same public load path a Hugging Face user would use after upload: </p> <pre> repoid = "Ayjays132/phillnet-2" tokenizer = AutoTokenizer.frompretrained(repoid, trustremotecode=True) model = AutoModelForCausalLM.frompretrained(repoid, trustremotecode=True) </pre> <p> Phillnet-2 is not presented here as a closed leaderboard claim. It is presented as an integrated multimodal runtime with measured local validation, real generated image examples, bounded <code>lm-eval</code> slices, code smoke testing, public usage code, and a merged 1000-step text continued-training pass. </p> <div class="premium-band"> <div class="premium-tile"> <strong>Release Identity</strong> <span>Official public model path: <code>Ayjays132/phillnet-2</code></span> </div> <div class="premium-tile"> <strong>Merged Training</strong> <span>1000-step LoRA continuation merged into root <code>model.safetensors</code></span> </div> <div class="premium-tile"> <strong>Route Fusion</strong> <span>Guidance, thinking, swarm, adapter, and multimodal state exposed for inspection</span> </div> <div class="premium-tile"> <strong>SmolAgent Mode</strong> <span>Opt-in tool workflow over retrieval, media routes, speech, and indicators</span> </div> <div class="premium-tile"> <strong>Creator Credit</strong> <span>Ayjays132 / Young Philly P. / Phillip A. Holland</span> </div> </div> <div class="metric-strip"> <div class="metric"><strong><span class="status-dot status-pass"></span>100%</strong><span>HF folder validation</span></div> <div class="metric"><strong><span class="status-dot status-partial"></span>66.7%</strong><span>local code smoke</span></div> <div class="metric"><strong><span class="status-dot status-pass"></span>100%</strong><span>generated image artifacts</span></div> <div class="metric"><strong><span class="status-dot status-pass"></span>11</strong><span>bounded lm-eval task metrics reported</span></div> </div> <div class="signal-grid"> <div class="signal-card pass"> <h3><span class="icon-bubble"><svg class="svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 6 9 17l-5-5"/></svg></span>Validated Loader</h3> <p>Loads through <code>AutoTokenizer</code> and <code>AutoModelForCausalLM</code> with <code>trustremotecode=True</code>.</p> </div> <div class="signal-card info"> <h3><span class="icon-bubble"><svg class="svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20"/><path d="M2 12h20"/><path d="m17 7-10 10"/><path d="m7 7 10 10"/></svg></span>Multimodal Runtime</h3> <p>Text, code guidance, image, video, speech, audio listening, and route history are exposed from one model object.</p> </div> <div class="signal-card partial"> <h3><span class="icon-bubble"><svg class="svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 19h16"/><path d="M7 16V8"/><path d="M12 16V5"/><path d="M17 16v-4"/></svg></span>Measured, Not Inflated</h3> <p>Benchmarks are reported as bounded local validation and are not presented as SOTA leaderboard claims.</p> </div> </div> <div class="layer-stack"> <div class="layer-chip"><strong>Load Layer</strong><span>AutoTokenizer + AutoModelForCausalLM</span></div> <div class="layer-chip"><strong>Guidance Layer</strong><span>CodeGuidanceSystem available during generation</span></div> <div class="layer-chip"><strong>Media Layer</strong><span>Image, video, speech, and audio routes</span></div> <div class="layer-chip"><strong>Inspection Layer</strong><span>Runtime context and route history</span></div> </div> <p> This repository includes the local modality runtimes used by the model: </p> <ul> <li><strong>🖼️ ImageGen/:</strong> packaged image route with local UNet/VAE assets.</li> <li><strong>🎬 VideoGen/:</strong> fused/composer video route.</li> <li><strong>🔊 Audio/:</strong> speech, audio encoding, and Whisper listening route.</li> <li><strong>🧭 AgenticScaffold/, CodeGuidanceSystem/, Tools/:</strong> local planning, retrieval, SmolAgent, and guidance runtime pieces.</li> <li><strong>🧩 adapters/:</strong> training provenance for the merged 1000-step text LoRA adapter; normal loading already uses the merged root weights.</li> <li><strong>📂 examples/:</strong> public example outputs generated through the loaded Phillnet-2 model object.</li> </ul> <div class="detail"> <span class="detail-icon">⚠️</span> The benchmark numbers below are <strong>release-readiness and smoke validation results</strong>. They are not SOTA claims and are not official EvalPlus, SWE-bench, OSWorld, WebArena, BrowserGym, T2I-CompBench, or VBench results. </div> </div> </div>
<div class="section"> <h2 class="section-title">✨ Model Card Snapshot</h2> <div class="section-content"> <div class="grid-2"> <div class="feature-card"> <h3>Builder-First</h3> <p>Designed for people who want to load, inspect, generate, benchmark, and build from the same package instead of chasing separate demo folders.</p> </div> <div class="feature-card"> <h3>Multimodal Surface</h3> <p>Text, code guidance, image generation, video artifacts, speech synthesis, audio listening, route history, and cleanup are all exposed from the loaded model object.</p> </div> <div class="feature-card"> <h3>Workflow Agent</h3> <p>The opt-in SmolAgent runtime wraps Phillnet's retrieval, text, image, video, speech, and indicator tools without changing standard text generation.</p> </div> <div class="feature-card"> <h3>Local Runtime Resolution</h3> <p>Remote-code runtime roots resolve back to the uploaded repository folder so packaged ImageGen, Audio, VideoGen, and guidance assets are found reliably.</p> </div> <div class="feature-card"> <h3>Honest Evaluation</h3> <p>The card separates smoke validation, bounded lm-eval slices, local vending-style agent smoke, and skipped official suites so users know exactly what was run.</p> </div> </div> <div class="callout"> Phillnet-2 is best understood as a custom-code multimodal runtime package, not just a raw text checkpoint. Use the public model path, keep outputs outside the repo, and call the model methods directly. </div> </div> </div>
<div class="section"> <h2 class="section-title">🚀 What Makes Phillnet-2 Different</h2> <div class="section-content"> <p> Phillnet-2 is built around runtime fusion. The public API is intentionally simple: load the model once, then call the modality methods on that same object. Internally, the package resolves local assets from the loaded repository folder, not from an accidental Transformers dynamic-module cache location. </p> <table> <thead> <tr><th>Layer</th><th>Purpose</th></tr> </thead> <tbody> <tr><td><span class="status-dot status-pass"></span>GPT-OSS text backbone</td><td>Primary causal generation, tokenizer path, KV cache, and Hugging Face model surface</td></tr> <tr><td><span class="status-dot status-pass"></span>CodeGuidanceSystem</td><td>Always-available internal coding and routing guidance; direct sidecar generation for code-only prompts</td></tr> <tr><td><span class="status-dot status-pass"></span>Retrieval path</td><td>Optional <code>useretrieval=True</code> generation path plus SmolAgent <code>retrievalsearch</code> tool for source-snippet grounding</td></tr> <tr><td><span class="status-dot status-pass"></span>ImageGen</td><td>Packaged diffusion route using local SDXL Turbo text encoders/tokenizers, UNet/VAE, scheduler config, and Phillnet adapter conditioning</td></tr> <tr><td><span class="status-dot status-partial"></span>VideoGen</td><td>Short fused/composer video artifact route exposed through <code>model.generatevideo(...)</code></td></tr> <tr><td><span class="status-dot status-partial"></span>Audio</td><td>Speech synthesis, audio encoding, and Whisper Large V3 Turbo listening assets packaged locally</td></tr> <tr><td><span class="status-dot status-pass"></span>SmolAgent workflow</td><td>Opt-in tool-calling workflow over retrieval, base generation, image/video generation, speech, and thinking indicators</td></tr> <tr><td><span class="status-dot status-pass"></span>Inspection/QOL</td><td><code>multimodalcontext</code>, <code>routefusionstatus</code>, <code>adapterstatus</code>, <code>verifyoutput</code>, and cleanup helpers for debugging</td></tr> </tbody> </table> <p> This design makes Phillnet-2 feel less like a loose demo folder and more like a single experimental model runtime. The goal is not only to answer text prompts, but to expose a coherent local surface for building, testing, generating media, and inspecting multimodal routing. </p> <div class="premium-band"> <div class="premium-tile"> <strong>One Load Path</strong> <span>Text, media routes, retrieval helpers, and inspection tools hang off the same model object.</span> </div> <div class="premium-tile"> <strong>Opt-In Power Tools</strong> <span>Agentic, retrieval, and deliberate multi-pass generation are available without polluting benchmark-clean default generation.</span> </div> <div class="premium-tile"> <strong>Artifact-First Media</strong> <span>Image, video, GIF, WAV, manifests, and route metadata are saved as inspectable files.</span> </div> <div class="premium-tile"> <strong>Honest Runtime State</strong> <span>Loaded modules, recent routes, audio/video state, adapter provenance, and thinking indicators are queryable.</span> </div> </div> </div> </div>
<div class="section"> <h2 class="section-title">⚙️ Install</h2> <div class="section-content"> <p> Get the core runtime up in a single command: </p> <pre> pip install torch transformers safetensors pillow accelerate </pre> <p> Recommended extras for the packaged media routes: </p> <pre> pip install numpy soundfile imageio imageio-ffmpeg diffusers sentencepiece protobuf </pre> <p> Recommended extra for the opt-in workflow agent: </p> <pre> pip install smolagents </pre> <p> For the exact local benchmark environment used in this release pass, see the companion harness at <code>benchmarksphillnet2/</code>. The validated local stack used Windows, CUDA, <code>torch 2.10.0+cu130</code>, <code>transformers 5.3.0</code>, and an NVIDIA RTX 3060. </p> <div class="premium-band"> <div class="premium-tile"> <strong>1. Install Runtime</strong> <span><code>torch</code>, <code>transformers</code>, <code>accelerate</code>, <code>safetensors</code></span> </div> <div class="premium-tile"> <strong>2. Install Media Extras</strong> <span><code>diffusers</code>, <code>imageio</code>, <code>soundfile</code>, <code>sentencepiece</code></span> </div> <div class="premium-tile"> <strong>3. Load Once</strong> <span><code>AutoModelForCausalLM</code> with <code>trustremotecode=True</code></span> </div> <div class="premium-tile"> <strong>4. Call Routes</strong> <span><code>model.generateimage</code>, <code>model.generatevideo</code>, <code>model.synthesizespeech</code></span> </div> <div class="premium-tile"> <strong>5. Use Agent Mode</strong> <span><code>model.generateagentic(..., returndetails=True)</code> for tool-aware workflows</span> </div> </div> </div> </div>
<div class="section"> <h2 class="section-title">🧠 Load One Multimodal Model</h2> <div class="section-content"> <p> A single load gives you a model object that exposes every modality route: </p> <pre> import torch from transformers import AutoModelForCausalLM, AutoTokenizer
repo_id = "Ayjays132/phillnet-2"
tokenizer = AutoTokenizer.frompretrained(repoid, trustremotecode=True) model = AutoModelForCausalLM.frompretrained( repoid, trustremotecode=True, torchdtype=torch.bfloat16, devicemap="auto", ) model.settokenizer(tokenizer) model.eval() </pre> <p> Once loaded, the same model object exposes: </p> <pre> model.generate(...) # text model.generateimage(...) # image model.generatevideo(...) # video model.synthesizespeech(...) # speech model.transcribeaudio(...) # listening / ASR model.generateagentic(...) # opt-in SmolAgent workflow model.multimodalcontext() # route history model.adapterstatus() # merged training/adapters model.routefusionstatus("build a website") # guidance + thinking + swarm + media routing </pre> <p> <strong>Important:</strong> this repository uses custom modeling code. Only load with <code>trustremotecode=True</code> in environments where you trust the repository contents. </p> <p> Local clone example: </p> <pre> from pathlib import Path import torch from transformers import AutoModelForCausalLM, AutoTokenizer
model_dir = Path(".")
tokenizer = AutoTokenizer.frompretrained(modeldir, trustremotecode=True) model = AutoModelForCausalLM.frompretrained( modeldir, trustremotecode=True, torchdtype=torch.bfloat16 if torch.cuda.isavailable() else torch.float32, devicemap="auto" if torch.cuda.isavailable() else None, ) model.settokenizer(tokenizer) model.eval() </pre> <p> The user-facing model wrapper routes image generation to the packaged diffusion path by default. A plain call uses the cleaner public preset: <code>512x512</code>, <code>1</code> step, <code>guidancescale=0.0</code>, <code>qualitystrength=1.2</code>, <code>latentrefinerstrength=0.0</code>, <code>usememory=False</code>, and <code>imagequalitypolish=False</code> for stable image conditioning. </p> <pre> image = model.generateimage( "premium studio photo of a transparent glass AI crystal sphere, sharp reflections", outputpath="outputs/default_image.png", )
print(image.metadata) </pre> </div> </div>
<div class="section"> <h2 class="section-title">🖥️ Runtime Notes</h2> <div class="section-content"> <table> <thead> <tr><th>Topic</th><th>Recommendation</th></tr> </thead> <tbody> <tr><td>Best local path</td><td>CUDA GPU with bf16 support for full multimodal usage</td></tr> <tr><td>Validated GPU</td><td>NVIDIA GeForce RTX 3060, CUDA available, bf16 load verified</td></tr> <tr><td>Text-only use</td><td>Load with <code>AutoModelForCausalLM</code>; keep <code>usecache=True</code> for generation</td></tr> <tr><td>Optional retrieval</td><td>Use <code>model.generate(..., useretrieval=True)</code> when source snippets should be injected before generation</td></tr> <tr><td>Agentic workflow</td><td>Use <code>model.generateagentic(...)</code> for tool-aware workflow orchestration; keep it opt-in because it is slower than normal generation</td></tr> <tr><td>Trained text adapter</td><td>The 1000-step LoRA adapter is merged into <code>model.safetensors</code>; normal users do not need a separate adapter load</td></tr> <tr><td>Image/video/audio use</td><td>Use the model methods directly; do not separately publish or load internal route folders as standalone public models</td></tr> <tr><td>Media previews</td><td>The README includes GIF, MP4, and WAV embeds plus direct links so Hugging Face users can inspect generated artifacts</td></tr> <tr><td>Outputs</td><td>Write generated files to an external <code>outputs/</code> or benchmark folder to keep the model repository clean</td></tr> <tr><td>Security</td><td>This is a custom-code model; review code before using <code>trustremote_code=True</code> in production</td></tr> </tbody> </table> <p> The package was cleaned for upload: local benchmark outputs, caches, training clutter, and test artifacts were kept outside the public model folder. The public examples remain in <code>examples/</code> so users can verify what the loaded model route is expected to produce. </p> </div> </div>
<div class="section"> <h2 class="section-title">🧩 API Surface</h2> <div class="section-content"> <div class="release-strip"> <div class="release-chip"><b>Text</b><small><code>model.generate</code></small></div> <div class="release-chip"><b>Image</b><small><code>model.generateimage</code></small></div> <div class="release-chip"><b>Video</b><small><code>model.generatevideo</code></small></div> <div class="release-chip"><b>Speech</b><small><code>model.synthesizespeech</code></small></div> <div class="release-chip"><b>Agent</b><small><code>model.generateagentic</code></small></div> <div class="release-chip"><b>Retrieval</b><small><code>useretrieval=True</code></small></div> <div class="release-chip"><b>Inspect</b><small><code>routefusionstatus</code></small></div> </div> <table> <thead> <tr><th>Call</th><th>Use</th><th>Output</th></tr> </thead> <tbody> <tr><td><span class="status-dot status-pass"></span><code>model.generate(...)</code></td><td>Text generation and code guidance</td><td>Token IDs decoded by the tokenizer</td></tr> <tr><td><span class="status-dot status-pass"></span><code>model.generate(..., useretrieval=True)</code></td><td>Optional retrieval-augmented prompt injection</td><td>Token IDs with the internal retrieval prefix removed from the returned prompt span</td></tr> <tr><td><span class="status-dot status-pass"></span><code>model.generateagentic(...)</code></td><td>Opt-in SmolAgent tool workflow</td><td>Token IDs, or <code>{"text", "metadata"}</code> with <code>returndetails=True</code></td></tr> <tr><td><span class="status-dot status-pass"></span><code>model.generateimage(...)</code></td><td>Diffusion image generation</td><td>PNG path plus route metadata</td></tr> <tr><td><span class="status-dot status-partial"></span><code>model.generatevideo(...)</code></td><td>Short fused video generation</td><td>MP4 path, optional GIF, route metadata</td></tr> <tr><td><span class="status-dot status-partial"></span><code>model.synthesizespeech(...)</code></td><td>Text-to-speech</td><td>WAV path plus audio metadata</td></tr> <tr><td><span class="status-dot status-pass"></span><code>model.transcribeaudio(...)</code></td><td>Whisper listening route</td><td>Transcript payload</td></tr> <tr><td><span class="status-dot status-pass"></span><code>model.encodeaudio(...)</code></td><td>Audio token/code route</td><td>Encoded audio payload</td></tr> <tr><td><span class="status-dot status-pass"></span><code>model.multimodalcontext()</code></td><td>Runtime route inspection</td><td>Recent modality route history and loaded-state info</td></tr> <tr><td><span class="status-dot status-pass"></span><code>model.adapterstatus()</code></td><td>Training provenance</td><td>Merged-weight status and packaged adapter metadata</td></tr> <tr><td><span class="status-dot status-pass"></span><code>model.routefusionstatus(prompt)</code></td><td>Router inspection</td><td>Guidance, thinking, swarm, adapter, and multimodal route state</td></tr> <tr><td><span class="status-dot status-pass"></span><code>model.generatewithpreset(prompt, preset=...)</code></td><td>Task-aware text generation</td><td>Decoded, repaired text with route-specific decoding defaults</td></tr> <tr><td><span class="status-dot status-pass"></span><code>model.deliberategenerate(prompt)</code></td><td>Multi-pass generation</td><td>Draft, critique/check, and revised final answer</td></tr> <tr><td><span class="status-dot status-pass"></span><code>model.verifyoutput(prompt, text)</code></td><td>Verifier</td><td>Lightweight format/code/JSON/source-risk issue report</td></tr> <tr><td><span class="status-dot status-pass"></span><code>model.clearmultimodalruntime()</code></td><td>Cleanup</td><td>Unloads/reset heavy route state where supported</td></tr> </tbody> </table> <div class="callout success"> For the most polished outputs, use <code>generatewithpreset</code> or <code>deliberategenerate</code>. Raw <code>generate</code> stays available for standard Transformers compatibility. </div> <div class="premium-band"> <div class="premium-tile"> <strong>Benchmark-Clean Default</strong> <span><code>generate</code> stays close to the normal Transformers path unless you explicitly request retrieval or guidance.</span> </div> <div class="premium-tile"> <strong>Agentic Metadata</strong> <span><code>returndetails=True</code> returns tools, route, status, and visual/thinking indicators.</span> </div> <div class="premium-tile"> <strong>Route Cleanup</strong> <span><code>clearmultimodal_runtime</code> unloads heavy media routes after demos or batch generation.</span> </div> </div> </div> </div>
<div class="section"> <h2 class="section-title">🛠️ Builder Workflows</h2> <div class="section-content"> <p> Phillnet-2 can be used as a local creative/coding engine inside a broader engineering loop. It can draft web pages, components, game prototypes, utility scripts, documentation, prompts, and media-generation ideas. For production work, pair it with a real editor, tests, linting, and a human review pass. </p> <div class="signal-grid"> <div class="signal-card info"> <h3><span class="icon-bubble"><svg class="svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 5h16v14H4z"/><path d="M8 9h8M8 13h5"/></svg></span>Websites</h3> <p>Useful for first-pass layouts, HTML/CSS/JS drafts, component ideas, and copy. Verify with a browser and real lint/tests.</p> </div> <div class="signal-card info"> <h3><span class="icon-bubble"><svg class="svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 8h12v8H6z"/><path d="M9 12h2M13 12h2"/><path d="M8 16l-2 3M16 16l2 3"/></svg></span>Games</h3> <p>Good for small prototypes, mechanics, UI scaffolds, and asset prompts. Larger games still need an engine loop and iteration.</p> </div> <div class="signal-card pass"> <h3><span class="icon-bubble"><svg class="svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="m8 9 3 3-3 3"/><path d="M13 15h3"/><rect x="3" y="4" width="18" height="16" rx="2"/></svg></span>Code Routing</h3> <p>Code prompts route through the guidance sidecar and keep the main model generation path intact.</p> </div> <div class="signal-card pass"> <h3><span class="icon-bubble"><svg class="svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="3"/><path d="M12 3v3M12 18v3M3 12h3M18 12h3"/></svg></span>Agentic QOL</h3> <p>SmolAgent mode can call retrieval, text, image, video, speech, and indicator tools when a workflow needs more than one route.</p> </div> </div> <div class="grid-2"> <div class="feature-card"> <h3>Websites</h3> <p>Use it to draft HTML/CSS/JS, React/Vite components, landing-page copy, model demos, gallery pages, and documentation sections.</p> </div> <div class="feature-card"> <h3>Games</h3> <p>Useful for simple browser games, canvas prototypes, turn-based mechanics, UI states, asset prompt ideas, and gameplay scaffolding.</p> </div> <div class="feature-card"> <h3>Cursor / Codex Loop</h3> <p>Use Phillnet-2 for local drafts and creative multimodal generation, then use Cursor/Codex-style tooling to patch files, run builds, inspect failures, and iterate.</p> </div> <div class="feature-card"> <h3>Media-Backed Apps</h3> <p>Generate gallery images, short video artifacts, speech samples, and audio/listening route demos from the same repository users load for text.</p> </div> <div class="feature-card"> <h3>Source-Grounded Answers</h3> <p>Use <code>useretrieval=True</code> or the SmolAgent <code>retrievalsearch</code> tool for questions that benefit from current snippets and links.</p> </div> <div class="feature-card"> <h3>Release Demos</h3> <p>Use the generated image gallery, MP4/GIF preview, WAV narration, and benchmark report as a complete Hugging Face model-card demo set.</p> </div> </div> <p> Prompt pattern for code: </p> <pre> Return only code. Create a single-file HTML/CSS/JS browser game. Theme: neon arcade maze. Requirements: keyboard controls, score, restart button, responsive layout. </pre> <p> Prompt pattern for a website: </p> <pre> Return only code. Build a premium responsive landing page in plain HTML and CSS. Subject: local multimodal AI model demo. Include: hero, feature grid, benchmark table, gallery strip, and footer. </pre> <p> Preset generation examples: </p> <pre>
Code preset with automatic code cleanup
html = model.generatewithpreset( "Return only code. Build a single-file HTML/CSS/JS dashboard.", preset="code", )
JSON preset with lightweight repair/checking
payload = model.generatewithpreset( "Return valid JSON with keys: model, status, strengths.", preset="json", )
Deliberate mode for harder planning prompts
answer = model.deliberate_generate( "Plan a small web game project with files, milestones, and test checks.", preset="planning", passes=2, ) </pre> <div class="callout"> For best results, ask for one file or one feature at a time, run the generated code, then feed the error or desired refinement back into the model/tooling loop. </div> </div> </div>
<div class="section"> <h2 class="section-title">📝 Text</h2> <div class="section-content"> <p> Standard causal generation with KV cache enabled: </p> <pre> inputs = tokenizer( "Identify yourself as Phillnet-2 in one sentence.", return_tensors="pt", ).to(model.device)
ids = model.generate( **inputs, maxnewtokens=64, dosample=False, usecache=True, )
print(tokenizer.decode(ids[0][inputs.inputids.shape[1]:], skipspecialtokens=True)) </pre> <p> Example output is saved at <a href="examples/textidentityoutput.txt"><code>examples/textidentity_output.txt</code></a>. </p> </div> </div>
<div class="section"> <h2 class="section-title">🖼️ Image Generation</h2> <div class="section-content"> <p> Use the loaded Phillnet-2 model object. Do not load <code>ImageGen/</code> as a separate public model unless you are debugging the internal image route. </p> <pre> result = model.generateimage( "single premium product photo, clear cut-crystal coffee mug on warm walnut table, golden window light, sharp glass reflections, clean background", outputpath="outputs/crystalmug.png", height=512, width=512, steps=1, seed=1320, generationstrategy="diffusion", guidancescale=0.0, qualitystrength=1.2, latentrefinerstrength=0.0, usememory=False, imagequality_polish=False, )
print(result.metadata) </pre> <p> The image route uses the packaged local <code>ImageGen</code> runtime under the hood, resolved relative to the loaded model repository instead of the Transformers dynamic-module cache. The public route uses the same fused path as the base ImageGen project: local Phillnet adapter conditioning plus the packaged SDXL Turbo text encoders/tokenizers, local UNet/VAE weights, and the SDXL Turbo scheduler config. For Turbo-style sampling, <code>guidancescale=0.0</code> is used and negative prompts are not required. The final public preset uses the clean one-step route with the extra image-polish pass disabled to avoid subtle latent texture noise. </p> <table> <thead> <tr><th>Preset</th><th>Call Settings</th><th>Use Case</th></tr> </thead> <tbody> <tr><td><span class="status-dot status-pass"></span>Default showcase</td><td><code>steps=1</code>, <code>guidancescale=0.0</code>, <code>qualitystrength=1.2</code>, <code>latentrefinerstrength=0.0</code>, <code>usememory=False</code>, <code>imagequalitypolish=False</code></td><td>Clean public examples and product-style images</td></tr> <tr><td><span class="status-dot status-partial"></span>Experimental polish</td><td>Optional multi-step or polish passes</td><td>Manual experiments only; not the packaged public preset</td></tr> <tr><td><span class="status-dot status-pass"></span>Stable sizing</td><td><code>height=512</code>, <code>width=512</code></td><td>Most reliable route; larger outputs can work but cost more memory</td></tr> </tbody> </table> <p> For sharper images, prefer better prompt structure over heavy guidance: subject, material, lighting, composition, and background. The route already keeps the UNet canvas at a stable internal size and then returns the requested output size. </p> </div> </div>
<div class="section"> <h2 class="section-title">🎨 Multiple Images</h2> <div class="section-content"> <p> The reproducible gallery script is included at <a href="examples/generateimagegallery.py"><code>examples/generateimagegallery.py</code></a>. </p> <pre> python examples/generateimagegallery.py --model-dir . --out-dir examples/generatedimagegallery </pre> <p> The script loads Phillnet-2 once through <code>AutoModelForCausalLM</code>, calls <code>model.generateimage(...)</code> for each prompt, and writes a contact sheet plus a prompt manifest. The final public gallery was regenerated locally at <code>512x512</code> with <code>1</code> diffusion step, <code>guidancescale=0.0</code>, <code>qualitystrength=1.2</code>, <code>latentrefinerstrength=0.0</code>, <code>usememory=False</code>, and <code>imagequalitypolish=False</code> through the same packaged Phillnet image route a user calls from this repository. This follows the SDXL-Turbo one-step path and avoids the extra polish/refiner passes that made earlier drafts look noisier. </p> <p>Current public image examples, generated through Phillnet-2 itself:</p> <img src="examples/generatedimagegallery/contactsheet.png" alt="Phillnet-2 generated asset collage" style="width:100%; border-radius: 15px;"> <img src="examples/generatedimagegallery/01photorealredmug.png" alt="Phillnet-2 generated photoreal red mug" style="width:100%; border-radius: 15px;"> <p>Generated gallery files:</p> <ul> <li><a href="examples/generatedimagegallery/01photorealredmug.png"><code>examples/generatedimagegallery/01photorealredmug.png</code></a></li> <li><a href="examples/generatedimagegallery/02animatedrobot.png"><code>examples/generatedimagegallery/02animatedrobot.png</code></a></li> <li><a href="examples/generatedimagegallery/03archvizglasscity.png"><code>examples/generatedimagegallery/03archvizglasscity.png</code></a></li> <li><a href="examples/generatedimagegallery/04editorialrainportrait.png"><code>examples/generatedimagegallery/04editorialrainportrait.png</code></a></li> <li><a href="examples/generatedimagegallery/05luxuryaisphere.png"><code>examples/generatedimagegallery/05luxuryaisphere.png</code></a></li> <li><a href="examples/generatedimagegallery/06cinematicobservatory.png"><code>examples/generatedimagegallery/06cinematicobservatory.png</code></a></li> <li><a href="examples/generatedimagegallery/07macroheadphones.png"><code>examples/generatedimagegallery/07macroheadphones.png</code></a></li> <li><a href="examples/generatedimagegallery/08naturetechdrone.png"><code>examples/generatedimagegallery/08naturetechdrone.png</code></a></li> <li><a href="examples/generatedimagegallery/09blueprintwatch.png"><code>examples/generatedimagegallery/09blueprintwatch.png</code></a></li> <li><a href="examples/generatedimagegallery/10neonalleynotext.png"><code>examples/generatedimagegallery/10neonalleynotext.png</code></a></li> <li><a href="examples/generatedimagegallery/11solarhomearchviz.png"><code>examples/generatedimagegallery/11solarhomearchviz.png</code></a></li> <li><a href="examples/generatedimagegallery/12conceptglasscar.png"><code>examples/generatedimagegallery/12conceptglasscar.png</code></a></li> <li><a href="examples/generatedimagegallery/13underwateroceanlab.png"><code>examples/generatedimagegallery/13underwateroceanlab.png</code></a></li> <li><a href="examples/generatedimagegallery/14quantumchipmacro.png"><code>examples/generatedimagegallery/14quantumchipmacro.png</code></a></li> <li><a href="examples/generatedimagegallery/15creatorstudiophoto.png"><code>examples/generatedimagegallery/15creatorstudiophoto.png</code></a></li> <li><a href="examples/generatedimagegallery/16desertroverposter.png"><code>examples/generatedimagegallery/16desertroverposter.png</code></a></li> <li><a href="examples/generatedimagegallery/17galleryglassflower.png"><code>examples/generatedimagegallery/17galleryglassflower.png</code></a></li> <li><a href="examples/generatedimagegallery/18medicaltabletrender.png"><code>examples/generatedimagegallery/18medicaltabletrender.png</code></a></li> <li><a href="examples/generatedimagegallery/19arcticservermodule.png"><code>examples/generatedimagegallery/19arcticservermodule.png</code></a></li> <li><a href="examples/generatedimagegallery/20retrosynthstudio.png"><code>examples/generatedimagegallery/20retrosynthstudio.png</code></a></li> </ul> </div> </div>
<div class="section"> <h2 class="section-title">🎬 Video</h2> <div class="section-content"> <p> Generate short clips through the VideoGen route. Video keyframes use the same corrected ImageGen defaults as still images: <code>512x512</code>, <code>1</code> image step, <code>guidancescale=0.0</code>, <code>qualitystrength=1.2</code>, <code>latentrefinerstrength=0.0</code>, <code>usememory=False</code>, and <code>imagequalitypolish=False</code>. </p> <pre> video = model.generatevideo( "premium product advertisement for a transparent AI crystal sphere on a matte black plinth, cinematic studio lighting, slow camera push in, elegant reflective floor, no text, no logos", outputpath="outputs/videoshowcasead.mp4", backend="composer", seconds=3, fps=8, width=512, height=512, imagesteps=1, guidancescale=0.0, qualitystrength=1.2, latentrefinerstrength=0.0, usememory=False, imagequalitypolish=False, minframes=16, exportgif=True, keeploaded=False, )
print(video.metadata) </pre> <p> Optional sound is routed through the same package: pass <code>audiopath="examples/speechidentity.wav"</code> to mux an existing track, or pass <code>audiotext="..."</code> to synthesize narration through <code>model.synthesizespeech(...)</code> and attach it to the MP4 when FFmpeg is available. </p> <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:16px 0;"> <div style="border:1px solid #365f8f;border-radius:12px;padding:14px;background:#071528;"> <b style="color:#83c5ff;">Visual route</b> <p style="margin:8px 0 0;">ImageGen keyframes use the same clean <code>512x512</code>, one-step route as the asset gallery, then VideoGen interpolates and stabilizes the timeline.</p> </div> <div style="border:1px solid #6b5f29;border-radius:12px;padding:14px;background:#1c1607;"> <b style="color:#ffd166;">Audio route</b> <p style="margin:8px 0 0;"><code>audiotext="auto"</code> creates prompt-aware narration from the actual scene and camera motion; <code>audiopath</code> muxes an existing track.</p> </div> <div style="border:1px solid #3b7f5b;border-radius:12px;padding:14px;background:#071a12;"> <b style="color:#8ff0b4;">SFX timeline</b> <p style="margin:8px 0 0;"><code>sfxprompt</code> and inferred ambience cues are stored in metadata for future sound-effect fine-tuning, without claiming speech synthesis is an SFX model.</p> </div> </div> <p> With <code>alignaudio=True</code>, VideoGen resolves or synthesizes audio before interpolation, expands <code>effectiveseconds</code> to match the audio duration, and computes the final frame count from <code>effectiveseconds * fps</code>. The composer backend also raises <code>plannedkeyframes</code> from the aligned duration through <code>keyframeintervalseconds</code>, so long narration or input audio gets multiple visual anchors instead of one stretched frame sequence. With <code>conditiononaudio=True</code>, input audio is routed through listening/encoding first and its summary conditions the visual storyboard. </p> <pre> video = model.generatevideo( "premium product advertisement for a transparent AI crystal sphere on a matte black plinth, cinematic studio lighting, slow camera push in, elegant reflective floor, no text, no logos", outputpath="outputs/videoshowcaseadwithnarration.mp4", seconds=3, fps=8, minframes=16, audiotext="auto", sfxprompt="quiet premium studio ambience, subtle glass shimmer, gentle cinematic fade", alignaudio=True, conditiononaudio=True, keyframeinterval_seconds=4.0, )
print(video.metadata["timeline"]) print(video.metadata["audiosfxcues"]) print(video.metadata["plannedkeyframes"]) </pre> <p> Final example output generated through <code>model.generatevideo(...)</code>. The GIF is included for model-card preview; the MP4 includes the aligned AAC audio stream for local playback. </p> <img src="examples/videoshowcasead.gif" alt="Phillnet-2 generated product video GIF" style="border-radius: 15px;"> <video controls playsinline preload="metadata" poster="examples/generatedimagegallery/05luxuryaisphere.png" style="width:100%;border-radius:15px;margin-top:12px;"> <source src="examples/videoshowcasead.mp4" type="video/mp4"> <a href="examples/videoshowcasead.mp4">Open generated MP4 video</a> </video> <p> Files: <a href="examples/videoshowcasead.gif"><code>examples/videoshowcasead.gif</code></a>, <a href="examples/videoshowcasead.mp4"><code>examples/videoshowcasead.mp4</code></a>, and the generated narration stem <a href="examples/videoshowcasead.wav"><code>examples/videoshowcase_ad.wav</code></a>. </p> </div> </div>
<div class="section"> <h2 class="section-title">🔊 Speech And Audio</h2> <div class="section-content"> <p> Synthesize speech directly from the loaded model. The examples below are short demo lines; video narration can also be created automatically from the video prompt with <code>audiotext="auto"</code>. </p> <pre> speech = model.synthesizespeech( "A warm studio close-up frames a glossy ceramic mug as the camera slowly pushes toward the handle and reflected window light.", outputpath="outputs/speechidentity.wav", )
speech = model.synthesizespeech( "The multimodal route can generate clean image keyframes, compose a short video timeline, synthesize narration, and mux audio into the final MP4.", outputpath="outputs/speechmultimodalsurface.wav", )
print(speech.metadata) </pre> <p> Audio examples generated through <code>model.synthesizespeech(...)</code>: </p> <ul> <li><a href="examples/speechidentity.wav"><code>examples/speechidentity.wav</code></a></li> <li><a href="examples/speechmultimodalsurface.wav"><code>examples/speechmultimodalsurface.wav</code></a></li> </ul> <audio controls preload="metadata" style="width:100%;"> <source src="examples/speechidentity.wav" type="audio/wav"> <a href="examples/speechidentity.wav">Open speech identity WAV</a> </audio> <audio controls preload="metadata" style="width:100%;margin-top:8px;"> <source src="examples/speechmultimodalsurface.wav" type="audio/wav"> <a href="examples/speechmultimodalsurface.wav">Open speech multimodal WAV</a> </audio> <audio controls preload="metadata" style="width:100%;margin-top:8px;"> <source src="examples/videoshowcasead.wav" type="audio/wav"> <a href="examples/videoshowcase_ad.wav">Open final video narration WAV</a> </audio> <p> Whisper listening assets are packaged under <code>Audio/models/Phillnet-2-Whisper-Large-V3-Turbo</code>. </p> </div> </div>
<div class="section"> <h2 class="section-title">🧩 SmolAgent Runtime</h2> <div class="section-content"> <p> The opt-in agentic path now uses a <code>smolagents</code> adapter instead of the legacy custom loop. Normal <code>model.generate(...)</code> remains the benchmark-clean default. Use <code>model.generateagentic(...)</code> when you want a tool-aware workflow over Phillnet's local retrieval, image, video, speech, and indicator routes. </p> <pre> agentic = model.generateagentic( prompt="Plan a short product demo, generate the visuals, and report the route indicators.", maxsteps=1, maxnewtokens=256, returndetails=True, )
print(agentic["text"]) print(agentic["metadata"]["tools"]) print(agentic["metadata"]["visualindicators"]) </pre> <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:16px 0;"> <div style="border:1px solid #365f8f;border-radius:12px;padding:14px;background:#071528;"> <b style="color:#83c5ff;">Tools</b> <p style="margin:8px 0 0;"><code>retrievalsearch</code>, <code>basegenerate</code>, <code>generateimage</code>, <code>generatevideo</code>, <code>synthesizespeech</code>, and <code>thinking_indicators</code> are exposed as agent tools.</p> </div> <div style="border:1px solid #3b7f5b;border-radius:12px;padding:14px;background:#071a12;"> <b style="color:#8ff0b4;">Indicators</b> <p style="margin:8px 0 0;">The run metadata reports thinking budget, route state, recent multimodal calls, and loaded visual/audio/video modules for inspection.</p> </div> <div style="border:1px solid #6b5f29;border-radius:12px;padding:14px;background:#1c1607;"> <b style="color:#ffd166;">Default Policy</b> <p style="margin:8px 0 0;">Agentic mode is intentionally opt-in because tool loops are slower and can be brittle on a small local backbone. Use it for workflow orchestration, not closed-book benchmark scoring.</p> </div> </div> </div> </div>
<div class="section"> <h2 class="section-title">🧭 Runtime Context</h2> <div class="section-content"> <p> After modality calls, inspect the route history: </p> <pre> print(model.multimodalcontext()) print(model.adapterstatus()) print(model.routefusionstatus("Return only code. Build a website.")) print(model.packruntimecontext("Summarize this repo and produce a JSON report.")) model.clearmultimodalruntime() </pre> <p> This confirms which modality routes were used, whether heavy image/video/audio modules remain loaded, which adapter provenance is packaged, and which route/preset the orchestration layer would choose. </p> </div> </div>
<div class="section"> <h2 class="section-title">📂 Example Files</h2> <div class="section-content"> <ul> <li><a href="examples/generateimagegallery.py"><code>examples/generateimagegallery.py</code></a>: loads the full model and generates multiple images through <code>model.generateimage</code>.</li> <li><a href="examples/runmultimodaldemo.py"><code>examples/runmultimodaldemo.py</code></a>: one-file text, image, video, and speech smoke demo through the loaded model object.</li> <li><a href="examples/contactsheet.png"><code>examples/contactsheet.png</code></a>: public image contact sheet.</li> <li><a href="examples/generatedimagegallery/manifest.md"><code>examples/generatedimagegallery/manifest.md</code></a>: prompts used for the public image gallery.</li> <li><a href="examples/imagemug.png"><code>examples/imagemug.png</code></a>: generated image example.</li> <li><a href="examples/videoshowcasead.gif"><code>examples/videoshowcasead.gif</code></a>: generated aligned video GIF preview.</li> <li><a href="examples/videoshowcasead.mp4"><code>examples/videoshowcasead.mp4</code></a>: generated aligned MP4 with AAC audio.</li> <li><a href="examples/videoshowcasead.wav"><code>examples/videoshowcasead.wav</code></a>: generated narration stem used for the final MP4.</li> <li><a href="examples/speechidentity.wav"><code>examples/speechidentity.wav</code></a>: generated speech identity example.</li> <li><a href="examples/speechmultimodalsurface.wav"><code>examples/speechmultimodalsurface.wav</code></a>: generated speech capability example.</li> <li><a href="examples/textidentityoutput.txt"><code>examples/textidentityoutput.txt</code></a>: generated text example.</li> <li><a href="examples/oneshotwebsitedemo.html"><code>examples/oneshotwebsitedemo.html</code></a>: actual one-shot website artifact generated by the upload package.</li> <li><a href="examples/oneshotwebsitedemo.png"><code>examples/oneshotwebsite_demo.png</code></a>: browser screenshot of the generated website artifact.</li> </ul> </div> </div>
<div class="section"> <h2 class="section-title">📊 Benchmark Summary</h2> <div class="section-content"> <div class="premium-band"> <div class="premium-tile"> <strong>Text Smoke</strong> <span><code>66.7%</code> after long-form guidance routing fix</span> </div> <div class="premium-tile"> <strong>Code Smoke</strong> <span><code>66.7%</code> with CodeGuidanceSystem route active</span> </div> <div class="premium-tile"> <strong>Multimodal Smoke</strong> <span><code>100.0%</code> route-level public API validation</span> </div> <div class="premium-tile"> <strong>lm-eval Slice</strong> <span>Bounded local evaluator results, not leaderboard submission</span> </div> </div> <p> Benchmark harness folder used locally: <code>benchmarks_phillnet2/</code> beside this upload folder. </p> <div class="detail"> <span class="detail-icon">ℹ️</span> These are release-readiness smoke results, not SOTA claims. The root language weights were continued-trained with a 1000-step LoRA run on <code>teknium/openhermes</code> and <code>nvidia/OpenCodeInstruct</code>, then merged back into <code>model.safetensors</code> so the standard public load path uses the trained weights directly. The upload-facing benchmark script was rerun against the final package after the long-form sidecar-scaffold routing fix. Image, video, and audio artifact checks passed as route/artifact validation; they are not official media-quality leaderboard scores. </div>
<h3>PhillNet-2 Benchmark Visuals</h3> <p> Release-readiness benchmark visuals for the experimental AXIOM multimodal GPT-OSS runtime. These charts summarize local smoke validation and bounded <code>lm-evaluation-harness</code> slices. </p>
<p>High-level benchmark panel for quick model-card scanning.</p>
<p>Local release-readiness smoke results. These are not SOTA or official leaderboard claims.</p>
<p>Bounded <code>lm-evaluation-harness</code> slice using primary metrics per task.</p>
<p>Visual status card for text, code, image, video, audio, and multimodal route validation.</p>
<p>Actual one-shot website artifact from <code>testoneshotwebsite.py</code>, rendered from <code>examples/oneshotwebsitedemo.html</code>.</p>
<table> <thead> <tr><th>Suite</th><th>Score</th><th>Bar</th></tr> </thead> <tbody> <tr><td><span class="status-dot status-pass"></span>HF folder validation</td><td>100.0%</td><td class="bar">██████████████████</td></tr> <tr><td><span class="status-dot status-partial"></span>Text local smoke</td><td>66.7%</td><td class="bar">████████████░░░░░░</td></tr> <tr><td><span class="status-dot status-partial"></span>Code local smoke</td><td>66.7%</td><td class="bar">████████████░░░░░░</td></tr> <tr><td><span class="status-dot status-pass"></span>Agent mock smoke</td><td>100.0%</td><td class="bar">██████████████████</td></tr> <tr><td><span class="status-dot status-pass"></span>Image artifacts</td><td>100.0%</td><td class="bar">██████████████████</td></tr> <tr><td><span class="status-dot status-pass"></span>Video artifacts</td><td>100.0%</td><td class="bar">██████████████████</td></tr> <tr><td><span class="status-dot status-pass"></span>Audio artifacts</td><td>100.0%</td><td class="bar">██████████████████</td></tr> <tr><td><span class="status-dot status-pass"></span>Multimodal smoke</td><td>100.0%</td><td class="bar">██████████████████</td></tr> </tbody> </table>
<h3>One-Shot Website Upload Test</h3> <div class="callout success"> The website test uses the packaged upload folder directly. The CodeGuidance sidecar is retained as an advisory scaffold, while the main model generates the final HTML artifact. </div> <table> <thead> <tr><th>Check</th><th>Result</th></tr> </thead> <tbody> <tr><td>Command</td><td><code>py testoneshotwebsite.py</code></td></tr> <tr><td>Prompt recipe</td><td>Return only code; build a complete single-file responsive HTML/CSS landing page for a local AI startup called Phillnet; include sticky nav, hero, CTA, three feature cards, three pricing tiers, footer, dark theme, and blue accent; end with <code></html></code>.</td></tr> <tr><td>Generated artifact</td><td><a href="examples/oneshotwebsitedemo.html"><code>examples/oneshotwebsitedemo.html</code></a></td></tr> <tr><td>Raw model output</td><td><a href="examples/oneshotwebsiterawoutput.txt"><code>examples/oneshotwebsiterawoutput.txt</code></a></td></tr> <tr><td>Rendered screenshot</td><td><a href="examples/oneshotwebsitedemo.png"><code>examples/oneshotwebsitedemo.png</code></a></td></tr> <tr><td>Passes used</td><td>1</td></tr> <tr><td>HTML character count</td><td>11,713</td></tr> <tr><td>Deterministic repair used</td><td>No</td></tr> <tr><td>Closed HTML document</td><td>Yes</td></tr> <tr><td>Detected sections</td><td><code>head</code>, <code>style</code>, <code>body</code>, <code>nav</code>, <code>hero</code>, <code>features</code>, <code>pricing</code>, and <code>footer</code></td></tr> </tbody> </table>
<h3>Continued Training Pass</h3> <div class="callout success"> The root model weights already include this training merge. The packaged adapter folder is included for provenance and auditability, not as an extra user requirement. </div> <table> <thead> <tr><th>Item</th><th>Result</th></tr> </thead> <tbody> <tr><td>Method</td><td>LoRA continued training, rank 16, alpha 32, merged into the root model weights</td></tr> <tr><td>Datasets</td><td><code>teknium/openhermes</code> + <code>nvidia/OpenCodeInstruct</code></td></tr> <tr><td>Steps</td><td>1000 optimizer steps, max sequence length 768, gradient accumulation 8</td></tr> <tr><td>Trainable adapter parameters</td><td>10,822,656 during training before merge</td></tr> <tr><td>Runtime</td><td>12024.5 seconds on local RTX 3060</td></tr> <tr><td>Final train loss</td><td>0.9148</td></tr> <tr><td>Local text smoke</td><td>55.6% before training, 66.7% after merged training and long-form guidance routing fix</td></tr> <tr><td>Local code smoke</td><td>83.3% after merged training in the earlier code-only route pass; 66.7% in the latest rerun after guidance-sidecar prompt tightening</td></tr> <tr><td>Adapter provenance</td><td><code>adapters/phillnet2-text-continuation-lora-r16-openhermes-opencode-1000steps/</code> included for inspection; not required for normal loading</td></tr> </tbody> </table>
<h3>Fused Routing Layer</h3> <div class="callout warning"> Route fusion here means a coordinated runtime path for guidance, thinking, swarm inspection, adapter provenance, and multimodal dispatch. It is not an official MoE leaderboard claim. </div> <table> <thead> <tr><th>Route</th><th>Status</th><th>Purpose</th></tr> </thead> <tbody> <tr><td>Guidance</td><td>enabled selectively by default and always available with <code>useguidance=True</code></td><td>Uses compact internal guidance for complex tasks; long-form website/game/frontend prompts use the sidecar as an advisory scaffold while the main model remains responsible for the final generated artifact</td></tr> <tr><td>Thinking</td><td>configured through <code>showthinking</code>, <code>extendedthinking</code>, and <code>thinkingbudgettokens</code></td><td>Keeps planning budget visible and inspectable instead of hidden behind an undocumented route</td></tr> <tr><td>Swarm</td><td><code>useagenticscaffold=True</code></td><td>Provides task-signal detection and discussion scaffolding without mutating KV cache state</td></tr> <tr><td>Adapter</td><td>1000-step LoRA merged into root weights</td><td>Normal model loading receives the trained text behavior directly</td></tr> <tr><td>Inspection</td><td><code>model.routefusion_status(prompt)</code></td><td>Reports guidance, thinking, swarm, adapter, and multimodal state for debugging and demos</td></tr> </tbody> </table>
<h3>Official lm-eval Benchmark Slice</h3> <table> <thead> <tr><th>Harness</th><th>Task</th><th>Limit</th><th>Metric</th><th>Result</th></tr> </thead> <tbody> <tr><td><code>lm-evaluation-harness</code></td><td><code>arceasy</code></td><td>10 examples</td><td>accuracy</td><td>0.700</td></tr> <tr><td><code>lm-evaluation-harness</code></td><td><code>arceasy</code></td><td>10 examples</td><td>normalized accuracy</td><td>0.700</td></tr> <tr><td><code>lm-evaluation-harness</code></td><td><code>hellaswag</code></td><td>10 examples</td><td>accuracy</td><td>0.300</td></tr> <tr><td><code>lm-evaluation-harness</code></td><td><code>hellaswag</code></td><td>10 examples</td><td>normalized accuracy</td><td>0.400</td></tr> <tr><td><code>lm-evaluation-harness</code></td><td><code>lambadaopenai</code></td><td>10 examples</td><td>accuracy</td><td>0.300</td></tr> <tr><td><code>lm-evaluation-harness</code></td><td><code>lambadaopenai</code></td><td>10 examples</td><td>perplexity</td><td>13.093</td></tr> <tr><td><code>lm-evaluation-harness</code></td><td><code>piqa</code></td><td>10 examples</td><td>accuracy</td><td>0.700</td></tr> <tr><td><code>lm-evaluation-harness</code></td><td><code>piqa</code></td><td>10 examples</td><td>normalized accuracy</td><td>0.700</td></tr> <tr><td><code>lm-evaluation-harness</code></td><td><code>winogrande</code></td><td>10 examples</td><td>accuracy</td><td>0.800</td></tr> <tr><td><code>lm-evaluation-harness</code></td><td><code>gsm8k</code></td><td>10 examples</td><td>exact match, strict</td><td>0.300</td></tr> <tr><td><code>lm-evaluation-harness</code></td><td><code>gsm8k</code></td><td>10 examples</td><td>exact match, flexible</td><td>0.300</td></tr> <tr><td><code>lm-evaluation-harness</code></td><td><code>truthfulqamc1</code></td><td>10 examples</td><td>accuracy</td><td>0.300</td></tr> </tbody> </table> <p> This final upload-facing slice was rerun on 2026-05-25 with <code>py runlmevalcompat.py --model-dir . --tasks arceasy,hellaswag,lambadaopenai,piqa,winogrande,gsm8k,truthfulqamc1 --limit 10 --device cuda:0 --out reports/finallmevalslice</code>. The JSON report is included at <a href="reports/finallmevalslice/results.json"><code>reports/finallmevalslice/results.json</code></a>. The wrapper supports <code>lm_eval 0.4.9.2</code> + <code>transformers 5.3.0</code>, because that <code>lm-eval</code> release still references <code>AutoModelForVision2Seq</code> while Transformers 5 exposes <code>AutoModelForImageTextToText</code>. </p>
<h3>How To Read These Scores</h3> <div class="grid-2"> <div class="feature-card"> <h3>Release Readiness</h3> <p>HF validation, CUDA bf16 load, KV cache, runtime-root resolution, and route presence show that the package is structurally upload-ready.</p> </div> <div class="feature-card"> <h3>Model Quality</h3> <p>The bounded lm-eval slices are real evaluator runs, but they use limits and should not be treated as full benchmark-suite leaderboards.</p> </div> <div class="feature-card"> <h3>Media Routes</h3> <p>Image generation was rerun with real generated outputs. Video/audio numbers are artifact-route validation unless an official media-quality evaluator is installed and run.</p> </div> <div class="feature-card"> <h3>Competition Framing</h3> <p>Phillnet-2 is positioned as a serious experimental multimodal runtime. It should be compared to other models only with identical tasks, limits, prompts, and hardware.</p> </div> </div>
<h3>Code Guidance Route</h3> <table> <thead> <tr><th>Check</th><th>Result</th></tr> </thead> <tbody> <tr><td>Local code smoke</td><td>4 / 6 tasks passed in the latest rerun</td></tr> <tr><td>Measured pass rate</td><td>66.7%</td></tr> <tr><td>Route</td><td>small code-only prompts can use the CodeGuidanceSystem sidecar; long-form website/game/frontend prompts remain on the main model path with compact routing guidance</td></tr> <tr><td>Language routing</td><td>Python, JavaScript, TypeScript, Java, C++, C#, Go, Rust, SQL, HTML, CSS, Bash, and PowerShell prompt detection</td></tr> <tr><td>Optional coding suite status</td><td>EvalPlus installed; full HumanEval+/MBPP+ generation was not run in this pass</td></tr> <tr><td>Skipped official coding suites</td><td>SWE-bench was not downloaded/run</td></tr> </tbody> </table>
<h3>Local Vending-Style Agent Smoke</h3> <table> <thead> <tr><th>Metric</th><th>Result</th></tr> </thead> <tbody> <tr><td>Official Vending-Bench</td><td>No, local smoke only</td></tr> <tr><td>Days completed</td><td>10 / 10</td></tr> <tr><td>Valid JSON decision rate</td><td>20.0%</td></tr> <tr><td>Final cash</td><td>$521.30</td></tr> <tr><td>Bankrupt</td><td>No</td></tr> </tbody> </table>
<h3>Image Generation Details (Real Generated Run)</h3> <table> <thead> <tr><th>Prompt ID</th><th>Result</th></tr> </thead> <tbody> <tr><td><code>mug</code></td><td>generated 128x128 PNG</td></tr> <tr><td><code>headphones</code></td><td>generated 128x128 PNG</td></tr> <tr><td><code>city</code></td><td>generated 128x128 PNG</td></tr> <tr><td><code>spatial</code></td><td>generated 128x128 PNG</td></tr> </tbody> </table>
<h3>Validated Release Properties</h3> <table> <thead> <tr><th>Property</th><th>Result</th></tr> </thead> <tbody> <tr><td><span class="status-dot status-pass"></span>Model identity</td><td>Phillnet-2</td></tr> <tr><td><span class="status-dot status-pass"></span>HF custom-code load</td><td><code>trustremotecode=True</code></td></tr> <tr><td><span class="status-dot status-pass"></span>Public load path</td><td><code>AutoTokenizer</code> / <code>AutoModelForCausalLM</code></td></tr> <tr><td><span class="status-dot status-pass"></span>Runtime root</td><td>loaded repository folder, not dynamic-module cache</td></tr> <tr><td><span class="status-dot status-pass"></span>CUDA dtype smoke</td><td><code>torch.bfloat16</code> verified locally</td></tr> <tr><td><span class="status-dot status-pass"></span>KV cache</td><td>enabled for text generation</td></tr> <tr><td><span class="status-dot status-pass"></span>Image route</td><td>artifact present, packaged local ImageGen route</td></tr> <tr><td><span class="status-dot status-pass"></span>Image prompt route</td><td>SDXL text encoders/tokenizers + local UNet/VAE + Phillnet adapter conditioning</td></tr> <tr><td><span class="status-dot status-pass"></span>Video route</td><td>MP4/GIF artifact present in the upload smoke run</td></tr> <tr><td><span class="status-dot status-pass"></span>Audio route</td><td>WAV artifact present in the upload smoke run</td></tr> <tr><td><span class="status-dot status-pass"></span>Cleanup</td><td>image/video/audio runtimes can be unloaded after calls</td></tr> </tbody> </table>
<h3>Skipped Or Partial Official Integrations</h3> <ul> <li><strong><code>lm-evaluation-harness</code>:</strong> bounded benchmark slices were run successfully after the 1000-step merged training pass. Full official task suites were not run.</li> <li><strong>EvalPlus HumanEval+/MBPP+:</strong> package installed; full generated-code suite not run in this pass.</li> <li><strong>BrowserGym / Inspect stack:</strong> install attempted, but Python 3.14 Windows native wheels for <code>greenlet</code>/<code>lxml</code> were not available and local compilation failed.</li> <li><strong>Vending-Bench / Vending-Bench 2:</strong> official suite not installed/run locally. A short local vending-style smoke was run and reported above, but it is not the Andon Labs benchmark.</li> <li><strong>SWE-bench, OSWorld, WebArena, BrowserGym, T2I-CompBench, VBench:</strong> heavy optional suites; install and run explicitly for leaderboard-style comparisons.</li> </ul> </div> </div>
<div class="section"> <h2 class="section-title">🚧 Limitations</h2> <div class="section-content"> <p> Phillnet-2 is an experimental custom-code multimodal runtime. The included examples prove package loading, route wiring, artifact generation, CUDA bf16 loading, and local runtime resolution. They do not establish official leaderboard quality or SOTA status. Use <code>trustremotecode=True</code> only in environments where you trust this repository. </p> <ul> <li>Full official leaderboards such as SWE-bench, OSWorld, WebArena, BrowserGym, T2I-CompBench, VBench, and official Vending-Bench were not completed in this release pass.</li> <li>The image route is validated through real local generation, but the bundled gallery is not an official T2I benchmark.</li> <li>Video and audio routes expose packaged generation/listening APIs, but the current public numbers are route/artifact validation rather than official media-quality leaderboard scores.</li> <li>Model quality should be compared using the exact benchmark command, task limit, hardware, dependency versions, and prompt format reported by each evaluator.</li> </ul> </div> </div>
<div class="section"> <h2 class="section-title">✅ Public Release Checklist</h2> <div class="section-content"> <table> <thead> <tr><th>Status</th><th>Release Item</th></tr> </thead> <tbody> <tr><td><span class="status-dot status-pass"></span>Ready</td><td>Loads through <code>AutoTokenizer</code> and <code>AutoModelForCausalLM</code> with <code>trustremotecode=True</code></td></tr> <tr><td><span class="status-dot status-pass"></span>Ready</td><td>Runtime root resolves to the uploaded repository folder</td></tr> <tr><td><span class="status-dot status-pass"></span>Ready</td><td>CUDA bf16 load verified locally</td></tr> <tr><td><span class="status-dot status-pass"></span>Ready</td><td>KV cache remains enabled for text generation</td></tr> <tr><td><span class="status-dot status-pass"></span>Ready</td><td>Image route uses packaged local text encoders/tokenizers, UNet/VAE, scheduler config, and adapter conditioning</td></tr> <tr><td><span class="status-dot status-pass"></span>Ready</td><td>Examples and generated media are included under <code>examples/</code></td></tr> <tr><td><span class="status-dot status-pass"></span>Ready</td><td>Benchmark visuals and bounded benchmark tables are included with honest labels</td></tr> <tr><td><span class="status-dot status-pass"></span>Ready</td><td>Cache, local results, test clutter, and training clutter were kept out of the upload folder</td></tr> <tr><td><span class="status-dot status-pass"></span>Ready</td><td>Creator attribution and suggested citation are included</td></tr> </tbody> </table> </div> </div>
<div class="section"> <h2 class="section-title">📜 Attribution, Usage, And License</h2> <div class="section-content"> <p> Phillnet-2 is released under the <strong>Apache 2.0</strong> license. The official public model package is <code>Ayjays132/phillnet-2</code>. </p> <p> Created by <strong>Ayjays132</strong>, also known as <strong>Young Philly P.</strong> and <strong>Phillip A. Holland</strong>. If you use Phillnet-2 in research, demos, apps, derivatives, benchmarks, screenshots, generated media showcases, public writeups, or downstream model packages, please credit the creator and link back to the official model repository. </p> <div class="grid-2"> <div class="feature-card"> <h3>Credit Line</h3> <p>Phillnet-2 by Ayjays132 / Young Philly P. / Phillip A. Holland.</p> </div> <div class="feature-card"> <h3>Official Source</h3> <p><code>Ayjays132/phillnet-2</code> is the canonical public Hugging Face package for this release.</p> </div> <div class="feature-card"> <h3>Derivative Use</h3> <p>If you modify, fine-tune, wrap, benchmark, or redistribute the model, keep clear attribution to the original Phillnet-2 work.</p> </div> <div class="feature-card"> <h3>Generated Media</h3> <p>When showing examples generated through this package, note that they were generated with Phillnet-2 where practical.</p> </div> </div> <p> Suggested citation text: </p> <pre> Phillnet-2, an AXIOM multimodal GPT-OSS runtime by Ayjays132 (Young Philly P. / Phillip A. Holland), available as Ayjays132/phillnet-2. </pre> <p> Suggested BibTeX: </p> <pre> @misc{phillnet2_2026, title = {Phillnet-2: AXIOM Multimodal GPT-OSS Runtime}, author = {Ayjays132 / Young Philly P. / Phillip A. Holland}, year = {2026}, howpublished = {Hugging Face model package: Ayjays132/phillnet-2}, note = {Custom-code multimodal runtime with text, code guidance, image, video, speech, and audio routes} } </pre> <div class="callout"> Public release note: this model card, examples, benchmark visuals, and usage snippets are prepared so users can load the official package, understand what was tested, credit the creator, and reproduce the same public API path. </div> </div> </div>
</div>
