neuralnode 2.1.1__tar.gz → 2.1.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. {neuralnode-2.1.1 → neuralnode-2.1.3}/PKG-INFO +24 -6
  2. {neuralnode-2.1.1 → neuralnode-2.1.3}/README.md +21 -5
  3. {neuralnode-2.1.1 → neuralnode-2.1.3}/docs/documentation.md +20 -5
  4. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/01_basic_usage.py +5 -5
  5. neuralnode-2.1.3/examples/horus_codes_camples/02_horus_lens.py +16 -0
  6. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/03_one_liner.py +1 -1
  7. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/19_gguf_4bit.py +1 -1
  8. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/20_gguf_5bit.py +1 -1
  9. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/21_gguf_6bit.py +1 -1
  10. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/22_gguf_8bit.py +1 -1
  11. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/23_gguf_16bit.py +1 -1
  12. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/25_interactive_chat.py +1 -1
  13. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/README.md +8 -7
  14. neuralnode-2.1.3/examples/horus_download_guide.py +39 -0
  15. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_tq_ready_gguf.py +2 -2
  16. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_transformers_features.py +6 -15
  17. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/thinking_mode_example.py +1 -1
  18. {neuralnode-2.1.1 → neuralnode-2.1.3}/horus_chat_voice.py +1 -1
  19. {neuralnode-2.1.1 → neuralnode-2.1.3}/pyproject.toml +3 -1
  20. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/__init__.py +5 -2
  21. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/__init__.py +5 -2
  22. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/horus.py +187 -20
  23. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/utils/dependencies.py +8 -1
  24. neuralnode-2.1.1/examples/horus_codes_camples/02_with_token.py +0 -19
  25. neuralnode-2.1.1/examples/horus_download_guide.py +0 -233
  26. neuralnode-2.1.1/nn.md +0 -224
  27. neuralnode-2.1.1/replica_output_85218.mp3 +0 -0
  28. {neuralnode-2.1.1 → neuralnode-2.1.3}/.env.example +0 -0
  29. {neuralnode-2.1.1 → neuralnode-2.1.3}/.github/workflows/tests.yml +0 -0
  30. {neuralnode-2.1.1 → neuralnode-2.1.3}/Dockerfile +0 -0
  31. {neuralnode-2.1.1 → neuralnode-2.1.3}/LICENSE +0 -0
  32. {neuralnode-2.1.1 → neuralnode-2.1.3}/docker-compose.yml +0 -0
  33. {neuralnode-2.1.1 → neuralnode-2.1.3}/docs/ecosystem_plan.md +0 -0
  34. {neuralnode-2.1.1 → neuralnode-2.1.3}/docs/replica_voice_ids.csv +0 -0
  35. {neuralnode-2.1.1 → neuralnode-2.1.3}/docs/replica_voice_ids.md +0 -0
  36. {neuralnode-2.1.1 → neuralnode-2.1.3}/docs/telegram_guide.md +0 -0
  37. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/agent_with_tools.py +0 -0
  38. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/basic_chat.py +0 -0
  39. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/04_custom_cache.py +0 -0
  40. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/05_4bit_quantization.py +0 -0
  41. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/06_8bit_quantization.py +0 -0
  42. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/07_multi_gpu.py +0 -0
  43. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/08_flash_attention.py +0 -0
  44. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/09_data_types.py +0 -0
  45. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/10_generation_params.py +0 -0
  46. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/11_streaming.py +0 -0
  47. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/12_chat_templates.py +0 -0
  48. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/13_offline_mode.py +0 -0
  49. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/14_force_download.py +0 -0
  50. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/15_model_info.py +0 -0
  51. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/16_cpu_offloading.py +0 -0
  52. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/17_cpu_only.py +0 -0
  53. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/18_production_setup.py +0 -0
  54. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_codes_camples/24_list_models.py +0 -0
  55. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/horus_examples.py +0 -0
  56. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/local_models.py +0 -0
  57. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/neuralnode_v21_complete_demo.py +0 -0
  58. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/shade_model_with_tools.py +0 -0
  59. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/telegram_bot_demo.py +0 -0
  60. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/tts_demo.py +0 -0
  61. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/turboquant_example.py +0 -0
  62. {neuralnode-2.1.1 → neuralnode-2.1.3}/examples/v3_features.py +0 -0
  63. {neuralnode-2.1.1 → neuralnode-2.1.3}/neuralnode_horus_replica_telegram.ipynb +0 -0
  64. {neuralnode-2.1.1 → neuralnode-2.1.3}/publish.bat +0 -0
  65. {neuralnode-2.1.1 → neuralnode-2.1.3}/publish.sh +0 -0
  66. {neuralnode-2.1.1 → neuralnode-2.1.3}/requirements_shade.txt +0 -0
  67. {neuralnode-2.1.1 → neuralnode-2.1.3}/scripts/setup.py +0 -0
  68. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/debug_import.py +0 -0
  69. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/agents/__init__.py +0 -0
  70. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/chains/__init__.py +0 -0
  71. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/config/__init__.py +0 -0
  72. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/core/__init__.py +0 -0
  73. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/core/openai_blocker.py +0 -0
  74. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/diagnostics/__init__.py +0 -0
  75. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/integrations/discord.py +0 -0
  76. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/integrations/slack.py +0 -0
  77. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/integrations/telegram.py +0 -0
  78. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/integrations/whatsapp.py +0 -0
  79. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/memory/__init__.py +0 -0
  80. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/memory/advanced.py +0 -0
  81. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/prompts/__init__.py +0 -0
  82. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/base.py +0 -0
  83. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/chat/__init__.py +0 -0
  84. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/chat/ai21.py +0 -0
  85. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/chat/anthropic.py +0 -0
  86. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/chat/cohere.py +0 -0
  87. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/chat/deepseek.py +0 -0
  88. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/chat/fireworks.py +0 -0
  89. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/chat/google.py +0 -0
  90. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/chat/groq.py +0 -0
  91. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/chat/mistral.py +0 -0
  92. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/chat/perplexity.py +0 -0
  93. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/chat/together.py +0 -0
  94. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/chat_models.py +0 -0
  95. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/embeddings.py +0 -0
  96. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/local/__init__.py +0 -0
  97. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/local_providers.py +0 -0
  98. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/text_generation.py +0 -0
  99. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/providers/universal_local.py +0 -0
  100. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/rag/__init__.py +0 -0
  101. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/rag/loaders.py +0 -0
  102. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/reasoning/__init__.py +0 -0
  103. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/replica.py +0 -0
  104. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/speech/__init__.py +0 -0
  105. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/thinking.py +0 -0
  106. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/tools/__init__.py +0 -0
  107. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/tools/advanced.py +0 -0
  108. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/tools/multisearch.py +0 -0
  109. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/tools/system/__init__.py +0 -0
  110. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/tools/system/operations.py +0 -0
  111. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/tools/web/__init__.py +0 -0
  112. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/tts/__init__.py +0 -0
  113. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/turboquant.py +0 -0
  114. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/utils/__init__.py +0 -0
  115. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/utils/logger.py +0 -0
  116. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/utils/metrics.py +0 -0
  117. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/vectorstores/__init__.py +0 -0
  118. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/neuralnode/vision/__init__.py +0 -0
  119. {neuralnode-2.1.1 → neuralnode-2.1.3}/src/nn/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: neuralnode
