{"_id":"@2515097216/jimeng-free-api","_rev":"7-181f3ed60edece8c3e4940d3c1c5da6e","name":"@2515097216/jimeng-free-api","dist-tags":{"latest":"0.8.13"},"versions":{"0.8.6":{"name":"@2515097216/jimeng-free-api","version":"0.8.6","keywords":[],"author":{"name":"Vinlic"},"license":"ISC","_id":"@2515097216/jimeng-free-api@0.8.6","maintainers":[{"name":"2515097216","email":"2515097216@qq.com"}],"homepage":"https://github.com/laixiao/jimeng-free-api-all#readme","bugs":{"url":"https://github.com/laixiao/jimeng-free-api-all/issues"},"bin":{"jimeng-mcp":"dist/mcp/index.js"},"mcp":{"jimeng-mcp":{"env":{"JIMENG_SESSION_ID":"${JIMENG_SESSION_ID}"},"args":["stdio"],"command":"jimeng-mcp"}},"dist":{"shasum":"df19dc38447508cc6cf07f68cee96d0885ee6397","tarball":"https://registry.npmjs.org/@2515097216/jimeng-free-api/-/jimeng-free-api-0.8.6.tgz","fileCount":18,"integrity":"sha512-ZKurk/m5lhziNGs45j9BMnMVNW9P8VKdwn7SW4YeT2sNs2Abyy3x9WVkHs08Hx8FTeA3jrJFDVtD0pvk6Z+Axg==","signatures":[{"sig":"MEUCIQCRkVV04azGAhtgjJX3wI5kZxr55cvKP9v0XGPxPYq97QIgJrFWRgSN5A71kvAUYX3C7IU3rOEDRg7VVI+PWBJssJY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2137559},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"0f63272b0653dbe9e77caed24c3dd88b3d7c3c7b","scripts":{"dev":"tsup src/index.ts --format cjs,esm --sourcemap --dts --publicDir public --watch --onSuccess \"node --enable-source-maps --no-node-snapshot dist/index.js --port 8000\"","build":"tsup src/index.ts src/mcp/index.ts --format cjs,esm --sourcemap --dts --clean --publicDir public","start":"node --enable-source-maps --no-node-snapshot dist/index.js","build:mcp":"tsup src/mcp/index.ts --format cjs,esm --sourcemap --dts --clean"},"_npmUser":{"name":"2515097216","email":"2515097216@qq.com"},"repository":{"url":"git+https://github.com/laixiao/jimeng-free-api-all.git","type":"git"},"_npmVersion":"10.9.3","description":"jimeng Free API Server - MCP compatible","directories":{"doc":"docs"},"_nodeVersion":"22.20.0","dependencies":{"koa":"^2.15.0","cron":"^3.1.6","mime":"^4.0.1","uuid":"^9.0.1","yaml":"^2.3.4","axios":"^1.6.7","colors":"^1.4.0","crc-32":"^1.2.2","lodash":"^4.17.21","semver":"^7.7.2","date-fns":"^3.3.1","fs-extra":"^11.2.0","koa-body":"^5.0.0","minimist":"^1.2.8","form-data":"^4.0.0","koa-range":"^0.3.0","koa2-cors":"^2.0.6","koa-router":"^12.0.1","randomstring":"^1.3.0","koa-bodyparser":"^4.4.1","playwright-core":"^1.49.0","eventsource-parser":"^1.1.2","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","typescript":"^5.3.3","@types/mime":"^3.0.4","@types/lodash":"^4.14.202"},"_npmOperationalInternal":{"tmp":"tmp/jimeng-free-api_0.8.6_1772180466664_0.09159543565390038","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"@2515097216/jimeng-free-api","version":"0.8.7","keywords":[],"author":{"name":"Vinlic"},"license":"ISC","_id":"@2515097216/jimeng-free-api@0.8.7","maintainers":[{"name":"2515097216","email":"2515097216@qq.com"}],"homepage":"https://github.com/laixiao/jimeng-free-api-all#readme","bugs":{"url":"https://github.com/laixiao/jimeng-free-api-all/issues"},"bin":{"jimeng-mcp":"dist/mcp/index.js","jimeng-free-api":"dist/mcp/index.js"},"mcp":{"jimeng-mcp":{"env":{"JIMENG_SESSION_ID":"${JIMENG_SESSION_ID}"},"args":["stdio"],"command":"jimeng-free-api"}},"dist":{"shasum":"8a4212571843f678cc3d74c44cba3891b8fe314d","tarball":"https://registry.npmjs.org/@2515097216/jimeng-free-api/-/jimeng-free-api-0.8.7.tgz","fileCount":18,"integrity":"sha512-YnOgClxktlVomEOXtmYwrfLLg6iKrB8O+xmEb2poETt4YjohKUwUq0ZdTYbA3gnumlhSgVLPkm9PwFOwzA32Ug==","signatures":[{"sig":"MEUCIHniJeAiTIVr7f+d2KMMJor5fmNyrIa+WeEhneWMq7BDAiEAqxrNv8Hl7/2aBPWNfh6qpSnJOPZIZs2tfEjb6TxtOko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2137613},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"193b92df8806ad87ee23f8c7883e85261ca48a0a","scripts":{"dev":"tsup src/index.ts --format cjs,esm --sourcemap --dts --publicDir public --watch --onSuccess \"node --enable-source-maps --no-node-snapshot dist/index.js --port 8000\"","build":"tsup src/index.ts src/mcp/index.ts --format cjs,esm --sourcemap --dts --clean --publicDir public","start":"node --enable-source-maps --no-node-snapshot dist/index.js","build:mcp":"tsup src/mcp/index.ts --format cjs,esm --sourcemap --dts --clean"},"_npmUser":{"name":"2515097216","email":"2515097216@qq.com"},"repository":{"url":"git+https://github.com/laixiao/jimeng-free-api-all.git","type":"git"},"_npmVersion":"10.9.3","description":"jimeng Free API Server - MCP compatible","directories":{"doc":"docs"},"_nodeVersion":"22.20.0","dependencies":{"koa":"^2.15.0","cron":"^3.1.6","mime":"^4.0.1","uuid":"^9.0.1","yaml":"^2.3.4","axios":"^1.6.7","colors":"^1.4.0","crc-32":"^1.2.2","lodash":"^4.17.21","semver":"^7.7.2","date-fns":"^3.3.1","fs-extra":"^11.2.0","koa-body":"^5.0.0","minimist":"^1.2.8","form-data":"^4.0.0","koa-range":"^0.3.0","koa2-cors":"^2.0.6","koa-router":"^12.0.1","randomstring":"^1.3.0","koa-bodyparser":"^4.4.1","playwright-core":"^1.49.0","eventsource-parser":"^1.1.2","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","typescript":"^5.3.3","@types/mime":"^3.0.4","@types/lodash":"^4.14.202"},"_npmOperationalInternal":{"tmp":"tmp/jimeng-free-api_0.8.7_1772180905239_0.5266862671020001","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"name":"@2515097216/jimeng-free-api","version":"0.8.8","keywords":[],"author":{"name":"Vinlic"},"license":"ISC","_id":"@2515097216/jimeng-free-api@0.8.8","maintainers":[{"name":"2515097216","email":"2515097216@qq.com"}],"homepage":"https://github.com/laixiao/jimeng-free-api-all#readme","bugs":{"url":"https://github.com/laixiao/jimeng-free-api-all/issues"},"bin":{"jimeng-mcp":"dist/mcp/index.js","jimeng-free-api":"dist/mcp/index.js"},"mcp":{"jimeng-mcp":{"env":{"JIMENG_SESSION_ID":"${JIMENG_SESSION_ID}"},"args":["stdio"],"command":"jimeng-free-api"}},"dist":{"shasum":"788f4dae3e899e8d659b3ace72d40246bcbaf8c5","tarball":"https://registry.npmjs.org/@2515097216/jimeng-free-api/-/jimeng-free-api-0.8.8.tgz","fileCount":18,"integrity":"sha512-2k1zaMSd/V3QdU3ihdOfYMBscwZnTJ5HENzLvcyNEEALR5IpuoOx7GAvZfPpsEmmVE9dzxiH+1GGEZXrUISyaA==","signatures":[{"sig":"MEYCIQDjY6QvJVF2abdRFRcYmzPtnsifC7uYdPlm/U9OcXCMTAIhAJKPMSx+e2jboIQo/u8eWXDNqF+lWB7LpKyS8NYbmN9i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2137681},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"7529ce75d4c357e7a0ea3081accb2f8b60f55c3a","scripts":{"dev":"tsup src/index.ts --format cjs,esm --sourcemap --dts --publicDir public --watch --onSuccess \"node --enable-source-maps --no-node-snapshot dist/index.js --port 8000\"","build":"tsup src/index.ts src/mcp/index.ts --format cjs,esm --sourcemap --dts --clean --publicDir public","start":"node --enable-source-maps --no-node-snapshot dist/index.js","release":"npm version patch && npm publish --access public","build:mcp":"tsup src/mcp/index.ts --format cjs,esm --sourcemap --dts --clean"},"_npmUser":{"name":"2515097216","email":"2515097216@qq.com"},"repository":{"url":"git+https://github.com/laixiao/jimeng-free-api-all.git","type":"git"},"_npmVersion":"10.9.3","description":"jimeng Free API Server - MCP compatible","directories":{"doc":"docs"},"_nodeVersion":"22.20.0","dependencies":{"koa":"^2.15.0","cron":"^3.1.6","mime":"^4.0.1","uuid":"^9.0.1","yaml":"^2.3.4","axios":"^1.6.7","colors":"^1.4.0","crc-32":"^1.2.2","lodash":"^4.17.21","semver":"^7.7.2","date-fns":"^3.3.1","fs-extra":"^11.2.0","koa-body":"^5.0.0","minimist":"^1.2.8","form-data":"^4.0.0","koa-range":"^0.3.0","koa2-cors":"^2.0.6","koa-router":"^12.0.1","randomstring":"^1.3.0","koa-bodyparser":"^4.4.1","playwright-core":"^1.49.0","eventsource-parser":"^1.1.2","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","typescript":"^5.3.3","@types/mime":"^3.0.4","@types/lodash":"^4.14.202"},"_npmOperationalInternal":{"tmp":"tmp/jimeng-free-api_0.8.8_1772182628802_0.33982863248256745","host":"s3://npm-registry-packages-npm-production"}},"0.8.10":{"name":"@2515097216/jimeng-free-api","version":"0.8.10","keywords":[],"author":{"name":"Vinlic"},"license":"ISC","_id":"@2515097216/jimeng-free-api@0.8.10","maintainers":[{"name":"2515097216","email":"2515097216@qq.com"}],"homepage":"https://github.com/laixiao/jimeng-free-api-all#readme","bugs":{"url":"https://github.com/laixiao/jimeng-free-api-all/issues"},"bin":{"jimeng-mcp":"dist/mcp/index.js","jimeng-free-api":"dist/mcp/index.js"},"mcp":{"jimeng-mcp":{"env":{"JIMENG_SESSION_ID":"${JIMENG_SESSION_ID}"},"args":["stdio"],"command":"jimeng-free-api"}},"dist":{"shasum":"387235877304451ce9cff2393b66dda4e90f6dd5","tarball":"https://registry.npmjs.org/@2515097216/jimeng-free-api/-/jimeng-free-api-0.8.10.tgz","fileCount":18,"integrity":"sha512-i3gRLpNMsvNo8PtOc4Ltyi3mijP01hOe0nyEfrmANEppJJQQ/rr2g2K/0C0eCiiXNR/A3whV1xrkevmNbIL3rg==","signatures":[{"sig":"MEQCIEuqc8uYLzbduOGwQzlshxA/RqMn9vqyj09g9EE9s+V6AiAvaBJnSg/+IT1EDUqrrO9RlhfIWhsavf5Gx/DA8TWRwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2143090},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"e69b86bbfcc19311cef202761ec554ead6e632eb","scripts":{"dev":"tsup src/index.ts --format cjs,esm --sourcemap --dts --publicDir public --watch --onSuccess \"node --enable-source-maps --no-node-snapshot dist/index.js --port 8000\"","build":"tsup src/index.ts src/mcp/index.ts --format cjs,esm --sourcemap --dts --clean --publicDir public","start":"node --enable-source-maps --no-node-snapshot dist/index.js","release":"npm run build && npm version patch && npm publish --access public","build:mcp":"tsup src/mcp/index.ts --format cjs,esm --sourcemap --dts --clean"},"_npmUser":{"name":"2515097216","email":"2515097216@qq.com"},"repository":{"url":"git+https://github.com/laixiao/jimeng-free-api-all.git","type":"git"},"_npmVersion":"10.9.3","description":"jimeng Free API Server - MCP compatible","directories":{"doc":"docs"},"_nodeVersion":"22.20.0","dependencies":{"koa":"^2.15.0","cron":"^3.1.6","mime":"^4.0.1","uuid":"^9.0.1","yaml":"^2.3.4","axios":"^1.6.7","colors":"^1.4.0","crc-32":"^1.2.2","lodash":"^4.17.21","semver":"^7.7.2","date-fns":"^3.3.1","fs-extra":"^11.2.0","koa-body":"^5.0.0","minimist":"^1.2.8","form-data":"^4.0.0","koa-range":"^0.3.0","koa2-cors":"^2.0.6","koa-router":"^12.0.1","randomstring":"^1.3.0","koa-bodyparser":"^4.4.1","playwright-core":"^1.49.0","eventsource-parser":"^1.1.2","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","typescript":"^5.3.3","@types/mime":"^3.0.4","@types/lodash":"^4.14.202"},"_npmOperationalInternal":{"tmp":"tmp/jimeng-free-api_0.8.10_1772188437728_0.923040804868678","host":"s3://npm-registry-packages-npm-production"}},"0.8.11":{"name":"@2515097216/jimeng-free-api","version":"0.8.11","keywords":[],"author":{"name":"Vinlic"},"license":"ISC","_id":"@2515097216/jimeng-free-api@0.8.11","maintainers":[{"name":"2515097216","email":"2515097216@qq.com"}],"homepage":"https://github.com/laixiao/jimeng-free-api-all#readme","bugs":{"url":"https://github.com/laixiao/jimeng-free-api-all/issues"},"bin":{"jimeng-mcp":"dist/mcp/index.js","jimeng-free-api":"dist/mcp/index.js"},"mcp":{"jimeng-mcp":{"env":{"JIMENG_SESSION_ID":"${JIMENG_SESSION_ID}"},"args":["stdio"],"command":"jimeng-free-api"}},"dist":{"shasum":"8c79ffdb7f40d690eb79260e82ac1c06bafb27b4","tarball":"https://registry.npmjs.org/@2515097216/jimeng-free-api/-/jimeng-free-api-0.8.11.tgz","fileCount":25,"integrity":"sha512-vaI6KHqX1w9h+lueSLtsFahsB2J5/krP3dxdAnT2/JOXGXjA0ojy0ESI6+iVUqGRucBwuU+CE8IRhQs8C0Glww==","signatures":[{"sig":"MEUCIAb1AOYcNHPeOHLvzK++kB+PIfchGsQYB2v03qOpf49bAiEAzOt6HurJmzek/ccyez+RGgvMQDbgVkEPd+r8sTbVcGo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29674620},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"a74e110345d22a6a3043d037dd4e2a4f089ab388","scripts":{"dev":"tsup src/index.ts --format cjs,esm --sourcemap --dts --publicDir public --watch --onSuccess \"node --enable-source-maps --no-node-snapshot dist/index.js --port 8000\"","build":"tsup src/index.ts src/mcp/index.ts --format cjs,esm --sourcemap --dts --clean --publicDir public","start":"node --enable-source-maps --no-node-snapshot dist/index.js","release":"npm run build && npm version patch && npm publish --access public","build:mcp":"tsup src/mcp/index.ts --format cjs,esm --sourcemap --dts --clean"},"_npmUser":{"name":"2515097216","email":"2515097216@qq.com"},"repository":{"url":"git+https://github.com/laixiao/jimeng-free-api-all.git","type":"git"},"_npmVersion":"10.9.3","description":"jimeng Free API Server - MCP compatible","directories":{"doc":"docs"},"_nodeVersion":"22.20.0","dependencies":{"koa":"^2.15.0","cron":"^3.1.6","mime":"^4.0.1","uuid":"^9.0.1","yaml":"^2.3.4","axios":"^1.6.7","colors":"^1.4.0","crc-32":"^1.2.2","lodash":"^4.17.21","semver":"^7.7.2","date-fns":"^3.3.1","fs-extra":"^11.2.0","koa-body":"^5.0.0","minimist":"^1.2.8","form-data":"^4.0.0","koa-range":"^0.3.0","koa2-cors":"^2.0.6","koa-router":"^12.0.1","randomstring":"^1.3.0","koa-bodyparser":"^4.4.1","playwright-core":"^1.49.0","eventsource-parser":"^1.1.2","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","typescript":"^5.3.3","@types/mime":"^3.0.4","@types/lodash":"^4.14.202"},"_npmOperationalInternal":{"tmp":"tmp/jimeng-free-api_0.8.11_1772197438042_0.33124313987178455","host":"s3://npm-registry-packages-npm-production"}},"0.8.12":{"name":"@2515097216/jimeng-free-api","version":"0.8.12","keywords":[],"author":{"name":"Vinlic"},"license":"ISC","_id":"@2515097216/jimeng-free-api@0.8.12","maintainers":[{"name":"2515097216","email":"2515097216@qq.com"}],"homepage":"https://github.com/laixiao/jimeng-free-api-all#readme","bugs":{"url":"https://github.com/laixiao/jimeng-free-api-all/issues"},"bin":{"jimeng-mcp":"dist/mcp/index.js","jimeng-free-api":"dist/mcp/index.js"},"mcp":{"jimeng-mcp":{"env":{"JIMENG_SESSION_ID":"${JIMENG_SESSION_ID}"},"args":["stdio"],"command":"jimeng-free-api"}},"dist":{"shasum":"46ecd905a315ec3cc5e65c8b33d947f1ffdc7d6f","tarball":"https://registry.npmjs.org/@2515097216/jimeng-free-api/-/jimeng-free-api-0.8.12.tgz","fileCount":25,"integrity":"sha512-IJyfqi9KpkNlRYq9CxU/qQR/tWSMczJSgcWhXcsjjYS+150POoebq3u2p6BmWZSlguiS3cYFYvc3gHYr8Gfrgg==","signatures":[{"sig":"MEQCIEllUc/wE/r9NjprK7eccmfCG5OLEPqJ8l+buFE59plpAiArhDokCr380M9xNh57dN6VuayXfnBnu/WPHFTOOz/Nlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29683735},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"4a22c70a1b9ac1c7e13a6d21fd621229e1a94e62","scripts":{"dev":"tsup src/index.ts --format cjs,esm --sourcemap --dts --publicDir public --watch --onSuccess \"node --enable-source-maps --no-node-snapshot dist/index.js --port 8000\"","build":"tsup src/index.ts src/mcp/index.ts --format cjs,esm --sourcemap --dts --clean --publicDir public","start":"node --enable-source-maps --no-node-snapshot dist/index.js","release":"npm run build && npm version patch && npm publish --access public","build:mcp":"tsup src/mcp/index.ts --format cjs,esm --sourcemap --dts --clean"},"_npmUser":{"name":"2515097216","email":"2515097216@qq.com"},"repository":{"url":"git+https://github.com/laixiao/jimeng-free-api-all.git","type":"git"},"_npmVersion":"10.9.3","description":"jimeng Free API Server - MCP compatible","directories":{"doc":"docs"},"_nodeVersion":"22.20.0","dependencies":{"koa":"^2.15.0","cron":"^3.1.6","mime":"^4.0.1","uuid":"^9.0.1","yaml":"^2.3.4","axios":"^1.6.7","colors":"^1.4.0","crc-32":"^1.2.2","lodash":"^4.17.21","semver":"^7.7.2","date-fns":"^3.3.1","fs-extra":"^11.2.0","koa-body":"^5.0.0","minimist":"^1.2.8","form-data":"^4.0.0","koa-range":"^0.3.0","koa2-cors":"^2.0.6","koa-router":"^12.0.1","randomstring":"^1.3.0","koa-bodyparser":"^4.4.1","playwright-core":"^1.49.0","eventsource-parser":"^1.1.2","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","typescript":"^5.3.3","@types/mime":"^3.0.4","@types/lodash":"^4.14.202"},"_npmOperationalInternal":{"tmp":"tmp/jimeng-free-api_0.8.12_1772201602746_0.8783806525661844","host":"s3://npm-registry-packages-npm-production"}},"0.8.13":{"name":"@2515097216/jimeng-free-api","repository":{"type":"git","url":"git+https://github.com/laixiao/jimeng-free-api-all.git"},"keywords":[],"bugs":{"url":"https://github.com/laixiao/jimeng-free-api-all/issues"},"homepage":"https://github.com/laixiao/jimeng-free-api-all#readme","version":"0.8.13","description":"jimeng Free API Server - MCP compatible","type":"module","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","directories":{"doc":"docs"},"bin":{"jimeng-free-api":"dist/mcp/index.js","jimeng-mcp":"dist/mcp/index.js"},"mcp":{"jimeng-mcp":{"command":"jimeng-free-api","args":["stdio"],"env":{"JIMENG_SESSION_ID":"${JIMENG_SESSION_ID}"}}},"scripts":{"dev":"tsup src/index.ts --format cjs,esm --sourcemap --dts --publicDir public --watch --onSuccess \"node --enable-source-maps --no-node-snapshot dist/index.js --port 8000\"","start":"node --enable-source-maps --no-node-snapshot dist/index.js","build":"tsup src/index.ts src/mcp/index.ts --format cjs,esm --sourcemap --dts --clean --publicDir public","build:mcp":"tsup src/mcp/index.ts --format cjs,esm --sourcemap --dts --clean","release":"npm run build && npm version patch && npm publish --access public"},"author":{"name":"Vinlic"},"license":"ISC","dependencies":{"@modelcontextprotocol/sdk":"^1.27.1","axios":"^1.6.7","colors":"^1.4.0","crc-32":"^1.2.2","cron":"^3.1.6","date-fns":"^3.3.1","eventsource-parser":"^1.1.2","form-data":"^4.0.0","fs-extra":"^11.2.0","koa":"^2.15.0","koa-body":"^5.0.0","koa-bodyparser":"^4.4.1","koa-range":"^0.3.0","koa-router":"^12.0.1","koa2-cors":"^2.0.6","lodash":"^4.17.21","mime":"^4.0.1","minimist":"^1.2.8","playwright-core":"^1.49.0","randomstring":"^1.3.0","semver":"^7.7.2","uuid":"^9.0.1","yaml":"^2.3.4"},"devDependencies":{"@types/lodash":"^4.14.202","@types/mime":"^3.0.4","tsup":"^8.0.2","typescript":"^5.3.3"},"_id":"@2515097216/jimeng-free-api@0.8.13","gitHead":"1a00755d2d6f442e0f15c9990be45d118fc8550f","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-+aeE2QCqopuD7cQdUewX68boiU9Q2VHkCvxsmobP3K9JYDqn8LjYwGdeouNQWkmXNCZ8E7Osqedk8pm3OOtG/A==","shasum":"cec1ba427ad144622307f9e9d51750c2a1cb7cc6","tarball":"https://registry.npmjs.org/@2515097216/jimeng-free-api/-/jimeng-free-api-0.8.13.tgz","fileCount":25,"unpackedSize":29707569,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC08hCAJHHRcpexJurdUPaJOhs3zd0Cyl1MBH58JWg26AIhAJF//WlNdAZd9mjE/7lM0nf3X6sUrFD8Y/EsBjwBNG3L"}]},"_npmUser":{"name":"2515097216","email":"2515097216@qq.com"},"maintainers":[{"name":"2515097216","email":"2515097216@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jimeng-free-api_0.8.13_1772202616788_0.40471884170377903"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-27T08:21:06.506Z","modified":"2026-02-27T14:30:17.825Z","0.8.6":"2026-02-27T08:21:06.905Z","0.8.7":"2026-02-27T08:28:25.465Z","0.8.8":"2026-02-27T08:57:09.049Z","0.8.10":"2026-02-27T10:33:57.929Z","0.8.11":"2026-02-27T13:03:59.180Z","0.8.12":"2026-02-27T14:13:23.630Z","0.8.13":"2026-02-27T14:30:17.697Z"},"bugs":{"url":"https://github.com/laixiao/jimeng-free-api-all/issues"},"author":{"name":"Vinlic"},"license":"ISC","homepage":"https://github.com/laixiao/jimeng-free-api-all#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/laixiao/jimeng-free-api-all.git"},"description":"jimeng Free API Server - MCP compatible","maintainers":[{"name":"2515097216","email":"2515097216@qq.com"}],"readme":"# Jimeng AI Free API\r\n\r\n即梦 AI 免费 API 服务 - 支持文生图、图生图、视频生成的 OpenAI 兼容接口\r\n\r\n![License](https://img.shields.io/badge/license-MIT-blue.svg)\r\n![Version](https://img.shields.io/badge/version-v0.8.6-green.svg)\r\n![Node](https://img.shields.io/badge/node-%3E%3D16.0.0-brightgreen.svg)\r\n![Docker](https://img.shields.io/badge/docker-ready-blue.svg)\r\n\r\n> 🎨 将即梦 AI 强大的图像和视频生成能力，通过 OpenAI 兼容接口开放给开发者\r\n\r\n## 项目介绍\r\n\r\n### 项目概述\r\n\r\nJimeng AI Free API 是一个逆向工程的 API 服务器，将即梦 AI（Jimeng AI）的图像和视频生成能力封装为 OpenAI 兼容的 API 接口。支持最新的 **jimeng-5.0**、**jimeng-4.6** 文生图模型、**Seedance 2.0 多模态智能视频生成**（模型名 `jimeng-video-seedance-2.0`，支持图片/视频/音频混合上传）及 **Seedance 2.0-fast 快速版**（模型名 `jimeng-video-seedance-2.0-fast`），零配置部署，多路 token 支持。\r\n\r\n### 核心功能\r\n\r\n- 🖼️ **文生图**：支持 jimeng-5.0、jimeng-4.6、jimeng-4.5 等多款模型，最高 4K 分辨率\r\n- 🎭 **图生图**：多图合成，支持 1-10 张输入图片\r\n- 🎬 **视频生成**：jimeng-video-3.5-pro 等模型，支持首帧/尾帧控制\r\n- 🌊 **Seedance 2.0 / 2.0-fast**：多模态智能视频生成，支持图片/视频/音频混合上传，@1、@2 占位符引用素材，fast 版本生成更快\r\n- 🔗 **OpenAI 兼容**：完全兼容 OpenAI API 格式，无缝对接现有客户端\r\n- 🔄 **多账号支持**：支持多个 sessionid 轮询使用\r\n\r\n### 技术栈\r\n\r\n| 技术 | 版本 | 用途 |\r\n|------|------|------|\r\n| Node.js | >=16.0.0 | 运行环境 |\r\n| TypeScript | ^5.0.0 | 开发语言 |\r\n| Koa | ^2.15.0 | Web 框架 |\r\n| Playwright | ^1.49.0 | 浏览器代理（Seedance 反爬绕过） |\r\n| Docker | latest | 容器化部署 |\r\n\r\n## 功能清单\r\n\r\n| 功能名称 | 功能说明 | 模型 | 状态 |\r\n|---------|---------|------|------|\r\n| 文生图 | 根据文本描述生成图片 | jimeng-5.0, jimeng-4.6, jimeng-4.5, jimeng-4.1 等 | ✅ 可用 |\r\n| 图生图 | 多图合成生成新图片 | jimeng-5.0, jimeng-4.6, jimeng-4.5 等 | ✅ 可用 |\r\n| 文生视频 | 根据文本描述生成视频 | jimeng-video-3.5-pro 等 | ✅ 可用 |\r\n| 图生视频 | 使用首帧/尾帧图片生成视频 | jimeng-video-3.0 等 | ✅ 可用 |\r\n| 多图智能视频 | Seedance 2.0 多模态混合生成 | jimeng-video-seedance-2.0, seedance-2.0 | ✅ 可用 |\r\n| 多图快速视频 | Seedance 2.0-fast 快速生成 | jimeng-video-seedance-2.0-fast, seedance-2.0-fast | ✅ 可用 |\r\n| 音频驱动视频 | Seedance 图片+音频混合生成 | jimeng-video-seedance-2.0, seedance-2.0-fast | ✅ 可用 |\r\n| Chat 接口 | OpenAI 兼容的对话接口 | 所有模型 | ✅ 可用 |\r\n\r\n## 免责声明\r\n\r\n> ⚠️ **重要提示**\r\n\r\n**逆向 API 是不稳定的，建议前往即梦 AI 官方 https://jimeng.jianying.com/ 体验功能，避免封禁的风险。**\r\n\r\n**本组织和个人不接受任何资金捐助和交易，此项目是纯粹研究交流学习性质！**\r\n\r\n**仅限自用，禁止对外提供服务或商用，避免对官方造成服务压力，否则风险自担！**\r\n\r\n## 安装说明\r\n\r\n### 环境要求\r\n\r\n- Node.js 16+\r\n- npm 或 yarn\r\n- Chromium 浏览器（Seedance 模型需要，通过 Playwright 自动管理）\r\n- Docker（可选）\r\n\r\n### 方式一：Docker 部署（推荐）\r\n\r\n**使用 Docker Hub 镜像：**\r\n\r\n```bash\r\n# 拉取镜像\r\ndocker pull wwwzhouhui569/jimeng-free-api-all:latest\r\n\r\n# 启动容器\r\ndocker run -it -d --init --name jimeng-free-api-all \\\r\n  -p 8000:8000 \\\r\n  -e TZ=Asia/Shanghai \\\r\n  wwwzhouhui569/jimeng-free-api-all:latest\r\n```\r\n\r\n**从源码构建：**\r\n\r\n```bash\r\n# 克隆项目\r\ngit clone https://github.com/wwwzhouhui/jimeng-free-api-all.git\r\n\r\n# 进入目录\r\ncd jimeng-free-api-all\r\n\r\n# 构建镜像\r\ndocker build -t jimeng-free-api-all:latest .\r\n\r\n# 启动容器\r\ndocker run -it -d --init --name jimeng-free-api-all \\\r\n  -p 8000:8000 \\\r\n  -e TZ=Asia/Shanghai \\\r\n  jimeng-free-api-all:latest\r\n```\r\n\r\n### 方式二：源码安装\r\n\r\n```bash\r\n# 克隆项目\r\ngit clone https://github.com/wwwzhouhui/jimeng-free-api-all.git\r\n\r\n# 进入目录\r\ncd jimeng-free-api-all\r\n\r\n# 安装依赖\r\nnpm install\r\n\r\n# 安装 Chromium 浏览器（Seedance 模型需要）\r\nnpx playwright-core install chromium --with-deps\r\n\r\n# 开发模式\r\nnpm run dev\r\n\r\n# 生产模式\r\nnpm run build && npm start\r\n```\r\n\r\n## 使用说明\r\n\r\n### 获取 SessionID\r\n\r\n1. 访问 [即梦 AI](https://jimeng.jianying.com/) 并登录账号\r\n2. 按 F12 打开开发者工具\r\n3. 进入 Application > Cookies\r\n4. 找到 `sessionid` 的值\r\n\r\n![获取 sessionid](./doc/example-0.png)\r\n\r\n### 多账号配置\r\n\r\n支持多个账号的 sessionid，使用逗号分隔：\r\n\r\n```\r\nAuthorization: Bearer sessionid1,sessionid2,sessionid3\r\n```\r\n\r\n每次请求会从中随机选择一个使用。\r\n\r\n### API 端点\r\n\r\n| 端点 | 方法 | 说明 |\r\n|------|------|------|\r\n| `/v1/chat/completions` | POST | OpenAI 兼容的对话接口 |\r\n| `/v1/images/generations` | POST | 文生图/图生图接口（支持 images 可选参数） |\r\n| `/v1/images/compositions` | POST | 图生图接口（向后兼容） |\r\n| `/v1/videos/generations` | POST | 视频生成接口 |\r\n| `/v1/models` | GET | 获取模型列表 |\r\n\r\n### 快速开始\r\n\r\n**文生图示例：**\r\n\r\n```bash\r\ncurl -X POST http://localhost:8000/v1/images/generations \\\r\n  -H \"Content-Type: application/json\" \\\r\n  -H \"Authorization: Bearer your_sessionid\" \\\r\n  -d '{\r\n    \"model\": \"jimeng-4.5\",\r\n    \"prompt\": \"美丽的日落风景，湖边的小屋\",\r\n    \"ratio\": \"16:9\",\r\n    \"resolution\": \"2k\"\r\n  }'\r\n```\r\n\r\n**图生图示例（通过 images 参数）：**\r\n\r\n```bash\r\ncurl -X POST http://localhost:8000/v1/images/generations \\\r\n  -H \"Content-Type: application/json\" \\\r\n  -H \"Authorization: Bearer your_sessionid\" \\\r\n  -d '{\r\n    \"model\": \"jimeng-4.5\",\r\n    \"prompt\": \"将两张图融合成梦幻风格\",\r\n    \"images\": [\r\n      \"https://example.com/img1.jpg\",\r\n      \"https://example.com/img2.jpg\"\r\n    ],\r\n    \"ratio\": \"1:1\",\r\n    \"resolution\": \"2k\",\r\n    \"sample_strength\": 0.5\r\n  }'\r\n```\r\n\r\n**视频生成示例：**\r\n\r\n```bash\r\ncurl -X POST http://localhost:8000/v1/videos/generations \\\r\n  -H \"Content-Type: application/json\" \\\r\n  -H \"Authorization: Bearer your_sessionid\" \\\r\n  -d '{\r\n    \"model\": \"jimeng-video-3.5-pro\",\r\n    \"prompt\": \"一只可爱的小猫在草地上玩耍\",\r\n    \"ratio\": \"16:9\",\r\n    \"resolution\": \"720p\",\r\n    \"duration\": 5\r\n  }'\r\n```\r\n\r\n**Seedance 2.0 多图视频示例：**\r\n\r\n```bash\r\ncurl -X POST http://localhost:8000/v1/videos/generations \\\r\n  -H \"Authorization: Bearer your_sessionid\" \\\r\n  -F \"model=jimeng-video-seedance-2.0\" \\\r\n  -F \"prompt=@1 和 @2 两人开始跳舞\" \\\r\n  -F \"ratio=4:3\" \\\r\n  -F \"duration=4\" \\\r\n  -F \"files=@/path/to/image1.jpg\" \\\r\n  -F \"files=@/path/to/image2.jpg\"\r\n```\r\n\r\n**Seedance 2.0-fast 快速视频示例：**\r\n\r\n```bash\r\ncurl -X POST http://localhost:8000/v1/videos/generations \\\r\n  -H \"Authorization: Bearer your_sessionid\" \\\r\n  -F \"model=jimeng-video-seedance-2.0-fast\" \\\r\n  -F \"prompt=@1 图片中的人物开始微笑\" \\\r\n  -F \"ratio=4:3\" \\\r\n  -F \"duration=5\" \\\r\n  -F \"files=@/path/to/image1.jpg\"\r\n```\r\n\r\n**Seedance 图片+音频混合示例：**\r\n\r\n```bash\r\ncurl -X POST http://localhost:8000/v1/videos/generations \\\r\n  -H \"Authorization: Bearer your_sessionid\" \\\r\n  -F \"model=jimeng-video-seedance-2.0-fast\" \\\r\n  -F \"prompt=@1 图片中的人物随着音乐 @2 开始跳舞\" \\\r\n  -F \"ratio=9:16\" \\\r\n  -F \"duration=5\" \\\r\n  -F \"files=@/path/to/image.png\" \\\r\n  -F \"files=@/path/to/audio.wav\"\r\n```\r\n\r\n## 项目结构\r\n\r\n```\r\njimeng-free-api-all/\r\n├── src/\r\n│   ├── index.ts                 # 应用入口\r\n│   ├── daemon.ts                # 守护进程管理\r\n│   ├── api/\r\n│   │   ├── controllers/         # 业务逻辑控制器\r\n│   │   │   ├── core.ts          # 核心工具（Token处理等）\r\n│   │   │   ├── images.ts        # 图像生成逻辑\r\n│   │   │   ├── videos.ts        # 视频生成逻辑\r\n│   │   │   └── chat.ts          # 对话补全逻辑\r\n│   │   ├── routes/              # API 路由定义\r\n│   │   │   ├── index.ts         # 路由聚合\r\n│   │   │   ├── images.ts        # /v1/images/* 端点\r\n│   │   │   ├── videos.ts        # /v1/videos/* 端点\r\n│   │   │   ├── chat.ts          # /v1/chat/* 端点\r\n│   │   │   └── models.ts        # /v1/models 端点\r\n│   │   └── consts/              # API 常量和异常\r\n│   └── lib/\r\n│       ├── server.ts            # Koa 服务器配置\r\n│       ├── browser-service.ts   # 浏览器代理服务（Seedance 反爬）\r\n│       ├── config.ts            # 配置管理\r\n│       ├── logger.ts            # 日志工具\r\n│       ├── util.ts              # 辅助工具\r\n│       ├── request/             # 请求处理类\r\n│       ├── response/            # 响应处理类\r\n│       ├── exceptions/          # 异常类\r\n│       └── configs/             # 配置模式\r\n├── configs/                     # 配置文件目录\r\n├── doc/                         # 文档资源\r\n├── Dockerfile                   # Docker 构建文件\r\n├── package.json                 # 项目配置\r\n└── tsconfig.json                # TypeScript 配置\r\n```\r\n\r\n## 模型说明\r\n\r\n### 文生图模型\r\n\r\n| 用户模型名 | 内部模型名 | 说明 |\r\n|-----------|-----------|------|\r\n| `jimeng-5.0` | `high_aes_general_v50` | 5.0 正式版，最新模型 |\r\n| `jimeng-4.6` | `high_aes_general_v42` | 最新模型，推荐使用 |\r\n| `jimeng-4.5` | `high_aes_general_v40l` | 高质量模型 |\r\n| `jimeng-4.1` | `high_aes_general_v41` | 高质量模型 |\r\n| `jimeng-4.0` | `high_aes_general_v40` | 稳定版本 |\r\n| `jimeng-3.1` | `high_aes_general_v30l_art_fangzhou` | 艺术风格 |\r\n| `jimeng-3.0` | `high_aes_general_v30l` | 通用模型 |\r\n| `jimeng-2.1` | - | 旧版模型 |\r\n| `jimeng-2.0-pro` | - | 旧版专业模型 |\r\n| `jimeng-2.0` | - | 旧版模型 |\r\n| `jimeng-1.4` | - | 早期模型 |\r\n| `jimeng-xl-pro` | - | XL 专业模型 |\r\n\r\n### 视频模型\r\n\r\n| 用户模型名 | 内部模型名 | 说明 |\r\n|-----------|-----------|------|\r\n| `jimeng-video-3.5-pro` | `dreamina_ic_generate_video_model_vgfm_3.5_pro` | 最新视频模型 |\r\n| `jimeng-video-3.0` | - | 视频生成 3.0 |\r\n| `jimeng-video-3.0-pro` | - | 视频生成 3.0 专业版 |\r\n| `jimeng-video-2.0` | - | 视频生成 2.0 |\r\n| `jimeng-video-2.0-pro` | - | 视频生成 2.0 专业版 |\r\n| `jimeng-video-seedance-2.0` | `dreamina_seedance_40_pro` | Seedance 2.0（上游标准名称，推荐） |\r\n| `seedance-2.0` | `dreamina_seedance_40_pro` | Seedance 2.0（向后兼容别名） |\r\n| `seedance-2.0-pro` | `dreamina_seedance_40_pro` | Seedance 2.0（向后兼容别名） |\r\n| `jimeng-video-seedance-2.0-fast` | `dreamina_seedance_40` | Seedance 2.0-fast 快速版（上游标准名称） |\r\n| `seedance-2.0-fast` | `dreamina_seedance_40` | Seedance 2.0-fast 快速版（向后兼容别名） |\r\n\r\n### 分辨率支持\r\n\r\n#### 图片分辨率\r\n\r\n| 分辨率 | 1:1 | 4:3 | 3:4 | 16:9 | 9:16 | 3:2 | 2:3 | 21:9 |\r\n|--------|-----|-----|-----|------|------|-----|-----|------|\r\n| 1k | 1024×1024 | 768×1024 | 1024×768 | 1024×576 | 576×1024 | 1024×682 | 682×1024 | 1195×512 |\r\n| 2k | 2048×2048 | 2304×1728 | 1728×2304 | 2560×1440 | 1440×2560 | 2496×1664 | 1664×2496 | 3024×1296 |\r\n| 4k | 4096×4096 | 4608×3456 | 3456×4608 | 5120×2880 | 2880×5120 | 4992×3328 | 3328×4992 | 6048×2592 |\r\n\r\n#### 视频分辨率\r\n\r\n| 分辨率 | 1:1 | 4:3 | 3:4 | 16:9 | 9:16 |\r\n|--------|-----|-----|-----|------|------|\r\n| 480p | 480×480 | 640×480 | 480×640 | 854×480 | 480×854 |\r\n| 720p | 720×720 | 960×720 | 720×960 | 1280×720 | 720×1280 |\r\n| 1080p | 1080×1080 | 1440×1080 | 1080×1440 | 1920×1080 | 1080×1920 |\r\n\r\n## API 详细文档\r\n\r\n### 图像生成接口\r\n\r\n**POST /v1/images/generations**\r\n\r\n统一接口，支持文生图和图生图两种模式：\r\n\r\n| 参数 | 类型 | 必填 | 默认值 | 说明 |\r\n|------|------|------|--------|------|\r\n| model | string | 否 | jimeng-4.5 | 模型名称 |\r\n| prompt | string | 是 | - | 提示词，支持多图生成 |\r\n| images | array | 否 | - | 图片URL数组（1-10张），提供则走图生图模式，不提供则走文生图模式 |\r\n| negative_prompt | string | 否 | \"\" | 反向提示词 |\r\n| ratio | string | 否 | 1:1 | 宽高比 |\r\n| resolution | string | 否 | 2k | 分辨率：1k, 2k, 4k |\r\n| sample_strength | number | 否 | 0.5 | 精细度 0-1 |\r\n| response_format | string | 否 | url | url 或 b64_json |\r\n\r\n**说明：**\r\n- 当 `images` 参数为空或不提供时，接口执行文生图功能\r\n- 当 `images` 参数提供（1-10张图片）时，接口执行图生图功能\r\n- 支持 `application/json`（images 为 URL 数组）和 `multipart/form-data`（通过 images 字段上传文件）两种请求格式\r\n- 图生图模式下，响应会额外包含 `input_images` 和 `composition_type` 字段\r\n\r\n### 图生图接口（向后兼容）\r\n\r\n**POST /v1/images/compositions**\r\n\r\n保留此接口以确保向后兼容，功能与 `/v1/images/generations` 提供 `images` 参数时相同。\r\n\r\n| 参数 | 类型 | 必填 | 默认值 | 说明 |\r\n|------|------|------|--------|------|\r\n| model | string | 否 | jimeng-4.5 | 模型名称 |\r\n| prompt | string | 是 | - | 提示词 |\r\n| images | array | 是 | - | 图片URL数组，1-10张 |\r\n| ratio | string | 否 | 1:1 | 宽高比 |\r\n| resolution | string | 否 | 2k | 分辨率 |\r\n\r\n### 视频生成接口\r\n\r\n**POST /v1/videos/generations**\r\n\r\n| 参数 | 类型 | 必填 | 默认值 | 说明 |\r\n|------|------|------|--------|------|\r\n| model | string | 否 | jimeng-video-3.0 | 模型名称 |\r\n| prompt | string | 是 | - | 视频描述 |\r\n| ratio | string | 否 | 1:1 | 宽高比 |\r\n| resolution | string | 否 | 720p | 分辨率：480p, 720p, 1080p |\r\n| duration | number | 否 | 5 | 时长：4-15 秒（Seedance）、5 或 10 秒（普通） |\r\n| file_paths | array | 否 | [] | 首帧/尾帧图片URL |\r\n\r\n### Seedance 2.0 / 2.0-fast 接口\r\n\r\n**POST /v1/videos/generations**\r\n\r\n| 参数 | 类型 | 必填 | 默认值 | 说明 |\r\n|------|------|------|--------|------|\r\n| model | string | 是 | - | jimeng-video-seedance-2.0（推荐）、jimeng-video-seedance-2.0-fast（快速版）或 seedance-2.0 |\r\n| prompt | string | 否 | - | 提示词，使用 @1、@2 引用素材（图片/视频/音频） |\r\n| ratio | string | 否 | 4:3 | 宽高比 |\r\n| duration | number | 否 | 4 | 视频时长 4-15 秒 |\r\n| files | file[] | 是* | - | 上传的素材文件（图片/视频/音频，multipart） |\r\n| file_paths | array | 是* | - | 素材URL数组（JSON） |\r\n\r\n**支持的素材类型：**\r\n- 图片：jpg, png, webp, gif, bmp\r\n- 视频：mp4, mov, m4v\r\n- 音频：mp3, wav\r\n\r\n**提示词占位符：**\r\n- `@1` / `@图1` / `@image1` - 引用第一个素材\r\n- `@2` / `@图2` / `@image2` - 引用第二个素材\r\n\r\n## 效果展示\r\n\r\n![image-20260209234137309](https://mypicture-1258720957.cos.ap-nanjing.myqcloud.com/Obsidian/image-20260209234137309.png)\r\n\r\n![image-20260209230221386](https://mypicture-1258720957.cos.ap-nanjing.myqcloud.com/Obsidian/image-20260209230221386.png)\r\n\r\n![多图合成](https://mypicture-1258720957.cos.ap-nanjing.myqcloud.com/Obsidian/QQ_1757688787070.png)\r\n\r\n![文生视频 3.0](https://mypicture-1258720957.cos.ap-nanjing.myqcloud.com/Obsidian/QQ_1757688755495.png)\r\n\r\n![文生视频 3.5](https://mypicture-1258720957.cos.ap-nanjing.myqcloud.com/Obsidian/image-20251220192531051.png)\r\n\r\n## 开发指南\r\n\r\n### 本地开发\r\n\r\n```bash\r\n# 克隆项目\r\ngit clone https://github.com/wwwzhouhui/jimeng-free-api-all.git\r\ncd jimeng-free-api-all\r\n\r\n# 安装依赖\r\nnpm install\r\n\r\n# 安装 Chromium 浏览器（首次开发需要）\r\nnpx playwright-core install chromium --with-deps\r\n\r\n# 开发模式（热重载）\r\nnpm run dev\r\n```\r\n\r\n### 构建部署\r\n\r\n```bash\r\n# 构建生产版本\r\nnpm run build\r\n\r\n# 启动生产服务\r\nnpm start\r\n```\r\n\r\n### 贡献指南\r\n\r\n1. Fork 本项目\r\n2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)\r\n3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)\r\n4. 推送到分支 (`git push origin feature/AmazingFeature`)\r\n5. 创建 Pull Request\r\n\r\n## 常见问题\r\n\r\n<details>\r\n<summary>如何获取 sessionid？</summary>\r\n\r\n1. 访问 [即梦 AI](https://jimeng.jianying.com/) 并登录\r\n2. 按 F12 打开开发者工具\r\n3. 进入 Application > Cookies\r\n4. 复制 `sessionid` 的值\r\n\r\n</details>\r\n\r\n<details>\r\n<summary>sessionid 失效怎么办？</summary>\r\n\r\nsessionid 有效期有限，失效后需要重新登录即梦网站获取新的 sessionid。建议配置多个账号以提高可用性。\r\n\r\n</details>\r\n\r\n<details>\r\n<summary>如何配置多账号？</summary>\r\n\r\n在 Authorization 头中使用逗号分隔多个 sessionid：\r\n```\r\nAuthorization: Bearer sessionid1,sessionid2,sessionid3\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary>Docker 容器无法启动？</summary>\r\n\r\n1. 检查端口 8000 是否被占用\r\n2. 确保 Docker 服务正在运行\r\n3. 查看容器日志：`docker logs jimeng-free-api-all`\r\n\r\n</details>\r\n\r\n<details>\r\n<summary>生成失败返回错误？</summary>\r\n\r\n1. 检查 sessionid 是否有效\r\n2. 确认账号积分是否充足\r\n3. 检查请求参数是否正确\r\n4. 查看服务器日志获取详细错误信息\r\n\r\n</details>\r\n\r\n<details>\r\n<summary>Seedance 视频生成报 \"shark not pass\" 错误？</summary>\r\n\r\n该错误表示即梦的 shark 安全中间件拦截了请求。v0.8.4 已通过 Playwright 浏览器代理解决此问题。请确保：\r\n\r\n1. 已安装 Chromium 浏览器：`npx playwright-core install chromium --with-deps`\r\n2. Docker 用户请使用 v0.8.4 及以上版本的镜像，Dockerfile 已内置 Chromium 支持\r\n3. 首次 Seedance 请求会自动启动浏览器（约数秒），后续请求复用会话\r\n\r\n</details>\r\n\r\n## 更新日志\r\n\r\n### v0.8.6 (2026-02-20) - jimeng-5.0 正式版模型更新\r\n\r\n- 🔄 **模型更名 `jimeng-5.0-preview` → `jimeng-5.0`**：即梦平台已将 5.0 预览版升级为正式版，移除 `-preview` 后缀\r\n- 🔧 **更新模型配置**：同步更新 `MODEL_MAP`、`MODEL_DRAFT_VERSIONS`、`MODEL_CONFIGS` 中的模型名映射\r\n- 🔧 **更新模型列表接口**：`/v1/models` 返回的模型 ID 和描述信息同步更新\r\n\r\n### v0.8.5 (2026-02-20) - Seedance 多模态素材支持（图片/视频/音频混合上传）\r\n\r\n- ✨ **Seedance 多模态素材上传**：支持图片、视频、音频混合上传，通过 MIME 类型和文件扩展名自动检测素材类型\r\n- ✨ **VOD 上传通道**：音频/视频文件通过 ByteDance VOD API 上传（`ApplyUploadInner` → Upload → `CommitUploadInner`），获取真实 VOD vid\r\n- ✨ **音频时长解析**：VOD 服务自动解析音频时长，兜底支持 WAV 文件头解析\r\n- 🔧 **AWS 签名增强**：`createSignature` 支持自定义 `region` 和 `service` 参数，支持 ImageX（`imagex`）和 VOD（`vod`）双通道签名\r\n- 🔧 **上传令牌分离**：图片上传使用 `scene: 2`（ImageX），音频/视频上传使用 `scene: 1`（VOD，`spaceName=dreamina`）\r\n- 📝 **支持的素材格式**：图片（jpg/png/webp/gif/bmp）、视频（mp4/mov/m4v）、音频（mp3/wav）\r\n\r\n### v0.8.4 (2026-02-18) - 修复 Seedance \"shark not pass\" 反爬拦截\r\n\r\n- 🐛 **修复 Seedance 视频生成被 shark 安全中间件拦截**：即梦对 `/mweb/v1/aigc_draft/generate` 接口新增 `a_bogus` 签名校验，Node.js 直接请求返回 `ret=1019, \"shark not pass\"`\r\n- ✨ **新增 BrowserService 浏览器代理服务**：通过 Playwright 启动 headless Chromium，利用字节跳动 `bdms` SDK 在浏览器中自动注入 `a_bogus` 签名\r\n- 🔧 **仅 Seedance generate 请求走浏览器代理**：其他请求（图片生成、普通视频、上传、轮询、积分查询）不受影响，继续用 Node.js 直接请求\r\n- ⚡ **懒启动与会话复用**：首次 Seedance 请求才启动浏览器，每个 sessionId 独立会话，10 分钟空闲自动清理\r\n- 🔧 **资源优化**：浏览器屏蔽图片/字体/CSS 等无关资源，仅加载 bdms SDK 相关脚本（白名单域名：vlabstatic.com、bytescm.com、jianying.com）\r\n- 🐳 **Docker 支持更新**：Dockerfile 改用 `node:lts`（非 alpine），内置 Chromium 系统依赖和浏览器安装\r\n- 📦 **新增依赖**：`playwright-core ^1.49.0`\r\n\r\n### v0.8.3 (2026-02-14) - 修复 Seedance 2.0-fast 积分扣减失败\r\n\r\n- 🐛 **修复 fast 版 benefit_type 错误**：`dreamina_video_seedance_20_fast` → `dreamina_seedance_20_fast`（无 `video_` 前缀），解决 `credit prededuct failed` 错误\r\n- 🔧 **升级 Seedance Draft 版本**：`3.3.8` → `3.3.9`，与即梦官网保持一致\r\n- 🔧 **升级客户端版本号**：`VERSION_CODE` 从 `5.8.0` → `8.4.0`，`Chrome UA` 更新至 132\r\n- 🔧 **补全请求头**：新增 `App-Sdk-Version`、`Lan`、`Loc` 头部，匹配即梦官网请求\r\n- 🔧 **修正 region 参数**：`CN` → `cn`（小写），与即梦官网一致\r\n- 🔧 **补全 image_info.aigc_image 字段**：Seedance material_list 中的 image_info 新增 `aigc_image` 对象\r\n\r\n### v0.8.2 (2026-02-13) - 新增 Seedance 2.0-fast 快速视频生成模型\r\n\r\n- ✨ **新增 `jimeng-video-seedance-2.0-fast` 模型**：Seedance 2.0 快速版，内部模型为 `dreamina_seedance_40`，生成速度更快\r\n- ✨ **新增 `seedance-2.0-fast` 别名**：向后兼容别名\r\n- 🔧 **新增 fast 版 benefit_type**：`dreamina_video_seedance_20_fast`，区分标准版与快速版\r\n- 🔧 **优化 Seedance 模型识别**：`isSeedanceModel` 函数改用前缀匹配，自动兼容后续新增的 Seedance 变体\r\n\r\n### v0.8.1 (2026-02-10) - Seedance 2.0 模型名更新\r\n\r\n- 🔄 **新增 `jimeng-video-seedance-2.0` 模型名**：原 `seedance-2.0`、`seedance-2.0-pro` 保留为向后兼容别名\r\n- ⏱️ **扩展 Seedance 时长支持**：从固定 4 秒扩展为 4-15 秒连续范围\r\n- 🔧 **更新 Draft 版本**：Seedance 模型 Draft 版本从 `3.3.9` 调整为 `3.3.8`\r\n\r\n### v0.8.0 (2026-02-09) - 新增 jimeng-5.0-preview（现已更名为 jimeng-5.0）和 jimeng-4.6 图像生成模型\r\n\r\n- ✨ **新增 jimeng-5.0-preview 模型**：即梦 AI 最新 5.0 预览版图像生成模型（内部模型 `high_aes_general_v50`），v0.8.6 已更名为 `jimeng-5.0`\r\n- ✨ **新增 jimeng-4.6 模型**：即梦 AI 4.6 版图像生成模型（内部模型 `high_aes_general_v42`），支持文生图、图生图和多图生成\r\n- ⚡ **升级 Draft 版本**：jimeng-5.0-preview 和 jimeng-4.6 使用最新 `3.3.9` 版本\r\n- 🔧 **扩展多图生成支持**：多图检测正则匹配扩展至 jimeng-5.x 系列模型\r\n\r\n### v0.7.1 (2026-02-09) - 修复视频生成返回高清下载URL\r\n\r\n- 🐛 **修复视频返回低码率预览URL的问题**：视频生成接口（含 Seedance 2.0）之前返回的是 `vlabvod.com` 低码率预览URL（bitrate ~1152），现在通过 `get_local_item_list` API 获取 `dreamnia.jimeng.com` 高码率下载URL（bitrate ~6297+）\r\n- 🐛 **修复 Seedance 轮询响应解析失败**：`get_history_by_ids` API 返回数据以 historyId 为键（如 `result[\"8918159809292\"]`），而非 `result.history_list` 数组，导致轮询循环无法正确解析响应，视频生成后客户端请求无返回\r\n- 🐛 **修复普通视频轮询响应解析**：`generateVideo` 函数增加 `result[historyId]` 回退解析，兼容 historyId 键值格式的API响应\r\n- 🐛 **修复 item_id 提取字段名**：API 返回的视频项目 ID 位于 `common_attr.id` 字段，补充该字段到提取链中\r\n\r\n### v0.7.0 (2026-02-07) - Seedance 2.0 多图智能视频生成\r\n\r\n- ✨ **新增 Seedance 2.0 模型**：支持多张图片混合生成视频\r\n- ✨ **多图混合提示词**：支持 `@1`、`@2` 等占位符引用图片\r\n- 🐛 **修复 multipart 文件上传**：优化 koa-body 配置\r\n- 🔒 **安全漏洞修复**：升级依赖修复 19 个安全漏洞\r\n- ⚡ **优化参数验证**：`prompt` 参数改为可选\r\n\r\n### v0.6.0 (2024-12-20) - 新增视频模型\r\n\r\n- ✨ **新增 jimeng-video-3.5-pro 模型**\r\n- ⚡ **升级 Draft 版本**：使用 `3.3.4` 版本\r\n- 🔧 **动态版本管理**：根据模型自动选择 draft 版本\r\n\r\n### v0.5.0 (2024-12-12) - 参数格式优化\r\n\r\n- 🔄 **统一参数格式**：使用 `ratio` 和 `resolution` 替代 `width`/`height`\r\n- 📤 **支持 multipart/form-data**：图生图和视频生成支持直接上传文件\r\n- ⚡ **优化错误提示**\r\n\r\n### v0.4.0 (2024-12-11) - 免积分优化\r\n\r\n- 🐛 **修复积分扣费问题**：优化请求参数实现免积分\r\n- 🔧 **更新浏览器指纹**：Chrome 版本升级到 142\r\n\r\n### v0.3.0 (2024-12-08)\r\n\r\n- 🐛 **修复 jimeng-4.5 模型**：修正模型映射名称\r\n- ⬆️ **升级版本号**：`DRAFT_VERSION` 升级到 `3.3.4`\r\n- ✨ **扩展分辨率支持**：支持 1k/2k/4k 多种分辨率\r\n\r\n## 技术交流群\r\n\r\n欢迎加入技术交流群，分享使用心得：\r\n\r\n![技术交流群](https://mypicture-1258720957.cos.ap-nanjing.myqcloud.com/Obsidian/%25E5%25BE%25AE%25E4%25BF%25A1%25E5%259B%25BE%25E7%2589%2587_20260223133201_158_292.jpg)\r\n\r\n## 作者联系\r\n\r\n- **微信**: laohaibao2025\r\n- **邮箱**: 75271002@qq.com\r\n\r\n![微信二维码](https://mypicture-1258720957.cos.ap-nanjing.myqcloud.com/Screenshot_20260123_095617_com.tencent.mm.jpg)\r\n\r\n## 打赏\r\n\r\n如果这个项目对你有帮助，欢迎请我喝杯咖啡 ☕\r\n\r\n**微信支付**\r\n\r\n![微信支付](https://mypicture-1258720957.cos.ap-nanjing.myqcloud.com/Obsidian/image-20250914152855543.png)\r\n\r\n## 致谢\r\n\r\n感谢以下项目的贡献：\r\n\r\n- [jimeng-free-api-all](https://github.com/zhizinan1997/jimeng-free-api-all)\r\n- [jimeng-free-api](https://github.com/LLM-Red-Team/jimeng-free-api)\r\n\r\n## License\r\n\r\n[MIT License](LICENSE)\r\n\r\n## Star History\r\n\r\n如果觉得项目不错，欢迎点个 Star ⭐\r\n\r\n[![Star History Chart](https://api.star-history.com/svg?repos=wwwzhouhui/jimeng-free-api-all&type=Date)](https://star-history.com/#wwwzhouhui/jimeng-free-api-all&Date)\r\n","readmeFilename":"README.md"}