emaki-haystack
Haystack components for emaki (emaki.ai), the Japanese-language AI video generator for Seedance 2.5 and Seedance 2.0. Render Seedance 2.5 clips, image to video and AI images inside a pipeline on one emaki API key.
pip install emaki-haystack
export EMAKI_API_KEY=sk-... # create one at https://emaki.ai/settings/apikeys
from emaki_haystack import EmakiImageGenerator, EmakiVideoGenerator
EmakiVideoGenerator(duration=5).run(prompt="a lighthouse beam sweeping across fog at night, slow push-in")
# {"videos": ["https://cdn.emaki.ai/..."]}
EmakiImageGenerator(aspect_ratio="16:9").run(prompt="a lighthouse in fog, long exposure")
# {"images": ["https://cdn.emaki.ai/..."]}
In a pipeline
Write the shot with an LLM, render it with Seedance 2.5:
from haystack import Pipeline
from haystack.components.builders import PromptBuilder
from haystack.components.generators import OpenAIGenerator
from emaki_haystack import EmakiVideoGenerator
p = Pipeline()
p.add_component("brief", PromptBuilder("Write one video prompt for a 5-second product teaser about {{topic}}. Name the action and the camera move."))
p.add_component("llm", OpenAIGenerator())
p.add_component("render", EmakiVideoGenerator(duration=5, aspect_ratio="9:16"))
p.connect("brief", "llm")
p.connect("llm.replies", "render.prompt")
(llm.replies is a list; add a small adapter component that takes replies[0] if your Haystack version does not convert it.)
Components
| Component | run() input |
Output |
|---|---|---|
EmakiVideoGenerator |
prompt, optional image_url (first frame) |
{"videos": [url]} |
EmakiImageGenerator |
prompt |
{"images": [url]} |
EmakiVideoGenerator takes model, duration, resolution, aspect_ratio and generate_audio at init. It defaults to seedance_2_5; seedance_2 (Seedance 2.0), seedance_2_fast, seedance_2_mini, minimax_h3 and veo_3_1 are the other ids. EmakiImageGenerator defaults to nano_banana_2_lite. Both serialize with to_dict / from_dict; the key is a Haystack Secret read from EMAKI_API_KEY.
Each run costs credits on your emaki account, the same price as on the website. Errors raise the emaki client's exceptions (AuthError, QuotaError, PlanError, BusyError, RejectedError, GenerationFailed) so a pipeline can branch on them. Finished clips can be sharpened with the AI video upscaler.
日本語での使い方は シーダンス へ。
Metadata
Release files for emaki-haystack 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| emaki_haystack-0.1.0.tar.gz | 4.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| emaki_haystack-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.7 kB
Release files / emaki_haystack-0.1.0.tar.gz
| Download URL | emaki_haystack-0.1.0.tar.gz |
|---|---|
| Size | 4.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b6fae33b5185bfa590bc9be602e349736fa8af53e529ad81e0e98e74680994e8
|
|
BLAKE2b-256 checksum How to use checksums |
97272cd8d512f0bd9b37ae532c12bea70bc4b4d3efc0f1396081f10f2cea8187
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|
Release files / emaki_haystack-0.1.0-py3-none-any.whl
| Download URL | emaki_haystack-0.1.0-py3-none-any.whl |
|---|---|
| Size | 5.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
df925a5eb1de0c97581cbd4224819822863c162d039b461b1f9220a6b0dedeb2
|
|
BLAKE2b-256 checksum How to use checksums |
1a71a9d792c17a18bd46e38d4d3c45054b8591d79728ae6404b43ce2b3df9aaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|
Security for emaki-haystack 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.