3
- Version: 2.1.1
3
+ Version: 2.1.3
4
4
  Summary: Comprehensive AI Framework with 50+ LLM Providers, Advanced Agents, Chains, Memory, RAG, and 100+ Tools
5
5
  Project-URL: Homepage, https://assem.cloud/
6
6
  Project-URL: Documentation, https://neuralnode.readthedocs.io
@@ -92,9 +92,11 @@ Requires-Dist: groq>=0.4.0; extra == 'groq'
92
92
  Provides-Extra: horus
93
93
  Requires-Dist: accelerate>=0.24.0; extra == 'horus'
94
94
  Requires-Dist: bitsandbytes>=0.41.0; extra == 'horus'
95
+ Requires-Dist: diffusers>=0.30.0; extra == 'horus'
95
96
  Requires-Dist: einops>=0.7.0; extra == 'horus'
96
97
  Requires-Dist: huggingface-hub>=0.23.0; extra == 'horus'
97
98
  Requires-Dist: llama-cpp-python>=0.2.0; extra == 'horus'
99
+ Requires-Dist: pillow>=10.0.0; extra == 'horus'
98
100
  Requires-Dist: protobuf>=3.20.0; extra == 'horus'
99
101
  Requires-Dist: scipy>=1.10.0; extra == 'horus'
