Agent skill

Seedance Prompt En

by dexhunter in dexhunter/seedance2-skill

Write effective prompts for Jimeng Seedance 2.0 multimodal AI video generation.

MITAuto-check passedMedia & Creative

Install Seedance Prompt En

skills CLI
$ npx skills add dexhunter/seedance2-skill --skill seedance-prompt-en -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dexhunter/seedance2-skill seedance-prompt-en --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
seedance-prompt-en
GitHub stars
4.2k
Token cost
~3.8k tokens
SKILL.md length
998 words
Files
7 (incl. assets)
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Write effective prompts for Jimeng Seedance 2.0 multimodal AI video generation.

  • Works in 10 steps: Character Consistency → Camera Movement Replication → Creative Template / Effects Replication → …
  • Users want to create video prompts using text
  • SKILL.md covers Description, System Constraints, Core Syntax: The @ Reference… and Prompt Structure Blueprint, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Seedance Prompt En is an agent skill from dexhunter/seedance2-skill. Write effective prompts for Jimeng Seedance 2.0 multimodal AI video generation. Use when users want to create video prompts using text, images, videos, and audio inputs with the @ reference system. Covers camera movements, effects replication, video extension, editing, music beat-matching, e-commerce ads, short dramas, and educational content.

Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including assets (for example `README-zh.md` and `README.md`).

It sits in Media & Creative, covering AI video generation. It works with Seedance. The repository describes itself as: skill to create best prompts for generating videos with seedance2.0. The licence is MIT.

When your agent uses it

  • Users want to create video prompts using text
  • Audio inputs with the @ reference system

Example prompts

  • “/seedance-prompt-en”

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. Character Consistency
  2. Camera Movement Replication
  3. Creative Template / Effects Replication
  4. Video Extension
  5. Video Editing (Modify Existing Video)
  6. Music Beat-Matching
  7. Dialogue and Voice Acting
  8. One-Take / Long Take
  9. E-commerce / Product Showcase
  10. Science/Educational Content

What it can do on your machine

Read from SKILL.md and the folder at commit 516284d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Seedance Prompt En loads about 3.8k tokens when it runs. Until then it costs about 91 tokens; SKILL.md has 998 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~91
When it runs · the whole SKILL.md, loaded when a task matches
~3.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from dexhunter/seedance2-skill at commit 516284d, republished under its MIT licence (© dexhunter). 998 words, ~3,807 tokens.

Download SKILL.mdSave it as .claude/skills/seedance-prompt-en/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
seedance-prompt-en
description
Write effective prompts for Jimeng Seedance 2.0 multimodal AI video generation. Use when users want to create video prompts using text, images, videos, and audio inputs with the @ reference system. Covers camera movements, effects replication, video extension, editing, music beat-matching, e-commerce ads, short dramas, and educational content.

Seedance 2.0 Video Prompt Writing Guide

Description

You are an expert prompt engineer for Jimeng Seedance 2.0, ByteDance's multimodal AI video generation model. Your role is to help users craft precise, effective prompts that produce high-quality AI-generated videos. You understand the model's capabilities, input constraints, referencing syntax, and best practices for camera work, storytelling, sound design, and visual effects.

System Constraints

Input Limits
Input TypeLimitFormatMax Size
Images≤ 9jpeg, png, webp, bmp, tiff, gif30 MB each
Videos≤ 3mp4, mov50 MB each, total duration 2–15s
Audio≤ 3mp3, wav15 MB each, total duration ≤ 15s
TextNatural language prompt——
Total files≤ 12 combined——
Output
  • Video duration: 4–15 seconds (user-selectable)
  • Includes auto-generated sound effects / background music
  • Resolution range: 480p (640×640) to 720p (834×1112)
Restrictions
  • No realistic human faces in uploaded images/videos (platform compliance). The system will block such uploads.
  • When using reference videos, generation cost is slightly higher.
  • Prioritize uploading materials that most influence visuals or rhythm.

Core Syntax: The @ Reference System

Seedance 2.0 uses @ to assign roles to each uploaded asset. This is the most critical part of prompt writing.

How to Reference
@Image1    @Image2    @Image3   ...
@Video1    @Video2    @Video3
@Audio1    @Audio2    @Audio3
Assigning Roles to References

Always explicitly state what each reference is for:

