CommunityBildgithub.com

Live2D-Modell aus einer Zeichnung

Erstelle ein rigged Live2D-Modell (ein .moc3-Bundle mit Physik, Ausdrücken und Bewegungen) aus einer einzigen Ganzkörper-Anime-Zeichnung – ohne Cubism Editor und ohne manuelles Rigging. Verwende dieses Kit, sobald der Benutzer ein Live2D-Modell, einen Avatar, ein VTuber-Modell oder ein Rig einer Figur möchte, eine andere Figur durch diese Pipeline schicken will, sagt, dass etwas mit einem hier erstellten Modell nicht stimmt (zweite Kinnlinie, Lücke in der Taille, Augen oder Iris, Arme, Knie, Haare, ein geneigter Kopf), oder dessen Ausdrücke, Bewegungen oder die Art, wie es sich bewegt, ändern möchte – selbst wenn er nur sagt „Mach ihr ein Modell“ oder „Repariere ihre Augen“.

Was ist Live2D-Modell aus einer Zeichnung?

Dieses Kit verwandelt eine einzelne Ganzkörper-Anime-Zeichnung in ein vollständig rigged Live2D-Modell (als .moc3-Bundle mit Physik, Ausdrücken und Bewegungen). Es ersetzt den aufwändigen manuellen Workflow mit Cubism Editor durch eine Reihe automatisierter Skripte. Der Ablauf umfasst die Erstellung von Kandidatenzeichnungen (über Qwen Image), Freistellung, Hochskalierung, Aufteilung in Ebenen, Ebenenkorrekturen, Rigging und Build – alles über ein einziges Python-Kommando. Es ist ideal für Entwickler und KI-Agenten, die schnell und ohne manuellen Aufwand Live2D-Avatare, VTuber-Modelle oder Rigs für Charaktere erstellen oder bestehende Modelle reparieren möchten. Plattformen: Claude Code, Cursor, Codex, alle Agenten, die Python-Skripte ausführen können.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/MysteryGodzilla/live2d/tree/HEAD

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Live2D-Modell aus einer Zeichnung?

Dieses Kit verwandelt eine einzige Ganzkörperzeichnung einer Figur in ein Live2D-Modell, das eine App wie AIRI oder Open-LLM-VTuber laden kann. Die Skripte erledigen die Arbeit. Ihre Aufgabe ist es, die Schritte der Reihe nach auszuführen, sich das Ergebnis jedes Schrittes anzusehen und zu korrigieren, was nicht stimmt, bevor der nächste Schritt darauf aufbaut. Ein Fehler, den Sie früh durchlassen (eine Ebene an der falschen Stelle), zeigt sich später als etwas, das viel schwerer nachvollziehbar ist (ein Bein hinter einem Mantel).

Alles ist ein Befehl, der innerhalb des Projekts ausgeführt wird:

python <dieser Ordner>/live2d.py <Schritt> <Name> ...

<Name> ist der Ordnername der Figur. live2d.py wählt das Python aus, das jeder Schritt benötigt, und gibt den Befehl aus, den es ausführt. Lesen Sie vor Ihrem ersten Charakter einmal die README.md in diesem Ordner: Sie enthält die Downloads, die Einstellungsdatei, jeden Schritt mit seinem Befehl und die Tabelle der Ebenenkorrekturen. Diese Datei erklärt, wie man gut damit arbeitet.

Es gibt auch eine GUI für Menschen (live2d.py gui: die gleichen Schritte als Schaltflächen auf einer Seite); ein Agent sollte die Befehle verwenden.