100
102
  Requires-Dist: sentencepiece>=0.1.99; extra == 'horus'
@@ -210,6 +212,8 @@ All Horus models use:
210
212
  - unified chat template: `horus_unified`
211
213
  - unified context window: `8192`
212
214
 
215
+ Horus downloads are public-only. Private or gated Hugging Face repositories are not supported.
216
+
213
217
  ```python
214
218
  import neuralnode as nn
215
219
 
@@ -238,11 +242,25 @@ print(HorusModel.list_available_models())
238
242
  Supported IDs currently include:
239
243
  - `tokenaii/horus`
240
244
  - `tokenaii/horus/Horus-1.0-4B`
241
- - `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf`
242
- - `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q5_K_M.gguf`
243
- - `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q6_K.gguf`
244
- - `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q8_0.gguf`
245
- - `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-F16.gguf`
245
+ - `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf`
246
+ - `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q5_K_M.gguf`
247
+ - `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q6_K.gguf`
248
+ - `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q8_0.gguf`
249
+ - `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-F16.gguf`
250
+ - `tokenaii/Horus-Lens-1.0`
251
+
252
+ ### Horus Lens text-to-image
253
+
254
+ ```python
255
+ import neuralnode as nn
256
+
257
+ model = nn.HorusLensModel("tokenaii/Horus-Lens-1.0").load()
258
+ model.generate_image(
259
+ "A detailed cinematic image of an ancient Egyptian AI lab, golden light",
260
+ output_path="outputs/horus_lens.png",
261
+ seed=42,
262
+ )
263
+ ```
246
264
 
247
265
  ## Replica TTS
248
266
 
@@ -44,6 +44,8 @@ All Horus models use:
44
44
  - unified chat template: `horus_unified`
45
45
  - unified context window: `8192`
46
46
 
47
+ Horus downloads are public-only. Private or gated Hugging Face repositories are not supported.
48
+
47
49
  ```python
48
50
  import neuralnode as nn
49
51
 
@@ -72,11 +74,25 @@ print(HorusModel.list_available_models())
72
74
  Supported IDs currently include:
73
75
  - `tokenaii/horus`
74
76
  - `tokenaii/horus/Horus-1.0-4B`
75
- - `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf`
76
- - `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q5_K_M.gguf`
77
- - `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q6_K.gguf`
78
- - `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q8_0.gguf`
79
- - `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-F16.gguf`
77
+ - `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf`
78
+ - `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q5_K_M.gguf`
79
+ - `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q6_K.gguf`
80
+ - `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q8_0.gguf`
81
+ - `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-F16.gguf`
82
+ - `tokenaii/Horus-Lens-1.0`
83
+
84
+ ### Horus Lens text-to-image
85
+
86
+ ```python
87
+ import neuralnode as nn
88
+
89
+ model = nn.HorusLensModel("tokenaii/Horus-Lens-1.0").load()
90
+ model.generate_image(
91
+ "A detailed cinematic image of an ancient Egyptian AI lab, golden light",
92
+ output_path="outputs/horus_lens.png",
93
+ seed=42,
94
+ )
95
+ ```
80
96
 
81
97
  ## Replica TTS
82
98
 
@@ -103,6 +103,7 @@ Current Horus guarantees:
103
103
  - chat template is unified as `horus_unified`
104
104
  - Horus can use Replica TTS
105
105
  - Horus can use TurboQuant on Transformers-based generation paths
106
+ - Horus downloads are public-only
106
107
 
107
108
  Example:
108
109
 