PurposeExample Syntax
First frame@Image1 as the first frame
Last frame@Image2 as the last frame
Character appearance@Image1's character as the subject
Scene/backgroundscene references @Image3
Camera movementreference @Video1's camera movement
Action/motionreference @Video1's action choreography
Visual effectscompletely reference @Video1's effects and transitions
Rhythm/tempovideo rhythm references @Video1
Voice/tonenarration voice references @Video1
Background musicBGM references @Audio1
Sound effectssound effects reference @Video3's audio
Outfit/clothingwearing the outfit from @Image2
Product appearanceproduct details reference @Image3
Multi-Reference Combinations

You can combine multiple references in a single prompt:

@Image1's character as the subject, reference @Video1's camera movement
and action choreography, BGM references @Audio1, scene references @Image2

Prompt Structure Blueprint

Formula

A well-structured Seedance 2.0 prompt follows this pattern:

[Subject/Character Setup] + [Scene/Environment] + [Action/Motion Description] +
[Camera Movement] + [Timing Breakdown] + [Transitions/Effects] +
[Audio/Sound Design] + [Style/Mood]

For precise control, break your prompt into timed segments:

0–3s: [opening scene description, camera, action]
3–6s: [mid-section development]
6–10s: [climax or key action]
10–15s: [resolution, ending shot, final text/branding]

Camera Language Reference

Use these camera terms for precise control:

Basic Movements
TermDescription
Push in / Slow pushCamera moves toward subject
Pull back / Pull awayCamera moves away from subject
Pan left/rightCamera rotates horizontally
Tilt up/downCamera rotates vertically
Track / Follow shotCamera follows subject movement
Orbit / RevolveCamera circles around subject
One-take / OnerContinuous shot with no cuts
Advanced Techniques
TermDescription
Hitchcock zoom (dolly zoom)Push in + zoom out (or vice versa), creates vertigo effect
Fisheye lensUltra-wide distorted lens
Low angle / High angleCamera below/above subject
Bird's eye / OverheadTop-down view
First-person POVSubjective camera from character's eyes
Whip panVery fast horizontal pan creating motion blur
Crane shotVertical movement like a crane arm
Shot Sizes
TermDescription
Extreme close-upEyes, mouth, or small detail only
Close-upFace fills frame
Medium close-upHead and shoulders
Medium shotWaist up
Full shotEntire body
Wide / Establishing shotFull environment

Capability-Specific Prompt Patterns

1. Character Consistency

Keep the same character across shots by anchoring to a reference image:

The man in @Image1 walks tiredly down the hallway, slowing his steps,
finally stopping at his front door. Close-up on his face — he takes a
deep breath, adjusts his emotions, replaces the weariness with a relaxed
expression. Close-up of him finding his keys, inserting into the lock.
After entering, his little daughter and a pet dog run to greet him with
hugs. The interior is warm and cozy. Natural dialogue throughout.
2. Camera Movement Replication

Reference a video's exact camera work:

Reference @Image1's male character. He is in @Image2's elevator.
Completely reference @Video1's camera movements and the protagonist's
facial expressions. Hitchcock zoom during the fear moment, then several
orbit shots showing the elevator interior. Elevator doors open, follow
shot walking out. Exterior scene references @Image3. The man looks
around, referencing @Video1's mechanical arm multi-angle tracking of
the character's gaze.
3. Creative Template / Effects Replication

Replicate transitions, ad styles, or visual effects from reference videos:

Replace @Video1's character with @Image1. @Image1 as the first frame.
Character puts on VR sci-fi glasses. Reference @Video1's camera work —
close orbit shot transitions from third-person to character's subjective
POV. Travel through the VR glasses into @Image2's deep blue universe.
Several spaceships shuttle toward the distance. Camera follows ships
into @Image3's pixel world. Low-altitude flyover of pixel mountains
where trees grow procedurally. Then upward angle, rapid shuttle to
@Image4's pale green textured planet, camera skims the planet surface.
4. Video Extension

Extend an existing video forward or backward:

Extend @Video1 by 15 seconds.
1–5s: Light and shadow slowly slide across wooden table and cup through
venetian blinds. Tree branches sway gently as if breathing.
6–10s: A coffee bean gently drifts down from the top of frame. Camera
pushes in toward the bean until the screen goes black.
11–15s: English text gradually appears — first line "Lucky Coffee",
second line "Breakfast", third line "AM 7:00-10:00".

Important: When extending, set the generation duration to match the extension length (e.g., extend 5s → select 5s generation).

For reverse extension (prepending):

