human2ai 0.1.6 → 0.1.8
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.
- package/README.en.md +1 -1
- package/README.md +1 -1
- package/dist/cli/main.js +74 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/database/draft-version-errors.d.ts +6 -0
- package/dist/database/draft-version-errors.js +11 -0
- package/dist/database/draft-version-errors.js.map +1 -1
- package/dist/database/draft-version-store.js +17 -2
- package/dist/database/draft-version-store.js.map +1 -1
- package/dist/database/image-asset-repository.d.ts +5 -0
- package/dist/database/image-asset-repository.js +22 -4
- package/dist/database/image-asset-repository.js.map +1 -1
- package/dist/database/migrate.js +2 -0
- package/dist/database/migrate.js.map +1 -1
- package/dist/database/project-session-repository.d.ts +12 -1
- package/dist/database/project-session-repository.js +48 -11
- package/dist/database/project-session-repository.js.map +1 -1
- package/dist/database/session-preview-validation.js +37 -4
- package/dist/database/session-preview-validation.js.map +1 -1
- package/dist/database/session-storage-repository.d.ts +35 -0
- package/dist/database/session-storage-repository.js +281 -0
- package/dist/database/session-storage-repository.js.map +1 -0
- package/dist/database/ui-sketch-png-split-repository.d.ts +13 -0
- package/dist/database/ui-sketch-png-split-repository.js +123 -0
- package/dist/database/ui-sketch-png-split-repository.js.map +1 -0
- package/dist/database/workspace-settings-repository.d.ts +10 -0
- package/dist/database/workspace-settings-repository.js +30 -0
- package/dist/database/workspace-settings-repository.js.map +1 -0
- package/dist/domain/composition/clipboard.d.ts +3 -0
- package/dist/domain/composition/clipboard.js +30 -0
- package/dist/domain/composition/clipboard.js.map +1 -0
- package/dist/domain/composition/index.d.ts +1 -0
- package/dist/domain/composition/index.js +1 -0
- package/dist/domain/composition/index.js.map +1 -1
- package/dist/domain/session/canvas-edit-history.d.ts +2 -0
- package/dist/domain/session/canvas-edit-history.js +4 -0
- package/dist/domain/session/canvas-edit-history.js.map +1 -1
- package/dist/domain/session/capabilities.js +14 -0
- package/dist/domain/session/capabilities.js.map +1 -1
- package/dist/domain/session/storage.d.ts +22 -0
- package/dist/domain/session/storage.js +10 -0
- package/dist/domain/session/storage.js.map +1 -0
- package/dist/domain/session/types.d.ts +4 -0
- package/dist/domain/ui-sketch/clipboard.d.ts +2 -0
- package/dist/domain/ui-sketch/clipboard.js +21 -1
- package/dist/domain/ui-sketch/clipboard.js.map +1 -1
- package/dist/domain/ui-sketch/draft.js +22 -0
- package/dist/domain/ui-sketch/draft.js.map +1 -1
- package/dist/domain/ui-sketch/index.d.ts +1 -1
- package/dist/domain/ui-sketch/index.js +1 -1
- package/dist/domain/ui-sketch/index.js.map +1 -1
- package/dist/domain/ui-sketch/png-canvas.d.ts +25 -0
- package/dist/domain/ui-sketch/png-canvas.js +78 -0
- package/dist/domain/ui-sketch/png-canvas.js.map +1 -0
- package/dist/domain/ui-sketch/png-split-regions.d.ts +7 -0
- package/dist/domain/ui-sketch/png-split-regions.js +40 -0
- package/dist/domain/ui-sketch/png-split-regions.js.map +1 -0
- package/dist/domain/ui-sketch/png-split.d.ts +49 -0
- package/dist/domain/ui-sketch/png-split.js +39 -0
- package/dist/domain/ui-sketch/png-split.js.map +1 -0
- package/dist/domain/ui-sketch/transparent-png.d.ts +50 -0
- package/dist/domain/ui-sketch/transparent-png.js +178 -0
- package/dist/domain/ui-sketch/transparent-png.js.map +1 -0
- package/dist/domain/ui-sketch/types.d.ts +2 -0
- package/dist/server/app.d.ts +7 -1
- package/dist/server/app.js +21 -0
- package/dist/server/app.js.map +1 -1
- package/dist/server/routes/draft-version-routes.js +12 -3
- package/dist/server/routes/draft-version-routes.js.map +1 -1
- package/dist/server/routes/project-sessions.js +14 -0
- package/dist/server/routes/project-sessions.js.map +1 -1
- package/dist/server/routes/storage-protection.d.ts +3 -0
- package/dist/server/routes/storage-protection.js +29 -0
- package/dist/server/routes/storage-protection.js.map +1 -0
- package/dist/server/routes/ui-sketch-png-splits.d.ts +4 -0
- package/dist/server/routes/ui-sketch-png-splits.js +42 -0
- package/dist/server/routes/ui-sketch-png-splits.js.map +1 -0
- package/dist/server/routes/workspace-settings.d.ts +3 -0
- package/dist/server/routes/workspace-settings.js +25 -0
- package/dist/server/routes/workspace-settings.js.map +1 -0
- package/dist/server/runtime.js +8 -1
- package/dist/server/runtime.js.map +1 -1
- package/dist/server/session-preview-service.js +7 -4
- package/dist/server/session-preview-service.js.map +1 -1
- package/dist/server/storage-maintenance-service.d.ts +6 -0
- package/dist/server/storage-maintenance-service.js +65 -0
- package/dist/server/storage-maintenance-service.js.map +1 -0
- package/locales/en/common.json +68 -4
- package/migrations/0012_ui_sketch_png_splits.sql +6 -0
- package/migrations/0013_storage_retention.sql +43 -0
- package/migrations/0014_workspace_settings_and_trash.sql +11 -0
- package/package.json +1 -1
- package/schemas/ui-sketch-draft.schema.json +173 -0
- package/skills/human2ai/SKILL.md +8 -2
- package/skills/human2ai/references/ui-extraction-prompt.txt +41 -0
- package/skills/human2ai/references/ui-extraction.md +38 -0
- package/skills/human2ai/references/ui-layout.md +22 -0
- package/web/out/404/index.html +1 -1
- package/web/out/404.html +1 -1
- package/web/out/__next.__PAGE__.txt +8 -8
- package/web/out/__next._full.txt +8 -8
- package/web/out/__next._tree.txt +4 -4
- package/web/out/_next/static/chunks/327-3dba8bbcb4bcb1fc.js +1 -0
- package/web/out/_next/static/chunks/868-6a413fc8c52cf6df.js +1 -0
- package/web/out/_next/static/chunks/{164-d8dd2b053f27bf62.js → 989-6d7aa6a22a75f7de.js} +61 -61
- package/web/out/_next/static/chunks/app/_not-found/{page-742cf440bebb3b9b.js → page-fddf8e0980e10cc5.js} +1 -1
- package/web/out/_next/static/chunks/app/composition/page-f810843a0f114d13.js +1 -0
- package/web/out/_next/static/chunks/app/layout-9c5f0b5667b84400.js +1 -0
- package/web/out/_next/static/chunks/app/{page-9b8bd42a93c9242c.js → page-29cacabbd1c90b6f.js} +1 -1
- package/web/out/_next/static/chunks/app/spatial/page-014875456f84d8fa.js +1 -0
- package/web/out/_next/static/chunks/app/styles/page-1077a7decb9be158.js +1 -0
- package/web/out/_next/static/chunks/app/ui-sketch/page-ea382541f80cad0d.js +1 -0
- package/web/out/_next/static/chunks/{main-app-5419a575f3ff4496.js → main-app-9985b291e50ea69b.js} +1 -1
- package/web/out/_next/static/chunks/next/dist/client/components/builtin/global-error-1193cefa6c9c6179.js +1 -0
- package/web/out/_next/static/chunks/{webpack-e781b4e158568ba0.js → webpack-cfe3662bbaa8d6ce.js} +1 -1
- package/web/out/_next/static/css/04c7fcbfa9004e04.css +1 -0
- package/web/out/_next/static/css/15abfc5e59099f48.css +1 -0
- package/web/out/_next/static/css/{210db1811016f805.css → 5062b0bcc3118ed8.css} +1 -1
- package/web/out/_next/static/css/57ecc433cb654a57.css +1 -0
- package/web/out/_next/static/css/7a62016f8918890b.css +5 -0
- package/web/out/_not-found/__next._full.txt +7 -7
- package/web/out/_not-found/__next._not-found.__PAGE__.txt +7 -7
- package/web/out/_not-found/__next._tree.txt +4 -4
- package/web/out/_not-found/index.html +1 -1
- package/web/out/_not-found/index.txt +7 -7
- package/web/out/composition/__next._full.txt +9 -9
- package/web/out/composition/__next._tree.txt +5 -5
- package/web/out/composition/__next.composition.__PAGE__.txt +9 -9
- package/web/out/composition/index.html +1 -1
- package/web/out/composition/index.txt +9 -9
- package/web/out/index.html +1 -1
- package/web/out/index.txt +8 -8
- package/web/out/spatial/__next._full.txt +8 -8
- package/web/out/spatial/__next._tree.txt +4 -4
- package/web/out/spatial/__next.spatial.__PAGE__.txt +8 -8
- package/web/out/spatial/index.html +1 -1
- package/web/out/spatial/index.txt +8 -8
- package/web/out/styles/__next._full.txt +8 -8
- package/web/out/styles/__next._tree.txt +4 -4
- package/web/out/styles/__next.styles.__PAGE__.txt +8 -8
- package/web/out/styles/index.html +1 -1
- package/web/out/styles/index.txt +8 -8
- package/web/out/ui-sketch/__next._full.txt +9 -9
- package/web/out/ui-sketch/__next._tree.txt +5 -5
- package/web/out/ui-sketch/__next.ui-sketch.__PAGE__.txt +9 -9
- package/web/out/ui-sketch/index.html +1 -1
- package/web/out/ui-sketch/index.txt +9 -9
- package/web/out/_next/static/chunks/348-6baeec6b3dbf02ab.js +0 -1
- package/web/out/_next/static/chunks/app/composition/page-8d037a4b99bb5546.js +0 -1
- package/web/out/_next/static/chunks/app/layout-ca2f61a5a618caea.js +0 -1
- package/web/out/_next/static/chunks/app/spatial/page-1d16089ca24b2eb8.js +0 -1
- package/web/out/_next/static/chunks/app/styles/page-e4d3c95957349351.js +0 -1
- package/web/out/_next/static/chunks/app/ui-sketch/page-23e5c3b12d99082c.js +0 -1
- package/web/out/_next/static/chunks/next/dist/client/components/builtin/global-error-15f5118ed5e001a8.js +0 -1
- package/web/out/_next/static/css/2160a6bbf2cb551c.css +0 -1
- package/web/out/_next/static/css/28a4978acacc40b0.css +0 -1
- package/web/out/_next/static/css/2a0db06638359895.css +0 -1
- package/web/out/_next/static/css/4b1f9941c214d619.css +0 -5
- /package/web/out/_next/static/{MtSBeMOcAQHxKAV1fmedM → SiEWNIZfGL4sShRQt9h5W}/_buildManifest.js +0 -0
- /package/web/out/_next/static/{MtSBeMOcAQHxKAV1fmedM → SiEWNIZfGL4sShRQt9h5W}/_ssgManifest.js +0 -0
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"additionalProperties": false,
|
|
7
7
|
"required": ["version", "kind", "frame", "overallNote", "rectangles", "texts", "images", "groups", "stages"],
|
|
8
8
|
"properties": {
|
|
9
|
+
"pngSplits": { "type": "array", "items": { "$ref": "#/$defs/pngSplit" } },
|
|
9
10
|
"layerOrder": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
|
|
10
11
|
"version": { "const": 1 },
|
|
11
12
|
"kind": { "const": "ui-layout-draft" },
|
|
@@ -231,6 +232,178 @@
|
|
|
231
232
|
}
|
|
232
233
|
},
|
|
233
234
|
"$defs": {
|
|
235
|
+
"pngSplit": {
|
|
236
|
+
"type": "object",
|
|
237
|
+
"additionalProperties": false,
|
|
238
|
+
"required": [
|
|
239
|
+
"id",
|
|
240
|
+
"algorithm",
|
|
241
|
+
"packingAlgorithm",
|
|
242
|
+
"options",
|
|
243
|
+
"sources",
|
|
244
|
+
"pieces",
|
|
245
|
+
"groupId"
|
|
246
|
+
],
|
|
247
|
+
"properties": {
|
|
248
|
+
"id": {
|
|
249
|
+
"type": "string",
|
|
250
|
+
"minLength": 1
|
|
251
|
+
},
|
|
252
|
+
"algorithm": {
|
|
253
|
+
"enum": [
|
|
254
|
+
"alpha-threshold-soft-edges-8-connected-v2",
|
|
255
|
+
"alpha-threshold-manual-regions-v3"
|
|
256
|
+
]
|
|
257
|
+
},
|
|
258
|
+
"packingAlgorithm": {
|
|
259
|
+
"const": "native-size-skyline-v1"
|
|
260
|
+
},
|
|
261
|
+
"options": {
|
|
262
|
+
"type": "object",
|
|
263
|
+
"additionalProperties": false,
|
|
264
|
+
"required": [
|
|
265
|
+
"alphaThreshold",
|
|
266
|
+
"minSize",
|
|
267
|
+
"gap"
|
|
268
|
+
],
|
|
269
|
+
"properties": {
|
|
270
|
+
"alphaThreshold": {
|
|
271
|
+
"type": "integer",
|
|
272
|
+
"minimum": 0,
|
|
273
|
+
"maximum": 254
|
|
274
|
+
},
|
|
275
|
+
"minSize": {
|
|
276
|
+
"type": "integer",
|
|
277
|
+
"minimum": 0,
|
|
278
|
+
"maximum": 9007199254740991
|
|
279
|
+
},
|
|
280
|
+
"gap": {
|
|
281
|
+
"type": "number",
|
|
282
|
+
"minimum": 0
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
},
|
|
286
|
+
"sources": {
|
|
287
|
+
"type": "array",
|
|
288
|
+
"minItems": 1,
|
|
289
|
+
"items": {
|
|
290
|
+
"type": "object",
|
|
291
|
+
"additionalProperties": false,
|
|
292
|
+
"required": [
|
|
293
|
+
"nodeId",
|
|
294
|
+
"assetId",
|
|
295
|
+
"sha256",
|
|
296
|
+
"width",
|
|
297
|
+
"height",
|
|
298
|
+
"discarded"
|
|
299
|
+
],
|
|
300
|
+
"properties": {
|
|
301
|
+
"nodeId": {
|
|
302
|
+
"type": "string",
|
|
303
|
+
"minLength": 1
|
|
304
|
+
},
|
|
305
|
+
"assetId": {
|
|
306
|
+
"type": "string",
|
|
307
|
+
"minLength": 1
|
|
308
|
+
},
|
|
309
|
+
"sha256": {
|
|
310
|
+
"type": "string",
|
|
311
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
312
|
+
},
|
|
313
|
+
"width": {
|
|
314
|
+
"type": "integer",
|
|
315
|
+
"minimum": 1
|
|
316
|
+
},
|
|
317
|
+
"height": {
|
|
318
|
+
"type": "integer",
|
|
319
|
+
"minimum": 1
|
|
320
|
+
},
|
|
321
|
+
"discarded": {
|
|
322
|
+
"type": "integer",
|
|
323
|
+
"minimum": 0
|
|
324
|
+
},
|
|
325
|
+
"regions": {
|
|
326
|
+
"type": "array",
|
|
327
|
+
"maxItems": 64,
|
|
328
|
+
"items": {
|
|
329
|
+
"type": "array",
|
|
330
|
+
"minItems": 3,
|
|
331
|
+
"maxItems": 256,
|
|
332
|
+
"items": {
|
|
333
|
+
"type": "array",
|
|
334
|
+
"minItems": 2,
|
|
335
|
+
"maxItems": 2,
|
|
336
|
+
"items": {
|
|
337
|
+
"type": "number",
|
|
338
|
+
"minimum": -1000000,
|
|
339
|
+
"maximum": 1000000
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
},
|
|
347
|
+
"pieces": {
|
|
348
|
+
"type": "array",
|
|
349
|
+
"items": {
|
|
350
|
+
"type": "object",
|
|
351
|
+
"additionalProperties": false,
|
|
352
|
+
"required": [
|
|
353
|
+
"nodeId",
|
|
354
|
+
"assetId",
|
|
355
|
+
"sourceNodeId",
|
|
356
|
+
"sourceRect",
|
|
357
|
+
"sha256",
|
|
358
|
+
"width",
|
|
359
|
+
"height"
|
|
360
|
+
],
|
|
361
|
+
"properties": {
|
|
362
|
+
"nodeId": {
|
|
363
|
+
"type": "string",
|
|
364
|
+
"minLength": 1
|
|
365
|
+
},
|
|
366
|
+
"assetId": {
|
|
367
|
+
"type": "string",
|
|
368
|
+
"minLength": 1
|
|
369
|
+
},
|
|
370
|
+
"sourceNodeId": {
|
|
371
|
+
"type": "string",
|
|
372
|
+
"minLength": 1
|
|
373
|
+
},
|
|
374
|
+
"sourceRect": {
|
|
375
|
+
"type": "array",
|
|
376
|
+
"items": {
|
|
377
|
+
"type": "integer",
|
|
378
|
+
"minimum": 0
|
|
379
|
+
},
|
|
380
|
+
"minItems": 4,
|
|
381
|
+
"maxItems": 4
|
|
382
|
+
},
|
|
383
|
+
"sha256": {
|
|
384
|
+
"type": "string",
|
|
385
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
386
|
+
},
|
|
387
|
+
"width": {
|
|
388
|
+
"type": "integer",
|
|
389
|
+
"minimum": 1
|
|
390
|
+
},
|
|
391
|
+
"height": {
|
|
392
|
+
"type": "integer",
|
|
393
|
+
"minimum": 1
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
},
|
|
398
|
+
"groupId": {
|
|
399
|
+
"type": [
|
|
400
|
+
"string",
|
|
401
|
+
"null"
|
|
402
|
+
],
|
|
403
|
+
"minLength": 1
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
},
|
|
234
407
|
"imageCrop": {
|
|
235
408
|
"type": "object",
|
|
236
409
|
"additionalProperties": false,
|
package/skills/human2ai/SKILL.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: human2ai
|
|
3
|
-
description: Collaborate through local Human2AI design sessions, its style library, and its CLI. Use in a consumer project containing .human2ai/integration.json to inspect, edit, refine, review, or undo design work; to draw a reference picture as editable scene or editorial composition (“把这张图的构图画到画布上”); to project existing UI into a layout canvas (“把 UI 放到画布上让我修改”); to model in the consumer project using a style and 3D spatial guidance; or to reuse a visual style. The consumer project's Agent owns downstream implementation.
|
|
3
|
+
description: Collaborate through local Human2AI design sessions, its style library, and its CLI. Use in a consumer project containing .human2ai/integration.json to inspect, edit, refine, review, or undo design work; to draw a reference picture as editable scene or editorial composition (“把这张图的构图画到画布上”); to project existing UI into a layout canvas (“把 UI 放到画布上让我修改”); to extract UI artwork from an interface image (“提取 UI”) or split a transparent PNG into canvas images; to model in the consumer project using a style and 3D spatial guidance; or to reuse a visual style. The consumer project's Agent owns downstream implementation.
|
|
4
4
|
metadata:
|
|
5
|
-
version: "0.1.
|
|
5
|
+
version: "0.1.8"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Human2AI
|
|
@@ -114,6 +114,12 @@ When generating an image from a spatial camera, follow that reference's **Camera
|
|
|
114
114
|
|
|
115
115
|
When the user asks for final 3D models or a scene in their project, read [references/spatial-modeling.md](references/spatial-modeling.md). Combine the full style specification and reference images with the Human2AI spatial session's layout, scale, pose and camera guidance. Build and review the result using the consumer project's existing tools. A style binding does not alter the guide scene or record completion of external modeling. Use the spatial authoring workflow above only when the guide scene itself needs edits.
|
|
116
116
|
|
|
117
|
+
## Extract UI artwork from an interface image
|
|
118
|
+
|
|
119
|
+
For requests such as “提取这张界面图里的 UI” or “把图里的按钮和图标提取出来”, read [references/ui-extraction.md](references/ui-extraction.md) and its image-edit prompt template. Recover complete artwork from the specified source image, preserving its design and separating overlapping objects, with the background in its own image. This workflow produces image assets; projection into editable layout regions follows the separate UI-layout reference.
|
|
120
|
+
|
|
121
|
+
PNG splitting is optional. Decide from the user's current request whether to deliver the extracted images, add the intact images to the session, or split transparent sheets into independent canvas nodes. When independent nodes are needed, use Human2AI's native CLI operations in [Split a transparent PNG](references/ui-layout.md#split-a-transparent-png); extraction alone does not require splitting. Retain the original image and existing user edits.
|
|
122
|
+
|
|
117
123
|
## Choose design, planning, refinement or style processing
|
|
118
124
|
|
|
119
125
|
For requests to design or redesign composition content from focuses or planning guides, follow [Design content from composition planning](references/composition.md#design-content-from-composition-planning). Apply the same interpretation and visual checks when styling, refining or generating from an existing planned composition. With complex guides, especially radial fans, spirals or interacting plans, explicitly map their relationships to visible content before choosing shapes. Check focal placement and directional structure separately; preserving guide data or placing subjects at focuses alone does not fulfill the composition.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
AGENT PREFLIGHT — complete before image generation; send only the filled image-edit prompt below to the image tool:
|
|
2
|
+
Analyze the original interface before choosing the UI output count. Use exactly 1, 2 or 4 UI images, maximum 4. Default to 2; use 1 only for a sufficiently simple source whose completed, separated objects fit clearly; propose 4 when 2 cannot accommodate the source's complexity while preserving complete objects, transparent spacing and readable text. Consider independent objects after overlap separation, space after completion, lettering size and detail complexity. Do not decide from a rigid element-count threshold or from fragments of a generated PNG.
|
|
3
|
+
Plan 2 as upper/lower or left/right source regions, or 4 as upper-left, upper-right, lower-left and lower-right regions, according to the source distribution; allow non-equal boundaries. Assign every UI object to exactly one batch. Plan 1 separate complete background image, excluded from the UI count. Respect an explicitly narrower request, such as extracting only a specified object or excluding the background.
|
|
4
|
+
For 4 UI images, show the user the concrete regions, their object lists and why 2 are insufficient. Obtain explicit confirmation for that four-image plan before generating any of its UI batches, including when upgrading a 1- or 2-image plan. Reuse an existing explicit confirmation for the same plan; do not treat authorization for 2 as authorization for 4. Authorized 1- or 2-image extraction needs no additional count confirmation.
|
|
5
|
+
PREFLIGHT PLAN: <chosen UI count and reason; source-region boundaries; object ownership per batch; separate background or the user's narrower scope>
|
|
6
|
+
FOUR-IMAGE CONFIRMATION: <not required for 1/2; for 4, the user's actual confirmation and its scope — leave pending until received>
|
|
7
|
+
DELIVERY: <files, intact canvas images, or independent canvas objects according to the current request; PNG splitting is optional>
|
|
8
|
+
|
|
9
|
+
IMAGE-EDIT PROMPT — one call per planned UI batch:
|
|
10
|
+
Extract complete, independently usable UI objects from the supplied original interface image. Preserve the source design, proportions, colors, lettering policy, materials and drawing style. Use image editing with the source as direct visual evidence.
|
|
11
|
+
|
|
12
|
+
REFERENCE ROLES: <identify the original full-screen image and any optional regional reference; the full image supplies context, not extra output objects>
|
|
13
|
+
UI BATCH PLAN: <chosen total of 1, 2 or 4 UI images; this batch's index and object ownership>
|
|
14
|
+
TARGET REGION / BATCH: <all requested UI for 1; upper/lower or left/right for 2; upper-left/upper-right/lower-left/lower-right for 4; specify this region's boundaries, allowing non-equal partitions>
|
|
15
|
+
OBJECTS TO EXTRACT: <list each independent object; explicitly identify what overlaps what and which surfaces must be restored>
|
|
16
|
+
TEXT POLICY AND EXACT COPY: <the user's current text requirement and known literal strings belonging to each object>
|
|
17
|
+
OUTPUT: <transparent PNG canvas with sufficient space and margins for all complete objects at a readable scale>
|
|
18
|
+
|
|
19
|
+
COMPLETENESS:
|
|
20
|
+
Output every requested object as a whole object, including parts slightly hidden by another UI object or cropped by the original image boundary. Reconstruct its missing outline, face, sidewall, corners, rim and decoration by continuing that same object's visible design and light direction. Do not reproduce the shape of the occluder as a notch, hole, missing corner or cut-out. Preserve an intentional opening belonging to the object itself. Do not invent entirely hidden UI objects or guess unknown text or numbers.
|
|
21
|
+
|
|
22
|
+
OVERLAP SEPARATION:
|
|
23
|
+
Objects that appear independently layered or overlapping in the interface must be extracted separately. For example, separate an icon from its button/support, a foreground marker from its illustrated panel, separate stacked books, and separate logo ornaments from the lettered plaque. Restore the complete lower object after removing the upper one. Preserve printed or engraved lettering and surface illustration on their own object; do not split a word into strokes or a material into its paint planes. Do not fuse overlapping objects into one composite silhouette.
|
|
24
|
+
|
|
25
|
+
TRANSPARENT ARRANGEMENT:
|
|
26
|
+
Move the extracted objects apart as needed. Preserve their own shape and proportions rather than their original screen coordinates. Give every complete object a fully transparent margin and separate unrelated objects with actual alpha-zero space; no overlap, touching edges, shadow bridges, clipped edges or shared scenery. Use sufficient canvas space for this planned batch instead of shrinking labels or sacrificing complete silhouettes. Do not add backplates solely to connect floating letters.
|
|
27
|
+
|
|
28
|
+
REGIONAL BATCHES:
|
|
29
|
+
Follow the batch plan decided from the original image before generation: all requested UI in 1 image, upper/lower or left/right in 2 images, or upper-left/upper-right/lower-left/lower-right in 4 images. Regional boundaries need not divide the source equally. This call outputs only one transparent UI image containing this batch's listed objects; do not add other batches, grid panels or dividing lines. An object crossing the regional boundary must be extracted whole in its assigned batch; expand the regional reference or use the full original image for its hidden/context parts. Do not cut an object at the batch boundary or repeat it across outputs.
|
|
30
|
+
|
|
31
|
+
TEXT AND BACKGROUND:
|
|
32
|
+
Follow the stated text policy. When retaining text, preserve the known original words and numbers on their owning UI objects, with readable letterforms; do not rewrite, translate, omit or invent copy. Remove environmental background outside the requested objects. Retain a scene printed inside a UI illustration as part of that illustration. The full environment belongs to a separate background image and must never be included in this transparent UI output.
|
|
33
|
+
|
|
34
|
+
Output genuine RGBA transparency. No fake checkerboard, opaque background, crop frames, labels, asset names, instructional captions or watermarks. Only the complete, separated, requested UI objects.
|
|
35
|
+
|
|
36
|
+
BACKGROUND IMAGE-EDIT PROMPT — one separate call when included in the user's scope:
|
|
37
|
+
Extract and reconstruct the complete environmental background from the supplied original interface image. Preserve the source composition, proportions, colors, materials, drawing style and light direction. Remove foreground UI controls, icons, panels, logos and UI text. Restore background regions hidden behind them by continuing visible scenery, textures and lighting. Do not invent unrelated subjects or leave the shapes of removed UI as gaps. Retain text or illustrations that belong to the environment itself according to the stated text policy. Output one complete opaque background image, with no transparent UI sheet, extraction grid, labels, guide markings or watermarks.
|
|
38
|
+
REFERENCE ROLES: <identify the original full-screen interface image>
|
|
39
|
+
BACKGROUND CONTENT AND RESTORATION: <visible environmental content and regions obscured by UI>
|
|
40
|
+
TEXT POLICY: <the user's requirement for text belonging to the environment>
|
|
41
|
+
OUTPUT: <one complete background image preserving the source aspect ratio unless the user requests another>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Extract UI artwork
|
|
2
|
+
|
|
3
|
+
Use this workflow to extract artwork from an interface image in Human2AI. It produces complete UI objects on transparent image sheets and a separate completed background. Read the latest capture and the user's current requirements before choosing the source and outputs.
|
|
4
|
+
|
|
5
|
+
## Resolve the source
|
|
6
|
+
|
|
7
|
+
Use the specified session and image node or asset. When several images are equally plausible, ask which one to extract. Create `.human2ai-data/output/` before exporting files. Retrieve the original asset through the connection's image-source command, writing it under that directory:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
<runner> image source --session <session-id> --asset <asset-id> --output .human2ai-data/output/ui-source.png
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Use the asset's actual format for the filename. Inspect the local source before image editing. Read relevant node and overall notes as user instructions, and distinguish the full original interface from any regional references. The source's visible design is authoritative: retain proportions, colors, drawing style, materials and light direction. A bound style does not authorize redesigning extracted objects.
|
|
14
|
+
|
|
15
|
+
## Plan complete objects and batches
|
|
16
|
+
|
|
17
|
+
- Complete small portions hidden behind another object or cut off by the source boundary, continuing that object's visible outline, panel, sidewall, corners and decoration. Remove the occluder's shape rather than leaving a notch or hole. Preserve intentional openings; do not invent entirely hidden objects.
|
|
18
|
+
- Extract independently layered or overlapping objects separately: icon and support, stacked books, foreground marker and panel, logo ornament and lettered plaque. Restore the lower object after removing the upper one. Printed or engraved lettering and surface illustrations remain on their owning object; paint planes and letter strokes are not separate UI objects.
|
|
19
|
+
- Rearrange objects within each output sheet so their complete silhouettes have transparent margins and alpha-zero separation. Preserve each object's proportions and recognizable features. Give them enough space instead of shrinking text or clipping edges to fit.
|
|
20
|
+
- Choose exactly 1, 2 or 4 UI sheets before generation, with a maximum of 4. Default to 2; choose 1 for a simple source whose completed, separated objects fit clearly, and propose 4 when 2 cannot preserve completeness, spacing and readable text. Consider overlap separation, completed size, text and detail rather than fixed object-count thresholds or generated PNG fragments.
|
|
21
|
+
- For 2 sheets, partition the source upper/lower or left/right according to its contents. For 4, use upper-left, upper-right, lower-left and lower-right. Boundaries may be unequal. Assign each object to exactly one batch; an object crossing a boundary stays whole in its assigned batch, using the full source or an expanded regional reference for context.
|
|
22
|
+
- Before generating any UI sheet in a four-sheet plan, explain why 2 are insufficient, list the four regions and their objects, and obtain explicit confirmation. A confirmed plan needs no repeated confirmation. Upgrading from 1 or 2 to 4 needs confirmation of the new plan; an authorized 1- or 2-sheet extraction needs no extra count approval.
|
|
23
|
+
- Extract and complete the background as one separate full image, excluded from the UI count. Normal outputs are 2 UI sheets plus 1 background; simple sources use 1 plus 1, and a confirmed complex plan uses 4 plus 1. A narrower explicit user request takes precedence, such as extracting only a specified icon or excluding the background.
|
|
24
|
+
- Follow the user's current text policy. When retaining text, preserve known literal words and numbers on their owning elements. Do not guess fully hidden text, translate it or rewrite it. Candidate artwork does not change downstream editable-text or localization requirements.
|
|
25
|
+
|
|
26
|
+
## Generate and deliver
|
|
27
|
+
|
|
28
|
+
Read and fill [ui-extraction-prompt.txt](ui-extraction-prompt.txt) before generation. Its preflight is Agent planning; send only the filled image-edit prompt to the image tool. Use the available image-editing tool or Skill with the original image as direct visual evidence. Request genuine transparency for UI sheets and an opaque complete image for the background. Generate one planned sheet per call, with only its assigned objects, using the same source and drawing style. The template includes a separate background prompt.
|
|
29
|
+
|
|
30
|
+
Keep generated files and the actual filled prompts under `.human2ai-data/output/`, retaining the source and prior prompt versions when revising an output. Do not import the game's splitting scripts, FairyGUI/Cocos resource workflow or project-specific paths.
|
|
31
|
+
|
|
32
|
+
For extraction from a Human2AI session, normally add the intact outputs to that same session for review. Follow the user's current request when choosing delivery and optional splitting:
|
|
33
|
+
|
|
34
|
+
- For a file-only request, deliver the intact UI sheets and separate background with their paths.
|
|
35
|
+
- When the user needs the results on the canvas, upload through `images.commands.upload`, read the latest capture, add the intact sheets and background as separate image nodes, and save through `capture.commands.save`. Give generated nodes stable ids and `origin: "agent"`, preserve existing nodes and every state's layout, and place review materials outside the interface frame unless the user requests another position. Return the session link.
|
|
36
|
+
- When independent canvas objects are needed, optionally use [Human2AI's native PNG splitting CLI](ui-layout.md#split-a-transparent-png) after adding a transparent sheet as an image node. The Agent decides whether this is useful for the current authorized task. Extraction does not require automatic splitting, split previews, manual masks or post-split rearrangement. Keep the background intact.
|
|
37
|
+
|
|
38
|
+
Use the existing revision-conflict workflow for canvas saves. Delivery of extraction results does not authorize downstream implementation in the consumer project.
|
|
@@ -14,6 +14,28 @@ Use a `.svg` output filename for a self-contained vector preview. Both formats e
|
|
|
14
14
|
|
|
15
15
|
Read state ids, names and order from the capture's `stateTabs`; older captures use `start` followed by `stages[].id`. Pass the stable id to `--state`, not the display name. If omitted, the first state in display order is exported, including when `start` has been deleted. Export each state relevant to the task separately. Unknown or deleted state ids fail instead of falling back to another state. Open the PNG with the available local image viewer to check placement, text, visibility and clipping; opening the Human2AI page is unnecessary for this check.
|
|
16
16
|
|
|
17
|
+
## Split a transparent PNG
|
|
18
|
+
|
|
19
|
+
Use `ui-layout.split-png@1` when the current task calls for independent images from a transparent PNG already on the canvas. UI artwork extraction does not require this step. Discover the commands through `session connect`, read the latest capture and choose one ordinary image node with an `assetId`, without a `previewReference`:
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
<runner> ui-layout split-png --session <session-id> --revision <latest-revision> --node <image-node-id>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The command prepares slices through the existing service, packs them at original pixel size outside the interface's right edge, groups two or more new nodes, and saves one complete draft revision. It preserves the source image, unrelated nodes, notes, crop, layer order and motion states. The result returns `changed`, `capture` (the saved version) and `batch` (source and slice provenance). Repeating an applied source with the same parameters returns `changed: false` without uploads or a new revision; it does not restore user-deleted slices or move existing ones.
|
|
26
|
+
|
|
27
|
+
Defaults are `--alpha-threshold 8`, `--min-size 16` and `--gap 12`. The threshold controls connectivity while preserving soft-edge RGBA. Only automatic pieces whose original width and height are both below the minimum are discarded; thin pieces survive when either dimension reaches it. `--min-size 0` disables filtering. Optional finite `--x` and `--y` override the starting coordinates. Parameter changes create separate results and preserve prior edits; a gap or position change alone does not repack an applied batch.
|
|
28
|
+
|
|
29
|
+
When a range preview helps the current task, use the optional read-only operation:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
<runner> ui-layout preview-png-split --session <session-id> --revision <latest-revision> --node <image-node-id>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
It returns retained source-pixel rectangles and discarded counts without creating assets, split records or draft revisions. Both commands accept the same threshold, minimum-size and gap parameters. Both also accept `--regions <regions.json>` for explicitly requested manual closed polygons, as an array of polygons in original asset pixel coordinates, for example `[[[0,0],[80,0],[80,60],[0,60]]]`. A nonempty region becomes one piece regardless of connectivity or minimum size; earlier regions claim overlapping pixels first, and remaining pixels use automatic splitting. Do not add manual regions merely because extraction was requested.
|
|
36
|
+
|
|
37
|
+
`--revision` must match the latest saved capture. A revision conflict stops the write and preserves external edits; reconnect and read the latest capture before retrying. Asset preparation is resumable, so a save or upload failure does not require generating the image again. Undo a completed split through the existing Capture undo command, using the returned saved revision.
|
|
38
|
+
|
|
17
39
|
## Capture user-perceived layout intent
|
|
18
40
|
|
|
19
41
|
A UI layout draft is a flat spatial sketch of what users can see, read, recognize, or interact with. It is not a DOM tree, component tree, CSS layout model, or inventory of framework components.
|
package/web/out/404/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/brand/h2a.svg"/><link rel="stylesheet" href="/_next/static/css/4b1f9941c214d619.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/210db1811016f805.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/9c61ee5fe683073a.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/2160a6bbf2cb551c.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-e781b4e158568ba0.js"/><script src="/_next/static/chunks/c7879cf7-7873c8afd9c9c666.js" async=""></script><script src="/_next/static/chunks/158-eb00456e1bab68b3.js" async=""></script><script src="/_next/static/chunks/main-app-5419a575f3ff4496.js" async=""></script><script src="/_next/static/chunks/83607670-fd2f339702a222e4.js" async=""></script><script src="/_next/static/chunks/c3f2cda1-ef85a0897724e46b.js" async=""></script><script src="/_next/static/chunks/164-d8dd2b053f27bf62.js" async=""></script><script src="/_next/static/chunks/653-6dfb97fec9a2d91b.js" async=""></script><script src="/_next/static/chunks/348-6baeec6b3dbf02ab.js" async=""></script><script src="/_next/static/chunks/app/layout-ca2f61a5a618caea.js" async=""></script><meta name="robots" content="noindex"/><title>以形塑形</title><meta name="description" content="使用基础图形规划画面重心、主体占比与视觉方向。"/><link rel="icon" href="/favicon.ico?b6ae9b6fb57ae2e1" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/icon.svg?050a111322f3f309" type="image/svg+xml" sizes="any"/><title>404: This page could not be found.</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div data-yisiui-asset="human2ai/app-shell" data-yisiui-name="Human2AiAppShell" data-yisiui-category="layout" data-yisiui-origin="project" data-yisiui-status="candidate" class="human2ai-app-shell"><div data-yisiui-asset="yisiui/app-shell-frame" data-yisiui-name="AppShellFrame" data-yisiui-category="layout" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-app-shell-frame yisi-app-shell-frame--right-panel-hidden" data-sidebar-state="open" data-right-panel-state="absent" style="--yisi-app-shell-sidebar-width:280px;--yisi-app-shell-right-panel-width:300px"><aside id="_R_3b_" class="yisi-app-shell-sidebar" aria-label="Human2AI 应用侧栏" aria-hidden="false"><div class="yisi-app-shell-sidebar-content"><div class="yisi-app-shell-sidebar-top"><div class="yisi-app-shell-sidebar-heading"><div class="yisi-app-shell-sidebar-title"><a class="human2ai-app-shell__brand" href="/"><img class="human2ai-app-shell__brand-icon" src="/brand/h2a.svg" alt="" width="24" height="24"/>以形塑形</a></div><button aria-label="收起应用侧栏" title="收起应用侧栏" aria-expanded="true" aria-controls="_R_3b_" type="button" class="ant-btn css-u6izyw css-var-root ant-btn-text ant-btn-color-default ant-btn-variant-text ant-btn-icon-only yisi-app-shell-sidebar-toggle"><span class="ant-btn-icon"><svg data-yisiui-asset="yisiui/animated-icon" data-yisiui-name="AnimatedIcon" data-yisiui-category="icon" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-animated-icon" data-icon="sidebar-left" data-playing="false" data-loop="false" viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" style="--yisiui-animated-icon-duration:720ms"><g><path d="M3 9C3 8.46 3 6.48 3.99 5.49C4.98 4.5 6.96 4.5 7.5 4.5L16.5 4.5C17.04 4.5 19.02 4.5 20.01 5.49C21 6.48 21 8.46 21 9L21 15C21 15.54 21 17.52 20.01 18.51C19.02 19.5 17.04 19.5 16.5 19.5L7.5 19.5C6.96 19.5 4.98 19.5 3.99 18.51C3 17.52 3 15.54 3 15Z"></path><g class="yisi-animated-icon-motion" data-animated-icon-part="motion"><rect x="5.5" y="7" width="4" height="10" rx="1.6" fill="currentColor" stroke="none"></rect></g><g class="yisi-animated-icon-layer yisi-icon-feedback yisi-icon-sidebar-wake" opacity="0" stroke-width="1.2"><path d="M11 9h3M11 12h5M11 15h3"></path></g></g></svg></span></button></div></div><div class="yisi-app-shell-sidebar-slot"><div data-yisiui-asset="human2ai/workspace-sidebar" data-yisiui-name="Human2AiWorkspaceSidebar" data-yisiui-category="module" data-yisiui-origin="project" data-yisiui-status="candidate" class="human2ai-workspace-sidebar"><section class="human2ai-workspace-sidebar__actions" aria-labelledby="human2ai-sidebar-actions-title"><h2 id="human2ai-sidebar-actions-title">功能区</h2><div data-yisiui-asset="yisiui/composite-button" data-yisiui-name="CompositeButton" data-yisiui-category="button" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-composite-button" data-collapsed="false"><button type="button" class="ant-btn css-u6izyw css-var-root ant-btn-text ant-btn-color-default ant-btn-variant-text ant-btn-sm yisi-composite-button-main" style="color:#1F292B"><span class="ant-btn-icon"><span role="img" aria-label="picture" aria-hidden="true" class="anticon anticon-picture"><svg viewBox="64 64 896 896" focusable="false" data-icon="picture" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2zM304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z"></path></svg></span></span><span class="ant-typography yisi-composite-button-label css-u6izyw css-var-root" style="color:inherit">新建构图</span></button></div><div data-yisiui-asset="yisiui/composite-button" data-yisiui-name="CompositeButton" data-yisiui-category="button" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-composite-button" data-collapsed="false"><button type="button" class="ant-btn css-u6izyw css-var-root ant-btn-text ant-btn-color-default ant-btn-variant-text ant-btn-sm yisi-composite-button-main" style="color:#1F292B"><span class="ant-btn-icon"><span role="img" aria-label="layout" aria-hidden="true" class="anticon anticon-layout"><svg viewBox="64 64 896 896" focusable="false" data-icon="layout" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-696 72h136v656H184V184zm656 656H384V384h456v456zM384 320V184h456v136H384z"></path></svg></span></span><span class="ant-typography yisi-composite-button-label css-u6izyw css-var-root" style="color:inherit">新建 UI 界面</span></button></div><div data-yisiui-asset="yisiui/composite-button" data-yisiui-name="CompositeButton" data-yisiui-category="button" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-composite-button" data-collapsed="false"><button type="button" class="ant-btn css-u6izyw css-var-root ant-btn-text ant-btn-color-default ant-btn-variant-text ant-btn-sm yisi-composite-button-main" style="color:#1F292B"><span class="ant-btn-icon"><span role="img" aria-label="code-sandbox" aria-hidden="true" class="anticon anticon-code-sandbox"><svg viewBox="64 64 896 896" focusable="false" data-icon="code-sandbox" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M709.6 210l.4-.2h.2L512 96 313.9 209.8h-.2l.7.3L151.5 304v416L512 928l360.5-208V304l-162.9-94zM482.7 843.6L339.6 761V621.4L210 547.8V372.9l272.7 157.3v313.4zM238.2 321.5l134.7-77.8 138.9 79.7 139.1-79.9 135.2 78-273.9 158-274-158zM814 548.3l-128.8 73.1v139.1l-143.9 83V530.4L814 373.1v175.2z"></path></svg></span></span><span class="ant-typography yisi-composite-button-label css-u6izyw css-var-root" style="color:inherit">新建 3D 空间</span></button></div><div data-yisiui-asset="yisiui/composite-button" data-yisiui-name="CompositeButton" data-yisiui-category="button" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-composite-button" data-collapsed="false"><button type="button" class="ant-btn css-u6izyw css-var-root ant-btn-text ant-btn-color-default ant-btn-variant-text ant-btn-sm yisi-composite-button-main" style="color:#1F292B"><span class="ant-btn-icon"><span role="img" aria-label="folder-add" aria-hidden="true" class="anticon anticon-folder-add"><svg viewBox="64 64 896 896" focusable="false" data-icon="folder-add" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1zm396-144.7H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"></path></svg></span></span><span class="ant-typography yisi-composite-button-label css-u6izyw css-var-root" style="color:inherit">新建项目</span></button></div><div data-yisiui-asset="yisiui/composite-button" data-yisiui-name="CompositeButton" data-yisiui-category="button" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-composite-button" data-collapsed="false"><button type="button" class="ant-btn css-u6izyw css-var-root ant-btn-text ant-btn-color-default ant-btn-variant-text ant-btn-sm yisi-composite-button-main" style="color:#1F292B"><span class="ant-btn-icon"><span role="img" aria-label="bg-colors" aria-hidden="true" class="anticon anticon-bg-colors"><svg viewBox="64 64 896 896" focusable="false" data-icon="bg-colors" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M766.4 744.3c43.7 0 79.4-36.2 79.4-80.5 0-53.5-79.4-140.8-79.4-140.8S687 610.3 687 663.8c0 44.3 35.7 80.5 79.4 80.5zm-377.1-44.1c7.1 7.1 18.6 7.1 25.6 0l256.1-256c7.1-7.1 7.1-18.6 0-25.6l-256-256c-.6-.6-1.3-1.2-2-1.7l-78.2-78.2a9.11 9.11 0 00-12.8 0l-48 48a9.11 9.11 0 000 12.8l67.2 67.2-207.8 207.9c-7.1 7.1-7.1 18.6 0 25.6l255.9 256zm12.9-448.6l178.9 178.9H223.4l178.8-178.9zM904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z"></path></svg></span></span><span class="ant-typography yisi-composite-button-label css-u6izyw css-var-root" style="color:inherit">风格库</span></button></div></section><section class="human2ai-workspace-sidebar__projects" aria-labelledby="human2ai-sidebar-projects-title" aria-busy="true"><h2 id="human2ai-sidebar-projects-title">项目</h2><section data-yisiui-asset="yisiui/loading-state" data-yisiui-name="LoadingState" data-yisiui-category="status" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-loading-state yisi-loading-state-compact human2ai-workspace-sidebar__loading" data-density="compact" data-motion="auto" aria-busy="true" aria-label="正在加载项目"><span class="yisi-loading-state-announcement" role="status" aria-live="polite">正在加载项目</span><div class="yisi-loading-state-skeleton" aria-hidden="true"><div class="ant-skeleton ant-skeleton-active css-u6izyw css-var-root"><div class="ant-skeleton-section"><h3 class="ant-skeleton-title" style="width:42%"></h3><ul class="ant-skeleton-paragraph"><li></li><li></li><li></li><li></li><li></li><li style="width:61%"></li></ul></div></div></div></section></section><div class="human2ai-workspace-sidebar__language-selector"><a title="以形塑形 的 GitHub 地址" href="https://github.com/yisi-ai/human2ai" target="_blank" rel="noopener noreferrer" data-yisiui-asset="yisiui/basic-button" data-yisiui-name="BasicButton" data-yisiui-category="button" data-yisiui-origin="shared" data-yisiui-status="experimental" aria-label="以形塑形 的 GitHub 地址" class="ant-btn css-u6izyw css-var-root ant-btn-default ant-btn-color-default ant-btn-variant-outlined ant-btn-icon-only human2ai-workspace-sidebar__repository-link" style="background-color:transparent;border:none;box-shadow:none" tabindex="0" aria-disabled="false"><span class="ant-btn-icon"><span role="img" aria-label="github" aria-hidden="true" class="anticon anticon-github"><svg viewBox="64 64 896 896" focusable="false" data-icon="github" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0138.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z"></path></svg></span></span></a><div data-yisiui-asset="human2ai/compact-dropdown-select" data-yisiui-name="CompactDropdownSelect" data-yisiui-category="switching" data-yisiui-origin="project" data-yisiui-status="candidate" class="human2ai-compact-dropdown-select" data-open="false" data-placement="top" data-empty="false"><div class="ant-select ant-select-outlined human2ai-compact-dropdown-select__control css-var-root ant-select-css-var css-u6izyw ant-select-single ant-select-show-arrow"><div class="ant-select-content ant-select-content-has-value human2ai-compact-dropdown-select__value" title="中文">中文<input id="_R_horb_" type="text" aria-label="界面语言" readOnly="" autoComplete="new-password" class="ant-select-input" role="combobox" aria-expanded="false" aria-haspopup="listbox" aria-autocomplete="list" value=""/></div><div class="ant-select-suffix human2ai-compact-dropdown-select__suffix"><span role="img" aria-label="down" aria-hidden="true" class="anticon anticon-down human2ai-compact-dropdown-select__arrow"><svg viewBox="64 64 896 896" focusable="false" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></span></div></div></div></div></div></div></div></aside><div class="yisi-app-shell-resize-handle yisi-app-shell-resize-handle--sidebar" role="separator" aria-orientation="vertical" aria-label="调整应用侧栏宽度" aria-controls="_R_3b_" tabindex="0"></div><div class="yisi-app-shell-content"><header class="yisi-app-shell-content-header"><div class="yisi-app-shell-content-leading"></div></header><div class="yisi-app-shell-content-body"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--></div></div></div></div><script src="/_next/static/chunks/webpack-e781b4e158568ba0.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[84954,[\"460\",\"static/chunks/83607670-fd2f339702a222e4.js\",\"746\",\"static/chunks/c3f2cda1-ef85a0897724e46b.js\",\"164\",\"static/chunks/164-d8dd2b053f27bf62.js\",\"653\",\"static/chunks/653-6dfb97fec9a2d91b.js\",\"348\",\"static/chunks/348-6baeec6b3dbf02ab.js\",\"177\",\"static/chunks/app/layout-ca2f61a5a618caea.js\"],\"AppI18nProvider\"]\n3:I[42348,[\"460\",\"static/chunks/83607670-fd2f339702a222e4.js\",\"746\",\"static/chunks/c3f2cda1-ef85a0897724e46b.js\",\"164\",\"static/chunks/164-d8dd2b053f27bf62.js\",\"653\",\"static/chunks/653-6dfb97fec9a2d91b.js\",\"348\",\"static/chunks/348-6baeec6b3dbf02ab.js\",\"177\",\"static/chunks/app/layout-ca2f61a5a618caea.js\"],\"Human2AiShellLayout\"]\n4:I[91133,[],\"\"]\n5:I[4297,[],\"\"]\n6:I[66999,[\"460\",\"static/chunks/83607670-fd2f339702a222e4.js\",\"746\",\"static/chunks/c3f2cda1-ef85a0897724e46b.js\",\"164\",\"static/chunks/164-d8dd2b053f27bf62.js\",\"653\",\"static/chunks/653-6dfb97fec9a2d91b.js\",\"348\",\"static/chunks/348-6baeec6b3dbf02ab.js\",\"177\",\"static/chunks/app/layout-ca2f61a5a618caea.js\"],\"YisiUiInspectorHost\"]\n7:I[31872,[],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\nb:I[31872,[],\"ViewportBoundary\"]\nd:I[31872,[],\"MetadataBoundary\"]\nf:I[57567,[],\"default\",1]\n:HL[\"/_next/static/css/4b1f9941c214d619.css\",\"style\"]\n:HL[\"/_next/static/css/210db1811016f805.css\",\"style\"]\n:HL[\"/_next/static/css/9c61ee5fe683073a.css\",\"style\"]\n:HL[\"/_next/static/css/2160a6bbf2cb551c.css\",\"style\"]\na:X\n0:{\"P\":null,\"c\":[\"\",\"_not-found\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/4b1f9941c214d619.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/210db1811016f805.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9c61ee5fe683073a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/2160a6bbf2cb551c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"children\":[\"$\",\"body\",null,{\"children\":[[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"$L6\",null,{}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null]},null,false,\"$a\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"MtSBeMOcAQHxKAV1fmedM\"}\na:C\nc:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n10:I[12569,[],\"IconMark\"]\n9:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"以形塑形\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"使用基础图形规划画面重心、主体占比与视觉方向。\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?b6ae9b6fb57ae2e1\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/icon.svg?050a111322f3f309\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"$L10\",\"4\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/7a62016f8918890b.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/5062b0bcc3118ed8.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/9c61ee5fe683073a.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/57ecc433cb654a57.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-cfe3662bbaa8d6ce.js"/><script src="/_next/static/chunks/c7879cf7-7873c8afd9c9c666.js" async=""></script><script src="/_next/static/chunks/158-eb00456e1bab68b3.js" async=""></script><script src="/_next/static/chunks/main-app-9985b291e50ea69b.js" async=""></script><script src="/_next/static/chunks/83607670-fd2f339702a222e4.js" async=""></script><script src="/_next/static/chunks/c3f2cda1-ef85a0897724e46b.js" async=""></script><script src="/_next/static/chunks/989-6d7aa6a22a75f7de.js" async=""></script><script src="/_next/static/chunks/653-6dfb97fec9a2d91b.js" async=""></script><script src="/_next/static/chunks/868-6a413fc8c52cf6df.js" async=""></script><script src="/_next/static/chunks/app/layout-9c5f0b5667b84400.js" async=""></script><meta name="robots" content="noindex"/><title>以形塑形</title><meta name="description" content="使用基础图形规划画面重心、主体占比与视觉方向。"/><link rel="icon" href="/favicon.ico?b6ae9b6fb57ae2e1" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/icon.svg?050a111322f3f309" type="image/svg+xml" sizes="any"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script src="/_next/static/chunks/webpack-cfe3662bbaa8d6ce.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[84954,[\"460\",\"static/chunks/83607670-fd2f339702a222e4.js\",\"746\",\"static/chunks/c3f2cda1-ef85a0897724e46b.js\",\"989\",\"static/chunks/989-6d7aa6a22a75f7de.js\",\"653\",\"static/chunks/653-6dfb97fec9a2d91b.js\",\"868\",\"static/chunks/868-6a413fc8c52cf6df.js\",\"177\",\"static/chunks/app/layout-9c5f0b5667b84400.js\"],\"AppI18nProvider\"]\n3:I[60868,[\"460\",\"static/chunks/83607670-fd2f339702a222e4.js\",\"746\",\"static/chunks/c3f2cda1-ef85a0897724e46b.js\",\"989\",\"static/chunks/989-6d7aa6a22a75f7de.js\",\"653\",\"static/chunks/653-6dfb97fec9a2d91b.js\",\"868\",\"static/chunks/868-6a413fc8c52cf6df.js\",\"177\",\"static/chunks/app/layout-9c5f0b5667b84400.js\"],\"Human2AiShellLayout\"]\n4:I[91133,[],\"\"]\n5:I[4297,[],\"\"]\n6:I[66999,[\"460\",\"static/chunks/83607670-fd2f339702a222e4.js\",\"746\",\"static/chunks/c3f2cda1-ef85a0897724e46b.js\",\"989\",\"static/chunks/989-6d7aa6a22a75f7de.js\",\"653\",\"static/chunks/653-6dfb97fec9a2d91b.js\",\"868\",\"static/chunks/868-6a413fc8c52cf6df.js\",\"177\",\"static/chunks/app/layout-9c5f0b5667b84400.js\"],\"YisiUiInspectorHost\"]\n7:I[31872,[],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\nb:I[31872,[],\"ViewportBoundary\"]\nd:I[31872,[],\"MetadataBoundary\"]\nf:I[57567,[],\"default\",1]\n:HL[\"/_next/static/css/7a62016f8918890b.css\",\"style\"]\n:HL[\"/_next/static/css/5062b0bcc3118ed8.css\",\"style\"]\n:HL[\"/_next/static/css/9c61ee5fe683073a.css\",\"style\"]\n:HL[\"/_next/static/css/57ecc433cb654a57.css\",\"style\"]\na:X\n0:{\"P\":null,\"c\":[\"\",\"_not-found\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7a62016f8918890b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5062b0bcc3118ed8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9c61ee5fe683073a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/57ecc433cb654a57.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"children\":[\"$\",\"body\",null,{\"children\":[[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"$L6\",null,{}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null]},null,false,\"$a\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"SiEWNIZfGL4sShRQt9h5W\"}\na:C\nc:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n10:I[12569,[],\"IconMark\"]\n9:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"以形塑形\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"使用基础图形规划画面重心、主体占比与视觉方向。\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?b6ae9b6fb57ae2e1\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/icon.svg?050a111322f3f309\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"$L10\",\"4\",{}]]\n"])</script></body></html>
|
package/web/out/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/brand/h2a.svg"/><link rel="stylesheet" href="/_next/static/css/4b1f9941c214d619.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/210db1811016f805.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/9c61ee5fe683073a.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/2160a6bbf2cb551c.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-e781b4e158568ba0.js"/><script src="/_next/static/chunks/c7879cf7-7873c8afd9c9c666.js" async=""></script><script src="/_next/static/chunks/158-eb00456e1bab68b3.js" async=""></script><script src="/_next/static/chunks/main-app-5419a575f3ff4496.js" async=""></script><script src="/_next/static/chunks/83607670-fd2f339702a222e4.js" async=""></script><script src="/_next/static/chunks/c3f2cda1-ef85a0897724e46b.js" async=""></script><script src="/_next/static/chunks/164-d8dd2b053f27bf62.js" async=""></script><script src="/_next/static/chunks/653-6dfb97fec9a2d91b.js" async=""></script><script src="/_next/static/chunks/348-6baeec6b3dbf02ab.js" async=""></script><script src="/_next/static/chunks/app/layout-ca2f61a5a618caea.js" async=""></script><meta name="robots" content="noindex"/><title>以形塑形</title><meta name="description" content="使用基础图形规划画面重心、主体占比与视觉方向。"/><link rel="icon" href="/favicon.ico?b6ae9b6fb57ae2e1" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/icon.svg?050a111322f3f309" type="image/svg+xml" sizes="any"/><title>404: This page could not be found.</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div data-yisiui-asset="human2ai/app-shell" data-yisiui-name="Human2AiAppShell" data-yisiui-category="layout" data-yisiui-origin="project" data-yisiui-status="candidate" class="human2ai-app-shell"><div data-yisiui-asset="yisiui/app-shell-frame" data-yisiui-name="AppShellFrame" data-yisiui-category="layout" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-app-shell-frame yisi-app-shell-frame--right-panel-hidden" data-sidebar-state="open" data-right-panel-state="absent" style="--yisi-app-shell-sidebar-width:280px;--yisi-app-shell-right-panel-width:300px"><aside id="_R_3b_" class="yisi-app-shell-sidebar" aria-label="Human2AI 应用侧栏" aria-hidden="false"><div class="yisi-app-shell-sidebar-content"><div class="yisi-app-shell-sidebar-top"><div class="yisi-app-shell-sidebar-heading"><div class="yisi-app-shell-sidebar-title"><a class="human2ai-app-shell__brand" href="/"><img class="human2ai-app-shell__brand-icon" src="/brand/h2a.svg" alt="" width="24" height="24"/>以形塑形</a></div><button aria-label="收起应用侧栏" title="收起应用侧栏" aria-expanded="true" aria-controls="_R_3b_" type="button" class="ant-btn css-u6izyw css-var-root ant-btn-text ant-btn-color-default ant-btn-variant-text ant-btn-icon-only yisi-app-shell-sidebar-toggle"><span class="ant-btn-icon"><svg data-yisiui-asset="yisiui/animated-icon" data-yisiui-name="AnimatedIcon" data-yisiui-category="icon" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-animated-icon" data-icon="sidebar-left" data-playing="false" data-loop="false" viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" style="--yisiui-animated-icon-duration:720ms"><g><path d="M3 9C3 8.46 3 6.48 3.99 5.49C4.98 4.5 6.96 4.5 7.5 4.5L16.5 4.5C17.04 4.5 19.02 4.5 20.01 5.49C21 6.48 21 8.46 21 9L21 15C21 15.54 21 17.52 20.01 18.51C19.02 19.5 17.04 19.5 16.5 19.5L7.5 19.5C6.96 19.5 4.98 19.5 3.99 18.51C3 17.52 3 15.54 3 15Z"></path><g class="yisi-animated-icon-motion" data-animated-icon-part="motion"><rect x="5.5" y="7" width="4" height="10" rx="1.6" fill="currentColor" stroke="none"></rect></g><g class="yisi-animated-icon-layer yisi-icon-feedback yisi-icon-sidebar-wake" opacity="0" stroke-width="1.2"><path d="M11 9h3M11 12h5M11 15h3"></path></g></g></svg></span></button></div></div><div class="yisi-app-shell-sidebar-slot"><div data-yisiui-asset="human2ai/workspace-sidebar" data-yisiui-name="Human2AiWorkspaceSidebar" data-yisiui-category="module" data-yisiui-origin="project" data-yisiui-status="candidate" class="human2ai-workspace-sidebar"><section class="human2ai-workspace-sidebar__actions" aria-labelledby="human2ai-sidebar-actions-title"><h2 id="human2ai-sidebar-actions-title">功能区</h2><div data-yisiui-asset="yisiui/composite-button" data-yisiui-name="CompositeButton" data-yisiui-category="button" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-composite-button" data-collapsed="false"><button type="button" class="ant-btn css-u6izyw css-var-root ant-btn-text ant-btn-color-default ant-btn-variant-text ant-btn-sm yisi-composite-button-main" style="color:#1F292B"><span class="ant-btn-icon"><span role="img" aria-label="picture" aria-hidden="true" class="anticon anticon-picture"><svg viewBox="64 64 896 896" focusable="false" data-icon="picture" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2zM304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z"></path></svg></span></span><span class="ant-typography yisi-composite-button-label css-u6izyw css-var-root" style="color:inherit">新建构图</span></button></div><div data-yisiui-asset="yisiui/composite-button" data-yisiui-name="CompositeButton" data-yisiui-category="button" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-composite-button" data-collapsed="false"><button type="button" class="ant-btn css-u6izyw css-var-root ant-btn-text ant-btn-color-default ant-btn-variant-text ant-btn-sm yisi-composite-button-main" style="color:#1F292B"><span class="ant-btn-icon"><span role="img" aria-label="layout" aria-hidden="true" class="anticon anticon-layout"><svg viewBox="64 64 896 896" focusable="false" data-icon="layout" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-696 72h136v656H184V184zm656 656H384V384h456v456zM384 320V184h456v136H384z"></path></svg></span></span><span class="ant-typography yisi-composite-button-label css-u6izyw css-var-root" style="color:inherit">新建 UI 界面</span></button></div><div data-yisiui-asset="yisiui/composite-button" data-yisiui-name="CompositeButton" data-yisiui-category="button" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-composite-button" data-collapsed="false"><button type="button" class="ant-btn css-u6izyw css-var-root ant-btn-text ant-btn-color-default ant-btn-variant-text ant-btn-sm yisi-composite-button-main" style="color:#1F292B"><span class="ant-btn-icon"><span role="img" aria-label="code-sandbox" aria-hidden="true" class="anticon anticon-code-sandbox"><svg viewBox="64 64 896 896" focusable="false" data-icon="code-sandbox" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M709.6 210l.4-.2h.2L512 96 313.9 209.8h-.2l.7.3L151.5 304v416L512 928l360.5-208V304l-162.9-94zM482.7 843.6L339.6 761V621.4L210 547.8V372.9l272.7 157.3v313.4zM238.2 321.5l134.7-77.8 138.9 79.7 139.1-79.9 135.2 78-273.9 158-274-158zM814 548.3l-128.8 73.1v139.1l-143.9 83V530.4L814 373.1v175.2z"></path></svg></span></span><span class="ant-typography yisi-composite-button-label css-u6izyw css-var-root" style="color:inherit">新建 3D 空间</span></button></div><div data-yisiui-asset="yisiui/composite-button" data-yisiui-name="CompositeButton" data-yisiui-category="button" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-composite-button" data-collapsed="false"><button type="button" class="ant-btn css-u6izyw css-var-root ant-btn-text ant-btn-color-default ant-btn-variant-text ant-btn-sm yisi-composite-button-main" style="color:#1F292B"><span class="ant-btn-icon"><span role="img" aria-label="folder-add" aria-hidden="true" class="anticon anticon-folder-add"><svg viewBox="64 64 896 896" focusable="false" data-icon="folder-add" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1zm396-144.7H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"></path></svg></span></span><span class="ant-typography yisi-composite-button-label css-u6izyw css-var-root" style="color:inherit">新建项目</span></button></div><div data-yisiui-asset="yisiui/composite-button" data-yisiui-name="CompositeButton" data-yisiui-category="button" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-composite-button" data-collapsed="false"><button type="button" class="ant-btn css-u6izyw css-var-root ant-btn-text ant-btn-color-default ant-btn-variant-text ant-btn-sm yisi-composite-button-main" style="color:#1F292B"><span class="ant-btn-icon"><span role="img" aria-label="bg-colors" aria-hidden="true" class="anticon anticon-bg-colors"><svg viewBox="64 64 896 896" focusable="false" data-icon="bg-colors" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M766.4 744.3c43.7 0 79.4-36.2 79.4-80.5 0-53.5-79.4-140.8-79.4-140.8S687 610.3 687 663.8c0 44.3 35.7 80.5 79.4 80.5zm-377.1-44.1c7.1 7.1 18.6 7.1 25.6 0l256.1-256c7.1-7.1 7.1-18.6 0-25.6l-256-256c-.6-.6-1.3-1.2-2-1.7l-78.2-78.2a9.11 9.11 0 00-12.8 0l-48 48a9.11 9.11 0 000 12.8l67.2 67.2-207.8 207.9c-7.1 7.1-7.1 18.6 0 25.6l255.9 256zm12.9-448.6l178.9 178.9H223.4l178.8-178.9zM904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z"></path></svg></span></span><span class="ant-typography yisi-composite-button-label css-u6izyw css-var-root" style="color:inherit">风格库</span></button></div></section><section class="human2ai-workspace-sidebar__projects" aria-labelledby="human2ai-sidebar-projects-title" aria-busy="true"><h2 id="human2ai-sidebar-projects-title">项目</h2><section data-yisiui-asset="yisiui/loading-state" data-yisiui-name="LoadingState" data-yisiui-category="status" data-yisiui-origin="shared" data-yisiui-status="experimental" class="yisi-loading-state yisi-loading-state-compact human2ai-workspace-sidebar__loading" data-density="compact" data-motion="auto" aria-busy="true" aria-label="正在加载项目"><span class="yisi-loading-state-announcement" role="status" aria-live="polite">正在加载项目</span><div class="yisi-loading-state-skeleton" aria-hidden="true"><div class="ant-skeleton ant-skeleton-active css-u6izyw css-var-root"><div class="ant-skeleton-section"><h3 class="ant-skeleton-title" style="width:42%"></h3><ul class="ant-skeleton-paragraph"><li></li><li></li><li></li><li></li><li></li><li style="width:61%"></li></ul></div></div></div></section></section><div class="human2ai-workspace-sidebar__language-selector"><a title="以形塑形 的 GitHub 地址" href="https://github.com/yisi-ai/human2ai" target="_blank" rel="noopener noreferrer" data-yisiui-asset="yisiui/basic-button" data-yisiui-name="BasicButton" data-yisiui-category="button" data-yisiui-origin="shared" data-yisiui-status="experimental" aria-label="以形塑形 的 GitHub 地址" class="ant-btn css-u6izyw css-var-root ant-btn-default ant-btn-color-default ant-btn-variant-outlined ant-btn-icon-only human2ai-workspace-sidebar__repository-link" style="background-color:transparent;border:none;box-shadow:none" tabindex="0" aria-disabled="false"><span class="ant-btn-icon"><span role="img" aria-label="github" aria-hidden="true" class="anticon anticon-github"><svg viewBox="64 64 896 896" focusable="false" data-icon="github" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0138.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z"></path></svg></span></span></a><div data-yisiui-asset="human2ai/compact-dropdown-select" data-yisiui-name="CompactDropdownSelect" data-yisiui-category="switching" data-yisiui-origin="project" data-yisiui-status="candidate" class="human2ai-compact-dropdown-select" data-open="false" data-placement="top" data-empty="false"><div class="ant-select ant-select-outlined human2ai-compact-dropdown-select__control css-var-root ant-select-css-var css-u6izyw ant-select-single ant-select-show-arrow"><div class="ant-select-content ant-select-content-has-value human2ai-compact-dropdown-select__value" title="中文">中文<input id="_R_horb_" type="text" aria-label="界面语言" readOnly="" autoComplete="new-password" class="ant-select-input" role="combobox" aria-expanded="false" aria-haspopup="listbox" aria-autocomplete="list" value=""/></div><div class="ant-select-suffix human2ai-compact-dropdown-select__suffix"><span role="img" aria-label="down" aria-hidden="true" class="anticon anticon-down human2ai-compact-dropdown-select__arrow"><svg viewBox="64 64 896 896" focusable="false" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></span></div></div></div></div></div></div></div></aside><div class="yisi-app-shell-resize-handle yisi-app-shell-resize-handle--sidebar" role="separator" aria-orientation="vertical" aria-label="调整应用侧栏宽度" aria-controls="_R_3b_" tabindex="0"></div><div class="yisi-app-shell-content"><header class="yisi-app-shell-content-header"><div class="yisi-app-shell-content-leading"></div></header><div class="yisi-app-shell-content-body"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--></div></div></div></div><script src="/_next/static/chunks/webpack-e781b4e158568ba0.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[84954,[\"460\",\"static/chunks/83607670-fd2f339702a222e4.js\",\"746\",\"static/chunks/c3f2cda1-ef85a0897724e46b.js\",\"164\",\"static/chunks/164-d8dd2b053f27bf62.js\",\"653\",\"static/chunks/653-6dfb97fec9a2d91b.js\",\"348\",\"static/chunks/348-6baeec6b3dbf02ab.js\",\"177\",\"static/chunks/app/layout-ca2f61a5a618caea.js\"],\"AppI18nProvider\"]\n3:I[42348,[\"460\",\"static/chunks/83607670-fd2f339702a222e4.js\",\"746\",\"static/chunks/c3f2cda1-ef85a0897724e46b.js\",\"164\",\"static/chunks/164-d8dd2b053f27bf62.js\",\"653\",\"static/chunks/653-6dfb97fec9a2d91b.js\",\"348\",\"static/chunks/348-6baeec6b3dbf02ab.js\",\"177\",\"static/chunks/app/layout-ca2f61a5a618caea.js\"],\"Human2AiShellLayout\"]\n4:I[91133,[],\"\"]\n5:I[4297,[],\"\"]\n6:I[66999,[\"460\",\"static/chunks/83607670-fd2f339702a222e4.js\",\"746\",\"static/chunks/c3f2cda1-ef85a0897724e46b.js\",\"164\",\"static/chunks/164-d8dd2b053f27bf62.js\",\"653\",\"static/chunks/653-6dfb97fec9a2d91b.js\",\"348\",\"static/chunks/348-6baeec6b3dbf02ab.js\",\"177\",\"static/chunks/app/layout-ca2f61a5a618caea.js\"],\"YisiUiInspectorHost\"]\n7:I[31872,[],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\nb:I[31872,[],\"ViewportBoundary\"]\nd:I[31872,[],\"MetadataBoundary\"]\nf:I[57567,[],\"default\",1]\n:HL[\"/_next/static/css/4b1f9941c214d619.css\",\"style\"]\n:HL[\"/_next/static/css/210db1811016f805.css\",\"style\"]\n:HL[\"/_next/static/css/9c61ee5fe683073a.css\",\"style\"]\n:HL[\"/_next/static/css/2160a6bbf2cb551c.css\",\"style\"]\na:X\n0:{\"P\":null,\"c\":[\"\",\"_not-found\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/4b1f9941c214d619.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/210db1811016f805.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9c61ee5fe683073a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/2160a6bbf2cb551c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"children\":[\"$\",\"body\",null,{\"children\":[[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"$L6\",null,{}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null]},null,false,\"$a\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"MtSBeMOcAQHxKAV1fmedM\"}\na:C\nc:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n10:I[12569,[],\"IconMark\"]\n9:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"以形塑形\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"使用基础图形规划画面重心、主体占比与视觉方向。\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?b6ae9b6fb57ae2e1\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/icon.svg?050a111322f3f309\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"$L10\",\"4\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/7a62016f8918890b.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/5062b0bcc3118ed8.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/9c61ee5fe683073a.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/57ecc433cb654a57.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-cfe3662bbaa8d6ce.js"/><script src="/_next/static/chunks/c7879cf7-7873c8afd9c9c666.js" async=""></script><script src="/_next/static/chunks/158-eb00456e1bab68b3.js" async=""></script><script src="/_next/static/chunks/main-app-9985b291e50ea69b.js" async=""></script><script src="/_next/static/chunks/83607670-fd2f339702a222e4.js" async=""></script><script src="/_next/static/chunks/c3f2cda1-ef85a0897724e46b.js" async=""></script><script src="/_next/static/chunks/989-6d7aa6a22a75f7de.js" async=""></script><script src="/_next/static/chunks/653-6dfb97fec9a2d91b.js" async=""></script><script src="/_next/static/chunks/868-6a413fc8c52cf6df.js" async=""></script><script src="/_next/static/chunks/app/layout-9c5f0b5667b84400.js" async=""></script><meta name="robots" content="noindex"/><title>以形塑形</title><meta name="description" content="使用基础图形规划画面重心、主体占比与视觉方向。"/><link rel="icon" href="/favicon.ico?b6ae9b6fb57ae2e1" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/icon.svg?050a111322f3f309" type="image/svg+xml" sizes="any"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script src="/_next/static/chunks/webpack-cfe3662bbaa8d6ce.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[84954,[\"460\",\"static/chunks/83607670-fd2f339702a222e4.js\",\"746\",\"static/chunks/c3f2cda1-ef85a0897724e46b.js\",\"989\",\"static/chunks/989-6d7aa6a22a75f7de.js\",\"653\",\"static/chunks/653-6dfb97fec9a2d91b.js\",\"868\",\"static/chunks/868-6a413fc8c52cf6df.js\",\"177\",\"static/chunks/app/layout-9c5f0b5667b84400.js\"],\"AppI18nProvider\"]\n3:I[60868,[\"460\",\"static/chunks/83607670-fd2f339702a222e4.js\",\"746\",\"static/chunks/c3f2cda1-ef85a0897724e46b.js\",\"989\",\"static/chunks/989-6d7aa6a22a75f7de.js\",\"653\",\"static/chunks/653-6dfb97fec9a2d91b.js\",\"868\",\"static/chunks/868-6a413fc8c52cf6df.js\",\"177\",\"static/chunks/app/layout-9c5f0b5667b84400.js\"],\"Human2AiShellLayout\"]\n4:I[91133,[],\"\"]\n5:I[4297,[],\"\"]\n6:I[66999,[\"460\",\"static/chunks/83607670-fd2f339702a222e4.js\",\"746\",\"static/chunks/c3f2cda1-ef85a0897724e46b.js\",\"989\",\"static/chunks/989-6d7aa6a22a75f7de.js\",\"653\",\"static/chunks/653-6dfb97fec9a2d91b.js\",\"868\",\"static/chunks/868-6a413fc8c52cf6df.js\",\"177\",\"static/chunks/app/layout-9c5f0b5667b84400.js\"],\"YisiUiInspectorHost\"]\n7:I[31872,[],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\nb:I[31872,[],\"ViewportBoundary\"]\nd:I[31872,[],\"MetadataBoundary\"]\nf:I[57567,[],\"default\",1]\n:HL[\"/_next/static/css/7a62016f8918890b.css\",\"style\"]\n:HL[\"/_next/static/css/5062b0bcc3118ed8.css\",\"style\"]\n:HL[\"/_next/static/css/9c61ee5fe683073a.css\",\"style\"]\n:HL[\"/_next/static/css/57ecc433cb654a57.css\",\"style\"]\na:X\n0:{\"P\":null,\"c\":[\"\",\"_not-found\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7a62016f8918890b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5062b0bcc3118ed8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9c61ee5fe683073a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/57ecc433cb654a57.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"children\":[\"$\",\"body\",null,{\"children\":[[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"$L6\",null,{}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null]},null,false,\"$a\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"SiEWNIZfGL4sShRQt9h5W\"}\na:C\nc:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n10:I[12569,[],\"IconMark\"]\n9:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"以形塑形\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"使用基础图形规划画面重心、主体占比与视觉方向。\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?b6ae9b6fb57ae2e1\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/icon.svg?050a111322f3f309\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"$L10\",\"4\",{}]]\n"])</script></body></html>
|