@@ -128,11 +129,25 @@ print(response.content)
128
129
  Available Horus model IDs:
129
130
  - `tokenaii/horus`
130
131
  - `tokenaii/horus/Horus-1.0-4B`
131
- - `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf`
132
- - `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q5_K_M.gguf`
133
- - `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q6_K.gguf`
134
- - `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q8_0.gguf`
135
- - `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-F16.gguf`
132
+ - `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf`
133
+ - `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q5_K_M.gguf`
134
+ - `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q6_K.gguf`
135
+ - `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q8_0.gguf`
136
+ - `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-F16.gguf`
137
+ - `tokenaii/Horus-Lens-1.0`
138
+
139
+ Horus Lens text-to-image example:
140
+
141
+ ```python
142
+ import neuralnode as nn
143
+
144
+ model = nn.HorusLensModel("tokenaii/Horus-Lens-1.0").load()
145
+ model.generate_image(
146
+ "A detailed cinematic image of an ancient Egyptian AI lab, golden light",
147
+ output_path="outputs/horus_lens.png",
148
+ seed=42,
149
+ )
150
+ ```
136
151
 
137
152
  ## Replica
138
153
 
@@ -2,16 +2,16 @@
2
2
  Basic usage - Choose a Horus model version
3
3
  Available versions with different compression levels:
4
4
  - tokenaii/horus/Horus-1.0-4B (Full - 8GB+ VRAM)
