FreedomGPT Generate Text
The obscure 'unrestricted' LLM node, for when you need it
- history
- text
- history
- payload
FreedomGPT Generate Text is the pack's LLM node for a niche provider: FreedomGPT, a cloud API that markets itself on being less filtered than mainstream chatbots. It's the least-known node in this pack's LLM family - search the community and you'll find almost nothing about it, which tells you it's a "I have a FreedomGPT account and want it in my graph" tool rather than a community staple. If you don't have a FreedomGPT API key, this node is easy to skip. If you do - or you specifically want the least-restricted generation you can bolt into a workflow - this is the way in.
Functionally it behaves like the pack's other text nodes: a prompt and system prompt go in, the model replies, and the result comes out as a STRING plus a HISTORY for chaining conversations. The pitch FreedomGPT itself makes is exactly what its name implies - it's the endpoint people reach for when they want the model to talk about things mainstream providers refuse. For prompt generation and workflow text that's rarely necessary, but for uncensored captioning or niche creative writing it's the differentiator.
How it works
It calls FreedomGPT's chat-completions endpoint (https://chat.freedomgpt.com/api/v1) with the default model liberty. The same chat_template machinery as the pack's other LLM nodes wraps system_prompt and prompt into the request - the <-system-> / <-user-> markers you can edit if the provider changes format. Sampling controls run a bit deeper than some peers: temperature, top_p, and top_k are all there, plus max_tokens, a seed for reproducible replies, retry_count, timeout, and proxy_url for socks/http proxies. The optional history input accepts the pack's HISTORY objects (build them with History Builder), and extra takes JSON for any new API parameters.
The inputs that matter
api_key- your FreedomGPT key; blank falls back to the pack'sapi_key.json("freedomgpt"entry) or theFREEDOMGPT_API_KEYenv var.model_name- defaultliberty; check FreedomGPT's docs for current model names, they've changed before.prompt/system_prompt- the content and the role framing.top_k- the extra knob this node has that most peers don't; it caps the vocabulary to the top K tokens per step.
Three outputs: text, history, and payload (the raw API response).
Installing it
It's part of ComfyUI-YogurtNodes. Install via ComfyUI Manager (search "ComfyUI-YogurtNodes") or:
cd ComfyUI/custom_nodes
git clone https://github.com/yogurt7771/ComfyUI-YogurtNodes.git
cd ComfyUI-YogurtNodes
pip install -r requirements.txt
Restart ComfyUI; it's under "Yogurt Nodes". You'll need a FreedomGPT API key from freedomgpt.com.
Where people get burned
The honest warning is the model-name churn. FreedomGPT is a small provider and its model lineup has shifted; if the node suddenly returns errors or nonsense, model_name is the first thing to check against their docs. Second, this is a paid API with thin community validation - there aren't crowds of people posting "here's the right settings," so expect to tune temperature/top_k yourself. And third, if your use case doesn't actually need the "unrestricted" angle, the pack's Grok or OpenAI nodes have vastly more documentation and community support behind them. This node is for a specific itch, and it scratches it - just know the ecosystem around it is mostly empty.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | API key for accessing FreedomGPT API | |
| model_name | STRING | liberty | FreedomGPT model name |
| system_prompt | STRING | System-level prompt that affects the overall conversation style | |
| prompt | STRING | Main prompt content input by the user | |
| temperature | FLOAT | 1.000–2 | Sampling temperature, higher values produce more random outputs |
| top_p | FLOAT | 1.000–1 | Sampling probability threshold, controls output diversity |
| top_k | INT | 401–100 | Top-K sampling parameter, limits vocabulary to top K tokens |
| max_tokens | INT | 40960–32768 | Maximum number of tokens in the generated text |
| retry_count | INT | 11–10 | Number of retry attempts if the request fails |
| chat_template | STRING | <-system-> {{system_instruction}} <-/system-> <-user-> {{prompt}} <-/user-> | Content template for the generated text |
| seed | INT | -1-1–2147483647 | Random seed for reproducible results, -1 for random |
| proxy_url | STRING | 代理URL,格式: protocol://user:pass@addr:port,支持http,https,socks5,socks5h | |
| timeout | INT | 00–2147483647 | Timeout for the request in seconds, 0 means no timeout |
| historyopt | HISTORY | — | |
| extraopt | STRING | {} | Extra parameters for the request, in JSON format |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |
| history | HISTORY | — |
| payload | * | — |