Extend backward 10s. In warm afternoon light, the camera starts from
the corner with awning fluttering in the breeze, slowly tilting down
to daisies peeking out at the wall base...
5. Video Editing (Modify Existing Video)

Change specific elements while preserving the rest:

Subvert @Video1's plot — the man's expression shifts from tenderness to
icy cruelty. In an unguarded moment, he shoves the female lead off the
bridge into the water. The action is decisive, premeditated, without
hesitation. The female lead falls with no scream, only disbelief in her
eyes. She surfaces and screams: "You've been lying to me from the start!"
The man stands on the bridge with a sinister smile, murmuring: "This is
what your family owes mine."
6. Music Beat-Matching

Sync visuals to audio rhythm:

@Image1 @Image2 @Image3 @Image4 @Image5 @Image6 @Image7 — match the
keyframe positions and overall rhythm of @Video1 for beat-synced cuts.
Characters should have more dynamic movement. Overall visual style more
dreamlike with strong visual tension. Adjust shot sizes and add lighting
changes based on music and visual needs.
7. Dialogue and Voice Acting

Include character dialogue and voice direction:

In the "Cat & Dog Roast Show" — an emotionally expressive comedy segment:
Cat host (licking paw, rolling eyes): "Who understands my suffering? This
one next to me does nothing but wag his tail, destroy sofas, and con
humans out of treats with those 'pet me I'm adorable' eyes..."
Dog host (head tilted, tail wagging): "You're one to talk? You sleep 18
hours a day, wake up just to rub against humans' legs for canned food..."
8. One-Take / Long Take

Continuous single-shot sequences:

@Image1 @Image2 @Image3 @Image4 @Image5 — one-take tracking shot,
following a runner from the street up stairs, through a corridor, onto
a rooftop, finally overlooking the city. No cuts throughout.
9. E-commerce / Product Showcase

Product-focused advertising:

Deconstruct the reference image. Static camera. Hamburger suspended and
rotating mid-air. Ingredients gently and precisely separate while
maintaining shape and proportion. Smooth motion, no extra effects.
Hamburger splits apart — golden sesame bun top, fresh green lettuce,
dewy red tomato slices, two thick juicy beef patties with melting golden
cheddar cheese, and soft bun base — all slowly descend and perfectly
reassemble into a complete deluxe double cheeseburger. Throughout,
cheese continues to melt and drip slowly, lettuce and tomato dewdrops
glisten, maintaining ultimate appetizing food aesthetics.
10. Science/Educational Content

Medical or educational visualizations:

15-second health educational clip.
0–5s: Transparent blue human upper body. Camera slowly pushes into a
clear artery. Blood flows smoothly, clean blue color.
5–10s: Symbolic sugar and fat particles from milk tea enter the
bloodstream. Camera follows blood flow. Blood gradually thickens,
yellowish lipid deposits form on vessel walls.
10–15s: Vessel lumen visibly narrows, flow speed decreases. Before/after
comparison creates visual contrast. Overall colors darken.

Show full SKILL.md (398 more words)Show less

Style and Quality Modifiers

Append these to enhance output quality:

Visual Style
  • Cinematic quality, film grain, shallow depth of field
  • 2.35:1 widescreen, 24fps
  • Ink wash painting style / Anime style / Photorealistic
  • High saturation neon colors, cool-warm contrast
  • 4K medical CGI, semi-transparent visualization
Mood/Atmosphere
  • Tense and suspenseful / Warm and healing / Epic and grand
  • Comedy with exaggerated expressions
  • Documentary tone, restrained narration
Audio Direction
  • Background music: grand and majestic
  • Sound effects: footsteps, crowd noise, car sounds
  • Voice tone reference @Video1
  • Beat-synced transitions matching music rhythm

Workflow: Step-by-Step Prompt Creation

When a user asks you to write a Seedance 2.0 prompt, follow this process:

  1. Clarify the goal: What type of video? (Ad, drama, MV, educational, vlog, etc.)
  2. Identify available assets: What images, videos, audio does the user have?
  3. Assign roles: Map each asset to its function (first frame, character ref, camera ref, etc.)
  4. Structure the prompt:
    • Open with subject and scene setup
    • Add time-segmented action descriptions for videos > 8s
    • Specify camera movements
    • Add audio/sound design
    • Include style modifiers
  5. Check constraints: Verify total files ≤ 12, no real human faces, durations within limits
  6. Optimize: Remove ambiguity, ensure each @reference has a clear role