5
- - tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf (4-bit - 2GB VRAM)
6
- - tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q5_K_M.gguf (5-bit - 2.5GB VRAM)
7
- - tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q6_K.gguf (6-bit - 3GB VRAM)
8
- - tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q8_0.gguf (8-bit - 4GB VRAM)
5
+ - tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf (4-bit - 2GB VRAM)
6
+ - tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q5_K_M.gguf (5-bit - 2.5GB VRAM)
7
+ - tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q6_K.gguf (6-bit - 3GB VRAM)
8
+ - tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q8_0.gguf (8-bit - 4GB VRAM)
9
9
  """
10
10
 
11
11
  import neuralnode as nn
12
12
 
13
13
  # Choose your model version (replace with your preferred version)
14
- MODEL_ID = "tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf" # 4-bit for low VRAM
14
+ MODEL_ID = "tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf" # 4-bit for low VRAM
15
15
 
16
16
  # Download and load
17
17
  model = nn.HorusModel(MODEL_ID).load()
@@ -0,0 +1,16 @@
1
+ """
2
+ Generate an image with Horus Lens.
3
+ """
4
+
5
+ import neuralnode as nn
6
+
7
+
8
+ model = nn.HorusLensModel("tokenaii/Horus-Lens-1.0").load()
9
+
10
+ model.generate_image(
11
+ "A detailed cinematic image of an ancient Egyptian AI lab, golden light",
12
+ output_path="outputs/horus_lens.png",
13
+ seed=42,
14
+ )
15
+
16
+ print("Saved image to outputs/horus_lens.png")
@@ -9,7 +9,7 @@ Choose your model version before running:
9
9
  import neuralnode as nn
10
10
 
11
11
  # One-liner: create model, load it, and chat in a single chain
12
- response = nn.HorusModel("tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf").load().chat(
12
+ response = nn.HorusModel("tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf").load().chat(
13
13
  [{"role": "user", "content": "What is AI?"}]
14
14
  )
15
15
 
@@ -7,7 +7,7 @@ import neuralnode as nn
7
7
 
8
8
  # Load GGUF 4-bit model (~2.78GB file, ~2GB VRAM)
9
9
  model = nn.HorusModel(
10
- "tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf"
10
+ "tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf"
11
11
  ).load()
12
12
 
13
13
  response = model.chat([{"role": "user", "content": "Hello!"}])
@@ -6,7 +6,7 @@ Best for: Balance between quality and memory (~2.5GB VRAM)
6
6
  import neuralnode as nn
7
7
 
8
8
  model = nn.HorusModel(
9
- "tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q5_K_M.gguf"
9
+ "tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q5_K_M.gguf"
10
10
  ).load()
11
11
 
12
12
  response = model.chat([{"role": "user", "content": "Hello!"}])
@@ -6,7 +6,7 @@ Best for: Better quality than 4/5-bit with reasonable memory
6
6
  import neuralnode as nn
7
7
 
8
8
  model = nn.HorusModel(
9
- "tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q6_K.gguf"
9
+ "tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q6_K.gguf"
10
10
  ).load()
11
11
 
12
12
  response = model.chat([{"role": "user", "content": "Hello!"}])
@@ -6,7 +6,7 @@ Best for: Good quality with ~50% memory savings
6
6
  import neuralnode as nn
7
7
 
8
8
  model = nn.HorusModel(
9
- "tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q8_0.gguf"
9
+ "tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q8_0.gguf"
10
10
  ).load()
11
11
 
12
12
  response = model.chat([{"role": "user", "content": "Hello!"}])
@@ -7,7 +7,7 @@ Best for: Maximum quality, same as original model
7
7
  import neuralnode as nn
8
8
 
9
9
  model = nn.HorusModel(
10
- "tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-F16.gguf"
10
+ "tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-F16.gguf"
11
11
  ).load()
12
12
 
13
13
  response = model.chat([{"role": "user", "content": "Hello!"}])
@@ -6,7 +6,7 @@ Press Ctrl+C to exit
6
6
  import neuralnode as nn
7
7
 
8
8
  # Load model (choose any available model)
9
- MODEL_ID = "tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf"
9
+ MODEL_ID = "tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf"
10
10
 
11
11
  print("="*50)
12
12
  print(" Horus Chat Terminal")
@@ -7,11 +7,12 @@ This folder contains code examples for downloading and using Horus models.
7
7
  | Model ID | File Size | Type | Best For |
8
8
  |----------|-----------|------|----------|
9
9
  | `tokenaii/horus/Horus-1.0-4B` | ~10 GB | Safetensors | Maximum accuracy, GPU with 8GB+ VRAM |
10
- | `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf` | 2.78 GB | GGUF 4-bit | Low VRAM (4-6GB), fastest inference |
11
- | `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q5_K_M.gguf` | 3.23 GB | GGUF 5-bit | Balance between quality and memory |
12
- | `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q6_K.gguf` | 3.71 GB | GGUF 6-bit | Better quality with reasonable memory |
13
- | `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q8_0.gguf` | 4.8 GB | GGUF 8-bit | Good quality with ~50% memory savings |
14
- | `tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-F16.gguf` | 9.83 GB | GGUF 16-bit | Maximum quality, same as original |
10
+ | `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf` | 2.78 GB | GGUF 4-bit | Low VRAM (4-6GB), fastest inference |
11
+ | `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q5_K_M.gguf` | 3.23 GB | GGUF 5-bit | Balance between quality and memory |
12
+ | `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q6_K.gguf` | 3.71 GB | GGUF 6-bit | Better quality with reasonable memory |
13
+ | `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q8_0.gguf` | 4.8 GB | GGUF 8-bit | Good quality with ~50% memory savings |
14
+ | `tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-F16.gguf` | 9.83 GB | GGUF 16-bit | Maximum quality, same as original |
15
+ | `tokenaii/Horus-Lens-1.0` | Unknown | Text-to-image | Image generation from prompts |
15
16
 
16
17
  ## Installation
17
18
 
@@ -24,7 +25,7 @@ pip install neuralnode[horus]
24
25
  ```python
25
26
  import neuralnode as nn
26
27
 
27
- model = nn.HorusModel("tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf").load()
28
+ model = nn.HorusModel("tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf").load()
28
29
  response = model.chat([{"role": "user", "content": "Hello!"}])
29
30
  print(response.content)
30
31
  ```
@@ -33,7 +34,7 @@ print(response.content)
33
34
 
34
35
  ### Basic Usage
35
36
  - `01_basic_usage.py` - Simple download and use
36
- - `02_with_token.py` - Private models with HF token
37
+ - `02_horus_lens.py` - Generate an image with Horus Lens
37
38
  - `03_one_liner.py` - One-liner usage
38
39
  - `04_custom_cache.py` - Custom download location
39
40
 
@@ -0,0 +1,39 @@
1
+ """
2
+ Horus public model download and usage guide.
3
+
4
+ NeuralNode Horus downloads are public-only. If a Hugging Face repository is
5
+ private or gated, loading fails instead of using credentials.
6
+ """
7
+
8
+ import neuralnode as nn
9
+
10
+
11
+ def example_simple_chat_model():
12
+ model = nn.HorusModel("tokenaii/horus").load()
13
+ response = model.chat([{"role": "user", "content": "Hello!"}])
14
+ print(response.content)
15
+
16
+
17
+ def example_custom_cache():
18
+ model = nn.HorusModel(
19
+ "tokenaii/horus",
20
+ cache_dir="D:/Models/Horus",
21
+ ).load()
22
+ print(model.get_model_info())
23
+
24
+
25
+ def example_lens_image():
26
+ model = nn.HorusLensModel("tokenaii/Horus-Lens-1.0").load()
27
+ model.generate_image(
28
+ "A cinematic portrait of an ancient Egyptian AI oracle, detailed, warm light",
29
+ output_path="outputs/horus_lens.png",
30
+ seed=42,
31
+ )
32
+ print("Saved image to outputs/horus_lens.png")
33
+
34
+
35
+ if __name__ == "__main__":
36
+ print(nn.HorusModel.list_available_models())
37
+ example_simple_chat_model()
38
+ example_custom_cache()
39
+ example_lens_image()
@@ -13,8 +13,8 @@ import neuralnode as nn
13
13
 
14
14
  def main() -> None:
15
15
  # Example TQ model id (replace with the real published TQ GGUF file when available)
16
- tq_model_id = "tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-TQ3_1S.gguf"
17
- q4_model_id = "tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf"
16
+ tq_model_id = "tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-TQ3_1S.gguf"
17
+ q4_model_id = "tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf"
18
18
 
19
19
  # Optional: register TQ in Horus listed models for nicer discovery.
20
20
  nn.HorusModel.register_gguf_variant(
@@ -292,21 +292,12 @@ def example_8_generation_params():
292
292
  print()
293
293
 
294
294
 
295
- def example_9_network_auth():
296
- """Network and authentication options."""
295
+ def example_9_network_options():
296
+ """Network and download options."""
297
297
  print("=" * 70)
298
- print("Example 9: Network & Authentication")
298
+ print("Example 9: Network & Download Options")
299
299
  print("=" * 70)
300
-
301
- # With HuggingFace token (for private/gated models)
302
- model_token = nn.HorusModel(
303
- "tokenaii/horus",
304
- token="hf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
305
- ).load()
306
-
307
- # Via environment variable (recommended):
308
- # export HF_TOKEN="your_token_here"
309
-
300
+
310
301
  # With proxy
311
302
  model_proxy = nn.HorusModel(
312
303
  "tokenaii/horus",
@@ -328,7 +319,7 @@ def example_9_network_auth():
328
319
  resume_download=True,
329
320
  ).load()
330
321
 
331
- print("[OK] Network & auth options demonstrated")
322
+ print("[OK] Network and download options demonstrated")
332
323
  print()
333
324
 
334
325
 
@@ -492,7 +483,7 @@ if __name__ == "__main__":
492
483
  # example_6_attention_options()
493
484
  # example_7_advanced_loading()
494
485
  # example_8_generation_params()
495
- # example_9_network_auth()
486
+ # example_9_network_options()
496
487
  # example_10_model_info()
497
488
  example_11_list_models()
498
489
  # example_12_chat_templates()
@@ -11,7 +11,7 @@ sys.path.insert(0, r"d:\Work Space\NeuralNode\neuralnode\src")
11
11
  import neuralnode as nn
12
12
 
13
13
  # Configuration
14
- MODEL_ID = "tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf"
14
+ MODEL_ID = "tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf"
15
15
  CACHE_DIR = "D:/neuralnode_models"
16
16
 
17
17
 
@@ -26,7 +26,7 @@ def play_audio(file_path):
26
26
 
27
27
  # Load Horus model
28
28
  model = nn.HorusModel(
29
- model_id="tokenaii/Hours-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf"
29
+ model_id="tokenaii/Horus-1.0-4B-GGUF/Horus-1.0-4B-Q4_K_M.gguf"
30
30
  ).load()
31
31
 
32
32
  messages = [
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "neuralnode"
7
- version = "2.1.1"
7
+ version = "2.1.3"
8
8
  description = "Comprehensive AI Framework with 50+ LLM Providers, Advanced Agents, Chains, Memory, RAG, and 100+ Tools"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -66,12 +66,14 @@ horus = [
66
66
  "huggingface_hub>=0.23.0",
67
67
  "torch>=2.0.0",
68
68
  "transformers>=4.35.0",
69
+ "diffusers>=0.30.0",
69
70
  "accelerate>=0.24.0",
70
71
  "bitsandbytes>=0.41.0", # 4-bit/8-bit quantization
71
72
  "sentencepiece>=0.1.99", # Tokenization
72
73
  "protobuf>=3.20.0", # Model serialization
73
74
  "scipy>=1.10.0", # Math operations
74
75
  "einops>=0.7.0", # Tensor operations
76
+ "pillow>=10.0.0", # Image output
75
77
  ]
76
78
 
77
79
  # Flash Attention (Windows requires special install)
@@ -42,7 +42,7 @@ Quick Start::
42
42
  text = sr.listen()
43
43
  """
