MOSS Studio

Kaggle · dual Tesla T4

Sign in to control the GPU cluster, generate images and browse the S3 gallery.

OpenMOSS-Team/MOSS-Image-SFT · private control plane

MOSS Studio Kaggle 2×T4
Kaggle ↗ Idle

Generate

Resolution

1024 × 1024

Advanced sampling

Recipes —

Loading recipes…

Click any recipe to load its prompt, negative prompt, size, steps, guidance and layout.

Cluster

Checking status…

Account — —
Weekly GPU quota
Kaggle
—
Agent
—
Model
—
Load time
—
Queue
—
Last image
—

Current job

idle
No active job. Submit a prompt to begin.

0% · step 0

Latest images

Gallery is empty.

Gallery

No images yet. Generate one from the Studio tab.

Jobs

No jobs recorded yet.

Declarative batch

JSON, YAML or JSONL manifest. Each item inherits defaults. Items run 1-by-1 through the Kaggle queue.


        

Batches

No batches submitted yet.

Kaggle accounts & GPU quota

Loading fleet…

GPU time is metered per Kaggle account and resets weekly on Saturday 00:00 UTC. New jobs are routed to the least-loaded READY account with more than the “switch below” hours of quota left, so submissions spread evenly across the fleet. The monitor runs every 5 minutes. Tokens are stored in Cloudflare KV and never returned to the browser.

Loading accounts…

Add a Kaggle account

Agent log

Loading…

Events

OpenAI-compatible API

Base URL https://kagglemoss.rpcserve.website

POST /v1/images/generations
curl -X POST "$BASE/v1/images/generations" \
  -H "Authorization: Bearer $MOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "moss-image-sft",
    "prompt": "A cinematic red fox in fresh snow at blue hour",
    "size": "1024x1024",
    "steps": 28,
    "cfg": 3.0,
    "seed": -1,
    "n": 1
  }'
Poll a job
curl "$BASE/v1/jobs/$JOB_ID" \
  -H "Authorization: Bearer $MOSS_API_KEY"
Python (openai SDK)
from openai import OpenAI

client = OpenAI(base_url="https://kagglemoss.rpcserve.website/v1",
                api_key="YOUR_API_KEY")

resp = client.images.generate(
    model="moss-image-sft",
    prompt="A hyper-detailed cyberpunk samurai in a neon-lit rainy Tokyo alley",
    size="1024x1024",
    extra_body={"steps": 28, "cfg": 3.0, "seed": 42},
)
print(resp.data[0].url)
b64_json + retry
# Inline base64 PNG (no S3 round-trip)
curl -X POST "$BASE/v1/images/generations" \
  -H "Authorization: Bearer $MOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"a paper boat at dawn","size":"512x512","steps":8,
       "response_format":"b64_json","wait":true}'

# Retry any failed job or batch
curl -X POST "$BASE/v1/jobs/$JOB_ID/retry" \
  -H "Authorization: Bearer $MOSS_API_KEY"

Batch manifests

Up to 100 items per batch. YAML or JSONL accepted.

POST /v1/batches (YAML)
defaults:
  steps: 28
  cfg: 3.0
  pixels: 1M
  aspect_ratio: "16:9"
items:
  - prompt: "A lone wanderer facing a colossal mechanical titan in a desert sandstorm"
    custom_id: "titan"
  - prompt: "Seamless panoramic Silk Road scroll painting under starry skies"
    custom_id: "silk-road"
    aspect_ratio: "8:1"
POST /v1/batches (JSONL)
{"custom_id":"fox","prompt":"A red fox asleep in fresh snow","size":"1024x1024"}
{"custom_id":"owl","prompt":"A clockwork owl on a grimoire","steps":30,"cfg":4.5}

Control-plane endpoints

  • GET/api/statuscluster, agent and GPU state
  • POST/api/cluster/startsubmit + run the Kaggle kernel
  • POST/api/cluster/stopshutdown agent and cancel the session
  • GET/api/cluster/logs?source=kaggleKaggle session log tail
  • POST/api/generatestudio-native generation (+ /api/generate/submit)
  • GET/api/jobslive jobs from the agent
  • POST/api/jobs/<id>/retryresubmit a job
  • POST/api/batchesdeclarative JSON / YAML / JSONL batch
  • GET/api/batches/<id>refresh batch progress
  • POST/api/batches/<id>/retryresubmit failed items
  • GET/api/galleryS3 object listing + metadata
  • GET/api/presetspresets, ratios, pixel budgets
  • GET/api/eventsaudit trail

All routes accept Authorization: Bearer <API_KEY>.

Runtime

Model
—
Kernel
—
Hardware
—
S3 bucket
—
S3 prefix
—
API key
required