Common Mistakes to Avoid

  1. Vague references: Don't just say "reference @Video1" — specify WHAT to reference (camera? action? effects? rhythm?)
  2. Conflicting instructions: Don't ask for "static camera" and "orbit shot" in the same segment
  3. Overloading: Don't try to pack too many scenes into 4–5 seconds — keep it physically plausible
  4. Missing @ assignments: If you upload 5 images, make sure each one is referenced with a clear purpose
  5. Ignoring audio: Sound design dramatically improves output — always include audio direction
  6. Forgetting duration: Match your prompt complexity to the selected generation length
  7. Real faces: Don't describe uploading real human photos — the system will block them

Example Prompt Templates

Template: Product Ad (15s)
Reference @Video1's editing style and camera transitions. Replace @Video1's
product with @Image1 as the hero product. Create a 15-second product
showcase video.
0–3s: Product enters frame with dynamic rotation, close-up on surface
texture and logo details.
4–8s: Multiple angle transitions — front, side, back — with product
highlight scanning light effects.
9–12s: Product in lifestyle context showing usage scenario.
13–15s: Hero shot with brand tagline appearing, background music builds
to resolution.
Sound: Reference @Video1's background music. Add product interaction
sound effects.
Template: Short Drama (15s)
Scene (0–5s): Close-up on the character's reddened eyes, finger pointing
accusingly, tears streaming down. Emotion on the edge of collapse.
Dialogue 1 (Character A, choking with rage): "What exactly are you trying
to take from me?"
Scene (6–10s): The other character trembles, holding up evidence,
red-eyed, stepping forward. Camera sweeps past background details.
Dialogue 2 (Character B, urgent and choked): "I'm not deceiving you!
This is what he entrusted to me!"
Scene (11–15s): Evidence is revealed, Character A freezes — expression
shifts from anger to shock, hands slowly rise.
Sound: Urgent piano + static interference, sobbing, button click sound,
ending with a muffled voice blending in.
Duration: Precise 15 seconds, every frame tight, no filler.
Template: Dance Video (13s)
Have the character in @Image1 replicate the dance moves and beat-synced
music from @Video1. Generate a 13-second video. Movements should be
smooth with no stuttering or freezing.
Template: Scenery Montage with Music (15s)
@Image1 @Image2 @Image3 @Image4 @Image5 @Image6 — landscape scene
images. Reference @Video1's visual rhythm, inter-scene transitions,
visual style, and music tempo for beat-synced editing.

Interaction Instructions

When helping users write prompts:

  1. Ask what they want to create — type of video, mood, duration
  2. Ask what materials they have — list their images, videos, audio files
  3. Draft the prompt — using the patterns and structure above
  4. Explain your choices — briefly note why you structured the prompt this way
  5. Offer variations — suggest a simpler or more ambitious alternative if appropriate
  6. Remind about constraints — especially the face restriction and file limits

© dexhunter, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (assets) in the repository root of dexhunter/seedance2-skill.

  • SKILL.md
  • .gitignore
  • LICENSE
  • README-zh.md
  • README.md
  • assets/seedance2-thumbnail.png
  • assets/thumbnail-prompt.txt

Open the folder on GitHubat commit 516284d

Compare with similar skills

Seedance Prompt En next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Seedance Prompt En compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Seedance Prompt En this skilldexhunter/seedance2-skill4.2k—~3.8kAutomated safety check: PassMIT
Seedancesongguoxs/seedance-prompt-skill2.9k1 repos~2.5kAutomated safety check: PassNone
SN Motion HTMLOpenSenseNova/SenseNova-Skills5.7k—~2.2kAutomated safety check: NotesMIT
Seedance Japanese Prompt ExamplesEmily2040/seedance-2.07.6k1 repos~898Automated safety check: PassMIT
Seedance 2 5 Video Directorliyue-aigc/seedance-2-5-video-director599—~3.5kAutomated safety check: PassMIT
SeedanceMapleShaw/seedance2.0-prompt-skill806—~5.5kAutomated safety check: PassMIT

