File size: 5,625 Bytes
fbe2cc1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# EntropyDrop API surface (reverse-engineered from a HAR capture, 2026-09-13)

Documented for reference only. **This Space does not call any of it** — it runs
everything locally. Use this if you later want a hybrid Space that submits to
their API instead of running Flux, or if you want to understand their pipeline
naming.

Base URL: `https://api.entropydrop.com` · CDN: `https://cdn.entropydrop.com`
Auth: `Authorization: Bearer <token>` (Google sign-in; `POST /skin/api/auth/refresh`).
Origin `https://entropydrop.com` — CORS preflight (`OPTIONS`) precedes each call.

## Endpoints observed

| Method | Path | Purpose |
|---|---|---|
| POST | `/skin/api/generate` | Submit a generation (multipart) |
| GET | `/skin/api/models` | Available model versions |
| GET | `/skin/api/generation_credit_cost` | Credit price of one generation |
| GET | `/skin/api/logs/<ID>` | Poll a generation's status/result |
| GET | `/skin/api/logs/<ID>/derived` | Child generations (edits) |
| GET | `/skin/api/logs/<ID>/collections` | Collections containing it |
| GET | `/skin/api/logs/<ID>/public_collections` | Public collections |
| GET | `/skin/api/history` | User's generation history |
| GET | `/skin/api/discovery` | Public gallery |
| GET | `/skin/api/users/me` | Current user |
| GET | `/skin/api/forum/notifications` | Forum notifications |
| POST | `/skin/api/auth/refresh` | Refresh the bearer token |

Generation IDs are 16 uppercase alphanumerics, e.g. `5EEF3PRRKHFH12DC`.

## `POST /skin/api/generate`

`multipart/form-data`, observed fields:

| Field | Example | Notes |
|---|---|---|
| `file` | `sonaref1.jpg` | the reference image |
| `mode` | `aigc_image_to_skin` | pipeline selector |
| `is_public` | `true` | public generations are eligible for their dataset |
| `model_version` | `sking_v73_flux_4b_000027000` | or `SKING_DDJ_v104b` |
| `seed` | `29976038` | |
| `n_step` | `100` | **100 in every record observed** |
| `guidance` | `4` | **4.0 in every record observed** |

Response is an async ack, not the image:

```json
{"id": "5EEF3PRRKHFH12DC", "status": "pending", "message": "Task queued"}
```

Then poll `GET /skin/api/logs/<id>` until `status` becomes `success`.

## `GET /skin/api/models`

```json
{"text_to_image_models": ["z_image"],
 "image_edit_models": ["flux_4b"],
 "image_to_skin_models": ["SKING_DDJ_v104b", "sking_v73_flux_4b_000027000"]}
```

## `GET /skin/api/logs/<id>` — record shape

```json
{
  "id": "ZNU125D1THWZTHE6",
  "name": "Untitled",
  "prompt": null,
  "mode": "aigc_image_to_skin",
  "result": "https://cdn.entropydrop.com/generations/<ID>.png",
  "source": "https://cdn.entropydrop.com/uploads/<ID>.png",
  "edited_image_url": null,
  "image_to_skin_edited_image_url":
      "https://cdn.entropydrop.com/real_to_render_intermediate/<ID>.png",
  "is_public": true,
  "status": "success",
  "error_msg": null,
  "creator": {"id": "...", "username": "...", "avatar_url": "...", "skin_url": null},
  "timestamp": "2026-09-13T10:03:04.529708Z",
  "likes_count": 0,
  "is_liked": false,
  "model_version": "SKING_DDJ_v104b",
  "parent": null,
  "seed": 40491355,
  "n_step": 100,
  "guidance": 4.0,
  "queue_position": 0,
  "is_pro": false,
  "license": {"code": "cc-by-nc-4.0", "public_license": "cc-by-nc-4.0",
              "version": 1, "granted_at": "...",
              "commercial_licensee_user_id": null},
  "has_feedback": false
}
```

## What the records reveal about their pipeline

`image_to_skin_edited_image_url` is the key field — it is the **stage-1
intermediate**, and it is only populated for some model versions:

| `model_version` | `image_to_skin_edited_image_url` | Interpretation |
|---|---|---|
| `SKING_DDJ_v104b` | `…/real_to_render_intermediate/<id>.png` (1024×1024) | **two-stage**: real→render via the external provider, then render→UV. Matches the `entropydrop_real_to_render_worker` repo exactly, including the `real_to_render_intermediate/` S3 prefix named in its README. |
| `sking_v73_flux_4b_000027000` | `null` | the older local-Flux path; intermediate not persisted |
| `SKING_DDJ_v54` | `…/real_to_render_intermediate/<id>.png` | two-stage, older parser |

Observed counts across 185 records in the capture: `SKING_DDJ_v104b` ×134,
`sking_v73_flux_4b_000027000` ×2, `SKING_DDJ_v54` ×1 (the rest have no
`model_version` — gallery/discovery entries).

**`SKING_DDJ_v104b` is not published.** Their HF org contains exactly one model
repo (`EntropyDrop/Sking`) whose newest bundle is `SKING_DDJ_v104`, released
2026-09-08 — five days before this capture. There is no `v104b` on their HF
org, and no LoRA newer than `sking_v73`. That is the single largest fidelity gap
between this Space and the live site.

## CDN layout

```
https://cdn.entropydrop.com/uploads/<ID>.png                      original upload
https://cdn.entropydrop.com/real_to_render_intermediate/<ID>.png  stage-1 render
https://cdn.entropydrop.com/generations/<ID>.png                  final 64×64 skin
https://entropydrop-skin.s3.us-east-2.amazonaws.com/generations/…  backing bucket (us-east-2)
```

Public generations are directly fetchable without auth, which is how
`testdata/` was assembled.

## Credits and licensing

- `GET /skin/api/generation_credit_cost` → `{"credits": 4, "is_pro": false,
  "under_maintenance": false}`
- Every generation record carries `"license": {"code": "cc-by-nc-4.0"}` —
  outputs are **non-commercial** by default, with a
  `commercial_licensee_user_id` field implying a separate commercial license
  exists.

If you build anything on top of their API or reuse their generated images,
respect that CC BY-NC 4.0 term.