- Déploiement du pont local
Le projet jimeng-api fait office de couche intermédiaire. Commencez par récupérer les sources.
git clone https://github.com/iptag/jimeng-api.git
cd jimeng-api
Plutôt que le port 5100 par défaut, exposez le service sur le port 8080 et nommez le conteneur de manière explicite.
docker build -t jimeng-bridge .
docker run -d \
--name jimeng-bridge \
-p 8080:5100 \
--restart unless-stopped \
jimeng-bridge
Si vous préférez Docker Compose, un fichier compose.yml minimal ressemble à ceci.
services:
jimeng-bridge:
build: .
container_name: jimeng-bridge
ports:
- "8080:5100"
restart: unless-stopped
Récupérer le jeton d’authentification
Connectez-vous au site Jimeng, ouvrez les outils de développement du navigateur, puis copiez la valeur du cookie sessionid. Conservez-la dans une variable d’environnement plutôt qu’en dur dans le code.
export JIMENG_SESSION="<votre_sessionid>"
- Créer le skill pour Trae
Trae charge les skills depuis ~/.trae/skills (global) ou .trae/skills (projet). Créez un dossier jimeng-skill et ajoutez-y un script Python.
mkdir -p ~/.trae/skills/jimeng-skill
cat > ~/.trae/skills/jimeng-skill/main.py << 'EOF'
import os
import sys
import base64
import pathlib
import requests
from io import BytesIO
from PIL import Image
SERVICE_URL = os.getenv("JIMENG_URL", "http://localhost:8080")
SESSION_ID = os.getenv("JIMENG_SESSION")
def draw(description: str, width: int = 1920, height: int = 1080) -> pathlib.Path:
if not SESSION_ID:
raise RuntimeError("Définissez JIMENG_SESSION avec votre sessionid Jimeng.")
body = {
"prompt": description,
"width": width,
"height": height,
"sessionid": SESSION_ID,
}
resp = requests.post(f"{SERVICE_URL}/generate", json=body, timeout=120)
resp.raise_for_status()
raw = base64.b64decode(resp.json()["image_base64"])
folder = pathlib.Path("generated")
folder.mkdir(exist_ok=True)
output = folder / "result.png"
with Image.open(BytesIO(raw)) as img:
img.save(output, format="PNG")
return output
if __name__ == "__main__":
draw(" ".join(sys.argv[1:]))
EOF
Installez ensuite les dépendances nécessaries.
pip install requests Pillow
- Utilisation dans Trae
Dans la fenêtre de chat de Trae, indiquez votre sessionid et la description de l’image souhaitée. Trae invoquera le skill.
Mon sessionid est abc123. Génère une image 2K d'une plage au coucher du soleil, style cinéma.
Le script enregistre l’image générée sous generated/result.png dans le projet.