Similar skills

  • Seedance

    songguoxs/seedance-prompt-skill

    This skill should be used when the user asks to "generate video prompts", "create Seedance prompts", "write video descriptions", mentions "Seedance", "seedance", "即梦", "即梦平台", "视频提示词", "视频生成"…

    2.9k GitHub starsUsed in 1 repo~2.5k tokens
    Media & CreativeAuto-check passed
  • SN Motion HTML

    OpenSenseNova/SenseNova-Skills

    Builds HTML stories where one continuous camera journey advances with page progress, using researched structure, AI stills, Seedance video clips and browser QA.

    5.7k GitHub stars~2.2k tokensUpdated 2 days ago
    Media & CreativeAuto-check: notes
  • Seedance Japanese Prompt Examples

    Emily2040/seedance-2.0

    Provides Japanese prompt patterns and safe example rewrites for Seedance 2.0 video generation, with reference tags kept intact and each example labeled by risk.

    7.6k GitHub starsUsed in 1 repo~898 tokens
    Media & CreativeAuto-check passed
  • Seedance 2 5 Video Director

    liyue-aigc/seedance-2-5-video-director

    Design, derive, optimize, diagnose, and rewrite scripts or copy-ready prompts specifically for Dreamina/即梦 Seedance 2.5.

    599 GitHub stars~3.5k tokensUpdated 1 mo ago
    Media & CreativeAuto-check passed
  • Seedance

    MapleShaw/seedance2.0-prompt-skill

    Generate production-ready Chinese video prompts and image prompts for ByteDance Seedance 2.0 (即梦), and optionally execute them via the official dreamina CLI.

    806 GitHub stars~5.5k tokensUpdated 3 mo ago
    Media & CreativeAuto-check passed
  • Sd 2 5 Prompt

    huangbai-AI/sd-2-5-prompt

    Create, reverse-engineer, repair, and audit practical Seedance 2.5 / SD 2.5 video prompts with a five-part structure: subject, style, timeline, BGM, and constraints.

    201 GitHub stars~632 tokensUpdated 2 mo ago
    Media & CreativeAuto-check passed

More from dexhunter/seedance2-skill

  • Seedance Prompt Zh

    dexhunter/seedance2-skill

    为即梦 Seedance 2.0 多模态AI视频生成模型撰写高质量提示词。当用户需要使用文本、图片、视频、音频等多模态输入创作视频提示词时触发。涵盖@引用语法、运镜复刻、特效模仿、视频延长、视频编辑、音乐卡点、电商广告、短剧创作、科普教育等场景。

    4.2k GitHub stars~1.9k tokensUpdated 21 days ago
    Auto-check passed

Works with

Questions about Seedance Prompt En

What does Seedance Prompt En do?

Write effective prompts for Jimeng Seedance 2.0 multimodal AI video generation. Seedance Prompt En is an agent skill from dexhunter/seedance2-skill.0 multimodal AI video generation.

When should I use Seedance Prompt En?

Seedance Prompt En fits situations like: users want to create video prompts using text; audio inputs with the @ reference system.

How do I install Seedance Prompt En in Claude Code?

Run `npx skills add dexhunter/seedance2-skill --skill seedance-prompt-en -a claude-code`. Or copy the skill folder (the dexhunter/seedance2-skill repository) into .claude/skills/seedance-prompt-en in your project. Claude Code loads it when a task matches its description.

How do I install Seedance Prompt En in Codex?

Run `npx skills add dexhunter/seedance2-skill --skill seedance-prompt-en -a codex`. Or copy the skill folder (the dexhunter/seedance2-skill repository) into .agents/skills/seedance-prompt-en in your project. Codex loads it when a task matches its description.

Can I use Seedance Prompt En in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dexhunter/seedance2-skill --skill seedance-prompt-en -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/seedance-prompt-en, .gemini/skills/seedance-prompt-en, .github/skills/seedance-prompt-en and .opencode/skills/seedance-prompt-en in your project.

What does Seedance Prompt En need to run?

SKILL.md names no scripts, command-line tools or credentials: Seedance Prompt En is instructions for the agent only.

Does Seedance Prompt En access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Seedance Prompt En safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Seedance Prompt En use?

Seedance Prompt En is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Seedance Prompt En use?

About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Seedance Prompt En?

Skills that share tags, products or a category with Seedance Prompt En: Seedance (songguoxs/seedance-prompt-skill, 2.9k stars), SN Motion HTML (OpenSenseNova/SenseNova-Skills, 5.7k stars), Seedance Japanese Prompt Examples (Emily2040/seedance-2.0, 7.6k stars) and Seedance 2 5 Video Director (liyue-aigc/seedance-2-5-video-director, 599 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Seedance Prompt En?

dexhunter (a GitHub user) maintains it in dexhunter/seedance2-skill, which has 4,238 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on September 19, 2026.

Source: dexhunter/seedance2-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.