44
44
 
45
- __version__ = "2.1.1"
45
+ __version__ = "2.1.3"
46
46
  __author__ = "NeuralNode Contributors"
47
47
 
48
48
  # ── Core types ────────────────────────────────────────────────────────────────
@@ -83,8 +83,11 @@ from .providers import (
83
83
  UniversalLocalProvider,
84
84
  # Custom models
85
85
  Horus,
86
+ HorusLensModel,
86
87
  HorusModel,
87
88
  HorusProvider,
89
+ load_horus_lens,
90
+ print_model_list,
88
91
  )
89
92
 
90
93
  # ── Memory ────────────────────────────────────────────────────────────────────
@@ -648,7 +651,7 @@ __all__ = [
648
651
  "OllamaProvider", "AnthropicProvider", "GoogleProvider",
649
652
  "GroqProvider", "MistralProvider", "CohereProvider", "DeepSeekProvider",
650
653
  "LlamaCppProvider", "TransformersProvider", "UniversalLocalProvider",
651
- "Horus", "HorusModel", "HorusProvider",
654
+ "Horus", "HorusLensModel", "HorusModel", "HorusProvider", "load_horus_lens", "print_model_list",
652
655
 
653
656
  # Memory
654
657
  "ConversationMemory", "FileMemory", "SlidingWindowMemory", "SummaryMemory",
@@ -108,12 +108,15 @@ from .universal_local import UniversalLocalProvider, load_local_model
108
108
 
109
109
  # ── Custom Model Providers ─────────────────────────────────────────────────────
110
110
  try:
111
- from .horus import HorusProvider, HorusModel, Horus, load_horus
111
+ from .horus import HorusProvider, HorusModel, HorusLensModel, Horus, load_horus, load_horus_lens, print_model_list
112
112
  except ImportError:
113
113
  HorusProvider = None # type: ignore
114
114
  HorusModel = None # type: ignore
115
+ HorusLensModel = None # type: ignore
115
116
  Horus = None # type: ignore
116
117
  load_horus = None # type: ignore
118
+ load_horus_lens = None # type: ignore
119
+ print_model_list = None # type: ignore
117
120
 
118
121
  # MLX Provider (Apple Silicon — optional)
119
122
  try:
@@ -235,5 +238,5 @@ __all__ = [
235
238
  "UniversalLocalProvider", "load_local_model",
236
239
 
237
240
  # Custom Models
238
- "HorusProvider", "HorusModel", "Horus", "load_horus",
241
+ "HorusProvider", "HorusModel", "HorusLensModel", "Horus", "load_horus", "load_horus_lens", "print_model_list",
239
242
  ]