Instructions to use fireballenterprise/fireball-designer-agent with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use fireballenterprise/fireball-designer-agent with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-VL-8B-Instruct") model = PeftModel.from_pretrained(base_model, "fireballenterprise/fireball-designer-agent") - Transformers
How to use fireballenterprise/fireball-designer-agent with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="fireballenterprise/fireball-designer-agent") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("fireballenterprise/fireball-designer-agent", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use fireballenterprise/fireball-designer-agent with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "fireballenterprise/fireball-designer-agent" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "fireballenterprise/fireball-designer-agent", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/fireballenterprise/fireball-designer-agent
- SGLang
How to use fireballenterprise/fireball-designer-agent with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "fireballenterprise/fireball-designer-agent" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "fireballenterprise/fireball-designer-agent", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "fireballenterprise/fireball-designer-agent" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "fireballenterprise/fireball-designer-agent", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use fireballenterprise/fireball-designer-agent with Docker Model Runner:
docker model run hf.co/fireballenterprise/fireball-designer-agent
fireball-designer-agent v0.1.0
A LoRA adapter for Qwen/Qwen3-VL-8B-Instruct that turns natural-language design requests into tool-call trajectories for Fireball Designer, a design application with a scripted tool surface (3D, SVG, image, video and document workspaces).
Given a request and the current editor context, the model emits the JSON tool calls that carry it out β or declines and asks for clarification when the request is ambiguous.
β οΈ This is a pipeline smoke test, not a production model. It was trained on 14 examples. That is enough to prove the training β publishing β serving chain works end to end; it is nowhere near enough to teach a tool catalog. Please read Limitations before using it for anything.
Intended use
The adapter is built for one narrow job: mapping Fireball Designer requests onto Fireball Designer's own tool schema. It is not a general-purpose assistant, and the tool names it emits are meaningless outside that application.
It is published openly for provenance and reproducibility β every Fireball Designer Agent version is traceable to an exact base model revision, dataset version, and training commit β rather than because it is broadly useful in its current state.
Usage
The adapter targets the language backbone only, so it loads as an ordinary LoRA on top of the unmodified base model. No merge step is required.
vLLM
vllm serve Qwen/Qwen3-VL-8B-Instruct \
--max-model-len 4096 \
--enable-lora \
--lora-modules designer-agent=fireballenterprise/fireball-designer-agent
Then request "model": "designer-agent" against the OpenAI-compatible endpoint to hit the
adapter, or "model": "Qwen/Qwen3-VL-8B-Instruct" to hit the unmodified base β useful for
A/B comparison against the baseline numbers below.
PEFT
from peft import PeftModel
from transformers import AutoModelForImageTextToText, AutoTokenizer
base = "Qwen/Qwen3-VL-8B-Instruct"
model = AutoModelForImageTextToText.from_pretrained(base, dtype="bfloat16", device_map="auto")
model = PeftModel.from_pretrained(model, "fireballenterprise/fireball-designer-agent")
tokenizer = AutoTokenizer.from_pretrained(base)
Note AutoModelForImageTextToText, not AutoModelForCausalLM β Qwen3-VL's architecture is
Qwen3VLForConditionalGeneration, which the causal-LM AutoClass does not map.
Prompt format
Training used a single flat instruction block. Matching it at inference time matters β the adapter was supervised on exactly this shape:
You are the Fireball Designer Agent. Given the user's request and the current Designer context, respond with the tool calls needed to complete it.
Context: {"workspace": ..., "current_state": ..., "available_tools": [...]}
Request: <the user's request>
Tool calls:
The model's completion is a JSON array of {"name": ..., "arguments": {...}} objects.
Training
| Method | Supervised fine-tuning, LoRA (PEFT) |
| Trainable parameters | 43,646,976 of 8,810,770,672 (0.50%) |
| LoRA config | r=16, alpha=32, dropout=0.05 |
| Target modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
| Precision | bf16 |
| Epochs | 3 |
| Learning rate | 2e-4 |
| Effective batch size | 4 (batch 1 Γ 4 gradient accumulation) |
| Max sequence length | 768 (dynamic per-batch padding) |
| Hardware | 1 Γ NVIDIA A10G (24GB), AWS ml.g5.2xlarge |
Loss is computed on the completion only; prompt and padding positions are masked out, so the model is supervised purely on the tool calls rather than on reproducing the context it was given.
Only the language backbone is adapted. The vision tower is untouched β every training example is text-only, so adapting the vision encoder would mean training weights that the data never exercises. The base model's image understanding is therefore unchanged by this adapter.
Data
17 hand-written examples split deterministically into 14 train / 3 validation, with 5 further held-out examples used for evaluation. Each is a Fireball Designer request paired with its expected tool-call trajectory.
Evaluation
Scored against 5 held-out examples on exact tool selection, parameter correctness, schema validity, and whether the model correctly asks for clarification on under-specified requests.
| Metric | Base model | v0.1.0 adapter |
|---|---|---|
| Tool selection accuracy | 0.00 | 1.00 |
| Trajectory accuracy | 0.00 | 1.00 |
| Parameter accuracy | 0.00 | 0.25 |
| Schema validity | 0.00 | 0.25 |
| Clarification accuracy | 0.40 | 0.40 |
| Completion rate | 0.40 | 0.00 |
| Avg. extra calls | β0.40 | +0.20 |
What actually improved. On the two examples that call for tool use, the adapter selects the right tools in the right order, every time. The base model selected none correctly and emitted fewer calls than the task required. The adapter has clearly learned the output format and the shape of the task β which is what this run set out to prove.
What got worse, and why. Three of the five evaluation examples should be answered with a clarifying question rather than tool calls. The adapter answers all three with tool calls. Only 1 of the 14 training examples is a clarification case, so it learned the rule "always emit tool calls" β correctly, from the data it was given. This is a dataset gap, not a training bug, and it is the clearest signal from this run about what the next dataset needs.
Why "completion rate" moved the wrong way. Completion requires parameter_accuracy == 1.0,
and the adapter's parameters are still often wrong, so it scores 0.00. The base model's 0.40 is
largely an artifact: the harness scores unparseable output as "asked for clarification," and the
base model's unparseable output happened to coincide with two of the three clarification
examples. Read it as a measurement artifact, not as a capability the fine-tune lost.
Read these numbers as a smoke test, not a benchmark. Five examples means each one moves a metric by 20 percentage points, and the evaluation set is drawn from the same tiny hand-written pool as the training data. They indicate whether the pipeline produces a model that responds in the right shape β not how well it would generalize.
Limitations
- Trained on 14 examples. It has not seen enough data to learn the tool catalog. Expect invented parameters and malformed trajectories.
- It will not ask for clarification. With one clarification example in training, it answers ambiguous and under-specified requests with confident tool calls instead of a question. Do not put it in front of destructive operations without a confirmation step of your own.
- Not a general assistant. Outside Fireball Designer's tool schema its output is not meaningful.
- Text-only supervision despite the vision-language base. It has not been taught to ground tool calls in an image.
- Narrow evaluation. Five held-out examples cannot establish real accuracy.
- No safety tuning beyond what the base model already carries.
- Tool schema is not frozen. Fireball Designer's tool surface is still changing; an adapter trained against one version of that catalog will drift as the catalog moves.
Provenance
Every version is reproducible from repository commit + dataset version + training configuration:
| Base model | Qwen/Qwen3-VL-8B-Instruct |
| Base model revision | 0c351dd01ed87e9c1b53cbc748cba10e6187ff3b |
| Dataset version | designer-dataset-v0.1 |
| Training configuration | configs/sft/v0.1.0.yml |
| Training code commit | c5ecd194f1d6ad9c14683bbcee7f4617c9d31250 |
License
Apache 2.0, inherited from the base model.
- Downloads last month
- -
Model tree for fireballenterprise/fireball-designer-agent
Base model
Qwen/Qwen3-VL-8B-Instruct