Vor allem

  1. Führen Sie live2d.py check aus. Es zeigt an, was installiert ist und was für welchen Schritt fehlt. Wenn etwas fehlt, sagen Sie dem Benutzer, was und woher es kommt (README, „Was Sie brauchen"). Downloads sind viele Gigabyte: Fragen Sie, bevor Sie einen starten. In einem Projekt, in dem das Kit noch nicht verwendet wurde (die Überprüfung ergibt, dass es keine live2d-kit.json gibt), führen Sie zuerst live2d.py init im obersten Ordner des Projekts aus. Es erstellt die Einstellungsdatei, eine Looks-Datei und diesen Skill-Zeiger und ändert nichts, was bereits vorhanden ist. init --like <anderes Projekt> kopiert die Tool-Pfade aus einem Projekt, das sie bereits hat.
  2. Führen Sie live2d.py status <Name> aus. Es hakt die erledigten Schritte ab und nennt den nächsten Befehl. Verwenden Sie es, wenn Sie eine Figur wieder aufnehmen, anstatt anhand der Dateien zu raten.
  3. Fragen Sie den Benutzer vor einem Schritt, der die Grafikkarte beansprucht (zeichnen, freistellen, hochskalieren, aufteilen). Diese Schritte benötigen die Karte für sich allein, und der Benutzer führt möglicherweise etwas darauf aus. split dauert auf einer freien Karte etwa 10 Minuten pro Durchgang und kann Stunden dauern, wenn irgendetwas anderes einen Teil davon belegt: Sagen Sie das und führen Sie es im Hintergrund aus.
  4. draw --runpod kostet Geld. Verwenden Sie es nur, wenn der Benutzer danach fragt.
  5. Starten und stoppen Sie nur, was Sie gestartet haben. live2d.py comfy status zeigt an, ob ComfyUI läuft und wer es gestartet hat: dieses Projekt oder ein anderer Ordner (dann gehört es jemand anderem: nutzen Sie es, aber stoppen Sie es nicht). comfy stop stoppt nur das, was comfy start dieses Projekts gestartet hat. Stoppen Sie Ihres, wenn die Schritte Zeichnen, Freistellen und Hochskalieren abgeschlossen sind.

Die Schritte und worauf nach jedem zu achten ist

SchrittBefehlRichtig ist, wenn
Zeichnencomfy start, dann draw <Runde> --character <Name> --seeds ...Der Benutzer wählt eines aus. Zeigen Sie ihm das Kontaktblatt. Wählen Sie nicht für ihn, es sei denn, er bittet darum
Auswählenpick <Name> <Bild>Die Zeichnung erfüllt „Eine Zeichnung, die riggt" in der README. Wenn nicht (Arme am Körper, Beine zusammen, ein Requisit in der Hand), sagen Sie, was schiefgehen wird, bevor Sie fortfahren
Freistellen, Hochskalierencutout <Name>, upscale <Name>, comfy stopfull/cutout.png zeigt sie vollständig und keinen Hintergrund. Eine Zeichnung von draw hat ihre eigene Transparenz: pick hat das Freistellen bereits erledigt, also macht cutout nichts und nur upscale wird benötigt
Aufteilensplit <Name> bodyEs gibt ihre Ebenen aus. Erwarten Sie etwa 17: Haare, Gesicht, Augen, Brauen, Nase, Mund, Hals, Kleidung, Arme, Beine, Schuhe
Ebenen prüfenlayers check <Name>Die Anzahl beträgt ein paar tausend Pixel dünner Konturlinien. Sehen Sie sich das gespeicherte Bild an. Ein durchgehender roter Block ist eine Ebene, die bedeckt, was sie nicht sollte
Kopf-Durchlaufsplit <Name> head, layers scale <Name> 2, layers head ..., layers under <Name> neck facelayers check erneut: Die Anzahl sollte nicht springen. Ihre Gesichtsebene sollte mit dem Gesicht ihrer Zeichnung übereinstimmen
Teileparts closed-eyes <Name>, parts mouth <Name>Ihre Ebenen enthalten jetzt eye_close und mouth_open. Welchen offenen Mund und welches Erröten sie hat, ist Geschmackssache des Benutzers: machen Sie parts mouth-sheet <Name> und parts blush-sheet <Name>, zeigen Sie ihm die beiden Bilder und lassen Sie ihn eine Zahl auswählen (die README, „Münder und Errötungen"). Wenn der Mund zu groß, zu klein, zu hoch, zu tief oder geneigt ist, korrigieren --size, --down, --right und --turn das, zuerst an mouth-sheet, um es ihm zu zeigen; das Erröten nimmt --size, --in, --down und --turn auf die gleiche Weise. parts mouth-oh <Name> gibt ihr einen „O"-Mund für Angst und Überraschung. Wenn ihr geschlossener Mund zu dünn oder schwach ist, um gesehen zu werden, zeigt parts mouth-line <Name> --try eine Neukontur, parts mouth-line <Name> erstellt sie, dann parts mouth <Name> erneut
Bauenbuild <Name>Lesen Sie, was es ausgibt (unten)
Ansehenview, dann Prüfblätter (unten)Die Liste in der README, „Ihr Modell ausprobieren"

Die Beschreibung der Figur stammt aus der Looks-Datei des Projekts (check gibt an, wo sie ist; die README unter „Looks und Stile" hat ihr Format). Schreiben Sie ihren Look dort hinein oder ändern Sie ihn dort, bevor Sie zeichnen: Es ist der einzige Ort, der beschreibt, wie sie aussieht, damit die nächste Runde und der nächste Agent dieselbe Figur zeichnen. Ein Look sind nur ihre Haare, Augen, Statur und Kleidung. Das Kit fügt die Rahmung und die Pose selbst hinzu, und ein Look, der diese wiederholt oder eine andere Pose verlangt, arbeitet gegen das Rig. draw ... --show gibt den gesamten Prompt aus, ohne zu zeichnen: Lesen Sie ihn, bevor Sie die Grafikkarte für eine Runde verschwenden. --look "..." ist für einmalige Gelegenheiten.

Sehen Sie sich nach der Aufteilung jedes Ebenenbild in <characters>/<Name>/layers/full/parts/ einmal an. Achten Sie auf drei Dinge: eine Ebene, die zwei Dinge enthält, die sich trennen müssen (die Vorderseite eines Mantels und die Innenseite seines Rückens), eine Ebene in der falschen Reihenfolge und ein Paar (Arme, Beine, Augen), das als eine Form herausgekommen ist. Die README unter „Ebenen korrigieren" sagt, was für jedes zu tun ist. Tragen Sie den Grund für eine Einstellung in ihre live2d.json unter "why" ein: Die nächste Person kann nicht sehen, was Sie gesehen haben.

Was die Build-Ausgabe bedeutet

  • head: her head turned -9.9 degrees ...: wie weit es ihren Kopf ausgerichtet hat. „No pair of eyes or brows" bedeutet, dass eine Augenebene nicht in links und rechts aufgeteilt wurde: Korrigieren Sie zuerst diese Ebene.
  • head turn: 13_face_base as face; 16_accessory as glasses; ...: wofür es jedes Kopfteil gehalten hat. Ein Teil, das für die falsche Sache gehalten wird, bewegt sich falsch: Eine Brille, die nicht als Brille gelistet ist, wird von ihren Augen abdriftet.
  • body: her feet at ..., knees ..., hips ..., neck ...; 2 arms that bend, 2 legs that bend; ...: 0 Arme oder 0 Beine bedeuten, dass das Paar eine Form in ihren Ebenen ist. Füße bei 0.000 bedeuten ein einzelnes Pixel am unteren Rand einer Ebene.
  • hair: 6 sections that swing each by itself (...): wie ihre Haare aufgeteilt wurden. Ein Abschnitt für die Vorderseite und einer für die Rückseite bedeutet, dass ihre Haare schmal sind oder ihre Ebene in Stücken ist: Das ist kein Fehler.
  • in the texture at the head pass's own size: face, eyelash, ...: die Kopfteile, die scharf in ihre Textur eingegangen sind. Keine solche Zeile bedeutet, dass sie keine scharfen Kopien hat: layers sharp <Name> erstellt sie aus ihrer aufbewahrten Kopf-PSD. changed since the head pass nennt Kopfteile, die nach dem Durchlauf bearbeitet wurden und in der Größe ihres Rahmens verwendet werden: Das ist richtig, kein Fehler.

Das Modell prüfen, ohne auf den Bildschirm zu schauen

Starten Sie den Viewer (live2d.py view, im Hintergrund) und öffnen Sie http://127.0.0.1:8777/live2d/ in einem Browser-Tool. Die Seite hat window.sheets, das beschriftete Bilder von gehaltenen Posen, Bewegungsbildern und Ausdrücken zeichnet und als Dateien speichert, die Sie lesen können. Es liest die Pixel des Renderers zurück, ist also auch dann korrekt, wenn die Seite versteckt ist. Ein Screenshot einer versteckten Seite ist das nicht: Er zeigt veraltete Bilder.

const u = "/live2d/models/akane-full/model/model.model3.json";
await sheets.poses([
  ["face", u, /face/i, 2.6, [["rest", {}], ["turn", {ParamAngleX: 30, ParamEyeBallX: 1}],
                              ["half shut", {ParamEyeLOpen: 0.5, ParamEyeROpen: 0.5}], ["tilt", {ParamAngleZ: -30}]]],
  ["body", u, [0.15, 0, 0.85, 1], 0, [["rest", {}], ["sway", {ParamBodyAngleX: 10}],
                                      ["arms", {ParamArmLA: 10, ParamArmLB: -10}], ["knee", {ParamLegLB: 10}]]],
], 200, 300);
await sheets.save("akane-check");                 // -> <out>/live2d/checks/akane-check.png
await sheets.expressions(u, ["(none)", "happy", "tired", "blushing", "angry", "scared"], /face/i, 1.6, 133, 170);
await sheets.save("akane-expressions");
await sheets.motion(u, "TapHead", /face/i, 1.6, 133, 170, 6, 13);
await sheets.save("akane-taphead");
sheets.done();

Ein Rahmen ist [x0, y0, x1, y1] in Anteilen der Modellbox oder ein Muster für den Namen einer Zeichenfläche (/face/i, /neck/i) mit einem Zoom. Übergeben Sie einen grünen Hintergrund ("#30c060" als letztes Argument von poses), wenn Sie nach Lücken suchen: Eine Lücke zeigt grün.

Sehen Sie sich die Bilder genau an. Zoomen Sie auf die Stelle, an der ein Fehler sein könnte (das Kinn, die Taille, ein Auge), anstatt aus einer Miniaturansicht der ganzen Figur zu urteilen: Die meisten bisher gefundenen Fehler waren nur wenige Pixel breit. Überprüfen Sie beide Enden jeder Bewegung und zwei Bewegungen zusammen (eine Drehung mit einem Blick, ein Heben mit einer Beugung), weil sich dort Teile voneinander lösen.

Wenn Sie dem Benutzer ein Ergebnis zeigen, senden Sie ihm das Bild und sagen Sie deutlich, was Sie überprüft haben und was nicht. Der Viewer ist nicht die App: Sagen Sie es, wenn Sie sie nicht in der App gesehen haben.

Wenn etwas falsch aussieht

  1. Finden Sie heraus, welcher Teil es ist. Halten Sie die Pose mit den Schiebereglern oder erstellen Sie ein darauf gezoomtes Blatt.
  2. Entscheiden Sie, wo der Fehler lebt. Er liegt in ihren Ebenen, wenn das Bild des Teils falsch, abgeschnitten, in der falschen Reihenfolge ist oder etwas trägt, das zu einem anderen Teil gehört. Er liegt im Rig, wenn ihre Ebenen in Ordnung sind und sie sich falsch bewegt.
  3. Schlagen Sie es in references/problems.md nach. Es listet auf, was bisher schiefgegangen ist, warum und die Lösung.
  4. Ebenenfehler werden mit layers-Befehlen oder ihrer live2d.json korrigiert, dann build erneut ausführen.
  5. Rig-Fehler, die jeder Charakter hätte, werden in scripts/rig.py korrigiert, wo jede Zahl und Tabelle einen Kommentar hat, der sagt, warum sie ist, was sie ist. Fügen Sie Ihren Grund hinzu, wenn Sie einen ändern. Ein Fehler, den nur ein Charakter hat, gehört in seine live2d.json, die von rig.py gelesen wird.
  6. Bauen, die Seite neu laden, das gleiche Blatt erneut erstellen und vergleichen. Das Neuladen ist wichtig: Die Seite behält das geladene Modell, daher zeigt ein ohne Neuladen erstelltes Blatt sie so, wie sie vor dem Build war.

Seien Sie vorsichtig mit einer Korrektur, die mehr betrifft, als Sie beabsichtigt haben. Bevor Sie eine Ebene für jeden Charakter ändern, prüfen Sie, ob die anderen das Problem hatten: Eine Korrektur hier malte dunkle Streifen in Haare, die nichts damit zu tun hatten.

Ändern, wie sie sich bewegt oder was sie zeigen kann

Die README unter „Ändern, wie sie sich bewegt" ordnet jedes Ding seinem Namen in scripts/rig.py zu. Ausdrücke sind EXPRESSIONS, die Klickreaktionen sind TAPS und die Emotionsbewegungen, die eine App abspielt, sind EMOTIONS und BORROWED. Behalten Sie die Namen für jeden Charakter gleich, damit die Einstellungen und Aufforderungen der App nur einmal geschrieben werden.

Wie weit man Dinge bewegt, ist Geschmackssache des Benutzers. Die übliche Richtlinie vom ersten Benutzer dieses Kits: Kopfbewegung dient zum Anschauen von Dingen, also gleiten die Merkmale ein wenig und die Iris macht den größten Teil des Schauens; Körperbewegung ist subtil und hält ihre Füße auf dem Boden. Zeigen Sie ein Bild und lassen Sie ihn entscheiden.

Abschluss

  • Sagen Sie dem Benutzer, wo sein Modell ist: <out>/live2d/<Name>-full.zip ist das, was eine App importiert.
  • Behalten Sie ihre Zeichnung, das Freigestellte, die hochskalierte Zeichnung und alles in layers/full/ in der Versionskontrolle. Alles in <out> kann neu erstellt werden.
  • Wenn Sie etwas gelernt haben, das ein zukünftiger Durchlauf benötigt (eine neue Art von Fehler und seine Lösung), fügen Sie eine Zeile zu references/problems.md hinzu.
  • Stoppen Sie den Viewer und ComfyUI, wenn Sie sie gestartet haben.

Verwandte Skills